樊 凱 ,韓小軍 ,汪 書
(1.西安電子科技大學,陜西 西安710126;2.睿豐寶科技有限公司,北京102600;3.北京大學,北京100871)
在電子支付業務模式日趨多樣化的背景下,個人用戶的支付行為往往存在眾多安全隱患,當前主要由支付機構協助個人進行統一風險控制[1]。 為了適應多元個性化的個人風險控制需求,支付機構也陸續推出了用戶可自主配置、自主操作的個人風險控制系統和設備。
本文面向基于個人可信確認的電子支付個人風險控制系統,提出了個人可信確認密碼應用方案,包括系統構成、使用的密鑰、方案原理、報文協議、密碼應用流程、相關安全技術要求等內容。
電子支付個人風險控制系統主要由個人可信確認服務系統和個人可信確認設備構成,如圖1 所示。
電子支付個人風險控制系統主要分為:
(1)個人可信確認服務系統:接收支付系統發送的個人可信確認判斷請求,經過個人可信確認判斷后將判斷結果返回給支付系統。

圖1 支付系統個人可信確認模型
(2) 個人可信確認設備: 接收個人可信確認服務系統發送的需由個人控制或處理的個人可信確認信息,經由個人處理或確認完成后將結果返回個人可信確認服務系統,如個人可信確認策略設置、支付確認等。
支付系統、支付終端、CA(Certificate Authority)認證中心是電子支付業務的構成元素,作為個人風險控制系統的相關外部系統。
個人可信確認基本過程可描述如下:
(1)個人用戶在支付終端發起支付業務后,支付系統進行風險識別與判斷;
(2)支付系統完成相關風險判斷后,將最終是否支付提交個人風險控制系統;
(3)個人風險控制系統的服務系統根據用戶個人設置的個人可信確認策略進行相關處理;
(4)支付系統收到個人風險控制系統返回的信息后,執行或中止該項支付。
1.3.1 總體需求
電子支付個人風險控制系統密碼應用安全的總體需求為:
(1)數據機密性
在支付系統個人可信確認過程中,需對個人可信確認服務系統與個人可信確認設備之間的數據傳輸進行加密保護。
傳輸用戶或系統鑒別數據時,應以非明文(密文或雜湊值)形式傳輸,可采用密碼雜湊算法、對稱密碼算法或非對稱密碼算法。
傳輸用戶個人敏感數據和業務數據時,應以密文形式傳輸,可采用對稱密碼算法或非對稱密碼算法。
(2)數據完整性
在個人可信確認服務系統與個人可信確認設備之間傳輸用戶鑒別數據、用戶個人敏感數據、業務數據時,應計算和校驗數據的完整性,可采用SM3密碼雜湊算法。
(3)數據來源真實性
個人可信確認服務系統與個人可信確認設備之間傳輸用戶鑒別數據、用戶個人敏感數據、業務數據時,應計算和校驗數據的真實性,可采用SM3密碼雜湊算法。
(4)數據不可否認性
個人可信確認服務系統與個人可信確認設備之間傳輸用戶鑒別數據、用戶個人敏感數據、業務數據時,應確保該數據傳輸過程具有合法的抗抵賴效力,可采用數字簽名和簽名驗證實現數據來源的身份鑒別。 采用SM2 橢圓曲線公鑰密碼算法進行數字簽名和簽名驗證。
1.3.2 相關系統密碼應用需求
相關系統密碼應用需求主要為個人可信確認服務系統密碼應用需求和個人可信確認設備密碼應用需求。 具體為:
(1)個人可信確認服務系統密碼應用需求
個人可信確認服務系統向個人可信確認設備傳輸數據時,通過密碼模塊保障數據機密性、數據完整性、數據來源真實性和數據不可否認性。
(2)個人可信確認設備密碼應用需求
個人可信確認設備向個人可信確認服務系統傳輸數據時,通過密碼模塊保障數據機密性、數據完整性、數據來源真實性和數據不可否認性。
本方案采用國家密碼管理機構認可的支持SM2、SM3、SM4 算法加密機作為個人可信確認服務系統的密碼模塊,采用支持SM2、SM3、SM4 算法的安全芯片作為個人可信確認設備的密碼模塊,采用CA 系統作為各密碼模塊的證書管理中心。
其中,個人風險控制系統中的個人可信確認服務系統、個人可信確認設備需要分別部署密碼模塊,提供密鑰管理和密碼運算服務。
2.2.1 密鑰種類
系統使用雙證書認證體系的總體思路,即簽名證書與加密證書。 簽名證書用于數字簽名驗證,加密證書用于密鑰協商。
系統使用的密鑰總體劃分為簽名密鑰、加密密鑰、會話密鑰三種類型。
2.2.2 使用的密鑰
CA 系統使用認證機構公私鑰,為個人風險控制系統提供證書簽發和簽名服務。
個人風險控制系統使用的密鑰包括:個人可信確認服務系統的服務端簽名公私鑰、服務端加密公私鑰、服務端會話密鑰;個人可信確認設備的用戶端簽名公私鑰、用戶端加密公私鑰、用戶端會話密鑰。
(1)服務端簽名公私鑰
服務系統公私鑰由個人可信確認服務系統部署的密碼模塊采用SM2 算法生成。
服務系統公鑰提交至CA 系統,用于申請服務系統證書、對協商會話密鑰數據進行簽名。
服務系統公鑰導入個人可信確認設備密碼模塊。
(2)服務端加密公私鑰
由個人可信確認服務系統的密碼模塊采用SM2 算法產生,公鑰導入個人可信確認設備。
用于對協商會話密鑰數據進行加密。
(3)服務端會話密鑰
由個人可信確認服務系統的密碼模塊采用SM4 算法隨機產生,用于個人可信確認服務系統和個人可信確認設備之間的通信加密。
(4)用戶端簽名公私鑰
用戶端公私鑰由個人可信確認設備部署的密碼模塊采用SM2 算法生成。
用戶端私鑰用于在個人可信確認設備對外通信時對數據進行簽名或解密。
用戶端公鑰提交至CA 系統,用于申請用戶模塊證書、對協商會話密鑰數據進行簽名。
用戶端公鑰導入個人可信確認服務系統密碼模塊。
(5)用戶端加密公私鑰
由個人可信確認設備的密碼模塊采用SM2 算法產生,公鑰導入個人可信確認服務系統。
用于對協商會話密鑰數據進行加密。
(6)用戶端會話密鑰
由個人可信確認設備的密碼模塊采用SM4 算法隨機產生,用于個人可信確認設備和個人可信確認服務系統之間的通信加密。
本方案采用國家密碼管理機構指定的SM2、SM3 和SM4 算法,其中個人可信確認服務系統和個人可信確認設備之間采用SM3 雜湊和SM2 橢圓曲線公鑰密碼算法實現雙向認證及會話密鑰協商,用協商的會話密鑰進行SM4 加密的數據通信。 個人可信確認通信包括服務端發起和用戶端發起兩種方式,本方案描述用戶端發起方式,包含會話協商和數據傳輸兩個過程。 服務端發起方式與用戶端發起方式原理相同。
用戶端發起原理如圖2 所示,1~9 是會話協商過程,10~15 是數據傳輸過程。

