Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Rezumat

O vulnerabilitate de dezvăluire informații există în Protocolul de Transport Layer Security și protocolul Secure Sockets Layer (TLS/SSL), implementat în componenta de criptare Microsoft .NET Framework. Un atacator care speculează cu succes acest element vulnerabil poate decripta criptate traficul TLS/SSL.

Pentru vulnerabilitatea de exploit, un atacator ar trebui mai întâi să injecta nonencrypted date canal de securitate și apoi efectuați un om în mijlocul (MiTM) atac între clientul cu țintă și un server legitime. Această actualizare rezolvă o vulnerabilitate modificând modul în care componenta de criptare .NET trimite şi primește pachete de rețea criptat.

Această vulnerabilitate este stabilită ca parte a Microsoft buletinul de securitate MS16-065. Această actualizare schimbă modul în care componenta .NET Framework criptare trimite și primește criptat rețea pachete.

Următorul tabel conține linkuri către intrarea standard pentru fiecare vulnerabilitate în lista de vulnerabilități comune și expunerile.

Titlu de vulnerabilitate

Număr CVE

Publicului

Exploatată

Vulnerabilitate Spoofing TLS/SSL

CVE-2016-0149

da

Nu

Vulnerabilitate rezolvare

Modificarea introdusă în Microsoft buletinul de securitate MS16-065 face prima înregistrare TLS după handshake să fie împărţit. Acest lucru provoacă SslStream, WebRequest (HttpWebRequest, FtpWebRequest), SmtpClient și HttpClient (în cazul în care se bazează pe HttpWebRequest) fluxuri pentru a returna un singur octet pentru citire primul, urmat imediat de octeți de repaus (n-1) în Citeşte succesive. Această modificare de comportament se produce numai pentru aplicații care utilizează TLS 1.0 + Cipher Block Chaining, dar când se utilizează TLS 1.1 sau TLS 1.2.

Notă Ca cerință prealabilă, trebuie să instalați Microsoft buletinul de securitate MS12-006 pentru a activa această actualizare.

Această modificare poate provoca unele aplicații bazate pe .NET Framework pentru a întrerupe. Acest articol descrie două metode, aveți posibilitatea să utilizați pentru a actualiza aplicația să funcționeze corect după ce aplicați Microsoft buletinul de securitate MS16-065.

Mitigations pentru probleme de compatibilitate

Opțiunea 1: Comutare la Protocolul TLS 1.2

Această opțiune face aplicația utilizează protocolul TLS 1.2 modificarea valorilor din registry sau prin programare configurarea versiunea de protocol.

  • Modificarea registry

    Important
    Urmați pașii din această secțiune cu atenție. Dacă modificați registry-ul incorect, pot apărea probleme grave. Înainte să modifica, copierea de rezervă a registry pentru restaurare în cazul în care apar probleme.

    .NET Framework 4.0 și .NET Framework 4.5.x aplicațiile care se execută pe .NET Framework 4.5 și versiunile ulterioare pot comuta protocol implicit la TLS 1.2, TLS 1.1 și TLS 1.0 activând cheia de registry SchUseStrongCrypto . Această cheie de registry este discutate în secțiunea Sugerat acțiuni de Microsoft Security Advisory 2960358 subiect pe site-ul Web Microsoft TechNet.

    Important Această modificare de registry va funcționa numai dacă următoarele condiții sunt adevărate:

    • Aplicațiile care utilizează API-uri bazate pe ServicePointManager sunt setarea valorii ServicePointManager.SecurityProtocol în mod explicit . Exemple de astfel de clase includ System.Net.Http.HttpClient, System.Net.FtpWebRequest, System.Net.HttpWebRequestși System.Net.Mail.SmtpClient. Setarea ServicePointManager.SecurityProtocol în cod are prioritate faţă de registry.

    • Aplicații care folosesc suprasarcină SslStream AuthenticateAsClient(String) .


  • Configurare prin programare versiunea de protocol

    .NET Framework 4.0 și 4,5 aplicațiile care se execută pe .NET Framework 4.5 și versiunile ulterioare și care utilizează SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) suprasarcină trebuie să fie recompilat, specificând SslProtocols.Tls12, SslProtocols.Tls11și SslProtocols.Tls ca al treilea parametru. Pentru o descriere completă de modul de utilizare a clasei SslStream, consultați subiectul SslStream Class pe site-ul Web Microsoft Developer (MSDN).

    Notă .NET Framework 4.6 și versiunile ulterioare utilizează TLS 1.2, TLS 1.1 și TLS 1.0 ca protocol implicite. Acest lucru este discutat în Microsoft Security Advisory 2960358 subiect pe site-ul Web Microsoft TechNet.


