田宏達(dá) ,郭軍強(qiáng) ,劉棟青 ,張 韋
(1.北京全路通信信號(hào)研究設(shè)計(jì)院集團(tuán)有限公司,北京 100070;2.北京市高速鐵路運(yùn)行控制系統(tǒng)工程技術(shù)研究中心,北京 100070)
ETCS 列控系統(tǒng)車地安全信號(hào)設(shè)備建立安全通信時(shí),為保證雙方交互消息的真實(shí)性及完整性,需在每次對(duì)話開(kāi)始時(shí)進(jìn)行對(duì)端標(biāo)識(shí)校驗(yàn)和身份認(rèn)證,并生成會(huì)話密鑰,通過(guò)會(huì)話密鑰對(duì)此次會(huì)話的消息進(jìn)行保護(hù)。身份認(rèn)證及會(huì)話密鑰生成是基于ETCS密鑰管理系統(tǒng)預(yù)先安裝的KMAC 密鑰,因此密鑰管理功能是安全信號(hào)設(shè)備間通信的安全基礎(chǔ)。
ETCS 密鑰管理系統(tǒng)負(fù)責(zé)ETCS 體系下安全信號(hào)設(shè)備之間的密鑰管理功能,密鑰管理包含的主要功能有:密鑰生成、存儲(chǔ)、安全分配、解除、銷毀和應(yīng)用等操作。
ETCS 系統(tǒng)使用三級(jí)密鑰機(jī)制,密鑰等級(jí)劃分如表1 所示,密鑰管理主要涉及KMAC、KTRANS和K-KMC 密鑰。
ETCS 密鑰管理系統(tǒng)主要由密鑰管理中心KMC, 安全信號(hào)設(shè)備組成。安全信號(hào)設(shè)備為使用KMAC 密鑰的設(shè)備,所以在密鑰管理系統(tǒng)中稱之為KMAC 實(shí)體。三級(jí)密鑰在密鑰管理系統(tǒng)的產(chǎn)生及流向如圖1 所示。
表 1 ETCS系統(tǒng)密鑰等級(jí)劃分表Tab.1 Table for key grade division of ETCS system
如上所述,密鑰管理系統(tǒng)主要由密鑰管理中心KMC、數(shù)字證書(shū)中心CA 及KMAC 實(shí)體組成,一個(gè)KMAC 實(shí)體由一個(gè)KMC 負(fù)責(zé)為其管理密鑰,將該KMC 稱為KMAC 實(shí)體的Home KMC。密鑰管理系統(tǒng)組成如圖2 所示。
圖1 ETCS各分級(jí)密鑰的流向圖Fig.1 Flow graph for each grading key of ETCS system
圖2 ETCS密鑰管理系統(tǒng)組成Fig.2 The composition of ETCS key management system
KMC 作為密鑰管理的核心設(shè)備,由KMC 主機(jī)、操作顯示終端和密碼機(jī)組成。KMC 主機(jī)負(fù)責(zé)實(shí)現(xiàn)密鑰管理邏輯功能(生成、添加、刪除、更新、查詢及存儲(chǔ)密鑰等);操作顯示終端負(fù)責(zé)與操作人員交互進(jìn)行密鑰管理操作與維護(hù);密碼機(jī)負(fù)責(zé)生成密鑰,密碼機(jī)采用國(guó)家密碼管理局批準(zhǔn)的硬件芯片生成高質(zhì)量的真隨機(jī)數(shù),保證密鑰的高強(qiáng)度。
CA 數(shù)字證書(shū)中心采用數(shù)字證書(shū)對(duì)KMC 及KMAC 實(shí)體進(jìn)行身份認(rèn)證,包括向KMC 和KMAC實(shí)體簽發(fā)用于TLS 連接的數(shù)字證書(shū)及數(shù)字證書(shū)狀態(tài)改變后(例如證書(shū)廢止)向TLS連接雙方反饋?zhàn)C書(shū)有效性。證書(shū)簽發(fā)應(yīng)遵循CMP 協(xié)議,證書(shū)驗(yàn)證應(yīng)遵循OCSP 協(xié)議。ETCS 密鑰管理系統(tǒng)CA 體系結(jié)構(gòu)如圖3 所示,采用分級(jí)結(jié)構(gòu)。
圖3 CA體系結(jié)構(gòu)Fig.3 CA architecture
密鑰管理中心可采用在線和離線兩種方式向KMAC 實(shí)體執(zhí)行密鑰的增加、更新、查詢和刪除操作。
在線密鑰管理方式下,KMC 與KMAC 實(shí)體間、KMC 間接口遵循Subset-137 規(guī)范執(zhí)行消息交互,通過(guò)網(wǎng)絡(luò)在線傳輸密鑰。為了防止傳輸過(guò)程中密鑰數(shù)據(jù)被監(jiān)聽(tīng)或篡改,在線密鑰管理通過(guò)KMC與KMAC 實(shí)體、KMC 間建立TLS 連接,來(lái)保證交互內(nèi)容加密、身份認(rèn)證和數(shù)據(jù)完整性。Subset-137規(guī)定TLS 應(yīng)采用基于TLS-PSK 體系或基于TLSPKI 體系兩種方式進(jìn)行密鑰管理系統(tǒng)內(nèi)設(shè)備的身份認(rèn)證,防止中間人攻擊,其中基于TLS-PSK 體系方式為基于TLS-PKI 體系的降級(jí)備份且不適用于KMC 間接口?;赥LS-PKI 體系的在線密鑰管理的具體算法及防御范圍如圖4 所示。
圖4 ETCS在線密鑰管理防御措施Fig.4 Defensive measures of ETCS on-line key management
基于TLS-PKI 體系的在線密鑰管理方式主要通過(guò)非對(duì)稱加密、對(duì)稱加密及散列算法3 種加密技術(shù)保證密鑰傳輸?shù)陌踩裕菍?duì)稱加密采用基于RSA公私鑰對(duì)的ECDHE 密鑰交換算法實(shí)現(xiàn)身份認(rèn)證和對(duì)稱密鑰協(xié)商,對(duì)稱加密采用非對(duì)稱加密協(xié)商的對(duì)稱密鑰并利用AES_256_GCM 算法對(duì)交互數(shù)據(jù)加密,基于SHA384 散列算法用于驗(yàn)證交互數(shù)據(jù)完整性。
當(dāng)KMAC 實(shí)體為軌旁設(shè)備時(shí),其為T(mén)LS 響應(yīng)方;當(dāng)KMAC 實(shí)體為車載設(shè)備時(shí),其為T(mén)LS 發(fā)起方;KMC 設(shè)備間需由運(yùn)營(yíng)規(guī)程約定TLS 發(fā)起方。KMAC 實(shí)體與KMC 建立TLS 連接后即可進(jìn)行密鑰管理應(yīng)用消息交互,TLS 消息將應(yīng)用消息加密為密文。KMAC 實(shí)體與KMC 交互密鑰管理消息采用應(yīng)答交互方式,即發(fā)送命令后只有收到對(duì)方回復(fù)才可進(jìn)行下一條命令的發(fā)送。基于TLS-PKI 體系的在線密鑰交互流程如圖5 所示。
在離線密鑰管理方式KMC 將密鑰管理命令消息寫(xiě)入可移動(dòng)設(shè)備,由操作人員離線傳遞至KMAC實(shí)體,完成密鑰的增加、更新和刪除操作。離線密鑰管理KMC 間接口遵循Subset-038 規(guī)范 ,KMC與KMAC 實(shí)體間接口遵循Subset-114 規(guī)范。
離線密鑰管理方式為了密鑰傳輸過(guò)程的安全,密鑰傳輸過(guò)程中需要使用傳輸密鑰對(duì)驗(yàn)證密鑰進(jìn)行加密。傳輸密鑰KTRANS 保證KMC 與KMAC實(shí)體間交互消息,由KTRANS1 和KTRANS2 組成,KTRANS1 負(fù)責(zé)保證交互消息的真實(shí)性和完整性,KTRANS2 用于加密交互的KMAC。傳輸密鑰K-KMC 負(fù)責(zé)保證KMC 之間交互消息,由K-KMC1 和K-KMC2 組 成,K-KMC1 負(fù)責(zé)保證KMC 之間交互消息的真實(shí)性和完整性,K-KMC2負(fù)責(zé)加密KMC 之間交互的KMAC。離線密鑰管理利用3DES 算法使用傳輸密鑰對(duì)KMAC 進(jìn)行加解密,如圖6 所示。
圖5 ETCS在線密鑰管理交互流程Fig.5 Interactive process of ETCS on-line key management
離線密鑰管理傳輸密鑰為明文, 因此還需制定額外管理規(guī)程保證離線密鑰傳輸?shù)陌踩?。管理?guī)程應(yīng)確保傳輸密鑰和加密后的KMAC 的存儲(chǔ)媒介必須獨(dú)立,在密鑰實(shí)施開(kāi)展前以及密鑰實(shí)施完成后,都應(yīng)禁止二者被合并保管或傳送。
本節(jié)以向?qū)儆诓煌琀ome KMC 的對(duì)端KMAC 實(shí)體添加密鑰為例子,說(shuō)明密鑰管理過(guò)程。為實(shí)施在線密鑰管理,KMAC 實(shí)體與KMC 需在有密鑰任務(wù)前,預(yù)先申請(qǐng)CA 數(shù)字證書(shū),CA 數(shù)字證書(shū)中心體系結(jié)構(gòu)需遵循圖3 結(jié)構(gòu)。
根據(jù)Subset-114 規(guī)定,當(dāng)使用密鑰的兩個(gè)對(duì)端KMAC 實(shí)體屬于不同Home KMC 時(shí),均需在軌旁KMAC實(shí)體的Home KMC 完成操作。當(dāng)有密鑰任務(wù)需求時(shí),密鑰管理員首先在軌旁KMAC 實(shí)體的Home KMC 下達(dá)密鑰管理命令;然后Home KMC 將命令通過(guò)在線或離線方式(管理員據(jù)實(shí)際情況選擇)下達(dá)給KMAC 實(shí)體;若密鑰涉及相鄰KMC 管轄的KMAC 實(shí)體時(shí),需Home KMC 向相鄰KMC 發(fā)起請(qǐng)求,再由相鄰KMC 向其域內(nèi)的KMAC 實(shí)體下達(dá)命令。
管理員優(yōu)先選擇在線下達(dá)密鑰,在線下達(dá)密鑰后,若KMAC 實(shí)體為軌旁設(shè)備,需要KMC 主動(dòng)發(fā)起TLS 連接;若KMAC 實(shí)體為車載設(shè)備,需周期或維護(hù)人員操作由KMAC 實(shí)體發(fā)起TLS 連接。TLS 安全連接建立后,按照?qǐng)D7、8 消息流向,執(zhí)行2.2 節(jié)在線交互流程。因網(wǎng)絡(luò)或CA等原因,不具備在線密鑰管理?xiàng)l件時(shí),可采用離線方式按照?qǐng)D7、8 消息流向,執(zhí)行2.3 節(jié)離線密鑰管理流程。
圖6 ETCS利用KTRANS加密KMAC示意圖Fig.6 KMAC schematic diagram of ETCS system used by KTRANS encryption
圖7 ETCS密鑰管理應(yīng)用示意-增加車載設(shè)備Fig.7 Schematic diagram for application of ETCS key management-adding on-board equipment
圖8 ETCS密鑰管理應(yīng)用示意-增加軌旁設(shè)備Fig.8 Schematic diagram for application of ETCS key management-adding wayside equipment
最后Home KMC 綜合KMAC 實(shí)體及相鄰KMC 在線或離線下達(dá)命令的狀態(tài)回復(fù)結(jié)果,刷新數(shù)據(jù)庫(kù)中KMAC 實(shí)體密鑰執(zhí)行狀態(tài)。
密鑰管理其他如刪除、更新等操作,與添加密鑰步驟類似,可參照上述添加密鑰過(guò)程執(zhí)行。對(duì)端KMAC 實(shí)體屬于同一個(gè)Home KMC 時(shí),去除圖7、8 中的KMC 間消息交互即可。
本文從系統(tǒng)組成、系統(tǒng)接口及應(yīng)用舉例等方面總結(jié)了ETCS 離線密鑰管理實(shí)現(xiàn)方式,可為ETCS系統(tǒng)及其他列控系統(tǒng)密鑰管理系統(tǒng)研制提供參考,經(jīng)過(guò)室內(nèi)測(cè)試驗(yàn)證表明,本文描述的方案切實(shí)可行,可保證列控系統(tǒng)密鑰安全可靠高效傳輸。