.NET framework verzija 2.0 servisni paket 2 (SP2) i starije verzije su čvrsto kodovale korišćenje Secure Sockets Layer (SSL) v3.0 i Transport Layer Security (TLS) v1.0, osim ako .NET aplikacija nije navela drugu verziju protokola. Ova ispravka za .NET Framework 2.0 SP2 u operativnim sistemima Windows Vista SP2 i Windows Server 2008 SP2 dodaje opciju za korišćenje podrazumevanih vrednosti za SSL i TLS koje pruža operativni sistem.
Napomogućeno Ovaj sadržaj je dostupan na lokaciji Windows Ažuriraj. Da biste dobili sadržaj, skenirajte Windows ažurirajte da biste dobili najnovije .NET Framework ispravke. Ako je sistem u potpunosti ažuriran putem usluge Windows Update, ne morate da preduzmete dodatne radnje.
Rezolucija
Preuzimanje informacija
Hitna ispravka koja odgovara KB3154517 zamenjena je najnovijim ispravkama za .NET Framework, koje sadrže sve ispravke koje su prethodno uključene u KB3154517. Preporučuje se da instalirate najnovije ispravke sistema .NET Framework. Napravili smo sledeća poboljšanja u ovoj oblasti:
-
Sledeći ključevi registratora mogu se podesiti tako da koriste podrazumevane vrednosti operativnog sistema za SSL i TLS umesto hardcoded .NET Framework podrazumevanih vrednosti za kontrolisanu aplikaciju pokrenutu na računaru.
-
Za 64-bitne operativne sisteme:[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 -
Za 32-bitne operativne sisteme:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
Na primer, ako je aplikacija podesila ServicePointManager.SecureProtocol u kodu ili putem konfigurisanja datoteka na određenu vrednost ili koristi SslStream.AuthenticateAs* APA-je da bi odredila određeni SslProtocols enum, ponašanje postavki registratora se ne dešava.
-
-
Pored toga, dodali smo navode SslProtocolsExtensions koje možete da koristite kao opciju za podešavanje TLS v1.2, TLS v1.1, kao i podrazumevanih vrednosti operativnog sistema za svojstvo ServicePointManager.SecurityProtocol prilikom ciljanja .NET framework verzije 2.0 SP2. (Informacije o tome kako se koriste proširenja potražite u odeljku "Vodič za projektante".)
Imajte na Windows Vista SP2 i Windows Server 2008 SP2 ne podržavaju Transport Layer Security (TLS) verzije protokola novije od 1.0. Kontrolisane .NET Framework 2.0 SP2 aplikacije pokrenute u operativnim sistemima Windows Vista SP2 ili Windows Server 2008 SP2 ne mogu da koriste TLS 1.2 ili TLS 1.1, čak i ako su ti protokoli podešeni u svojstvu ServicePointManager.SecurityProtocol.
Za više informacija o tome kako da preuzmete datoteke Microsoft podrške kliknite na sledeći broj članka da biste prikazali članak u Microsoft bazi znanja:
119591 Kako da nabavite datoteke Microsoft podrške iz usluga na mreži Microsoft je skenirao ovu datoteku zbog virusa. Microsoft je koristio najnoviji softver za otkrivanje virusa koji je dostupan na datum kada je datoteka objavljena. Datoteka se skladišti na serverima poboljšanim bezbednostima koji sprečavaju sve neovlašćene promene u datoteci.
Vodič za projektante
Definicija novih proširenja su u sledećim datotekama:
-
SecurityProtocolTypeExtensions.csnamespace System.Net
{ using System.Security.Authentication; public static class SecurityProtocolTypeExtensions { public const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12; public const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11; public const SecurityProtocolType SystemDefault = (SecurityProtocolType)0; } } -
SslProtocolsExtensions.csnamespace System.Security.Authentication
{ public static class SslProtocolsExtensions { public const SslProtocols Tls12 = (SslProtocols)0x00000C00; public const SslProtocols Tls11 = (SslProtocols)0x00000300; } }
Da biste uključili podršku za TLS v1.2, uključite izvorne datoteke u projekat, a zatim podesite verziju protokola koristeći sledeće metode:
-
Aplikacije koje koriste ServicePointManager ABI-je zasnovane na usluzi mogu da podese protokol na sledeći način:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12; -
Aplikacije koje koriste SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) preopterećenje može da postavi SslProtocols vrednost kao SslProtocolsExtensions.Tls12.
Ako je postavljena postavka registratora koja je pomenuta u prvom pasusu, a vrednost SslProtocols je u aplikaciji postavljena kao SslProtocols.None, podrazumevano ponašanje sistema koje je odabrano zavisiće od Windows verzije.
Takođe, kada promenite kôd aplikacije da biste omogućili podršku za TLS v1.2 za .NET Framework 3.5 SP1, trebalo bi da proverite da li ste rešili sledeće izuzetke na računarima na kojima se ova zakrpa ne primenjuje:-
Ako hitna ispravka nije instalirana, API-je zasnovane na usluzi ServicePointManager (HTTP, FTP, SMTP) daće "System.NotSupportedException: Traženi bezbednosni protokol nije podržan" kada aplikacija poziva ServicePointManager.SecurityProtocol da postavi novu vrednost.
-
Ako hitna ispravka nije instalirana, ANIM-je zasnovan na SslStream-u izuzeci će izuzeci biti kada pozivaju bilo koji od APACIJA AUT-JA AUT-JA potvrde identiteta:
System.ArgumentException: Navedena vrednost nije važeća u navodu "SslProtocolType".
Ime parametra: sslProtocolType
Na primer, samo za SslStream, kombinaciju Tls12, Tls11 sa bilo kog postojećeg TLS, Ssl3, Ssl2 (na primer: Tls12 | Tls11 | Tls) će tiho preći na postojeće protokole (na primer: Tls) na sistemu bez zakrpe. On će se povezati sa Tlsima bez izuzeka.
Više informacija
Da biste omogućili TLS v1.1 ili v1.2 kao podrazumevane vrednosti operativnog sistema, pratite uputstva na lokaciji https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12. Napomilajte da TLS v1.1 i v1.2 nisu dostupni u operativnim Windows Vista ili Windows Server 2008. Ako morate da onemogućite podrazumevane vrednosti operativnog sistema postavljene po ključu registratora koji je pomenut u odeljku "Rezolucija" za određene aplikacije, to možete da uradite tako što ćete dodati sledeći ključ registratora:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions <<Puna putanja domena .exe za datoteku>> DWORD 0 C:\MyApp\MyApp.exe DWORD 0
Više informacija o TLS v1.2 potražite u temi Uvod u TLS v1.2. Kada omogućite ključ registratora SystemDefaultTlsVersions .NET, dešava se drugačije ponašanje za svaku verziju Windows, kao što je prikazano u sledećoj tabeli.
Windows verzija |
SSL2 klijent |
SSL2 Server |
SSL3 klijent |
SSL3 Server |
TLS 1.0 klijent |
TLS 1.0 Server |
TLS 1.1 klijent |
TLS 1.1 Server |
TLS 1.2 klijent |
TLS 1.2 Server |
---|---|---|---|---|---|---|---|---|---|---|
Windows Vista SP2 i Windows Server 2008 SP2 |
Isključeno |
On |
On |
On |
On |
On |
Nije proignosano |
Nije proignosano |
Nije proignosano |
Nije proignosano |
Windows 7 SP1 i Windows Server 2008 R2 SP1 |
Isključeno |
On |
On |
On |
On |
On |
Isključeno |
Isključeno |
Isključeno |
Isključeno |
Windows Server 2012 |
Isključeno |
Isključeno |
On |
On |
On |
On |
On |
On |
On |
On |
Windows 8.1 i Windows Server 2012 R2 |
Isključeno |
Isključeno |
On |
On |
On |
On |
On |
On |
On |
On |
Windows 10 |
Isključeno |
Isključeno |
On |
On |
On |
On |
On |
On |
On |
On |
Windows 10 (1511) |
Isključeno |
Isključeno |
On |
On |
On |
On |
On |
On |
On |
On |
Windows 10 (1607) i Windows Server 2016 |
Nije proignosano |
Nije proignosano |
Isključeno |
Isključeno |
On |
On |
On |
On |
On |
On |