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

網絡論壇口令的安全分析*

2018-05-25 03:09:18張李軍張愛麗
通信技術 2018年5期
關鍵詞:數據庫用戶

杜 薇,張李軍,張愛麗

(1.中國電子科技集團公司第三十研究所,四川 成都 610041;2.保密通信重點實驗室,四川 成都 610041;3.河南師范大學新聯學院,河南 鄭州 450000)

0 引 言

網絡論壇是互聯網上的一種電子信息服務系統,也就是BBS(電子公告牌)。它是一種交互性強、內容豐富、及時性強且非常受歡迎的電子信息服務平臺。網絡論壇可為其注冊用戶提供多種服務,如信息交換、聊天和信息共享等。伴隨著網絡的蓬勃發展,論壇也有了迅猛發展。論壇可以分為綜合類論壇和專題類論壇。綜合類論壇信息豐富、廣泛,包含了很多方面的信息,主要由大規模的網站組成。專題類論壇主要聚焦在某種類型的信息或者資源上。專題類論壇對個人消費和科學研究起著重要作用,每個人都可以根據自己的興趣愛好找到對應的專題類論壇,如購物論壇、旅游論壇和編程論壇等。隨著網絡論壇的廣泛使用,它的安全性也受到越來越多網絡用戶的關心。目前,口令是注冊用戶登陸論壇的最常用途徑。因此,它最重要的安全就是用戶口令的安全,而時不時發生的口令泄露事件震驚了絕大多數論壇用戶。2011年11月,著名的計算機論壇CSDN泄露了大概600萬用戶的隱私,包括口令、郵件、生日和電話號碼等[1]。于此同時,天涯社區超過4 000萬用戶的用戶名和密碼也被公布于眾[2]。這無疑大大影響了大眾對論壇安全的態度。2014年12月25日,官方鐵路售票網站12306超過13萬用戶的賬號、郵件和口令被泄露,甚至那些以密文方式存儲于數據庫中的口令也被泄露[3]。可見,口令的安全性面臨著現實的挑戰。

論壇是由論壇軟件開發的,其中Discuz!和PhpWind是2個大家廣泛熟悉的軟件。2個論壇前端均采用“PHP”網絡編程語言,后端數據庫采用SQL或者MYSQL的設計架構。這樣的架構有許多優點:多國語言的支持,適配公開或者私有的論壇建設,集成強大的搜索工具等。之所以聚焦于這2類論壇,是因為目前這2類論壇占有超過90%的市場份額。當前,網絡論壇的安全性已經引起了很多學者的關注。Horseluke研究了Discunz[4]的加密函數,Bkd指出了PhpWind[5]的加密漏洞,Liu也分析了這個論壇所使用的cookie加密函數[6]。Zhang在2013年給出了phpBB3論壇的詳細的安全分析[7]。

不同的論壇開發軟件不同,口令的安全也不同。本文主要分析Discuz!和PhpWind論壇的口令安全,包括口令加密、口令破解的復雜性。通過安全性對比,針對加密算法的具體實現和口令的選擇策略,提出了一些建議,用于增強論壇用戶口令的安全性。

1 口令加密的機制

論壇軟件的口令加密機制主要是指用戶口令的加密存儲。它可以分為兩個方面,服務器端口令的加密存儲和本地瀏覽器端口令的加密存儲。在服務器端,后端數據庫存儲用戶名和對應的加密后的口令。而本地瀏覽器端,這些信息也會被加密并保存在cookie里,以方便用戶之后直接登錄網站。下面將依次分析這2個論壇的口令加密方案。

1.1 Discuz!論壇的口令加密

1.1.1 服務器端口令加密

用戶注冊論壇時,會按要求提供用戶名和口令。對于每一個用戶名,Discuz!論壇軟件會產生一個長度為6 Byte的隨機數,稱為salt值,用于口令加密。用戶提交口令后,口令會被MD5算法加密2次。首先將用戶口令直接作為MD5算法的輸入,其次MD5算法的運算結果與salt值級聯后,再次作為MD5算法的輸入。加密運算表達為:

其中PASS是password對應的密文。

服務器將PASS作為最終的口令存儲于數據庫,同時將用戶名和對應的salt值存放在數據庫的“uc_member”表中。其中,“uc_member”表隸屬于一個專用系統管理軟件“UCenter”。當用戶登錄后,數據庫會根據用戶名檢索對應的salt值,計算MD5(MD5(logging password)||salt)得到登錄所用口令的密文結果。如果計算得到的結果與存儲在數據庫中的PASS數據匹配,用戶則可以成功登錄論壇。在注冊和登錄階段的口令處理過程如圖1所示。

