樊 凱 ,韓小軍 ,汪 書
(1.西安電子科技大學(xué),陜西 西安710126;2.睿豐寶科技有限公司,北京102600;3.北京大學(xué),北京100871)
在電子支付業(yè)務(wù)模式日趨多樣化的背景下,個(gè)人用戶的支付行為往往存在眾多安全隱患,當(dāng)前主要由支付機(jī)構(gòu)協(xié)助個(gè)人進(jìn)行統(tǒng)一風(fēng)險(xiǎn)控制[1]。 為了適應(yīng)多元個(gè)性化的個(gè)人風(fēng)險(xiǎn)控制需求,支付機(jī)構(gòu)也陸續(xù)推出了用戶可自主配置、自主操作的個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)和設(shè)備。
本文面向基于個(gè)人可信確認(rèn)的電子支付個(gè)人風(fēng)險(xiǎn)控制系統(tǒng),提出了個(gè)人可信確認(rèn)密碼應(yīng)用方案,包括系統(tǒng)構(gòu)成、使用的密鑰、方案原理、報(bào)文協(xié)議、密碼應(yīng)用流程、相關(guān)安全技術(shù)要求等內(nèi)容。
電子支付個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)主要由個(gè)人可信確認(rèn)服務(wù)系統(tǒng)和個(gè)人可信確認(rèn)設(shè)備構(gòu)成,如圖1 所示。
電子支付個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)主要分為:
(1)個(gè)人可信確認(rèn)服務(wù)系統(tǒng):接收支付系統(tǒng)發(fā)送的個(gè)人可信確認(rèn)判斷請(qǐng)求,經(jīng)過個(gè)人可信確認(rèn)判斷后將判斷結(jié)果返回給支付系統(tǒng)。
圖1 支付系統(tǒng)個(gè)人可信確認(rèn)模型
(2) 個(gè)人可信確認(rèn)設(shè)備: 接收個(gè)人可信確認(rèn)服務(wù)系統(tǒng)發(fā)送的需由個(gè)人控制或處理的個(gè)人可信確認(rèn)信息,經(jīng)由個(gè)人處理或確認(rèn)完成后將結(jié)果返回個(gè)人可信確認(rèn)服務(wù)系統(tǒng),如個(gè)人可信確認(rèn)策略設(shè)置、支付確認(rèn)等。
支付系統(tǒng)、支付終端、CA(Certificate Authority)認(rèn)證中心是電子支付業(yè)務(wù)的構(gòu)成元素,作為個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)的相關(guān)外部系統(tǒng)。
個(gè)人可信確認(rèn)基本過程可描述如下:
(1)個(gè)人用戶在支付終端發(fā)起支付業(yè)務(wù)后,支付系統(tǒng)進(jìn)行風(fēng)險(xiǎn)識(shí)別與判斷;
(2)支付系統(tǒng)完成相關(guān)風(fēng)險(xiǎn)判斷后,將最終是否支付提交個(gè)人風(fēng)險(xiǎn)控制系統(tǒng);
(3)個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)的服務(wù)系統(tǒng)根據(jù)用戶個(gè)人設(shè)置的個(gè)人可信確認(rèn)策略進(jìn)行相關(guān)處理;
(4)支付系統(tǒng)收到個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)返回的信息后,執(zhí)行或中止該項(xiàng)支付。
1.3.1 總體需求
電子支付個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)密碼應(yīng)用安全的總體需求為:
(1)數(shù)據(jù)機(jī)密性
在支付系統(tǒng)個(gè)人可信確認(rèn)過程中,需對(duì)個(gè)人可信確認(rèn)服務(wù)系統(tǒng)與個(gè)人可信確認(rèn)設(shè)備之間的數(shù)據(jù)傳輸進(jìn)行加密保護(hù)。
傳輸用戶或系統(tǒng)鑒別數(shù)據(jù)時(shí),應(yīng)以非明文(密文或雜湊值)形式傳輸,可采用密碼雜湊算法、對(duì)稱密碼算法或非對(duì)稱密碼算法。
傳輸用戶個(gè)人敏感數(shù)據(jù)和業(yè)務(wù)數(shù)據(jù)時(shí),應(yīng)以密文形式傳輸,可采用對(duì)稱密碼算法或非對(duì)稱密碼算法。
(2)數(shù)據(jù)完整性
在個(gè)人可信確認(rèn)服務(wù)系統(tǒng)與個(gè)人可信確認(rèn)設(shè)備之間傳輸用戶鑒別數(shù)據(jù)、用戶個(gè)人敏感數(shù)據(jù)、業(yè)務(wù)數(shù)據(jù)時(shí),應(yīng)計(jì)算和校驗(yàn)數(shù)據(jù)的完整性,可采用SM3密碼雜湊算法。
(3)數(shù)據(jù)來源真實(shí)性
個(gè)人可信確認(rèn)服務(wù)系統(tǒng)與個(gè)人可信確認(rèn)設(shè)備之間傳輸用戶鑒別數(shù)據(jù)、用戶個(gè)人敏感數(shù)據(jù)、業(yè)務(wù)數(shù)據(jù)時(shí),應(yīng)計(jì)算和校驗(yàn)數(shù)據(jù)的真實(shí)性,可采用SM3密碼雜湊算法。
(4)數(shù)據(jù)不可否認(rèn)性
個(gè)人可信確認(rèn)服務(wù)系統(tǒng)與個(gè)人可信確認(rèn)設(shè)備之間傳輸用戶鑒別數(shù)據(jù)、用戶個(gè)人敏感數(shù)據(jù)、業(yè)務(wù)數(shù)據(jù)時(shí),應(yīng)確保該數(shù)據(jù)傳輸過程具有合法的抗抵賴效力,可采用數(shù)字簽名和簽名驗(yàn)證實(shí)現(xiàn)數(shù)據(jù)來源的身份鑒別。 采用SM2 橢圓曲線公鑰密碼算法進(jìn)行數(shù)字簽名和簽名驗(yàn)證。
1.3.2 相關(guān)系統(tǒng)密碼應(yīng)用需求
相關(guān)系統(tǒng)密碼應(yīng)用需求主要為個(gè)人可信確認(rèn)服務(wù)系統(tǒng)密碼應(yīng)用需求和個(gè)人可信確認(rèn)設(shè)備密碼應(yīng)用需求。 具體為:
(1)個(gè)人可信確認(rèn)服務(wù)系統(tǒng)密碼應(yīng)用需求
個(gè)人可信確認(rèn)服務(wù)系統(tǒng)向個(gè)人可信確認(rèn)設(shè)備傳輸數(shù)據(jù)時(shí),通過密碼模塊保障數(shù)據(jù)機(jī)密性、數(shù)據(jù)完整性、數(shù)據(jù)來源真實(shí)性和數(shù)據(jù)不可否認(rèn)性。
(2)個(gè)人可信確認(rèn)設(shè)備密碼應(yīng)用需求
個(gè)人可信確認(rèn)設(shè)備向個(gè)人可信確認(rèn)服務(wù)系統(tǒng)傳輸數(shù)據(jù)時(shí),通過密碼模塊保障數(shù)據(jù)機(jī)密性、數(shù)據(jù)完整性、數(shù)據(jù)來源真實(shí)性和數(shù)據(jù)不可否認(rèn)性。
本方案采用國家密碼管理機(jī)構(gòu)認(rèn)可的支持SM2、SM3、SM4 算法加密機(jī)作為個(gè)人可信確認(rèn)服務(wù)系統(tǒng)的密碼模塊,采用支持SM2、SM3、SM4 算法的安全芯片作為個(gè)人可信確認(rèn)設(shè)備的密碼模塊,采用CA 系統(tǒng)作為各密碼模塊的證書管理中心。
其中,個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)中的個(gè)人可信確認(rèn)服務(wù)系統(tǒng)、個(gè)人可信確認(rèn)設(shè)備需要分別部署密碼模塊,提供密鑰管理和密碼運(yùn)算服務(wù)。
2.2.1 密鑰種類
系統(tǒng)使用雙證書認(rèn)證體系的總體思路,即簽名證書與加密證書。 簽名證書用于數(shù)字簽名驗(yàn)證,加密證書用于密鑰協(xié)商。
系統(tǒng)使用的密鑰總體劃分為簽名密鑰、加密密鑰、會(huì)話密鑰三種類型。
2.2.2 使用的密鑰
CA 系統(tǒng)使用認(rèn)證機(jī)構(gòu)公私鑰,為個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)提供證書簽發(fā)和簽名服務(wù)。
個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)使用的密鑰包括:個(gè)人可信確認(rèn)服務(wù)系統(tǒng)的服務(wù)端簽名公私鑰、服務(wù)端加密公私鑰、服務(wù)端會(huì)話密鑰;個(gè)人可信確認(rèn)設(shè)備的用戶端簽名公私鑰、用戶端加密公私鑰、用戶端會(huì)話密鑰。
(1)服務(wù)端簽名公私鑰
服務(wù)系統(tǒng)公私鑰由個(gè)人可信確認(rèn)服務(wù)系統(tǒng)部署的密碼模塊采用SM2 算法生成。
服務(wù)系統(tǒng)公鑰提交至CA 系統(tǒng),用于申請(qǐng)服務(wù)系統(tǒng)證書、對(duì)協(xié)商會(huì)話密鑰數(shù)據(jù)進(jìn)行簽名。
服務(wù)系統(tǒng)公鑰導(dǎo)入個(gè)人可信確認(rèn)設(shè)備密碼模塊。
(2)服務(wù)端加密公私鑰
由個(gè)人可信確認(rèn)服務(wù)系統(tǒng)的密碼模塊采用SM2 算法產(chǎn)生,公鑰導(dǎo)入個(gè)人可信確認(rèn)設(shè)備。
用于對(duì)協(xié)商會(huì)話密鑰數(shù)據(jù)進(jìn)行加密。
(3)服務(wù)端會(huì)話密鑰
由個(gè)人可信確認(rèn)服務(wù)系統(tǒng)的密碼模塊采用SM4 算法隨機(jī)產(chǎn)生,用于個(gè)人可信確認(rèn)服務(wù)系統(tǒng)和個(gè)人可信確認(rèn)設(shè)備之間的通信加密。
(4)用戶端簽名公私鑰
用戶端公私鑰由個(gè)人可信確認(rèn)設(shè)備部署的密碼模塊采用SM2 算法生成。
用戶端私鑰用于在個(gè)人可信確認(rèn)設(shè)備對(duì)外通信時(shí)對(duì)數(shù)據(jù)進(jìn)行簽名或解密。
用戶端公鑰提交至CA 系統(tǒng),用于申請(qǐng)用戶模塊證書、對(duì)協(xié)商會(huì)話密鑰數(shù)據(jù)進(jìn)行簽名。
用戶端公鑰導(dǎo)入個(gè)人可信確認(rèn)服務(wù)系統(tǒng)密碼模塊。
(5)用戶端加密公私鑰
由個(gè)人可信確認(rèn)設(shè)備的密碼模塊采用SM2 算法產(chǎn)生,公鑰導(dǎo)入個(gè)人可信確認(rèn)服務(wù)系統(tǒng)。
用于對(duì)協(xié)商會(huì)話密鑰數(shù)據(jù)進(jìn)行加密。
(6)用戶端會(huì)話密鑰
由個(gè)人可信確認(rèn)設(shè)備的密碼模塊采用SM4 算法隨機(jī)產(chǎn)生,用于個(gè)人可信確認(rèn)設(shè)備和個(gè)人可信確認(rèn)服務(wù)系統(tǒng)之間的通信加密。
本方案采用國家密碼管理機(jī)構(gòu)指定的SM2、SM3 和SM4 算法,其中個(gè)人可信確認(rèn)服務(wù)系統(tǒng)和個(gè)人可信確認(rèn)設(shè)備之間采用SM3 雜湊和SM2 橢圓曲線公鑰密碼算法實(shí)現(xiàn)雙向認(rèn)證及會(huì)話密鑰協(xié)商,用協(xié)商的會(huì)話密鑰進(jìn)行SM4 加密的數(shù)據(jù)通信。 個(gè)人可信確認(rèn)通信包括服務(wù)端發(fā)起和用戶端發(fā)起兩種方式,本方案描述用戶端發(fā)起方式,包含會(huì)話協(xié)商和數(shù)據(jù)傳輸兩個(gè)過程。 服務(wù)端發(fā)起方式與用戶端發(fā)起方式原理相同。
用戶端發(fā)起原理如圖2 所示,1~9 是會(huì)話協(xié)商過程,10~15 是數(shù)據(jù)傳輸過程。
圖2 個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)密碼應(yīng)用方案原理
(1)會(huì)話協(xié)商過程。 該過程是個(gè)人可信確認(rèn)設(shè)備與個(gè)人可信確認(rèn)服務(wù)系統(tǒng)之間進(jìn)行雙向認(rèn)證及協(xié)商會(huì)話密鑰的過程。 其中,雙向認(rèn)證過程使用用戶端簽名密鑰和服務(wù)端簽名密鑰實(shí)現(xiàn),協(xié)商會(huì)話密鑰過程使用用戶端加密密鑰和服務(wù)端加密密鑰實(shí)現(xiàn)。
(2)數(shù)據(jù)傳輸過程。該過程是個(gè)人可信確認(rèn)設(shè)備與個(gè)人可信確認(rèn)服務(wù)系統(tǒng)之間進(jìn)行數(shù)據(jù)傳輸?shù)倪^程。
2.4.1協(xié)議框架
協(xié)議框架如圖3 所示。
在進(jìn)行協(xié)議通信時(shí),終端側(cè)和平臺(tái)側(cè)分別提前生成SM2 算法的設(shè)備證書和服務(wù)系統(tǒng)證書,在個(gè)人可信確認(rèn)設(shè)備主動(dòng)連接到個(gè)人可信確認(rèn)服務(wù)系統(tǒng)時(shí),先進(jìn)行握手通信,個(gè)人可信確認(rèn)服務(wù)系統(tǒng)獲取個(gè)人可信確認(rèn)設(shè)備中的設(shè)備證書和簽名來驗(yàn)證其身份。 同時(shí)個(gè)人可信確認(rèn)設(shè)備獲取個(gè)人可信確認(rèn)服務(wù)系統(tǒng)的簽名來驗(yàn)證服務(wù)系統(tǒng)的身份。
握手過程中,個(gè)人可信確認(rèn)設(shè)備生成一組隨機(jī)數(shù)作為主密鑰,通過密鑰交換算法與服務(wù)系統(tǒng)共享主密鑰。每次通信的主密鑰都是隨機(jī)的,不可預(yù)測(cè),增強(qiáng)了個(gè)人可信確認(rèn)設(shè)備和個(gè)人可信確認(rèn)服務(wù)系統(tǒng)通信的安全性。
握手結(jié)束時(shí),個(gè)人可信確認(rèn)設(shè)備和個(gè)人可信確認(rèn)服務(wù)系統(tǒng)同時(shí)用共享的主密鑰對(duì)一些隨機(jī)因子進(jìn)行哈希計(jì)算得到會(huì)話密鑰。
2.4.2 協(xié)議報(bào)文
報(bào)文數(shù)據(jù)的邏輯結(jié)構(gòu)包括:設(shè)備唯一標(biāo)識(shí)、用戶唯一標(biāo)識(shí)、自定義信息和簽名數(shù)據(jù),它們都采用標(biāo)簽-長(zhǎng)度-值(Tag-Length-Value,TLV)的 格 式。 具 體 標(biāo) 簽 值不做規(guī)定。
將設(shè)備唯一標(biāo)識(shí)、 用戶唯一標(biāo)識(shí)和自定義信息按順序串聯(lián)得到原文信息。
在傳輸過程中, 用會(huì)話密鑰對(duì)原文信息進(jìn)行加密得到密文信息; 用發(fā)送方的簽名密鑰對(duì)原文信息進(jìn)行簽名, 得到簽名數(shù)據(jù)。
發(fā)送數(shù)據(jù)為密文信息和簽名數(shù)據(jù)。
2.4.3 安全通信機(jī)制
安全通信機(jī)制參考標(biāo)準(zhǔn)SSL 密碼協(xié)議中的密鑰交換協(xié)議。 密鑰交換協(xié)議是指讓兩方或多方在不安全的信道上協(xié)商會(huì)話密鑰,從而建立安全的加密通信。
(1)安全保護(hù)
圖3 協(xié)議框架
在安全通道上的數(shù)據(jù)傳輸過程中,為保證數(shù)據(jù)的安全性進(jìn)行數(shù)據(jù)加密處理。 具體操作為:用會(huì)話密鑰對(duì)原文數(shù)據(jù)進(jìn)行SM4 的對(duì)稱加密。
(2)數(shù)據(jù)合法性
在數(shù)據(jù)通信傳輸?shù)臅r(shí)候,數(shù)據(jù)的來源合法性需要進(jìn)行驗(yàn)證。 具體操作為:發(fā)送方使用私鑰對(duì)數(shù)據(jù)原文進(jìn)行SM2 簽名;接收方需要發(fā)送方的公鑰對(duì)簽名信息進(jìn)行SM2 驗(yàn)簽。
2.5.1 密鑰準(zhǔn)備
密鑰準(zhǔn)備包括個(gè)人可信確認(rèn)服務(wù)系統(tǒng)的服務(wù)端簽名公私鑰、個(gè)人可信確認(rèn)服務(wù)系統(tǒng)的服務(wù)端加密公私鑰、個(gè)人可信確認(rèn)設(shè)備的用戶端簽名公私鑰、個(gè)人可信確認(rèn)設(shè)備的用戶端加密公私鑰的準(zhǔn)備過程。
完成以上流程后,個(gè)人可信確認(rèn)設(shè)備和個(gè)人可信確認(rèn)服務(wù)系統(tǒng)方可進(jìn)行數(shù)據(jù)傳輸過程。
2.5.2 數(shù)據(jù)傳輸通信
個(gè)人可信確認(rèn)設(shè)備和個(gè)人可信確認(rèn)服務(wù)系統(tǒng)之間進(jìn)行數(shù)據(jù)傳輸過程時(shí),雙向通信,互為數(shù)據(jù)發(fā)送方和接收方,通信報(bào)文處理機(jī)制如圖4 所示。
圖4 數(shù)據(jù)傳輸通信報(bào)文處理機(jī)制
(1)發(fā)送方報(bào)文處理
發(fā)送方生成SM4 會(huì)話密鑰并使用該密鑰對(duì)原文進(jìn)行加密處理;
發(fā)送方使用SM2 簽名密鑰(私鑰)對(duì)原文進(jìn)行簽名處理;
使用接收方SM2 加密密鑰(公鑰)對(duì)會(huì)話密鑰進(jìn)行加密處理;
原文密文、原文簽名值和會(huì)話密鑰密文作為報(bào)文進(jìn)行通信。
(2)接收方報(bào)文處理
接收方接收到報(bào)文數(shù)據(jù)后,使用接收方SM2 加密密鑰(私鑰)對(duì)會(huì)話密鑰密文進(jìn)行解密,解出會(huì)話密鑰;
接收方使用會(huì)話密鑰對(duì)原文密文進(jìn)行解密,解密出原文;
接收方使用發(fā)送方公鑰對(duì)原文和原文簽名值進(jìn)行驗(yàn)簽,驗(yàn)簽通過后進(jìn)行業(yè)務(wù)處理。
該協(xié)議保障通信過程中原文報(bào)文的機(jī)密性、完整性、真實(shí)性以及不可否認(rèn)性。
2.6.1 密碼設(shè)備安全技術(shù)要求
個(gè)人可信確認(rèn)服務(wù)系統(tǒng)密碼模塊應(yīng)滿足GM/T 0028-2014《密碼模塊安全技術(shù)要求》安全三級(jí)或以上安全等級(jí)[2]。
個(gè)人可信確認(rèn)設(shè)備密碼模塊要求應(yīng)滿足GM/T 0028-2014《密碼模塊安全技術(shù)要求》安全二級(jí)[2]。
2.6.2 密碼算法安全技術(shù)要求
當(dāng)使用靜態(tài)口令時(shí),應(yīng)提示用戶設(shè)置高強(qiáng)度的口令,宜定期更換。
當(dāng)使用動(dòng)態(tài)口令時(shí),應(yīng)遵循GM/T 0021-2012《動(dòng)態(tài)口令密碼應(yīng)用技術(shù)規(guī)范》[3]。
隨機(jī)數(shù)生成器應(yīng)符合GM/T 0005-2012《隨機(jī)性檢測(cè)規(guī)范》的相關(guān)要求[4]。
當(dāng)使用時(shí)間戳?xí)r,應(yīng)符合GM/T 0033-2014《時(shí)間戳接口規(guī)范》相關(guān)要求[5]。
當(dāng)使用對(duì)稱密碼算法時(shí),應(yīng)符合GM/T 0002-2012《SM4 分 組 密 碼 算 法》[6]、GM/T 0019-2012《通用密碼服務(wù)接口規(guī)范》相關(guān)要求[7]。
當(dāng)使用非對(duì)稱密碼算法時(shí),應(yīng)符合GM/T 0003-2012《SM2 橢圓曲線公鑰密碼算法》[8]、GM/T 0009-2012《SM2 密碼算法使用規(guī)范》[9]、GM/T 0019-2012《通用密碼服務(wù)接口規(guī)范》[7]。
當(dāng)使用密碼雜湊算法時(shí),應(yīng)符合GM/T 0004-2012《SM3 密碼雜湊算法》相關(guān)要求[10]。
在電子商務(wù)和互聯(lián)網(wǎng)金融業(yè)務(wù)蓬勃發(fā)展的時(shí)代潮流下,用戶提出了越來越多的個(gè)性化風(fēng)險(xiǎn)控制需求。 支付機(jī)構(gòu)一方面通過大數(shù)據(jù)分析提升自身風(fēng)險(xiǎn)控制能力,另一方面也為用戶提供自主配置風(fēng)險(xiǎn)控制策略、自主執(zhí)行風(fēng)險(xiǎn)控制操作的便捷。 支付機(jī)構(gòu)在構(gòu)建支付系統(tǒng)配套的個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)時(shí),應(yīng)考慮用戶終端、個(gè)人風(fēng)控系統(tǒng)、支付系統(tǒng)之間的通信安全,借助密碼應(yīng)用技術(shù)進(jìn)行用戶身份的個(gè)人可信確認(rèn)。
本文通過研究基于個(gè)人可信確認(rèn)的電子支付個(gè)人風(fēng)險(xiǎn)控制系統(tǒng)情況,提出個(gè)人可信確認(rèn)的密碼應(yīng)用技術(shù)方案相關(guān)要求,包括方案原理、個(gè)人可信確認(rèn)報(bào)文、密碼安全應(yīng)用流程等。 本研究可為支付機(jī)構(gòu)、電子支付個(gè)人風(fēng)險(xiǎn)控制領(lǐng)域相關(guān)系統(tǒng)和設(shè)備廠商提供技術(shù)參考。