Aes
GCM 加密限制如何影響 TLS 連接?
根據Wikipedia關於 Galois/Counter Mode 的文章,GCM 僅限於加密 $ 2^{39} − 256 $ 任何給定密鑰和初始化向量的純文字位 (64 GiB)。鑑於此限制,對於與 AES GCM 密碼套件的 TLS 1.2 連接,應考慮哪些因素?
- 達到限制時是否應該重新協商或手動關閉會話/連接?還是 TLS 協議規定達到限制時會自動關閉連接或生成新的 IV?還是依賴於實現?
- 該限制是分別適用於每個對等方(伺服器和客戶端)還是該限制適用於連接兩側加密的所有數據的總數?
- 恢復的會話是否會使用新的密鑰/IV 組合,從而根據限制重置計數?
- AES 密鑰大小或其他密碼套件選項是否會影響加密限製或上述問題的答案(只要它是 AES GCM)?
注意:通過 .NET 4.6.2 的 SslStream 使用 TLS 1.2 和 AES-256 GCM 加密和 ECDHE-ECDSA 密鑰交換/協議。
實際上,該限制不會影響 TLS。
TLS 分別加密每條記錄,為每條記錄使用一個新的 IV。一條記錄的長度限制為 16kbytes,因此您永遠不會達到 TLS 中的 64Gbyte 限制。換句話說,您將在每 16kbytes(可能更早)之後使用一個新的 IV。