圖1 口令的加密與存儲

需要注意的是,在Discuz!軟件中,本身也有一個所謂的“password”存放在“members”表中,計算方式為:

即password是對一個隨機數的MD5的雜湊值,但這個password對論壇用戶毫無用處。它的存在只是為了保持與上一個Discuz!版本的兼容性。實際上,真正驗證用戶的口令依舊在“UCenter”界面實現。

1.1.2 安全提問的加密

除用戶口令外,用戶注冊Discuz!論壇時,也需要對指定的安全提問做出回答。用戶忘記口令時,可以根據當時注冊時所留安全提問的答案找回口令。若用戶的答案正確,可以重置用戶口令。通過研究Discuz!論壇的源代碼可以發現,這些安全提問的答案也是采用MD5算法加密。

加密運算流程如下:

其中ID是安全問題的ID,substr表示截取MD5雜湊值的第16~24位。

下面給出一個安全提問的答案加密過程的實例。

假設注冊時論壇給出3個安全提問,用戶選擇對第3個安全提問進行回答,且答案為“1v1.name”。

假設安全提問如下:

根據加密函數,加密過程如下:首先計算第3個安全提問對應的ID=7的MD5的雜湊值,結果是8f14e45fceea167a5a36dedd4bea2543;其次,將對應的安全提問的答案與雜湊值拼接,為1v1.name8f14e 45fceea167a5a36dedd4bea2543;再次,計算其MD5的雜湊值,為f5d8e00a4ebc9ead 4611c04706ae05fd;最后,截取其雜湊結果的第16~24位,結果為“4611c047”,即Answer的值。

1.1.3 本地cookie口令加密

通過瀏覽器首次登錄過論壇后,Discuz!論壇會借助加密函數“authcode”加密用戶的個人信息(如用戶名、口令、單位等),并將其對應的密文存放于本地瀏覽器的cookie中。這大大方便了用戶的后續登錄,因為瀏覽器會直接讀取密文,解密用戶名、口令,驗證其正確性。如果解密后的信息正確,用戶不需要再次輸入用戶名和口令就可以直接登錄。現在給出本地cookie口令加密的原理。

本地cookie加密的過程分成3個階段:密鑰產生、類似RC4算法的加密和解密以及時效性和數據完整性校驗,如圖2所示。

圖2 本地cookie加密的過程

密鑰產生階段(詳見圖3)描述了加密(或解密)密鑰和完整性密鑰的產生。加密密鑰與RC4算法一起用于加密(或解密)用戶的個人信息,而完整性密鑰用于解密過程中,對數據進行完整性校驗。首先,由全局變量“Discuz_auth_key”產生初始密鑰,然后初始密鑰再分解成3個子密鑰,即Key_a、Key_b和Key_c。從圖3可知,由這些子密鑰可以得到加密密鑰和完整性密鑰。

圖3 密鑰產生的過程

密鑰產生后,瀏覽器使用RC4算法加密(或解密)用戶登錄信息。加密時,密文存儲于cookie中;解密時,對解密后的信息進行時效性檢查和數據完整性驗證。

這個驗證過程可以被描述為如下幾個情況:

(1)substr(result,0,10)==0;

(2)(substr(result,0,10)-time)0;

(3)substr(result,10,16)==substr(md5(substr(resu lt,26)||Key_b),0,16);

只要滿足前兩個情況中的一個就足夠了。第一條表示數據的時效性是永久的,第二個條件表示cookie解密必須在cookie產生后,第三條則是通過檢驗“Key_b”的完整性來防止cookie被篡改。

1.2 PhpWind論壇的口令加密

1.2.1 服務器端口令加密

PhpWind論壇的每一個口令都僅采用一個簡單的MD5算法加密:PASS=MD5(password)。所有的口令經過MD5運算后會被存儲到數據庫中。注意,這里沒有引入隨機數技術(即沒有像Discuz!論壇里使用的salt值),而且MD5加密也僅僅執行了一次而已。

1.2.2 本地cookie口令加密

PhpWind論壇的cookie口令加密方式與Discuz!論壇類似,包含兩個階段。首先,它采用一個名為“PwdCode”的函數計算用戶口令的MD5值。其次,通過一個名為“StrCode”的函數將此雜湊值編碼為base64放入cookie中。第一階段的明文包含瀏覽器的全局信息、用戶口令以及一個稱為安全認證參數的雜湊字符串。

