范琦 張路彬
摘 要:本文通過分析對稱加密算法和非對稱加密算法技術(shù),研究在密鑰分散、安全認證、數(shù)據(jù)加密方面IC卡訪問安全方案,探討終端設(shè)備通信和認證中心密鑰下載的安全方法。
關(guān)鍵詞:IC卡;道路運輸證;安全機制
中圖分類號:U495;U492.8 文獻標識碼:A 文章編號:1003-5168(2018)23-0106-03
Design of Middleware Security Mechanism for IC Card
Road Transport Certificate
FAN Qi1 ZHANG Lubin2
(1.Henan Traffic Communication Center,Zhengzhou Henan 450000;
2. China Academy of Transportation Science,Beijing 100000)
Abstract: By analyzing symmetric encryption algorithm and asymmetric encryption algorithm technology, this paper studied the security scheme of IC card access in key dispersion, security authentication and data encryption, and discussed the security method of terminal equipment communication and key download of authentication center.
Keywords: IC card;road transport certificate;safety mechanism
IC卡訪問采用TSAM卡方式的加密機制,在讀寫過程中需要傳輸密鑰相關(guān)內(nèi)容,中間件在讀寫過程中需要保護傳輸?shù)拿荑€值,防止密鑰泄漏。數(shù)據(jù)傳輸過程中的安全威脅,包括USB監(jiān)聽、網(wǎng)絡(luò)監(jiān)聽、串口監(jiān)聽等,需要防止非法入侵,防范潛在的威脅。
1 常見安全算法技術(shù)分析
1.1 對稱加密算法技術(shù)分析
對稱加密也叫作私鑰加密,其是指在加密數(shù)據(jù)和解密數(shù)據(jù)時采用相同的密鑰。該技術(shù)通常要求數(shù)據(jù)發(fā)送方和接收方在建立通信之前,首先確定一個雙方都知道的密鑰值,然后雙方通過相同的加解密算法對要傳輸?shù)臄?shù)據(jù)進行加密和解密運算。對稱加密算法的優(yōu)點是算法是公開的,計算量小,加密速度快;缺點是如果泄漏密鑰,任何截獲密文的人都可以對密文進行解密。
1.2 非對稱加密算法技術(shù)分析
非對稱加密算法與對稱加密算法相對。非對稱加密算法需要兩個密鑰,即公鑰和私鑰。每組密鑰必須成對出現(xiàn),公鑰一般是以明文的方式發(fā)布給對方,私鑰由產(chǎn)生方自己進行保存。如果使用公鑰進行加密,必須使用配對私鑰進行解密;如果使用私鑰進行加密,必須使用公鑰進行解密,這樣才能獲得正確的原文。非對稱加密算法一般用于數(shù)字簽名、密鑰交換等[1]。非對稱加密算法的安全性依賴于現(xiàn)有的難以解決的數(shù)學問題,算法強度較大,計算速度相比對稱加密算法較慢,常見的密鑰算法包括背包算法、RSA算法、ECC算法等。
1.3 各類算法的比較
目前公布的常見的對稱加密算法和非對稱加密算法在相同的保密級別下,密鑰長度對比關(guān)系見表1。
在對稱加密算法領(lǐng)域,盡管DES在安全上相對脆弱,但由于DES加密速度快,硬件芯片的大量生產(chǎn)和TDES的應(yīng)用,使DES算法成為目前實際應(yīng)用中最為廣泛的加密算法。當前IC卡道路運輸證件也采用TDES加密算法。隨著AES算法的推廣和國密算法的推廣,IC卡道路運輸證件安全系統(tǒng)將可能逐步被國密算法取代。
在非對稱加密算法領(lǐng)域,目前RSA算法是最常見的算法,但ECC比RSA在相同的安全級別下采用的密鑰長度更短,加解密運算的速度更快,對于網(wǎng)絡(luò)傳輸?shù)挠布Y源使用得更少,ECC將逐步取代RSA。
2 IC卡道路運輸證件的訪問安全機制設(shè)計
根據(jù)《IC卡道路運輸證件》(JT/T 825—2012)[2]的要求,目前IC卡道路運輸證件采用基于TDES技術(shù)的對稱密鑰技術(shù)。
2.1 密鑰體系設(shè)計
IC卡道路運輸證件密鑰體系采用部省兩級管理的模式,總體框架如圖1所示。
2.2 密鑰推導方法
按照IC卡道路運輸證件密鑰體系設(shè)計,在IC卡和終端內(nèi)TSAM卡內(nèi)都預(yù)先安裝了相同的對稱密鑰,解決了密鑰傳輸和發(fā)布的問題。但是,在實際的應(yīng)用中,IC卡的數(shù)量較為龐大,為了使IC卡更加安全,采用“一卡一密”的方式。為了使每個終端都能夠支持讀寫每張IC卡,在TSAM卡中內(nèi)置所有IC卡的密鑰是不現(xiàn)實的問題。所以,在TSAM卡中只能存儲密鑰體系中的根密鑰,在IC卡讀寫認證時,TSAM卡能產(chǎn)生臨時的對應(yīng)IC卡的密鑰,實現(xiàn)對IC卡認證和數(shù)據(jù)加密功能。密鑰推導模型見圖2。
2.3 安全分析
IC卡道路運輸證件采用密鑰分散的算法,保證了一卡一密鑰,且使得IC卡道路運輸證在使用過程中,如果一張卡被人破解后,不會影響整個密鑰系統(tǒng)。此外,在數(shù)據(jù)傳輸過程中,通過使用隨機數(shù)、計算MAC等方式,減小了在空中傳輸過程中被第三方監(jiān)聽后采用重放機制偽造數(shù)據(jù)的可能性。
3 數(shù)據(jù)通信安全機制設(shè)計
中間件與外部設(shè)備硬件通信包括兩大類:第一類是與認證中心后臺服務(wù)器及密鑰中心進行通信,傳輸?shù)膬?nèi)容包括讀寫卡數(shù)據(jù)記錄和密鑰參數(shù),傳輸?shù)慕橘|(zhì)為網(wǎng)絡(luò)傳輸;第二類是中間件與讀寫器等終端設(shè)備通信,通信的內(nèi)容包括讀寫卡過程數(shù)據(jù)、認證數(shù)據(jù)和密鑰ID等信息。
3.1 終端通信安全設(shè)計
采用對稱加密算法首先要將密鑰存儲到讀寫器中。為了防止第三方通過暴力通信的方式惡意破解讀寫器中的密鑰值,對每個讀寫器內(nèi)存儲不同的密鑰值。讀寫器芯片都有唯一的序列號,可以使用序列號作為分散因子。同時,考慮將對稱密鑰的根密鑰放到讀寫器中,為了混淆,在每個讀寫器中也同時放入了不同的根密鑰,具體實現(xiàn)方式如下。
①事先選擇100組密鑰作為根密鑰,這100個密鑰都通過密文方式內(nèi)置在中間件中,并將這100個密鑰按照序號從0編到99。
②在為讀寫器下載根密鑰時,從中間隨機選取5個密鑰作為根密鑰,依據(jù)是[C5100=75 287 520],這樣可以生成約7 000萬個不同組合的根密鑰,能滿足現(xiàn)階段每個讀寫器中根密鑰都不相同的結(jié)果。
③采用根密鑰對讀寫器序列號進行分散,得到5個分散后的密鑰,將這5個密鑰及根密鑰對應(yīng)的序號存放到讀寫器中。
在讀寫卡時,生成臨時密鑰的序列如圖3所示。具體步驟如下。
①中間件向讀寫器發(fā)送握手指令,讀寫器內(nèi)部生成一個隨機數(shù),根據(jù)隨機數(shù)計算獲得5個密鑰ID的值,讀寫器將這個密鑰ID號和讀寫器序列號發(fā)送給中間件。
②中間件根據(jù)密鑰ID號確定根密鑰,然后用根密鑰對讀寫器序列號進行分散操作,得到與讀寫器對應(yīng)的子密鑰,后續(xù)的通信都通過該密鑰對傳輸?shù)臄?shù)據(jù)進行加解密計算。
3.2 認證中心密鑰下載安全設(shè)計
根據(jù)常見安全算法技術(shù)分析,筆者在中間件與認證中心通信時采用ECC算法,考慮到非對稱加密算法的計算時間較長等特點,在密鑰傳輸中僅通過發(fā)送認證和密鑰傳輸兩條報文即可實現(xiàn)密鑰的傳輸功能,具體流程見圖4所示。
①中間件的私鑰和公鑰分別為PRc和PUc,服務(wù)器端的私鑰和公鑰分別為PRs和PUs。
②中間件生成16字節(jié)的隨機數(shù)N1,用中間件的私鑰PRc加密生成M2。
③將M2和N1作為數(shù)據(jù),使用服務(wù)器端公鑰Pus進行加密生成密文M3,并發(fā)給服務(wù)器端。
④服務(wù)器端收到數(shù)據(jù)后,先用服務(wù)器端的私鑰對M3進行解密,將解密后數(shù)據(jù)的右半部分賦值給S2,將解密后數(shù)據(jù)的左半部分用中間件的公鑰PUc解密,得到S1。
⑤服務(wù)器端判斷S1是否等于S2,如果兩個數(shù)據(jù)相同,說明該隨機數(shù)是由真正的中間件發(fā)來,認證成功,服務(wù)器可以為中間件提供服務(wù);如果兩個數(shù)字不相同,說明可能是第三方偽造的數(shù)據(jù)或者數(shù)據(jù)在鏈路中傳輸出現(xiàn)錯誤,服務(wù)器不予響應(yīng)。
⑥認證成功后,服務(wù)器端生成隨機數(shù)N2,并使用中間件的公鑰PUc進行加密后生成,將M4傳輸給中間件端。
⑦中間件收到M4后,使用中間件的私鑰PRc解密得到M5,至此,認證過程完成。
⑧中間件通過讀寫器獲得IC卡ID號后,將ID號和M5作為數(shù)據(jù)使用服務(wù)器端的公鑰Pus加密生成密文M6,將M6發(fā)送到服務(wù)器端。
⑨服務(wù)器端收到報文M6后,使用私鑰進行解密,界面后的數(shù)據(jù)右半部分賦值為S4,左半部分賦值為S3。
⑩判斷S4是否等于隨機數(shù)N2,如果相同,則S3就為IC卡的卡號ID,如果不相等,則服務(wù)器端斷開中間件連接。
?服務(wù)器端訪問密鑰管理系統(tǒng),將ID發(fā)給密鑰管理系統(tǒng),密鑰管理系統(tǒng)通過密鑰分散算法,生成對應(yīng)的密鑰K,發(fā)送給服務(wù)器。
?服務(wù)器端將密鑰K,先使用服務(wù)器私鑰PRs加密,然后再使用中間件的公鑰PUc加密后得到密鑰密文,將K2發(fā)送給中間件。
?中間件將收到的密文K2先使用中間件私鑰PRc解密,再使用服務(wù)器的公鑰PUs解密得到K3,即IC卡的對應(yīng)密鑰,至此,IC卡子密鑰下載完成。
該流程的優(yōu)點如下。①每次數(shù)據(jù)傳輸都采用隨機數(shù)的方式,避免被第三方監(jiān)聽后重復發(fā)送數(shù)據(jù)攻擊。②服務(wù)器端認證后給客戶端返回隨機數(shù)的目的,避免中間件認證成功后被第三方截獲通道,偽造數(shù)據(jù)獲取真實的密鑰;同時,服務(wù)端對于下發(fā)的隨機數(shù)增加計時功能,如果超時后中間件還沒有發(fā)送請求傳輸密鑰的指令,則服務(wù)器端主動斷開中間件連接,中間件如果需要傳輸密鑰,還必須再次認證才可以得到授權(quán),這樣能有效避免中間件一直占用服務(wù)器資源。③中間件每次認證后只能傳輸一次密鑰,傳輸結(jié)束后,認證失效。
4 結(jié)論
本文詳細介紹了幾種常見的對稱加密算法和非對稱加密算法的實現(xiàn)原理,分析其優(yōu)缺點,提出中間件在IC卡道路運輸證件讀寫、數(shù)據(jù)傳輸方面采用的安全技術(shù)手段。伴隨新技術(shù)的發(fā)展,IC卡安全性也會面臨新的挑戰(zhàn),在應(yīng)用領(lǐng)域應(yīng)緊密結(jié)合國密技術(shù)的發(fā)展,對現(xiàn)階段的IC卡密鑰的升級換代工作進行進一步的深入研究。
參考文獻:
[1]楊曉珂.IC卡道路運輸證密鑰管理系統(tǒng)研究與實現(xiàn)[D].西安:長安大學,2009.
[2]中華人民共和國交通運輸部.IC卡道路運輸證件:JT/T 825—2012 [S].北京:人民交通出版社,2012.