Block-Cipher
當數據包可能失去/擦除時,如何將分組密碼應用於(大型)分組通信?
鑑於目前事件(Zoom 在 ECB 模式下使用 AES-128 遇到了強大的阻力),我想知道分組數據加密的一般方法是什麼,其中數據包長度(用於 Internet 上的影片的 UDP:> 1200 B 有效負載)
- 真的只是ECB模式下的分組密碼,讓每個包都可以在沒有任何前包的情況下被解碼嗎⁰?
- 它是在某些非 ECB 模式下的分組密碼,但它在數據包開始時被重置?
- 它是否是某些非 ECB 模式下的分組密碼,但我們只是使用了足夠多的說 $ N $ 我們以交錯/順序方式使用不同的密鑰、解和編碼器,因此任何小於 $ N $ 連續的數據包給了我們足夠的時間讓發送器知道我們需要重新初始化接收器?¹
- 您是否會採用 WiFi/WPA 路線為每個數據包派生密鑰,從而導致我們知道針對該 TKIP/KDF 方法的幾種攻擊?
- 我完全錯過了一切嗎?
我試圖研究 KASUMI(3G 加密標準)是如何做到這一點的,但我無法找到相關的標准文件。
⁰ …每個人都在抨擊 Zoom 堅持行業最佳實踐?
¹這不會導致攻擊者通過控制哪些封包遺失來強制編碼器進入已知狀態的可行性嗎?
真的只是ECB模式下的分組密碼,讓每個包都可以在沒有任何前包的情況下被解碼嗎⁰?
不。ECB 很糟糕,創建一個安全的實時通道(甚至可以處理封包遺失)是一個已解決的問題。已經好幾年了。在這裡使用歐洲央行沒有很好的藉口。
它是在某些非 ECB 模式下的分組密碼,但它在數據包開始時被重置?
通常的方法是為加密使用某種形式的初始化向量,該向量作為明文與每個數據包一起發送,如果預期封包遺失,則用於重新同步兩個端點之間的狀態。對於某些加密方案,這可能只是數據包計數器。然後,一旦您同步了數據包的狀態,就可以使用有狀態的加密方案,如GCM或CTR + HMAC來加密單個數據包。
如果你想看看這在實踐中是如何工作的,三大安全通道標準是TLS(不能處理有損底層)、DTLS (針對有損上下文的TLS 1.2的適配)和SRTP。