整個加密過程可以由如下的偽代碼描述:

PwdCode(password){

return MD5(Global[sever]||password||Global[hash]);

}

StrCode (string){

Key=substr(md5(Global[server]||Global[ha sh]),8,18);

Keylen=strlen(key);

Strlen=strlen(string);

for(i=0;i

K=i% keylen;

Code=string[i]^key[k];

}

return base64(code);

}

其中Global[server]和Global[hash]是用戶瀏覽器的2個全局參數。

2 加密安全分析和對比

本節將從2個方面對口令加密的安全性進行分析:加密算法的強度和口令破解的復雜度。

2.1 加密算法的強度

這2個論壇采用的核心算法都是MD5加密算法,但是在具體實現上又有所不同。眾所周知,理論上廣泛應用的MD5雜湊算法具有抗碰撞和不可逆性。即已知一個雜湊值,想要反向計算出原本的輸入消息(也就是用戶的口令)是困難的。另外,幾乎無法找到2個不同的消息經過同一個雜湊運算后能得到相等的雜湊值。然而,實際中如果用教科書版本的方式來實現MD5算法,想要從MD5雜湊值反向計算出口令也是可能的。

2.2 口令破解的復雜度

下面將仔細分析Discuz!和PhpWind論壇中2種MD5加密方案的具體實現。

例1:直接使用MD5算法來加密口令。

直接使用MD5算法來加密口令,即PASS=MD5(password)。這個方案就是PhpWind論壇使用的方案。雖然理論上MD5算法是一個安全的雜湊算法,但實際中未必如此。如果數據庫泄露,用戶的口令也會隨之暴露,因為已知某個口令的MD5雜湊值可對其進行字典攻擊[8-9],即不需要花費太多的努力就能在可接受的時間內確定口令的明文。此外,現在已經存在了大量可以通過互聯網免費下載的壓縮字典,名為“彩虹表”[10]。如果一個黑客設法獲得了存儲于論壇數據庫存儲的口令雜湊值,再從互聯網下載彩虹表,通過查詢彩虹表已有的口令和口令的雜湊值就可以破解MD5雜湊值,從而恢復出對應的口令明文[11]。目前,基于GPU的高性能計算的發展也大大提升了破解口令的效率,幾乎可以瞬間破解一個長度小于8 Byte僅包含十進制數的口令[12]。

如今,可以利用GPU并行計算的優勢來提高口令恢復的速度。在NVIDIA GPU上的實際測試結果為,每秒鐘破解24億個明文。表1為按照這個速度估算破解一個普通長度且同時包含小寫字母和數字的口令的時間。

表1 破解速率的評估

通過表1可以看出,破解一個長度為8 Byte的包含數字和小寫字母的口令,只需要不到20 min,即20 min內可以計算出口令明文的所有排列組合,從而破解口令。

例2:使用salt值的MD5算法

Discuz!論壇采用MD5(MD5(logging password)||salt)方式加密用戶口令。這種MD5加密方式大大提高了安全度。目前,破解MD5雜湊值采用的最廣泛方法是彩虹表攻擊。它的主要思路是預先計算通用的口令的雜湊值。進行破解時,只需要將所獲取的論壇數據庫中的雜湊值與彩虹表中的雜湊值進行比較。如果匹配,則對應的口令被恢復。根據雜湊函數的特性,碰撞幾乎是不可能的。也就是說,對2個不同的口令進行同一個雜湊函數運算,幾乎不可能得到2個相同的雜湊值。因此,有salt的MD5算法可以阻礙上述的字典攻擊。要破解不含salt的MD5算法,彩虹表需要260 GB的容量。引入了salt后,salt取值的可能性有900 000種(salt=random(100000,999999)),因此彩虹表的容量會迅速增長到900 000×260 GB=234 PB(1 PB=106 GB),而這種級別容量遠高于當前的存儲容量。即便滿足了容量,搜索效率也非常低下,無法滿足破解的要求。

