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