潘紅芹,馬建,鄧敏麗,紀(jì)方
鐵路各業(yè)務(wù)系統(tǒng)中已廣泛使用基于數(shù)字證書的身份認(rèn)證技術(shù)架構(gòu)來實(shí)現(xiàn)用戶的身份認(rèn)證。傳統(tǒng)方式中,利用專用的USBKey、TF卡等硬件設(shè)備來存儲并保護(hù)私鑰,需要簽名時(shí),通過中間件配合調(diào)用硬件設(shè)備完成數(shù)字簽名運(yùn)算。用戶的密鑰始終掌握在自己手中,是傳統(tǒng)硬件密碼介質(zhì)應(yīng)用的安全基礎(chǔ)。在移動(dòng)互聯(lián)網(wǎng)時(shí)代,越來越多的簽名業(yè)務(wù)逐步遷移到移動(dòng)端,用戶僅需通過聯(lián)網(wǎng)的移動(dòng)智能設(shè)備(手機(jī)、IPad)就可以完成日常辦公與業(yè)務(wù)操作。但傳統(tǒng)硬件密碼介質(zhì)卻難以在移動(dòng)端發(fā)揮作用:①攜帶不便,用戶需要在手機(jī)之外攜帶額外的硬件介質(zhì);②硬件接口無法對接,手機(jī)端無法提供對接傳統(tǒng)密碼的USB接口;③中間件開發(fā)困難,針對硬件調(diào)用的中間件開發(fā)難度大。
因此,需研究適用于鐵路移動(dòng)業(yè)務(wù)架構(gòu)的新型去介質(zhì)身份認(rèn)證技術(shù)方案,保證可直接運(yùn)行在移動(dòng)設(shè)備上實(shí)現(xiàn)安全合規(guī)的數(shù)字簽名。為此,本文設(shè)計(jì)了基于移動(dòng)數(shù)字證書的鐵路身份認(rèn)證系統(tǒng)(簡稱“數(shù)字證書用戶身份認(rèn)證系統(tǒng)”),實(shí)現(xiàn)移動(dòng)端用戶基于移動(dòng)數(shù)字證書的鐵路業(yè)務(wù)安全接入。
移動(dòng)數(shù)字證書[1]作為數(shù)字證書面向移動(dòng)業(yè)務(wù)應(yīng)用的具象化展現(xiàn)類型,是一種基于公鑰基礎(chǔ)設(shè)施[2](Public Key Infrastructure,PKI)的新型身份認(rèn)證手段,依托數(shù)字證書載體,為移動(dòng)端用戶提供安全身份認(rèn)證功能,通過密鑰分割和數(shù)字證書技術(shù),采用協(xié)同簽名[3]應(yīng)用模式提供服務(wù),完成在移動(dòng)端無硬件存儲介質(zhì)情況下的數(shù)字簽名,并滿足國家及行業(yè)關(guān)于電子簽名服務(wù)技術(shù)要求。通過研究協(xié)同簽名技術(shù)架構(gòu)和協(xié)同簽名應(yīng)用模式,充分論證方案的技術(shù)路線和可行性。
協(xié)同簽名技術(shù)是一種用于驗(yàn)證數(shù)據(jù)來源和完整性的身份驗(yàn)證技術(shù),在移動(dòng)互聯(lián)網(wǎng)安全接入和移動(dòng)端掃碼登錄等應(yīng)用場景廣泛使用[4]。用于電子簽名的密鑰通常分為服務(wù)端密鑰分量與客戶端密鑰分量2個(gè)部分,客戶端密鑰分量由用戶移動(dòng)端中的協(xié)同密碼組件生成并本地加密存儲,服務(wù)端密鑰分量由簽名服務(wù)端生成并加密存儲于密鑰庫中。
基于云計(jì)算的協(xié)同簽名服務(wù)典型技術(shù)架構(gòu)由云簽名服務(wù)、簽名方和依賴方組成,見圖1。云簽名服務(wù)提供用戶管理服務(wù)、密鑰管理服務(wù)和協(xié)同簽名服務(wù),并提供與服務(wù)相匹配的安全管理和策略管理;簽名方和依賴方作為鐵路業(yè)務(wù)系統(tǒng)的用戶,可通過云簽名服務(wù)的交互協(xié)議或應(yīng)用編程接口,使用云簽名服務(wù)完成電子簽名。CA(Certification Authority)認(rèn)證中心作為第三方支撐服務(wù),向簽名者提供電子認(rèn)證服務(wù),并對數(shù)字證書進(jìn)行全生命周期管理。

