6

當心 Windows KB5018410、KB5018418 更新導致 TLS/SSL 相關應用程式異常

 1 year ago
source link: https://blog.darkthread.net/blog/kb5018410-issue/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

當心 Windows KB5018410、KB5018418 更新導致 TLS/SSL 相關應用程式異常-黑暗執行緒

學新東西時最怕有其他系統問題來亂,你通常先檢討自己程式沒寫好或漏掉什麼關鍵,查又查試了又試,依然連簡單到靠北的範例都做不出來,沮喪到懷疑人生...

這幾天在練習寫 Azure AI 程式,便遇上了這種狀況。

照著 PowerShell 跟 C# 範例初步測試成功,陸續加了邏輯也順利執行,但改一改 C# Azure Speech SDK 程式忽然噴出錯誤,訊息像是連線不通,但有時又會成功(原因最後再解釋):

RuntimeError
[Internal error: HttpAPI failed - Failed with error: HTTPAPI_OPEN_REQUEST_FAILED [0x3]  

ServiceTimeout
USP error: timeout waiting for the first audio chunk]

經過一番調查,大致推測是連線方面有問題,但 PowerShell 範例直接呼叫 REST Api 又始終正常。射茶包射到萬念俱灰了無生趣,回頭專心爬文,查到關鍵討論,原來這是個熱騰騰的茶包,微軟在 10/12 釋出了 Windows 10 安全更新 KB5018410 (Windows 11 KB5018418 / Windows Server 2019 KB5018419 似乎也有災情) 修改了作業系統層的 TLS 行為,造成許多 TLS 相關程式發生異常:

Windows 10/11 patch on Tuesday that changed the behavior of TLS in the operating system. Speech SDK is not the only ones impacted and a wide variety of TLS-dependent service use started failing with the latest patches.

查了我的電腦,果然有 KB5018410,中!

Fig1_638014141216785414.png

再找到相關報導,這次更新停用了 TLS 1.0/1.1 應是所有問題根源。(想起兩年前停用 TLS 1.0/1.1 後雞飛狗跳的場景,沒想到會再次回味)

找到一些其他災情相關討論:

停用 TLS 1.0/1.1 是趨勢,若軟體或程式庫沒跟上,一停用馬上掛的狀況因為之前體驗過了,這回心情倒是異常平靜 😄 就看看怎麼處理吧?

微軟的這篇 KB KB5017811- 在 2022 年 9 月 20 日預設行為變更之後,管理 TLS 1.0 和 1.1 的傳輸層安全性 有一些相關說明跟因應方式,但我嘗試加了 Registry 都沒成功,最後決定回歸最無腦最快的解法 - 解除安裝:

Fig2_638014141219042542.png

重開機再測,問題便消失了。後續就等 Azure Speech SDK 更新或 Windows 有另外修補更新再把 KB5018410 裝回去吧。

最後,揭曉「為何明明有 TLS 問題,PowerShell 沒問題,C# 測試時好時壞?」

PowerShell 是用 Invoke-RestMethod 呼叫 API,背後是 .NET HttpWebRequset;而 C# 用的 Azure Speech SDK,依賴原生 dll 連線 API,由錯誤訊息推測是用 openssl 程式庫,走的路不同,故只有 SDK 受影響。而時好時壞則因為我有幾次開了 Wireshark/Fiddler 偵察,意外影響底層網路傳輸行為,繞開了 Bug,測試就成功了,因此留下時好時壞的印象。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK