Μετάβαση στο κύριο περιεχόμενο
Υποστήριξη
Είσοδος με Microsoft
Είσοδος ή δημιουργία λογαριασμού.
Γεια σας,
Επιλέξτε διαφορετικό λογαριασμό.
Έχετε πολλούς λογαριασμούς
Επιλέξτε τον λογαριασμό με τον οποίο θέλετε να εισέλθετε.

Σύνοψη

Μια ευπάθεια αποκάλυψης πληροφοριών υπάρχει το πρωτόκολλο ασφάλεια επιπέδου μεταφοράς και το πρωτόκολλο Secure Sockets Layer (TLS/SSL) με βάση την εφαρμογή στο στοιχείο κρυπτογράφησης του Microsoft .NET Framework. Ένας εισβολέας που εκμεταλλεύεται με επιτυχία αυτή την ευπάθεια θα μπορούσε να αποκρυπτογραφήσει κρυπτογραφημένα κυκλοφορίας TLS/SSL.

Για να εκμεταλλευτεί την ευπάθεια, ο εισβολέας πρέπει πρώτα να εισαγάγει δεδομένα μη κρυπτογραφημένο στην το κανάλι ασφαλείας και στη συνέχεια, εκτελέστε μια επίθεση (MiTM) στο μέσο μεταξύ το συγκεκριμένο πρόγραμμα-πελάτης και διακομιστής νόμιμα. Αυτή η ενημερωμένη έκδοση αντιμετωπίζει την ευπάθεια τροποποιώντας τον τρόπο ότι το στοιχείο κρυπτογράφησης .NET να στέλνει και να λαμβάνει πακέτα δικτύου κρυπτογραφημένα.

Αυτό το θέμα ευπάθειας είναι σταθερή ως τμήμα του ενημερωτικού δελτίου ασφαλείας της Microsoft MS16-065. Αυτή η ενημερωμένη έκδοση αλλάζει τον τρόπο ότι το στοιχείο κρυπτογράφησης .NET Framework να στέλνει και να λαμβάνει πακέτα δικτύου κρυπτογραφημένα.

Ο παρακάτω πίνακας περιέχει συνδέσεις με την προκαθορισμένη εγγραφή για κάθε θέμα ευπάθειας στη λίστα συνήθων ευπαθειών και εκθέσεων.

Ένα θέμα ευπάθειας τίτλου

Αριθμός CVE

Ευρέως γνωστή

Η εκμετάλλευση

Θέμα ευπάθειας πλαστογράφησης TLS/SSL

CVE-2016-0149

Ναι

Όχι

Επίλυση της ευπάθειας

Η αλλαγή που περιλαμβάνονται στο ενημερωτικό δελτίο ασφαλείας της Microsoft MS16-065 προκαλεί την πρώτη εγγραφή TLS μετά τη χειραψία για να είναι δυνατή η διαίρεση. Αυτό έχει ως αποτέλεσμα την SslStream, WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient και HttpClient (όπου βάσει HttpWebRequest) ροών επέστρεφε ένα byte για την πρώτη ανάγνωση, αμέσως μετά από την αλλοδαπή (n-1) byte, σε διαδοχικές αναγνώσεις. Η αλλαγή αυτή η συμπεριφορά προκύπτει μόνο για τις εφαρμογές που χρησιμοποιούν το TLS 1.0 + Cipher Block Chaining, αλλά όχι όταν χρησιμοποιούν TLS 1.1 ή TLS 1.2.

Σημείωση Ως προϋπόθεση, πρέπει να εγκαταστήσετε το ενημερωτικό δελτίο ασφάλειας MS12-006 της Microsoft για να ενεργοποιήσετε αυτήν την ενημερωμένη έκδοση.

Αυτή η αλλαγή μπορεί να προκαλέσει ορισμένες εφαρμογές που βασίζονται στο .NET Framework για κατάτμηση. Αυτό το άρθρο περιγράφει δύο προσεγγίσεις που μπορείτε να χρησιμοποιήσετε για να ενημερώσετε την εφαρμογή σας για να λειτουργήσουν σωστά μετά την εφαρμογή του ενημερωτικού δελτίου ασφαλείας της Microsoft MS16-065.

Μετριασμούς για ζητήματα συμβατότητας

Επιλογή 1: Εναλλαγή του πρωτοκόλλου TLS 1.2