圖1 基于云計(jì)算的協(xié)同簽名服務(wù)典型技術(shù)架構(gòu)
簽名方使用帶有密碼模塊的終端、應(yīng)用程序或應(yīng)用系統(tǒng)對制作電子簽名的過程進(jìn)行控制和確認(rèn)。簽名方將電子簽名的一部分功能委托給云簽名服務(wù)來完成,簽名方使用協(xié)同密碼組件進(jìn)行簽名計(jì)算,云簽名服務(wù)使用密碼設(shè)備完成服務(wù)端簽名計(jì)算,最終由簽名方合成完整的簽名結(jié)果。依賴方判斷簽名方提供的電子簽名及相關(guān)數(shù)據(jù)有效后進(jìn)行后續(xù)業(yè)務(wù)操作。協(xié)同簽名技術(shù)中協(xié)同密鑰管理機(jī)制保證了電子簽名完整的密鑰不在簽名方或云簽名服務(wù)出現(xiàn),密鑰的服務(wù)端分量、客戶端分量不在網(wǎng)絡(luò)上傳輸,也不能由網(wǎng)絡(luò)傳輸?shù)臄?shù)據(jù)計(jì)算得出,杜絕了用戶簽名私鑰暴露的風(fēng)險(xiǎn),無需額外的硬件介質(zhì)進(jìn)行密鑰的存儲,保證簽名密鑰安全性。
移動(dòng)端依托數(shù)字證書為載體,采用協(xié)同簽名技術(shù),保證移動(dòng)端掃碼登錄的身份認(rèn)證安全。協(xié)同簽名典型應(yīng)用模式見圖2,流程如下:

圖2 協(xié)同簽名典型應(yīng)用模式
Step 1業(yè)務(wù)系統(tǒng)向簽名服務(wù)端發(fā)起簽名請求。
Step 2簽名服務(wù)端向終端設(shè)備推送簽名請求,此時(shí)終端設(shè)備可通過與簽名相關(guān)的業(yè)務(wù)活動(dòng)情況對簽名請求進(jìn)行確認(rèn)。
Step 3終端設(shè)備向簽名服務(wù)端推送簽名服務(wù)。
Step 4簽名服務(wù)端查詢該請求者的密鑰,檢索服務(wù)端密鑰分量和證書。
Step 5簽名服務(wù)端調(diào)用密碼設(shè)備/密碼模塊進(jìn)行服務(wù)端協(xié)同簽名。
Step 6簽名服務(wù)端向終端設(shè)備返回服務(wù)端部分簽名結(jié)果。
Step 7終端設(shè)備通過簽名服務(wù)客戶端中間件調(diào)用協(xié)同簽名模塊,使用客戶端密鑰分量進(jìn)行協(xié)同簽名,合成完整簽名。
Step 8終端設(shè)備向簽名服務(wù)端提交完整簽名結(jié)果。
Step 9簽名服務(wù)端驗(yàn)證簽名結(jié)果。
Step 10簽名服務(wù)端向業(yè)務(wù)系統(tǒng)返回簽名驗(yàn)證結(jié)果。
Step 11驗(yàn)證成功后,業(yè)務(wù)系統(tǒng)允許終端設(shè)備進(jìn)行操作訪問。
從協(xié)同簽名應(yīng)用合規(guī)性、便捷性、高效性、可追溯性4個(gè)方面開展方案優(yōu)勢分析。
1)合規(guī)性:移動(dòng)數(shù)字證書應(yīng)用符合《基于云計(jì)算的電子簽名服務(wù)技術(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]等國家密碼應(yīng)用相關(guān)標(biāo)準(zhǔn)要求。本方案中移動(dòng)客戶端應(yīng)用的協(xié)同密碼組件符合《密碼模塊安全技術(shù)要求》(GM/T 0028—2014)[10]安全等級第二級認(rèn)證。
2)便攜性:移動(dòng)數(shù)字證書存儲在移動(dòng)設(shè)備中,用戶可以隨時(shí)隨地進(jìn)行身份認(rèn)證,無需攜帶其他硬件存儲介質(zhì)。
3)高效性:移動(dòng)數(shù)字證書充分結(jié)合鐵路業(yè)務(wù)系統(tǒng)移動(dòng)應(yīng)用需求,將拔插USBKey、PIN碼校驗(yàn)等傳統(tǒng)操作模式轉(zhuǎn)變?yōu)樯锾卣髯R別或短信認(rèn)證等方式[11],降低密碼應(yīng)用復(fù)雜度,提升應(yīng)用效率。
4)可追溯性:移動(dòng)數(shù)字證書具有可追溯性,可以對用戶的簽名行為進(jìn)行跟蹤和記錄,方便有關(guān)部門進(jìn)行監(jiān)管和調(diào)查。
針對鐵路業(yè)務(wù)在移動(dòng)互聯(lián)網(wǎng)環(huán)境下的身份認(rèn)證需求,選取移動(dòng)APP掃碼登錄業(yè)務(wù)作為本方案重點(diǎn)研究場景,通過建設(shè)數(shù)字證書用戶身份認(rèn)證系統(tǒng)實(shí)現(xiàn)移動(dòng)端用戶的身份認(rèn)證。系統(tǒng)分別部署于內(nèi)部服務(wù)網(wǎng)、外部服務(wù)網(wǎng)和互聯(lián)網(wǎng)移動(dòng)終端,通過調(diào)用移動(dòng)互聯(lián)網(wǎng)安全接入平臺、安全平臺等接口,完成內(nèi)外網(wǎng)數(shù)據(jù)交互,實(shí)現(xiàn)移動(dòng)終端數(shù)字證書申請、證書簽發(fā)、證書更新、證書注銷、證書有效性驗(yàn)證、協(xié)同簽名、掃碼認(rèn)證等功能,為業(yè)務(wù)應(yīng)用系統(tǒng)提供統(tǒng)一的身份認(rèn)證服務(wù)。數(shù)字證書用戶身份認(rèn)證系統(tǒng)技術(shù)架構(gòu)見圖3中綠色部分。

