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