Opțiunea 2: Handle pachete de separare

Această actualizare determină o singură înregistrare pentru a fi împărțite în mai multe înregistrări. De aceea, dacă o aplicație este dorind înregistrare să fie disponibil într-un singur apel de citire , astfel de aplicații poate întrerupe. Pentru a vă asigura că aplicația se comportă corect, Verificați că aplicația tratează divizată pachete prin efectuarea apelul Stream.Read corect. Utilizați eșantion cod disponibile aici ca o referință pentru modul de rezolvare a aplicației pentru a efectua corect apelul de citire .

Pentru o solicitare de HTTP eșantion care arată diferenţa de comportament înainte (cu afluxului) și după (fără afluxului) s-au instalat actualizări 3147461 și 3147458 , consultați secțiunea "Mai multe informații".

Pentru un exemplu complet de metoda Stream.Read , consultați subiectul Stream.Read metoda (Byte [], Int32, Int32) pe site-ul Web Microsoft Developer (MSDN).

Soluții la problemele de compatibilitate a aplicațiilor

Avertisment Aceste soluții poate face computerul sau eaua mai vulnerabile la atacuri produse de utilizatori rău intenționați sau de software rău intenționat, cum ar fi viruși. Noi nu recomandăm aceste soluții, dar oferim aceste informații, astfel încât să aveți posibilitatea să implementați aceste soluții la propria discretie. Utilizați aceste soluții pe propriul risc.

Metoda 1: Actualizare cheile de registry (disponibil pentru toate versiunile de .NET Framework)

Dezactivați structura SCH_SEND_AUX_RECORD (global)

Dezactivați SCH_SEND_AUX_RECORD structura pentru aplicațiile individuale

Dezactivați SCH_SEND_AUX_RECORD structura (global)

Pentru toate aplicațiile, adăugați următoarea subcheie de registry:

Locație registry: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number >
Numele DWORD: SchSendAuxRecord
Value data: 0
Notă Substituentul < version_number > este v4.0.30319 sau v2.0.50727, în funcţie de versiunea.

Pentru 32-bit aplicaţii care se execută pe computere pe 64 de biți, de asemenea, adăugați următoarea subcheie de registry:

Locație registry: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number >
Numele DWORD: SchSendAuxRecord
Value data: 0
Notă Substituentul < version_number > este v4.0.30319 sau v2.0.50727, în funcţie de versiunea.

Soluție

Pentru a dezactiva temporar modul de siguranță descrise în acest articol, faceți clic pe legătura corespunzătoare pentru a descărca un fișier .reg, și apoi faceți dublu clic pe fișierul .reg descărcat pentru a face modificările din registry.

Pentru aplicații de orientare Microsoft .NET Framework 3.5:

Download Descărcați fișierul ManualOptOutSchSendAuxRecord20.reg acum.
Pentru aplicații de orientare Microsoft .NET Framework 4.0 și versiunile mai recente:

Download Descărcați fișierul ManualOptOutSchSendAuxRecord40.reg acum.
Pentru a reactiva modul de siguranță descrise în acest articol, faceți clic pe legătura corespunzătoare pentru a descărca un fișier .reg, și apoi faceți dublu clic pe fișierul .reg descărcat pentru a face modificările din registry.

Pentru aplicații Microsoft .NET Framework 3.5 de orientare:

Download Descărcați fișierul ManualOptInSchSendAuxRecord20.reg acum.
Pentru aplicații de orientare Microsoft .NET Framework 4.0 și versiunile mai recente:

Download Descărcați fișierul ManualOptInSchSendAuxRecord40.reg acum.
Pentru mai multe informaţii despre cum să descărcați fișierele de suport Microsoft, faceţi clic pe următorul număr de articol pentru a vedea articolul în baza de cunoştinţe Microsoft:

119591 cum se obțin fișierele de asistență Microsoft de la serviciile onlineMicrosoft a scanat acest fișier pentru viruşi. Microsoft utilizează cele mai actualizate software pentru detectarea virușilor care sunt disponibile la data la care fișierul a fost postat. Fisierul este stocat pe servere securizate care ajută la împiedicarea modificărilor neautorizate a fișierului.


