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