一種Restful移動(dòng)交易系統(tǒng)身份認(rèn)證防護(hù)方法
【專(zhuān)利說(shuō)明】一種Restfu I移動(dòng)交易系統(tǒng)身份認(rèn)證防護(hù)方法
[0001]
技術(shù)領(lǐng)域
[0002]本發(fā)明屬于網(wǎng)絡(luò)安全的身份認(rèn)證領(lǐng)域,具體涉及一種Restful移動(dòng)交易系統(tǒng)身份認(rèn)證防護(hù)方法。
[0003]
【背景技術(shù)】
[0004]網(wǎng)上交易越來(lái)越普遍,隨之帶來(lái)的是交易安全性問(wèn)題。智能手機(jī)的普及,人們可以隨時(shí)隨地用手機(jī)進(jìn)行購(gòu)物、轉(zhuǎn)賬。相比之下,智能移動(dòng)設(shè)備比PC端更需要輕量級(jí)的Web服務(wù)架構(gòu),Restful剛好符合這一特點(diǎn)。雖然目前移動(dòng)交易系統(tǒng)模塊功能交叉,系統(tǒng)功能耦合性強(qiáng),但是缺乏一定的可擴(kuò)展性和靈活性,由于開(kāi)展新的業(yè)務(wù)需要對(duì)系統(tǒng)進(jìn)行較大的修改,進(jìn)而影響了業(yè)務(wù)的開(kāi)展和用戶(hù)的使用?;赗estful的移動(dòng)交易系統(tǒng)恰好能夠利用Restful良好的耦合性和可擴(kuò)展性來(lái)解決業(yè)務(wù)擴(kuò)展的問(wèn)題。
[0005]Restful作為一種Web服務(wù)架構(gòu),其安全問(wèn)題主要存在于傳輸過(guò)程中的會(huì)話攻擊和身份認(rèn)證,鑒于Restful主要依賴(lài)于HTTP協(xié)議進(jìn)行數(shù)據(jù)傳輸,而且HTTP協(xié)議使用明文傳輸方式,不可避免地會(huì)遇到會(huì)話劫持、跨站請(qǐng)求偽造和注入式攻擊等安全問(wèn)題。故而為了防止非授權(quán)用戶(hù)的非法訪問(wèn),采取對(duì)訪問(wèn)用戶(hù)的身份驗(yàn)證是非常必要的措施。
[0006]在移動(dòng)交易系統(tǒng)中,支付是最關(guān)鍵的操作。支付過(guò)程中,用戶(hù)的身份認(rèn)證和交易的完整性保證是最重要的兩個(gè)問(wèn)題。針對(duì)用戶(hù)身份認(rèn)證和授權(quán)機(jī)制的安全性低、信息容易泄露等問(wèn)題,現(xiàn)有方案都是采用加密令牌方式將用戶(hù)認(rèn)證信息保存客戶(hù)端的令牌中,應(yīng)用服務(wù)不再使用Sess1n保存認(rèn)證用戶(hù)信息,而是通過(guò)解密令牌密文獲取認(rèn)證用戶(hù)信息,完成整個(gè)身份認(rèn)證過(guò)程,這樣既保證用戶(hù)的信息安全,又使得應(yīng)用服務(wù)器具有良好的動(dòng)態(tài)伸縮性。但是該方案創(chuàng)建的令牌是指定給具體客戶(hù)端在有效時(shí)間內(nèi)使用,攻擊者還是可以獲得對(duì)令牌控制的機(jī)會(huì),就可能偽裝成令牌的主人,進(jìn)而實(shí)施不法行為,甚至?xí)?dǎo)致用戶(hù)的信息或資源丟失、損壞、偷竊或被攻擊者復(fù)制。
[0007]在《基于Restful的身份認(rèn)證服務(wù)》論文中已經(jīng)明確闡釋了利用Restful Web服務(wù)技術(shù),設(shè)計(jì)一種身份認(rèn)證服務(wù),該服務(wù)將身份認(rèn)證發(fā)布為Rest服務(wù),同時(shí)采用加密令牌方式將用戶(hù)認(rèn)證信息保存在客戶(hù)端的令牌中,應(yīng)用服務(wù)不再使用Sess1n保存認(rèn)證用戶(hù)信息,而是通過(guò)解密令牌密文獲取認(rèn)證用戶(hù)信息。該方案雖然很大程度上彌補(bǔ)了傳統(tǒng)身份認(rèn)證技術(shù)的不足,用戶(hù)信息安全性顯著增強(qiáng),但是也存在比較明顯的弱點(diǎn)和不足。雖然創(chuàng)建的令牌是指定給具體客戶(hù)端在有效時(shí)間內(nèi)使用,但攻擊者還是可以獲得對(duì)令牌控制的機(jī)會(huì),因此就可能偽裝成令牌的主人,實(shí)施不法行為,導(dǎo)致用戶(hù)信息或資源丟失、損壞、偷竊或被攻擊者復(fù)制。例如,獲得對(duì)令牌所有人的計(jì)算機(jī)訪問(wèn)機(jī)會(huì)的攻擊者可以復(fù)制一個(gè)軟件令牌,將令牌所有者個(gè)人信息的拷貝并制作一個(gè)復(fù)制品。
【發(fā)明內(nèi)容】
[0008]為解決上述移動(dòng)交易系統(tǒng)用戶(hù)身份認(rèn)證和授權(quán)機(jī)制的安全性低的問(wèn)題,本發(fā)明提供了一種基于Restful移動(dòng)交易系統(tǒng)的用戶(hù)身份認(rèn)證和授權(quán)機(jī)制的安全性低和信息容易泄露等問(wèn)題,通過(guò)采用加密令牌方式將用戶(hù)認(rèn)證加密信息保存到客戶(hù)端的令牌中,并使用基于令牌ID生成驗(yàn)證碼的方法,設(shè)置加密的驗(yàn)證令牌,提高用戶(hù)信息的安全性,消除基于Restful移動(dòng)交易系統(tǒng)在身份認(rèn)證方面面臨的安全風(fēng)險(xiǎn)的技術(shù)方案:
本發(fā)明的Restful移動(dòng)交易系統(tǒng)身份認(rèn)證防護(hù)方法包括:
(1)搭建基于Restful的移動(dòng)交易系統(tǒng)總體架構(gòu);
(2)運(yùn)行Restful-Security安全協(xié)議的安全模型;
(3)用戶(hù)登錄以動(dòng)態(tài)驗(yàn)證加密令牌方式進(jìn)行身份認(rèn)證防護(hù)方法。
[0009]進(jìn)一步的,步驟(I)中系統(tǒng)總體架構(gòu)分為數(shù)據(jù)層、功能層、資源層和應(yīng)用層。數(shù)據(jù)層由數(shù)據(jù)庫(kù)和數(shù)據(jù)訪問(wèn)接口組成,數(shù)據(jù)訪問(wèn)接口定義對(duì)數(shù)據(jù)庫(kù)記錄的基本操作方法。功能層接受資源層的方法調(diào)度,對(duì)不同的管理模塊執(zhí)行對(duì)應(yīng)的功能方法。資源層由資源和URI組成。應(yīng)用層管理用戶(hù)提交的請(qǐng)求。
[0010]進(jìn)一步的,步驟(2)中Restful-Security安全協(xié)議的安全模型包括客戶(hù)端和服務(wù)器端,客戶(hù)端和服務(wù)器端的通信建立在HTTP上,均包括認(rèn)證、機(jī)密性和完整性三個(gè)模塊。
[0011]進(jìn)一步的,步驟(3)中動(dòng)態(tài)驗(yàn)證加密令牌方式為將用戶(hù)認(rèn)證信息存放在客戶(hù)端Cookie中,客戶(hù)端每次請(qǐng)求都將令牌提交給應(yīng)用服務(wù)器端,應(yīng)用服務(wù)器通過(guò)向認(rèn)證服務(wù)請(qǐng)求驗(yàn)證令牌內(nèi)容,獲取用戶(hù)的信息,完成整個(gè)身份認(rèn)證過(guò)程。
[0012]進(jìn)一步的,用戶(hù)認(rèn)證信息加密隱藏在Token中,所述Token中包含以下信息:(1)Token的ID ; (2)登錄用戶(hù)的ID ; (3)客戶(hù)端IP地址;(4)初次登錄時(shí)間;(5)上次請(qǐng)求時(shí)間;(6) Token有效時(shí)間。
[0013]進(jìn)一步的,Token的ID是一次會(huì)話的唯一識(shí)別碼,作為識(shí)別、跟蹤用戶(hù)一次會(huì)話行為的標(biāo)識(shí)。
[0014]進(jìn)一步的,身份認(rèn)證方法通過(guò)以下步驟實(shí)現(xiàn):
(1)新用戶(hù)通過(guò)客戶(hù)端向認(rèn)證服務(wù)器端發(fā)出創(chuàng)建令牌資源的請(qǐng)求,請(qǐng)求的表單中內(nèi)容包含用戶(hù)名和密碼等認(rèn)證信息;
(2)服務(wù)器端對(duì)用戶(hù)信息進(jìn)行認(rèn)證,通過(guò)認(rèn)證后,將登錄用戶(hù)信息作為令牌的一部分生成用戶(hù)Token ;
(3)對(duì)令牌除去TokenID以外的部分進(jìn)行加密,形成加密后的密文令牌;
(4)將加密過(guò)的令牌返回給客戶(hù)端,將令牌存放在客戶(hù)端的Cookie中;
(5)當(dāng)客戶(hù)端向其它應(yīng)用服務(wù)提出任何服務(wù)請(qǐng)求時(shí),客戶(hù)端根據(jù)令牌ID和相應(yīng)算法生成驗(yàn)證碼,并發(fā)送至用戶(hù)綁定的手機(jī);
(6)客戶(hù)端將用戶(hù)輸入的驗(yàn)證碼添加至加密令牌的首部,然后連同服務(wù)請(qǐng)求一起提交給應(yīng)用服務(wù)器;
(7)應(yīng)用服務(wù)器收到具有驗(yàn)證碼的令牌后,向認(rèn)證服務(wù)請(qǐng)求令牌驗(yàn)證和解析服務(wù),將加密后密文作為令牌資源的ID提交給認(rèn)證服務(wù);
(8)認(rèn)證服務(wù)驗(yàn)證令牌的合法性;
(9)對(duì)于合法的令牌,認(rèn)證服務(wù)根據(jù)密鑰將密文解密,成功解密認(rèn)為T(mén)oken是有效的,否則認(rèn)為T(mén)oken無(wú)效;
(10)認(rèn)證服務(wù)根據(jù)客戶(hù)端IP地址及Token的有效時(shí)間進(jìn)一步驗(yàn)證令牌的有效性;
(11)認(rèn)證服務(wù)根據(jù)新的請(qǐng)求時(shí)間重新制作新Token;
(12)將新Token經(jīng)過(guò)同樣加密,變成密文;
(13)如果認(rèn)證通過(guò),則將令牌中的登錄用戶(hù)信息返回,同時(shí)將新生成的令牌返回應(yīng)用服務(wù);
(14)應(yīng)用服務(wù)獲取登錄用戶(hù)信息,完成后續(xù)請(qǐng)求的應(yīng)答;
(15)應(yīng)用服務(wù)將認(rèn)證服務(wù)返回的新令牌通過(guò)Cookie設(shè)置方式替換客戶(hù)端的舊令牌,應(yīng)用服務(wù)器端也不保存用戶(hù)的登錄信息。這樣客戶(hù)端在下次向應(yīng)用服務(wù)發(fā)出請(qǐng)求就使用新的令牌,重復(fù)(5)到(15)步驟。
[0015]本發(fā)明的有益效果在于:
(I)采用基于Restful的移動(dòng)交易系統(tǒng)總體架構(gòu),在功能層實(shí)現(xiàn)對(duì)用戶(hù)、商戶(hù)和安全的統(tǒng)一管理。
[0016](2)采用一種動(dòng)態(tài)驗(yàn)證加密令牌方式的身份認(rèn)證防護(hù)策略,防止攻擊者在令牌的有效時(shí)間內(nèi)獲得對(duì)令牌的控制,實(shí)施不法行為。
[0017]
【附圖說(shuō)明】
[0018]圖1為基于Restful的移動(dòng)交易系統(tǒng)總體架構(gòu)圖;
圖2為Restful-Security協(xié)議的安全模型示意圖;
圖3為Restful-Security協(xié)議的應(yīng)用流程示意圖;
圖4為身份認(rèn)證流程圖。
[0019]
【具體實(shí)施方式】
[0020]為使本發(fā)明的發(fā)明目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0021]為使本發(fā)明的發(fā)明目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合附圖對(duì)本發(fā)明的實(shí)施方式作進(jìn)一步地詳細(xì)描述。
[0022]本發(fā)明所設(shè)計(jì)的移動(dòng)交易系統(tǒng)在基于輕量級(jí)的Restful Web服務(wù)架構(gòu)下,采用安全的Restful-Security協(xié)議,在協(xié)議的認(rèn)證模塊,設(shè)-H種基于動(dòng)態(tài)驗(yàn)證加密令牌方式的身份認(rèn)證防護(hù)策略,具體包括:
(1)搭建基于Restful的移動(dòng)交易系統(tǒng)總體架構(gòu);
(2)運(yùn)行Restful-Security安全協(xié)議的安全模型;
(3)采用動(dòng)態(tài)驗(yàn)證加密令牌方式的身份認(rèn)證防護(hù)策略。
[0023]本發(fā)明提供的優(yōu)選技術(shù)方案中,步驟(I)包括如下內(nèi)容:
基于Restful的移動(dòng)交易系統(tǒng)能夠利用Restful良好的I禹合性和可擴(kuò)展性提供良好的業(yè)務(wù)擴(kuò)展能力,如圖1所示:
系統(tǒng)分為數(shù)據(jù)層、功能層、資源層和應(yīng)用層。
[0024]數(shù)據(jù)層:該層由數(shù)據(jù)庫(kù)和數(shù)據(jù)訪問(wèn)接口組成,數(shù)據(jù)訪問(wèn)接口定義了對(duì)數(shù)據(jù)庫(kù)記錄的基本操作方法。
[0025]功能層:該層接受資源層的方法調(diào)度,對(duì)不同的管理模塊執(zhí)行對(duì)應(yīng)的功能方法,這些方法與數(shù)據(jù)層進(jìn)行通信,將得到的數(shù)據(jù)返回給資源層。
[0026]資源層:該層由資源和URI組成。資源層接受用戶(hù)請(qǐng)求,根據(jù)HTTP請(qǐng)求的方法類(lèi)型,調(diào)用功能層不同管理模塊的執(zhí)行方法,并視用戶(hù)類(lèi)型的不同,對(duì)返回?cái)?shù)據(jù)以JSON或HTML格式封裝后返回給用戶(hù)。
[0027]應(yīng)用層:該層用來(lái)管理用戶(hù)提交的請(qǐng)求。
[0028]在步驟(2)包括如下內(nèi)容:
如圖2所示,客戶(hù)端和服務(wù)器端的通信都是建立在HTTP之上的。
[0029]首先在客戶(hù)端需要加載Restful-Security協(xié)議配置文件,其中的內(nèi)容由用戶(hù)根據(jù)具體的安全需求進(jìn)行配置,配置完成之后客戶(hù)端來(lái)負(fù)責(zé)加載