Udostępnij za pośrednictwem


Zarządzanie protokołami SSL/TLS i zestawami szyfrowania dla usług AD FS

Poniższa dokumentacja zawiera informacje na temat wyłączania i włączania niektórych protokołów TLS/SSL oraz zestawów szyfrowania używanych przez usługi Active Directory Federation Services (AD FS).

Protokoły TLS/SSL, Schannel i zestawy szyfrów w AD FS

Protokół Transport Layer Security (TLS) zapewnia szyfrowaną bezpieczną komunikację za pośrednictwem sieci. Protokół Secure Sockets Layer (SSL) szyfruje poufne wymiany danych przesyłane między serwerem internetowym a przeglądarką internetową podobną do protokołu TLS. Usługi Active Directory Federation Services (AD FS) używają tych protokołów do komunikacji. Obecnie istnieje kilka wersji tych protokołów.

Security Channel (Schannel) to dostawca obsługi zabezpieczeń (SSP), który implementuje protokoły uwierzytelniania SSL, TLS i DTLS standard internetowego. Interfejs dostawcy obsługi zabezpieczeń (SSPI) to interfejs API używany przez systemy Windows do wykonywania funkcji związanych z zabezpieczeniami, w tym uwierzytelniania. Interfejs SSPI działa jako wspólny interfejs dla kilku dostawców SSP, w tym Schannel SSP.

Zestaw szyfrowania to zestaw algorytmów kryptograficznych. Implementacja dostawcy SSP Schannel protokołów TLS/SSL używa algorytmów z zestawu szyfrowania do tworzenia kluczy i szyfrowania informacji. Zestaw szyfrowania określa jeden algorytm dla każdego z następujących zadań:

  • Wymiana kluczy
  • Szyfrowanie zbiorcze
  • Uwierzytelnianie komunikatów

Usługi AD FS używają Schannel.dll do wykonywania bezpiecznych interakcji komunikacyjnych. Obecnie usługi AD FS obsługują wszystkie protokoły i zestawy szyfrowania, które Schannel.dll obsługuje.

Zarządzanie protokołami TLS/SSL i zestawami szyfrowania

Ważne

Ta sekcja zawiera kroki, które informują o sposobie modyfikowania rejestru. Mogą jednak wystąpić poważne problemy, jeśli nieprawidłowo zmodyfikujesz rejestr. Dlatego upewnij się, że dokładnie przestrzegasz tych kroków.

Należy pamiętać, że zmiana domyślnych ustawień zabezpieczeń dla SCHANNEL może spowodować przerwanie lub uniemożliwić komunikację między niektórymi klientami i serwerami. Dzieje się tak, jeśli wymagana jest bezpieczna komunikacja i nie mają protokołu do negocjowania komunikacji.

Jeśli stosujesz te zmiany, należy je zastosować do wszystkich serwerów usług AD FS w farmie. Po zastosowaniu tych zmian wymagany jest ponowny rozruch.

W dzisiejszych czasach wzmocnienie zabezpieczeń serwerów i usunięcie starszych lub słabych zestawów szyfrowania staje się głównym priorytetem dla wielu organizacji. Dostępne są pakiety oprogramowania, które testują serwery i udostępniają szczegółowe informacje na temat tych protokołów i zestawów. Aby zachować zgodność lub osiągnąć bezpieczne oceny, usunięcie lub wyłączenie słabszych protokołów lub zestawów szyfrowania stało się koniecznością. W pozostałej części tego dokumentu znajdują się wskazówki dotyczące włączania lub wyłączania niektórych protokołów i zestawów szyfrowania.

Następujące klucze rejestru znajdują się w tej samej lokalizacji: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols. Użyj Edytora rejestru lub programu PowerShell, aby włączyć lub wyłączyć te protokoły i zestawy szyfrowania.

Zrzut ekranu edytora rejestru przedstawiający klucze rejestru znajdujące się w folderze Protocols.

Włączanie i wyłączanie protokołu SSL 3.0

Użyj następujących kluczy rejestru i ich wartości, aby włączyć i wyłączyć protokół SSL 3.0.

Włączanie protokołu SSL 3.0

Ścieżka Nazwa wartości Dane wartości
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Serwer Włączone 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Serwer NieaktywneDomyślnie 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Klient Włączone 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Klient NieaktywneDomyślnie 00000000

Wyłączanie protokołu SSL 3.0

Ścieżka Nazwa wartości Dane wartości
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Serwer Włączone 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Serwer NieaktywneDomyślnie 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Klient Włączone 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Klient NieaktywneDomyślnie 00000001

Wyłączanie protokołu SSL 3.0 przy użyciu programu PowerShell

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'SSL 3.0 has been disabled.'

Włączanie i wyłączanie protokołu TLS 1.0

Użyj następujących kluczy rejestru i ich wartości, aby włączyć i wyłączyć protokół TLS 1.0.

Ważne