Αυτή η επιλογή καθιστά την εφαρμογή που χρησιμοποιεί το πρωτόκολλο TLS 1.2, είτε τροποποιώντας το μητρώο, είτε μέσω προγραμματισμού τη ρύθμιση παραμέτρων της έκδοσης πρωτοκόλλου.

  • Τροποποίηση του μητρώου

    Σημαντικό
    Ακολουθήστε τα βήματα αυτής της ενότητας προσεκτικά. Εάν τροποποιήσετε το μητρώο με εσφαλμένο τρόπο, ενδέχεται να προκύψουν σοβαρά προβλήματα. Πριν να το τροποποιήσετε, Δημιουργήστε αντίγραφα ασφαλείας για επαναφορά του μητρώου σε περίπτωση που προκύψουν προβλήματα.

    Το 4.0 του .NET Framework και το .NET Framework 4.5.x εφαρμογές που εκτελούνται στο .NET Framework 4.5 και νεότερες εκδόσεις να αλλάξετε το προεπιλεγμένο πρωτόκολλο TLS 1.2, TLS 1.1 και TLS 1.0, ενεργοποιώντας το κλειδί μητρώου SchUseStrongCrypto . Αυτό το κλειδί μητρώου αναφέρεται στην ενότητα Προτεινόμενες ενέργειες του θέματος της Microsoft, συμβουλευτικό δελτίο ασφαλείας 2960358 στην τοποθεσία της Microsoft TechNet στο Web.

    Σημαντικό Αυτή η αλλαγή μητρώου θα λειτουργήσει μόνο αν ισχύουν οι ακόλουθες συνθήκες:

    • Οι εφαρμογές που χρησιμοποιούν APIs βασίζεται σε ServicePointManager είναι ρύθμιση ρητά την τιμή ServicePointManager.SecurityProtocol . Παραδείγματα αυτών των κατηγοριών είναι System.Net.Http.HttpClient, System.Net.FtpWebRequest, System.Net.HttpWebRequestκαι System.Net.Mail.SmtpClient. Ρύθμιση του ServicePointManager.SecurityProtocol στον κώδικα προηγείται του μητρώου.

    • Εφαρμογές χρησιμοποιούν την υπερφόρτωση SslStream AuthenticateAsClient(String) .


  • Ρύθμιση μέσω προγραμματισμού την έκδοση του πρωτοκόλλου

    Το 4.0 του .NET Framework και 4.5 εφαρμογές που εκτελούνται στο .NET Framework 4.5 και νεότερες εκδόσεις και χρησιμοποιούν την υπερφόρτωση SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) πρέπει να μεταγλωττιστούν ξανά, τον καθορισμό SslProtocols.Tls12, SslProtocols.Tls11και SslProtocols.Tls ως η τρίτη παράμετρος. Για μια πλήρη περιγραφή του τρόπου χρήσης της κλάσης SslStream, ανατρέξτε στο θέμα Κλάση SslStream στην τοποθεσία Web της Microsoft προγραμματιστές (MSDN).

    Σημείωση Το .NET Framework 4.6 και νεότερες εκδόσεις χρησιμοποιούν ως προεπιλογές πρωτοκόλλου TLS 1.2, TLS 1.1 και TLS 1.0. Αυτό περιγράφεται στο θέμα της Microsoft, συμβουλευτικό δελτίο ασφαλείας 2960358 στην τοποθεσία της Microsoft TechNet στο Web.


Επιλογή 2: Δείκτης χειρισμού διαίρεση πακέτα

Αυτή η ενημερωμένη έκδοση έχει ως αποτέλεσμα μία εγγραφή να διαιρεθεί σε πολλές εγγραφές. Επομένως, εάν μια εφαρμογή αναμένει ο πλήρης φάκελος να είναι διαθέσιμος σε μία κλήση Ανάγνωση , τέτοιες εφαρμογές ενδέχεται να καταστραφούν. Για να βεβαιωθείτε ότι η εφαρμογή λειτουργεί σωστά, βεβαιωθείτε να χειρίζεται η εφαρμογή διαίρεσης πακέτα εκτελώντας την κλήση Stream.Read σωστά. Μπορείτε να χρησιμοποιήσετε το δείγμα κώδικα διαθέσιμες εδώ ως σημείο αναφοράς για το πώς μπορείτε να διορθώσετε την εφαρμογή να εκτελέσει σωστά την κλήση Ανάγνωση .

