潘紅芹,馬建,鄧敏麗,紀方
鐵路各業(yè)務系統(tǒng)中已廣泛使用基于數(shù)字證書的身份認證技術架構來實現(xiàn)用戶的身份認證。傳統(tǒng)方式中,利用專用的USBKey、TF卡等硬件設備來存儲并保護私鑰,需要簽名時,通過中間件配合調用硬件設備完成數(shù)字簽名運算。用戶的密鑰始終掌握在自己手中,是傳統(tǒng)硬件密碼介質應用的安全基礎。在移動互聯(lián)網(wǎng)時代,越來越多的簽名業(yè)務逐步遷移到移動端,用戶僅需通過聯(lián)網(wǎng)的移動智能設備(手機、IPad)就可以完成日常辦公與業(yè)務操作。但傳統(tǒng)硬件密碼介質卻難以在移動端發(fā)揮作用:①攜帶不便,用戶需要在手機之外攜帶額外的硬件介質;②硬件接口無法對接,手機端無法提供對接傳統(tǒng)密碼的USB接口;③中間件開發(fā)困難,針對硬件調用的中間件開發(fā)難度大。
因此,需研究適用于鐵路移動業(yè)務架構的新型去介質身份認證技術方案,保證可直接運行在移動設備上實現(xiàn)安全合規(guī)的數(shù)字簽名。為此,本文設計了基于移動數(shù)字證書的鐵路身份認證系統(tǒng)(簡稱“數(shù)字證書用戶身份認證系統(tǒng)”),實現(xiàn)移動端用戶基于移動數(shù)字證書的鐵路業(yè)務安全接入。
移動數(shù)字證書[1]作為數(shù)字證書面向移動業(yè)務應用的具象化展現(xiàn)類型,是一種基于公鑰基礎設施[2](Public Key Infrastructure,PKI)的新型身份認證手段,依托數(shù)字證書載體,為移動端用戶提供安全身份認證功能,通過密鑰分割和數(shù)字證書技術,采用協(xié)同簽名[3]應用模式提供服務,完成在移動端無硬件存儲介質情況下的數(shù)字簽名,并滿足國家及行業(yè)關于電子簽名服務技術要求。通過研究協(xié)同簽名技術架構和協(xié)同簽名應用模式,充分論證方案的技術路線和可行性。
協(xié)同簽名技術是一種用于驗證數(shù)據(jù)來源和完整性的身份驗證技術,在移動互聯(lián)網(wǎng)安全接入和移動端掃碼登錄等應用場景廣泛使用[4]。用于電子簽名的密鑰通常分為服務端密鑰分量與客戶端密鑰分量2個部分,客戶端密鑰分量由用戶移動端中的協(xié)同密碼組件生成并本地加密存儲,服務端密鑰分量由簽名服務端生成并加密存儲于密鑰庫中。
基于云計算的協(xié)同簽名服務典型技術架構由云簽名服務、簽名方和依賴方組成,見圖1。云簽名服務提供用戶管理服務、密鑰管理服務和協(xié)同簽名服務,并提供與服務相匹配的安全管理和策略管理;簽名方和依賴方作為鐵路業(yè)務系統(tǒng)的用戶,可通過云簽名服務的交互協(xié)議或應用編程接口,使用云簽名服務完成電子簽名。CA(Certification Authority)認證中心作為第三方支撐服務,向簽名者提供電子認證服務,并對數(shù)字證書進行全生命周期管理。
圖1 基于云計算的協(xié)同簽名服務典型技術架構
簽名方使用帶有密碼模塊的終端、應用程序或應用系統(tǒng)對制作電子簽名的過程進行控制和確認。簽名方將電子簽名的一部分功能委托給云簽名服務來完成,簽名方使用協(xié)同密碼組件進行簽名計算,云簽名服務使用密碼設備完成服務端簽名計算,最終由簽名方合成完整的簽名結果。依賴方判斷簽名方提供的電子簽名及相關數(shù)據(jù)有效后進行后續(xù)業(yè)務操作。協(xié)同簽名技術中協(xié)同密鑰管理機制保證了電子簽名完整的密鑰不在簽名方或云簽名服務出現(xiàn),密鑰的服務端分量、客戶端分量不在網(wǎng)絡上傳輸,也不能由網(wǎng)絡傳輸?shù)臄?shù)據(jù)計算得出,杜絕了用戶簽名私鑰暴露的風險,無需額外的硬件介質進行密鑰的存儲,保證簽名密鑰安全性。
移動端依托數(shù)字證書為載體,采用協(xié)同簽名技術,保證移動端掃碼登錄的身份認證安全。協(xié)同簽名典型應用模式見圖2,流程如下:
圖2 協(xié)同簽名典型應用模式
Step 1業(yè)務系統(tǒng)向簽名服務端發(fā)起簽名請求。
Step 2簽名服務端向終端設備推送簽名請求,此時終端設備可通過與簽名相關的業(yè)務活動情況對簽名請求進行確認。
Step 3終端設備向簽名服務端推送簽名服務。
Step 4簽名服務端查詢該請求者的密鑰,檢索服務端密鑰分量和證書。
Step 5簽名服務端調用密碼設備/密碼模塊進行服務端協(xié)同簽名。
Step 6簽名服務端向終端設備返回服務端部分簽名結果。
Step 7終端設備通過簽名服務客戶端中間件調用協(xié)同簽名模塊,使用客戶端密鑰分量進行協(xié)同簽名,合成完整簽名。
Step 8終端設備向簽名服務端提交完整簽名結果。
Step 9簽名服務端驗證簽名結果。
Step 10簽名服務端向業(yè)務系統(tǒng)返回簽名驗證結果。
Step 11驗證成功后,業(yè)務系統(tǒng)允許終端設備進行操作訪問。
從協(xié)同簽名應用合規(guī)性、便捷性、高效性、可追溯性4個方面開展方案優(yōu)勢分析。
1)合規(guī)性:移動數(shù)字證書應用符合《基于云計算的電子簽名服務技術要求》(GM/T 0109—2021)[5]、《SM2橢圓曲線公鑰密碼算法》(GB/T 32918—2016)[6]、《SM3密碼雜湊算法》(GB/T 32905—2016)[7]、《SM2密碼算法使用規(guī)范》(GB/T 35276—2017)[8]、《SM4分組密碼算法》(GB/T 32907—2016)[9]等國家密碼應用相關標準要求。本方案中移動客戶端應用的協(xié)同密碼組件符合《密碼模塊安全技術要求》(GM/T 0028—2014)[10]安全等級第二級認證。
2)便攜性:移動數(shù)字證書存儲在移動設備中,用戶可以隨時隨地進行身份認證,無需攜帶其他硬件存儲介質。
3)高效性:移動數(shù)字證書充分結合鐵路業(yè)務系統(tǒng)移動應用需求,將拔插USBKey、PIN碼校驗等傳統(tǒng)操作模式轉變?yōu)樯锾卣髯R別或短信認證等方式[11],降低密碼應用復雜度,提升應用效率。
4)可追溯性:移動數(shù)字證書具有可追溯性,可以對用戶的簽名行為進行跟蹤和記錄,方便有關部門進行監(jiān)管和調查。
針對鐵路業(yè)務在移動互聯(lián)網(wǎng)環(huán)境下的身份認證需求,選取移動APP掃碼登錄業(yè)務作為本方案重點研究場景,通過建設數(shù)字證書用戶身份認證系統(tǒng)實現(xiàn)移動端用戶的身份認證。系統(tǒng)分別部署于內部服務網(wǎng)、外部服務網(wǎng)和互聯(lián)網(wǎng)移動終端,通過調用移動互聯(lián)網(wǎng)安全接入平臺、安全平臺等接口,完成內外網(wǎng)數(shù)據(jù)交互,實現(xiàn)移動終端數(shù)字證書申請、證書簽發(fā)、證書更新、證書注銷、證書有效性驗證、協(xié)同簽名、掃碼認證等功能,為業(yè)務應用系統(tǒng)提供統(tǒng)一的身份認證服務。數(shù)字證書用戶身份認證系統(tǒng)技術架構見圖3中綠色部分。
圖3 數(shù)字證書用戶身份認證系統(tǒng)技術架構
1)內網(wǎng)數(shù)字證書用戶身份認證系統(tǒng)。調用服務器密碼機接口,與鐵路業(yè)務系統(tǒng)交互,實現(xiàn)數(shù)字證書身份認證和移動端數(shù)字證書的全生命周期管理。
2)外網(wǎng)數(shù)字證書用戶身份認證系統(tǒng)。密碼協(xié)作系統(tǒng)為移動終端提供服務端協(xié)同簽名運算和密鑰安全存儲;外網(wǎng)收發(fā)服務為移動終端和內網(wǎng)數(shù)字證書用戶身份認證系統(tǒng)提供數(shù)據(jù)收發(fā)服務。
3)移動APP。移動APP通過接口調用方式實現(xiàn)移動端密鑰分量的生成及本地加密存儲,生成的移動端密鑰分量可與服務端協(xié)商合成完整密鑰,并向服務端數(shù)字證書用戶身份認證系統(tǒng)申請移動數(shù)字證書。用戶通過移動終端上的生物認證方式調用協(xié)同密碼組件實現(xiàn)移動端電子簽名和身份認證[12]。其中,協(xié)同密碼組件通常以軟件開發(fā)工具包形式對外提供密鑰生成、證書申請、協(xié)同簽名等服務,可與移動端鐵路各類APP應用進行集成,支持移動端Android、IOS、鴻蒙[13]等主流操作系統(tǒng)。
從用戶移動數(shù)字證書申請,到基于移動數(shù)字證書完成協(xié)同簽名及系統(tǒng)驗證,最終實現(xiàn)用戶掃碼登錄業(yè)務系統(tǒng),整個業(yè)務應用流程形成有效閉環(huán),實現(xiàn)了基于移動數(shù)字證書的身份認證[14],見圖4。
圖4 掃碼登錄業(yè)務應用流程
2.2.1 移動數(shù)字證書申請流程
Step 1移動APP通過調用協(xié)同密碼組件注冊生成一對與用戶永久綁定的固定公私鑰對(PC,dC),將移動端自身固定公鑰PC發(fā)送給密碼協(xié)作系統(tǒng)。
Step 2密碼協(xié)作系統(tǒng)根據(jù)公鑰PC生成與用戶綁定的固定公私鑰對(PB,dB),同時計算生成簽名公鑰P并發(fā)布。
Step 3移動APP調用協(xié)同密碼組件利用簽名公鑰P計算生成P10文件(證書簽發(fā)請求),發(fā)送給服務端數(shù)字證書用戶身份認證系統(tǒng)。
Step 4服務端數(shù)字證書用戶身份認證系統(tǒng)為移動APP簽發(fā)移動數(shù)字證書,移動APP獲取移動數(shù)字證書并本地存儲。
2.2.2 掃碼登錄協(xié)同簽名流程
Step 1用戶通過計算機訪問鐵路業(yè)務系統(tǒng)Web登錄網(wǎng)站,點擊掃碼登錄。
Step 2鐵路業(yè)務系統(tǒng)向服務端數(shù)字證書用戶身份認證系統(tǒng)請求二維碼,系統(tǒng)生成二維碼并推送至鐵路業(yè)務系統(tǒng)。
Step 3用戶使用移動終端掃描二維碼,鐵路業(yè)務系統(tǒng)將二維碼中待簽名消息發(fā)送給移動APP。
Step 4移動APP收到鐵路業(yè)務系統(tǒng)的待簽名消息后,生成臨時公私鑰對(PTmp,dTmp),并將公鑰PTmp和待簽名消息發(fā)送給密碼協(xié)作系統(tǒng)。
Step 5密碼協(xié)作系統(tǒng)收到后生成臨時公私鑰對(PSTmp,dSTmp),并計算生成簽名消息摘要。
Step 6密碼協(xié)作系統(tǒng)根據(jù)臨時公鑰PTmp、簽名消息摘要和固定私鑰dB完成協(xié)同簽名操作,并將生成的部分簽名結果發(fā)送給移動APP。
Step 7移動APP根據(jù)部分簽名結果,利用自身的固定私鑰dC和臨時私鑰dTmp進行簽名授權,得到符合標準協(xié)議的簽名報文,最終合成協(xié)同簽名后,將簽名報文、簽名消息和數(shù)字證書發(fā)給服務端數(shù)字證書用戶身份認證系統(tǒng)。
2.2.3 掃碼登錄驗證流程
Step 1服務端數(shù)字證書用戶身份認證系統(tǒng)對完整簽名報文進行驗簽,并對數(shù)字證書進行有效性驗證。
Step 2若簽名驗證和證書有效性驗證成功,則將驗證成功的報文發(fā)送給鐵路業(yè)務系統(tǒng)。
Step 3鐵路業(yè)務系統(tǒng)收到驗證成功結果,掃碼登錄成功,業(yè)務系統(tǒng)允許用戶登錄,流程結束。
目前,該移動數(shù)字認證技術方案已廣泛應用于95306中國鐵路貨運電子商務平臺。2023年度,完成移動端登錄4 958 791次,支持2 623 699筆訂單完成數(shù)字簽名。
本文通過對基于移動數(shù)字證書的鐵路身份認證方案進行設計與研究,切實有效地將密碼技術與鐵路業(yè)務系統(tǒng)相融合[15],可為移動終端提供移動證書和協(xié)同簽名服務,在滿足密碼安全要求的同時兼顧業(yè)務應用的便捷性和實用性,充分說明該方案的技術可行性及可擴展性,具備良好的潛在推廣價值,在實現(xiàn)鐵路數(shù)字化建設和提高生產(chǎn)力方面具有重要意義[16]。