999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

口令加密算法安全性分析與對比

2017-02-13 15:59:55祁鑫魏美榮蔣文保
網絡空間安全 2016年11期
關鍵詞:安全數據庫

祁鑫+++魏美榮+++蔣文保

【 摘 要 】 隨著信息技術的快速發展與滲透,數據庫應用越來越廣泛。但伴隨著近期CSDN、如家、漢庭甚至小米論壇所涉及的數據泄露事件,也表明了數據庫存儲的安全性問題日顯突出。論文首先介紹了數據庫存儲安全的現狀,區分了MD5的碰撞性在算法與在應用上的根本區別。然后,指出了傳統MD5哈希算法與加鹽哈希算法在某些應用場景下的誤區,總結了安全的加鹽哈希算法應用。最后,通過PBKDF2迭代算法對加鹽哈希算法應用流程進行優化,利用Python編程還原哈希過程,并通過測試驗證了該種慢速哈希算法的應用,可以使利用高性能硬件進行字典或者暴力破解的速度慢到沒有實用價值。

【 關鍵詞 】 數據庫; 安全; 哈希算法; SHA256;PBKDF2

Security Analysis and Comparison of Password Encryption Algorithms

Qi Xin Wei Mei-rong Jiang Wen-bao

(Beijing Information Science and Technology University Beijing 100192)

【 Abstract 】 With the rapid development of information technology, Application database are more widely. But recent such as CSDN, even millet forum, home Hanting involved data leakage problems, it showed a significant outstanding safety issues with date database storage. This paper describes the status of the database storage security and distinction between the MD5 collision of fundamental differences in the algorithms and the application. Then, noting the traditional salted MD5 hash algorithm and hash algorithm errors in certain scenarios, summarized the safety salted hash algorithm used. Finally, improving the salt hash function by using PBKDF2 to iterative algorithm and using python programming to restore thehash process and validation this kind of slow hash algorithm applications can make the hash function very slow, so that even with a fast custom hardware, dictionary and brute-force attacks are too slow to be worthwhile.

【 Keywords 】 database; security; hah algorithm; sha256; pbkdf2

1 引言

隨著計算機和網絡的迅速發展,數據庫應用越來越廣泛。信息加密及用戶認證機制對于用戶數據的保護更顯得至關重要。國外的學者Piyush Gupta(2014)從密鑰、程序塊、循環等方面對比了SHA與MD5算法[1]。國內研究人員對傳統用戶口令認證加密算法進行了研究。其中,劉洪民(2014.5)在“MD5算法在用戶口令認證中的應用”中提出了通過加密過程變換、局部修改方法以保證MD5算法在應用中的安全性[2]。趙光亮(2015年)在“基于MD5 算法安全性研究發展及分析”中提出了通過加鹽、多次加密等方法提高傳統MD5算法安全性[3]。

本文通過對多種口令加密算法的安全性進行分析和對比后,發現傳統MD5、SHA等哈希算法甚至改進的加鹽哈希算法在某種程度上并不能滿足口令加密在應用上的安全性需求。同時分析得出了慢速哈希算法在應用上可以較好的防止暴力破解攻擊并利用python編程通過PBKDF2算法進行迭代改進了加鹽哈希函數,最后通過測試驗證了該種哈希機制在一定程度上可以解決目前傳統哈希算法及部分加鹽哈希算法所存在的問題。

2 安全加鹽哈希算法分析

2.1 傳統加鹽哈希算法的誤區

在傳統的數據庫密碼存儲過程中,很多服務商也會對密碼加鹽后進行哈希再存儲,但有時即使這樣還是出現了輕易被黑客的破解的情況,原因是對鹽的使用存在的幾個誤區。

誤區1:單一鹽的使用

在每一個密碼hash里使用相同的鹽會使這種防御方法失效,因為相同的密碼hash兩次得到的結果還是相同的。攻擊者就可以進行字典和暴力攻擊,而他們只需要在對字典中每一個密碼進行hash之前加上這個固定的鹽就可以實現快速破解哈希摘要了。

誤區2:使用長度較短的鹽

當鹽的位數較短的話,攻擊者可以預先制作針對所有可能的鹽的查詢表。比如,3位ASCII字符的鹽,一共只有95^3=857,375種可能性。看起來數量很多。假如每一個鹽制作一個1MB的包含常見密碼的查詢表,857,375個鹽才是837GB,而現在一個1TB的硬盤成本只有幾百塊而已。[4]黑客可以將彩虹表存儲在大存容量盤中對密碼進行暴力破解。

2.2 基于偽隨機數生成器的加鹽哈希算法

在相對安全的加鹽算法中,每次用戶在進行賬號注冊、密碼更改等行為時都生成新的隨機鹽添加到用戶的密碼值中,再對其進行哈希。通過對用戶注冊密碼加鹽哈希并對其登錄進行驗證的流程如圖1所示。

從圖1中我們可以看到,流程的關鍵點在于隨機鹽的生成,若黑客可以猜測出進行哈希的鹽,那么就可以通過彩虹表或反向查表等方式快速對哈希結果進行碰撞嘗試,下面我們就來分析一下如何生成一個可靠安全的隨機鹽。

