Versiunea .NET Framework 3.5 SP1 și versiunile mai vechi nu oferă suport pentru aplicațiile care utilizează versiunile implicite de sistem Transport Layer Security (TLS) ca protocol criptografic. Această actualizare permite utilizarea TLS v1.2 în .NET Framework 3.5 SP1.

NotăAcest  conținut a fost pus la dispoziție în Windows Update. Pentru a obține conținutul, scanați și Windows Update pentru cele mai recente .NET Framework actualizări. Dacă sistemul dvs. este complet actualizat prin intermediul Windows Update, nu trebuie să luați măsuri suplimentare.

Rezolvare

Descărcarea informațiilor

Remedierea rapidă care corespunde cu KB3154520 a fost suprasponicată cu cele mai recente actualizări de .NET Framework, care conțin toate remedierile care au fost incluse anterior în KB3154520. Se recomandă să instalați cele mai recente actualizări de .NET Framework.

Am făcut următoarele îmbunătățiri în acest domeniu:

  • Următoarele chei de registry pot fi setate să utilizeze valorile implicite ale sistemului de operare pentru SSL și TLS în locul valorilor implicite de .NET Framework codate pentru o aplicație gestionată care rulează pe computer.
     

    • Pentru sisteme de operare pe 64 de biți:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

      [HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

    • Pentru sisteme de operare pe 32 de biți:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

    Notă Dacă aplicația a setat ServicePointManager.SecureProtocol în cod sau prin configurarea fișierelor la o anumită valoare sau utilizează API-urile SslStream.AuthenticateAs* pentru a specifica un anumit SSLProtocols enum, comportamentul setării de registry nu are loc.
     

  • În plus, am adăugat sslProtocolsExtensions pe care le puteți utiliza ca opțiune pentru setarea TLS v1.2, TLS v1.1, precum și valorile implicite ale sistemului de operare pentru proprietatea ServicePointManager.SecurityProtocol atunci când țintiți spre .NET Framework versiunea 2.0 SP2. (Consultați secțiunea Instrucțiuni pentru dezvoltatori pentru informații despre utilizarea extensiilor.)

    Rețineți Windows Vista SP2 și Windows Server 2008 SP2 nu acceptă versiunile de protocol Transport Layer Security (TLS) mai noi decât 1.0. Aplicațiile .NET Framework 2.0 SP2 gestionate care rulează pe Windows Vista SP2 sau Windows Server 2008 SP2 nu pot utiliza TLS 1.2 sau TLS 1.1, chiar dacă aceste protocoale sunt setate în proprietatea ServicePointManager.SecurityProtocol.


Pentru mai multe informații despre descărcarea fișierelor de asistență Microsoft, faceți clic pe următorul număr de articol pentru a vizualiza articolul din Baza de cunoștințe Microsoft:

119591 Cum să obțineți fișiere de asistență Microsoft de la serviciile online Microsoft a scanat acest fișier împotriva virușilor. Microsoft a utilizat cel mai recent software de detectare a virușilor care a fost disponibil la data postării fișierului. Fișierul este stocat pe servere cu securitate îmbunătățită care previn modificările neautorizate ale fișierului.
 

Instrucțiuni pentru dezvoltatori

Definiția noilor extensii se află în următoarele fișiere:
 

  • SecurityProtocolTypeExtensions.csnamespace System.Net
    {
    utilizând System.Security.Authentication;
    public static class SecurityProtocolTypeExtensions
    {
    const public SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12;
    const public SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11;
    const public SecurityProtocolType SystemDefault = (SecurityProtocolType)0;
    }
    }

  • SslProtocolsExtensions.csnamespace System.Security.Authentication
    {
    SslProtocolsExtensions pentru clasa statică publică
    {
    const public SslProtocols Tls12 = (SslProtocols)0x00000C00;
    const public SslProtocols Tls11 = (SslProtocols)0x00000300;
    }
    }

Pentru a include suportul pentru TLS v1.2, includeți fișierele sursă în proiect și setați versiunea de protocol utilizând următoarele metode:
 

  • Aplicațiile care utilizează API-uri bazate pe ServicePointManager pot seta protocolul utilizând următoarele:

    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;

  • Aplicațiile care utilizează supraîncărcarea SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) poate seta valoarea SslProtocols ca SslProtocolsExtensions.Tls12.

