.NET framework 3.5 ir ankstesnės versijos nepalaiko programų, kurios naudoja transportavimo lygmens saugos (TLS) sistemos numatytąsias versijas kaip šifravimo protokolą. Šis naujinimas įgalina TLS v1.2 naudojimą .NET Framework 3.5.
PastabaŠis turinys buvo pasiekiamas Windows naujinime. Norėdami gauti turinį, nuskaitykite Windows naujinimą, kad gautumėte naujausius .NET Framework naujinimus. Jei jūsų sistema yra visiškai atnaujinta naudojant Windows naujinimą, nereikia imtis tolesnių veiksmų.
Sprendimas
Atsisiųsti informaciją
Šias karštąsias pataisas, kurios atitinka KB3154519, buvo pakeisti naujausiais ".NET Framework" naujinimais, kuriuose yra visos pataisos, kurios anksčiau buvo įtrauktos į KB3154519. Rekomenduojama įdiegti naujausius ".NET Framework" naujinimus. Šioje srityje atlikome šiuos patobulinimus:
-
Šiuos registro raktus galima nustatyti naudoti SSL ir TLS numatytąsias operacinės sistemos reikšmes, o ne .NET Framework kompiuterio valdomos taikomosios programos numatytuosius parametrus.
-
64 bitų operacinėms sistemoms:[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 -
32 bitų operacinėms sistemoms:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
Pastaba Jei taikomoji programa nustatė ServicePointManager.SecureProtocol kodą arba per konfigūracijos failus į konkrečią reikšmę arba naudoja SslStream.AuthenticateAs* API, kad nurodytų konkretų SslProtocols išvardiją, registro parametro veikimas nesiseka.
-
-
Be to, įtraukėme SslProtocolsExtensions išvardijimo, kurį galite naudoti kaip parinktį nustatydami TLS v1.2, TLS v1.1, taip pat "ServicePointManager.SecurityProtocol" ypatybės operacinę sistemą, kai ji skirta ".NET Framework" 2.0 SP2 versijai. (Informacijos, kaip naudoti plėtinius, žr. skyriuje Kūrėjo rekomendacijos.)
Pastaba Windows "Vista SP2" ir "Windows Server 2008" SP2 nepalaiko transportavimo lygmens saugos (TLS) protokolo versijų, naujesnių nei 1.0. Valdomos ".NET Framework 2.0" SP2 taikomosios programos, veikiamos "Windows Vista SP2" arba "Windows Server 2008" SP2, negali naudoti TLS 1.2 arba TLS 1.1, net jei šie protokolai nustatyti ypatybėje ServicePointManager.SecurityProtocol.
Jei reikia daugiau informacijos apie tai, kaip atsisiųsti "Microsoft" palaikymo failus, spustelėkite toliau nurodytą straipsnio numerį ir peržiūrėkite "Microsoft" žinių bazės straipsnį:
119591 Kaip gauti "Microsoft" palaikymo failus iš internetinių tarnybų" "Microsoft" nuskaitė šį failą dėl virusų. "Microsoft" naudojo dabartinę virusų aptikimo programinę įrangą, kuri buvo pasiekiama failo paskelbimo dieną. Failas saugomas sustiprintos saugos serveriuose, kurie padeda apsisaugoti nuo neleistinų failo keitimų.
Kūrėjo rekomendacijos
Naujų plėtinių apibrėžimas yra šie failai:
-
SecurityProtocolTypeExtensions.csnamespace System.Net
{ naudojant System.Security.Authentication; viešoji statinė klasė 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
{ viešosios statinės klasės SslProtocolsExtensions { public const SslProtocols Tls12 = (SslProtocols)0x00000C00; public const SslProtocols Tls11 = (SslProtocols)0x00000300; } }
Norėdami įtraukti TLS v1.2 palaikymą, įtraukite šaltinio failus į projektą, tada nustatykite protokolo versiją šiais būdais:
-
Taikomosios programos, kurios naudoja "ServicePointManager" pagrįstas API, gali nustatyti protokolą naudodami šiuos veiksmus:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12; -
Programos, kurios naudoja SslStream AuthenticateAsClient(Eilutė, X509CertificateCollection, SslProtocols, Boolean) perkrovą, gali nustatyti SslProtocols reikšmę kaip SslProtocolsExtensions.Tls12.
Jei registro parametras, paminėtas pirmoje pastraipoje, nustatytas ir SslProtocols reikšmė programoje nustatoma kaip SslProtocols.None, pasirinkta sistemos numatytoji veikimo parinktis priklausys nuo Windows versijos.
Be to, kai pakeičiate programos kodą, kad įgalintumėte TLS v1.2 palaikymą su ".NET Framework 3.5" SP1, turėtumėte įsitikinti, kad kompiuterių, kuriuose ši pataisa neįjungta, išimčių:-
Jei karštosios pataisos neįdiegtos, "ServicePointManager" pagrindo API (HTTP, FTP, SMTP) išmes "System.NotSupportedException: pageidaujamas saugos protokolas nepalaikomas", kai programa iškvėpė ServicePointManager.SecurityProtocol, kad nustatytų naują reikšmę.
-
Jei karštoji pataisa neįdiegta, SslStream pagrindo API išmes išimtis, kai jie skambina į vieną iš Autentifikuoties* API:
System.ArgumentException: nurodyta reikšmė netinkama išvardijimo "SslProtocolType".
Parametro pavadinimas: sslProtocolType
Pastaba Tik "SslStream" – "Tls12", "Tls11" derinys su bet kuriuo iš esamų Tls, Ssl3, Ssl2 (pvz.: Tls12 | Tls11 | Tls) tyliai pereis prie esamų protokolų (pvz., Tls) sistemoje be pataisos. Jis prisijungs prie "Tls" neišmesdamas išimties.
Daugiau informacijos
Norėdami įgalinti TLS v1.1 arba v1.2 kaip numatytąją operacinę sistemą, vykdykite nurodymus, pateiktus https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12. Pastaba"TLS v1.1" ir "v1.2" nėra "Windows Vista" arba "Windows Server 2008". Jei turite išjungti operacinės sistemos numatytąsias reikšmes, nustatytas registro rakte, paminėtame konkrečių programų skyriuje "Sprendimas", galite tai padaryti įtraukdami šį registro raktą:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions <<Visas failo .exe kelias>> DWORD 0 C:\MyApp\MyApp.exe DWORD 0
Daugiau informacijos apie TLS v1.2 žr . TLS v1.2 įvadas. Įgalinus SystemDefaultTlsVersions .NET registro raktą, kiekvienos "Windows" versijos veikimas skiriasi, kaip parodyta toliau pateiktoje lentelėje.
Windows versija |
SSL2 klientas |
SSL2 serveris |
SSL3 klientas |
SSL3 serveris |
TLS 1.0 klientas |
TLS 1.0 Server |
TLS 1.1 klientas |
TLS 1.1 serveris |
TLS 1.2 klientas |
TLS 1.2 serveris |
---|---|---|---|---|---|---|---|---|---|---|
Windows Vista SP2" ir "Windows Server 2008" SP2 |
Išjungta |
On |
On |
On |
On |
On |
N/A |
N/A |
N/A |
N/A |
Windows 7 SP1 ir Windows Server 2008 R2 SP1 |
Išjungta |
On |
On |
On |
On |
On |
Išjungta |
Išjungta |
Išjungta |
Išjungta |
„Windows Server 2012“ |
Išjungta |
Išjungta |
On |
On |
On |
On |
On |
On |
On |
On |
"Windows 8".1" ir "Windows Server 2012 R2" |
Išjungta |
Išjungta |
On |
On |
On |
On |
On |
On |
On |
On |
„Windows 10“ |
Išjungta |
Išjungta |
On |
On |
On |
On |
On |
On |
On |
On |
Windows 10 (1511) |
Išjungta |
Išjungta |
On |
On |
On |
On |
On |
On |
On |
On |
Windows 10 (1607) ir "Windows Server 2016" |
N/A |
N/A |
Išjungta |
Išjungta |
On |
On |
On |
On |
On |
On |