這里鹽的生成,我們需要使用密碼學上可靠安全的偽隨機數生成器(Cryptographically Secure Pseudo-Random Number Generator,CSPRNG)來生成。本文利用Python編程語言分別編寫了單純sha1哈希算法與通過os.urandom模塊進行加鹽sha1哈希算法的兩個應用,并對存儲密碼的同一文本進行哈希,得到結果如圖2所示??梢詮膯渭冞M行sha1哈希的密文輸出中看出,對同一字符串進行哈希得到的結果相同,那么黑客就可以通過排列查到一個用戶數據庫中重復率最高的密文,而這個密文對應的密碼就很有可以是用戶設置的弱密碼,從而通過查詢彩虹表或反向查詢較容易地得出這個密碼的原文。

從圖2針對同一文本的加鹽哈希值的輸出結果中,可以看到加入隨機鹽后(這里使用的CSPRNG是Python中的os.urandom模塊)對同一明文的進行哈希的結果卻完全不同,這樣黑客既無法找出密文的重復值也無法猜測出鹽的值,從而大幅增加了攻擊成本。

3 基于PBKDF2的慢速哈希算法分析

如2.2中所述,算法中加鹽的步驟既可以應用在原始密碼后,即

sha1($password.$salt)

也可以先將原始密碼進行哈希對其結果加鹽再進行第二次哈希,即

