2008年3月9日 星期日

[網管]關於 md5(); 的一些想法

在黑米看到一個書籤: md5(); - reverse engineer md5 hashes - powered by rednoize.com 在介紹 http://md5.rednoize.com/ 這個網站,有一點想法,先記下來。

首先,這個網站是以類似 google 搜尋引擎外觀的 md5/sha1 hashes 搜尋網站。你可以用 hashed string 反向查詢其原始字串,也可以用任意字串查詢其 hashed md5/sha1 string 。

我的想法比較負面,我個人覺得,這是一個 相當危險 的服務。

md5/sha1 編碼被拿來作為密碼的編碼方法,是因為他的不可逆演算法,如果想破解,通常是用暴力法將 hashed password 跟 hashed 字典檔比對,只要密碼設得稍微複雜一點,不要是簡單的數字組合、字典裡的單字或單字組合、長度足夠的話,應該還算安全。加上不定期更改密碼的話,那就更不易被破解。

知道我的重點了嗎? hashed string 的安全,在於我們假設 hashed 字典沒有安全密碼的條目可以檢索查詢,所以即使編碼後的密碼檔外洩,至少不會在短時間內就被攻破,有比較充足的時間可以更換密碼。而這個服務,可以說是在集合所有使用這個服務的人的力量在充實 hashed 字典

不信,你可以試試查詢「6a22f07b48660658bff878e44e1431e2」這個 hashed string 。原本我第一次使用時是查不到的,可是現在可以查得到了,你會得到「 tbontb 」 ( to be or not to be 每個單字的首字組合) 。只要你先查詢過,然後使用他 switch mode 後,便可以改為用字串查詢 hashed md5/sha1 。可怕的是,他把你的查詢紀錄下來了,從此後,便可以用 hashed string 反查回原字串。如果你好奇的用他來查詢你的密碼的 md5/sha1 值,恭喜你,你的密碼 md5/sha1 string 從此可以輕易被任何人從這個網站上反查得到。

假設,這個網站運作了相當長的一段時間後,充實了相當大量的 hashed string 字典,而這個字典資料庫被用在駭客工具上的話……

所以囉,寫密碼驗證的程式不是用 md5/sha1 就比較安全,至少要加點鹽調味 ( salted md5/sha1 ) 才會更安全。

2008-03-10 更新!

剛剛在 plog-svn 裡看到 mark 介紹這裡 ( http://kuza55.blogspot.com/2006/10/online-reverse-lookup-tables-for.html ) 蒐集了更多提供類似服務的相關的網站,記下來參考。

沒有留言:

張貼留言