圖3 數(shù)字證書用戶身份認(rèn)證系統(tǒng)技術(shù)架構(gòu)
1)內(nèi)網(wǎng)數(shù)字證書用戶身份認(rèn)證系統(tǒng)。調(diào)用服務(wù)器密碼機(jī)接口,與鐵路業(yè)務(wù)系統(tǒng)交互,實(shí)現(xiàn)數(shù)字證書身份認(rèn)證和移動(dòng)端數(shù)字證書的全生命周期管理。
2)外網(wǎng)數(shù)字證書用戶身份認(rèn)證系統(tǒng)。密碼協(xié)作系統(tǒng)為移動(dòng)終端提供服務(wù)端協(xié)同簽名運(yùn)算和密鑰安全存儲;外網(wǎng)收發(fā)服務(wù)為移動(dòng)終端和內(nèi)網(wǎng)數(shù)字證書用戶身份認(rèn)證系統(tǒng)提供數(shù)據(jù)收發(fā)服務(wù)。
3)移動(dòng)APP。移動(dòng)APP通過接口調(diào)用方式實(shí)現(xiàn)移動(dòng)端密鑰分量的生成及本地加密存儲,生成的移動(dòng)端密鑰分量可與服務(wù)端協(xié)商合成完整密鑰,并向服務(wù)端數(shù)字證書用戶身份認(rèn)證系統(tǒng)申請移動(dòng)數(shù)字證書。用戶通過移動(dòng)終端上的生物認(rèn)證方式調(diào)用協(xié)同密碼組件實(shí)現(xiàn)移動(dòng)端電子簽名和身份認(rèn)證[12]。其中,協(xié)同密碼組件通常以軟件開發(fā)工具包形式對外提供密鑰生成、證書申請、協(xié)同簽名等服務(wù),可與移動(dòng)端鐵路各類APP應(yīng)用進(jìn)行集成,支持移動(dòng)端Android、IOS、鴻蒙[13]等主流操作系統(tǒng)。
從用戶移動(dòng)數(shù)字證書申請,到基于移動(dòng)數(shù)字證書完成協(xié)同簽名及系統(tǒng)驗(yàn)證,最終實(shí)現(xiàn)用戶掃碼登錄業(yè)務(wù)系統(tǒng),整個(gè)業(yè)務(wù)應(yīng)用流程形成有效閉環(huán),實(shí)現(xiàn)了基于移動(dòng)數(shù)字證書的身份認(rèn)證[14],見圖4。

