Program .NET Framework w wersji 3.5 SP1 i wcześniejszych wersjach nie zapewniał obsługi aplikacji do używania domyślnych wersji TLS (Transport Layer Security) jako protokołu kryptograficznego. Ta aktualizacja umożliwia korzystanie z TLS w wersji 1.2 w wersji .NET Framework 3.5 z dodatkiem SP1.

Uwaga  Ta zawartość została już dostępna w Windows aktualizacji. Aby uzyskać tę zawartość, zeskanuj aktualizację Windows, aby uzyskać najnowsze .NET Framework aktualizacje. Jeśli Twój system jest w pełni aktualny za pośrednictwem Windows, nie musisz nic więcej robić.

Rozwiązanie

Informacje dotyczące pobierania

Poprawka odpowiadająca aktualizacji KB3154520 została zasypowana najnowszymi aktualizacjami programu .NET Framework, które zawierają wszystkie poprawki, które zostały wcześniej uwzględnione w aktualizacji KB3154520. Zalecane jest zainstalowanie najnowszych aktualizacji pakietu .NET Framework.

W tym obszarze wprowadzono następujące ulepszenia:

  • Poniższe klucze rejestru można skonfigurować tak, aby używać domyślnych wartości systemu operacyjnego dla protokołów SSL i TLS zamiast kodów .NET Framework wartości domyślnych dla zarządzanej aplikacji uruchomionej na komputerze.
     

    • Dla 64-bitowych systemów operacyjnych:[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

    • Dla 32-bitowych systemów operacyjnych:[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v2.0.50727]
      "SystemDefaultTlsVersions"=dword:00000001

    Uwaga Jeśli aplikacja ustawiła wartość ServicePointManager.SecureProtocol w kodzie lub za pośrednictwem plików konfiguracji na określoną wartość lub używa interfejsów API SslStream.AuthenticateAs*, aby określić określone wyliczanie SslProtocols, zachowanie ustawień rejestru nie występuje.
     

  • Ponadto dodaliśmy wyliczenie SslProtocolsExtensions, które może być wykorzystać jako opcja ustawiania wartości TLS w wersji 1.2, TLS w wersji 1.1, a także dla właściwości ServicePointManager.SecurityProtocol domyślnego systemu operacyjnego dla właściwości ServicePointManager.SecurityProtocol w przypadku określania docelowych wartości .NET Framework w wersji 2.0 SP2. (Zobacz sekcję Wskazówki dla deweloperów, aby uzyskać informacje na temat używania rozszerzeń).

    Uwaga Windows Vista z dodatkiem SP2 i Windows Server 2008 z dodatkiem SP2 nie obsługują wersji protokołu Transport Layer Security (TLS) nowszych niż 1.0. Zarządzane aplikacje z dodatkiem SP2 dla systemu .NET Framework .NET Framework 2.0 działające w systemie Windows Vista z dodatkiem SP2 lub Windows Server 2008 z dodatkiem SP2 nie mogą używać protokołu TLS 1.2 ani TLS 1.1, nawet jeśli te protokoły są ustawione we właściwości ServicePointManager.SecurityProtocol.


Aby uzyskać więcej informacji na temat pobierania plików pomocy technicznej firmy Microsoft, kliknij następujący numer artykułu, aby wyświetlić ten artykuł w bazie wiedzy Microsoft Knowledge Base:

119591 Jak uzyskać pliki pomocy technicznej firmy Microsoft z usług online Firma Microsoft przeskanowała ten plik pod kątem wirusów. Firma Microsoft używa najnowszego oprogramowania do wykrywania wirusów, które było dostępne w dniu publikacji pliku. Plik jest przechowywany na serwerach z zabezpieczeniami, które pomagają zapobiec nieautoryzowanym zmianom w pliku.
 

Wskazówki dla deweloperów

Definicja nowych rozszerzeń znajduje się w następujących plikach:
 

  • SecurityProtocolTypeExtensions.csnamespace System.Net
    {
    za pomocą funkcji System.Security.Authentication;
    public static class SecurityProtocolTypeExtensions
    {
    const SecurityProtocolType Tls12 = (SecurityProtocolType)SslProtocolsExtensions.Tls12;
    const SecurityProtocolType Tls11 = (SecurityProtocolType)SslProtocolsExtensions.Tls11;
    const SecurityProtocolType SystemDefault = (SecurityProtocolType)0;
    }
    }

  • SslProtocolsExtensions.csnamespace System.Security.Authentication
    {
    publiczna klasa statyczna SslProtocolsExtensions
    {
    const Public SslProtocols Tls12 = (SslProtocols)0x00000C00;
    const Publiczny SslProtocols Tls11 = (SslProtocols)0x00000300;
    }
    }

Aby uwzględnić obsługę protokołu TLS w wersji 1.2, uwzględnij pliki źródłowe w projekcie, a następnie ustaw wersję protokołu przy użyciu następujących metod:
 

  • Aplikacje korzystające z interfejsów API opartych na usłudze ServicePointManager mogą ustawić protokół w następujący sposób:

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

  • Aplikacje korzystające z nadmiaru SslStream AuthenticateAsClient(String, X509CertificateCollection, SslProtocols, Boolean) można ustawić wartość SslProtocols jako SslProtocolsExtensions.Tls12.

Jeśli rejestr wymieniony w pierwszym akapicie jest ustawiony, a w aplikacji wartość SslProtocols ma wartość SslProtocols.None, domyślne zachowanie systemu jest wybierane w zależności od wersji systemu operacyjnego Windows.

Ponadto podczas zmieniania kodu aplikacji w celu włączenia obsługi TLS 1.2 z dodatkiem .NET Framework 3.5 z dodatkiem SP1 należy się upewnić, że na komputerach, na których ta poprawka nie jest wdrożona, należy pamiętać o następujących wyjątkach:
 

  1. Jeśli poprawka nie jest zainstalowana, interfejsy API oparte na usłudze ServicePointManager (HTTP, FTP, SMTP) będą zgłaszały błąd "System.NotSupportedException: Żądany protokół zabezpieczeń nie jest obsługiwany". Gdy aplikacja wywoła usługę ServicePointManager.SecurityProtocol, aby ustawić nową wartość.

  2. Jeśli poprawka nie jest zainstalowana, interfejsy API oparte na technologii SslStream zgłasza podczas wywoływania jednego z interfejsów API uwierzytelniania*:

    System.ArgumentException: Określona wartość jest prawidłowa w wyliczeniu "SslProtocolType".
    Nazwa parametru: sslProtocolType

Uwaga Tylko dla protokołu SslStream: połączenie protokołu Tls12, Tls11 z dowolnym z istniejących Tls, Ssl3, Ssl2 (na przykład: Tls12 | Tls11 | Tls) dyskretnie obniży poziom do istniejących protokołów (na przykład Tls) w systemie bez poprawki. Spowoduje to połączenie z tls bez zgłaszania wyjątku.
 

Więcej informacji

Aby włączyć obsługę standardu TLS w wersji 1.1 lub 1.2 jako domyślnego systemu operacyjnego, postępuj zgodnie z instrukcjami podanymi na stronie https://technet.microsoft.com/en-us/library/dn786418(v=ws.11).aspx#BKMK_SchannelTR_TLS12.

Uwaga W systemach Windows 1.1 i 1.2 usługi TLS nie są dostępne w systemach Windows Vista Windows Server 2008.

Jeśli musisz wyłączyć ustawienia domyślne systemu operacyjnego ustawione przez wspomniany wcześniej klucz rejestru dla określonych aplikacji, możesz to zrobić, dodając następujący klucz rejestru:HKEY_LOCAL_MACHINE\SOFTWARE\[Wow6432Node\]Microsoft\.NETFramework\v2.0.50727\System.Net.ServicePointManager.SystemDefaultTlsVersions
<<Pełna ścieżka pliku .exe pliku>> DWORD 0
C:\MyApp\MyApp.exe DWORD 0

Aby uzyskać więcej informacji na temat TLS w wersji 1.2, zobacz Wprowadzenie do TLS w wersji 1.2.

Po włączeniu klucza rejestru .NET systemuDefaultTlsVersions dla każdej wersji programu Windows występuje inne zachowanie, jak pokazano w poniższej tabeli.
 

Windows wersji

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 z dodatkiem SP2 Windows Server 2008 z dodatkiem SP2

Wyłączone

Wł.

Wł.

Wł.

Wł.

Wł.

Nie ma na to

Nie ma na to

Nie ma na to

Nie ma na to

Windows 7 z dodatkiem SP1 i Windows Server 2008 R2 z dodatkiem SP1

Wyłączone

Wł.

Wł.

Wł.

Wł.

Wł.

Wyłączone

Wyłączone

Wyłączone

Wyłączone

Windows Server 2012

Wyłączone

Wyłączone

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Windows 8.1 i Windows Server 2012 R2

Wyłączone

Wyłączone

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Windows 10

Wyłączone

Wyłączone

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Windows 10 (1511)

Wyłączone

Wyłączone

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Windows 10 (1607) i Windows Server 2016

Nie ma na to

Nie ma na to

Wyłączone

Wyłączone

Wł.

Wł.

Wł.

Wł.

Wł.

Wł.

Potrzebna dalsza pomoc?

Rozwijaj swoje umiejętności
Poznaj szkolenia
Uzyskuj nowe funkcje w pierwszej kolejności
Dołącz do niejawnych testerów firmy Microsoft

Czy te informacje były pomocne?

Jaka jest jakość języka?
Co wpłynęło na Twoje wrażenia?

Dziękujemy za opinię!

×