Predvolené verzie systému .NET framework 3.5.1 a staršie verzie neposkytli podporu pre aplikácie, ktoré môžu používať predvolené verzie systému Transport Layer Security (TLS) ako kryptografický protokol. Táto aktualizácia umožňuje používanie protokolu TLS v1.2 v .NET Framework 3.5.1.
PoznámkaTento obsah bol k dispozícii na stránke Windows Aktualizovať. Ak chcete získať obsah, vyhľadajte Windows, aby ste získali .NET Framework aktualizácie. Ak je váš systém úplne aktuálny prostredníctvom služby Windows Update, nie je potrebné urobiť ďalšie kroky.
Riešenie
Stiahnuť informácie
Rýchla oprava zodpovedajúca aktualizácii KB3154518 bola nahradená najnovšími aktualizáciami balíka .NET Framework, ktoré obsahujú všetky opravy, ktoré boli predtým súčasťou aktualizácie KB3154518. Odporúča sa nainštalovať najnovšie aktualizácie balíka .NET Framework.
Urobili sme v tejto oblasti tieto vylepšenia:
-
Nasledujúce kľúče databázy Registry je možné nastaviť na používanie predvolených operačných systémov SSL a TLS namiesto .NET Framework predvolených hodnôt spravovaných aplikácií spustených v počítači.
-
Pre 64-bitové operačné systémy:[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 -
Pre 32-bitové operačné systémy:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
"SystemDefaultTlsVersions"=dword:00000001
Poznámka Ak aplikácia nastavila protokol ServicePointManager.SecureProtocol v kóde alebo konfiguračné súbory na konkrétnu hodnotu, alebo používa rozhrania API SslStream.AuthenticateAs* na určenie konkrétneho enum protokolu SslProtocols, správanie nastavenia databázy Registry sa nevyskytuje.
-
-
Okrem toho sme pridali enumeráciu SslProtocolsExtensions, ktorú môžete použiť ako možnosť nastavenia protokolu TLS v1.2, TLS v1.1, ako aj predvolené hodnoty operačného systému pre vlastnosť ServicePointManager.SecurityProtocol pri zameriavaní na .NET framework verzie 2.0 SP2. (Informácie o používaní rozšírení nájdete v časti Pokyny pre vývojárov.)
Poznámka: Windows Vista SP2 a Windows Server 2008 SP2 nepodporuje verzie protokolu TLS (Transport Layer Security), ktoré sú novšie ako 1.0. Spravované aplikácie balíka .NET Framework 2.0 SP2 spustené v balíku Windows Vista SP2 alebo Windows Server 2008 SP2 nemôžu používať protokol TLS 1.2 ani TLS 1.1, a to ani vtedy, ak sú tieto protokoly nastavené vo vlastnosti ServicePointManager.SecurityProtocol.
Ďalšie informácie o tom, ako stiahnuť súbory podpory spoločnosti Microsoft, zobrazíte kliknutím na číslo článku vedomostnej databázy Microsoft Knowledge Base:
119591 Ako získať súbory podpory spoločnosti Microsoft z online služieb, aby spoločnosť Microsoft skontrolovala tento súbor a neobsahuje vírusy. Spoločnosť Microsoft používala na najúbenejší softvér na zisťovanie vírusov, ktorý bol k dispozícii v deň, kedy bol súbor zverejnený. Súbor sa uloží na servery vylepšené zabezpečením, ktoré pomáhajú zabrániť neoprávneným zmenám v súbore.
Pokyny pre vývojárov
Definícia nových rozšírení je v týchto súboroch:
-
SecurityProtocolTypeExtensions.csnamespace System.Net
{
pomocou funkcie 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;
}
}
Ak chcete zahrnúť podporu protokolu TLS v1.2, zadajte do projektu zdrojové súbory a potom nastavte verziu protokolu nasledujúcimi spôsobmi:
-
Aplikácie, ktoré používajú rozhrania API typu ServicePointManager, môžu nastavovať protokol pomocou tohto:
System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12; -
Aplikácie, ktoré používajú preťaženie SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean), môžu nastaviť hodnotu SslProtocols na hodnotu SslProtocolsExtensions.Tls12.
Ak je nastavenie databázy Registry uvedené v prvom odseku nastavené a v aplikácii je nastavená hodnota SslProtocols ako SslProtocols.None, predvolené správanie vybratého systému bude závisieť od Windows verzie.
Ak zmeníte kód aplikácie a povolíte podporu protokolu TLS v1.2 so systémom .NET Framework 3.5 SP1, skontrolujte, či sa v počítačoch, v ktorých nie je táto oprava nasadená, zhodovať s nasledujúcimi výnimkami:
-
Ak oprava nie je nainštalovaná, rozhrania API typu ServicePointManager (HTTP, FTP, SMTP) vyhodí reťazec System.NotSupportedException: Požadovaný protokol zabezpečenia nie je podporovaný, keď aplikácia zavolá na položku ServicePointManager.SecurityProtocol a nastaví novú hodnotu.
-
Ak rýchla oprava nie je nainštalovaná, rozhrania API typu SslStream budú pri volení niektorého z rozhraní API AuthenticateAs* vyhodzovať výnimky:
System.ArgumentException: Zadaná hodnota nie je platná v enumerácii SslProtocolType.
Názov parametra: sslProtocolType
Poznámka Len pre protokol SslStream je to kombinácia protokolu Tls12, Tls11 s ľubovoľným z existujúcich tls, Ssl3, Ssl2 (napríklad: Tls12 | Tls11 | Tls) potichu pre staršiu verziu na existujúce protokoly (napríklad: Tls) v systéme bez opravy. Pripojí sa k Tls bez toho, aby zahodí výnimku.
Ďalšie informácie
Ak chcete povoliť protokol TLS v1.1 alebo v1.2 ako predvolený operačný systém, postupujte podľa pokynov v časti https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.
Poznámka TLS v1.1 a v1.2 nie je k dispozícii vo Windows Vista alebo Windows Serveri 2008.
Ak potrebujete pre konkrétne aplikácie vypnúť predvolené nastavenia operačného systému nastavené kľúčom databázy Registry, ktorý je uvedený v časti Riešenie, môžete to urobiť pridaním nasledujúceho kľúča databázy Registry:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions
<<
Úplná cesta k databáze .exe pre súbor>> DWORD 0
C:\MyApp\MyApp.exe DWORD 0
Ďalšie informácie o TLS v1.2 nájdete v téme Úvod do TLS v1.2.
Po zapnutí kľúča databázy Registry SystemDefaultTlsVersions .NET sa pri každej verzii databázy Windows iné správanie, ako je uvedené v nasledujúcej tabuľke.
Windows verzia |
SSL2 Klient |
SSL2 Server |
Klient SSL3 |
SSL3 Server |
Klient TLS 1.0 |
TLS 1.0 Server |
Klient TLS 1.1 |
TLS 1.1 Server |
Klient TLS 1.2 |
TLS 1.2 Server |
---|---|---|---|---|---|---|---|---|---|---|
Windows Vista SP2 a Windows Server 2008 SP2 |
Vypnuté |
V |
V |
V |
V |
V |
Nie je k dispozícii |
Nie je k dispozícii |
Nie je k dispozícii |
Nie je k dispozícii |
Windows 7 SP1 a Windows Server 2008 R2 SP1 |
Vypnuté |
V |
V |
V |
V |
V |
Vypnuté |
Vypnuté |
Vypnuté |
Vypnuté |
Windows Server 2012 |
Vypnuté |
Vypnuté |
V |
V |
V |
V |
V |
V |
V |
V |
Windows 8.1 a Windows Server 2012 R2 |
Vypnuté |
Vypnuté |
V |
V |
V |
V |
V |
V |
V |
V |
Windows 10 |
Vypnuté |
Vypnuté |
V |
V |
V |
V |
V |
V |
V |
V |
Windows 10 (1511) |
Vypnuté |
Vypnuté |
V |
V |
V |
V |
V |
V |
V |
V |
Windows 10 (1607) a Windows Server 2016 |
Nie je k dispozícii |
Nie je k dispozícii |
Vypnuté |
Vypnuté |
V |
V |
V |
V |
V |
V |