Dacă registry-ul menționat în primul paragraf este setat și în aplicație valoarea SslProtocols este setată ca SslProtocols.None, atunci este ales comportamentul implicit al sistemului care va depinde de versiunea Windows Operating System.

De asemenea, atunci când modificați codul de aplicație pentru a activa suportul pentru TLS v1.2 cu .NET Framework 3.5 SP1, trebuie să vă asigurați că pe computerele pe care nu este implementată această corecție, gestionați următoarele excepții lansate:
 

  1. Dacă remedierea rapidă nu este instalată, API-urile bazate pe ServicePointManager (HTTP, FTP, SMTP) vor debarasa "System.NotSupportedException: Protocolul de securitate solicitat nu este acceptat." atunci când aplicația apelează ServicePointManager.SecurityProtocol pentru a seta noua valoare.

  2. Dacă nu este instalată remedierea rapidă, API-urile bazate pe SslStream vor fi deasfișate când se apelează oricare dintre API-urile AuthenticateAs*:

    System.ArgumentException: Valoarea specificată nu este validă în enumerarea "SslProtocolType".
    Nume parametru: sslProtocolType

Notă Doar pentru SslStream, o combinație de Tls12, Tls11 cu oricare dintre Tls existente, Ssl3, Ssl2 (de exemplu: Tls12 | Tls11 | Tls) va retrograda silențios protocoalele existente (de exemplu: Tls) pe un sistem fără corecție. Acesta se va conecta cu Tls fără să cuoată excepția.
 

Mai multe informații

Pentru a activa TLS v1.1 sau v1.2 ca implicite pentru sistemul de operare, urmați instrucțiunile de la https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.

Rețineți că TLS v1.1 și v1.2 nu sunt disponibile în Windows Vista sau Windows Server 2008.

Dacă trebuie să dezactivați setările implicite ale sistemului de operare setate de cheia de registry menționată anterior pentru anumite aplicații, aceasta poate fi efectuată adăugând următoarea cheie de registry:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions
<<Calea completă a .exe-ului pentru fișierul>> DWORD 0
C:\MyApp\MyApp.exe DWORD 0

Pentru mai multe informații despre TLS v1.2, consultați Introducere în TLS v1.2.

După ce activați cheia de registry SystemDefaultTlsVersions .NET, are loc un comportament diferit pentru fiecare versiune de Windows, așa cum se arată în următorul tabel.
 

Windows versiune

SSL2 Client

SSL2 Server

SSL3 Client

SSL3 Server

TLS 1.0 Client

TLS 1.0 Server

TLS 1.1 Client

TLS 1.1 Server

TLS 1.2 Client

TLS 1.2 Server

Windows Vista SP2 și Windows Server 2008 SP2

Dezactivat

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Ne/A

Ne/A

Ne/A

Ne/A

Windows 7 SP1 și Windows Server 2008 R2 SP1

Dezactivat

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dezactivat

Dezactivat

Dezactivat

Dezactivat

Windows Server 2012

Dezactivat

Dezactivat

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Windows 8.1 și Windows Server 2012 R2

Dezactivat

Dezactivat

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Windows 10

Dezactivat

Dezactivat

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Windows 10 (1511)

Dezactivat

Dezactivat

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Windows 10 (1607) și Windows Server 2016

Ne/A

Ne/A

Dezactivat

Dezactivat

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Dați clic pe

Aveți nevoie de ajutor suplimentar?

Extindeți-vă competențele
Explorați instruirea
Fiți primul care obține noile caracteristici
Alăturați-vă la Microsoft Insider

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?

Vă mulțumim pentru feedback!

×