專利名稱:在線交易系統(tǒng)的中間人攻擊防御方法
技術(shù)領(lǐng)域:
本發(fā)明涉及的是一種在線交易領(lǐng)域的安全防御技術(shù),尤其是一種基于挑戰(zhàn)/應(yīng)答機(jī)制的防御中間人攻擊的雙向認(rèn)證技術(shù),具體涉及在線交易系統(tǒng)的中間人攻擊防御方法。
背景技術(shù):
隨著計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的發(fā)展,網(wǎng)絡(luò)安全問(wèn)題已經(jīng)受到全世界人民的高度重視。目前,常見(jiàn)的網(wǎng)絡(luò)攻擊類型有拒絕服務(wù)攻擊、利用型攻擊(木馬,緩沖區(qū)溢出)、信息收集型攻擊(掃描技術(shù)、端口探測(cè))、假消息攻擊(DNS高速緩存污染、偽造電子郵件)等。其中,中間人攻擊作為網(wǎng)絡(luò)攻擊的一種(信息收集型),通過(guò)各種技術(shù)手段將受入侵者控制的一臺(tái)計(jì)算機(jī)虛擬放置在網(wǎng)絡(luò)連接中的兩臺(tái)通信計(jì)算機(jī)之間,入侵者把受控的計(jì)算機(jī)模擬一臺(tái)或兩臺(tái)原始計(jì)算機(jī),使“中間人”能夠與原始計(jì)算機(jī)建立活動(dòng)連接并允許其讀取或修改傳遞的信息,讓兩臺(tái)受害的計(jì)算機(jī)相信他們是直接的與對(duì)方通信。由于其具有隱蔽性強(qiáng)、不易被察覺(jué)的 特點(diǎn),造成的威脅巨大,在雙方通信未經(jīng)加密的情況下,中間人可以很容易的獲取未加密的信息。中間人攻擊對(duì)在線交易安全造成了嚴(yán)重威脅,成為影響該行業(yè)良性發(fā)展、有序運(yùn)行的障礙。2011年上半年有8%的網(wǎng)民在網(wǎng)上遇到過(guò)消費(fèi)欺詐,群體規(guī)模達(dá)到3880萬(wàn)人,詐騙的形式有中獎(jiǎng)陷阱、網(wǎng)絡(luò)購(gòu)物詐騙、網(wǎng)絡(luò)釣魚(yú)等。2011全年新增釣魚(yú)網(wǎng)站數(shù)量達(dá)到45萬(wàn)個(gè),網(wǎng)民平均每瀏覽14個(gè)網(wǎng)頁(yè)就有一次遇到釣魚(yú)網(wǎng)站。2011年2月農(nóng)歷春節(jié)前后,多家全國(guó)性的商業(yè)銀行和地方城市銀行客戶遭遇大批量短信詐騙。騙子在短信中聲稱銀行動(dòng)態(tài)口令升級(jí),請(qǐng)儲(chǔ)戶訪問(wèn)指定網(wǎng)站更新。許多儲(chǔ)戶信以為真,上網(wǎng)登錄了這些網(wǎng)站。將自己的銀行卡、手機(jī)號(hào)等信息提交,并隨后按網(wǎng)站提示的方法,把銀行返回的驗(yàn)證碼也一并交給騙子,結(jié)果導(dǎo)致大量?jī)?chǔ)戶資金被盜,損失數(shù)千元至數(shù)百萬(wàn)元不等。因此,為了確保網(wǎng)絡(luò)交易環(huán)境的安全,需要一種針對(duì)中間人等網(wǎng)絡(luò)攻擊的認(rèn)證防御技術(shù),以保證在線交易的安全性。經(jīng)文獻(xiàn)檢索發(fā)現(xiàn),現(xiàn)有技術(shù)中的中間人攻擊的防御方法主要有以下幾類( I)配置靜態(tài)ARP緩存這種方法主要針對(duì)中間人攻擊中的ARP欺騙攻擊。通過(guò)設(shè)置靜態(tài)ARP緩存(ARPcache),捆綁MAC和IP地址,從而禁止網(wǎng)絡(luò)接口做ARP解析,這樣一來(lái),在數(shù)據(jù)包接收和發(fā)送的過(guò)程中,主機(jī)將不再訪問(wèn)動(dòng)態(tài)更新的ARP地址緩存。然而這樣的方法通用性不強(qiáng),對(duì)于動(dòng)態(tài)的大型局域網(wǎng)來(lái)說(shuō)不具有可行性,只有在小型的網(wǎng)絡(luò)結(jié)構(gòu)不經(jīng)常發(fā)生變化的局域網(wǎng)中才有一定可行性,同時(shí),這種方法會(huì)對(duì)網(wǎng)絡(luò)管理員帶來(lái)不便。(2 )使用DHCP服務(wù)器并綁定MAC這種方法也主要針對(duì)中間人攻擊中的ARP攻擊,通過(guò)在網(wǎng)關(guān)上建立DHCP服務(wù)器,所有主機(jī)的IP地址和相關(guān)主機(jī)信息只能從網(wǎng)關(guān)取得,并且給每個(gè)網(wǎng)卡綁定一個(gè)固定的IP地址。這種方法的不便與配置靜態(tài)ARP緩存方法相同。(3)對(duì)于重要服務(wù),直接訪問(wèn)IP地址或手動(dòng)添加host表這種方法主要針對(duì)中間人攻擊中的DNS欺騙攻擊。主機(jī)在進(jìn)行網(wǎng)上交易等活動(dòng)時(shí),避免連接山寨、釣魚(yú)的假冒銀行網(wǎng)站,在某種意義上來(lái)說(shuō)避免了 DNS查詢,但不能防止一些網(wǎng)站域名的解析。(4) HOTP 技術(shù)HOTP即HMAC-based One Time Password的簡(jiǎn)寫(xiě),是一種基于哈希的一次性口令算法,核心思想是根據(jù)密鑰和時(shí)間戳或計(jì)數(shù)器來(lái)算出一個(gè)一次性密碼。合法用戶持有一個(gè)內(nèi)置電源、密碼生成芯片和顯示屏的動(dòng)態(tài)令牌(token),其根據(jù)當(dāng)前時(shí)間或使用次數(shù),運(yùn)行專門(mén)的密碼算法生成當(dāng)前密碼。認(rèn)證服務(wù)器采用相同的算法計(jì)算當(dāng)前的有效密碼,并與用戶提供的密碼進(jìn)行比較,如果兩密碼相同,則密碼驗(yàn)證通過(guò),系統(tǒng)認(rèn)為用戶身份可靠。用戶的密碼按照時(shí)間或使用次數(shù)不斷動(dòng)態(tài)變化,每個(gè)密碼只使用一次,即使黑客截獲了一次密碼,也無(wú)法利用這個(gè)密碼來(lái)仿冒合法用戶的身份。雖然現(xiàn)有的HOTP技術(shù)可以實(shí)現(xiàn)服務(wù)器對(duì)用戶的認(rèn)證,并且可以保證在不安全的信道上傳輸認(rèn)證信息不會(huì)導(dǎo)致泄露,但卻不能實(shí)現(xiàn)用戶對(duì)服務(wù)器的認(rèn)證,可能會(huì)導(dǎo)致用戶登陸進(jìn)入一個(gè)非法的冒充服務(wù)器。
發(fā)明內(nèi)容
本發(fā)明針對(duì)上述現(xiàn)有技術(shù)存在的不足,提供了一個(gè)安全性高、實(shí)現(xiàn)簡(jiǎn)單、普及性高的在線交易中間人攻擊防御方法。本發(fā)明實(shí)現(xiàn)的是基于挑戰(zhàn)/應(yīng)答的動(dòng)態(tài)密碼機(jī)制,由交易服務(wù)器和客戶端計(jì)算機(jī)交互完成相互的認(rèn)證過(guò)程。根據(jù)本發(fā)明的一個(gè)方面,提供一種在線交易系統(tǒng)的中間人攻擊防御方法,包括如下步驟步驟A :交易服務(wù)器通過(guò)網(wǎng)絡(luò)聯(lián)機(jī)接收來(lái)自客戶端計(jì)算機(jī)的交易請(qǐng)求,并根據(jù)所述交易請(qǐng)求獲得多個(gè)交易信息;步驟B :交易服務(wù)器生成一隨機(jī)不重復(fù)的挑戰(zhàn)值challenge,并從所述多個(gè)交易信息中選取一個(gè)交易信息作為特定交易信息;然后根據(jù)所述挑戰(zhàn)值challenge、所述特定交易信息、以及交易服務(wù)器存儲(chǔ)的第一私有信息infol生成第一 Hash值;接著將所述第一Hash值、挑戰(zhàn)值challenge、以及所述多個(gè)交易信息通過(guò)網(wǎng)絡(luò)聯(lián)機(jī)傳給客戶端計(jì)算機(jī);步驟C :客戶端計(jì)算機(jī)從所述多個(gè)交易信息中選取出所述特定交易信息,然后根據(jù)所述挑戰(zhàn)值challenge、所述特定交易信息、以及客戶端計(jì)算機(jī)存儲(chǔ)的第一私有信息infol生成第一驗(yàn)證Hash值;步驟D :客戶端計(jì)算機(jī)將所述第一驗(yàn)證Hash值與接收的第一 Hash值進(jìn)行比對(duì);如果取值不同,則提醒用戶該交易服務(wù)器不合法,斷開(kāi)網(wǎng)絡(luò)聯(lián)機(jī);如果取值相同,則判定交易服務(wù)器為合法的;步驟E :客戶端計(jì)算機(jī)根據(jù)所述挑戰(zhàn)值challenge、所述特定交易信息、以及客戶端計(jì)算機(jī)存儲(chǔ)的第二私有信息info2生成第二 Hash值,將所述第二 Hash值截短生成的8位HOTP并顯示給用戶供用戶輸入;接著將所述第二 Hash值、以及用戶輸入的8位HOTP通過(guò)網(wǎng)絡(luò)聯(lián)機(jī)傳給交易服務(wù)器;步驟F :交易服務(wù)器接收所述第二 Hash值、以及用戶輸入的8位HOTP后,根據(jù)所述挑戰(zhàn)值challenge、所述特定交易信息、以及交易服務(wù)器存儲(chǔ)的第二私有信息info2生成第二驗(yàn)證Hash值,并將所述第二驗(yàn)證Hash值截短生成的驗(yàn)證8位HOTP ;步驟G :交易服務(wù)器將所述第二驗(yàn)證Hash值與接收的第二 Hash值進(jìn)行比對(duì);如果取值不同,則客戶端計(jì)算機(jī)不安全,斷開(kāi)連接;如果取值相同,則判定客戶端計(jì)算機(jī)驗(yàn)證成功,然后用所述驗(yàn)證8位HOTP對(duì)所述用戶輸入的HOTP進(jìn)行驗(yàn)證,如果不同則判定用戶輸入錯(cuò)誤,如果相同則判定用戶輸入正確,完成交易雙向驗(yàn)證。優(yōu)選地,所述多個(gè)交易信息包括交易單號(hào)、交易時(shí)間或交易金額。優(yōu)選地,所述客戶端計(jì)算機(jī)與交易服務(wù)器之間存在同步變量count,所述客戶端計(jì)算機(jī)與交易服務(wù)器均根據(jù)本地的同步變量count從所述多個(gè)交易信息中選取所述特定交易息。優(yōu)選地,當(dāng)交易服務(wù)器與客戶端計(jì)算機(jī)相互認(rèn)證成功時(shí),兩端的同步變量count的取值分別加1,以保證兩端的同步變量count的取值同步;若相互認(rèn)證不成功時(shí),同步變量count的取值不變。優(yōu)選地,產(chǎn)生第一 Hash值、第一驗(yàn)證Hash值、第二 Hash值、第二驗(yàn)證Hash值的算 法是安全哈希算法SHAl。優(yōu)選地,客戶端計(jì)算機(jī)所使用的第二私有信息info2是使用對(duì)稱密鑰在客戶端計(jì)算機(jī)上進(jìn)行加密的。在本發(fā)明的一個(gè)優(yōu)選的具體實(shí)施方式
中,整個(gè)機(jī)制的工作流程包含以下3個(gè)階段(I)注冊(cè)階段。用戶會(huì)獲得一個(gè)U盤(pán),內(nèi)有客戶端的可執(zhí)行程序以及第一私有信息infol和第二私有信息inf02。(2)普通認(rèn)證階段??蛻舳耸褂米?cè)的用戶名及口令登陸交易網(wǎng)站,如果用戶名、口令正確,則可進(jìn)入網(wǎng)站進(jìn)行交易活動(dòng),否則無(wú)法進(jìn)行網(wǎng)站的交易活動(dòng)。(3)交易認(rèn)證階段。利用當(dāng)前交易信息,包括交易單號(hào)、交易時(shí)間、交易金額,基于HOTP計(jì)算,對(duì)交易雙方進(jìn)行雙向認(rèn)證。交易認(rèn)證過(guò)程包括兩個(gè)步驟客戶端計(jì)算機(jī)認(rèn)證交易服務(wù)器和交易服務(wù)器認(rèn)證客戶端計(jì)算機(jī)。I)客戶端計(jì)算機(jī)認(rèn)證交易服務(wù)器交易服務(wù)器通過(guò)網(wǎng)絡(luò)聯(lián)機(jī)接收客戶端的交易請(qǐng)求,依據(jù)count計(jì)數(shù)器的取值選擇3個(gè)交易信息交易單號(hào)(tradeNum)、交易時(shí)間(tradeTime)、交易金額(tradeMoney)中的I個(gè)作為特定交易信息,使用第一私有信息infol、挑戰(zhàn)值challenge以及所述特定交易信息產(chǎn)生第一 Hash值。同時(shí),將第一 Hash值、挑戰(zhàn)值challenge及上述三個(gè)交易信息通過(guò)網(wǎng)絡(luò)聯(lián)機(jī)傳給客戶端計(jì)算機(jī)??蛻舳擞?jì)算機(jī)收到來(lái)自交易服務(wù)器的第一 Hash值、挑戰(zhàn)值chalIenge及上述三個(gè)交易信息后,執(zhí)行與交易服務(wù)器端相同的運(yùn)算得到第一驗(yàn)證Hash值。最后,將第一驗(yàn)證Hash值與服務(wù)器傳來(lái)的第一 Hash值進(jìn)行對(duì)比,如果二者一致,則交易服務(wù)器驗(yàn)證通過(guò),為合法的交易服務(wù)器;如果第一驗(yàn)證Hash值與第一 Hash值不相同,則判定交易服務(wù)器為仿冒,斷開(kāi)連接。2)交易服務(wù)器認(rèn)證客戶端計(jì)算機(jī)客戶端計(jì)算機(jī)軟件完成對(duì)交易服務(wù)器端的驗(yàn)證后,使用第二私有信息info2、挑戰(zhàn)值challenge、以及上述特定交易信息,產(chǎn)生第二 Hash值以及經(jīng)過(guò)截?cái)噙\(yùn)算的供用戶在網(wǎng)頁(yè)輸入的八位Η0ΤΡ。然后將第二 Hash值以及用戶輸入的八位HOTP通過(guò)網(wǎng)絡(luò)聯(lián)機(jī),傳給交易服務(wù)器。交易服務(wù)器接收第二 Hash值以及用戶輸入的八位HOTP后,使用服務(wù)器端存儲(chǔ)的第二私有信息info2,之前生成的挑戰(zhàn)值challenge以及上述特定交易信息進(jìn)行與客戶端相同的Hash運(yùn)算,得到第二驗(yàn)證Hash值。如果第二驗(yàn)證Hash值與第二 Hash值相同,則客戶端合法,否則為假冒客戶端,拒絕交易請(qǐng)求。
通過(guò)閱讀參照以下附圖對(duì)非限制性實(shí)施例所作的詳細(xì)描述,本發(fā)明的其它特征、目的和優(yōu)點(diǎn)將會(huì)變得更明顯圖I為本發(fā)明的實(shí)施例的所述的中間人攻擊防御系統(tǒng)的整體框架示意圖;圖2為本發(fā)明的實(shí)施例的所述的中間人攻擊防御系統(tǒng)的注冊(cè)階段示意圖;圖3為本發(fā)明的實(shí)施例的所述的中間人攻擊防御系統(tǒng)的普通認(rèn)證階段示意圖; 圖4為本發(fā)明的實(shí)施例的所述的中間人攻擊防御系統(tǒng)的交易認(rèn)證階段示意圖;圖5為本發(fā)明的實(shí)施例的所述的中間人攻擊防御系統(tǒng)的注冊(cè)階段示意圖。
具體實(shí)施例方式下面結(jié)合具體實(shí)施例對(duì)本發(fā)明進(jìn)行詳細(xì)說(shuō)明。以下實(shí)施例將有助于本領(lǐng)域的技術(shù)人員進(jìn)一步理解本發(fā)明,但不以任何形式限制本發(fā)明。應(yīng)當(dāng)指出的是,對(duì)本領(lǐng)域的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明構(gòu)思的前提下,還可以做出若干變形和改進(jìn)。這些都屬于本發(fā)明的保護(hù)范圍。根據(jù)本發(fā)明所提供方法的具體實(shí)施過(guò)程分為3個(gè)主要的階段,包括注冊(cè)階段、普通認(rèn)證階段和交易階段。為了更加清晰形象地闡述整個(gè)防御機(jī)制的實(shí)施過(guò)程,附上相關(guān)附圖并對(duì)其進(jìn)行說(shuō)明。如圖I所示為所述方法的整體框架示意圖。本發(fā)明所實(shí)現(xiàn)的為圖中交易系統(tǒng)方框內(nèi)的內(nèi)容,與網(wǎng)上商城進(jìn)行互相認(rèn)證再通過(guò)該交易系統(tǒng)轉(zhuǎn)到銀行。其中,本發(fā)明主要實(shí)現(xiàn)的是交易系統(tǒng)與網(wǎng)上商城的雙向認(rèn)證,而虛線部分的交易系統(tǒng)與銀行部分的內(nèi)容本領(lǐng)域技術(shù)人員能夠根據(jù)現(xiàn)有技術(shù)加以實(shí)現(xiàn),在此不予贅述。如圖2所示為交易的注冊(cè)階段。這個(gè)階段主要在柜臺(tái)當(dāng)面辦理,進(jìn)行注冊(cè)后,用戶會(huì)獲得一 U盤(pán),里面有交易客戶端的可執(zhí)行程序以及第一私有信息infol、第二私有信息info2以及count變量初始值。圖中110代表客戶端計(jì)算機(jī),120代表交易服務(wù)器,雙方通過(guò)網(wǎng)絡(luò)聯(lián)機(jī)進(jìn)行通信。如圖3所示為普通的認(rèn)證階段??蛻舳擞?jì)算機(jī)110通過(guò)網(wǎng)絡(luò)聯(lián)機(jī),輸入注冊(cè)的用戶名與密碼,進(jìn)行登陸交易服務(wù)器120的驗(yàn)證(步驟S201),通過(guò)則可進(jìn)入網(wǎng)站,進(jìn)行交易活動(dòng)(步驟S203)。否則,無(wú)法進(jìn)行網(wǎng)站的交易活動(dòng)(步驟S202)。如附圖4所示為正式的交易階段。在該階段,客戶端計(jì)算機(jī)110與交易服務(wù)器120進(jìn)行雙向認(rèn)證。首先,客戶端計(jì)算機(jī)向交易服務(wù)器通過(guò)網(wǎng)絡(luò)聯(lián)機(jī)發(fā)送一交易請(qǐng)求,并將三個(gè)交易信息(交易單號(hào)、交易時(shí)間、交易金額)同時(shí)發(fā)送給交易服務(wù)器(步驟S301)。交易服務(wù)器收到客戶端的交易請(qǐng)求后,生成一隨機(jī)不重復(fù)的挑戰(zhàn)值challenge (步驟S302),然后根據(jù)交易服務(wù)器儲(chǔ)存的count值,從傳來(lái)的三個(gè)交易信息中選取一特定交易信息(步驟S303),對(duì)挑戰(zhàn)值、上述特定交易信息和交易服務(wù)器端存儲(chǔ)的第一私有信息infol進(jìn)行hash運(yùn)算,產(chǎn)生第一 Hash值(步驟S304),同時(shí)將產(chǎn)生的第一 Hash值、挑戰(zhàn)值challenge以及上述三個(gè)交易信息通過(guò)網(wǎng)絡(luò)聯(lián)機(jī),傳給客戶端計(jì)算機(jī)(步驟S305)。挑戰(zhàn)值Challenge產(chǎn)生代碼如下
function createKey ($length)
{
$hash=〃 ·
$chars二〃ABCDEFGHIJKLMNOPQRSTUVWXYZO123456789abcdefghijkl mnopqrstuvwxyz^;
$len=strlen($chars)-I;
mt_srand((double)microtime()*1000000); for($i=0;$i<$length;$i++){
$hash.=$chars[mt_rand(0,$len)];
} return $hash;
}Hash函數(shù)優(yōu)選地選用SHAl函數(shù),具體如下
using System.Security.Cryptography;
public string SHA1—Encrypi(string Source_String)
i
byte[] StrRes = Encoding.Default.GetBytes(Source_String); HashAIgorithm iSHA = new SHAlCryptoServiceProvider();
StrRes = iSHA,ComputeHash(StrRes);
StringBuiider EnText = new StringBuilder(); foreach (byte iByte in StrRes)
{
EnText.AppendFormat(,f{0:x2},!/ iByte);
}
return EnText.ToString();
}通過(guò)網(wǎng)絡(luò)聯(lián)機(jī)傳遞的五個(gè)變量為Hash (challenge+infol+value),challenge, tradeTime, tradeNum, tradeMoney;其中 tradeinfo= {tradeTime,tradeNum,tradeMoney};value=tradeinfo [count],count 為同步變量。
客戶端計(jì)算機(jī)接收到上述五個(gè)變量后,首先根據(jù)客戶端計(jì)算機(jī)儲(chǔ)存的count變量取值,從三個(gè)交易信息中選取所述特定交易信息(步驟S306),然后對(duì)接收的挑戰(zhàn)值challenge、所述特定交易信息以及客戶端計(jì)算機(jī)存儲(chǔ)的第一私有信息infol進(jìn)行hash運(yùn)算,生成第一驗(yàn)證Hash值(步驟S307)。然后將第一驗(yàn)證Hash值與接收的第一 Hash值進(jìn)行比對(duì),如果取值不同,則提醒用戶上述交易服務(wù)器不合法,斷開(kāi)網(wǎng)絡(luò)聯(lián)機(jī)(步驟S308);如果第一驗(yàn)證Hash值與第一 Hash值相同,則判定服務(wù)器為合法的,同時(shí)將客戶端計(jì)算機(jī)存儲(chǔ)的count變量加I (步驟S310)。其次,客戶端計(jì)算機(jī)對(duì)接收的挑戰(zhàn)值challenge、第二私有信息info2以及所述特定交易信息進(jìn)行hash運(yùn)算生成第二 Hash值以及將第二 Hash值截短生成的8位HOTP。然后將8位HOTP顯示在客戶端計(jì)算機(jī)程序上供用戶輸入,將第二 Hash值通過(guò)網(wǎng)絡(luò)聯(lián)機(jī),傳給交易服務(wù)器(步驟S311)。交易服務(wù)器接收第二 Hash值以及用戶輸入的8位HOTP后,執(zhí)行 同樣的Hash運(yùn)算以及截短運(yùn)算,得到第二驗(yàn)證Hash值以及驗(yàn)證8位HOTP (步驟S312),將第二驗(yàn)證Hash值與客戶端傳來(lái)的第二 Hash值進(jìn)行比對(duì),如果第二驗(yàn)證Hash值與第二 Hash值不同,則判定客戶端計(jì)算機(jī)不安全,斷開(kāi)連接(步驟S313),如果相同則判定客戶端計(jì)算機(jī)驗(yàn)證成功(步驟S314),將交易服務(wù)器端count變量加1(步驟S315),然后用驗(yàn)證8位HOTP對(duì)用戶輸入的HOTP進(jìn)行驗(yàn)證,如果不同,則用戶輸入錯(cuò)誤,如果用戶連續(xù)3次輸入錯(cuò)誤,則3分鐘內(nèi)不得再次輸入動(dòng)態(tài)密碼。如果相同則用戶輸入正確,完成交易雙向驗(yàn)證。在該過(guò)程中,需要說(shuō)明客戶端計(jì)算機(jī)與交易服務(wù)器兩端count值的同步問(wèn)題。在本方案中,優(yōu)選的解決方法是當(dāng)客戶端完成對(duì)交易服務(wù)器的驗(yàn)證過(guò)程后,如果驗(yàn)證成功,則將客戶端計(jì)算機(jī)存儲(chǔ)的count值加1,同時(shí)向服務(wù)器傳遞前面所說(shuō)的第二 Hash值以及用戶輸入的八位HOTP值。否則,客戶端計(jì)算機(jī)將直接斷開(kāi)與交易服務(wù)器的連接,不傳遞任何信息。交易服務(wù)器會(huì)做一個(gè)判斷如果接收到客戶端計(jì)算機(jī)傳遞的第二 Hash值與服務(wù)器端生成的第二驗(yàn)證Hash值相同,則將服務(wù)器端存儲(chǔ)的count變量加I。否則,對(duì)客戶端的驗(yàn)證失敗,服務(wù)器端的count變量不做處理。這樣,當(dāng)客戶端驗(yàn)證交易服務(wù)器失敗時(shí),客戶端計(jì)算機(jī)不會(huì)向交易服務(wù)器傳遞第二 Hash值,兩端的count值保持同步;當(dāng)客戶端驗(yàn)證交易服務(wù)器成功時(shí),客戶端count值加I,此時(shí),如果客戶端為合法用戶,則交易服務(wù)器對(duì)客戶端的驗(yàn)證也一定成功,交易服務(wù)器count值加I ;如果客戶端為假冒客戶,直接對(duì)服務(wù)器發(fā)送偽造數(shù)據(jù)包,則因?yàn)槠錄](méi)有私有信息等很多未知的信息,交易服務(wù)器對(duì)客戶端的驗(yàn)證將不會(huì)成功,交易服務(wù)器count值不變,交易服務(wù)器與合法客戶端的count值依舊保持同步;當(dāng)客戶端對(duì)交易服務(wù)器驗(yàn)證成功而用戶輸入8位HOTP值出現(xiàn)錯(cuò)誤時(shí),客戶端count值加1,服務(wù)器端由于對(duì)客戶端傳來(lái)的第二 Hash值驗(yàn)證成功,因此服務(wù)器端count值也加I,兩端count值保持同步。因此,該解決方法成功實(shí)現(xiàn)客戶端計(jì)算機(jī)與交易服務(wù)器的count變量的同步。服務(wù)器端實(shí)現(xiàn)count值同步的關(guān)鍵代碼如下
權(quán)利要求
1.一種在線交易系統(tǒng)的中間人攻擊防御方法,其特征在于,包括如下步驟 步驟A :交易服務(wù)器通過(guò)網(wǎng)絡(luò)聯(lián)機(jī)接收來(lái)自客戶端計(jì)算機(jī)的交易請(qǐng)求,并根據(jù)所述交易請(qǐng)求獲得多個(gè)交易信息; 步驟B :交易服務(wù)器生成一隨機(jī)不重復(fù)的挑戰(zhàn)值challenge,并從所述多個(gè)交易信息中選取一個(gè)交易信息作為特定交易信息;然后根據(jù)所述挑戰(zhàn)值challenge、所述特定交易信息、以及交易服務(wù)器存儲(chǔ)的第一私有信息infol生成第一 Hash值;接著將所述第一 Hash值、挑戰(zhàn)值challenge、以及所述多個(gè)交易信息通過(guò)網(wǎng)絡(luò)聯(lián)機(jī)傳給客戶端計(jì)算機(jī); 步驟C :客戶端計(jì)算機(jī)從所述多個(gè)交易信息中選取出所述特定交易信息,然后根據(jù)所述挑戰(zhàn)值challenge、特定交易信息、以及客戶端計(jì)算機(jī)存儲(chǔ)的第一私有信息infol生成第一驗(yàn)證Hash值; 步驟D :客戶端計(jì)算機(jī)將所述第一驗(yàn)證Hash值與接收的第一 Hash值進(jìn)行比對(duì);如果取值不同,則提醒用戶該交易服務(wù)器不合法,斷開(kāi)網(wǎng)絡(luò)聯(lián)機(jī);如果取值相同,則判定交易服務(wù)器為合法的; 步驟E :客戶端計(jì)算機(jī)根據(jù)所述挑戰(zhàn)值challenge、所述特定交易信息、以及客戶端計(jì)算機(jī)存儲(chǔ)的第二私有信息info2生成第二 Hash值,將所述第二 Hash值截短生成的8位HOTP并顯示給用戶供用戶輸入;接著將所述第二 Hash值、以及用戶輸入的8位HOTP通過(guò)網(wǎng)絡(luò)聯(lián)機(jī)傳給交易服務(wù)器; 步驟F :交易服務(wù)器接收所述第二 Hash值、以及用戶輸入的8位HOTP后,根據(jù)所述挑戰(zhàn)值challenge、所述特定交易信息、以及交易服務(wù)器存儲(chǔ)的第二私有信息info2生成第二驗(yàn)證Hash值,并將所述第二驗(yàn)證Hash值截短生成的驗(yàn)證8位HOTP ; 步驟G :交易服務(wù)器將所述第二驗(yàn)證Hash值與接收的第二 Hash值進(jìn)行比對(duì);如果取值不同,則客戶端計(jì)算機(jī)不安全,斷開(kāi)連接;如果取值相同,則判定客戶端計(jì)算機(jī)驗(yàn)證成功,然后用所述驗(yàn)證8位HOTP對(duì)所述用戶輸入的HOTP進(jìn)行驗(yàn)證,如果不同則判定用戶輸入錯(cuò)誤,如果相同則判定用戶輸入正確,完成交易雙向驗(yàn)證。
2.根據(jù)權(quán)利要求I所述的在線交易系統(tǒng)的中間人攻擊防御方法,其特征在于,所述多個(gè)交易信息包括交易單號(hào)、交易時(shí)間或交易金額。
3.根據(jù)權(quán)利要求I所述的在線交易系統(tǒng)的中間人攻擊防御方法,其特征在于,所述客戶端計(jì)算機(jī)與交易服務(wù)器之間存在同步變量count,所述客戶端計(jì)算機(jī)與交易服務(wù)器均根據(jù)本地的同步變量count從所述多個(gè)交易信息中選取所述特定交易信息。
4.根據(jù)權(quán)利要求3所述的在線交易系統(tǒng)的中間人攻擊防御方法,其特征在于,當(dāng)交易服務(wù)器與客戶端計(jì)算機(jī)相互認(rèn)證成功時(shí),兩端的同步變量count的取值分別加1,以保證兩端的同步變量count的取值同步;若相互認(rèn)證不成功時(shí),同步變量count的取值不變。
5.根據(jù)權(quán)利要求I所述的在線交易系統(tǒng)的中間人攻擊防御方法,其特征在于,產(chǎn)生第一 Hash值、第一驗(yàn)證Hash值、第二 Hash值、第二驗(yàn)證Hash值的算法是安全哈希算法SHAl。
6.根據(jù)權(quán)利要求I所述的在線交易系統(tǒng)的中間人攻擊防御方法,其特征在于,客戶端計(jì)算機(jī)所使用的第二私有信息info2是使用對(duì)稱密鑰在客戶端計(jì)算機(jī)上進(jìn)行加密的。
全文摘要
本發(fā)明提供了一種在線交易系統(tǒng)的中間人攻擊防御方法,即基于挑戰(zhàn)/應(yīng)答機(jī)制的防御中間人攻擊的雙向認(rèn)證技術(shù)。交易服務(wù)器接收到交易請(qǐng)求后,產(chǎn)生一個(gè)challenge,并運(yùn)用第一私有信息、challenge及一個(gè)交易信息生成第一哈希值,同時(shí)將上述參數(shù)傳給客戶端計(jì)算機(jī)??蛻舳擞?jì)算機(jī)接收上述參數(shù)后,同樣運(yùn)用第一私有信息計(jì)算得到第一驗(yàn)證哈希值,進(jìn)而對(duì)服務(wù)器端進(jìn)行驗(yàn)證。然后客戶端計(jì)算機(jī)運(yùn)用第二私有信息、接收的challenge及上述交易信息生成第二哈希值,傳給交易服務(wù)器。交易服務(wù)器接收上述第二哈希值后,運(yùn)用第二私有信息生成第二驗(yàn)證哈希值,進(jìn)而完成對(duì)客戶端計(jì)算機(jī)的驗(yàn)證。此過(guò)程成功實(shí)現(xiàn)了交易服務(wù)器與客戶端的雙向認(rèn)證,對(duì)中間人攻擊具有有效地防御作用。
文檔編號(hào)H04L29/06GK102904883SQ20121036287
公開(kāi)日2013年1月30日 申請(qǐng)日期2012年9月25日 優(yōu)先權(quán)日2012年9月25日
發(fā)明者陳秀真, 李建華, 邱洋, 任航 申請(qǐng)人:上海交通大學(xué)