摘要
傳輸層安全性 (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,如啟用 TLS 1.1 版及以下版本中所述。
圖 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>Internet 控制台>進階頁面>關閉加密支援。請參閱圖 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,它會儲存目前啟用通訊協定的值。
群組原則 SecureProtocols 的優先順序高於 [網際網路選項] 所設定的方案。
啟用不安全的 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。
重要的登錄路徑
ForceDefaultSecureProtocols
- 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.2 和更新版本) 握手失敗時,) 回退為不安全的通訊協定 TLS1.0 和 1.1。