摘要
傳輸層安全 (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 更新後反映。
在瀏覽器中存取 TLS 1.0 與 1.1 連結時的行為
2022 年 9 月 20 日之後,當您的瀏覽器開啟使用 TLS 1.0 或 1.1 的網站時,會出現訊息。 見圖1。 訊息中指出該網站使用過時或不安全的 TLS 協定。 為了解決這個問題,你可以將 TLS 協定更新到 TLS 1.2 或更高版本。 若無法啟用,您可以依照「 啟用 TLS 版本 1.1 及以下版本」中所述啟用 TLS。
圖 1:存取 TLS 1.0 與 1.1 網頁時的瀏覽器視窗
在 winhttp 應用程式中存取 TLS 1.0 與 1.1 連結時的行為
更新後,基於 winhttp 的應用程式可能會失敗。 錯誤訊息為「執行 WinHttpSendRequest 操作時ERROR_WINHTTP_SECURE_FAILURE」。
在基於 winhttp 或 wininet 的自訂 UI 應用程式中存取 TLS 1.0 和 1.1 連結時的行為
當應用程式嘗試使用 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:群組原則編輯器視窗
- 可導覽至本地電腦政策> (電腦設定或使用者設定) >管理模板>、Windows 元件>、Internet Explorer>網路控制台>進階頁面>、關閉加密支援。詳見圖 7。
- 雙擊 關閉加密支援。
圖 7:關閉群組原則編輯器中加密支援的路徑 - 選擇 啟用 選項。 然後使用下拉選單選擇你想啟用的 TLS 版本,如圖 8 所示。
圖 8:啟用 關閉加密支援與下拉選單
一旦你在群組原則編輯器啟用該政策,就無法在網際網路選項中更改它。 例如,如果你選擇 使用 SSL3.0 和 TLS 1.0,網際網路選項中將無法使用其他所有選項。 見圖9。 如果你在群組原則編輯器中啟用關閉加密支援,就無法更改網際網路選項中的任何設定。
圖 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。
重要的登錄路徑
強制預設安全協議
- HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\winhttp
- 預設是 FALSE。 設定非零值會阻止應用程式使用 winhttp 選項設定自訂協定。
EnableInsecureTlsFallback
- 更改設定:SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\winhttp
- 設定政策:SOFTWARE\Policies\Microsoft\Windows\CurrentVersion\Internet Settings
- 預設是 FALSE。 設定非零值將使應用程式在握手失敗時, () TLS1.0 和 1.1 的不安全協定 (TLS1.2 及以上) 時可退回。