王奇志,方 莉
(安慶職業(yè)技術(shù)學(xué)院電子信息系,安徽 安慶 246005)
基于混合字符串加密的動(dòng)態(tài)口令研究
王奇志,方 莉
(安慶職業(yè)技術(shù)學(xué)院電子信息系,安徽 安慶 246005)
未經(jīng)加密處理的敏感信息在數(shù)據(jù)傳輸過程中很容易被截獲破解,如果直接加密敏感信息,仍然不能避免攻擊者使用偽造數(shù)據(jù)包方式的攻擊。提出對(duì)包含敏感信息的隨機(jī)混合字符串進(jìn)行加密保護(hù)的改進(jìn)方案,從而有效保護(hù)敏感信息在傳輸過程中的安全。該方案只需通過簡(jiǎn)單編程即可實(shí)現(xiàn),能夠?yàn)閃eb應(yīng)用中敏感信息的傳輸保護(hù)提供參考。
動(dòng)態(tài)口令;網(wǎng)絡(luò)嗅探;MD5;隨機(jī)混合字符串
目前,我國絕大多數(shù)中小企業(yè)建立了網(wǎng)站并接入Internet,許多企業(yè)在獲得信息的同時(shí),將企業(yè)的敏感數(shù)據(jù)提供給有訪問權(quán)限的用戶訪問,這種授權(quán)訪問一般基于口令認(rèn)證。由于Internet上普遍采用超文本傳輸協(xié)議(Hyper Text Transfer Protocol,HTTP)作為Web服務(wù)器與本地瀏覽器之間的傳輸協(xié)議,而該協(xié)議采用數(shù)據(jù)明文傳送方式,這給諸如登錄賬號(hào)和密碼之類的敏感數(shù)據(jù)帶來極大的安全隱患[1]。針對(duì)使用HTTP協(xié)議明文傳輸敏感信息帶來的安全問題,目前采取了如下解決方案:①采用安全的超文本傳輸協(xié)議協(xié)議(Hyper Text Transfer Protocol Secure,HTTPS)來保證敏感信息在傳輸過程中的安全。由于經(jīng)HTTPS協(xié)議傳送的數(shù)據(jù)都需要經(jīng)過二進(jìn)制加密處理,而這種加密解密處理針對(duì)網(wǎng)站上所有頁面,因此必然會(huì)帶來服務(wù)器計(jì)算和網(wǎng)絡(luò)傳輸往返上的巨大開銷[2]。②敏感數(shù)據(jù)首先經(jīng)過MD5加密算法[3]處理,然后在Internet通過HTTP協(xié)議傳輸,但是這種保護(hù)作用也十分有限[4]。為此,筆者進(jìn)行了基于混合字符串加密的動(dòng)態(tài)口令研究。
混合字符串加密的動(dòng)態(tài)口令方案的設(shè)計(jì)思想可以描述為如下過程:
1)服務(wù)端在每個(gè)客戶首次連接時(shí)分配一個(gè)唯一動(dòng)態(tài)附加隨機(jī)字符串S,字符串在服務(wù)端必須有一定的存活時(shí)間。
2)該字符串同時(shí)被保存在客戶端登錄頁面的F2字段中。
3)客戶端用戶填寫密碼等敏感信息單擊提交按鈕后,通過JavaScript編程完成如下的處理步驟:①取得用戶填寫的敏感字段F1(如口令)的值S1;②取得動(dòng)態(tài)隨機(jī)字符串字段F2的值S2;③將S1與S2按一定的規(guī)律混合得到字符串S3;④清除字段F1的值和字段F2的值;⑤使用MD5加密算法加密S3得到加密摘要M1;⑥向服務(wù)器提交加密摘要M1。
4)在Internet上傳輸?shù)臄?shù)據(jù)包中包含的是加密摘要M1。
5)服務(wù)端接收到客戶端提交的加密摘要M1后,按以下的流程完成驗(yàn)證:①根據(jù)用戶名(未加密)從數(shù)據(jù)庫取得的對(duì)應(yīng)口令P1;②將P1與動(dòng)態(tài)附加隨機(jī)字符串S按相同的規(guī)律混合得到字符串P2;③使用MD5加密算法加密P2得到加密摘要M2;④比較M1與M1是否相等,若相等則表示驗(yàn)證通過,否則表示驗(yàn)證未通過;⑤如果驗(yàn)證通過則刪除S,如果驗(yàn)證沒有通過則重新生成S并跳轉(zhuǎn)到登錄頁面。
2.1在客戶端和服務(wù)端都要有MD5加密模塊
在客戶端對(duì)用戶敏感數(shù)據(jù)(如密碼)加密處理,可以采用由Johnson用JAVASCRIPT編寫的一個(gè)MD5加密函數(shù)庫MD5.JS;在服務(wù)端進(jìn)行MD5加密處理,應(yīng)根據(jù)開發(fā)動(dòng)態(tài)網(wǎng)站后臺(tái)編程語言的不同選用合適的MD5加密模塊。
2.2在服務(wù)端需要一個(gè)隨機(jī)字符串生成函數(shù)
附加字符串必須由服務(wù)端負(fù)責(zé)生成,因而要在服務(wù)端設(shè)計(jì)一個(gè)隨機(jī)字符串生成函數(shù),且該隨機(jī)字符串生成函數(shù)有較高的運(yùn)行效率。
2.3附加字符串應(yīng)在服務(wù)端和客戶端保持同步性
每個(gè)連接用戶都有唯一的一個(gè)附件隨機(jī)字符串,該字符串在服務(wù)端生成并保存,同時(shí)還應(yīng)通過一定方法將該字符串發(fā)送到客戶端。以下是采用ASP.NET作為服務(wù)端編程語言時(shí)保證附加字符串在服務(wù)端和客戶端同步性的處理方法。
1)后臺(tái)代碼 在后臺(tái)代碼(login.aspx.cs)中作如下處理:
……
protected void Page_Load(object sender,EventArgs e)
{
if (!Page.IsPostBack || Session[“addStr”]==null)
{ //通過調(diào)用MyClass.getRandomizer()方法獲得一個(gè)附加字符串保存的Session中
Session[“addStr”] = MyClass.getRandomizer(6,true,false,true,true);
{
{
……
2)頁面代碼 在頁面代碼(login.aspx)中作如下處理:
……
賬號(hào):
密碼:
” />
……
在以上代碼中,通過“<%=Session[“addStr”]%>”的方式將服務(wù)端的生成字符串傳遞到客戶端。
2.4確保客戶端提交的表單只包含加密信息
考慮到合法用戶提交的數(shù)據(jù)包有可能被入侵者截獲,因而合法用戶通過鍵盤輸入的敏感字段應(yīng)在提交前刪除,從而確保網(wǎng)絡(luò)上傳輸?shù)拿舾行畔⒕?jīng)過加密處理。下面是處理的關(guān)鍵代碼:
……
var UserPassword=document.getElementById(“txtPassword”).value + document.getElementById“txtAddString”).value;
……
當(dāng)1個(gè)合法用戶首次訪問登錄頁面時(shí),服務(wù)器隨機(jī)生成的字符串是“16HKhx”,則客戶端MD5加密的對(duì)象是“wqz12316HKhx”,假設(shè)此時(shí)有入侵者通過抓包工具IPTOOL獲得了合法用戶提交的數(shù)據(jù)包(見圖1)。在圖1中黑色方框內(nèi)有“UID=wqz&PWD=2605b9cc3b00330587068a44d1a80b6f”這樣的敏感數(shù)據(jù),由此可以推測(cè)出被攻擊用戶的賬號(hào)是“wqz”,與密碼相關(guān)的敏感信息是“2605b9cc3b00330587068a44d1a80b6f”,它其實(shí)是混合字符串“wqz12316HKhx”進(jìn)行MD5加密處理后的一個(gè)32位的摘要,入侵者拿到該摘要后面臨2種選擇,其一是將“2605b9cc3b00330587068a44d1a80b6f”提交到“http://www.cmd5.com”類似的網(wǎng)站進(jìn)行暴力破解,但這種成功率幾乎為零,因?yàn)樵撟址?wqz12316HKhx)含有較多的字符數(shù)(超過6個(gè)字符就很難被暴力破解);其二是偽造包含了“UID=wqz&PWD=2605b9cc3b00330587068a44d1a80b6f”敏感信息的數(shù)據(jù)包直接提交到服務(wù)器。由于服務(wù)器對(duì)每個(gè)用戶的首次連接時(shí)生成的附加隨機(jī)字符串都不一樣,入侵用戶連接服務(wù)器時(shí)獲得的附加字符串可能是“w4tg”,此時(shí)能在服務(wù)器通過驗(yàn)證的是“wqz123w4tg”這個(gè)字符串的MD5加密的32位摘要“926f823383aa66ce449c174353a9f911”,而入侵者提交非法截獲的摘要“2605b9cc3b00330587068a44d1a80b6f”不能通過驗(yàn)證,因此入侵者很難通過上述方式完成最終的入侵。
圖1 敏感數(shù)據(jù)抓包截圖
訪問中小企業(yè)網(wǎng)站時(shí),其身份認(rèn)證通常是通過HTTP協(xié)議傳輸賬號(hào)和密碼,若賬號(hào)和密碼之類的敏感信息不作加密處理,則在傳輸過程中很容易被入侵者截獲數(shù)據(jù)包而泄漏敏感信息。雖然采用MD5加密算法處理敏感信息在一定程度上可以防止敏感信息泄漏,但不能防御入侵者采取偽造數(shù)據(jù)包的方式進(jìn)行入侵。針對(duì)上述情況,采取加密敏感信息和一個(gè)隨機(jī)字符串組成的混合字符串的改進(jìn)方案,該方案只需通過簡(jiǎn)單編程即可實(shí)現(xiàn),從而有效解決一般Web應(yīng)用中身份驗(yàn)證時(shí)的敏感信息泄漏問題。
[1]于杰,朱有忠.簡(jiǎn)單實(shí)用的網(wǎng)絡(luò)嗅探器的設(shè)計(jì)與實(shí)現(xiàn)[J].吉林大學(xué)學(xué)報(bào)(信息科學(xué)版),2010,28(4):423-427.
[2]夏陽,陸余良.基于網(wǎng)絡(luò)攻擊的安全防范策略[J].安徽大學(xué)學(xué)報(bào)(自然科學(xué)版),2002,26(2):57-61.
[3]吳維元,肖柳林,李榮輝.Web服務(wù)數(shù)據(jù)傳輸通道的安全性分析[J].網(wǎng)絡(luò)安全技術(shù)與應(yīng)用,2008(2):85-86,70.
[4]田新廣,段洣毅,程學(xué)旗,等.基于shell命令和多重行為模式挖掘的用戶偽裝攻擊檢測(cè)[J].計(jì)算機(jī)學(xué)報(bào),2010,33(4):697-705.
[5]王康進(jìn).基于AJAX的輕量級(jí)Web客戶端開發(fā)平臺(tái)研究與實(shí)現(xiàn)[D].濟(jì)南:濟(jì)南大學(xué),2007.
[編輯] 李啟棟
10.3969/j.issn.1673-1409(N).2012.06.039
TP393.08
A
1673-1409(2012)06-N117-03
長江大學(xué)學(xué)報(bào)(自科版)2012年16期