工作來源
CODASPY 2024
工作背景
為保證兼容性,有時候客戶端遇到連接錯誤時會主動嘗試用更低版本的 TLS 協議進行重新協商。這就有了中間人攻擊的空間,攻擊者阻斷高版本 TLS 握手,誘使客戶端主動降級。瀏覽器應對降級攻擊的研究很多,但企業常用的遠程桌面軟件、電子郵件軟件、VPN 軟件等各種軟件,能否經得住考驗?
傳統握手過程不再贅述,TLS 1.3 進行了部分修改。降級攻擊的典型流程,如下所示:
防御 TLS 降級的兩個方式:Fallback SCSV 與 TLS 1.3 Sentinel Value,這里不再贅述,感興趣的讀者自行搜索。
工作設計
第一階段:中間人首先中斷客戶端的首次 TLS 連接。如果客戶端用一個更低版本的 TLS 協議重試,就說明它會降級。同時,檢查這次重試有沒有攜帶 Fallback SCSV。
第二階段:如果客戶端會降級,中間人則在模擬的服務器回應中,手動注入 Sentinel Value。如果客戶端能正確識別并發送 illegal_parameter 警報,則認為它具備降級保護。
第三階段:對于松耦合(可連接任意服務器)的客戶端,讓它連接到一個可控的、確定會發送 Sentinel Value 的服務器上,來最終確認客戶端是否真的不做檢查。
第四階段:對于緊耦合(只連接自家服務器)的客戶端,反過來測試它所連接的那個特定服務器,看服務器端是否會檢查客戶端發來的 Fallback SCSV 信號。
工作準備
37 個遠程桌面程序、49 個電子郵件程序與 131 個 VPN 程序,具體列表如下所示:
工作評估
217 個應用程序中,有 42 個會被降級影響,大部分應用程序還是從根本上杜絕了降級攻擊的發生。在這 42 個應用程序中,4 個應用程序既不發送 Fallback SCSV,也不檢查 Sentinel Value,無論它們連接到哪個服務器,都容易受到降級攻擊。也有 4 個應用程序,客戶端缺乏防御,連接的特定的服務器又恰好缺少另一種防御。
工作思考
超過 90% 的跨平臺應用,在不同操作系統上的 TLS 行為不一致 。例如,Array Motion Pro 這款 VPN,其 iOS 版有 SCSV 保護,Android 版干脆不降級,而 Windows 和 macOS 版則存在通用漏洞 。這種不一致性可能給企業的安全策略部署帶來了巨大的混亂和風險 。
PS:深信服和天融信的 VPN 程序,是不是需要做個升級?