圖2 個人風險控制系統密碼應用方案原理
(1)會話協商過程。 該過程是個人可信確認設備與個人可信確認服務系統之間進行雙向認證及協商會話密鑰的過程。 其中,雙向認證過程使用用戶端簽名密鑰和服務端簽名密鑰實現,協商會話密鑰過程使用用戶端加密密鑰和服務端加密密鑰實現。
(2)數據傳輸過程。該過程是個人可信確認設備與個人可信確認服務系統之間進行數據傳輸的過程。
2.4.1協議框架
協議框架如圖3 所示。
在進行協議通信時,終端側和平臺側分別提前生成SM2 算法的設備證書和服務系統證書,在個人可信確認設備主動連接到個人可信確認服務系統時,先進行握手通信,個人可信確認服務系統獲取個人可信確認設備中的設備證書和簽名來驗證其身份。 同時個人可信確認設備獲取個人可信確認服務系統的簽名來驗證服務系統的身份。
握手過程中,個人可信確認設備生成一組隨機數作為主密鑰,通過密鑰交換算法與服務系統共享主密鑰。每次通信的主密鑰都是隨機的,不可預測,增強了個人可信確認設備和個人可信確認服務系統通信的安全性。
握手結束時,個人可信確認設備和個人可信確認服務系統同時用共享的主密鑰對一些隨機因子進行哈希計算得到會話密鑰。
2.4.2 協議報文
報文數據的邏輯結構包括:設備唯一標識、用戶唯一標識、自定義信息和簽名數據,它們都采用標簽-長度-值(Tag-Length-Value,TLV)的 格 式。 具 體 標 簽 值不做規定。
將設備唯一標識、 用戶唯一標識和自定義信息按順序串聯得到原文信息。
在傳輸過程中, 用會話密鑰對原文信息進行加密得到密文信息; 用發送方的簽名密鑰對原文信息進行簽名, 得到簽名數據。
發送數據為密文信息和簽名數據。
2.4.3 安全通信機制
安全通信機制參考標準SSL 密碼協議中的密鑰交換協議。 密鑰交換協議是指讓兩方或多方在不安全的信道上協商會話密鑰,從而建立安全的加密通信。
(1)安全保護

