物聯(lián)傳媒 旗下網(wǎng)站
登錄 注冊(cè)

AFC系統(tǒng)中非接觸式IC卡數(shù)據(jù)安全的研究與探討

作者:葉飛,徐駿善
來源:微型機(jī)與應(yīng)用2011年第15期
日期:2012-02-22 17:44:34
摘要:針對(duì)AFC系統(tǒng)中非接觸式IC卡存儲(chǔ)數(shù)據(jù)和傳輸數(shù)據(jù)所受到的安全風(fēng)險(xiǎn)進(jìn)行詳細(xì)分析。從認(rèn)證、加密、完整性三個(gè)方面對(duì)非接觸式IC卡數(shù)據(jù)安全闡述了解決方案,并提出了部分實(shí)現(xiàn)。
關(guān)鍵詞:IC卡CPU卡存儲(chǔ)卡

   隨著整個(gè)社會(huì)信息化進(jìn)程的不斷發(fā)展,尤其是國家“三金工程”的啟動(dòng)和發(fā)展,IC卡在我國的應(yīng)用范圍正不斷擴(kuò)大。與此同時(shí),針對(duì)IC卡及其系統(tǒng)的各種攻擊性犯罪現(xiàn)象隨時(shí)可能出現(xiàn),這就使得IC卡數(shù)據(jù)加密的研究和實(shí)現(xiàn)處于十分重要的地位[1]。

  IC卡的安全級(jí)別分為:非加密存儲(chǔ)卡、邏輯加密存儲(chǔ)卡、CPU卡。非加密存儲(chǔ)卡不需要對(duì)其進(jìn)行密碼核對(duì)就可以進(jìn)行讀寫操作,其安全性最差;邏輯加密存儲(chǔ)卡需要先通過裝置(一般為讀卡器)將密碼送入卡中,IC卡核對(duì)密碼正確后,輸出正確的應(yīng)答信號(hào),才能進(jìn)行下一步的操作,這樣可以防止對(duì)卡中信息的隨意閱讀和改寫,其安全性遠(yuǎn)遠(yuǎn)高于非加密存儲(chǔ)卡;CPU卡因其具有微處理器,具有更高的計(jì)算能力和和編程能力,故其安全級(jí)別比邏輯加密存儲(chǔ)卡更高。

  在地鐵AFC系統(tǒng)中,國內(nèi)大部分都采用了邏輯加密存儲(chǔ)卡,如南京地鐵目前單程票都采用了MIFARE的Ultralight Token,而儲(chǔ)值票(方卡)則采用了Mifare Desfire和Mifare Standard,這幾種卡都是邏輯加密存儲(chǔ)卡。事實(shí)上,非加密存儲(chǔ)卡因其較差的安全性已經(jīng)在很大程度上退出了市場(chǎng)。

  1 IC卡面臨的安全問題 

  1.1 安全類型缺陷

  由于成本所限,IC卡本身很難保證足夠的安全,非法用戶可以使用合法的讀卡器或者自構(gòu)一個(gè)讀卡器,直接與IC卡進(jìn)行通信,從而很容易地獲取IC卡內(nèi)的所存數(shù)據(jù),使IC卡面臨數(shù)據(jù)被改寫的風(fēng)險(xiǎn)。而IC卡的數(shù)據(jù)通信鏈路是無線通信連接,與有線連接不一樣,無線傳輸?shù)男盘?hào)本身是開放的,這就給非法用戶的偵聽?zhēng)砹朔奖恪?

  在讀卡器中,除了中間件被用來完成數(shù)據(jù)的遴選、時(shí)間過濾和管理之外,讀卡器只提供用戶業(yè)務(wù)接口,但不提供能夠讓用戶自行提升安全性能的接口。

  1.2 AFC系統(tǒng)中IC卡的安全問題

  (1)車票安全:防止偽造、克隆、篡改、泄密、偷盜;
  (2)設(shè)備安全:防止車票被偷盜后進(jìn)行加值或復(fù)制,防止業(yè)務(wù)程序被攻擊改變,防止重要參數(shù)及數(shù)據(jù)被改變;
  (3)數(shù)據(jù)安全:防止篡改、竊取、丟失、抵賴;
  (4)系統(tǒng)安全:防止攻擊、破壞,泄露重要信息。

  對(duì)于IC卡單程票,經(jīng)過半自動(dòng)售票機(jī)、自動(dòng)售票機(jī)等環(huán)節(jié)發(fā)售到乘客手中,到出站閘機(jī)再進(jìn)行回收。在整個(gè)使用過程中,IC卡處于兩種狀態(tài):(1)在系統(tǒng)運(yùn)營人員管理中,包括單程票的采購、初始化、發(fā)售、回收、循環(huán)運(yùn)輸?shù)拳h(huán)節(jié)。(2)在乘客手中,從購買單程票到出站之間,對(duì)于IC卡儲(chǔ)值票,經(jīng)過半自動(dòng)售票機(jī)、自動(dòng)售票機(jī)等設(shè)備發(fā)售到乘客手中后,將一直在乘客手中重復(fù)使用,直至被收回。兩種情況中,IC卡在乘客手中時(shí)有更大的不安全風(fēng)險(xiǎn)。但是整體而言,單程票處在安全范圍內(nèi)比例要比儲(chǔ)值票大,尤其是儲(chǔ)值票,由于其儲(chǔ)值金額可能較大,所以被攻擊的可能性更大。

  2 密碼學(xué)概述

  密碼學(xué)通常被定義為在通信過程中進(jìn)行解密和加密的過程和技巧。

  密碼技術(shù)可用于解決以下三大領(lǐng)域內(nèi)的安全問題[2]:
  (1)認(rèn)證。用于可靠的確定某人或某物的身份,防止有人冒充合法用戶或防止設(shè)備冒充合法資源。
  (2)加密。對(duì)數(shù)據(jù)進(jìn)行編碼以防搭線竊聽的過程。加密所提供的保護(hù)也稱為機(jī)密性業(yè)務(wù),提供該業(yè)務(wù)用以保護(hù)數(shù)據(jù)安全,不被非法者偷聽。
  (3)完整性。保證數(shù)據(jù)沒有經(jīng)過篡改,需要確認(rèn)所收到的消息正是所發(fā)送的消息。

  本文中涉及到傳輸數(shù)據(jù)的安全和存儲(chǔ)數(shù)據(jù)的安全兩個(gè)方面。其中傳輸數(shù)據(jù)的安全主要包括數(shù)據(jù)的機(jī)密性、完整性、可獲取性和真實(shí)性。數(shù)據(jù)的機(jī)密性、完整性和可獲取性是通過對(duì)數(shù)據(jù)的加解密來實(shí)現(xiàn)的。數(shù)據(jù)的真實(shí)性是通過相互認(rèn)證技術(shù)實(shí)現(xiàn)的。存儲(chǔ)數(shù)據(jù)的安全是指數(shù)據(jù)的持久性,是通過存儲(chǔ)區(qū)域的訪問條件控制和冗余存儲(chǔ)實(shí)現(xiàn)的。

  3 地鐵非接觸式IC卡的加密措施

  3.1 認(rèn)證

  在對(duì)IC卡進(jìn)行讀寫操作之前,必須對(duì)IC卡的密碼進(jìn)行認(rèn)證。如果認(rèn)證通過,才允許進(jìn)行下一步操作。
  非接觸式IC卡的密碼認(rèn)證分為五個(gè)步驟,其過程如圖1所示。 


  (A)由IC卡向讀卡器發(fā)送一個(gè)隨機(jī)數(shù)據(jù)RB。
  (B)讀卡器收到RB后,向IC卡發(fā)送一個(gè)令牌數(shù)據(jù)TOKEN AB=EK(RB||RA||ID||T1),其中RA是讀卡器發(fā)出的一個(gè)隨機(jī)數(shù),ID是IC卡的物理唯一序列號(hào),T1是附加的時(shí)間戳數(shù)據(jù)。EK表示一種加密算法,如ASH-1算法。
  (C)IC卡收到TOKEN AB后,對(duì)TOKEN AB的加密部分進(jìn)行解密,并校驗(yàn)第一次由(A)中的IC卡發(fā)出的隨機(jī)數(shù)RB是否與(B)中接收到的TOKEN AB中的RB相一致。
  (D)如果(C)環(huán)節(jié)校驗(yàn)結(jié)果正確,則IC卡向讀卡器發(fā)送令牌TOKEN BA=EK(RA||RB||T2)給讀卡器。
  (E)讀卡器收到令牌TOKEN BA后,將對(duì)令牌TOKEN BA中的RB(隨機(jī)數(shù))進(jìn)行解密;并檢驗(yàn)由(B)中讀卡器發(fā)出的隨機(jī)數(shù)RA是否與(D)中接收到的TOKEN BA中的RA一致。

  地鐵IC卡共有16個(gè)分區(qū),每個(gè)分區(qū)都分別有自己的密碼,互不干涉。因此即使通過了一個(gè)分區(qū)的的密碼認(rèn)證,也不能對(duì)其他的分區(qū)進(jìn)行讀寫操作。如果想對(duì)其他分區(qū)進(jìn)行操作,必須按照該分區(qū)密碼重新完成上述的認(rèn)證過程。每個(gè)分區(qū)都可獨(dú)立地作為某一種應(yīng)用,這也是IC卡一卡多用的原理。

  如果上述的每一個(gè)環(huán)節(jié)都能正確通過驗(yàn)證,則整個(gè)認(rèn)證過程將成功。認(rèn)證過程中的任何一個(gè)環(huán)節(jié)出錯(cuò),則整個(gè)認(rèn)證過程終止,認(rèn)證過程必須重新開始。如果事先不知道IC卡的密碼,全部搜索需要很長(zhǎng)時(shí)間,隨機(jī)地給出一個(gè)密碼而打開IC卡的一個(gè)分區(qū)的可能性幾乎沒有。

  3.2 消息加密

  目前使用較廣泛的密碼算法主要有對(duì)稱密鑰算法DES(Data Encryption Standard)、IDEA(International Data Encryption Algorithm)和公共密鑰算法RSA(由Rivest,Shamir,Adleman三人于1978年提出),DSA(Digital Signature Algorithm)等。

