孫寶喜
摘要:目前城市軌道交通軟件在傳輸數(shù)據(jù)保護(hù)方面還是處于很原始的狀態(tài),其算法大多是國際較老的算法,而且很多數(shù)據(jù)庫存儲(chǔ)和文件存儲(chǔ)都處于明文狀態(tài);針對此現(xiàn)狀提出使用國家密碼技術(shù)來保護(hù)軟件不被攻擊和信息泄露。本文以軌道交通綜合監(jiān)控系統(tǒng)使用國家密碼技術(shù)為例介紹了原理和具體實(shí)現(xiàn)過程。
關(guān)鍵詞:城市軌道交通;綜合監(jiān)控系統(tǒng);數(shù)據(jù)安全方案
0 引言
近年來城市軌道交通日益重要,其使用的綜合監(jiān)控系統(tǒng)的安全性也是備受關(guān)注,以往綜合監(jiān)控大多采用是常見的DES/RSA/MD5算法,這些算法均是上世紀(jì)七八十年代提出的。國家密碼算法則是更加先進(jìn)的、更加安全的算法。
國家密碼算法是國家密碼局提供的加密算法。本文中使用到算法有SM2對稱加密算法、SM3消息摘要算法、SM4對稱加密算法。
1、使用國家密碼算法的作用和價(jià)值
1.1 國家密碼算法更符合國情
國家密碼算法比常見的算法先進(jìn),安全性更高,更加符合國家提出的城市軌道交通設(shè)備國產(chǎn)化,符合國家產(chǎn)業(yè)發(fā)展政策,更符合國情。
1.2 使用符合國密標(biāo)準(zhǔn)的智能密碼鑰匙進(jìn)行身份驗(yàn)證
本文中使用的智能密碼鑰匙(UsbKey)是一種基于USB接口的硬件設(shè)備,內(nèi)置智能卡芯片,可以存儲(chǔ)用戶的密鑰和數(shù)字證書。
1.3 使用國家密碼算法加密通信報(bào)文
綜合監(jiān)控系統(tǒng)在發(fā)送網(wǎng)絡(luò)報(bào)文時(shí),使用網(wǎng)絡(luò)密鑰和國密算法將網(wǎng)絡(luò)報(bào)文加密;在接收報(bào)文時(shí),先判斷網(wǎng)絡(luò)報(bào)文的有效性和完整性,驗(yàn)證通過后才正確解析數(shù)據(jù)。
1.4 使用國家密碼算法加密存儲(chǔ)數(shù)據(jù)
綜合監(jiān)控系統(tǒng)在讀寫存儲(chǔ)的數(shù)據(jù)時(shí),使用存儲(chǔ)密鑰和國密算法進(jìn)行加解密。
2、實(shí)現(xiàn)方式
2.1 密鑰的產(chǎn)生和存儲(chǔ)
綜合監(jiān)控系統(tǒng)中使用的密鑰有網(wǎng)絡(luò)通信密鑰、數(shù)據(jù)存儲(chǔ)密鑰、認(rèn)證服務(wù)器的公鑰私鑰、工作站用戶的公鑰私鑰。
認(rèn)證服務(wù)器中除保存自己的公鑰和私鑰外,也保存使用自己公鑰加密網(wǎng)絡(luò)密鑰和存儲(chǔ)密鑰(SM2加密)生成的密文。同時(shí)也有用戶列表信息。
工作站上面不保存任何密鑰,用戶的公鑰私鑰是存放在UsbKey中。
2.2 工作站軟件啟動(dòng)流程
工作站軟件在啟動(dòng)時(shí)的執(zhí)行步驟如下:
第一步:先到認(rèn)證服務(wù)器驗(yàn)證UsbKey身份是否有效;驗(yàn)證失敗則退出系統(tǒng)。
第二步:驗(yàn)證通過后,認(rèn)證服務(wù)器加密兩個(gè)密鑰并下發(fā)給該工作站軟件。
第三步:使用網(wǎng)絡(luò)密鑰加解密網(wǎng)絡(luò)傳輸?shù)膱?bào)文。
第四步:使用存儲(chǔ)密鑰加解密存儲(chǔ)的數(shù)據(jù)。
2.3 身份驗(yàn)證
工作站軟件啟動(dòng)時(shí)的身份驗(yàn)證步驟:
第一步:工作站軟件首先獲取UsbKey中存儲(chǔ)的用戶標(biāo)示,并將該用戶標(biāo)示發(fā)送給認(rèn)證服務(wù)器。
第二步:認(rèn)證服務(wù)器收到用戶標(biāo)示后,使用國密技術(shù)生成一個(gè)隨機(jī)數(shù)作為挑戰(zhàn)值,將該挑戰(zhàn)值返回給工作站軟件。
第三步:工作站軟件收到返回的挑戰(zhàn)值后,使用挑戰(zhàn)值和UsbKey中的用戶標(biāo)示及公鑰信息生成一個(gè)響應(yīng)值,之后將響應(yīng)值返回給認(rèn)證服務(wù)器。
第四步:認(rèn)證服務(wù)器收到響應(yīng)值后推算出用戶標(biāo)示,比對推算出的用戶標(biāo)示和傳遞來的用戶標(biāo)示是否一致,將對比結(jié)果返回給工作站軟件。
第五步:工作站軟件收到返回的認(rèn)證結(jié)果后,成功可繼續(xù)啟動(dòng)系統(tǒng),失敗則退出系統(tǒng)。
2.4 密鑰下發(fā)
密鑰下發(fā)時(shí)不能直接明文傳輸,在源數(shù)據(jù)報(bào)文確定后,先將數(shù)據(jù)報(bào)文做摘要加密(SM3加密),再使用用戶公鑰加密(SM2加密)生成用戶的數(shù)據(jù)簽名,該數(shù)據(jù)用來做有效性和完整性判斷。對整個(gè)源數(shù)據(jù)報(bào)文使用用戶公鑰加密(SM2加密)生成數(shù)據(jù)加密報(bào)文。
密鑰傳輸報(bào)文結(jié)構(gòu):用戶數(shù)據(jù)簽名+數(shù)據(jù)加密報(bào)文。
數(shù)據(jù)有效性判斷:從報(bào)文中獲取用戶的數(shù)據(jù)簽名,使用用戶私鑰解密(SM2),得到數(shù)據(jù)內(nèi)容摘要。
數(shù)據(jù)完整性判斷:從報(bào)文中獲取數(shù)據(jù)加密報(bào)文,使用用戶私鑰解密(SM2),得到原始報(bào)文,再做摘要加密(SM3加密),得出的摘要數(shù)據(jù)與在數(shù)據(jù)有效性判斷中解密出的數(shù)據(jù)對比,對比一致表示報(bào)文完整的;否則不是完整數(shù)據(jù)。
2.5 加解密通信報(bào)文
通信報(bào)文與密鑰傳輸一樣不能明文,其結(jié)構(gòu)也類似。
通信報(bào)文結(jié)構(gòu):用戶的數(shù)據(jù)簽名+數(shù)據(jù)加密報(bào)文。
用戶數(shù)據(jù)簽名與密鑰傳輸報(bào)文采用的算法一樣,數(shù)據(jù)加密報(bào)文的解密是采用網(wǎng)絡(luò)密鑰解密(SM4解密),網(wǎng)絡(luò)密鑰就是從認(rèn)證服務(wù)器下發(fā)的。
數(shù)據(jù)的有效性判斷與密鑰傳輸?shù)挠行耘袛嘁恢隆?/p>
數(shù)據(jù)的完整性判斷與密鑰傳輸?shù)耐暾耘袛囝愃?,只是?shù)據(jù)解密采用SM4解密,其他邏輯一致。
2.6 加解密存儲(chǔ)數(shù)據(jù)
需要加密存儲(chǔ)的數(shù)據(jù)主要分為兩類,一類是存儲(chǔ)在數(shù)據(jù)庫中的一些敏感字段,一類是敏感文件。
數(shù)據(jù)庫中的敏感數(shù)據(jù),直接使用存儲(chǔ)密鑰加解密(SM4)。
敏感文件內(nèi)容是使用存儲(chǔ)密鑰加解密(SM4);另外在文件頭加入文件數(shù)據(jù)簽名(SM2),是用來做完整性判斷的。其結(jié)構(gòu)為:文件數(shù)據(jù)簽名+文件內(nèi)容加密數(shù)據(jù)。
3、結(jié)束語
對于保護(hù)城市軌道交通行業(yè)數(shù)據(jù)不被破壞和泄露的方法很多,使用國家密碼算法的方法也很多,本文僅以城市軌道交通綜合監(jiān)控使用國家密碼算法為例,介紹了身份驗(yàn)證、通信加密、數(shù)據(jù)加密等方法。