Rozhraní .NET Framework verze 3.5.1 a starší verze neposkytují podporu aplikacím pro použití výchozích verzí systému TLS (Transport Layer Security) jako kryptografického protokolu. Tato aktualizace umožňuje použití protokolu TLS v1.2 v .NET Framework 3.5.1.

PoznámkaTento  obsah byl k dispozici v Windows Update. Pokud chcete získat obsah, Windows nejnovější aktualizace .NET Framework aktualizace. Pokud je váš systém plně aktuální prostřednictvím Windows Update, není nutné dělat další kroky.

Řešení

Stáhnout informace

Oprava hotfix odpovídající aktualizaci KB3154518 byla nahnána nejnovějšími aktualizacemi .NET Framework, které obsahují všechny opravy, které byly dříve součástí aktualizace KB3154518. Doporučujeme nainstalovat nejnovější aktualizace .NET Framework.

V této oblasti jsme udělali následující vylepšení:

  • Následující klíče registru je možné nastavit tak, aby místo pevně zakódovaných výchozích hodnot pro spravovanou aplikaci spuštěnou v počítači používejte výchozí operační systém pro protokoly .NET Framework SSL a TLS.

    • Pro 64bitové 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

    • Pro 32bitové operační systémy:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

    Poznámka: Pokud aplikace nastavila rozhraní Api ServicePointManager.SecureProtocol v kódu nebo prostřednictvím konfiguračních souborů na určitou hodnotu nebo pomocí rozhraní API SslStream.AuthenticateAs* určí konkrétní výčet SslProtocols, chování nastavení registru se nevyskytuje.

  • Kromě toho jsme přidali výčet SslProtocolsExtensions, který můžete použít jako možnost pro nastavení tls v1.2, TLS v1.1 a výchozího operačního systému pro vlastnost ServicePointManager.SecurityProtocol při cílení na rozhraní .NET Framework verze 2.0 SP2. (Informace o tom, jak používat rozšíření, najdete v části Pokyny pro vývojáře.)

    Poznámka Windows Vista SP2 a Windows Server 2008 SP2 nepodporují verze protokolu TLS (Transport Layer Security) novější než 1.0. Spravované aplikace .NET Framework 2.0 SP2 spuštěné v systému Windows Vista SP2 nebo Windows Server 2008 SP2 nemohou používat tls 1.2 nebo TLS 1.1, i když jsou tyto protokoly nastavené ve vlastnosti ServicePointManager.SecurityProtocol.


Další informace o tom, jak stáhnout soubory podpory microsoftu, najdete v následujícím článku znalostní báze Microsoft Knowledge Base:

119591 Jak získat soubory podpory Microsoftu z online služeb, naskenoval Microsoft tento soubor na viry. Společnost Microsoft použila nejnovější software pro zjišťování virů, který byl k datu, kdy byl soubor publikován, dostupný. Soubor je uložený na serverech s vyšším zabezpečením, které pomáhají zabránit neoprávněným změnám souboru.

Pokyny pro vývojáře

Definice nových rozšíření je v následujících souborech:
 

  • SecurityProtocolTypeExtensions.csnamespace System.Net
    {
    pomocí system.security.authentication;
    Veřejná statická třída 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
    {
    veřejná statická třída SslProtocolsExtensions
    {
    public const SslProtocols Tls12 = (SslProtocols)0x00000C00;
    public const SslProtocols Tls11 = (SslProtocols)0x00000300;
    }
    }

Pokud chcete zahrnout podporu protokolu TLS verze 1.2, zahrnovat zdrojové soubory do projektu a pak nastavte verzi protokolu pomocí následujících metod:
 

  • Aplikace, které používají rozhraní API založená na servicepointové aplikaci ServicePointManager, mohou protokol nastavit pomocí následujících možností:

    System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolTypeExtensions.Tls12;

  • Aplikace, které používají přetížení SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean), mohou nastavit hodnotu SslProtocols jako SslProtocolsExtensions.Tls12.

Pokud je nastavené nastavení registru uvedené v prvním odstavci a hodnota SslProtocols je v aplikaci nastavená jako SslProtocols.None, bude výchozí chování systému, které se zvolí, záviset na Windows verzi.

Pokud změníte kód aplikace tak, aby povoloval podporu tls v1.2 s aktualizací .NET Framework 3.5 SP1, měli byste se ujistit, že na počítačích, na kterých není tato oprava nasazená, řešíte následující výjimky:
 

  1. Pokud není oprava hotfix nainstalovaná, rozhraní API založená na servicepointovém správci (HTTP, FTP, SMTP) vyvolá "System.NotSupportedException: Požadovaný protokol zabezpečení není podporovaný", když aplikace zavolá ServicePointManager.SecurityProtocol, aby nastavila novou hodnotu.

  2. Pokud není oprava hotfix nainstalovaná, rozhraní API založená na protokolu SslStream vyvolají výjimky, když volají na některou z rozhraní API AuthenticateAs*:

    System.ArgumentException: Zadaná hodnota není platná ve výčtu SslProtocolType.
    Název parametru: sslProtocolType

Poznámka: Pouze sslstream je kombinace tls12, tls11 s libovolným existujícím tls, ssl3, ssl2 (například tls12 | Tls11 | Tls) bude bezobslužně downgradovat na stávající protokoly (například Tls) v systému bez opravy. Připojí se k Tls, aniž by došlo k výjimce.
 

Další informace

Pokud chcete jako výchozí operační systém povolit tls verze 1.1 nebo v1.2, postupujte podle pokynů na adrese https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.

Poznámka: Tls verze 1.1 a v1.2 nejsou dostupné v Windows Vista nebo Windows Server 2008.

Pokud musíte zakázat výchozí nastavení operačního systému, která jsou nastavená klíčem registru uvedeným v části Řešení pro konkrétní aplikace, můžete to udělat přidáním následujícího klíče registru:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions
<<Úplná cesta k .exe pro soubor>> DWORD 0
C:\MyApp\MyApp.exe DWORD 0

Další informace o tls v1.2 najdete v tématu Představení TLS verze 1.2.

Po povolení klíče registru SystemDefaultTlsVersions .NET dojde u každé verze Windows k jinému chování, jak ukazuje následující tabulka.
 

Windows verze

Klient SSL2

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

Zakázáno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Není k dispozici

Není k dispozici

Není k dispozici

Není k dispozici

Windows 7 SP1 a Windows Server 2008 R2 SP1

Zakázáno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Zakázáno

Zakázáno

Zakázáno

Zakázáno

Windows Server 2012

Zakázáno

Zakázáno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Windows 8.1 a Windows Server 2012 R2

Zakázáno

Zakázáno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Windows 10

Zakázáno

Zakázáno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Windows 10 (1511)

Zakázáno

Zakázáno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Windows 10 (1607) a Windows Server 2016

Není k dispozici

Není k dispozici

Zakázáno

Zakázáno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Povoleno

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Jak jste spokojeni s kvalitou jazyka?
Co ovlivnilo váš názor?

Děkujeme vám za zpětnou vazbu.

×