Wyłączenie protokołu TLS 1.0 powoduje przerwanie relacji zaufania WAP z usługami AD FS. Jeśli wyłączysz protokół TLS 1.0, należy włączyć silne uwierzytelnianie dla aplikacji. Aby uzyskać więcej informacji, zobacz Włączanie silnego uwierzytelniania dla aplikacji .NET

Włączanie protokołu TLS 1.0

Ścieżka Nazwa wartości Dane wartości
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Serwer Włączone 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Serwer NieaktywneDomyślnie 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Klient Włączone 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Klient NieaktywneDomyślnie 00000000

Wyłączanie protokołu TLS 1.0

Ścieżka Nazwa wartości Dane wartości
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Serwer Włączone"=00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Serwer NieaktywneDomyślnie 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Klient Włączone 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Klient NieaktywneDomyślnie 00000001

Wyłączanie protokołu TLS 1.0 przy użyciu programu PowerShell

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.0 has been disabled.'

Włączanie i wyłączanie protokołu TLS 1.1

Użyj następujących kluczy rejestru i ich wartości, aby włączyć i wyłączyć protokół TLS 1.1.

Włączanie protokołu TLS 1.1

Ścieżka Nazwa wartości Dane wartości
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Serwer Włączone 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Serwer NieaktywneDomyślnie 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Klient Włączone 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Klient NieaktywneDomyślnie 00000000

Wyłączanie protokołu TLS 1.1

Ścieżka Nazwa wartości Dane wartości
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Serwer Włączone 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Serwer NieaktywneDomyślnie 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Klient Włączone 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Klient NieaktywneDomyślnie 00000001

Wyłączanie protokołu TLS 1.1 przy użyciu programu PowerShell

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.1 has been disabled.'

Wyłączanie protokołu TLS 1.2

Protokół TLS 1.2 jest domyślnie włączony od systemu Windows Server 2012. Aby wyłączyć protokół TLS 1.2, można użyć następujących kluczy rejestru i ich wartości.

Ostrzeżenie

Wyłączenie protokołu TLS 1.2 nie jest zalecane, ponieważ może zakłócić działanie innych składników na serwerze, który korzysta z tego protokołu. Na przykład usługi, takie jak Microsoft Azure AD Connect (Azure AD Sync), wymagają poprawnego działania protokołu TLS 1.2. Wyłączenie może spowodować awarie usługi lub obniżoną funkcjonalność.

Ścieżka Nazwa wartości Dane wartości
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Serwer Włączone 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Serwer NieaktywneDomyślnie 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Klient Włączone 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Klient NieaktywneDomyślnie 00000001

Wyłączanie protokołu TLS 1.2 przy użyciu programu PowerShell

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'Enabled' -value '0' -PropertyType 'DWord' -Force | Out-Null

New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client' -name 'DisabledByDefault' -value 1 -PropertyType 'DWord' -Force | Out-Null

Write-Host 'TLS 1.2 has been disabled.'

Włączanie lub wyłączanie skrótów, szyfrów i zestawów szyfrowania

Kontrolowanie algorytmów szyfrowania, skrótów i wymiany kluczy innych niż rozmiar klucza za pośrednictwem rejestru nie jest obsługiwane. Hasze, szyfry i algorytmy wymiany kluczy są kontrolowane za pośrednictwem programu PowerShell, rozwiązania MDM lub kolejności pakietów szyfrujących.

Aby uzyskać pełną listę obsługiwanych zestawów szyfrowania, zobacz Cipher Suites in TLS/SSL (Schannel SSP) (Zestawy szyfrowania w protokole TLS/SSL (SSP Schannel). Ten artykuł zawiera tabelę zestawów, które są domyślnie włączone, i pokazuje, które pakiety są obsługiwane, ale nie są domyślnie włączone. Aby określić priorytety zestawów szyfrowania, zobacz Określanie priorytetów zestawów szyfrowania Schannel.

Włączanie silnego uwierzytelniania dla aplikacji .NET

Aplikacje .NET Framework 3.5/4.0/4.5.x mogą przełączyć domyślny protokół na protokół TLS 1.2, włączając klucz rejestru SchUseStrongCrypto. Te klucze rejestru wymuszają używanie protokołu TLS 1.2 przez aplikacje platformy .NET.

Ważne

W przypadku usług AD FS w systemach Windows Server 2016 i Windows Server 2012 R2 należy użyć klucza programu .NET Framework 4.0/4.5.x: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319

W przypadku programu .NET Framework 3.5 użyj następującego klucza rejestru:

Ścieżka Nazwa wartości Dane wartości
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727 SchUseStrongCrypto 00000001

W przypadku programu .NET Framework 4.0/4.5.x użyj następującego klucza rejestru:

Ścieżka Nazwa wartości Dane wartości
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 SchUseStrongCrypto 00000001

Zrzut ekranu edytora rejestru z wyróżnionym kluczem SchUseStrongCrypto

New-ItemProperty -path 'HKLM:\SOFTWARE\Microsoft\.NetFramework\v4.0.30319' -name 'SchUseStrongCrypto' -value '1' -PropertyType 'DWord' -Force | Out-Null

Dodatkowe informacje