.NET framework verzija 2.0 Service Pack 2 (SP2) i starije verzije po zadanom su kodirane korištenje SSL (Secure Sockets Layer) v3.0 i Transport Layer Security (TLS) v1.0, osim ako aplikacija .NET nije naveli drugu verziju protokola. Ovo ažuriranje za .NET Framework 2.0 SP2 u sustavima Windows Vista SP2 i Windows Server 2008 SP2 dodaje mogućnost korištenja SSL i TLS zadanih postavki koje pruža operacijski sustav.
Napomena Taj je sadržaj dostupan na servisu Windows Update. Da biste dobili sadržaj, pregledajte Windows ažuriranje radi najnovijih .NET Framework ažuriranja. Ako je vaš sustav u potpunosti auteran putem Windows update, ne morate poduzeti daljnje radnje.
Rješenje
Preuzimanje informacija
Hitni popravak koji odgovara ažuriranju KB3154517 zamjenjuje se najnovijim ažuriranjima sustava .NET Framework, koja sadrže sve popravke koji su prethodno obuhvaćeni ažuriranjem KB3154517. Preporučuje se da instalirate najnovija ažuriranja .NET Framework. U ovom smo području napravili sljedeća poboljšanja:
-
Sljedeće ključeve registra moguće je postaviti tako da koriste zadane postavke operacijskog sustava za SSL i TLS, a ne za .NET Framework za upravljane aplikacije pokrenute na računalu.
-
Za 64-bitne operacijske sustave:[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 operacijske sustave:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
Napomena Ako je aplikacija postavili ServicePointManager.SecureProtocol u kodu ili putem konfiguracijskih datoteka na određenu vrijednost ili koristi API-je SslStream.AuthenticateAs* da bi naveli određeni SslProtocols enum, ponašanje postavki registra neće se dogoditi.
-
-
Osim toga, dodali smo enumeraciju SslProtocolsExtensions koju možete koristiti kao mogućnost postavljanja svojstva TLS v1.2, TLS v1.1 te zadanih postavki operacijskog sustava za svojstvo ServicePointManager.SecurityProtocol prilikom ciljanja verzije .NET framework 2.0 SP2. (Informacije o korištenju proširenja potražite u odjeljku Smjernice za razvojne inženjere.)
Napomena Windows vista SP2 i Windows Server 2008 SP2 ne podržavaju verzije protokola Transport Layer Security (TLS) novije od 1.0. Upravljane .NET Framework 2.0 SP2 pokrenute u sustavu Windows Vista SP2 ili Windows Server 2008 SP2 ne mogu koristiti TLS 1.2 ili TLS 1.1, čak i ako su ti protokoli postavljeni u svojstvo ServicePointManager.SecurityProtocol.
Dodatne informacije o preuzimanju Microsoftovih datoteka podrške potražite u članku iz Microsoftove baze znanja pod brojem
119591 Kako nabaviti Datoteke Microsoftove podrške s internetskih servisa Microsoft je skenirao tu datoteku radi virusa. Microsoft je koristio najatragniji softver za otkrivanje virusa koji je bio dostupan na datum objave datoteke. Datoteka se pohranjuje na poslužitelje poboljšane sigurnosti koji sprječavaju neovlaštene promjene datoteke.
Smjernice za razvojne inženjere
Definicija novih proširenja nalaze se u sljedećim datotekama:
-
SecurityProtocolTypeExtensions.csnamespace System.Net
{ pomoću značajke System.Security.Authentication; public static class SecurityProtocolTypeExtensions { javni const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12; javni const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11; javni const SecurityProtocolType SystemDefault = (SecurityProtocolType)0; } } -
SslProtocolsExtensions.csnamespace System.Security.Authentication
{ public static class SslProtocolsExtensions { javni const SslProtocols Tls12 = (SslProtocols)0x00000C00; javni konst SslProtocols Tls11 = (SslProtocols)0x00000300; } }
Da biste uvrstili podršku za TLS v1.2, uvrsti izvorne datoteke u projekt, a zatim postavite verziju protokola na sljedeći način:
-
Aplikacije koje koriste API-je utemeljene na servisu ServicePointManager mogu postaviti protokol pomoću sljedećeg:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12; -
Aplikacije koje koriste SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) mogu postaviti vrijednost SslProtocols kao SslProtocolsExtensions.Tls12.
Ako je postavljena postavka registra navedena u prvom odlomku, a odabrana vrijednost SslProtocols postavljena je u aplikaciji kao SslProtocols.None, odabrano zadano ponašanje sustava ovisit će o odabranoj verziji Windows.
Kada promijenite kod aplikacije da biste omogućili podršku za TLS v1.2 uz .NET Framework 3.5 SP1, provjerite jeste li na računalima na kojima se ta zakrpa ne implementira:-
Ako hitni popravak nije instaliran, API-jeva utemeljenih na servisu ServicePointManager (HTTP, FTP, SMTP) odbacit će "System.NotSupportedException: zatraženi sigurnosni protokol nije podržan" kada aplikacija nazove ServicePointManager.SecurityProtocol da bi postavili novu vrijednost.
-
Ako hitni popravak nije instaliran, API-jeve utemeljene na SslStream-u odbacit će iznimke kada nazivaju bilo koji od API-ja AuthenticateA*:
System.ArgumentException: navedena vrijednost nije valjana u enumeraciji 'SslProtocolType'.
Naziv parametra: sslProtocolType
Napomena Samo za SslStream, kombinaciju Tls12, Tls11 s bilo kojim postojećim Tls-om, Ssl3, Ssl2 (na primjer: Tls12 | Tls11 | Tls) tiho će se unazaditi na postojeće protokole (na primjer: Tls) na sustavu bez zakrpe. Povezivati će se s Tls-om bez bacanja iznimke.
Dodatne informacije
Da biste TLS v1.1 ili v1.2 omogućili kao zadane postavke operacijskog sustava, slijedite upute u članku https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12. Napomena TLS v1.1 i v1.2 nisu dostupni u sustavu Windows Vista ili Windows Server 2008. Ako morate onemogućiti zadane postavke operacijskog sustava postavljene ključem registra koji se spominje u odjeljku "Rješenje" za određene aplikacije, to možete učiniti dodavanjem sljedećeg ključa registra:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions <<Cijeli put .exe za datoteku>> DWORD 0 C:\MyApp\MyApp.exe DWORD 0
Dodatne informacije o TLS v1.2 potražite u članku Uvod u TLS v1.2. Kada omogućite ključ registra SystemDefaultTlsVersions .NET, za svaku se verziju sustava Windows, kao što je prikazano u sljedećoj tablici.
Windows verzija |
Klijent za SSL2 |
SSL2 Server |
Klijent za SSL3 |
SSL3 poslužitelj |
TLS 1.0 Client |
TLS 1.0 Poslužitelj |
TLS 1.1 Client |
TLS 1.1 Server |
TLS 1.2 Client |
TLS 1.2 Server |
---|---|---|---|---|---|---|---|---|---|---|
Windows Vista SP2 i Windows Server 2008 SP2 |
Isključeno |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
N/A |
N/A |
N/A |
N/A |
Windows 7 SP1 i Windows Server 2008 R2 SP1 |
Isključeno |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Isključeno |
Isključeno |
Isključeno |
Isključeno |
Windows Server 2012 |
Isključeno |
Isključeno |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Windows 8.1 i Windows Server 2012 R2 |
Isključeno |
Isključeno |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Windows 10 |
Isključeno |
Isključeno |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Windows 10 (1511) |
Isključeno |
Isključeno |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Windows 10 (1607) i Windows Server 2016 |
N/A |
N/A |
Isključeno |
Isključeno |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |
Na stranici |