為什麼不驗證全盤加密?
常見的 FDE 軟體(TrueCrypt、BitLocker、dm-crypt)不驗證儲存在磁碟上的密文。普遍引用的原因是“它會佔用太多空間”,理由是每個扇區都需要一個身份驗證標籤,這會佔用相當大比例的可用空間。
使用 512 字節扇區和 HMAC-SHA256 進行身份驗證,如果每個扇區都經過完全身份驗證,您將消耗大約 6% 的磁碟空間。我可以理解有人會認為這個數量太多,但如果是這種情況,您可以簡單地將 HMAC 標籤截斷為 64 位(總比沒有好,對吧?),並使用少於 2%整體空間。
對於 4096 字節的扇區,空間完全不成問題,每個扇區的 HMAC 標籤上花費的空間不到 1%。特別是對於延展性是一個重大風險的 AES-CBC-ESSIV,這似乎是一個值得付出的代價。
鑑於使用 CBC,您每次都需要重新加密整個扇區,我看不出身份驗證對性能有何影響。
那麼,是否有理由不使用我缺少的身份驗證?
對於 4096 字節的扇區,空間完全沒有問題,不到 1 %
問題 1:對於許多人來說,每 TB 10GB 並不是一個“完全沒有問題”的問題。
問題2:
如果校驗和在其數據塊內,則存在巨大的兼容性問題。每個塊的數據少於 512/4096,但幾乎所有重要作業系統的許多(非常多)程序和核心部分都依賴於此。(無論是為了工作,還是為了速度。正是這個數字,不僅僅是因為它是 2 的冪或類似的東西)。
鑑於有人調整了 Truecrypt 等“下方”的所有核心部分,其他部分和依賴於此的使用者態程序會突然變得非常慢。如果在讀取塊 1、2、3 之前有什麼東西;現在將讀取 1,2,2,3,3,4;IE。兩倍所需的塊數和(更重要的是)非順序 =>慢。
如果校驗和在數據塊之外,即。每個 X 數據塊的完整校驗和塊……比如說。每 256 個數據塊有 1 個校驗和塊。然後,為了讀取/寫入塊 1 中的 1 個字節,磁碟需要塊 1 和 256。同樣最好不要順序。
問題3:
攻擊場景是什麼?有人偷了磁碟然後還給了它?在這種情況下,在再次正常使用之前執行一次檢查就足夠了。為此,許多文件系統已經具有每個文件的校驗和(不是每個塊,但不是真正必要的)。這意味著,每塊校驗和首先是無用的。