李 賽,李曉宇
(鄭州大學(xué) 信息工程學(xué)院,鄭州 450001)
(*通信作者電子郵箱iexyli@zzu.edu.cn)
基于加密短信驗(yàn)證碼的移動(dòng)安全支付解決方案
李 賽,李曉宇*
(鄭州大學(xué) 信息工程學(xué)院,鄭州 450001)
(*通信作者電子郵箱iexyli@zzu.edu.cn)
針對(duì)移動(dòng)支付過(guò)程中支付驗(yàn)證碼容易泄露的問(wèn)題,提出了基于加密短信息驗(yàn)證碼的雙因素移動(dòng)支付系統(tǒng)方案。該方案基于公開(kāi)密鑰系統(tǒng),使用公鑰基礎(chǔ)設(shè)施/認(rèn)證機(jī)構(gòu)(PKI/CA)的認(rèn)證方法進(jìn)行服務(wù)器與客戶端的在線安全認(rèn)證,并且利用客戶在服務(wù)器上注冊(cè)的用戶名、密碼和加密的交易驗(yàn)證短信來(lái)確保即使驗(yàn)證碼密文泄漏,攻擊者也無(wú)法獲取驗(yàn)證碼,從而杜絕了驗(yàn)證碼泄漏造成的失竊風(fēng)險(xiǎn)。仿真結(jié)果表明,加密驗(yàn)證碼方案在使用短信接口發(fā)送給用戶時(shí),系統(tǒng)的反應(yīng)時(shí)間與未加密驗(yàn)證碼方案的反應(yīng)時(shí)間差別并不明顯,而且增長(zhǎng)趨勢(shì)保持一致,均隨著用戶訪問(wèn)量的增加呈線性增長(zhǎng),能夠兼顧系統(tǒng)的安全性和有效性。
移動(dòng)支付;短信驗(yàn)證碼;雙因素驗(yàn)證;公鑰基礎(chǔ)設(shè)施/認(rèn)證機(jī)構(gòu);加密算法
隨著互聯(lián)網(wǎng)的普及和電子商務(wù)的興起,金融支付手段已成為制約經(jīng)濟(jì)發(fā)展的瓶頸,移動(dòng)支付在這樣的背景下應(yīng)運(yùn)而生。近年來(lái),移動(dòng)互聯(lián)網(wǎng)為各行各業(yè)帶來(lái)了巨大的革新機(jī)遇[1],根據(jù)艾瑞預(yù)測(cè),2018年移動(dòng)支付的市場(chǎng)交易規(guī)模或?qū)⒊^(guò)18萬(wàn)億元。
如此大的交易規(guī)模,其中最核心的問(wèn)題就是移動(dòng)支付的安全問(wèn)題[2]。在移動(dòng)安全支付中,移動(dòng)支付的關(guān)鍵問(wèn)題是確立安全的支付認(rèn)證模式[3]。對(duì)于很多重要的支付系統(tǒng)而言,如果只有支付密碼作為唯一的認(rèn)證手段,從安全層面上看存在著很大的風(fēng)險(xiǎn)[4]。因此為了增強(qiáng)網(wǎng)站的安全性,大多數(shù)網(wǎng)上支付平臺(tái)或者網(wǎng)上銀行都會(huì)采用雙因素認(rèn)證或多因素認(rèn)證[5]。這些不同的認(rèn)證手段可以相互結(jié)合,使得認(rèn)證的過(guò)程更加安全。因此密碼不再是唯一的認(rèn)證手段,在客戶密碼丟失的情況下,也可以有效地保護(hù)客戶的賬戶安全。
當(dāng)前,各金融機(jī)構(gòu)如商業(yè)銀行采取的一些通用的安全認(rèn)證手段有短信密碼驗(yàn)證、動(dòng)態(tài)口令、數(shù)字證書(shū)或者以上這些方式的組合[6],而短信驗(yàn)證是目前二次身份驗(yàn)證中成本最低、最容易實(shí)現(xiàn)也最便捷的身份驗(yàn)證方案,客戶的綁定性較強(qiáng),不需要額外設(shè)備,校驗(yàn)成本極低,是通過(guò)率最高、操作性最好的驗(yàn)證手段。然而,在目前已有的方案里,短信驗(yàn)證碼必須絕對(duì)保密,一旦短信驗(yàn)證碼由于各種原因泄露,仍然會(huì)造成資金失竊。近年來(lái)屢屢發(fā)生的電信詐騙案中,騙取短信驗(yàn)證碼往往是犯罪嫌疑人欺詐得逞的主要手段和關(guān)鍵環(huán)節(jié)。
基于對(duì)以上問(wèn)題的考慮,本文提出了一種基于“客戶口令+加密驗(yàn)證短信”的雙因素認(rèn)證模式,在身份認(rèn)證過(guò)程中使用安全性更好的混合加密機(jī)制,同時(shí)在驗(yàn)證碼傳輸過(guò)程中對(duì)驗(yàn)證碼進(jìn)行二次加密,以保障在驗(yàn)證碼泄露的情況下移動(dòng)支付過(guò)程的安全性[7],降低客戶財(cái)產(chǎn)損失的風(fēng)險(xiǎn)。
1.1 身份驗(yàn)證
網(wǎng)絡(luò)信息安全的五個(gè)功能包括身份認(rèn)證、授權(quán)、保密性、完整性和不可否認(rèn),其中身份認(rèn)證是最基本最重要的環(huán)節(jié)。身份認(rèn)證的作用是保證在具體的決策環(huán)節(jié),體現(xiàn)客戶的真實(shí)意愿[8]。
通常,身份認(rèn)證有三個(gè)要素:
1)所知:things only the user knows,如密碼、安保問(wèn)題;
2)所有:things only the user has,如手機(jī)校驗(yàn)碼、U盾;
3)所是:things only the user is,如指紋、虹膜。
從密碼學(xué)角度上來(lái)說(shuō),使用上面兩者完成的驗(yàn)證稱為雙因素驗(yàn)證(Two Factor Authentication)[9]。在目前的網(wǎng)絡(luò)環(huán)境下,單獨(dú)使用以上單一認(rèn)證因素都會(huì)存在其問(wèn)題和風(fēng)險(xiǎn):
1)所知:容易被遺忘、猜取以及信息泄露導(dǎo)致的碰撞;
2)所有:容易被釣魚(yú)、丟失;
3)所是:認(rèn)證成本過(guò)高,本體容易受到攻擊。
這些認(rèn)證因素本身的安全性也有高低之分,由于獲取以及偽造的難度不同,一般認(rèn)為第一類的安全性比第二類差,第二類又比第三類差;但需要明確的是,如果只有其中一種都算是弱認(rèn)證,必須獨(dú)立使用兩種甚至三種才算是強(qiáng)認(rèn)證。二次認(rèn)證就是使用三類認(rèn)證中兩種以上的認(rèn)證方式,它能夠保證我們的支付認(rèn)證是安全有效的。
1.2 公共基礎(chǔ)設(shè)施
公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure, PKI)是由公開(kāi)密鑰密碼技術(shù)、數(shù)字證書(shū)、證書(shū)認(rèn)證機(jī)構(gòu)(Certification Authority, CA)和關(guān)于公開(kāi)密鑰的安全策略等基本成分共同組成的比較成熟、完善的網(wǎng)絡(luò)安全方案解決技術(shù)。其用公鑰的概念與技術(shù)來(lái)實(shí)現(xiàn),提供安全服務(wù)的具有普遍適用性的安全基礎(chǔ)設(shè)施,是一種遵循標(biāo)準(zhǔn)的密鑰管理平臺(tái),能夠?yàn)樗芯W(wǎng)絡(luò)應(yīng)用透明地提供采用加密和數(shù)字簽名等密碼服務(wù)所必需的密鑰和證書(shū)管理[10]。公鑰基礎(chǔ)設(shè)施在實(shí)際應(yīng)用上是一套軟硬件系統(tǒng)和安全策略的集合,它提供了一整套安全機(jī)制,使用戶在不知道對(duì)方身份或分布地很廣的情況下,以證書(shū)為基礎(chǔ),通過(guò)一系列的信任關(guān)系進(jìn)行安全的通信,如網(wǎng)絡(luò)通信、網(wǎng)上交易等都利用它來(lái)保證安全。
為了確保用戶的身份及他所持有密鑰的正確匹配,PKI/CA充當(dāng)了公開(kāi)密鑰系統(tǒng)所需要的一個(gè)權(quán)威的、可信賴的、公正的第三方機(jī)構(gòu)的認(rèn)證中心。CA認(rèn)證系統(tǒng)是PKI的核心組成部件,CA架構(gòu)包括PKI結(jié)構(gòu)、強(qiáng)度抗攻擊的公開(kāi)加解密算法、數(shù)字簽名技術(shù)、身份認(rèn)證技術(shù)、運(yùn)行安全管理技術(shù)、可靠的信任責(zé)任體系等。主要工具是CA中心為網(wǎng)上作業(yè)主體頒發(fā)的數(shù)字證書(shū),作用是檢查PKI體系中所有證書(shū)持有者身份的合法性,并簽發(fā)證書(shū)、更新證書(shū)和廢除發(fā)放的證書(shū),具有機(jī)密性、身份驗(yàn)證特性和不可否認(rèn)性,為信息安全提供了有效、可靠的保護(hù)機(jī)制。
1.3 加密算法
MD5是在MD4單向散列(Hash)函數(shù)基礎(chǔ)上更趨成熟的算法,MD表示消息摘要(Message Digest)[11]。整個(gè)散列算法的輸出結(jié)果由四個(gè)分組構(gòu)成,這四個(gè)分組的每一個(gè)分組都是32比特,并且這四分組級(jí)聯(lián)后將會(huì)產(chǎn)生一個(gè)散列值,這個(gè)散列值的長(zhǎng)度就是四個(gè)分組級(jí)聯(lián)后的長(zhǎng)度,即128比特,這個(gè)128比特的散列值被稱作消息摘要。
AES算法的加密與解密過(guò)程都有以下四種具體的操作:字節(jié)替代(SubBytes)、行移位(ShiftRow)、列混淆(MixColumns)和輪密鑰加(AddRoundKey)。在Rijdaeld加密過(guò)程中[12],每一輪進(jìn)行的處理都是從字節(jié)替代開(kāi)始,然后進(jìn)行行移位,接著進(jìn)行列混淆,最后是輪密鑰加的運(yùn)算;而解密過(guò)程分別為對(duì)應(yīng)的逆操作,即首先進(jìn)行輪密鑰加的運(yùn)算,然后是列混淆,接著是行移位,最后一步是字節(jié)替代。
RSA公開(kāi)密鑰密碼體制就是使用不同的加密密鑰與解密密鑰,是一種“由已知加密密鑰推導(dǎo)出解密密鑰在計(jì)算上是不可行的”密碼體制[13]。加密公式如下:
C=PEmodN
(1)
其中:C表示密文;P表示明文;E與N的組合就是公鑰,一般用(E,N)來(lái)表示,RSA的加密就是求“E次方的modN”,也就是說(shuō)RSA的密文是對(duì)代表明文的數(shù)字的E次方求modN的結(jié)果。解密公式如下:
P=CDmodN
再說(shuō)去醫(yī)院。中醫(yī)是我信賴的。這個(gè)基礎(chǔ),不是因?yàn)橹嗅t(yī)藥是國(guó)學(xué),而是我至今還相信,陰陽(yáng)平衡乃至內(nèi)宇宙所說(shuō)。因?yàn)椋澜缒酥梁泼斓奶?,從?lái)就是如此的遙遠(yuǎn)、博大和幽深,但它還是一個(gè)整體,這個(gè)星球,與我們,甚至與外星人等不可見(jiàn)的事物,從來(lái)也都是一種相互依存、生克制化的關(guān)系,盡管我們此時(shí)此刻還沒(méi)有和他們迎頭相遇?!饵S帝內(nèi)經(jīng)·素問(wèn)》中說(shuō):“陰陽(yáng)者,天地之道也,萬(wàn)物之綱紀(jì),變化之父母,生殺之本始,神明之府也,治病必求于本?!?/p>
(2)
其中D與N的組合就是私鑰,一般用(D,N)來(lái)表示,RSA的解密過(guò)程就是求“D次方的modN”,也即對(duì)表示密文的數(shù)字的D次方求modN就可以得到明文。
在RSA密碼體制中通常是先生成一對(duì)密鑰,其中的私有密鑰由客戶保存;另一個(gè)為公開(kāi)密鑰,可對(duì)外公開(kāi),甚至可在網(wǎng)絡(luò)服務(wù)器中注冊(cè)。
要保證支付的安全性就要建立安全的會(huì)話機(jī)制,然后在此基礎(chǔ)上完成支付過(guò)程。整個(gè)支付過(guò)程分為兩個(gè)階段:第一個(gè)階段是服務(wù)器與客戶端的相互認(rèn)證階段,這個(gè)階段使用的認(rèn)證方法是基于PKI的CA認(rèn)證;第二階段是支付階段,主要進(jìn)行相關(guān)的支付操作。需要說(shuō)明的是:本文方案中的密鑰對(duì)分別由客戶端與服務(wù)器端產(chǎn)生,因此CA證書(shū)的生成是分布式生產(chǎn),客戶端或服務(wù)器把各自公鑰傳給CA提出證書(shū)請(qǐng)求,如果請(qǐng)求通過(guò),CA生成證書(shū),并將證書(shū)公布在CA中心數(shù)據(jù)庫(kù)中[14]??蛻舳伺c服務(wù)器從CA數(shù)據(jù)庫(kù)中下載證書(shū),并在認(rèn)證階段通過(guò)驗(yàn)證數(shù)字證書(shū)來(lái)確認(rèn)對(duì)方身份的合法性,認(rèn)證工作完成以后就可以進(jìn)行相關(guān)的支付操作。本文方案中使用的符號(hào)定義如表1所示。
表1 相關(guān)符號(hào)描述Tab. 1 Description of related symbols
2.1 PKI/CA在線數(shù)字簽名認(rèn)證流程
2.1.1 CA系統(tǒng)組成
CA系統(tǒng)包括用戶的證書(shū)提交請(qǐng)求、證書(shū)申請(qǐng)審核、證書(shū)生成、證書(shū)發(fā)布與證書(shū)使用等流程。
本文方案中的密鑰對(duì)分別由客戶端與服務(wù)器端產(chǎn)生,具體過(guò)程如下:
1)證書(shū)申請(qǐng):客戶端連接到CA服務(wù)器,并把客戶的證書(shū)申請(qǐng)信息PKCS#10傳送給CA,CA把申請(qǐng)信息放到CA中心數(shù)據(jù)庫(kù)中,提交的申請(qǐng)中包含用戶公鑰和用戶標(biāo)識(shí)信息。
2)證書(shū)申請(qǐng)審核:CA管理員從CA數(shù)據(jù)庫(kù)中提取申請(qǐng)信息,然后進(jìn)行相應(yīng)操作(批準(zhǔn)或拒絕)。
3)證書(shū)生成:申請(qǐng)批準(zhǔn)后,CA服務(wù)器端則生成證書(shū),并且對(duì)證書(shū)進(jìn)行簽名后存儲(chǔ)到數(shù)據(jù)庫(kù)中,以便用戶下載。
4)證書(shū)發(fā)布:客戶端從證書(shū)數(shù)據(jù)庫(kù)獲得發(fā)布的證書(shū)并將它安裝在自己的本地證書(shū)存儲(chǔ)區(qū)中。
圖1 CA系統(tǒng)工作模型Fig. 1 Working model of CA system
2.1.2 身份認(rèn)證流程
數(shù)字簽名驗(yàn)證的原理是對(duì)原文作數(shù)字摘要和簽名并傳輸原文,然而傳輸?shù)脑囊话阋蟊C?,這就要求用數(shù)字信封的方法對(duì)原文進(jìn)行加密。數(shù)字簽名驗(yàn)證的基本工作原理是用對(duì)稱密鑰加密傳輸,而將對(duì)稱密鑰用接收方公鑰加密發(fā)送給對(duì)方;接收方收到數(shù)字信封后用自己的私鑰解密信封,并取出對(duì)稱密鑰解密得原文。傳統(tǒng)的數(shù)字認(rèn)證過(guò)程使用的混合加密機(jī)制是MD5、3DES、RSA[15],本文方案認(rèn)證過(guò)程使用的混合加密機(jī)制為MD5、AES、RSA。具體過(guò)程如下:
1)客戶端將從CA中心下載的X.509標(biāo)準(zhǔn)數(shù)字證書(shū)作為傳輸信息(包含用戶名、證書(shū)序列號(hào)、有效期以及用戶的身份標(biāo)識(shí)),經(jīng)過(guò)MD5運(yùn)算得到一個(gè)128比特的散列值,即為信息摘要MD。
2)客戶端通過(guò)RSA算法使用客戶私鑰CSK加密信息摘要MD得到數(shù)字簽名DS;把信息的明文、數(shù)字簽名DS以及客戶公鑰CPK三項(xiàng)內(nèi)容利用密鑰SK通過(guò)對(duì)稱加密算法AES加密得到密文信息E;使用在CA中心下載的服務(wù)器公鑰SPK加密對(duì)稱算法加密密鑰SK,形成數(shù)字信封DE;最后把加密后的密文信息E與數(shù)字信封DE一同發(fā)送給接收方服務(wù)器端。
3)服務(wù)器端接收到信息后首先使用服務(wù)器自身的服務(wù)器私鑰SSK解密數(shù)字信封DE得到對(duì)稱算法加密密鑰SK;接著使用密鑰SK解密接收到的加密信息E,解密后得到的是信息明文、數(shù)字簽名和用戶公鑰CPK;然后使用客戶公鑰CPK進(jìn)一步解密得到的數(shù)字簽名獲取信息摘要MD;同時(shí)將經(jīng)過(guò)解密的信息明文再用MD5函數(shù)進(jìn)行運(yùn)算,重新計(jì)算得到一個(gè)信息摘要MD′。比較MD與MD′是否相同,如果相同則表明傳送的信息沒(méi)有被篡改過(guò),通過(guò)提取證書(shū)信息可以進(jìn)行用戶身份確認(rèn),表明由此驗(yàn)證服務(wù)器和客戶終端之間建立了安全通道;否則拒絕確認(rèn),拒絕進(jìn)行相應(yīng)服務(wù)。
在整個(gè)認(rèn)證的過(guò)程中,用戶與服務(wù)器都分別持有自己的私鑰;而公鑰是公開(kāi)的,在認(rèn)證過(guò)程中可以在客戶端和服務(wù)器之間進(jìn)行傳輸,密鑰由加密算法函數(shù)分別生成。因此,攻擊者無(wú)法偽造和篡改經(jīng)過(guò)CA進(jìn)行認(rèn)證以后的數(shù)字簽名,進(jìn)而能夠建立高可信度的網(wǎng)絡(luò)安全保障體系,保證網(wǎng)絡(luò)不同實(shí)體之間傳輸信息的真實(shí)性、可靠性、保密性與不可否定性。在線認(rèn)證過(guò)程如圖2所示。
2.2 支付階段
1)在支付業(yè)務(wù)服務(wù)器和客戶終端進(jìn)行確認(rèn)建立安全通道后,登錄客戶端APP主界面,在主界面中選擇進(jìn)入支付頁(yè)面后客戶端的支付請(qǐng)求信息REQ調(diào)用服務(wù)器公鑰SPK加密,加密后的信息SPK(REQ)向支付業(yè)務(wù)服務(wù)器發(fā)送支付請(qǐng)求。
2)支付業(yè)務(wù)服務(wù)器接收到支付請(qǐng)求后,用服務(wù)器私鑰SSK解密提取支付請(qǐng)求中的支付信息,在確認(rèn)支付請(qǐng)求后,支付業(yè)務(wù)服務(wù)器生成驗(yàn)證碼VC,先用服務(wù)器端私鑰SSK加密驗(yàn)證碼得到一次密文驗(yàn)證碼SSK(VC),然后再用客戶端APP公鑰CPK加密得到二次密文驗(yàn)證碼CPK{SSK(VC)}。服務(wù)器將此二次密文驗(yàn)證碼通過(guò)短信發(fā)送給客戶端APP。
3)客戶從手機(jī)短信中得到二次密文驗(yàn)證碼CPK{SSK(VC)}之后,將它輸入客戶端APP??蛻舳薃PP用客戶端私鑰CSK解密二次密文驗(yàn)證碼CPK{SSK(VC)}得到一次密文驗(yàn)證碼SSK(VC),再用服務(wù)器端公鑰SPK解密得到原始驗(yàn)證碼VC。
4)客戶端APP用客戶私鑰CSK加密原始驗(yàn)證碼得到一次驗(yàn)證碼密文CSK(VC),然后用服務(wù)器端公鑰SPK加密一次密文得到二次密文SPK{CSK(VC)},最后將二次密文發(fā)送給服務(wù)器端。
5)支付業(yè)務(wù)服務(wù)器端用服務(wù)器私鑰解密二次密文SPK{CSK(VC)}得到一次驗(yàn)證碼密文CSK(VC),然后用客戶公鑰解密得到原始明文驗(yàn)證碼VC,服務(wù)器在對(duì)驗(yàn)證信息與服務(wù)器中存儲(chǔ)的原始驗(yàn)證碼匹配后,支付可以進(jìn)行。
需要指出:服務(wù)器端和客戶端APP的密鑰需要定期更新,也即CA中心的證書(shū)是有實(shí)效期的。服務(wù)器并不能獲取客戶的私有密鑰,這是為了保證數(shù)字簽名的安全性,否則服務(wù)器就可以偽造客戶簽名,導(dǎo)致支付出現(xiàn)問(wèn)題。支付階段驗(yàn)證碼加密過(guò)程如圖3所示。
圖2 客戶端與服務(wù)器認(rèn)證過(guò)程Fig. 2 Authentication process of client and server
2.3 預(yù)留信息驗(yàn)證
為了保證在更換移動(dòng)設(shè)備時(shí)依然能夠?qū)崿F(xiàn)安全驗(yàn)證,該方案需要在客戶注冊(cè)時(shí)進(jìn)行預(yù)留安全問(wèn)題設(shè)置。
1)在移動(dòng)設(shè)備第一次使用時(shí),應(yīng)用會(huì)獲取移動(dòng)設(shè)備信息發(fā)送給服務(wù)器,服務(wù)器將登記保存客戶的設(shè)備信息和客戶公鑰CPK。
2)用戶登錄賬號(hào)時(shí)客戶端APP會(huì)將獲取的當(dāng)前設(shè)備的設(shè)備信息和之前保存在服務(wù)器上的設(shè)備信息進(jìn)行比對(duì),如果相同則表明用戶沒(méi)有更換移動(dòng)設(shè)備,驗(yàn)證登錄信息后直接進(jìn)入應(yīng)用操作界面;如果比對(duì)結(jié)果不同,客戶端APP將轉(zhuǎn)向預(yù)留安全問(wèn)題頁(yè)面,預(yù)留安全問(wèn)題回答正確時(shí)確認(rèn)用戶合法,則重新生成客戶公鑰CPK與私鑰CSK并發(fā)送給服務(wù)器端進(jìn)行更新保存,客戶端APP可以正常使用。用戶如果在已安裝過(guò)客戶端APP的設(shè)備上重新安裝或者升級(jí)客戶端APP時(shí),會(huì)檢測(cè)當(dāng)前設(shè)備是否已安裝過(guò)此客戶端APP,如果已安裝過(guò),那么當(dāng)前安裝的客戶端APP將不再調(diào)用密鑰生成器重新生成客戶公鑰CPK與私鑰CSK。
3)如果是攻擊者竊取了密鑰,就會(huì)在自己的設(shè)備上登錄APP,無(wú)法正確回答預(yù)留安全問(wèn)題,身份驗(yàn)證失敗,客戶端APP默認(rèn)用戶非法,則無(wú)法使用客戶端APP。此時(shí)服務(wù)器端保存的客戶端公鑰維持不變,并記錄“密碼已泄漏”,當(dāng)合法用戶登錄客戶端后系統(tǒng)會(huì)提醒用戶有非法用戶已竊取了密碼,建議用戶修改密碼,從而使非法獲取用戶名、密碼的攻擊者無(wú)法再登錄,從而避免設(shè)備丟失造成損失問(wèn)題的發(fā)生。
圖3 支付階段驗(yàn)證碼加密驗(yàn)證過(guò)程Fig. 3 Encryption and verification process of verification code in payment
本文提出的基于短信驗(yàn)證碼的移動(dòng)支付解決方案,首先能夠有效防止非法客戶的欺騙,具體體現(xiàn)在:
1)在用戶身份驗(yàn)證方面,除了用戶要自身持有用戶名和密碼之外,在登錄客戶端時(shí)服務(wù)器端會(huì)和客戶端進(jìn)行在線數(shù)字驗(yàn)證,通過(guò)驗(yàn)證后會(huì)建立安全通道,保證支付的順利進(jìn)行。在驗(yàn)證的過(guò)程中服務(wù)器會(huì)保存客戶端傳遞的客戶公鑰,并且服務(wù)器會(huì)通過(guò)數(shù)字簽名驗(yàn)證客戶的可信度,從而使非法客戶無(wú)法通過(guò)驗(yàn)證,進(jìn)而無(wú)法繼續(xù)支付操作。同時(shí)本文方案采取了預(yù)留信息驗(yàn)證的方式,用戶在第一次使用客戶端進(jìn)行信息注冊(cè)時(shí),系統(tǒng)會(huì)要求用戶填寫(xiě)并提交驗(yàn)證信息,同時(shí)獲取移動(dòng)端設(shè)備的相關(guān)信息,這些驗(yàn)證信息會(huì)在服務(wù)器上進(jìn)行保存。當(dāng)用戶使用的通信手機(jī)卡被發(fā)動(dòng)了補(bǔ)卡攻擊,造成當(dāng)前使用的手機(jī)卡失效,非法用戶使用另外的移動(dòng)設(shè)備安裝客戶端APP并與驗(yàn)證服務(wù)器進(jìn)行驗(yàn)證時(shí),服務(wù)器發(fā)現(xiàn)客戶端的移動(dòng)設(shè)備信息比對(duì)錯(cuò)誤,就需要進(jìn)一步驗(yàn)證用戶的安全信息,通過(guò)安全驗(yàn)證信息之后用戶才能正常使用客戶端,避免了補(bǔ)卡攻擊導(dǎo)致財(cái)產(chǎn)損失情況的發(fā)生。
2)在數(shù)據(jù)通信方面,本文方案的數(shù)字認(rèn)證階段采用MD5的散列函數(shù)算法獲取信息摘要,保證了傳輸信息的完整性;并且對(duì)要傳輸?shù)男畔⑹褂玫氖菍?duì)稱加密算法AES,降低了信息被竊取破解的風(fēng)險(xiǎn);而在此過(guò)程中對(duì)稱密鑰的傳輸則使用公開(kāi)密鑰算法RSA進(jìn)行加密,使得對(duì)稱密鑰在傳輸過(guò)程中有了更加安全的防護(hù),從而保證了在整個(gè)認(rèn)證過(guò)程中重要信息的安全。而在第二階段的支付過(guò)程對(duì)支付業(yè)務(wù)處理服務(wù)器和移動(dòng)客戶端之間的支付通信信息加入的公開(kāi)密鑰算法的兩次加密防護(hù),又保證了支付驗(yàn)證的相關(guān)信息不被輕易泄露或盜取,有效杜絕了傳統(tǒng)短信消息在傳送和接收過(guò)程中未加密而出現(xiàn)的各種潛在風(fēng)險(xiǎn),對(duì)于無(wú)線監(jiān)聽(tīng)等攻擊行為起到了相應(yīng)的防護(hù)作用。本文方案的驗(yàn)證碼在服務(wù)器和客戶端直接進(jìn)行傳遞時(shí),都需要經(jīng)過(guò)兩次加密,首先使用對(duì)方的公鑰加密驗(yàn)證碼,接著使用自身的私鑰對(duì)加密信息進(jìn)行簽名,這樣服務(wù)器或客戶端接收到驗(yàn)證碼以后需要使用對(duì)方的公鑰進(jìn)行簽名驗(yàn)證,之后再用自身的私鑰解密信息來(lái)得到原始驗(yàn)證碼。這樣以密文方式傳遞,即使在信道內(nèi)被竊取或是被偽基站截獲也無(wú)法識(shí)別內(nèi)容,必須要使用私鑰解密后才能轉(zhuǎn)換成明文。但是客戶私鑰與服務(wù)器私鑰都由其自身保管,并不公開(kāi),是嚴(yán)格保密的,攻擊者無(wú)法獲取。因此即使由短信木馬病毒造成驗(yàn)證碼密文泄漏,攻擊者也不能獲取驗(yàn)證碼,更不可能完成支付,從而保證了資金的安全。
該實(shí)驗(yàn)服務(wù)器端的處理器采用AMD AthlonTM X4 750 Processor 3.40 GHz,4 GB內(nèi)存;操作系統(tǒng)為64位Windows 7;編程基于Eclipse Mars(JDK1.7開(kāi)發(fā)包)平臺(tái),并配置Android SDK開(kāi)發(fā)包,客戶端性能測(cè)試工具HyperPacer。
圖4表示的是不同用戶訪問(wèn)情況下,客戶端登錄賬戶后與服務(wù)器之間進(jìn)行認(rèn)證的響應(yīng)時(shí)間情況。其中:橫坐標(biāo)表示的是用戶訪問(wèn)數(shù)(即移動(dòng)終端數(shù));縱坐標(biāo)表示的是數(shù)字認(rèn)證方案加密主要信息使用不同加密算法后,用戶登錄認(rèn)證系統(tǒng)的平均響應(yīng)時(shí)間。由對(duì)比結(jié)果可以看出,雖然兩種方案的響應(yīng)時(shí)間整體增長(zhǎng)趨勢(shì)是相似的,但使用AES加密的方案整體時(shí)間要比3DES加密的方案短。這表明AES算法在整體安全性及時(shí)間效率上均優(yōu)于3DES算法,因此本文認(rèn)證方案中選擇使用AES算法是具有一定的優(yōu)勢(shì)的。
圖4 數(shù)字認(rèn)證不同加密方案的平均認(rèn)證響應(yīng)時(shí)間Fig. 4 Average authentication response time required for different encryption schemes
圖5表示的是加密不同位數(shù)驗(yàn)證碼的平均加密時(shí)間。根據(jù)日常使用的習(xí)慣,實(shí)驗(yàn)分別使用的是:2位、4位、6字以及8位數(shù)字的長(zhǎng)度。其中:橫坐標(biāo)表示的是用戶使用移動(dòng)端的并發(fā)訪問(wèn)數(shù)量(即移動(dòng)終端數(shù)量),縱坐標(biāo)表示的是實(shí)驗(yàn)中用RSA加密所花費(fèi)的平均反應(yīng)時(shí)間。從圖中可以看出,RSA算法加密這些數(shù)字的時(shí)間隨著并發(fā)請(qǐng)求的增多呈線性增長(zhǎng)趨勢(shì),但由于被加密文件的信息容量比較小,所以平均加密時(shí)間的整個(gè)增長(zhǎng)趨勢(shì)并不明顯。由此表明使用本文選定長(zhǎng)度的密鑰進(jìn)行RSA算法加密用在短信息加密上并不會(huì)影響系統(tǒng)效率。而解密時(shí)間比加密的平均時(shí)間略低,解密這四種不同位數(shù)驗(yàn)證碼的圖形走勢(shì)與加密整體上沒(méi)有太大的差別,都是呈線性關(guān)系。
圖5 RSA對(duì)不同位數(shù)驗(yàn)證碼的平均加密時(shí)間Fig. 5 Average encryption time required for RSA to encrypt different digits of verification code
圖6表示的是使用商用短信發(fā)送接口從系統(tǒng)響應(yīng)支付請(qǐng)求后生成驗(yàn)證碼到調(diào)用短信發(fā)送接口發(fā)送驗(yàn)證碼直至用戶收到驗(yàn)證碼的等待平均時(shí)間。其中:橫坐標(biāo)表示的是用戶使用移動(dòng)端的并發(fā)用戶的訪問(wèn)量,縱坐標(biāo)表示的是服務(wù)器響應(yīng)客戶端支付請(qǐng)求到客戶端接收信息的總時(shí)間。圖中3條曲線分別代表的是服務(wù)器未加密驗(yàn)證碼調(diào)用Mob接口(記為Mob)、服務(wù)器未加密驗(yàn)證碼調(diào)用Juhe接口(記為Juhe)以及服務(wù)器加密驗(yàn)證碼調(diào)用Mob接口(記為Eycrypted Mob)的用戶響應(yīng)總時(shí)間,之所以在加密后調(diào)用Mob接口發(fā)送短信,是因?yàn)镸ob接口的整體表現(xiàn)要優(yōu)于Juhe接口。從圖可以看出,隨著用戶訪問(wèn)量的增加,使用不同接口的系統(tǒng)平均響應(yīng)時(shí)間也在逐漸增加,并隨著并發(fā)訪問(wèn)量的增加而相應(yīng)增大,但是整個(gè)增長(zhǎng)過(guò)程是線性的,其增長(zhǎng)速度也不快,因此不會(huì)出現(xiàn)系統(tǒng)性能隨著用戶數(shù)量的增長(zhǎng)而急劇下降的現(xiàn)象,這表明系統(tǒng)在大量用戶同時(shí)進(jìn)行訪問(wèn)時(shí),系統(tǒng)的健壯性表現(xiàn)較好。
圖6 系統(tǒng)平均響應(yīng)時(shí)間-移動(dòng)端并發(fā)訪問(wèn)量Fig. 6 Average response time of the system v.s. concurrent access of mobile terminal
針對(duì)使用短信驗(yàn)證碼作為支付驗(yàn)證方式的解決方案在驗(yàn)證碼傳輸過(guò)程中以及在運(yùn)營(yíng)商的服務(wù)器上沒(méi)有經(jīng)過(guò)加密,容易被盜取等問(wèn)題,本文把加密算法引入到了短信傳輸?shù)娜^(guò)程。本文方案是對(duì)傳統(tǒng)的PKI驗(yàn)證使用的混合加密機(jī)制進(jìn)行改進(jìn),其中的對(duì)稱密鑰算法用AES替換3DES,可以保證更好的安全性和更高的效率。另外對(duì)于短信驗(yàn)證碼進(jìn)行二次加密,驗(yàn)證碼以密文方式傳遞,必須使用客戶私鑰解密后才能轉(zhuǎn)換成明文,這使得即使驗(yàn)證碼密文泄露,也能夠較好地保護(hù)用戶資金的安全。仿真實(shí)驗(yàn)結(jié)果表明,本文提出的基于加密短信驗(yàn)證碼的移動(dòng)安全支付方案能夠保證短信驗(yàn)證碼的加密傳輸,同時(shí)在性能上與未加密驗(yàn)證碼驗(yàn)證的支付方案無(wú)明顯差異,很好地解決了短信驗(yàn)證碼明文傳輸存在的問(wèn)題。
本文方案中的雙因素身份驗(yàn)證是加密的短信驗(yàn)證碼和用戶賬戶密碼,如果用戶的手機(jī)丟失,那么用戶手機(jī)的獲取者在沒(méi)有獲取用戶支付賬號(hào)和密碼的情況下無(wú)法完成系統(tǒng)登錄進(jìn)而也無(wú)法向服務(wù)器提交支付請(qǐng)求以及獲取驗(yàn)證碼。同樣,如果非法用戶獲取了用戶的支付賬戶密碼,在沒(méi)有獲取用戶手機(jī)的情況下,一旦向服務(wù)器提交支付請(qǐng)求,支付驗(yàn)證碼就會(huì)發(fā)送到用戶手機(jī)上,使用戶意識(shí)到賬戶被盜的可能。但如果同時(shí)獲取到用戶的支付賬號(hào)、密碼和用戶手機(jī),也即兩種驗(yàn)證因素都泄露的情況下,非法用戶獲取了所有用戶的身份驗(yàn)證因素,那么非法用戶就可以完全冒充用戶進(jìn)行支付操作,這種方案的安全性防護(hù)就會(huì)失效。同樣地,對(duì)于使用多因素身份驗(yàn)證方案來(lái)說(shuō),如果用戶多種驗(yàn)證因素都泄露,也無(wú)法起到保護(hù)用戶賬戶安全的作用。因此除了技術(shù)手段保證用戶賬戶安全以外,用戶自身也要養(yǎng)成保護(hù)重要隱私信息的意識(shí)。
本文提出的基于加密短信驗(yàn)證碼的移動(dòng)安全支付方案還可以更加完善,而且其他更多關(guān)于移動(dòng)支付多因素認(rèn)證的關(guān)鍵技術(shù)也可以運(yùn)用到支付驗(yàn)證過(guò)程中,如生物信息驗(yàn)證和臉部識(shí)別等。此外采取多因素驗(yàn)證能在原有驗(yàn)證基礎(chǔ)上對(duì)重要信息起到更好的防護(hù),但當(dāng)驗(yàn)證因素比較多時(shí)對(duì)保管驗(yàn)證信息也將是巨大的挑戰(zhàn),因此,對(duì)于驗(yàn)證安全信息的管理優(yōu)化問(wèn)題也需要進(jìn)行深入的研究。
References)
[1] 中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心.第37次中國(guó)互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計(jì)報(bào)告報(bào)告[R]. 北京: 中國(guó)互聯(lián)網(wǎng)絡(luò)信息中心,2016. (China Internet Network Information Center. The 37th China Internet Development Statistics Report [R]. Beijing: CNNIC, 2016.)
[2] 李海飛.移動(dòng)支付中的安全協(xié)議研究[D].西安:西安電子科技大學(xué),2014:7-13. (LI H F. Research on security protocol in mobile payment [D]. Xi’an: Xidian University, 2014: 7-13.)
[3] DAHLBERG T, GUO J, ONDRUS J. A critical review of mobile payment research [J]. Journal of Electronic Commerce Research and Applications, 2015, 14(5): 265-284.
[4] 楊晨,楊建軍.移動(dòng)支付安全保障技術(shù)體系研究[J].信息技術(shù)與標(biāo)準(zhǔn)化,2010(7):17-20. (YANG C, YANG J J. Research on the technical system and standardization of security assurance for mobile payment [J]. Information Technology & Standardization, 2010(7): 17-20.)
[5] XU Z, ZHANG T, ZENG Y, et al. A secure mobile payment framework based on face authentication[C]// IMECS2015: Proceedings of the 2015 International MultiConference of Engineers and Computer Scientists, LNCS 2215. Berlin: Springer-Verlag, 2015, 1: 495-501.
[6] 白璐.信息技術(shù)對(duì)我國(guó)商業(yè)銀行創(chuàng)新的影響研究[D].長(zhǎng)春:吉林大學(xué),2013:13-17. (BAI L. Research on the influence of information technology on the innovation of China’s commercial banks [D]. Changchun: Jilin University, 2013: 13-17.)
[7] 周曉誼,姚孝明,李益紅.互聯(lián)網(wǎng)金融存在的安全問(wèn)題亟待解決——以移動(dòng)遠(yuǎn)程支付APP為例[J].信息安全與技術(shù),2014,5(10):8-12. (ZHOU X Y, YAO X M, LI Y H. Security problems of Internet finance urge solutions — an example of remote payment APPs on mobile devices [J]. Information Security and Technology, 2014, 5(10): 8-12.)
[8] 馮韻.移動(dòng)支付中身份認(rèn)證分析與研究[J].信息通信,2012(3):107-109. (FENG Y. Analysis and research of identity authentication in mobile payment [J]. Journal of Information Communication,2012(3): 107-109.)[9] 曹巍,趙滟.一種基于雙因素認(rèn)證的移動(dòng)支付安全技術(shù)研究[J].信息安全與技術(shù),2014,5(2):10-12,15. (CAO W, ZHAO Y. Research on the technology of mobile payment security based on two-factor authentication [J]. Information Security and Technology,2014, 5(2): 10-12,15.)
[10] WARD H, GREENWALD G E, SHANAHAN F A. Systems and methods for remote authorization of financial transactions using Public Key Infrastructure (PKI): US, 9462473 [P]. 2016- 10- 04.
[11] 張裔智,趙毅,湯小斌.MD5 算法研究[J].計(jì)算機(jī)科學(xué),2008,35(7):295-297. (ZHANG Y Z, ZHAO Y, TANG X B. Research on MD5 algorithm [J]. Computer Science, 2008, 35(7): 295-297.)
[12] DAEMEN J, RIJMEN V.高級(jí)加密標(biāo)準(zhǔn)(AES)算法:Rijndael的設(shè)計(jì)[M].谷大武,徐勝波,譯.北京:清華大學(xué)出版社,2003:9-52. (DAEMEN J, RIJMEN V. The Design of Rijndael AES: The Advanced Encryption Standard [M].GU D W,XU S B, translated. Beijing: Tsinghua University Press, 2003: 9-52.)
[13] 王茜,倪建偉.一種基于RSA的加密算法[J].重慶大學(xué)學(xué)報(bào)(自然科學(xué)版),2005,28(1):68-72. (WANG Q, NI J W. An RSA based encryption algorithm[J]. Journal of Chongqing University (Natural Science Edition), 2005, 28(1): 68-72.)
[14] 周曉斌,許勇,張凌.一種開(kāi)放式PKI身份認(rèn)證模型的研究[J].國(guó)防科技大學(xué)學(xué)報(bào),2013,35(1):169-174. (ZHOU X B, XU Y, ZHANG L. Research on an open PKI identity authentication model [J]. Journal of National University of Defense Technology, 2013, 35(1): 169-174.)
[15] 肖振久,胡馳,姜正濤,等.AES與RSA算法優(yōu)化及其混合加密體制[J].計(jì)算機(jī)應(yīng)用研究,2014,31(4):1189-1194. (XIAO Z J,HU C,JIANG Z T et al. AES and RSA algorithm optimization and its hybrid encryption system [J]. Application Research of Computers, 2014, 31(4): 1189-1194.)
This work is partially supported by the National Natural Science Foundation of China (61472412), the Education Department Natural Science Foundation of Henan Province (14A520012).
LISai, born in 1989, M. S. candidate. His research interests include mobile computing, mobile security.
LIXiaoyu, born in 1974, Ph. D.,associate professor. His research interests include quantum computing and quantum information, mobile computing.
MobilesecurepaymentsolutionbasedonencryptedSMSverificationcode
LI Sai, LI Xiaoyu*
(SchoolofInformationEngineering,ZhengzhouUniversity,ZhengzhouHenan450001,China)
Aiming at the problem that payment verification code is easy to leak during the process of mobile payment, a two-factor mobile payment solution based on encrypted SMS was proposed. Based on the public key system, the Public Key Infrastructure/Certification Authority (PKI/CA) authentication method was used to authenticate the server and the client online, and the registered user name, password and encrypted transaction verification SMS were used to ensure that even if the verification code ciphertext was leaked, the attacker can not obtain the verification code, thus eliminating the risk of theft caused by the verification code leakage. The simulation results show that the response time of the encrypted verification solution using the SMS interface is not very different from the unencrypted solution, and the growth trend is consistent with that of the unencrypted solution and increases linearly with the increase of the user access, which can take into account both of security and effectiveness of the system.
mobile payment; SMS verification code; two factor authentication; Public Key Infrastructure/Certification Authority (PKI/CA); encryption algorithm
TP309.2; TP393.08
A
2017- 02- 10;
2017- 04- 22。
國(guó)家自然科學(xué)基金資助項(xiàng)目(61472412);河南省教育廳自然科學(xué)基金資助項(xiàng)目(14A520012)。
李賽(1989—),男,河南永城人,碩士研究生,主要研究方向:移動(dòng)計(jì)算、移動(dòng)安全; 李曉宇(1974—),男,河南南陽(yáng)人,副教授,博士,CCF會(huì)員,主要研究方向:量子計(jì)算與量子信息、移動(dòng)計(jì)算。
1001- 9081(2017)08- 2270- 05
10.11772/j.issn.1001- 9081.2017.08.2270