MS16-065: Περιγραφή του ευπάθεια αποκάλυψης πληροφοριών το TLS/SSL πρωτόκολλο (CVE-2016-0149): 10 Μαΐου 2016

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο έχει μεταφραστεί χρησιμοποιώντας λογισμικό μηχανικής μετάφρασης της Microsoft και μπορείτε να το διορθώσετε χρησιμοποιώντας την τεχνολογία Community Translation Framework (CTF) (Πλαίσιο μετάφρασης κοινότητας). Η Microsoft παρέχει μηχανική μετάφραση, επεξεργασία μετά τη μηχανική μετάφραση από την κοινότητα και άρθρα μεταφρασμένα από επαγγελματίες προκειμένου να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής βάσης σε πολλές γλώσσες. Τα άρθρα μηχανικής μετάφρασης και αυτά που επεξεργάζονται ύστερα από μηχανική μετάφραση ενδέχεται να περιέχουν σφάλματα στο λεξιλόγιο, στη σύνταξη ή/και στη γραμματική. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες μας. Για περισσότερες πληροφορίες σχετικά με το CTF, μεταβείτε στην τοποθεσία http://support.microsoft.com/gp/machine-translation-corrections/el.

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

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

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

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

Ένα θέμα ευπάθειας τίτλουΑριθμός CVEΕυρέως γνωστήΗ εκμετάλλευση
Θέμα ευπάθειας πλαστογράφησης TLS/SSLCVE-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.

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

Αυτή η αλλαγή μπορεί να προκαλέσει ορισμένες εφαρμογές που βασίζονται στο .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.

    Σημαντικό Αυτή η αλλαγή μητρώου θα λειτουργήσει μόνο αν ισχύουν οι ακόλουθες συνθήκες:
    • Οι εφαρμογές που χρησιμοποιούν βασίζεται σε ServicePointManager APIs είναι ρύθμιση δεν το 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 δομή (συνολικά)
Για όλες τις εφαρμογές, προσθέστε το ακόλουθο δευτερεύον κλειδί μητρώου:
Θέση του μητρώου:
HKEY_LOCAL_MACHINE\Software\Microsoft\.NETFramework\<version_number>

Όνομα DWORD: SchSendAuxRecord
Δεδομένα τιμής: 0

Σημείωση Το σύμβολο κράτησης θέσης <version_number>είναι v4.0.30319 ή v2.0.50727, ανάλογα με την έκδοση.

Για εφαρμογές 32-bit που εκτελούνται σε υπολογιστές 64-bit, πρέπει επίσης να προσθέσετε το ακόλουθο δευτερεύον κλειδί μητρώου:
</version_number>
Θέση του μητρώου:
HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\.NETFramework\<version_number>

Όνομα DWORD: SchSendAuxRecord
Δεδομένα τιμής: 0

Σημείωση Το σύμβολο κράτησης θέσης <version_number>είναι v4.0.30319 ή v2.0.50727, ανάλογα με την έκδοση.

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

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

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

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

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

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

Για περισσότερες πληροφορίες σχετικά με τον τρόπο λήψης αρχείων υποστήριξης της 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, πρέπει επίσης να προσθέσετε το ακόλουθο δευτερεύον κλειδί μητρώου:
</version_number>
Θέση του μητρώου:
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, ανάλογα με την έκδοση.

</version_number>

Μέθοδος 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\AppContext
    HKEY_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 που παραλήφθηκαν:<GET></GET>
Κεντρικός υπολογιστής: contoso.com
Παράγοντας χρήστη: Δοκιμή εφαρμογής

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

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

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

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

>>>>>

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί με μηχανική μετάφραση

Eigenschaften

Artikelnummer: 3155464 – Letzte Überarbeitung: 05/11/2016 00:41:00 – Revision: 1.0

Microsoft .NET Framework 4.6.1, Microsoft .NET Framework 4.6, Microsoft .NET Framework 4.5.2, Microsoft .NET Framework 3.5.1, Microsoft .NET Framework 3.5, Microsoft .NET Framework 2.0 Service Pack 2

  • kbsecvulnerability kbsecurity kbsecbulletin kbfix kbexpertiseinter kbbug atdownload kbmt KB3155464 KbMtel
Feedback