圖3 協議框架
在安全通道上的數據傳輸過程中,為保證數據的安全性進行數據加密處理。 具體操作為:用會話密鑰對原文數據進行SM4 的對稱加密。
(2)數據合法性
在數據通信傳輸的時候,數據的來源合法性需要進行驗證。 具體操作為:發送方使用私鑰對數據原文進行SM2 簽名;接收方需要發送方的公鑰對簽名信息進行SM2 驗簽。
2.5.1 密鑰準備
密鑰準備包括個人可信確認服務系統的服務端簽名公私鑰、個人可信確認服務系統的服務端加密公私鑰、個人可信確認設備的用戶端簽名公私鑰、個人可信確認設備的用戶端加密公私鑰的準備過程。
完成以上流程后,個人可信確認設備和個人可信確認服務系統方可進行數據傳輸過程。
2.5.2 數據傳輸通信
個人可信確認設備和個人可信確認服務系統之間進行數據傳輸過程時,雙向通信,互為數據發送方和接收方,通信報文處理機制如圖4 所示。

圖4 數據傳輸通信報文處理機制
(1)發送方報文處理
發送方生成SM4 會話密鑰并使用該密鑰對原文進行加密處理;
發送方使用SM2 簽名密鑰(私鑰)對原文進行簽名處理;
使用接收方SM2 加密密鑰(公鑰)對會話密鑰進行加密處理;
原文密文、原文簽名值和會話密鑰密文作為報文進行通信。
(2)接收方報文處理
接收方接收到報文數據后,使用接收方SM2 加密密鑰(私鑰)對會話密鑰密文進行解密,解出會話密鑰;
接收方使用會話密鑰對原文密文進行解密,解密出原文;
接收方使用發送方公鑰對原文和原文簽名值進行驗簽,驗簽通過后進行業務處理。
該協議保障通信過程中原文報文的機密性、完整性、真實性以及不可否認性。
2.6.1 密碼設備安全技術要求
個人可信確認服務系統密碼模塊應滿足GM/T 0028-2014《密碼模塊安全技術要求》安全三級或以上安全等級[2]。
個人可信確認設備密碼模塊要求應滿足GM/T 0028-2014《密碼模塊安全技術要求》安全二級[2]。
2.6.2 密碼算法安全技術要求
當使用靜態口令時,應提示用戶設置高強度的口令,宜定期更換。
當使用動態口令時,應遵循GM/T 0021-2012《動態口令密碼應用技術規范》[3]。
隨機數生成器應符合GM/T 0005-2012《隨機性檢測規范》的相關要求[4]。
當使用時間戳時,應符合GM/T 0033-2014《時間戳接口規范》相關要求[5]。
當使用對稱密碼算法時,應符合GM/T 0002-2012《SM4 分 組 密 碼 算 法》[6]、GM/T 0019-2012《通用密碼服務接口規范》相關要求[7]。
當使用非對稱密碼算法時,應符合GM/T 0003-2012《SM2 橢圓曲線公鑰密碼算法》[8]、GM/T 0009-2012《SM2 密碼算法使用規范》[9]、GM/T 0019-2012《通用密碼服務接口規范》[7]。
當使用密碼雜湊算法時,應符合GM/T 0004-2012《SM3 密碼雜湊算法》相關要求[10]。
在電子商務和互聯網金融業務蓬勃發展的時代潮流下,用戶提出了越來越多的個性化風險控制需求。 支付機構一方面通過大數據分析提升自身風險控制能力,另一方面也為用戶提供自主配置風險控制策略、自主執行風險控制操作的便捷。 支付機構在構建支付系統配套的個人風險控制系統時,應考慮用戶終端、個人風控系統、支付系統之間的通信安全,借助密碼應用技術進行用戶身份的個人可信確認。
本文通過研究基于個人可信確認的電子支付個人風險控制系統情況,提出個人可信確認的密碼應用技術方案相關要求,包括方案原理、個人可信確認報文、密碼安全應用流程等。 本研究可為支付機構、電子支付個人風險控制領域相關系統和設備廠商提供技術參考。