Reference-Request

他們如何在 TLS 中實現 MAC?

  • October 23, 2016

我最近閱讀了有關“MAC 然後加密/加密然後 MAC”的問題,這讓我對他們實際使用算法的方式感到好奇。

MAC只計算一次任何一種情況(根據我讀到的)。但是,根據我通過 HTTPS 瀏覽網站的經驗,我認為我們應該檢查收到的每塊數據的真實性。

例如,如果我假設 MAC 附加在加密數據的末尾,那麼瀏覽器是如何如此自信地在 HTML 完成下載之前執行 Javascript。

此外,當通過 HTTPS 下載大文件時,瀏覽器似乎在接收文件的所有部分之前將解密的數據寫入硬碟。

我認為在這種情況下我們應該使用可更新的 MAC 並驗證收到的每塊數據。但是,如果攻擊者的目標是丟棄部分數據,例如“攻擊者希望執行第一個 Javascript 而執行第二個”,這種方法仍然容易受到攻擊。

所以,我想問一下瀏覽器使用什麼方案來確保在不接收文件的所有部分的情況下執行某些操作?或者我的資訊在某些時候是錯誤的?

( $ \hspace{.02 in} $ 包≈ $ \approx $ 塊)

他們將數據包編號放入明文中,然後分別對數據包進行mac-then-encryption

通過記錄狀態的目前安全參數在記錄層進行加密。MAC 發生在加密之前、壓縮之後或解壓縮之前的解密之後。記錄層碎片不尊重各種應用層的邊界。例如 TLS 表示語言中的多個記錄有效負載或消息;可以打包成一個記錄包,兩者都加密在一起作為一個記錄包。

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