浅谈HASH算法与CSDN密码泄漏事件
生活随笔
收集整理的這篇文章主要介紹了
浅谈HASH算法与CSDN密码泄漏事件
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在CSDN密碼泄漏事件中,網友評論提到密碼的明文保存和MD5保存問題。目前,很多站點都用MD5算法保存密碼,但對于HASH(哈希)算法的認識還存在很多誤區,很有必要重新認識。 一、HASH算法不是加密算法
HASH算法是一種消息摘要算法,不是一種加密算法,但由于其單向運算,具有一定的不可逆性,成為加密算法中的一個構成部分,完整的加密機制不能僅依賴HASH算法。二、HASH算法的碰撞現象
HASH算法可以理解為將任意的信息經過提煉后,成為一個定長的字符串。世界上的信息數量為無窮大,所以定長的字符串不可能表達所有的摘要,因此存在所謂的“碰撞”,即2個同樣的信息源摘要是一樣的。2004年山東大學王曉云提出有關快速查找“碰撞對”的算法,引起安全界對于HASH算法的極大關注,NIST提出到2010年不再使用MD5和SHA-1。目前仍可使用的HASH算法包括:SHA-256,SHA-512,SHA-224,SHA-384。2011年2月FIPS180-4草案還增加了SHA-512/224,SHA-512/256。這些算法都是SHA-2系列算法,SHA3-256算法也即將到來。關于碰撞必須還要說的是,有幾率找到碰撞對,但并不意味著HASH算法整體被否定,例如將合同文本整體HASH并數字簽名,如果找到碰撞對,很難還原成一個正常的文本,如果是一堆亂碼,沒有人會認可此文件,在不篡改HASH的前提下無法有實際意義的修改合同。
三、HASH的破解與社會工程學 HASH算法本身為單向性,很難直接破解,現有的破解都是將常用字符計算HASH值后反向比較。例如密碼123456,假設MD5值為1ab9744e58acee3ed8f03508cbf82bf5,那么數據庫中查到MD5值即知道了密碼。通過社會工程學的應用,大量常用密碼已可直接破解。四、合理使用HASH算法 1. 廢除舊算法,至少使用SHA-256,64位操作系統SHA-512運算速度更佳,建議選用 2. 合理加點“SALT”,即干擾字符串。例如:SALT1=C`3/$xUM,5ltL4pze;avf9#kgmET^SALT2=1qYIs,vOSfn%UHhm5+3TX:#iety0d計算HASH SHA-512(SALT1+用戶名+SALT2+密碼)那么社會工程學和目前的暴力運算是無法解決的 3. 不要以為聯合使用HASH算法會安全。例如MD5+SHA1,或者SHA1(MD5)嵌套,有文獻證實都是無效的。最后希望程序員們能多看文獻,跟上國際安全標準,盡可能避免安全事件的發生的影響。
三、HASH的破解與社會工程學 HASH算法本身為單向性,很難直接破解,現有的破解都是將常用字符計算HASH值后反向比較。例如密碼123456,假設MD5值為1ab9744e58acee3ed8f03508cbf82bf5,那么數據庫中查到MD5值即知道了密碼。通過社會工程學的應用,大量常用密碼已可直接破解。四、合理使用HASH算法 1. 廢除舊算法,至少使用SHA-256,64位操作系統SHA-512運算速度更佳,建議選用 2. 合理加點“SALT”,即干擾字符串。例如:SALT1=C`3/$xUM,5ltL4pze;avf9#kgmET^SALT2=1qYIs,vOSfn%UHhm5+3TX:#iety0d計算HASH SHA-512(SALT1+用戶名+SALT2+密碼)那么社會工程學和目前的暴力運算是無法解決的 3. 不要以為聯合使用HASH算法會安全。例如MD5+SHA1,或者SHA1(MD5)嵌套,有文獻證實都是無效的。最后希望程序員們能多看文獻,跟上國際安全標準,盡可能避免安全事件的發生的影響。
總結
以上是生活随笔為你收集整理的浅谈HASH算法与CSDN密码泄漏事件的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于3G网络的汽车防盗报警系统视频监控设
- 下一篇: Apache在windows下的安装配置