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