{$page$}

  3.2.1 南京地鐵2號(hào)線采用了3DES算法

  DES 算法產(chǎn)生于20 世紀(jì)70 年代,是傳統(tǒng)的分組密碼代碼學(xué)的代表,其運(yùn)算速度較快,但其密鑰太短(56 bit),通過窮舉法即可將其攻破。因此出現(xiàn)了改進(jìn)的DES算法,即3DES算法[3]。3DES算法加密時(shí)對(duì)原始明文進(jìn)行三次DES處理,采用K1、K2、K3三個(gè)不同密鑰(長(zhǎng)度均為8 B),如圖2所示。解密時(shí)對(duì)密文按相反的順序,還原成原始明文。為了減少系統(tǒng)在生產(chǎn)和管理密鑰的開銷,一般將K1、K3設(shè)為相同值,但K1、K2絕不能相同,否則三重DES就失去了意義。3DES雖然降低了一定的運(yùn)算速度,但是密鑰長(zhǎng)度是原來的兩倍,安全性能得到了極大提高,迄今為止尚未被攻破,已成為一種國際公認(rèn)的加密標(biāo)準(zhǔn)。 


  其加密代碼如圖3所示。 


  3.2.2 SHA-1與MD5的性能比較

  在南京地鐵上,KEY的產(chǎn)生采用了SHA-1安全算法,SHA-1算法與MD5的算法類似,所以它們的性質(zhì)極為相似。下面是SHA-1和MD5性能之間的比較。

  (1)抗窮舉攻擊的能力:SHA1抗窮舉攻擊的能力比MD5強(qiáng)。
  用窮舉攻擊方法產(chǎn)生具有給定散列值的消息:MD5需要的代價(jià)為2 128數(shù)量級(jí);SHA-1需要的代價(jià)為2 160數(shù)量級(jí)。
  用窮舉攻擊方法產(chǎn)生兩個(gè)具有相同散列值的消息:MD5需要的代價(jià)為264數(shù)量級(jí);SHA-1需要的代價(jià)為280數(shù)量級(jí)。
  (2)抗密碼分析的能力:MD5算法抗密碼分析的能力較弱;SHA-1算法抗密碼分析的能力較MD5 強(qiáng)。
  (3)速度:SHA-1執(zhí)行的速度比MD5的速度慢得多。
  (4)簡(jiǎn)捷性:SHA-1和MD5兩種算法都易于描述和實(shí)現(xiàn),不需要使用大的程序和置換表。
  (5)數(shù)據(jù)的存儲(chǔ)方式:MD5使用little-endian方式;SHA-1使用big-endian方式,這兩種方式?jīng)]有本質(zhì)的差異。

  SHA-1的實(shí)現(xiàn)代碼如圖4所示。 


  3.3 完整性
 
  在通信過程中,由于受到人為或環(huán)境因素的影響,導(dǎo)致讀寫數(shù)據(jù)失敗,數(shù)據(jù)不完整。

  為了確保通信數(shù)據(jù)的完整性,可以采取數(shù)據(jù)校驗(yàn)措施,如奇偶校驗(yàn)和CRC校驗(yàn)等。特別是讀寫器與PC機(jī)之間的RS-232或RS-485串行通信,校驗(yàn)措施是十分必要的。通信的速度越高、距離越遠(yuǎn),校驗(yàn)的必要性也就很高。

  CRC(Cyclic Redundancy Check)碼,即循環(huán)冗余校驗(yàn)碼。由于其編碼和解碼方法簡(jiǎn)單,因而在IC卡的數(shù)據(jù)通信中廣泛應(yīng)用[4]。

  在數(shù)據(jù)通信中應(yīng)用CRC碼的目的是校驗(yàn)數(shù)據(jù)傳送是否正確。與奇偶校驗(yàn)方法相比,CRC碼校驗(yàn)的檢錯(cuò)能力更強(qiáng)。因?yàn)槠媾夹r?yàn)僅采用了一位二進(jìn)制作為校驗(yàn)碼,如果傳送的數(shù)據(jù)中恰好有兩個(gè)位(或偶數(shù)個(gè)位)同時(shí)出錯(cuò)就不會(huì)被發(fā)現(xiàn)。CRC碼采用了r位,可靠性大為提高。

  利用CRC碼進(jìn)行數(shù)據(jù)傳送校驗(yàn)的基本原理是:在發(fā)送端,根據(jù)要發(fā)送的k位二進(jìn)制碼序列,以一定的規(guī)則產(chǎn)生一個(gè)用于校驗(yàn)的r位校驗(yàn)碼(即CRC碼),使其附在原始數(shù)據(jù)后邊,構(gòu)成一個(gè)新的二進(jìn)制序列(共k+r位),然后一起發(fā)送出去。在接收端,根據(jù)數(shù)據(jù)碼和CRC碼之間所遵循的規(guī)則進(jìn)行校驗(yàn),以確定數(shù)據(jù)通信過程中是否出錯(cuò)。

  其實(shí)現(xiàn)代碼如圖5所示。


  CRC校驗(yàn)的優(yōu)點(diǎn)是識(shí)別錯(cuò)誤可靠性高,只需要少量的操作就可以識(shí)別。但其缺點(diǎn)是其只能識(shí)別傳輸錯(cuò)誤而不能校正錯(cuò)誤。如果傳輸中校驗(yàn)到錯(cuò)誤,只能讓發(fā)送方重新發(fā)送。

  本文通過對(duì)非接觸IC卡數(shù)據(jù)安全所受到的威脅及其防護(hù)措施的分析,使AFC系統(tǒng)能夠最大程度地保障非接觸式IC卡的數(shù)據(jù)安全,并實(shí)現(xiàn)了部分必要的安全算法,將可能發(fā)生的風(fēng)險(xiǎn)控制在可接受的范圍之內(nèi)。

  參考文獻(xiàn) :

  [1] 賀金鑫,李文印.IC卡數(shù)據(jù)加密的研究和實(shí)現(xiàn)[J].吉林大學(xué)學(xué)報(bào),2003(11):1-2.
  [2] 趙軍輝.射頻識(shí)別技術(shù)與應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008.
  [3] 趙時(shí)旻.軌道交通自動(dòng)售檢票系統(tǒng)[M].上海:同濟(jì)大學(xué)出版社,2007.
  [4] 楊振野.IC卡技術(shù)及其應(yīng)用[M].北京:科學(xué)出版社,2006.