當然,現實中也不可能建立一個涵蓋所有口令雜湊值的彩虹表。黑客只有在容量與口令破解的成功率之間權衡。黑客往往從社會科學中選擇通用的口令來構造彩虹表。現在也有一些網站提供含有salt值的彩虹表,但破解的效率不盡如人意。例如,在一個真實的測試中,一個普遍的口令“admin888”并沒有被成功恢復。畢竟,這種攻擊方法并不能保證100%的成功率。需要注意的是,論壇中安全提問的加密過程,并沒有使用有salt的MD5加密算法。因此,破解安全提問比破解例1更為簡單。雖然例1直接使用MD5運算得到了雜湊值,但安全提問一般都有一個具體的方向,答案的范圍也非常有限。因此,答案對應的雜湊值的可能性也不會很多,大大提高了破解的速度。

通過以上口令加密的分析,可以得出一個結論:Discuz!論壇的口令安全優于PhpWind論壇。但是,盡管Discuz!論壇引入salt值改善了口令安全,但是由于其salt的取值范圍有限,安全性也不能得到保證。

3 口令安全的增強

將從兩個方面提出兩點關于提高口令安全性的建議:改善加密算法的實現方式和優化口令的選擇策略。

3.1 選擇帶salt值的MD5加密算法

如前面指出的,salt值大大增加了從雜湊值恢復口令的復雜度。目前,Discuz!論壇的salt值長度為6 Byte,且僅包含十進制的數字。因此,將來可以將salt值的取值范圍擴大為支持任意可打印的字符。這樣將salt取值由900 000增加到了956=7.35×1 011,以讓廣泛流行的彩虹表完全失效。

3.2 優化口令的選擇策略

通過真實的口令破解經驗,可以提出至少2條策略來優化口令選擇。首先,應該將口令設置為強口令。強口令是指長度不小于10 Byte,避免使用普通的數字、英文字母以及這樣的組合,如“12345678”“666666”和“birthday”等。其次,對于不同的賬戶應該設置不同的密碼,有效避免某個論壇用戶名和密碼被泄露后,其他論壇的賬戶也被泄露。

4 工作展望

主要分析了2個論壇數據庫中口令的加密方法,發現瀏覽器本地cookie加密的核心加密算法類似RC4算法,而RC4算法存在安全漏洞,如RC4的WEP(一個在無線網絡中的加密協議)已經被攻破[13]。今后的研究中會進一步分析這2個算法的異同,并研究破解RC4的方法是否也會破解這個算法。

發現PhpWind論壇使用的cookie加密函數僅僅是一個異或函數,而這是一個安全性非常弱的加密方法。因為異或很容易遭受密鑰重用攻擊,即如果E(A)=A xor K,aE(B)=B xor K,那么E(A) xor E(B)=A xor B。因為(A xor K) xor (B xor K)=A xor B xor K xor K=A xor B,因此K為重復使用的密鑰。因此,很可能解密cookie的密文時,甚至不需要知道加密密鑰。這是未來研究的領域。

5 結 語

本文研究了兩個常用網絡論壇的口令安全性,仔細分析了服務器端口令加密的方案,包括其使用的密碼算法本身的安全強度和具體實現的方法。研究指出,PhpWind論壇的口令并不安全,其口令可以通過MD5雜湊值被瞬間破解;Discuz!論壇的口令安全優于PhpWind論壇。考慮到可實現的攻擊,提出了增強口令安全和優化口令選擇策略的意見。最后,指出2個論壇所使用的cookie加密的不足,可能導致其遭受到安全攻擊。

參考文獻:

[1] 國內最大程序員網站600余萬用戶信息遭泄露[EB/OL].(2011-12-22)[2018-01-09].https://news.qq.com/a/20111222/000057.htm.6 million CSDN User's Privacy are Leaked[EB/OL].(2011-12-22)[2018-01-09].https://news.qq.com/a/20111222/000057.htm.

[2] 天涯承認部分用戶密碼泄露 據稱涉及4000萬人[EB/OL].(2011-12-26)[2018-01-09].https://news.qq.com/a/20111226/000061.htm.40 Million User's Passwords of TianYa Commnity are Leaked[EB/OL].(2011-12-26)[2018-01-09].https://news.qq.com/a/20111226/000061.htm.

[3] 超十三萬條12306用戶數據泄露[EB/OL].(2014-12-26)[2018-01-09].http://news.sina.com.cn/o/2014-12-26/035931328946.shtml.Over 130,000 user data leaks in 12306 [EB/OL].(2014-12-26)[2018-01-09].http://news.sina.com.cn/o/2014-12-26/035931328946.shtml.

[4] Horseluke.The Analysis of RC4 Encription Algorithm in Discuz Forum[EB/OL].(2011-11-08)[2018-01-09].http://bbs.phpchina.com/forum.php?mod=redirect&goto=findpost&ptid=113075&pid=1452503.

