.NET framework verzija 3.5 SP1 i starije verzije nisu pružile podršku aplikacijama za korišćenje transport Layer Security (TLS) sistemskih podrazumevanih verzija kao šifrovanog protokola. Ova ispravka omogućava korišćenje TLS v1.2 u .NET Framework 3.5 SP1.
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 KB3154520 zamenjena je najnovijim ispravkama za .NET Framework, koje sadrže sve ispravke koje su prethodno uključene u KB3154520. 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 na sledeći način:
-
Aplikacije koje koriste ServicePointManager AČI-je zasnovane na usluzi mogu da podese protokol na sledeći broj:
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 registrator pomenut u prvom pasusu postavljen, a u aplikaciji vrednost SslProtocols je postavljena kao SslProtocols.None, bira se podrazumevano ponašanje sistema koje će zavisiti od verzije operativnog sistema Windows.
Takođe, kada menjate kôd aplikacije da biste omogućili podršku za TLS v1.2 sa sistemom .NET Framework 3.5 SP1, trebalo bi da se uverite da na računarima na kojima ova zakrpa nije primenjena rukujete sledećim izuzecima izbačenim:-
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, APOMENE zasnovane na SslStream-u daće se kada pozivate bilo koji od APACIJA AUTENTI ZA AuthenticateAs*:
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 Tls-om 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 podešene ključem registratora koji je ranije pomenut za određene aplikacije, to možete uraditi dodavanjem sledećeg ključa registratora:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions <<Kompletna 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 |