Για ένα δείγμα αίτησης HTTP που εμφανίζει τη διαφορά στη συμπεριφορά πριν (με το μετριασμό) και μετά (χωρίς το μετριασμό) εγκατάστασης ενημερωμένων εκδόσεων 3147461 και 3147458 , ανατρέξτε στην ενότητα "Περισσότερες πληροφορίες".

Για μια πλήρη παράδειγμα της μεθόδου Stream.Read , ανατρέξτε στο θέμα Stream.Read μέθοδο (Byte [], Int32, Int32) στην τοποθεσία Web της Microsoft προγραμματιστές (MSDN).

Λύσεις για ζητήματα συμβατότητας εφαρμογών

Προειδοποίηση Αυτές οι εναλλακτικοί τρόποι αντιμετώπισης ενδέχεται να κάνουν έναν υπολογιστή ή ένα δίκτυο πιο ευάλωτο σε επιθέσεις από κακόβουλους χρήστες ή επιβλαβές λογισμικό, όπως οι ιοί. Δεν συνιστάται οι λύσεις αυτές, αλλά παρέχουμε τις παρούσες πληροφορίες ώστε να μπορείτε να εφαρμόσετε αυτές τις λύσεις, κατά τη διακριτική σας ευχέρεια. Χρησιμοποιήστε αυτές τις λύσεις με δική σας ευθύνη.

Μέθοδος 1: Ενημέρωση κλειδιά μητρώου (που είναι διαθέσιμη για όλες τις εκδόσεις του .NET Framework)

Απενεργοποιήσετε τη δομή της SCH_SEND_AUX_RECORD (συνολικά)

Απενεργοποίηση της SCH_SEND_AUX_RECORD δομής για μεμονωμένες εφαρμογές

Απενεργοποίηση SCH_SEND_AUX_RECORD δομή (συνολικά)

Για όλες τις εφαρμογές, προσθέστε το ακόλουθο δευτερεύον κλειδί μητρώου:

Θέση του μητρώου: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number >
Όνομα DWORD: SchSendAuxRecord
Δεδομένα τιμής: 0
Σημείωση Το σύμβολο κράτησης θέσης του < version_number > είναι v4.0.30319 ή v2.0.50727, ανάλογα με την έκδοση.

Για εφαρμογές 32-bit που εκτελούνται σε υπολογιστές 64-bit, πρέπει επίσης να προσθέσετε το ακόλουθο δευτερεύον κλειδί μητρώου:

Θέση του μητρώου: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number >
Όνομα DWORD: SchSendAuxRecord
Δεδομένα τιμής: 0
Σημείωση Το σύμβολο κράτησης θέσης του < version_number > είναι v4.0.30319 ή v2.0.50727, ανάλογα με την έκδοση.

Εναλλακτικός τρόπος αντιμετώπισης

Για να απενεργοποιήσετε προσωρινά την ασφαλή λειτουργία που περιγράφεται σε αυτό το άρθρο, κάντε κλικ στην κατάλληλη σύνδεση για να κάνετε λήψη ενός αρχείου .reg και, στη συνέχεια, κάντε διπλό κλικ στο αρχείο .reg που έχετε λάβει για να κάνετε τις αλλαγές στο μητρώο.

Για εφαρμογές στόχευση του Microsoft.NET Framework 3.5:

Download Άμεση λήψη του αρχείου ManualOptOutSchSendAuxRecord20.reg.
Για εφαρμογές στόχευση του Microsoft .NET Framework 4.0 και οι νεότερες εκδόσεις:

Download Άμεση λήψη του αρχείου ManualOptOutSchSendAuxRecord40.reg.
Για να ενεργοποιήσετε ξανά την ασφαλή λειτουργία που περιγράφεται σε αυτό το άρθρο, κάντε κλικ στην κατάλληλη σύνδεση για να κάνετε λήψη ενός αρχείου .reg και, στη συνέχεια, κάντε διπλό κλικ στο αρχείο .reg που έχετε λάβει για να κάνετε τις αλλαγές στο μητρώο.

Για εφαρμογές που στόχευση του Microsoft.NET Framework 3.5:

