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