Dropbox 的散列方法在密碼學上是否安全?
Dropbox 使用 CRC32 和 md5 創建每個 4 mb“塊”的校驗和,作為其壓縮/文件系統的一部分。
我懷疑 Dropbox 使用額外的加密雜湊來檢查是否存在衝突,但我們假設這不會發生。
結合使用 CRC32 和 md5 是否具有加密安全性?
CRC32 和 MD5 都不是加密安全的。MD5 具有已知的衝突弱點,因此不再被視為加密安全。並且 CRC32 甚至不是雜湊……它是一種“循環冗餘校驗”算法,它產生一個“錯誤檢測程式碼”。循環冗餘檢查不是,也從未意味著加密安全。
即使是這樣,Dropbox 也不將其文件儲存基於校驗和和/或衝突雜湊。這並不是說他們只是簡單地上傳您的文件,將其切成 4mb 的部分並將其放入 MD5 中以防止重複。如果他們這樣做的話,他們會被淹沒在混亂中。他們處理文件儲存的方式涉及更智能的東西,例如重複數據刪除(使用 256 位塊校驗和)等。
謠言 證實Dropbox 可能正在使用原始 SHA256 雜湊來“唯一”辨識數據,一些文章解釋瞭如何以多種方式利用這一點。還發現了 SHA256、SHA1 和 MD5 校驗和以及下載連結——這排除了它們可能僅依賴 CRC32 和/或 MD5。對 Dropbox 的實際分析得出了同樣的結論。但由於無法窺視盒子內部,因此很難判斷我們到底在看什麼。我們所知道的只是 DropBox 發布的內容……就他們用來以(某種程度上)最佳方式處理如此大量數據的技術/手段而言,這並不算多。但不難發現它比您的 CRC32 + MD5 假設更強大。
無論如何……拋開與 DropBox 相關的猜測,回到問題中更重要的部分:當涉及到文件完整性和檢查數據衝突時,像 Tripwire 這樣的公司明確地對文件執行 MD5 和 CRC32 檢查以確定一個變化,因為很難找到匹配兩種不同算法的碰撞……從這個角度來看,它可能是實用的,因為它會增強碰撞硬度。然而,從我個人的角度來看,這只是將碰撞的可能性降低到最低限度。因此,我不會更喜歡 CRC32 和 MD5 組合而不是(例如)SHA3 ……但是如果我需要增加抗碰撞性,並且將 CRC 與雜湊相結合將是唯一可用的選項,我很可能會同意選擇加入 CRC32 和 MD5 組合,因為它'