圖4 掃碼登錄業(yè)務(wù)應(yīng)用流程
2.2.1 移動(dòng)數(shù)字證書申請流程
Step 1移動(dòng)APP通過調(diào)用協(xié)同密碼組件注冊生成一對與用戶永久綁定的固定公私鑰對(PC,dC),將移動(dòng)端自身固定公鑰PC發(fā)送給密碼協(xié)作系統(tǒng)。
Step 2密碼協(xié)作系統(tǒng)根據(jù)公鑰PC生成與用戶綁定的固定公私鑰對(PB,dB),同時(shí)計(jì)算生成簽名公鑰P并發(fā)布。
Step 3移動(dòng)APP調(diào)用協(xié)同密碼組件利用簽名公鑰P計(jì)算生成P10文件(證書簽發(fā)請求),發(fā)送給服務(wù)端數(shù)字證書用戶身份認(rèn)證系統(tǒng)。
Step 4服務(wù)端數(shù)字證書用戶身份認(rèn)證系統(tǒng)為移動(dòng)APP簽發(fā)移動(dòng)數(shù)字證書,移動(dòng)APP獲取移動(dòng)數(shù)字證書并本地存儲。
2.2.2 掃碼登錄協(xié)同簽名流程
Step 1用戶通過計(jì)算機(jī)訪問鐵路業(yè)務(wù)系統(tǒng)Web登錄網(wǎng)站,點(diǎn)擊掃碼登錄。
Step 2鐵路業(yè)務(wù)系統(tǒng)向服務(wù)端數(shù)字證書用戶身份認(rèn)證系統(tǒng)請求二維碼,系統(tǒng)生成二維碼并推送至鐵路業(yè)務(wù)系統(tǒng)。
Step 3用戶使用移動(dòng)終端掃描二維碼,鐵路業(yè)務(wù)系統(tǒng)將二維碼中待簽名消息發(fā)送給移動(dòng)APP。
Step 4移動(dòng)APP收到鐵路業(yè)務(wù)系統(tǒng)的待簽名消息后,生成臨時(shí)公私鑰對(PTmp,dTmp),并將公鑰PTmp和待簽名消息發(fā)送給密碼協(xié)作系統(tǒng)。
Step 5密碼協(xié)作系統(tǒng)收到后生成臨時(shí)公私鑰對(PSTmp,dSTmp),并計(jì)算生成簽名消息摘要。
Step 6密碼協(xié)作系統(tǒng)根據(jù)臨時(shí)公鑰PTmp、簽名消息摘要和固定私鑰dB完成協(xié)同簽名操作,并將生成的部分簽名結(jié)果發(fā)送給移動(dòng)APP。
Step 7移動(dòng)APP根據(jù)部分簽名結(jié)果,利用自身的固定私鑰dC和臨時(shí)私鑰dTmp進(jìn)行簽名授權(quán),得到符合標(biāo)準(zhǔn)協(xié)議的簽名報(bào)文,最終合成協(xié)同簽名后,將簽名報(bào)文、簽名消息和數(shù)字證書發(fā)給服務(wù)端數(shù)字證書用戶身份認(rèn)證系統(tǒng)。
2.2.3 掃碼登錄驗(yàn)證流程
Step 1服務(wù)端數(shù)字證書用戶身份認(rèn)證系統(tǒng)對完整簽名報(bào)文進(jìn)行驗(yàn)簽,并對數(shù)字證書進(jìn)行有效性驗(yàn)證。
Step 2若簽名驗(yàn)證和證書有效性驗(yàn)證成功,則將驗(yàn)證成功的報(bào)文發(fā)送給鐵路業(yè)務(wù)系統(tǒng)。
Step 3鐵路業(yè)務(wù)系統(tǒng)收到驗(yàn)證成功結(jié)果,掃碼登錄成功,業(yè)務(wù)系統(tǒng)允許用戶登錄,流程結(jié)束。
目前,該移動(dòng)數(shù)字認(rèn)證技術(shù)方案已廣泛應(yīng)用于95306中國鐵路貨運(yùn)電子商務(wù)平臺。2023年度,完成移動(dòng)端登錄4 958 791次,支持2 623 699筆訂單完成數(shù)字簽名。
本文通過對基于移動(dòng)數(shù)字證書的鐵路身份認(rèn)證方案進(jìn)行設(shè)計(jì)與研究,切實(shí)有效地將密碼技術(shù)與鐵路業(yè)務(wù)系統(tǒng)相融合[15],可為移動(dòng)終端提供移動(dòng)證書和協(xié)同簽名服務(wù),在滿足密碼安全要求的同時(shí)兼顧業(yè)務(wù)應(yīng)用的便捷性和實(shí)用性,充分說明該方案的技術(shù)可行性及可擴(kuò)展性,具備良好的潛在推廣價(jià)值,在實(shí)現(xiàn)鐵路數(shù)字化建設(shè)和提高生產(chǎn)力方面具有重要意義[16]。