基于nfc支付的身份認(rèn)證方法及裝置的制造方法
【專利摘要】本發(fā)明實施例公開了一種基于NFC支付的身份認(rèn)證方法,包括:生成第一密鑰并緩存,向支付網(wǎng)關(guān)發(fā)送身份認(rèn)證請求,所述身份認(rèn)證請求中攜帶所述第一密鑰;接收支付網(wǎng)關(guān)返回的第二密鑰,根據(jù)預(yù)設(shè)的哈希算法以所述第一密鑰和所述第二密鑰為輸入生成第一哈希密鑰;將所述第一哈希密鑰發(fā)送至所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)對所述第一哈希密鑰進行驗證,根據(jù)所述第一哈希密鑰是否通過驗證確定身份認(rèn)證是否通過;接收所述支付網(wǎng)關(guān)返回的身份認(rèn)證響應(yīng)。此外,本發(fā)明實施例還公開了一種基于NFC支付的用戶身份認(rèn)證裝置。采用本發(fā)明,可提高用戶在使用移動終端的NFC功能進行支付的安全性。
【專利說明】
基于NFC支付的身份認(rèn)證方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明涉及計算機技術(shù)領(lǐng)域,尤其涉及一種基于NFC支付的身份認(rèn)證方法及裝置。
【背景技術(shù)】
[0002]NFC(Near Field Communicat1n,近場通訊或近距離無線通訊),是一種短距離的高頻無線通信技術(shù),隨著智能手機等移動消費電子產(chǎn)品的普及,能耗低、數(shù)據(jù)傳輸速度快的NFC系統(tǒng)在移動支付、電子身份認(rèn)證、電子車票等領(lǐng)域得到廣泛的應(yīng)用,用戶可以憑借其具有NFC功能(即具有NFC模塊)的移動電話或者智能手表等用戶移動設(shè)備實現(xiàn)移動支付。
[0003]在利用NFC來實現(xiàn)移動支付(如手機移動支付)的過程中,通常并不需要移動電子設(shè)備接入網(wǎng)絡(luò),移動電子設(shè)備通過NFC射頻通道與P0S(point of sale,銷售點)設(shè)備或者自動售貨機等收費終端設(shè)備進行本地通訊,由收費終端設(shè)備與網(wǎng)絡(luò)側(cè)進行信息交互,以實現(xiàn)消費目的。
[0004]但是上述基于NFC的支付方式,在支付的過程中,沒有對用戶身份以及當(dāng)前的交易現(xiàn)場是否安全,在收款終端存在病毒的情況下,很可能造成用戶在不知情的情況下被盜刷,也就是說,上述基于NFC的移動支付方式存在安全性不足的技術(shù)問題。
【發(fā)明內(nèi)容】
[0005]基于此,為解決傳統(tǒng)技術(shù)中的基于NFC的移動支付方式在支付的過程中因為沒有對交易環(huán)境進行安全驗證而存在的安全性不足的技術(shù)問題,特提出了一種基于NFC支付的身份認(rèn)證方法。
[0006]一種基于NFC支付的身份認(rèn)證方法,包括:
[0007]生成第一密鑰并緩存,向支付網(wǎng)關(guān)發(fā)送身份認(rèn)證請求,所述身份認(rèn)證請求中攜帶所述第一密鑰;
[0008]接收支付網(wǎng)關(guān)返回的第二密鑰,根據(jù)預(yù)設(shè)的哈希算法以所述第一密鑰和所述第二密鑰為輸入生成第一哈希密鑰;
[0009]將所述第一哈希密鑰發(fā)送至所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)對所述第一哈希密鑰進行驗證,根據(jù)所述第一哈希密鑰是否通過驗證確定所述身份認(rèn)證是否通過;
[0010]接收所述支付網(wǎng)關(guān)返回的身份認(rèn)證響應(yīng)。
[0011]可選的,在其中一個實施例中,所述身份認(rèn)證請求中還攜帶有發(fā)送所述身份認(rèn)證請求時的時間戳,所述支付網(wǎng)關(guān)還根據(jù)所述時間戳判斷所述身份認(rèn)證請求是否超時,在未超時返回所述第二密鑰。
[0012]可選的,在其中一個實施例中,所述由所述支付網(wǎng)關(guān)對所述第一哈希密鑰進行驗證具體為:所述支付網(wǎng)關(guān)根據(jù)預(yù)設(shè)的哈希算法以所述第二密鑰和所述第一密鑰為輸入生成第二哈希密鑰,所述支付網(wǎng)關(guān)判斷所述第一哈希密鑰是否與所述第二哈希密鑰匹配,若是,則判定所述第一哈希密鑰通過驗證。
[0013]可選的,在其中一個實施例中,所述接收所述支付網(wǎng)關(guān)返回的身份認(rèn)證響應(yīng)之后還包括:
[0014]在身份認(rèn)證成功時,生成交易請求并發(fā)送給所述支付網(wǎng)關(guān);
[0015]接收支付網(wǎng)關(guān)返回的加密后的第一交易信息并解密,獲取解密后的第二交易信息;
[0016]根據(jù)預(yù)設(shè)的加密算法對所述第二交易信息進行加密得到加密摘要;
[0017]將所述加密摘要發(fā)送給所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)判斷所述加密摘要是否通過安全驗證,若是,則執(zhí)行與所述交易請求對應(yīng)的交易;
[0018]接收所述支付網(wǎng)關(guān)返回的交易請求響應(yīng)。
[0019]可選的,在其中一個實施例中,所述根據(jù)預(yù)設(shè)的加密算法對所述第二交易信息進行加密得到加密摘要具體為:
[0020]根據(jù)預(yù)設(shè)的哈希算法以所述第一哈希密鑰和所述第二交易信息為輸入生成第三哈希密鑰;
[0021 ]根據(jù)預(yù)設(shè)的數(shù)字簽名算法和第三密鑰對所述第三哈希密鑰進行數(shù)字簽名;
[0022]根據(jù)預(yù)設(shè)的非對稱加密算法和第四密鑰對所述數(shù)字簽名后的第三哈希密鑰進行加密,獲取加密結(jié)果作為所述加密摘要。
[0023]此外,為解決傳統(tǒng)技術(shù)中的基于NFC的移動支付方式在支付的過程中因為沒有對交易環(huán)境進行安全驗證而存在的安全性不足的技術(shù)問題,還提出了一種基于NFC支付的用戶身份認(rèn)證裝置。
[0024]一種基于NFC支付的用戶身份認(rèn)證裝置,包括:
[0025]身份認(rèn)證請求發(fā)送模塊,用于生成第一密鑰并緩存,向支付網(wǎng)關(guān)發(fā)送身份認(rèn)證請求,所述身份認(rèn)證請求中攜帶所述第一密鑰;
[0026]第一哈希密鑰生成模塊,用于接收支付網(wǎng)關(guān)返回的第二密鑰,根據(jù)預(yù)設(shè)的哈希算法以所述第一密鑰和所述第二密鑰為輸入生成第一哈希密鑰;
[0027]第一哈希密鑰匹配模塊,用于將所述第一哈希密鑰發(fā)送至所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)對所述第一哈希密鑰進行驗證,根據(jù)所述第一哈希密鑰是否通過驗證確定所述身份認(rèn)證是否通過;
[0028]身份認(rèn)證結(jié)果接收模塊,用于接收所述支付網(wǎng)關(guān)返回的身份認(rèn)證響應(yīng)。
[0029]可選的,在其中一個實施例中,所述身份認(rèn)證請求中還攜帶有發(fā)送所述身份認(rèn)證請求時的時間戳,所述支付網(wǎng)關(guān)還根據(jù)所述時間戳判斷所述身份認(rèn)證請求是否超時,在未超時返回所述第二密鑰。
[0030]可選的,在其中一個實施例中,所述支付網(wǎng)關(guān)根據(jù)預(yù)設(shè)的哈希算法以所述第二密鑰和所述第一密鑰為輸入生成第二哈希密鑰,所述支付網(wǎng)關(guān)判斷所述第一哈希密鑰是否與所述第二哈希密鑰匹配,若是,則判定所述第一哈希密鑰通過驗證。
[0031 ]可選的,在其中一個實施例中,所述裝置還包括:
[0032]交易請求生成模塊,用于在身份認(rèn)證成功時,生成交易請求并發(fā)送給所述支付網(wǎng)關(guān);
[0033]交易信息獲取模塊,用于接收支付網(wǎng)關(guān)返回的加密后的第一交易信息并解密,獲取解密后的第二交易信息;
[0034]加密摘要獲取模塊,用于根據(jù)預(yù)設(shè)的加密算法對所述第二交易信息進行加密得到加密摘要;
[0035]加密摘要發(fā)送模塊,用于將所述加密摘要發(fā)送給所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)判斷所述加密摘要是否通過安全驗證,若是,則執(zhí)行與所述交易請求對應(yīng)的交易;
[0036]交易請求響應(yīng)接收模塊,用于接收所述支付網(wǎng)關(guān)返回的交易請求響應(yīng)。
[0037]可選的,在其中一個實施例中,所述加密摘要獲取模塊還用于根據(jù)預(yù)設(shè)的哈希算法以所述第一哈希密鑰和所述第二交易信息為輸入生成第三哈希密鑰;根據(jù)預(yù)設(shè)的數(shù)字簽名算法和第三密鑰對所述第三哈希密鑰進行數(shù)字簽名;根據(jù)預(yù)設(shè)的非對稱加密算法和第四密鑰對所述數(shù)字簽名后的第三哈希密鑰進行加密,獲取加密結(jié)果作為所述加密摘要。
[0038]實施本發(fā)明實施例,將具有如下有益效果:
[0039]采用了上述基于NFC支付的身份認(rèn)證方法和裝置之后,在用戶使用移動終端進行NFC支付時,通過對用戶身份的驗證,保證了在支付過程中用戶身份的合法性,提高了基于NFC的移動支付的安全性,保證了用戶的資金安全,提升了用戶體驗。
【附圖說明】
[0040]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0041 ]其中:
[0042]圖1為一個實施例中一種基于NFC支付的身份認(rèn)證方法的流程示意圖;
[0043]圖2為一個實施例中一種基于NFC支付的身份認(rèn)證的交互過程示意圖;
[0044]圖3為一個實施例中一種基于NFC支付的交易環(huán)境安全驗證方法的流程示意圖;
[0045]圖4為一個實施例中一種基于NFC支付的交易環(huán)境安全驗證的交互過程示意圖;
[0046]圖5為一個實施例中一種基于NFC支付的用戶身份認(rèn)證裝置的結(jié)構(gòu)示意圖;
[0047]圖6為一個實施例中運行前述基于NFC支付的身份認(rèn)證方法的計算機設(shè)備的結(jié)構(gòu)示意圖。
【具體實施方式】
[0048]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例。基于本發(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員在沒有作出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0049]為解決傳統(tǒng)技術(shù)中的基于NFC的移動支付方式在支付的過程中因為沒有對交易環(huán)境進行安全驗證而存在的安全性不足的技術(shù)問題,在本實施例中,特提出了一種基于NFC支付的身份認(rèn)證方法,該方法的實現(xiàn)可依賴于計算機程序,該計算機程序可運行于基于馮諾依曼體系的計算機系統(tǒng)之上,該計算機程序可以是基NFC的移動支付應(yīng)用。該計算機系統(tǒng)可以是運行上述計算機程序的智能手機、平板電腦等終端設(shè)備。
[0050]需要說明的是,在本實施例中,上述終端設(shè)備是集成了NFC模塊的終端,也就是說,該終端是具有NFC功能的終端,用戶可以利用該終端的NFC功能進行移動支付。具體的,NFC(Near Field Communicat1n,近場通訊或近距離無線通訊),是一種短距離的高頻無線通信技術(shù),用戶可以憑借具有NFC功能(即具有NFC模塊)的移動電話或者智能手表等用戶移動設(shè)備實現(xiàn)移動支付。在利用NFC來實現(xiàn)移動支付(如手機移動支付)的過程中,通常并不需要移動電子設(shè)備接入網(wǎng)絡(luò),移動電子設(shè)備通過NFC射頻通道與POS(point of sale,銷售點)設(shè)備或者自動售貨機等收費終端設(shè)備進行本地通訊,由收費終端設(shè)備與支付網(wǎng)關(guān)進行信息交互,以實現(xiàn)消費目的。
[0051 ]也就是說,移動終端通過收費終端實現(xiàn)與支付網(wǎng)關(guān)之間的信息交互。在本實施例中,下述移動終端與支付網(wǎng)關(guān)之間的信息交互(例如移動終端發(fā)送支付請求給支付網(wǎng)關(guān))指的是移動終端通過NFC近場通訊將需要發(fā)送的消息發(fā)送給收費終端,收費終端將接收到的消息轉(zhuǎn)發(fā)給支付網(wǎng)關(guān),以實現(xiàn)消息的傳遞,例如,上述移動終端發(fā)送支付請求給支付網(wǎng)關(guān)的過程可以是,移動終端將支付請求通過NFC近場通訊發(fā)送給收費終端,收費終端在接收到移動終端發(fā)送的支付請求之后,將該支付請求發(fā)送給支付網(wǎng)關(guān),從而使得移動終端發(fā)送的支付請求得以順利被支付網(wǎng)關(guān)接收到。
[0052]需要說明的是,在本實施例中,移動終端可以是集成了eS頂卡的終端設(shè)備,即終端中的SIM卡為eSIM卡,相對于傳統(tǒng)技術(shù)中移動終端常用的SIM卡(Subscriber IdentityModule,客戶識別模塊)來講,eS頂卡是將傳統(tǒng)S頂卡直接嵌入到設(shè)備芯片上,而不是作為獨立的可移除零部件加入設(shè)備中。也就是說,eS頂卡會集成在手機上,用戶無法進行拆卸。但是用戶在使用eSIM卡時,用戶的身份識別模塊允許用戶根據(jù)自己的需要選擇運營商,并允許用戶在任意時間任意切換。這一做法將允許用戶更加靈活的選擇運營商套餐,或者在無需解鎖設(shè)備、購買新設(shè)備的前提下隨時更換運營商,為普通消費者、企業(yè)用戶節(jié)省更多移動設(shè)備使用成本,并帶來更多的便利、安全性。也就是說,在本實施例中,可以將NFC支付過程中需要的加解密運算函數(shù)存儲到eS頂卡的安全存儲區(qū)域中,即利用eS頂?shù)陌踩用軝C制進一步的提高NFC支付過程中的安全性。
[0053]當(dāng)然,本發(fā)明所指的NFC支付過程的完成也可以是基于傳統(tǒng)SM卡的移動終端,只是基于eSIM卡與傳統(tǒng)SIM的安全機制的不同,eSIM卡對應(yīng)的移動終端的安全性會高于傳統(tǒng)S頂卡的移動終端。
[0054]在下述的【具體實施方式】中,以eS頂卡的移動終端為例,說明移動終端中基于NFC的移動支付過程以及在該支付過程中的用戶身份認(rèn)證過程等。
[0055]具體的,如圖1所示,上述基于NFC支付的用戶身份認(rèn)證方法包括如下步驟:
[0056]步驟S102:生成第一密鑰并緩存,向支付網(wǎng)關(guān)發(fā)送身份認(rèn)證請求,所述身份認(rèn)證請求中攜帶所述第一密鑰。
[0057]在用戶使用NFC支付時,用戶只需要在移動終端開啟了NFC支付的情況下靠近收款終端,就可以啟動NFC支付的流程。在移動終端靠近收款終端時,會觸發(fā)移動終端的支付過程的執(zhí)行,即觸發(fā)第一密鑰的生成。在本實施例中,移動終端自動生成隨機密鑰(第一密鑰),并向支付網(wǎng)關(guān)發(fā)送身份認(rèn)證請求,在此過程中,會將生成的第一密鑰一并發(fā)送給支付網(wǎng)關(guān)。
[0058]步驟S104:接收支付網(wǎng)關(guān)返回的第二密鑰,根據(jù)預(yù)設(shè)的哈希算法以所述第一密鑰和所述第二密鑰為輸入生成第一哈希密鑰。
[0059]支付網(wǎng)關(guān)在接收到移動終端發(fā)送的身份認(rèn)證請求之后,生成隨機密鑰(即第二密鑰)并將該密鑰返回給移動終端。移動終端通過與支付網(wǎng)關(guān)之間的通訊連接,接收支付網(wǎng)關(guān)發(fā)回的第二密鑰。
[ΟΟ?Ο]在本實施例中,HMAC(key,message)表示密鑰相關(guān)的哈希運算,其運算利用哈希算法,以一個密鑰key和一個消息message為輸入,生成一個消息摘要作為輸出。移動終端在獲取到第一密鑰和第二密鑰之后,以第一密鑰和第二密鑰為輸入,生成第一哈希密鑰HKeJP:
[0061]HKe = HMAC (RKw, RKe)
[0062]其中,RKw為第二密鑰,RKe為第一密鑰,HKe為第一哈希密鑰。
[0063]步驟S106:將所述第一哈希密鑰發(fā)送至所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)對所述第一哈希密鑰進行驗證,根據(jù)所述第一哈希密鑰是否通過驗證確定身份認(rèn)證是否通過。
[0064]移動終端在獲取到第一哈希密鑰HKe之后,將第一哈希密鑰HKe發(fā)送給支付網(wǎng)關(guān)。支付網(wǎng)關(guān)在接收到第一哈希密鑰HKe之后,對第一哈希密鑰HKe進行驗證,即判斷第一哈希密鑰對應(yīng)的移動終端是否通過身份認(rèn)證。
[0065]在一個具體的實施例中,由所述支付網(wǎng)關(guān)對所述第一哈希密鑰進行驗證的步驟具體為:所述支付網(wǎng)關(guān)根據(jù)預(yù)設(shè)的哈希算法以所述第二密鑰和所述第一密鑰為輸入生成第二哈希密鑰,所述支付網(wǎng)關(guān)判斷所述第一哈希密鑰是否與所述第二哈希密鑰匹配,若是,則判定所述第一哈希密鑰通過驗證。
[0066]S卩,支付網(wǎng)關(guān)在獲取到第一密鑰和第二密鑰之后,通過預(yù)設(shè)的哈希算法,以所述第二密鑰和所述第一密鑰為輸入生成第二哈希密鑰HKw,即:
[0067]HKw = HMAC(RKe,RKw),
[0068]其中,HKw為第二哈希密鑰。
[0069]具體的,若HKw= HKe,則判定第一哈希密鑰與第二哈希密鑰是匹配的,即標(biāo)識第一哈希密鑰通過了驗證,對應(yīng)的移動終端或者用戶的身份認(rèn)證通過,反之,則身份認(rèn)證不通過。
[0070]步驟S108:接收所述支付網(wǎng)關(guān)返回的身份認(rèn)證響應(yīng)。
[0071]支付網(wǎng)關(guān)在根據(jù)第一哈希密鑰是否通過驗證得到用戶的身份認(rèn)證結(jié)果之后,將相應(yīng)的身份認(rèn)證結(jié)果作為步驟S102中移動終端發(fā)送的身份認(rèn)證請求的身份認(rèn)證響應(yīng)發(fā)回給移動終端。
[0072]需要說明的是,在本實施例中,移動終端在被觸發(fā)生成第一密鑰RKe的同時,還獲取當(dāng)前的時間戳,該時間戳用于在接下來的用戶身份認(rèn)證以及支付的過程中驗證當(dāng)前交易的合法性,并防止重放攻擊,即防止用戶的賬號被再次盜刷。具體的,移動終端在獲取當(dāng)前的時間戳之后,在向支付網(wǎng)關(guān)發(fā)送的身份認(rèn)證請求中還包括有獲取到的時間戳。進一步的,支付網(wǎng)關(guān)在接收到身份認(rèn)證請求之后,獲取身份認(rèn)證請求中攜帶的第一密鑰以及時間戳,確定移動終端發(fā)送身份認(rèn)證請求的時間為Ti O支付網(wǎng)關(guān)獲取當(dāng)前的時間戳Tj,并計算Ti和Tj的差值,在上述時間戳的差值小于預(yù)設(shè)的時間閾值時,判定身份認(rèn)證請求沒有超時,并執(zhí)行下一個步驟,即生成第二密鑰并將第二密鑰發(fā)送回移動終端。若上述時間戳的差值大于預(yù)設(shè)的時間閾值,則說明當(dāng)前的身份認(rèn)證請求已經(jīng)超時,用戶賬號可能存在被盜刷的可能性,在此種情況下,直接判定用戶身份認(rèn)證失敗,需要重新進行用戶身份認(rèn)證。
[0073]在一個具體的實施例中,如圖2所示,圖2展示了一種基于NFC支付的用戶身份認(rèn)證的交互過程的示意圖。在本實施例中,以移動終端為eS頂卡終端為例,說明了該身份認(rèn)證的交互過程。具體的,eS頂卡終端生成第一密鑰RKe,獲取當(dāng)前的時間戳Ti,并生成身份認(rèn)證請求,然后將身份認(rèn)證請求、第一密鑰RKe、時間戳Ti發(fā)送給支付網(wǎng)關(guān);支付網(wǎng)關(guān)在接收到之后,獲取當(dāng)前的時間Tj,并判斷ABS(Tj-Ti)〈AT是否成立,若是,則生成第二密鑰RKw,并發(fā)送給eS頂卡終端;eSIM卡終端在接收到之后,計算第一哈希密鑰HKe = HMAC(RKw,RKe) ? Ti并發(fā)送給支付網(wǎng)關(guān);支付網(wǎng)關(guān)計算第二哈希密鑰HKw = HMAC(RKe,RKw) e Tj,并判斷Hkw =Hke是否成立,若是,則身份認(rèn)證通過,并將身份認(rèn)證請求響應(yīng)返回給eS頂卡終端。
[0074]需要說明的是,在本實施例中,在步驟S102-步驟S108之后,在用戶的身份認(rèn)證通過的情況下,就可以NFC支付的過程。具體的,在上述步驟S108之后,如圖3所示,上述方法還包括如下步驟:
[0075]步驟S202:在身份認(rèn)證成功時,生成交易請求并發(fā)送給所述支付網(wǎng)關(guān)。
[0076]步驟S204:接收所述支付網(wǎng)關(guān)返回的加密后的第一交易信息并解密,獲取解密后的第二交易信息。
[0077]在用戶身份認(rèn)證通過的情況下,也就是在NFC支付被允許的情況下,移動終端生成交易請求,并將該交易請求發(fā)送給支付網(wǎng)關(guān)。
[0078]支付網(wǎng)關(guān)在接收到移動終端發(fā)送的交易請求之后,響應(yīng)該交易請求,并根據(jù)當(dāng)前交易對應(yīng)的交易時間、交易網(wǎng)址、交易認(rèn)證信息等相關(guān)信息生成交易信息,即第一交易信息,并對第一交易信息進行加密,然后將加密后的第一加密信息發(fā)送給移動終端。
[0079]具體的,上述支付網(wǎng)關(guān)對第一支付信息的加密過程可以是通過非對稱加密函數(shù)RSA-enc(message,key)實現(xiàn)的,具體的,RSA_enc(message,key)表示使用公鑰key對消息message進行非對稱加密操作函數(shù)操作,并且,在本實施例中,對第一交易信息的加密可以如下:
[0080]KMw=RSA-enc(Mw,UKe),
[0081 ] 其中,Mw表示第一交易信息,Uke表示移動終端的私鑰,例如,在終端為eS頂終端的情況下,Uke為eSIM終端的私鑰。
[0082]移動終端在獲取到支付網(wǎng)關(guān)發(fā)送的加密后的第一交易信息之后對密文進行解密,獲取解密后的交易信息,即第二交易信息。具體的,上述解密過程可以是通過非對稱解密函數(shù)實現(xiàn)的,即:
[0083]Me = RSA-enc(KMw,PKe),
[0084]其中,RSA_dec(message,key)表示使用私鑰key對消息message進行非對稱解密操作函數(shù),PKe表示移動終端的公鑰。一般來講,在移動終端、收費終端都處于正常運行的狀況下,第一交易信息與第二交易信息是一致的,但是若收費終端存在病毒或者其他安全隱患的情況下,二者就有可能是不一致的。
[0085]步驟S206:根據(jù)預(yù)設(shè)的加密算法對所述第二交易信息進行加密得到加密摘要。
[0086]在本實施例中,移動終端在獲取到第二交易信息之后,對第二交易信息進行運算、加密等操作,得到加密摘要,加密摘要用于驗證移動終端、收費終端、支付網(wǎng)關(guān)之間的交易環(huán)境是否安全。
[0087]在一個具體的實施例中,上述加密摘要的獲取過程可以包括如下步驟S2062-步驟S2066:
[0088]步驟S2062:根據(jù)預(yù)設(shè)的哈希算法以所述第一哈希密鑰和所述第二交易信息為輸入生成第三哈希密鑰;
[0089]步驟S2064:根據(jù)預(yù)設(shè)的數(shù)字簽名算法和第三密鑰對所述第三哈希密鑰進行數(shù)字簽名;
[0090]步驟S2066:根據(jù)預(yù)設(shè)的非對稱加密算法和第四密鑰對所述數(shù)字簽名后的第三哈希密鑰進行加密,獲取加密結(jié)果作為所述加密摘要。
[0091 ] 使用密鑰相關(guān)的哈希運算函數(shù)HMAC(key ,message)計算第三哈希密鑰:
[0092]HHKe = HMAC (HKe, Mw+Me),
[0093]然后使用簽名函數(shù)SIGN-enc(message,key)和移動終端私鑰Uke(即第三密鑰)對第三哈希密鑰進行數(shù)字簽名,即:
[0094]SHK = SIGN-enc(HHKe,UKe);
[0095]其中,SIGN-enc(message,key)表示使用私鑰key對消息message進行簽章操作函數(shù);最后使用非對稱加密函數(shù)RSA-enc (message,key)和支付網(wǎng)關(guān)公鑰PKb (即第四密鑰)計算加密摘要,即:
[0096]AKb = RSA-enc(Mw+Me+SHK,PKb)。
[0097]根據(jù)上述步驟S2062-步驟S2066就可以得到加密摘要AKb。
[0098]步驟S208:將所述加密摘要發(fā)送給所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)判斷所述加密摘要是否通過安全驗證,若是,則執(zhí)行與所述交易請求對應(yīng)的交易。
[0099]移動終端在獲取到加密摘要之后,將其發(fā)送給支付網(wǎng)關(guān),并由支付關(guān)對加密摘要進行判定,即判定其是否通過安全驗證,若安全驗證通過,則說明當(dāng)前的交易環(huán)境是安全的,可以繼續(xù)進行交易,若否,則說明當(dāng)前的交易環(huán)境存在安全隱患,需要終止交易。
[0100]在一個具體的實施例中,支付網(wǎng)關(guān)在對加密摘要進行判定的過程中,具體的操作步驟如下:
[0101]使用非對稱解密函數(shù)RSA-dec(message,key)和支付網(wǎng)關(guān)私鑰UKb計算Mw+Me+SHK= RSA_dec(AKb,UKb);使用驗名函數(shù)SIGN-dec(message,key)和移動終端公鑰PKe計算出HHKe = SIGN_dec(SHK,PKe);最后使用密鑰相關(guān)的哈希運算函數(shù)HMAC(key ,message)計算出HHKw = HMAC(HKw,Mw+Me),即HHKw是支付網(wǎng)關(guān)計算的解密摘要。需要說明的是,上述SIGN-dec (message,key)表示使用公鑰key對消息message進行驗證操作函數(shù)操作。
[0102]然后支付網(wǎng)關(guān)根據(jù)移動終端發(fā)送的加密摘要HHKe,以及計算得到的解密摘要HHKw對加密摘要HHKe進行驗證,即判斷加密摘要HHKe是否等于解密摘要HHKw,如果相等,就認(rèn)為交易現(xiàn)場是安全的,并完成交易,否則結(jié)束該步驟。
[0103]步驟S210:接收所述支付網(wǎng)關(guān)返回的交易請求響應(yīng)。
[0104]支付網(wǎng)關(guān)在對加密摘要進行驗證過后,根據(jù)相應(yīng)的結(jié)果成成對交易請求的響應(yīng),并將交易請求響應(yīng)返回給移動終端,以完成整個NFC支付的過程。
[0105]在一個具體的實施例中,如圖4所示,圖4展示了一個實施例中一種基于NFC支付的交易環(huán)境安全驗證的交互過程示意圖,在圖中以eSIM卡終端為例,說明了在交易環(huán)境安全驗證的過程中,eS頂卡終端和支付網(wǎng)關(guān)之間的交互過程。
[0106]通過上述步驟S102-S108的用戶身份驗證的過程以及步驟S202-步驟S210的交易現(xiàn)場環(huán)境的安全性驗證之后,若相關(guān)的結(jié)果均是肯定的,則說明當(dāng)前的NFC支付是安全的,可以進行支付。具體的,第一,通過哈希算法驗證了當(dāng)前交易中用戶身份是否被篡改,保證了移動終端的用戶身份的合法性;第二,使用了時間戳機制,可以有效的防止重放攻擊;第三,通過對交易信息進行哈希運算并利用密鑰的私鑰進行RSA簽名,保證了支付網(wǎng)關(guān)在對簽名信息解密后可以驗證其是否被篡改,保證了交易信息的完整性,即當(dāng)前交易的交易環(huán)境的安全性;第四,對交易信息的數(shù)字簽名保證了移動終端與支付網(wǎng)關(guān)對所發(fā)消息的不可否認(rèn)性;也就是說,上述實施例中所公開的NFC支付機制解決了用戶在使用NFC支付的過程中安全性不足的問題,提高了 NFC支付的安全性。
[0107]此外,為解決傳統(tǒng)技術(shù)中的基于NFC的移動支付方式在支付的過程中因為沒有對交易環(huán)境進行安全驗證而存在的安全性不足的技術(shù)問題,在一個實施例中,還提出了一種基于NFC支付的用戶身份認(rèn)證裝置,如圖5所示,上述裝置包括身份認(rèn)證請求發(fā)送模塊102、第一哈希密鑰生成模塊104、第一哈希密鑰匹配模塊106、身份認(rèn)證結(jié)果接收模塊108,其中:
[0108]身份認(rèn)證請求發(fā)送模塊102,用于生成第一密鑰并緩存,向支付網(wǎng)關(guān)發(fā)送身份認(rèn)證請求,所述身份認(rèn)證請求中攜帶所述第一密鑰;
[0109]第一哈希密鑰生成模塊104,用于接收所述支付網(wǎng)關(guān)返回的第二密鑰,根據(jù)預(yù)設(shè)的哈希算法以所述第一密鑰和所述第二密鑰為輸入生成第一哈希密鑰;
[0110]第一哈希密鑰匹配模塊106,用于將所述第一哈希密鑰發(fā)送至所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)對所述第一哈希密鑰進行驗證,根據(jù)所述第一哈希密鑰是否通過驗證確定所述身份認(rèn)證是否通過;
[0111]身份認(rèn)證結(jié)果接收模塊108,用于接收所述支付網(wǎng)關(guān)返回的身份認(rèn)證響應(yīng)。
[0112]可選的,在一個實施例中,身份認(rèn)證請求中還攜帶有發(fā)送所述身份認(rèn)證請求時的時間戳,所述支付網(wǎng)關(guān)還根據(jù)所述時間戳判斷所述身份認(rèn)證請求是否超時,若未超時則返回所述第二密鑰。
[0113]可選的,在一個實施例中,所述支付網(wǎng)關(guān)還根據(jù)預(yù)設(shè)的哈希算法以所述第二密鑰和所述第一密鑰為輸入生成第二哈希密鑰,所述支付網(wǎng)關(guān)判斷所述第一哈希密鑰是否與所述第二哈希密鑰匹配,若是,則判定所述第一哈希密鑰通過驗證。
[0114]可選的,在一個實施例中,如圖5所示,上述裝置還包括交易請求生成模塊202、交易信息獲取模塊204、加密摘要獲取模塊206、加密摘要發(fā)送模塊208、交易請求響應(yīng)接收模塊210,其中:
[0115]交易請求生成模塊202,用于在身份認(rèn)證成功時,生成交易請求并發(fā)送給所述支付網(wǎng)關(guān);
[0116]交易信息獲取模塊204,用于接收所述支付網(wǎng)關(guān)返回的加密后的第一交易信息并解密,獲取解密后的第二交易信息;
[0117]加密摘要獲取模塊206,用于根據(jù)預(yù)設(shè)的加密算法對所述第二交易信息進行加密得到加密摘要;
[0118]加密摘要發(fā)送模塊208,用于將所述加密摘要發(fā)送給所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)判斷所述加密摘要是否通過安全驗證,若是,則執(zhí)行與所述交易請求對應(yīng)的交易;
[0119]交易請求響應(yīng)接收模塊210,用于接收所述支付網(wǎng)關(guān)返回的交易請求響應(yīng)。
[0120]可選的,在一個實施例中,上述加密摘要獲取模塊206還用于根據(jù)預(yù)設(shè)的哈希算法以所述第一哈希密鑰和所述第二交易信息為輸入生成第三哈希密鑰;根據(jù)預(yù)設(shè)的數(shù)字簽名算法和第三密鑰對所述第三哈希密鑰進行數(shù)字簽名;根據(jù)預(yù)設(shè)的非對稱加密算法和第四密鑰對所述數(shù)字簽名后的第三哈希密鑰進行加密,獲取加密結(jié)果作為所述加密摘要。
[0121]實施本發(fā)明實施例,將具有如下有益效果:
[0122]采用了上述基于NFC支付的身份認(rèn)證方法和裝置之后,在用戶使用移動終端進行NFC支付時,通過對用戶身份的驗證,保證了在支付過程中用戶身份的合法性,提高了基于NFC的移動支付的安全性,保證了用戶的資金安全,提升了用戶體驗。
[0123]在一個實施例中,如圖6所示,圖6展示了一種運行上述基于NFC支付的身份認(rèn)證方法的基于馮諾依曼體系的計算機系統(tǒng)的終端。該計算機系統(tǒng)可以是智能手機、平板電腦、掌上電腦等終端設(shè)備。具體的,可包括通過系統(tǒng)總線連接的外部輸入接口 1001、處理器1002、存儲器1003和輸出接口 1004。其中,外部輸入接口 1001可選的可至少包括網(wǎng)絡(luò)接口 10012。存儲器1003可包括外存儲器10032(例如硬盤、光盤或軟盤等)和內(nèi)存儲器10034。輸出接口1004可至少包括顯示屏10042等設(shè)備。
[0124]在本實施例中,本方法的運行基于計算機程序,該計算機程序的程序文件存儲于前述基于馮諾依曼體系的計算機系統(tǒng)的外存儲器10032中,在運行時被加載到內(nèi)存儲器10034中,然后被編譯為機器碼之后傳遞至處理器1002中執(zhí)行,從而使得基于馮諾依曼體系的計算機系統(tǒng)中形成邏輯上的身份認(rèn)證請求發(fā)送模塊102、第一哈希密鑰生成模塊104、第一哈希密鑰匹配模塊106、身份認(rèn)證結(jié)果接收模塊108以及交易請求生成模塊202、交易信息獲取模塊204、加密摘要獲取模塊206、第三加密摘要發(fā)送模塊208、交易請求響應(yīng)接收模塊210。且在上述基于NFC支付的身份認(rèn)證方法執(zhí)行過程中,輸入的參數(shù)均通過外部輸入接口1001接收,并傳遞至存儲器1003中緩存,然后輸入到處理器1002中進行處理,處理的結(jié)果數(shù)據(jù)或緩存于存儲器1003中進行后續(xù)地處理,或被傳遞至輸出接口 1004進行輸出。
[0125]以上所揭露的僅為本發(fā)明較佳實施例而已,當(dāng)然不能以此來限定本發(fā)明之權(quán)利范圍,因此依本發(fā)明權(quán)利要求所作的等同變化,仍屬本發(fā)明所涵蓋的范圍。
【主權(quán)項】
1.一種基于NFC支付的身份認(rèn)證方法,其特征在于,包括: 生成第一密鑰并緩存,向支付網(wǎng)關(guān)發(fā)送身份認(rèn)證請求,所述身份認(rèn)證請求中攜帶所述第一密鑰; 接收支付網(wǎng)關(guān)返回的第二密鑰,根據(jù)預(yù)設(shè)的哈希算法以所述第一密鑰和所述第二密鑰為輸入生成第一哈希密鑰; 將所述第一哈希密鑰發(fā)送至所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)對所述第一哈希密鑰進行驗證,根據(jù)所述第一哈希密鑰是否通過驗證確定身份認(rèn)證是否通過; 接收所述支付網(wǎng)關(guān)返回的身份認(rèn)證響應(yīng)。2.根據(jù)權(quán)利要求1所述的基于NFC支付的身份認(rèn)證方法,其特征在于,所述身份認(rèn)證請求中還攜帶有發(fā)送所述身份認(rèn)證請求時的時間戳,所述支付網(wǎng)關(guān)還根據(jù)所述時間戳判斷所述身份認(rèn)證請求是否超時,若未超時則返回所述第二密鑰。3.根據(jù)權(quán)利要求1所述的基于NFC支付的身份認(rèn)證方法,其特征在于,所述由所述支付網(wǎng)關(guān)對所述第一哈希密鑰進行驗證具體為: 所述支付網(wǎng)關(guān)根據(jù)預(yù)設(shè)的哈希算法以所述第二密鑰和所述第一密鑰為輸入生成第二哈希密鑰,所述支付網(wǎng)關(guān)判斷所述第一哈希密鑰是否與所述第二哈希密鑰匹配,若是,則判定所述第一哈希密鑰通過驗證。4.根據(jù)權(quán)利要求1所述的基于NFC支付的身份認(rèn)證方法,其特征在于,所述接收所述支付網(wǎng)關(guān)返回的身份認(rèn)證響應(yīng)之后還包括: 在身份認(rèn)證成功時,生成交易請求并發(fā)送給所述支付網(wǎng)關(guān); 接收所述支付網(wǎng)關(guān)返回的加密后的第一交易信息并解密,獲取解密后的第二交易信息; 根據(jù)預(yù)設(shè)的加密算法對所述第二交易信息進行加密得到加密摘要; 將所述加密摘要發(fā)送給所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)判斷所述加密摘要是否通過安全驗證,若是,則執(zhí)行與所述交易請求對應(yīng)的交易; 接收所述支付網(wǎng)關(guān)返回的交易請求響應(yīng)。5.根據(jù)權(quán)利要求4所述的基于NFC支付的身份認(rèn)證方法,其特征在于,所述根據(jù)預(yù)設(shè)的加密算法對所述第二交易信息進行加密得到加密摘要具體為: 根據(jù)預(yù)設(shè)的哈希算法以所述第一哈希密鑰和所述第二交易信息為輸入生成第三哈希密鑰; 根據(jù)預(yù)設(shè)的數(shù)字簽名算法和第三密鑰對所述第三哈希密鑰進行數(shù)字簽名; 根據(jù)預(yù)設(shè)的非對稱加密算法和第四密鑰對所述數(shù)字簽名后的第三哈希密鑰進行加密,獲取加密結(jié)果作為所述加密摘要。6.一種基于NFC支付的用戶身份認(rèn)證裝置,其特征在于,包括: 身份認(rèn)證請求發(fā)送模塊,用于生成第一密鑰并緩存,向支付網(wǎng)關(guān)發(fā)送身份認(rèn)證請求,所述身份認(rèn)證請求中攜帶所述第一密鑰; 第一哈希密鑰生成模塊,用于接收支付網(wǎng)關(guān)返回的第二密鑰,根據(jù)預(yù)設(shè)的哈希算法以所述第一密鑰和所述第二密鑰為輸入生成第一哈希密鑰; 第一哈希密鑰匹配模塊,用于將所述第一哈希密鑰發(fā)送至所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)對所述第一哈希密鑰進行驗證,根據(jù)所述第一哈希密鑰是否通過驗證確定身份認(rèn)證是否通過; 身份認(rèn)證結(jié)果接收模塊,用于接收所述支付網(wǎng)關(guān)返回的身份認(rèn)證響應(yīng)。7.根據(jù)權(quán)利要求6所述的基于NFC支付的用戶身份認(rèn)證裝置,其特征在于,所述身份認(rèn)證請求中還攜帶有發(fā)送所述身份認(rèn)證請求時的時間戳,所述支付網(wǎng)關(guān)還根據(jù)所述時間戳判斷所述身份認(rèn)證請求是否超時,若未超時則返回所述第二密鑰。8.根據(jù)權(quán)利要求6所述的基于NFC支付的用戶身份認(rèn)證裝置,其特征在于,所述支付網(wǎng)關(guān)還根據(jù)預(yù)設(shè)的哈希算法以所述第二密鑰和所述第一密鑰為輸入生成第二哈希密鑰,所述支付網(wǎng)關(guān)判斷所述第一哈希密鑰是否與所述第二哈希密鑰匹配,若是,則判定所述第一哈希密鑰通過驗證。9.根據(jù)權(quán)利要求6所述的基于NFC支付的用戶身份認(rèn)證裝置,其特征在于,所述裝置還包括: 交易請求生成模塊,用于在身份認(rèn)證成功時,生成交易請求并發(fā)送給所述支付網(wǎng)關(guān); 交易信息獲取模塊,用于接收所述支付網(wǎng)關(guān)返回的加密后的第一交易信息并解密,獲取解密后的第二交易信息; 加密摘要獲取模塊,用于根據(jù)預(yù)設(shè)的加密算法對所述第二交易信息進行加密得到加密摘要; 加密摘要發(fā)送模塊,用于將所述加密摘要發(fā)送給所述支付網(wǎng)關(guān),由所述支付網(wǎng)關(guān)判斷所述加密摘要是否通過安全驗證,若是,則執(zhí)行與所述交易請求對應(yīng)的交易; 交易請求響應(yīng)接收模塊,用于接收所述支付網(wǎng)關(guān)返回的交易請求響應(yīng)。10.根據(jù)權(quán)利要求9所述的基于NFC支付的用戶身份認(rèn)證裝置,其特征在于,所述加密摘要獲取模塊還用于根據(jù)預(yù)設(shè)的哈希算法以所述第一哈希密鑰和所述第二交易信息為輸入生成第三哈希密鑰;根據(jù)預(yù)設(shè)的數(shù)字簽名算法和第三密鑰對所述第三哈希密鑰進行數(shù)字簽名;根據(jù)預(yù)設(shè)的非對稱加密算法和第四密鑰對所述數(shù)字簽名后的第三哈希密鑰進行加密,獲取加密結(jié)果作為所述加密摘要。
【文檔編號】H04L29/06GK105827656SQ201610367636
【公開日】2016年8月3日
【申請日】2016年5月30日
【發(fā)明人】湯鎮(zhèn)輝, 牛溢華
【申請人】宇龍計算機通信科技(深圳)有限公司