sha1(sha1($password).$salt

以上二者究其根本并無太大差異,并且通過安全的隨機鹽設置可以達到抵御大部分黑客使用彩虹表猜測及通過個人計算機進行暴力破解的威脅。但近一步假設,攻擊者利用成本巨大的超級計算機群進行暴力猜解的話,那該算法被破解也將并非難事。因此,可以再如上算法的基礎上近一步改進,減緩哈希的計算速度,再次提高破解成本,如此可以利用BCrypt或PBKDF2算法。該類算法的特點均為采用一種稱為key擴展(key stretching)的技術。

這是一種基于迭代復雜度保證密碼安全的加密方法。在進行加密之前,本文依舊用了os.urandom函數作為隨機串生成器。

下面就是算法的執行過程,對于一個明文,算法將其與隨機串連接后送入基礎加密算法,得到一個加密串,再將加密結果與隨機串連接,送入基礎加密算法……如此迭代執行至達到預設的迭代次數為止。其中,迭代次數C決定了偽隨機函數生成一個主密鑰所需的迭代次數。這個值決定了輸入密碼的密鑰生成時間,在用戶可以接受這個時間長度下,迭代次數設置的越大越安全。對于普通用戶而言,迭代次數建議至少為1000次。而對于一些極其重要的密碼或者對于一些計算能力強大的系統,迭代次數設置為10,000,000次比較合適。其中,該算法中輸入、參數、輸出的對應值如表1-3所示。

算法如下所示。

If (kLen > (232-1) * hLen)

Return Error;

len = [kLen / hLen];

r = kLen - (len - 1) * hLen ;

For i = 1 to len

Ti = 0;

U0 = S || Int (i);

For j=1 to C

Uj = HMAC(P, Uj-1 )

Ti = Ti ?茌Uj

Return MK = T1 || T2 ||...|| Tlen<0…r-1>

其中,最后一次的加密結果就是算法的輸出了。在驗證的時候,將明文和存儲的隨機串重復上述加密過程,比對加密結果。其加鹽哈希算法流程圖如圖3所示。

本文在安全加鹽哈希算法的基礎上改進了哈希函數,算法的設計思路是通過一種大量消耗CPU資源的hash函數讓哈希過程變得非常緩慢,使得利用計算機群進行字典或者暴力猜解的速度也慢到沒有實用價值。其中的安全變量或者迭代次數作為參數,而這個參數決定了哈希過程的速度是快是慢。通過參考美國國家標準,本文利用Python編寫的基于PBKDF2的哈希算法。最后的哈希結果由base64加密輸出,如圖4所示。

可以看出使用PBKDF2哈希算法并將迭代次數設置為10000次后,計算13條密碼的時間已經增加至將近2s,其相較普通的SHA1加鹽哈希算法,計算時間得到大幅增加,這就意味著黑客在進行暴力破解時所花費的時間成本將會大到難以測量。為了直觀的對比兩種哈希算法的哈希時間,本文利用兩種算法分別哈希一定數量的密碼值。如表4所示,分別測試500、1000、5000、10000、20000個密碼數據并記錄所需的哈希時間,單位秒。

通過定量分析,將數據量化成可視化圖表,這里僅舉SHA512、PBKDF2(迭代1000次)、PBKDF2(迭代10000次)三種算法的測試結果為例,如圖5所示。可以直觀看到PBKDF2算法通過迭代大大增加了哈希時間,將迭代次數設置為10000次時,哈希20000個密碼值時所用時間為2234秒,相比之下普通哈希算法所需時間還不到1秒。

根據上述結果大致推算,利用PBKDF2哈希算法,假設黑客在破解1000萬個密碼所花費的時間大約增加到了至少約25.3天,這可以以令黑客望而卻步,也在極大程度上增加了黑客利用暴力破解或字典攻擊所花費的時間成本。與此同時,每個密碼仍使用不足1秒的時間進行加密,所以不會對用戶體驗產生什么影響。但由于用戶密碼存儲的數據哈希主要用于Web應用中使用Key擴展hash函數,考慮到有大量的計算資源用來處理用戶認證請求。在使用Key擴展的哈希函數,迭代次數的設置還是應該結合自己服務器的計算能力和預計每秒需要處理的認證請求次數進行參考。

4 結束語

本文針對數據庫存儲安全性現狀與哈希算法進行了探討和研究,明確了MD5的碰撞性在算法上與在應用上的實質性區別,并指出了傳統哈希算法與加鹽哈希算法在某些應用場景下的誤區,總結了安全的加鹽哈希算法應用,并利用Python編程還原哈希過程且對其進行驗證。近一步,在上述安全加鹽哈希算法的基礎上改進了哈希函數,利用PBKDF2算法進行迭代計算,使得哈希過程變得非常緩慢,同樣利用Python編程還原哈希過程且進行對其驗證,并說明了該機制的實施可以使得利用計算機群進行字典或者暴力猜解的速度也慢到沒有實用價值。

參考文獻

[1] Piyush Gupta et al, A Comparative Analysis of SHA and MD5 Algorithm, IJCSIT(4492-4495)Vol.5 (3), 2014.

[2] 劉洪民,印幫輝.MD5算法在用戶口令認證中的應用[J].網絡安全技術與應用,2014(05).

[3] 趙光亮,韋雅文.基于MD5算法安全性研究發展及分析[J].福建電腦.2015(02).

[4] NIST Special Publication 800-132, Recommendation for Password-Based Key Derivation.

基金項目:

國家自然科學基金資助項目[61540020]。

作者簡介:

祁鑫 (1991-),男,北京人,北京信息科技大學,在讀研究生;主要研究方向和關注領域:信息安全。

魏美榮(1992-),女,北京人,北京信息科技大學,在讀研究生;主要研究方向和關注領域:信息安全。

蔣文保(1969-),男,湖南人,畢業于清華大學,博士后,北京信息科技大學信息管理學院副院長,信息系統研究所副所長,教授,碩士生導師;主要研究方向和關注領域:網絡與信息安全領域的科學研究、產品開發、教學和管理。

猜你喜歡
安全數據庫
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
數據庫
財經(2010年20期)2010-10-19 01:48:32
主站蜘蛛池模板: 精品综合久久久久久97超人该| 国产自在线播放| 99在线观看视频免费| 亚洲三级a| 免费一级毛片在线播放傲雪网 | 日韩毛片免费视频| 国产麻豆91网在线看| 精品国产三级在线观看| 国产成人一二三| 色婷婷天天综合在线| 色悠久久综合| 91久久青青草原精品国产| 中文字幕亚洲综久久2021| 大学生久久香蕉国产线观看| 免费在线a视频| 重口调教一区二区视频| 青草午夜精品视频在线观看| 亚洲一区二区黄色| 久久人妻xunleige无码| 亚洲成年人网| 国产理论一区| 国产日韩精品一区在线不卡| 毛片久久网站小视频| 69av免费视频| 国产97视频在线观看| 丁香综合在线| 欧洲一区二区三区无码| 欧美一区二区自偷自拍视频| 制服丝袜亚洲| 精品无码专区亚洲| 欧美亚洲欧美| 久久特级毛片| 午夜电影在线观看国产1区| 日本人妻一区二区三区不卡影院| 激情六月丁香婷婷| 亚洲精品在线91| 在线五月婷婷| 日韩视频免费| 久草青青在线视频| 国产精品美乳| 国产成人精品高清在线| 精品午夜国产福利观看| 亚洲一区黄色| 毛片网站在线播放| av在线手机播放| 亚洲一区免费看| 欧美第九页| 国产日韩欧美中文| 国产精品开放后亚洲| 一级一级特黄女人精品毛片| 91精品伊人久久大香线蕉| 中国一级特黄视频| 国产国语一级毛片在线视频| 午夜a级毛片| 亚洲黄色视频在线观看一区| 成人在线亚洲| 中国美女**毛片录像在线| 国产一级在线观看www色| 丰满人妻久久中文字幕| 亚洲欧美激情另类| 国产午夜无码片在线观看网站 | 天堂成人在线视频| 日本人妻一区二区三区不卡影院| 激情亚洲天堂| 波多野结衣一区二区三区88| 成人在线欧美| 71pao成人国产永久免费视频| 久久99国产乱子伦精品免| 1024你懂的国产精品| 91麻豆国产精品91久久久| 无码内射在线| 日本草草视频在线观看| 欧美中文字幕一区| 一区二区无码在线视频| 老司机精品久久| 欧美在线观看不卡| av大片在线无码免费| 99在线视频免费观看| 亚洲成人在线免费| 久久永久精品免费视频| 亚洲免费毛片| 成年午夜精品久久精品|