Dezactivați SCH_SEND_AUX_RECORD structura pentru aplicațiile individuale

Pentru toate aplicațiile, adăugați următoarea subcheie de registry:

Locație registry: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
Numele DWORD: Calea către pentru .exe aplicație (de exemplu, C:\MyApp\MyApp.exe)
Value data: 0
Notă Substituentul < version_number > este v4.0.30319 sau v2.0.50727, în funcţie de versiunea.

Pentru 32-bit aplicaţii care se execută pe computere pe 64 de biți, de asemenea, adăugați următoarea subcheie de registry:

Locație registry: HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\. NETFramework\ < version_number > \System.Net.ServicePointManager.SchSendAuxRecord
Numele DWORD: Calea către pentru .exe aplicație (de exemplu, C:\MyApp\MyApp.exe)
Date valoare: 0 (valabil numai valoarea este 0. Orice altă valoare va fi ignorată.)
Notă Substituentul < version_number > este v4.0.30319 sau v2.0.50727, în funcţie de versiunea.

Metoda 2: Schimba configurația la nivel de aplicație (disponibil numai pentru .NET Framework versiunea 4.6 și versiuni ulterioare)

Începând cu .NET Framework 4.6, puteți modifica configurația la un nivel de aplicație prin modificările de configurare sau registry cod sau o aplicație.

În .NET Framework 4.6, puteți seta parametrul utilizând oricare dintre următoarele metode. Aceste exemple dezactivează caracteristica de securitate.

  • Prin programare

    Primul lucru pe care ar trebui să facă aplicația se execută codul următor. Aceasta se întâmplă deoarece Service Point Manager va inițializează numai o singură dată.

    private const string DisableCachingName = @"TestSwitch.LocalAppContext.DisableCaching"; private const string DontEnableSchSendAuxRecordName = @"Switch.System.Net.DontEnableSchSendAuxRecord"; 
    AppContext.SetSwitch(DisableCachingName, true);
    AppContext.SetSwitch(DontEnableSchSendAuxRecordName , true);
  • Configurare aplicaţie

    Pentru a modifica configurația aplicației, adăugați următoarea intrare:

    <runtime><AppContextSwitchOverrides value="Switch.System.Net.DontEnableSchSendAuxRecord=true"/>
    </runtime>
  • Cheie de registry (computer global)

    Locații din registry: HKEY_LOCAL_MACHINE\Software\Microsoft\. NETFramework\AppContextHKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\Microsoft\. NETFramework\AppContext
    Valoare: Switch.System.Net.DontEnableSchSendAuxRecord
    Tip: Șir
    Valoare: Adevărate

    Notă Switch.System.Net.DontEnableSchSendAuxRecord = False pentru toate aplicațiile.

Mai multe informații

Iată un model de comunicare Client/Server eșantion înainte și după instalarea acestei actualizări. Aceste informații se furnizează în scop ilustrativ pentru a identifica orice aplicație spargerii din cauza instalării această remediere.

Fără afluxului

Cu afluxului

[Server] aşteptare pentru conexiuni (127.0.0.1:4431)
[Client] Conectarea la localhost:4431
[Server] Client conectat.
[Client] Conectat. Autentificare...
[Server] Clientul autentificat.
[Client] Trimiterea solicitării (94 octeți)
[Client] Așteaptă răspuns...

[Server] Primit 94 octeți: <<< obțineți / HTTP/1.0
Host: contoso.com
User-Agent: Testarea aplicații

>>>
[Server] A răspuns cu 476 octeți.

[Client 1: 476 Bytes] Răspuns: <<<<< HTTP/1.1 200 OK

>>>>>

[Server] aşteptare pentru conexiuni (127.0.0.1:4431)
[Client] Conectarea la localhost:4431
[Server] Client conectat.
[Client] Conectat. Autentificare...
[Server] Clientul autentificat.
[Client] Trimiterea solicitării (94 octeți)
[Client] Așteaptă răspuns...
[Server] Primit 1 octeți: <<< G >>>
[Server] Primit 93 octeți: <<< ET / HTTP/1.0
Host: contoso.com
User-Agent: Testarea aplicații

>>>
[Server] A răspuns cu 476 octeți.
[Client octeți 1: 1] Răspuns: <<<<< H >>>>>
[Client 2: 475 Bytes] Răspuns: <<<<< TTP/1.1 200 OK

>>>>>


Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×