Download Άμεση λήψη του αρχείου ManualOptInSchSendAuxRecord20.reg.
Για εφαρμογές στόχευση του Microsoft .NET Framework 4.0 και οι νεότερες εκδόσεις:

Download Άμεση λήψη του αρχείου ManualOptInSchSendAuxRecord40.reg.
Για περισσότερες πληροφορίες σχετικά με τον τρόπο λήψης αρχείων υποστήριξης της Microsoft, κάντε κλικ στον αριθμό του άρθρου παρακάτω, για να προβάλετε το άρθρο της Γνωσιακής βάσης της Microsoft:

119591 Τρόπος απόκτησης αρχείων υποστήριξης της Microsoft από ηλεκτρονικές υπηρεσίεςΗ Microsoft εξέτασε αυτό το αρχείο για ιούς. Η Microsoft χρησιμοποίησε το πιο πρόσφατο λογισμικό εντοπισμού ιών που ήταν διαθέσιμο κατά την ημερομηνία που δημοσιεύτηκε το αρχείο. Το αρχείο είναι αποθηκευμένο σε διακομιστές με ενισχυμένη ασφάλεια, οι οποίοι συμβάλλουν στην αποτροπή μη εξουσιοδοτημένων αλλαγών στο αρχείο.


Απενεργοποίηση της SCH_SEND_AUX_RECORD δομής για μεμονωμένες εφαρμογές

Για όλες τις εφαρμογές, προσθέστε το ακόλουθο δευτερεύον κλειδί μητρώου:

Θέση του μητρώου: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
Όνομα DWORD: Πλήρως αναγνωρισμένη διαδρομή για το .exe εφαρμογής (για παράδειγμα, C:\MyApp\MyApp.exe)
Δεδομένα τιμής: 0
Σημείωση Το σύμβολο κράτησης θέσης του < version_number > είναι v4.0.30319 ή v2.0.50727, ανάλογα με την έκδοση.

Για εφαρμογές 32-bit που εκτελούνται σε υπολογιστές 64-bit, πρέπει επίσης να προσθέσετε το ακόλουθο δευτερεύον κλειδί μητρώου:

Θέση του μητρώου: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
Όνομα DWORD: Πλήρως αναγνωρισμένη διαδρομή για το .exe εφαρμογής (για παράδειγμα, C:\MyApp\MyApp.exe)
Δεδομένα τιμής: 0 (η μόνη έγκυρη τιμή είναι 0. Οποιαδήποτε άλλη τιμή θα αγνοηθεί.)
Σημείωση Το σύμβολο κράτησης θέσης του < version_number > είναι v4.0.30319 ή v2.0.50727, ανάλογα με την έκδοση.

Μέθοδος 2: Αλλαγή ρυθμίσεων παραμέτρων σε επίπεδο εφαρμογής (διαθέσιμο μόνο για την έκδοση του .NET Framework 4.6 και νεότερες εκδόσεις)

Ξεκινώντας με το 4.6 του .NET Framework, μπορείτε να αλλάξετε τη ρύθμιση παραμέτρων σε επίπεδο εφαρμογής μέσω κώδικα ή την εφαρμογή αλλαγών παραμέτρων ή στο μητρώο.

Με το πλαίσιο 4.6 .NET, μπορείτε να ορίσετε το διακόπτη, χρησιμοποιώντας οποιαδήποτε από τις ακόλουθες μεθόδους. Αυτά τα παραδείγματα, απενεργοποιήστε τη δυνατότητα ασφαλείας.

  • Μέσω προγραμματισμού

    Το πρώτο πράγμα που πρέπει να κάνει η εφαρμογή εκτελείται ο κώδικας που ακολουθεί. Αυτό συμβαίνει επειδή η Διαχείριση υπηρεσιών του σημείου θα προετοιμαστεί μόνο μία φορά.

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchSendAuxRecordName = @"Switch.System.Net.DontEnableSchSendAuxRecord"; 
    AppContext.SetSwitch(DisableCachingName, true);
    AppContext.SetSwitch(DontEnableSchSendAuxRecordName , true);
  • Ρύθμιση παραμέτρων εφαρμογής

    Για να αλλάξετε τις ρυθμίσεις της εφαρμογής, προσθέστε την ακόλουθη καταχώρηση:

    <runtime><AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchSendAuxRecord=true"/>
    </runtime>
  • Κλειδί μητρώου (καθολικό υπολογιστή)

    Θέσεις μητρώου: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\AppContextHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\. NETFramework\AppContext
    Τιμή: Switch.System.Net.DontEnableSchSendAuxRecord
    Τύπος: Συμβολοσειρά
    Τιμή: TRUE

    Σημείωση Switch.System.Net.DontEnableSchSendAuxRecord = False για όλες τις εφαρμογές.

