Tls

什麼 32 字節的 TLS 數據記錄用於?

  • April 2, 2018

我已經擷取了我的 Tor 客戶端網路流量,並註意到在每個數據包中它首先發送 2 個 TLS 記錄,其中始終是 32 字節長。第一個 TLS 記錄似乎沒有攜帶任何數據。它是乾什麼用的?

TLS 記錄

這是對 BEAST 攻擊的防禦。

此攻擊針對 TLS 1.0(和 SSLv3)和 CBC 模式;在 CBC 模式下,TLS 總是使用前一個密文塊作為下一個 IV,因此攻擊者總是可以預測將用於加密下一個塊的 IV。因此,攻擊者所做的就是說服發送者發送特定的數據;該數據與 IV 相結合,會導致 AES(或 DES/3DES)加密攻擊者選擇的塊,並允許攻擊者判斷之前的加密數據塊是否對應於特定的明文。

因此,要使這種攻擊起作用,攻擊者需要知道在選擇要加密的數據時將使用的 IV。

這個空記錄所做的就是把這次攻擊搞砸了。攻擊者知道將用於加密空記錄的 IV,但他無法控制加密的數據(因為它是空的)。然後 TLS 將“下一個 IV”設置為該記錄的最後一個密文塊;然後,TLS 加密真實記錄(包括攻擊者可能選擇的明文);但是它使用了攻擊者在選擇明文時無法預測的 IV,因此攻擊不起作用。

更簡單的防禦方法是使用 TLS 1.1 或更高版本(它為每條記錄意外地選擇 CBC 模式 IV),但是如果您堅持使用 TLS 1.0,那麼這就是您需要做的事情

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