付青琴,昂正全,徐平江
(1.國網(wǎng)電力科學研究院,江蘇南京210003;2.北京航天飛行控制中心,北京100094)
智能卡之所以能夠迅速地發(fā)展并且流行起來,其中一個重要的原因就在于它能夠通過算法環(huán)境的安全體系給用戶提供—個較高的安全性保證。而對智能卡進行認證,則能夠獲得智能卡的安全狀態(tài),獲得一定的使用權(quán)限,從而進行一些與安全有關(guān)的操作。
傳統(tǒng)的智能卡認證是通過智能卡和讀寫設(shè)備雙方同時對相同的隨機數(shù)進行某種相同的加密運算,然后判斷雙方運算結(jié)果的一致性來對智能卡的合法性進行驗證,這樣也就判定了一張智能卡是不是偽造卡。根據(jù)所認證的對象不同,智能卡認證又分為內(nèi)部認證和外部認證兩種。內(nèi)部認證就是讀寫設(shè)備對智能卡的合法性進行的驗證;外部認證就是智能卡對讀寫設(shè)備的合法性進行的驗證[1,2]。
目前常用的認證算法是3DES算法。但是,隨著3DES算法的被破解,芯片的安全性受到了威脅。如果有非法用戶進行惡意的攻擊,安全問題就岌岌可危。因為認證中采用的加密算法是固定的,非法用戶就能夠采用固定的算法進行攻擊。另外,傳統(tǒng)認證方法不能適應電流、功耗等攻擊手段[3~13]。
針對此問題,本文設(shè)計了一個可以自定義算法環(huán)境的防攻擊認證方法。此認證方法允許用戶根據(jù)自己的應用要求設(shè)置算法環(huán)境,當算法環(huán)境變化時,認證采用的加密算法也是可變的。與此同時,還提供了一種防攻擊的手段,此手段能夠有效減少非法用戶的攻擊嘗試次數(shù),從而提高非法用戶破解的難度。
傳統(tǒng)智能卡的認證方法如圖1所示,該方法先進行隨機數(shù)的有效性驗證,如果通過驗證,則采用3DES算法對隨機數(shù)進行加密,得到認證結(jié)果。將加密得到的認證結(jié)果與接受到的認證結(jié)果進行比較,如果一致,則認證成功;如果不一致,則認證失敗,此時需要將認證對應的密鑰嘗試次數(shù)減1。
Figure 1 Traditional IC card external authentication method圖1 傳統(tǒng)智能卡外部認證方法
此種認證方法有自身的缺點,主要如下:
(1)傳統(tǒng)認證方法固定采用3DES算法,攻擊對象可以根據(jù)3DES算法的特點,專門針對3DES算法的破解來進行惡意攻擊。如:常采用SPA、DPA攻擊手段。
(2)傳統(tǒng)認證方法先進行認證結(jié)果的比較,再扣減密鑰的可嘗試次數(shù)。但是,當攻擊對象使用的認證結(jié)果與實際的認證結(jié)果不一致時,自動將智能卡進行斷電操作,這時認證流程無法正常繼續(xù),那么相應認證密鑰的可嘗試計數(shù)器也就不會減1,這樣攻擊對象可以無限次地重復發(fā)送認證數(shù)據(jù),直到嘗試到正確的密鑰。
針對常用認證方法存在的上述兩個缺點,本文對認證命令及認證流程進行了重新設(shè)計,提出了一種自定義算法環(huán)境的防攻擊認證方法。
自定義算法環(huán)境的防攻擊認證方法流程如圖2所示。
Figure 2 IC card external authentication method for avoiding attack圖2 防攻擊智能卡外部認證方法
從圖2可以看出,改進的地方有兩處:一是將嘗試計數(shù)器減1操作提前到隨機數(shù)驗證之后;二是提供了一種自定義算法環(huán)境的加密方法,允許用戶選擇加密算法,從而提供多種認證算法,分別為:3DES算法(即8字節(jié)分組長度算法)、16字節(jié)分組長度算法。其中,3DES算法是目前流行的算法,16字節(jié)分組長度算法可以是任何算法,只要其分組長度為16字節(jié)即可。具體采用哪種算法進行認證,由應用者根據(jù)自己的需求決定。這就增加了應用的隨機性和不確定性,提高了攻擊的難度。
本文對現(xiàn)有的認證方法(包括內(nèi)部認證和外部認證)分別進行了改進,可以認證MF、DDF、ADF等目錄下的密鑰,或者是主控(MK)密鑰,從而達到一定的權(quán)限。
認證雙方采用P1字節(jié)所指定的算法進行認證。認證分為內(nèi)部認證與外部認證兩種[14],格式分別如表1和表2所示。
表1中,(1)P1表示用戶采用何種自定義的算法環(huán)境,比如:‘00’代表SM1算法,‘01’代表AES算法,‘02’代表3DES算法。
(2)P2的b1~b7為內(nèi)部認證密鑰的密鑰標識。
(3)不管采用的認證算法分組長度是8或者16,其后跟隨的認證數(shù)據(jù)長度Lc都是8。
(4)不管采用的認證算法分組長度是8或者16,其返回的加密認證數(shù)據(jù)長度Le都是8。
表2中,(1)P1表示用戶采用何種自定義的算法環(huán)境,比如:‘00’代表SM1算法,‘01’代表AES算法,‘02’代表3DES算法。
(2)P2的b1~b7為外部認證密鑰的密鑰標識。
(3)不管采用的認證算法分組長度是8或者16,其后跟隨的認證數(shù)據(jù)長度Lc都是8。
改進的基于用戶自定義算法環(huán)境的防攻擊智能卡認證方法包括以下步驟:
步驟1 智能卡產(chǎn)生一個隨機數(shù),隨機數(shù)與智能卡本身所具有的識別碼、密鑰以及讀卡機產(chǎn)生的隨機數(shù)依據(jù)用戶的指定,按照3DES算法或基于16字節(jié)分組長度算法進行加密,從而獲得加密流。
步驟2 當采用基于16字節(jié)分組長度算法進行內(nèi)部認證時,由于算法的分組長度為16字節(jié),而輸入的認證數(shù)據(jù)卻只是8字節(jié),需要將輸入增加為16字節(jié),則將8字節(jié)認證數(shù)據(jù)加上8字節(jié)認證數(shù)據(jù)的取反后得到的8字節(jié)一起構(gòu)成16字節(jié),qdrg進行加密,加密后的密文長度為16字節(jié);由于傳輸?shù)膬?nèi)部認證命令的輸出認證數(shù)據(jù)長度為8字節(jié),也需要將得到的16字節(jié)的結(jié)果中的前8個字節(jié)與后8個字節(jié)進行異或運算,得到最終的8個字節(jié)的認證數(shù)據(jù),然后再傳送出去。
Table 1 Command of internal authentication表1 內(nèi)部認證的命令格式
Table 2 Command of external authentication表2 外部認證的命令格式
步驟3 當采用基于16字節(jié)分組長度算法進行外部認證時,所接受的數(shù)據(jù)格式同上述內(nèi)部認證,需要智能卡先將卡內(nèi)的“8字節(jié)隨機數(shù)+8字節(jié)隨機數(shù)的取反”用外部認證密鑰加密后,前、后8字節(jié)異或,然后與輸入的8字節(jié)外部認證數(shù)據(jù)比較,如果相同,則判定外部設(shè)備合法;否則,認為外部設(shè)備非法,拒絕后續(xù)流程。
進行外部認證的時候,為了防止用戶的惡意攻擊,設(shè)定一個限制外部認證密鑰的使用次數(shù)計數(shù)器,在使用指定的外部認證密鑰進行加密的時候,先判斷指定的外部認證密鑰可使用次數(shù)是否大于0,如果大于0,說明此密鑰還可以用來做外部認證;否則,說明此密鑰已經(jīng)鎖定,不能再用來做外部認證;如果密鑰的使用次數(shù)大于0,將指定的外部認證密鑰的可使用次數(shù)減1;如果最終外部認證成功,則將指定外部認證密鑰的使用次數(shù)恢復成最大,以便后續(xù)認證繼續(xù)使用。
與傳統(tǒng)認證方法相比較,本文所提出的認證方法的優(yōu)勢如表3所示。從表3可以看出,本文提出的認證方案具有更高的安全性與適用性。
Table 3 Comparison of authentication methods表3 認證方法比較
本文提出一種改進的基于用戶自定義算法環(huán)境的智能卡認證方法,使得智能卡可以根據(jù)用戶自定義的算法環(huán)境,按照不同的算法進行認證,從而來改變?nèi)职踩珷顟B(tài)寄存器或局部安全狀態(tài)寄存器的值,這樣既保證了認證算法的多樣性,又提高了命令處理的復雜度。另外,本文還提出一種防攻擊的方法,此方法通過限制外部認證密鑰的使用次數(shù),保證系統(tǒng)在被惡意攻擊的情況下數(shù)據(jù)傳輸?shù)陌踩浴?/p>
[1] Wang Ai-ying.Smart card technology[M].3rd Edition.Beijing:Tsinghua University Press,2009.(in Chinese)
[2] Mingwah Corporation.Smart Cos-PK-manual[Z].version 1.0.Shenzhen:Mingwah Ao han Science and Technology CO.,LTD.,2000.(in Chinese)
[3] Li Tao,Zeng Ying,Zhen Ji-na.A new remote double authentication scheme based on dynamic password[J].Microcomputer Information,2007,11(3):38-40.(in Chinese)
[4] Xue Feng,Wang Ding,Wang Li-ping,et al.Cryptanalysis of two smart card-based remote user password authentication protocol[J].Journal of Computer Applications,2012,32(7):2007-2009.(in Chinese)
[5] Wang Ya-fei.A smart card password authentication scheme study[J].Computer Applications and Software,2011,28(9):295-297.(in Chinese)
[6] Yang Li,Ma Jian-feng.Trusted mutual authentication scheme with smart cards and passwords[J].Journal of University of Electronic Science and Technology of China,2011,40(1):128-133.(in Chinese)
[7] Gao Liang,F(xiàn)ang Yong.A two-way user-identity authentication scheme based on smart card[J].Communications Technology,2011,44(2):85-86.(in Chinese)
[8] Kong Meng-rong,Zhu Guo-h(huán)ua.Remote authentication scheme based on samrt card[J].Computer Engineering and Design,2008,29(3):606-608.(in Chinese)
[9] Wu Jian-wu.Novel remote password authentication scheme based on smart card[J].Computer Engineering &Applications,2007,43(33):158-160.(in Chinese)
[10] Zhang Xin,F(xiàn)eng Quan-yuan.Dynamic ID-based remote user authentication scheme[J].Computer Engineering and Design,2007,28(3):545-546.(in Chinese)
[11] Roweis S,Winfree E,Bvrgoyne R,et al.A sticker-based model for DNA computation[J].Journal of Computational Biology,1998,5(4):615-629.
[12] Adleman L.Molecular computation of solutions to combina
torial problems[J].Science,1994,266(5187):1021-1024.[13] ISO.ISO/IEC 7816-4,Identification cards-Integrated cir
cuit cards-part 4:organization,security and commands for interchange[S].Geneva:ISO,1996.
附中文參考文獻:
[1] 王愛英.智能卡技術(shù)[M].第三版.北京:清華大學出版社,2009.
[2] 明華科技.SmartCos-PK-manual[M].Version 1.0.深圳:深圳市明華澳漢科技股份有限公司,2000.
[3] 李濤,曾英,甄姬娜.一種新的基于動態(tài)口令的遠程雙向認證[J].微計算機信息,2007,23(11):38-40.
[4] 薛峰,汪定,王立萍,等.對兩個基于智能卡的口令認證協(xié)議的安全性分析[J].計算機應用,2012,32(7):2007-2009.
[5] 王亞飛.一種基于智能卡口令認證方案的研究[J].計算機應用與軟件,2011,28(9):295-297.
[6] 楊力,馬建峰.可信的智能卡口令雙向認證方案[J].電子科技大學學報,2011,40(1):128-133.
[7] 高亮,方勇.一種基于智能卡的雙向身份認證方案[J].通信技術(shù),2011,44(2):85-86.
[8] 孔夢榮,朱國華.基于智能卡的遠程認證體制[J].計算機工程與設(shè)計,2008,29(3):606-608.
[9] 吳建武.一種基于智能卡的遠程口令認證方案[J].計算機工程與應用,2007,43(33):158-160.
[10] 張馨,馮全源.基于動態(tài)ID的遠程用戶身份認證方案[J].計算機工程與設(shè)計,2007,28(3):545-546.