2012-11-07 93 views
1

對於文件存儲庫,我需要選擇一種散列算法來合理確保文件的完整性。用於文件完整性驗證的簽名/散列選擇

我需要一種算法,任何人(只需付出一點努力)就可以很容易地使用它來驗證給定哈希的完整性。簡而言之,該文件可能會傳送給用戶以及散列,並且他們必須能夠驗證該散列來自該文件。

我的第一選擇將是MD5,因爲似乎有廣泛使用的實用程序來驗證MD5哈希值,但我關心的是MD5算法進行加密破碎(參見維基百科/ US-CERT:http://en.wikipedia.org/wiki/MD5

我第二個選擇是SHA-2算法,但我擔心可以輕鬆驗證散列的實用程序的可用性。我發現的大多數示例都顯示了用於評估哈希的程序代碼,但是我發現很少有(如果有的話)預先構建的實用程序(要求用戶構建自己的實用程序超出了「易」範圍)。還有哪些其他選項可用於生成和評估文件哈希,或者這兩個選項是最好的?

+0

在這種情況下第二預圖像似乎是相關的攻擊。沒有已知的方法可以有效地找到MD5的第二張預先圖像。 – CodesInChaos

+0

@CodesInChaos有效定義。如果能夠低效地完成,那不是一個問題。 – weston

+0

@weston在這種情況下,它是> 2^120個MD5調用,即完全不可行。 – CodesInChaos

回答

2

提供兩個/多個,並讓用戶決定他們驗證哪一個。或者如果他們真的很謹慎,他們可以驗證兩種/所有。

已經看到下載網站使用這種方法。一個網站建議最安全的,但提供其他像md5作爲後備。它還提供了工具鏈接。不記得我害怕的具體網站。

+0

+1優秀的建議! –

0

由於您已經能夠找到幾個文件檢查器,爲什麼不作爲建議鏈接到它們呢?這樣你的用戶至少有一個他們可以使用的工具。他們不需要幾十個不同的文件檢查工具,它們只需要一個適用於您選擇使用的算法的工具。

工具,你可以鏈接到: 的Windows:http://securityxploded.com/download-hash-verifier.php 的Mac OS X:http://www.macupdate.com/app/mac/31781/checksum

+2

這反過來需要信任這些程序 – CodesInChaos

+1

+1,因爲它是注意事項。但是,如果你遵循這樣的推理,你將需要用戶編寫他們自己的編譯器......它是完全信任的。 – kander

+0

我很樂意推薦用戶使用預構建的實用程序以方便使用,那些需要額外安全性的人員也會知道如何使用他們自己的工具來確保安全性。用戶估計是95%'我不關心文件完整性',其餘混合'我可以檢查'和'我將建立我自己的工具來驗證'。 –

0

sha256sum,程序的coreutils包的Linux上的部分將產生列出的文件校驗和。校驗和輸出的格式與md5sum程序的格式相同(但當然使用SHA-256散列代替MD5),這已被廣泛使用多年。您沒有列出任何目標平臺,但一個快速的搜索結果顯示命令行程序有Windows端口。

如果您需要生成大量校驗和,您可以使用md5deep,其中還包括對其他散列的支持,包括SHA-256。 http://md5deep.sourceforge.net/

我還沒有試過這種但是從截圖它看起來很整齊納入OSX和Windows資源管理器:http://implbits.com/HashTab.aspx

+0

HashTab看起來非常好,我一定會將其添加到工具列表中。我也沒有在我的原始搜索中找到它,所以我的Google技巧必須吸引... –