[5] Bkd.The Encryption Hole of PhpWind Forum[EB/OL].(2011-11-01)[2018-01-09].http://atim.cn/index.php.

[6] LIU Qing-yan.The Password and Coookie Encryption in PhpWind Forum[EB/OL].(2010-10-01)[2018-01-09].http://qing.weibo.com/discovery.html.

[7] ZHANG Li-jun,JIA Fan.The Security Analysis of PhpBB Forum[C].Proceddings of 2013 Fifth International Conference on Multimedia Information Networking and Security,2013:50-53.

[8] Passware Company Software.Passware Kit Enterprise and Passware Kit Forensic[Z].http://www.lostpassword.com/index.htm.

[9] Elcomsoft Company Software.Disk Decryptor Forensic[Z].http://www.elcomsoft.com.

[10] Oechslin P.Making a Faster Cryptanalytic Time-memory Trade-off[C].CRYPTO 2003,2003:617-630.

[11] Cmd5 Organize.MD5 Plaintext Recovery Online[EB/OL].(2013-01-01)[2018-01-09].http://www.cmd5.com.

[12] Tzeng S,Wei L Y.Parallel White Noise Generation on a GPU via Cryptographic Hash[C].Proceedings of the 2008 Symposium on Interactive 3D Graphics and Games,2008:79-88.

[13] Klein A.Attacks on the RC4 Stream Cipher[J].Designs,Codes,and Cryptography,2008,48(03):269-286.

猜你喜歡
數據庫用戶
數據庫
財經(2017年15期)2017-07-03 22:40:49
數據庫
財經(2017年2期)2017-03-10 14:35:35
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
數據庫
財經(2016年15期)2016-06-03 07:38:02
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
100萬用戶
創業家(2015年10期)2015-02-27 07:54:39
主站蜘蛛池模板: 久久无码av一区二区三区| 日韩av高清无码一区二区三区| 91麻豆国产精品91久久久| 亚洲中文在线看视频一区| 激情六月丁香婷婷四房播| 久久久久国产精品熟女影院| 天天色综网| 91网站国产| 国产95在线 | 亚洲不卡网| 色综合五月| 国模私拍一区二区| 男女精品视频| 精品国产电影久久九九| 美女视频黄频a免费高清不卡| 国产理论一区| 97综合久久| 国产系列在线| 中文字幕无码中文字幕有码在线| 人妻21p大胆| 亚洲精品黄| 国产人免费人成免费视频| 亚洲天堂日韩av电影| 国产97视频在线观看| 熟女成人国产精品视频| 亚洲色欲色欲www在线观看| 日韩a级片视频| 久久精品一品道久久精品| 妇女自拍偷自拍亚洲精品| 一级毛片在线播放| 狂欢视频在线观看不卡| 国产a v无码专区亚洲av| 最新国产麻豆aⅴ精品无| 久久中文字幕2021精品| 欧美视频在线观看第一页| 国产一区二区视频在线| 伦伦影院精品一区| 国产欧美视频在线| 日韩毛片视频| 日韩精品无码免费一区二区三区| 青青久久91| 911亚洲精品| 国产精品护士| 亚洲专区一区二区在线观看| 免费久久一级欧美特大黄| 男女男免费视频网站国产| 片在线无码观看| 婷婷色一二三区波多野衣| 精品一区二区三区自慰喷水| 激情视频综合网| 欧美在线精品一区二区三区| 人妻精品久久无码区| 国产精品无码翘臀在线看纯欲| 中文天堂在线视频| 无遮挡国产高潮视频免费观看 | 国产午夜看片| 日韩欧美网址| 高清无码一本到东京热| 日本欧美中文字幕精品亚洲| 亚洲无码久久久久| 99久久亚洲精品影院| 自慰高潮喷白浆在线观看| 国产91九色在线播放| 好吊色国产欧美日韩免费观看| 色综合国产| 四虎影视无码永久免费观看| 国产黄色免费看| 福利视频99| 国产美女叼嘿视频免费看| 亚洲欧洲自拍拍偷午夜色| 波多野结衣久久高清免费| 免费a级毛片视频| 欧美黑人欧美精品刺激| 日韩午夜福利在线观看| 精品国产污污免费网站| 国产精品三区四区| 激情亚洲天堂| 欧美日韩中文字幕二区三区| 九九这里只有精品视频| 538精品在线观看| 暴力调教一区二区三区| 在线观看热码亚洲av每日更新|