李春梅,柴 涌,汪小勇
(卡斯柯信號(hào)有限公司,上海 200071)
信號(hào)系統(tǒng)應(yīng)用國(guó)產(chǎn)加密技術(shù)通常有以下幾種:在既有信號(hào)系統(tǒng)設(shè)備的基礎(chǔ)上,增加國(guó)密安全芯片等相關(guān)設(shè)備;使用國(guó)產(chǎn)商用密碼分組標(biāo)準(zhǔn)對(duì)稱(SM1)算法對(duì)通信數(shù)據(jù)提供機(jī)密性保護(hù);使用國(guó)產(chǎn)商用密碼橢圓曲線公鑰(SM2)算法對(duì)通信數(shù)據(jù)提供可鑒別性保護(hù)和不可否認(rèn)性保護(hù);使用國(guó)產(chǎn)商用密碼雜湊(SM3)算法對(duì)通信數(shù)據(jù)提供完整性保護(hù)。
公鑰基礎(chǔ)設(shè)施(Public Key Infrastructure,PKI)也稱為公開(kāi)密鑰基礎(chǔ)設(shè)施,按照國(guó)際電聯(lián)制定的X.509標(biāo)準(zhǔn),PKI是一個(gè)包括硬件、軟件、人員、策略和規(guī)程的集合,用來(lái)實(shí)現(xiàn)基于公鑰密碼體制的密鑰和證書(shū)的產(chǎn)生、管理、存儲(chǔ)、分發(fā)和撤銷等功能。PKI是一種遵循標(biāo)準(zhǔn)、利用公鑰加密技術(shù)提供安全基礎(chǔ)平臺(tái)的技術(shù)和規(guī)范,能夠?yàn)榫W(wǎng)絡(luò)應(yīng)用提供密碼服務(wù)的基本解決方案。PKI解決了大規(guī)模網(wǎng)絡(luò)中的公鑰分發(fā)和信任建立問(wèn)題。
提供一種在應(yīng)用國(guó)產(chǎn)加密技術(shù)的信號(hào)系統(tǒng)中,基于傳統(tǒng)PKI模型進(jìn)行適應(yīng)性改造并使用SM2算法完成身份驗(yàn)證的方法,由此信號(hào)系統(tǒng)的通信數(shù)據(jù)得到可鑒別性保護(hù)和不可否認(rèn)性保護(hù),同時(shí)也為使用SM1、SM3算法對(duì)通信數(shù)據(jù)提供機(jī)密性保護(hù)和完整性保護(hù)打下了前提基礎(chǔ)。
PKI一般由認(rèn)證權(quán)威機(jī)構(gòu)(Certification Authority,CA)、注冊(cè)權(quán)威機(jī)構(gòu)(Registration Authority,RA)、 證 書(shū) /證 書(shū) 吊 銷 列 表(Certi fi cate Revocation List,CRL)庫(kù)和終端實(shí)體等部分組成,如圖1所示,主要元素說(shuō)明如下。
圖1 PKI模型標(biāo)準(zhǔn)結(jié)構(gòu)Fig.1 PKI model standard structure
1) CA
數(shù)字證書(shū)是各實(shí)體的身份證明,具有唯一性和權(quán)威性。為滿足這一要求,需要建立一個(gè)可信的機(jī)構(gòu),專門負(fù)責(zé)數(shù)字證書(shū)的產(chǎn)生、發(fā)放和管理,以保證數(shù)字證書(shū)真實(shí)可靠,這個(gè)機(jī)構(gòu)就是認(rèn)證權(quán)威機(jī)構(gòu)CA,也稱數(shù)字證書(shū)管理中心,它作為PKI管理實(shí)體和服務(wù)的提供者,管理用戶數(shù)字證書(shū)的生成、發(fā)放、更新和撤銷等。CA是PKI的核心組成部分,PKI體系也往往被稱為PKI/CA體系。
2) RA
RA又稱證書(shū)注冊(cè)中心,是受CA委派,負(fù)責(zé)和終端實(shí)體交互的、接受數(shù)字證書(shū)申請(qǐng)并進(jìn)行審核的機(jī)構(gòu),同時(shí)也是CA認(rèn)證機(jī)構(gòu)的延伸,有時(shí)也稱為用戶注冊(cè)系統(tǒng)。在邏輯上RA和CA是一個(gè)整體,主要負(fù)責(zé)證書(shū)注冊(cè)、審核以及發(fā)證。
3) 證書(shū)/CRL庫(kù)
證書(shū)/CRL庫(kù)主要用來(lái)發(fā)布、存儲(chǔ)數(shù)字證書(shū)和證書(shū)撤銷列表,供用戶查詢、獲取其他用戶的數(shù)字證書(shū),為系統(tǒng)中的CRL所用。在信號(hào)系統(tǒng)中,鑒于證書(shū)/CRL庫(kù)的使用頻率不高,所需存儲(chǔ)空間也不大,故將證書(shū)/CRL庫(kù)和CA設(shè)置安裝在一個(gè)硬件服務(wù)器中,共同使用硬件設(shè)備。
4) 終端實(shí)體
終端實(shí)體(end entity)是只擁有公/私鑰對(duì)和相應(yīng)公鑰證書(shū)的最終用戶,可以是人、設(shè)備、進(jìn)程等。在信號(hào)系統(tǒng)中,終端實(shí)體指代分布于信號(hào)系統(tǒng)各子系統(tǒng)上的國(guó)密安全芯片設(shè)備。
國(guó)密安全設(shè)備與信號(hào)系統(tǒng)集成后的結(jié)構(gòu)如圖2所示,應(yīng)用層設(shè)備由車載子系統(tǒng)(CC),軌旁子系統(tǒng)(ZC/LC),聯(lián)鎖子系統(tǒng)(CI),列車監(jiān)控子系統(tǒng)(ATS),維護(hù)子系統(tǒng)(MSS)幾個(gè)子系統(tǒng)組成,見(jiàn)圖2中黃色部分,在應(yīng)用層設(shè)備上增加國(guó)密安全芯片。通信層設(shè)備為通信子系統(tǒng)(DCS)設(shè)備,見(jiàn)圖2中綠色部分。本方案結(jié)合信號(hào)系統(tǒng)架構(gòu)和PKI模型,增加CA服務(wù)器(含證書(shū)/CRL數(shù)據(jù)庫(kù))和RA服務(wù)器,見(jiàn)圖2中紅色部分。
圖2 信號(hào)系統(tǒng)與國(guó)密安全設(shè)備集成結(jié)構(gòu)Fig.2 Signal system and state security equipment integration structure
信號(hào)系統(tǒng)的身份認(rèn)證包含以下幾個(gè)階段,其中1~4階段為線下人工操作,如圖3所示;5~6為線上軟件行為,如圖4、5所示。
圖3 線下證書(shū)操作Fig.3 Off-line certificate operation
圖4 會(huì)話密鑰協(xié)商階段的身份驗(yàn)證Fig.4 Authentication during the session key negotiation phase
圖5 CRL查詢下載Fig.5 CRL query and download
1) 證書(shū)申請(qǐng)
信號(hào)系統(tǒng)通過(guò)固定的終端,使用特定的支持PKI的應(yīng)用程序,向CA申請(qǐng)數(shù)字證書(shū)給指定的國(guó)密安全芯片。該終端與CA通過(guò)網(wǎng)絡(luò)連接,同時(shí)指定的國(guó)密安全芯片必須安裝在該終端上。
2) 證書(shū)生成
一旦信號(hào)系統(tǒng)申請(qǐng)了數(shù)字證書(shū),CA就將根據(jù)其建立的認(rèn)證策略驗(yàn)證國(guó)密安全芯片設(shè)備信息。如果確定信息有效,則CA創(chuàng)建該證書(shū)。
3) 證書(shū)存儲(chǔ)
CA在生成證書(shū)后,通過(guò)網(wǎng)絡(luò)把證書(shū)發(fā)回給國(guó)密安全芯片設(shè)備。數(shù)字證書(shū)將被保存在國(guó)密安全芯片設(shè)備里。
4) 證書(shū)發(fā)布
CA除了將生成的數(shù)字證書(shū)發(fā)回給國(guó)密安全芯片設(shè)備外,還會(huì)將自身設(shè)備的數(shù)字證書(shū)發(fā)送到所有申請(qǐng)的國(guó)密安全芯片設(shè)備中。CA確保數(shù)字證書(shū)中信息的真實(shí)性,可以作為終端實(shí)體的身份證明。
5) 證書(shū)校驗(yàn)
信號(hào)系統(tǒng)使用國(guó)密安全芯片設(shè)備時(shí),不同的國(guó)密安全芯片設(shè)備在會(huì)話階段使用存儲(chǔ)在自身芯片中的CA根證書(shū)驗(yàn)證對(duì)方身份證書(shū),只有驗(yàn)證通過(guò)后才會(huì)繼續(xù)進(jìn)行會(huì)話,驗(yàn)證未通過(guò)則經(jīng)過(guò)嘗試(嘗試次數(shù)可以配置)后中斷會(huì)話密鑰協(xié)商。即會(huì)話密鑰協(xié)商必須以身份驗(yàn)證為前提。
6) 證書(shū)廢止
國(guó)密安全芯片設(shè)備的數(shù)字證書(shū)不配置特定的到期時(shí)間,避免分布安裝在信號(hào)系統(tǒng)內(nèi)的國(guó)密安全芯片設(shè)備需要頻繁拆解、集中更新、重新安裝的問(wèn)題。如果需要撤銷某一特定證書(shū),可以由CA將這一撤銷事實(shí)發(fā)布到CRL中,使所有國(guó)密安全芯片設(shè)備都可以查詢。CRL是由CA簽名的一組電子文檔,包括被撤銷證書(shū)的唯一標(biāo)識(shí)(證書(shū)序列號(hào))。出于減少信號(hào)系統(tǒng)網(wǎng)絡(luò)吞吐量和系統(tǒng)負(fù)荷考慮,信號(hào)系統(tǒng)內(nèi)的國(guó)密安全芯片設(shè)備需要定期連接CA查詢CRL,在查詢同時(shí)下載CRL并保存到芯片內(nèi)部,在下一個(gè)查詢周期前國(guó)密安全芯片將一直將此CRL視為最新并使用。
本文描述的信號(hào)系統(tǒng)與國(guó)密安全設(shè)備集成后,在設(shè)備啟動(dòng)時(shí)首先進(jìn)行一次CRL更新,如果更新成功,則以更新后的CRL為準(zhǔn);如果多次嘗試(嘗試次數(shù)可以配置)后仍然無(wú)法更新成功,則跳過(guò)本次CRL更新,以上一次更新成功的CRL為準(zhǔn),對(duì)于沒(méi)有任何成功更新經(jīng)驗(yàn)的設(shè)備來(lái)說(shuō),CRL為空。設(shè)備啟動(dòng)后,每隔固定間隔(間隔時(shí)間可以配置)進(jìn)行一次CRL更新,以保證CRL保持最新,其更新判斷與第一次更新相同,對(duì)于未更新成功的情況,信號(hào)系統(tǒng)設(shè)備會(huì)發(fā)出告警至維護(hù)子系統(tǒng),提醒運(yùn)維人員注意查驗(yàn)。詳細(xì)流程如圖6所示。
圖6 CRL更新流程圖Fig.6 CRL update flowchart
在會(huì)話階段,客戶端首先發(fā)起會(huì)話請(qǐng)求,請(qǐng)求消息中包含了客戶端的證書(shū);服務(wù)端收到請(qǐng)求后,驗(yàn)證客戶端證書(shū)(CRL、有效期、簽發(fā)者關(guān)系、以及簽名數(shù)據(jù))后,再通過(guò)客戶端的證書(shū),服務(wù)端證書(shū)及服務(wù)端本地生成的隨機(jī)數(shù),根據(jù)SM2算法生成會(huì)話密鑰,然后對(duì)客戶端請(qǐng)求進(jìn)行響應(yīng),并向客戶端發(fā)送服務(wù)端證書(shū)與隨機(jī)數(shù);同樣,客戶端收到回復(fù)后,驗(yàn)證服務(wù)端證書(shū)(CRL、有效期、簽發(fā)者關(guān)系、以及簽名數(shù)據(jù))后,再根據(jù)客戶端的證書(shū),服務(wù)端證書(shū)及服務(wù)端本地生成的隨機(jī)數(shù),通過(guò)SM2算法生成會(huì)話密鑰,并對(duì)服務(wù)端響應(yīng)進(jìn)行確認(rèn),向服務(wù)器端發(fā)送會(huì)話密鑰。詳細(xì)流程如圖7所示。
圖7 會(huì)話階段身份認(rèn)證流程圖Fig.7 Authentication flow chart during session phase
本文提出一種在城市軌道交通信號(hào)系統(tǒng)中,基于傳統(tǒng)PKI模型進(jìn)行改造并使用國(guó)產(chǎn)密碼算法進(jìn)行身份驗(yàn)證的方法。實(shí)際應(yīng)用結(jié)果表明,與現(xiàn)有技術(shù)相比本方法具有以下優(yōu)點(diǎn)。
1) 針對(duì)采用國(guó)產(chǎn)加密技術(shù)的信號(hào)系統(tǒng),使用SM2算法進(jìn)行身份驗(yàn)證,使信號(hào)系統(tǒng)的通信數(shù)據(jù)得到可鑒別性保護(hù)和不可否認(rèn)性保護(hù);
2) 基于KPI模型改進(jìn),使身份驗(yàn)證機(jī)制各階段的工作流程更好的適配于信號(hào)系統(tǒng);
3) 提供旁路功能,即使身份驗(yàn)證機(jī)制出現(xiàn)問(wèn)題,仍然能夠保證信號(hào)系統(tǒng)的運(yùn)行不受影響,并提供告警功能,可以在最大程度上保證身份驗(yàn)證功能的可維護(hù)性;
4) 保證信號(hào)系統(tǒng)既有功能和安全等級(jí)不受影響。