共用方式為


管理 AD FS 的 SSL/TLS 通訊協定和加密套件

下列檔提供如何停用和啟用 Active Directory 同盟服務 (AD FS) 所使用的特定 TLS/SSL 通訊協定和加密套件的相關信息。

AD FS 中的 TLS/SSL、安全通道和加密套件

傳輸層安全性 (TLS) 通訊協定提供透過網路加密的安全通訊。 安全套接字層 (SSL) 通訊協定會加密在網頁伺服器與類似 TLS 的網頁瀏覽器之間傳輸的敏感資料交換。 Active Directory 同盟服務 (AD FS) 會使用這些通訊協議進行通訊。 目前,這些通訊協定有數個版本存在。

安全性通道(安全通道)是一種安全性支援提供者(SSP),可實作 SSL、TLS 和 DTLS 因特網標準驗證通訊協定。 安全性支援提供者介面 (SSPI) 是 Windows 系統所使用的 API,可以執行包含驗證在內的安全性相關功能。 SSPI 作為多個 SSP 的共同介面運作,其中包括 Schannel SSP。

密碼套件 是一組加密演算法。 TLS/SSL 通訊協定的 Schannel SSP 實作會使用來自加密套件的演算法來建立密鑰和加密資訊。 加密套件會為下列每個工作指定一種演算法:

  • 金鑰交換
  • 大量加密
  • 訊息驗證

AD FS 會使用 Schannel.dll 來執行其安全通訊互動。 AD FS 目前支援 Schannel.dll 支援的所有通訊協定和加密套件。

管理 TLS/SSL 通訊協定和加密套件

這很重要

本節包含一些步驟,告訴您如何修改登錄。 然而,如果不正確地修改登錄檔,可能會出現嚴重問題。 因此,請確保仔細遵循這些步驟。

請注意,變更 SCHANNEL 的預設安全性設定可能會中斷或防止特定客戶端與伺服器之間的通訊。 如果需要安全通訊,而且它們沒有通訊協定可交涉通訊,就會發生這種情況。

如果您要套用這些變更,則必須將這些變更套用至伺服器陣列中的所有 AD FS 伺服器。 套用這些變更之後,需要重新啟動。

在當今這個時代,強化您的伺服器並移除較舊或弱式的加密套件,已成為許多組織的重要優先事項。 軟體套件可用來測試您的伺服器,並提供這些通訊協定和套件的詳細資訊。 為了保持相容或達到安全分級,移除或停用較弱的通訊協定或加密套件已成為必須的。 本文件的其餘部分提供如何啟用或停用特定通訊協定和加密套件的指引。

下列登入機碼位於相同的位置:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols。 使用註冊表編輯器或PowerShell來啟用或停用這些通訊協定和加密套件。

登錄編輯器的螢幕快照,其中顯示 [通訊協定] 資料夾中的登錄機碼。

啟用和停用 SSL 3.0

使用下列登錄機碼及其值來啟用和停用 SSL 3.0。

啟用 SSL 3.0

路徑 數值名稱 數值資料
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\伺服器 已啟用 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\伺服器 預設停用 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\用戶端 已啟用 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\用戶端 預設停用 00000000

停用 SSL 3.0

路徑 數值名稱 數值資料
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\伺服器 已啟用 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\伺服器 預設停用 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\用戶端 已啟用 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\SSL 3.0\用戶端 預設停用 00000001

使用 PowerShell 停用 SSL 3.0

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.'

啟用和停用 TLS 1.0

使用下列登錄機碼及其值來啟用和停用 TLS 1.0。

這很重要

停用 TLS 1.0 會導致 WAP 與 AD FS 信任關係中斷。 如果您停用 TLS 1.0,您應該為應用程式啟用強身份驗證。 如需詳細資訊,請參閱 啟用 .NET 應用程式的強身份驗證

啟用 TLS 1.0

路徑 數值名稱 數值資料
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\伺服器 已啟用 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\伺服器 預設停用 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\客戶端 已啟用 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\客戶端 預設停用 00000000

停用 TLS 1.0

路徑 數值名稱 數值資料
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\伺服器 Enabled“=000000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\伺服器 預設停用 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\客戶端 已啟用 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.0\客戶端 預設停用 00000001

使用 PowerShell 停用 TLS 1.0

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.'

啟用和停用 TLS 1.1

使用下列登錄機碼及其值來啟用和停用 TLS 1.1。

啟用 TLS 1.1

路徑 數值名稱 數值資料
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server 已啟用 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server 預設停用 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\用戶端 已啟用 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\用戶端 預設停用 00000000

停用 TLS 1.1

路徑 數值名稱 數值資料
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server 已啟用 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\Server 預設停用 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\用戶端 已啟用 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.1\用戶端 預設停用 00000001

使用 PowerShell 停用 TLS 1.1

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.'

停用 TLS 1.2

從 Windows Server 2012 開始,預設會啟用 TLS 1.2。 您可以使用下列登錄機碼及其值來停用 TLS 1.2。

警告

不建議停用 TLS 1.2,因為它可能會中斷依賴此通訊協定之伺服器上的其他元件功能。 例如,Microsoft Azure AD Connect (Azure AD Sync) 等服務需要 TLS 1.2 才能正常運作。 停用可能會導致服務失敗或功能降級。

路徑 數值名稱 數值資料
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\伺服器 已啟用 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\伺服器 預設停用 00000001
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\客戶端 已啟用 00000000
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\客戶端 預設停用 00000001

使用 PowerShell 停用 TLS 1.2

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.'

啟用或停用哈希、加密和加密套件

不支援透過登錄控制密碼、哈希和密鑰交換演算法,除了金鑰大小以外。 哈希、加密和金鑰交換演算法是透過 PowerShell、MDM或加密套件排序來控制。

如需支援加密套件的完整清單,請參閱 TLS/SSL 中的加密套件(安全通道 SSP)。 本文提供預設啟用的套件數據表,並顯示預設支援但未啟用的套件。 若要設定加密套件的優先順序,請參閱 設定通道加密套件的優先順序

啟用 .NET 應用程式的強式驗證

.NET Framework 3.5/4.0/4.5.x 應用程式可以藉由啟用 SchUseStrongCrypto 登錄機碼,將預設通訊協定切換至 TLS 1.2。 這些登錄機碼會強制 .NET 應用程式使用 TLS 1.2。

這很重要

針對 Windows Server 2016 和 Windows Server 2012 R2 上的 AD FS,您需要使用 .NET Framework 4.0/4.5.x 密鑰:HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319

針對 .NET Framework 3.5,請使用下列登錄機碼:

路徑 數值名稱 數值資料
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\.NETFramework\v2.0.50727 SchUseStrongCrypto 00000001

針對 .NET Framework 4.0/4.5.x,請使用下列登錄機碼:

路徑 數值名稱 數值資料
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\v4.0.30319 SchUseStrongCrypto 00000001

醒目提示 SchUseStrongCrypto 機碼的登錄編輯器螢幕快照

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

其他資訊