Aes

TLS AES-CBC / SHA 密碼套件的直通模式

  • November 23, 2017

我正在查看 RFC5246,似乎 AES-CBC/SHA 密碼套件無法以直通模式實現。

假設接收到的記錄跨越兩個段。據我了解,只有在第二條記錄的最後一個字節(pad_length)被解密後才能開始 HMAC 計算,這需要緩衝包含一條記錄的兩個段。

我錯過了什麼嗎?

我錯過了什麼嗎?

嗯,第一個明顯的問題要問,甚至在“我可以嗎?”之前。是“我應該嗎?”。

從安全的角度來看,以直通模式執行 TLS 會出現安全問題,因此即使可以嘗試,也不清楚是否應該嘗試。

假設你這樣做了;您實現了一種接收部分 TLS 記錄並將部分解密的明文記錄發送給接收方的方法。

然後,攻擊者可以做的是發送一個聲稱是 16k 字節加密記錄的 TLS 記錄,然後發送包含他選擇的前 15k 密文的分段;如果無法找到匹配的 HMAC;他可能決定根本不發送那個。

您的實現將解密 15k 的密文並將其轉發。然後它會收到一個不匹配的 HMAC,或者超時;沒關係,因為接收者已經收到了他的 15k 虛假明文。

而且,如果你說“攻擊者無法控制他的密文將解密到什麼,因此它對攻擊並不那麼重要”,那是錯誤的。通過從以前的記錄中粘貼密文,和/或翻轉精心選擇的位(這將混淆一個明文塊,但翻轉另一個明文塊的相應位),攻擊者俱有相當大的靈活性。

這與設計的 TLS 無關,因為在 HMAC 驗證之前,整個解密的記錄永遠不會轉發給應用程序;你打破了這個假設。

引用自:https://crypto.stackexchange.com/questions/53348