KB5017811—在 2022 年 9 月 20 日預設行為變更後,管理 TLS) 1.0 及 1.1 (傳輸層安全性

套用到
Win 10 Ent LTSC 2019 Win 10 IoT Ent LTSC 2019 Windows 10 IoT Core LTSC Windows Server 2019 Windows 10 Enterprise Multi-Session, version 20H2 Windows 10 Enterprise and Education, version 20H2 Windows 10 IoT Enterprise, version 20H2 Windows 10 on Surface Hub Windows 10, version 21H1, all editions Windows 10, version 21H2, all editions

摘要

傳輸層安全 (TLS) 1.0 和 1.1 是用於在電腦網路上建立加密通道的安全協定。 Microsoft 自 Windows XP 和 Windows Server 2003 起就支援這些功能。 然而,法規要求正在改變。 此外,TLS 1.0 新增了安全漏洞。 所以,Microsoft 建議你移除 TLS 1.0 和 1.1 的相依。 我們也建議盡可能在作業系統層級關閉 TLS 1.0 與 1.1。 更多細節請參見 TLS 1.0 與 1.1 停用。 在 2022 年 9 月 20 日的預覽更新中,我們將預設停用基於 winhttp 和 wininet 的應用程式的 TLS 1.0 和 1.1。 這是持續努力的一部分。 本文將幫助你重新啟用它們。 這些變更將在安裝 2022 年 9 月 20 日或之後發布的 Windows 更新後反映。

2022 年 9 月 20 日之後,當您的瀏覽器開啟使用 TLS 1.0 或 1.1 的網站時,會出現訊息。 見圖1。 訊息中指出該網站使用過時或不安全的 TLS 協定。 為了解決這個問題,你可以將 TLS 協定更新到 TLS 1.2 或更高版本。 若無法啟用,您可以依照「 啟用 TLS 版本 1.1 及以下版本」中所述啟用 TLS。

存取 TLS 1.0 與 1.1 連結時的 Internet Explorer 視窗

圖 1:存取 TLS 1.0 與 1.1 網頁時的瀏覽器視窗

更新後,基於 winhttp 的應用程式可能會失敗。 錯誤訊息為「執行 WinHttpSendRequest 操作時ERROR_WINHTTP_SECURE_FAILURE」。

當應用程式嘗試使用 TLS 1.1 及以下版本建立連線時,連線可能會看起來失敗。 當您關閉應用程式或應用程式停止運作時,會出現程式相容性助理 (PCA) 對話框,如圖 2 所示。

關閉應用程式後的程式相容性助理彈窗

圖 2:關閉應用程式後的程式相容性助理對話框

PCA 對話框顯示:「此程式可能未正常執行。」 在這之下,有兩個選項:

  • 用相容性設定執行程式
  • 這個程式運作正常

用相容性設定執行程式

當你選擇這個選項時,應用程式會重新開啟。 現在,所有使用 TLS 1.0 和 1.1 的連結都能正常運作。 從那時起,將不會出現任何 PCA 對話框。 登錄檔編輯器會新增以下路徑的條目:

  • Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store
  • Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers。

如果你誤選了這個選項,可以刪除這些條目。 如果你刪除它們,下次開啟應用程式時會看到 PCA 對話框。

應使用相容性設定執行的程式列表

圖 3:應使用相容性設定執行的程式列表

這個程式運作正常

選擇此選項後,應用程式會正常關閉。 下次重新開啟應用程式時,卻沒有出現任何 PCA 對話框。 系統會封鎖所有 TLS 1.0 和 1.1 的內容。 登錄編輯器會在路徑Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Compatibility Assistant\Store 中新增以下條目 見圖4。 如果你不小心選錯了這個選項,可以刪除這個條目。 如果你刪除該條目,下次開啟應用程式時會看到 PCA 對話框。

登錄檔編輯器中指定應用程式正確執行的條目

圖 4:登錄檔編輯器中顯示應用程式正常運行的條目

重要事項 舊有的 TLS 協定僅在特定應用中啟用。 即使系統整體設定中這些功能被關閉,這點依然成立。

啟用 TLS 版本 1.1 及以下 (wininet 和 Internet Explorer 設定)

我們不建議啟用 TLS 1.1 及以下版本,因為它們已不再被視為安全。 牠們容易受到各種攻擊,例如貴賓犬攻擊。 所以,在啟用 TLS 1.1 之前,請先做以下其中一項:

  • 請確認是否有更新版本的應用程式可用。
  • 請應用程式開發者修改設定,移除對 TLS 1.1 及以下版本的依賴。

若這些解決方案皆無效,則有兩種方法可在系統範圍內啟用舊有 TLS 協定:

  • 網路選項
  • 群組原則編輯器

網路選項

要開啟網路選項,請在工作列的搜尋框輸入 網路選項 。 您也可以從圖 1 所示的對話框中選擇 「變更設定 」。 在進階標籤,往下捲動設定面板。 在那裡你可以啟用或停用 TLS 協定。

網際網路選項視窗

圖 5:網路屬性對話框

群組原則編輯器

要開啟群組原則編輯器,請在工作列搜尋框輸入 gpedit.msc。 會出現一個像圖6所示的視窗。

群組政策編輯器視窗

圖 6:群組原則編輯器視窗

  1. 可導覽至本地電腦政策> (電腦設定或使用者設定) >管理模板>、Windows 元件>、Internet Explorer>網路控制台>進階頁面>、關閉加密支援。詳見圖 7。
  2. 雙擊 關閉加密支援
    關閉 GPedit.msc 加密支援的路徑
    圖 7:關閉群組原則編輯器中加密支援的路徑
  3. 選擇 啟用 選項。 然後使用下拉選單選擇你想啟用的 TLS 版本,如圖 8 所示。
    關閉加密支援,下拉選單顯示各種選項
    圖 8:啟用 關閉加密支援與下拉選單

一旦你在群組原則編輯器啟用該政策,就無法在網際網路選項中更改它。 例如,如果你選擇 使用 SSL3.0 和 TLS 1.0,網際網路選項中將無法使用其他所有選項。 見圖9。 如果你在群組原則編輯器中啟用關閉加密支援,就無法更改網際網路選項中的任何設定。

網路選項顯示 SSL 和 TLS 設定為灰色

圖 9:網路選項顯示無法使用的 SSL 與 TLS 設定

啟用 TLS 版本 1.1 及以下版本 (winhttp 設定)

請參閱更新以在 Windows 中啟用 TLS 1.1 和 TLS 1.2 做為 WinHTTP 中的預設安全通訊協定

(Wininet 與 Internet Explorer 設定中的重要登錄路徑)

  • Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings

    • 你可以在這裡找到 SecureProtocols,如果你使用群組原則編輯器,它會儲存目前啟用的協定值。
  • Computer\HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings

    • 你可以在這裡找到 SecureProtocols,如果你使用 Internet Options,它會儲存目前啟用的協定的價值。
  • 群組原則安全協議將優先於網際網路選項所設定的協議。

啟用不安全的 TLS 備援

上述修改將啟用 TLS 1.0 與 TLS 1.1。 不過,他們不會啟用 TLS 備援。 要啟用 TLS 備援,您必須在下方路徑的登錄檔中將 EnableInsecureTlsFallback 設為 1。

  • 更改設定:SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\winhttp
  • 設定政策:SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings

如果沒有 EnableInsecureTlsFallback,則必須建立新的 DWORD 條目並將其設為 1。

重要的登錄路徑

  1. 強制預設安全協議

    • HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\winhttp
    • 預設是 FALSE。 設定非零值會阻止應用程式使用 winhttp 選項設定自訂協定。
  2. EnableInsecureTlsFallback

    • 更改設定:SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\winhttp
    • 設定政策:SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings
    • 預設是 FALSE。 設定非零值將使應用程式在握手失敗時, () TLS1.0 和 1.1 的不安全協定 (TLS1.2 及以上) 時可退回。