智能卡數(shù)據(jù)交互安全性的研究
文章出處:http://botanicstilllife.com 作者:岳佩,孫冬梅,張大偉 人氣: 發(fā)表時間:2011年09月30日
1 引言
目前身份認(rèn)證技術(shù)中,智能卡應(yīng)用非常廣泛。智能卡身份認(rèn)證經(jīng)歷了單純的智能卡認(rèn)證,基于密碼的智能卡認(rèn)證,以及目前研究非常熱門的基于生物識別技術(shù)的智能卡認(rèn)證三個階段。為了提高認(rèn)證的可靠性,智能卡中存儲的數(shù)據(jù)也日漸增多。例如, 智能卡惟一的身份認(rèn)證密鑰對,持卡人的個人信息,持卡人的P1N碼,持卡人的掌紋,指紋等生物信息。然而數(shù)據(jù)在智能卡與讀卡器交互過程中存在的安全問題,嚴(yán)重侵犯了個人隱私和影響了身份認(rèn)證的可靠性。
智能卡數(shù)據(jù)存在的安全問題主要來自于以下五個方面:篡改智能卡中數(shù)據(jù)或者偽造智能卡,使得數(shù)據(jù)存儲在不安全的卡上;改造讀卡器;竊聽讀卡器與智能卡的通信信道,截獲、更改或者重放報文信息;非法分子利用合法讀卡器在持卡人未知的情況下,試圖讀取智能卡中的基本數(shù)據(jù);讀卡器越權(quán)訪問智能卡中的敏感信息,例如指紋等生物信息。
目前國內(nèi)廠商和國際規(guī)范中關(guān)于數(shù)據(jù)保護(hù)主要集中于前三個問題的研究 ’ ,技術(shù)相對比較成熟,而關(guān)于讀卡器不同程度的非法訪問智能卡數(shù)據(jù)的兩個問題沒有提出比較好的解決方式,同時對于傳輸過程中信息的加密也比較薄弱,因此迫切需要解決數(shù)據(jù)交互中存在的安全問題。本文就是從智能卡與讀卡器之問數(shù)據(jù)交互的安全性出發(fā),在現(xiàn)有的安全技術(shù)基礎(chǔ)上,提出比較完善的安全設(shè)計方案,解決目前數(shù)據(jù)交互過程中存在的安全問題。第二部分介紹提出的安全方案的總體框架,第三到第五部分是針對I前安全體系遺留問題,提出具體的解決方案,第六部分是對整個方案進(jìn)行安全性分析。
2 智能卡與讀卡器數(shù)據(jù)交互安全方案
在我們的安全方案中,根據(jù)智能卡中數(shù)據(jù)安全性要求的高低,將智能卡中的數(shù)據(jù)分為高敏感性數(shù)據(jù)和低敏感性數(shù)據(jù)。例如,掌紋、指紋等隱私性較強的信息稱為高敏感數(shù)據(jù);智能卡表面印制的條形碼(MRZ),內(nèi)部存儲的一些卡片基本信息等相對個人隱私性較弱的信息稱為低敏感數(shù)據(jù)。對于不同敏感程度的信息,建立不同的安全保護(hù)機制,具體安全方案如圖l所示。其中,智能卡數(shù)據(jù)完整性認(rèn)證,智能卡真?zhèn)握J(rèn)證,讀卡器真?zhèn)握J(rèn)證可以采用目前比較成熟的安全技術(shù) ’,因此,本文重點對讀卡器物理訪問權(quán)限認(rèn)證、安全報文傳輸以及讀卡器訪問高敏感數(shù)據(jù)權(quán)限的認(rèn)證進(jìn)行討論。
圖1智能卡與讀卡器之間數(shù)據(jù)交互安全方案
3 讀卡器物理訪問權(quán)限的認(rèn)證
為了防止非法分子利用讀卡器訪問智能卡中基本數(shù)據(jù),侵犯持卡人的個人隱私,保證讀卡器的訪問是在持卡人有意愿的情況下進(jìn)行,需要在讀卡器與智能卡建立通信的開始階段驗證讀卡器的物理訪問權(quán)限。智能卡表面的條形碼只有在持卡人出示時才可以被讀取,因此,我們通過驗證讀卡器是否讀到正確的條形碼來判斷讀卡器的物理訪問權(quán)限。它的實現(xiàn)過程分為三步:
第一步:在智能卡初始化階段,利用條形碼的定長信息,采用密鑰產(chǎn)生機制生成16字節(jié)的加密密鑰Kenc, 16字節(jié)MAC生成密鑰Kmac,然后存儲在智能卡中。密鑰產(chǎn)生機制的過程包括:
(1)以定長數(shù)據(jù)為根,通過SHA1產(chǎn)生20字節(jié)的摘要值;
(2)摘要值中的前16字節(jié)為加密密鑰,生成MAC的密鑰。
與讀卡器之間基于對稱密鑰的認(rèn)證方式,對密鑰進(jìn)行認(rèn)證。具體步驟如下:
(1)讀卡器發(fā)送取隨機數(shù)的命令,獲取智能卡產(chǎn)生的8字節(jié)的隨機數(shù)A;
(2)讀卡器產(chǎn)生8字節(jié)的隨機數(shù)B, 并產(chǎn)生16字節(jié)的隨機數(shù)random—read,用加密密鑰Kencl對A,B和random—read進(jìn)行加密得密文C;對密文C用Kmac生成校驗碼macl,將密文C和校驗碼macl發(fā)送給智能卡;
(3)智能卡收到信息后,獲取其中的密文C和校驗碼macl,利用卡內(nèi)存儲的密鑰Kmac生成mac2,將mac2與macl進(jìn)行比對,比對成功則解密,得到明文,認(rèn)證隨機數(shù)A 的正確性,完成對讀卡器的認(rèn)證;
(4)智能卡從明文中獲取隨機數(shù)B, 產(chǎn)生16字節(jié)的隨機數(shù)random—card,并利用加密密鑰Kenc對A,B和random—card,進(jìn)行加密,獲取密文C1,用Kmac對密文生成校驗碼mac’;將密文和校驗碼發(fā)送給讀卡器;
(5)讀卡器收到信息后,利用密鑰Kmacl先生成mac’2;與獲取的MAC值進(jìn)行比對,一致則解密信息,對獲取的隨機數(shù)B進(jìn)行對比,也可實現(xiàn)對智能卡的認(rèn)證。
4 安全報文傳輸
為了保證傳輸?shù)男畔⒃谛诺乐胁槐坏谌礁`聽或者篡改,防止信息的重放,需要進(jìn)行安全報文傳輸。通常的信息傳輸方式有明文方式,校驗碼方式,密文方式,密文+校驗碼方式,本方案采用密文+校驗碼方式,保證信息傳輸?shù)耐暾耘c保密性。其中會話密鑰的產(chǎn)生過程如下:
(1)利用讀卡器物理訪問權(quán)限認(rèn)證中,讀卡器產(chǎn)生的隨機數(shù)(rand_reader)和智能卡產(chǎn)生的隨機數(shù)(rand_card)異或值為根。
(2)通過密鑰生成機制產(chǎn)生密鑰,加密密鑰為前l(fā)6位,生成校驗碼的密鑰為后16位字節(jié)。
校驗碼生成機制采用16字節(jié)密鑰DES算法生成8字節(jié)校驗碼。傳輸數(shù)據(jù)的格式按照ISO/IEC 7816-4中定義的BER TLV編碼規(guī)則。
5 讀卡器訪問高敏感數(shù)據(jù)權(quán)限的認(rèn)證
為了防止對智能卡內(nèi)敏感數(shù)據(jù)進(jìn)行越權(quán)訪問,保證數(shù)據(jù)的安全,必須設(shè)定讀卡器對敏感數(shù)據(jù)的訪問權(quán)限。它的設(shè)計包括三個部分:
(1)第一部分:證書的擴展
根據(jù)X.509中對證書的定義,可以在擴展區(qū)域添加它對敏感數(shù)據(jù)的訪問權(quán)限,如圖2所示。
根據(jù)PKI和PMI的原理,建議將設(shè)定訪問權(quán)限的證書與設(shè)定公鑰的證書進(jìn)行分離,避免權(quán)限證書中權(quán)限的頻繁更改,增加證書機構(gòu)的負(fù)擔(dān)。
(2)第二部分:證書的發(fā)放
證書由CA機構(gòu)發(fā)放。該地區(qū)內(nèi)用戶共同信任的可信點CCA (C0untry CA) 為下面的子機構(gòu)DCA(department CA)頒發(fā)身份認(rèn)證證書,使得其他機構(gòu)可以信任該組織頒發(fā)的證書,并在證書中設(shè)定訪問權(quán)限項(access right,簡寫為ar),表明上級機構(gòu)授予子機構(gòu)的訪問權(quán)限。子機構(gòu)再為它管理的讀卡器(T)發(fā)放證書,并設(shè)定訪問權(quán)限(sub access right,簡寫為sar)。在證書發(fā)放和權(quán)限設(shè)置時,必須遵循一個原則:讀卡器的訪問權(quán)限不能超過為它頒發(fā)證書的機構(gòu)的訪問權(quán)限(sar<=ar,其中安全級別1>0),如圖3所示。
圖3證書中訪問權(quán)限的設(shè)置
(3)第三部分:證書的認(rèn)證
證書的認(rèn)證按如下步驟進(jìn)行:
1)讀卡器將屬性證書發(fā)給智能卡,智能卡先查看證書(TCER)中的證書發(fā)行機構(gòu)(SCA),然后讀取該發(fā)行機構(gòu)的證書(SCER),利用為SCA頒發(fā)證書的CA公鑰驗證該證書的合法性,讀取它的訪問權(quán)限(SAR)。
2)然后驗證讀卡器的TCER的合法性, 從證書(TCER)中讀取訪問權(quán)限(TAR),當(dāng)TAR<=SAR時,則證明該權(quán)限設(shè)置是合法的。
3)最后根據(jù)權(quán)限,決定是否為讀卡器提供敏感數(shù)據(jù)的訪問。
6 安全性分析
本文提出一種解決讀卡器非法訪問智能卡數(shù)據(jù)問題的安全方案,通過建立有效的安全機制保證智能卡數(shù)據(jù)的安全性。下面對文中設(shè)計的三個模塊的安全性進(jìn)行分析:
(1)認(rèn)證讀卡器物理訪問權(quán)限:根據(jù)實際應(yīng)用可以得到,讀卡器表面的條形碼MRZ只有在持卡人主動出示卡片才能被讀卡器獲取,如果非法分子利用讀卡器在持卡人未知的情況下訪問智能卡,則不能獲取MRZ。根據(jù)對稱密鑰算法的原理,當(dāng)加解密前后數(shù)據(jù)一致時,可以達(dá)到對讀卡器物理權(quán)限的認(rèn)證。
(2)安全報文傳輸機制:采用加密校驗的模式可以防止對信息進(jìn)行篡改和竊聽。利用相互認(rèn)證中產(chǎn)生的隨機數(shù)生成會話密鑰,不僅能夠?qū)崿F(xiàn)一次一密,更能保證密鑰的安全,防止信息重放等危險。
(3)讀卡器證書認(rèn)證及訪問權(quán)限的認(rèn)證:根據(jù)公鑰證書原理,對證書進(jìn)行擴展,設(shè)置訪問權(quán)限,并通過CA機構(gòu)對證書進(jìn)行管理、分發(fā),可以保證證書和訪問權(quán)限的合法性。通過認(rèn)證證書,可以認(rèn)證訪問權(quán)限,保護(hù)讀卡器對智能卡內(nèi)高敏感數(shù)據(jù)的訪問。
因此,通過該安全方案,我們可以在目前安全技術(shù)的基礎(chǔ)上,解決智能卡與讀卡器之間數(shù)據(jù)交互時存在的安全問題,保證數(shù)據(jù)交互的安全性。
(文/北京交通大學(xué)計算機與信息技術(shù)學(xué)院,岳佩,孫冬梅,張大偉 )