SSL 中的密碼塊連結 (CBC) 加密
SSL 加密中是否使用密碼塊連結 (CBC) 模式?如果塊重新排序已經受到 SSL 和 TCP 序列號的保護,那麼 CBC 提供了哪些額外的優勢?
序列號用於禁止消息/記錄本身的重新排序,而不是它們內部的塊。分組密碼/操作模式用於對消息中的數據保密;連結發生在一條消息上,而不是所有消息上 - 至少對於較新的較新的 TLS 協議不會。
如果使用 CBC 模式,則可以對消息中的塊進行重新排序。但是,加密後的明文消息已通過使用 HMAC 的身份驗證標籤進行保護,這意味著更改後的明文消息將無法通過驗證。
如果塊可以有任何相互依賴的數據,ECB 模式總是不安全的。原因是相同的明文塊總是會產生相同的密文塊,從而洩露資訊。它類似於對 CBC 模式使用相同的 IV,但對每個塊都使用相同的 IV。ECB 模式下的分組密碼不是 CPA 安全的。
請注意,較新的 TLS 1.3 協議完全不允許 CBC 模式。TLS 中的 authenticate-then-encrypt 和 CBC 模式存在許多問題,例如,需要對 CBC 填充模式進行特定於協議的更改。如今,應該首選經過身份驗證的流或流密碼模式。大多數這些模式(例如 GCM)使用計數器 (CTR) 模式而不是 CBC。
CBC 主要用於遺留應用程序。它在加密庫中得到廣泛支持,這使其成為不需要更好的應用程序的合理選擇。然而,這裡的大多數密碼學家會盡量避免 CBC 模式,因為它需要隨機 IV 和填充或密文竊取。它僅比 ECB 等不安全模式提供真正的好處。
SSL 是一個舊名稱。現在應該首選 TLS,因為 SSL 可能指的是現在通常在客戶端/伺服器中禁用的舊協議。有一些關於為 TLS 1.3 重新引入 SSL 名稱的討論,但幸運的是——在我強烈的意見中——這並沒有發生。