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