Περισσότερες πληροφορίες

Το ακόλουθο είναι ένα μοτίβο επικοινωνίας του δείγματος προγράμματος-πελάτη/διακομιστή πριν και μετά την εγκατάσταση αυτής της ενημερωμένης έκδοσης. Αυτές οι πληροφορίες παρέχονται για επεξήγηση για τον εντοπισμό τυχόν εφαρμογή θραύσης λόγω της εγκατάστασης αυτής της ενημέρωσης κώδικα.

Χωρίς το μετριασμό

Με το μετριασμό

[Διακομιστή] αναμονή για συνδέσεις (127.0.0.1:4431)
[Πρόγραμμα-πελάτης] Σύνδεση με localhost:4431
[Διακομιστή] Σύνδεση υπολογιστή-πελάτη.
[Πρόγραμμα-πελάτης] Συνδεδεμένοι. Έλεγχος ταυτότητας...
[Διακομιστή] Υπολογιστής-πελάτης με έλεγχο ταυτότητας.
[Πρόγραμμα-πελάτης] Αποστολή αίτησης (94 byte)
[Πρόγραμμα-πελάτης] Αναμονή για απάντηση...

[Διακομιστή] Λήψη μέγεθος τα 94 byte: <<< ΛΉΨΗ / HTTP/1.0
Host: contoso.com
Παράγοντας χρήστη: Δοκιμή εφαρμογής

>>>
[Διακομιστή] Απάντηση με 476 byte.

[Πρόγραμμα-πελάτης 1: 476 Bytes] Απάντηση: <<<<< HTTP/1.1 200 OK

>>>>>

[Διακομιστή] αναμονή για συνδέσεις (127.0.0.1:4431)
[Πρόγραμμα-πελάτης] Σύνδεση με localhost:4431
[Διακομιστή] Σύνδεση υπολογιστή-πελάτη.
[Πρόγραμμα-πελάτης] Συνδεδεμένοι. Έλεγχος ταυτότητας...
[Διακομιστή] Υπολογιστής-πελάτης με έλεγχο ταυτότητας.
[Πρόγραμμα-πελάτης] Αποστολή αίτησης (94 byte)
[Πρόγραμμα-πελάτης] Αναμονή για απάντηση...
[Διακομιστή] Λήψη 1 byte: <<< G >>>
[Διακομιστή] Λήψη 93 bytes: <<< ET / HTTP/1.0
Host: contoso.com
Παράγοντας χρήστη: Δοκιμή εφαρμογής

>>>
[Διακομιστή] Απάντηση με 476 byte.
[Πρόγραμμα-πελάτης 1: 1 byte] Απάντηση: <<<<< H >>>>>
[Πρόγραμμα-πελάτης 2: 475 Bytes] Απάντηση: <<<<< TTP/1.1 200 OK

>>>>>


Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

Εξερευνήστε τα πλεονεκτήματα της συνδρομής, περιηγηθείτε σε εκπαιδευτικά σεμινάρια, μάθετε πώς μπορείτε να προστατεύσετε τη συσκευή σας και πολλά άλλα.

Οι κοινότητες σάς βοηθούν να κάνετε και να απαντάτε σε ερωτήσεις, να δίνετε σχόλια και να ακούτε από ειδικούς με πλούσια γνώση.

Σας βοήθησαν αυτές οι πληροφορίες;

Πόσο ικανοποιημένοι είστε με τη γλωσσική ποιότητα;
Τι επηρέασε την εμπειρία σας;
Πατώντας "Υποβολή" τα σχόλια σας θα χρησιμοποιηθούν για τη βελτίωση των προϊόντων και των υπηρεσιών της Microsoft. Ο διαχειριστής IT θα έχει τη δυνατότητα να συλλέξει αυτά τα δεδομένα. Δήλωση προστασίας προσωπικών δεδομένων.

Σας ευχαριστούμε για τα σχόλιά σας!

×