《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計應(yīng)用 > AFC系統(tǒng)中非接觸式IC卡數(shù)據(jù)安全的研究與探討
AFC系統(tǒng)中非接觸式IC卡數(shù)據(jù)安全的研究與探討
來源:微型機與應(yīng)用2011年第15期
葉 飛,徐駿善
(南京理工大學(xué) 機械工程學(xué)院,江蘇 南京 210094)
摘要: 針對AFC系統(tǒng)中非接觸式IC卡存儲數(shù)據(jù)和傳輸數(shù)據(jù)所受到的安全風險進行詳細分析。從認證、加密、完整性三個方面對非接觸式IC卡數(shù)據(jù)安全闡述了解決方案,并提出了部分實現(xiàn)。
Abstract:
Key words :

摘  要: 針對AFC系統(tǒng)中非接觸式IC卡存儲數(shù)據(jù)和傳輸數(shù)據(jù)所受到的安全風險進行詳細分析。從認證、加密、完整性三個方面對非接觸式IC卡數(shù)據(jù)安全闡述了解決方案,并提出了部分實現(xiàn)。
關(guān)鍵詞: 非接觸式IC卡;安全風險

 隨著整個社會信息化進程的不斷發(fā)展,尤其是國家“三金工程”的啟動和發(fā)展,IC卡在我國的應(yīng)用范圍正不斷擴大。與此同時,針對IC卡及其系統(tǒng)的各種攻擊性犯罪現(xiàn)象隨時可能出現(xiàn),這就使得IC卡數(shù)據(jù)加密的研究和實現(xiàn)處于十分重要的地位[1]。
 IC卡的安全級別分為:非加密存儲卡、邏輯加密存儲卡、CPU卡。非加密存儲卡不需要對其進行密碼核對就可以進行讀寫操作,其安全性最差;邏輯加密存儲卡需要先通過裝置(一般為讀卡器)將密碼送入卡中,IC卡核對密碼正確后,輸出正確的應(yīng)答信號,才能進行下一步的操作,這樣可以防止對卡中信息的隨意閱讀和改寫,其安全性遠遠高于非加密存儲卡;CPU卡因其具有微處理器,具有更高的計算能力和和編程能力,故其安全級別比邏輯加密存儲卡更高。
 在地鐵AFC系統(tǒng)中,國內(nèi)大部分都采用了邏輯加密存儲卡,如南京地鐵目前單程票都采用了MIFARE的Ultralight Token,而儲值票(方卡)則采用了Mifare Desfire和Mifare Standard,這幾種卡都是邏輯加密存儲卡。事實上,非加密存儲卡因其較差的安全性已經(jīng)在很大程度上退出了市場。
1 IC卡面臨的安全問題
1.1 安全類型缺陷

 由于成本所限,IC卡本身很難保證足夠的安全,非法用戶可以使用合法的讀卡器或者自構(gòu)一個讀卡器,直接與IC卡進行通信,從而很容易地獲取IC卡內(nèi)的所存數(shù)據(jù),使IC卡面臨數(shù)據(jù)被改寫的風險。而IC卡的數(shù)據(jù)通信鏈路是無線通信連接,與有線連接不一樣,無線傳輸?shù)男盘柋旧硎情_放的,這就給非法用戶的偵聽帶來了方便。
在讀卡器中,除了中間件被用來完成數(shù)據(jù)的遴選、時間過濾和管理之外,讀卡器只提供用戶業(yè)務(wù)接口,但不提供能夠讓用戶自行提升安全性能的接口。
1.2 AFC系統(tǒng)中IC卡的安全問題
 (1)車票安全:防止偽造、克隆、篡改、泄密、偷盜;
 (2)設(shè)備安全:防止車票被偷盜后進行加值或復(fù)制,防止業(yè)務(wù)程序被攻擊改變,防止重要參數(shù)及數(shù)據(jù)被改變;
 (3)數(shù)據(jù)安全:防止篡改、竊取、丟失、抵賴;
 (4)系統(tǒng)安全:防止攻擊、破壞,泄露重要信息。
 對于IC卡單程票,經(jīng)過半自動售票機、自動售票機等環(huán)節(jié)發(fā)售到乘客手中,到出站閘機再進行回收。在整個使用過程中,IC卡處于兩種狀態(tài):(1)在系統(tǒng)運營人員管理中,包括單程票的采購、初始化、發(fā)售、回收、循環(huán)運輸?shù)拳h(huán)節(jié)。(2)在乘客手中,從購買單程票到出站之間,對于IC卡儲值票,經(jīng)過半自動售票機、自動售票機等設(shè)備發(fā)售到乘客手中后,將一直在乘客手中重復(fù)使用,直至被收回。兩種情況中,IC卡在乘客手中時有更大的不安全風險。但是整體而言,單程票處在安全范圍內(nèi)比例要比儲值票大,尤其是儲值票,由于其儲值金額可能較大,所以被攻擊的可能性更大。
2 密碼學(xué)概述
 密碼學(xué)通常被定義為在通信過程中進行解密和加密的過程和技巧。
 密碼技術(shù)可用于解決以下三大領(lǐng)域內(nèi)的安全問題[2]:
 (1)認證。用于可靠的確定某人或某物的身份,防止有人冒充合法用戶或防止設(shè)備冒充合法資源。
 (2)加密。對數(shù)據(jù)進行編碼以防搭線竊聽的過程。加密所提供的保護也稱為機密性業(yè)務(wù),提供該業(yè)務(wù)用以保護數(shù)據(jù)安全,不被非法者偷聽。
 (3)完整性。保證數(shù)據(jù)沒有經(jīng)過篡改,需要確認所收到的消息正是所發(fā)送的消息。
 本文中涉及到傳輸數(shù)據(jù)的安全和存儲數(shù)據(jù)的安全兩個方面。其中傳輸數(shù)據(jù)的安全主要包括數(shù)據(jù)的機密性、完整性、可獲取性和真實性。數(shù)據(jù)的機密性、完整性和可獲取性是通過對數(shù)據(jù)的加解密來實現(xiàn)的。數(shù)據(jù)的真實性是通過相互認證技術(shù)實現(xiàn)的。存儲數(shù)據(jù)的安全是指數(shù)據(jù)的持久性,是通過存儲區(qū)域的訪問條件控制和冗余存儲實現(xiàn)的。
3 地鐵非接觸式IC卡的加密措施
3.1 認證

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

 

 

 (A)由IC卡向讀卡器發(fā)送一個隨機數(shù)據(jù)RB。
 (B)讀卡器收到RB后,向IC卡發(fā)送一個令牌數(shù)據(jù)TOKEN AB=EK(RB||RA||ID||T1),其中RA是讀卡器發(fā)出的一個隨機數(shù),ID是IC卡的物理唯一序列號,T1是附加的時間戳數(shù)據(jù)。EK表示一種加密算法,如ASH-1算法。
 (C)IC卡收到TOKEN AB后,對TOKEN AB的加密部分進行解密,并校驗第一次由(A)中的IC卡發(fā)出的隨機數(shù)RB是否與(B)中接收到的TOKEN AB中的RB相一致。
 (D)如果(C)環(huán)節(jié)校驗結(jié)果正確,則IC卡向讀卡器發(fā)送令牌TOKEN BA=EK(RA||RB||T2)給讀卡器。
 (E)讀卡器收到令牌TOKEN BA后,將對令牌TOKEN BA中的RB(隨機數(shù))進行解密;并檢驗由(B)中讀卡器發(fā)出的隨機數(shù)RA是否與(D)中接收到的TOKEN BA中的RA一致。
 地鐵IC卡共有16個分區(qū),每個分區(qū)都分別有自己的密碼,互不干涉。因此即使通過了一個分區(qū)的的密碼認證,也不能對其他的分區(qū)進行讀寫操作。如果想對其他分區(qū)進行操作,必須按照該分區(qū)密碼重新完成上述的認證過程。每個分區(qū)都可獨立地作為某一種應(yīng)用,這也是IC卡一卡多用的原理。
 如果上述的每一個環(huán)節(jié)都能正確通過驗證,則整個認證過程將成功。認證過程中的任何一個環(huán)節(jié)出錯,則整個認證過程終止,認證過程必須重新開始。如果事先不知道IC卡的密碼,全部搜索需要很長時間,隨機地給出一個密碼而打開IC卡的一個分區(qū)的可能性幾乎沒有。
3.2 消息加密
 目前使用較廣泛的密碼算法主要有對稱密鑰算法DES(Data Encryption Standard)、IDEA(International Data Encryption Algorithm)和公共密鑰算法RSA(由Rivest,Shamir,Adleman三人于1978年提出),DSA(Digital Signature Algorithm)等。
3.2.1 南京地鐵2號線采用了3DES算法
 DES 算法產(chǎn)生于20 世紀70 年代,是傳統(tǒng)的分組密碼代碼學(xué)的代表,其運算速度較快,但其密鑰太短(56 bit),通過窮舉法即可將其攻破。因此出現(xiàn)了改進的DES算法,即3DES算法[3]。3DES算法加密時對原始明文進行三次DES處理,采用K1、K2、K3三個不同密鑰(長度均為8 B),如圖2所示。解密時對密文按相反的順序,還原成原始明文。為了減少系統(tǒng)在生產(chǎn)和管理密鑰的開銷,一般將K1、K3設(shè)為相同值,但K1、K2絕不能相同,否則三重DES就失去了意義。3DES雖然降低了一定的運算速度,但是密鑰長度是原來的兩倍,安全性能得到了極大提高,迄今為止尚未被攻破,已成為一種國際公認的加密標準。

 其加密代碼如圖3所示。

3.2.2 SHA-1與MD5的性能比較
 在南京地鐵上,KEY的產(chǎn)生采用了SHA-1安全算法,SHA-1算法與MD5的算法類似,所以它們的性質(zhì)極為相似。下面是SHA-1和MD5性能之間的比較。
 (1)抗窮舉攻擊的能力:SHA1抗窮舉攻擊的能力比MD5強。
用窮舉攻擊方法產(chǎn)生具有給定散列值的消息:MD5需要的代價為2 128數(shù)量級;SHA-1需要的代價為2 160數(shù)量級。
用窮舉攻擊方法產(chǎn)生兩個具有相同散列值的消息:MD5需要的代價為264數(shù)量級;SHA-1需要的代價為280數(shù)量級。
 (2)抗密碼分析的能力:MD5算法抗密碼分析的能力較弱;SHA-1算法抗密碼分析的能力較MD5 強。
 (3)速度:SHA-1執(zhí)行的速度比MD5的速度慢得多。
 (4)簡捷性:SHA-1和MD5兩種算法都易于描述和實現(xiàn),不需要使用大的程序和置換表。
 (5)數(shù)據(jù)的存儲方式:MD5使用little-endian方式;SHA-1使用big-endian方式,這兩種方式?jīng)]有本質(zhì)的差異。
 SHA-1的實現(xiàn)代碼如圖4所示。

3.3 完整性
 在通信過程中,由于受到人為或環(huán)境因素的影響,導(dǎo)致讀寫數(shù)據(jù)失敗,數(shù)據(jù)不完整。
為了確保通信數(shù)據(jù)的完整性,可以采取數(shù)據(jù)校驗措施,如奇偶校驗和CRC校驗等。特別是讀寫器與PC機之間的RS-232或RS-485串行通信,校驗措施是十分必要的。通信的速度越高、距離越遠,校驗的必要性也就很高。
 CRC(Cyclic Redundancy Check)碼,即循環(huán)冗余校驗碼。由于其編碼和解碼方法簡單,因而在IC卡的數(shù)據(jù)通信中廣泛應(yīng)用[4]。
 在數(shù)據(jù)通信中應(yīng)用CRC碼的目的是校驗數(shù)據(jù)傳送是否正確。與奇偶校驗方法相比,CRC碼校驗的檢錯能力更強。因為奇偶校驗僅采用了一位二進制作為校驗碼,如果傳送的數(shù)據(jù)中恰好有兩個位(或偶數(shù)個位)同時出錯就不會被發(fā)現(xiàn)。CRC碼采用了r位,可靠性大為提高。
利用CRC碼進行數(shù)據(jù)傳送校驗的基本原理是:在發(fā)送端,根據(jù)要發(fā)送的k位二進制碼序列,以一定的規(guī)則產(chǎn)生一個用于校驗的r位校驗碼(即CRC碼),使其附在原始數(shù)據(jù)后邊,構(gòu)成一個新的二進制序列(共k+r位),然后一起發(fā)送出去。在接收端,根據(jù)數(shù)據(jù)碼和CRC碼之間所遵循的規(guī)則進行校驗,以確定數(shù)據(jù)通信過程中是否出錯。
 其實現(xiàn)代碼如圖5所示。

 CRC校驗的優(yōu)點是識別錯誤可靠性高,只需要少量的操作就可以識別。但其缺點是其只能識別傳輸錯誤而不能校正錯誤。如果傳輸中校驗到錯誤,只能讓發(fā)送方重新發(fā)送。
本文通過對非接觸IC卡數(shù)據(jù)安全所受到的威脅及其防護措施的分析,使AFC系統(tǒng)能夠最大程度地保障非接觸式IC卡的數(shù)據(jù)安全,并實現(xiàn)了部分必要的安全算法,將可能發(fā)生的風險控制在可接受的范圍之內(nèi)。
參考文獻
[1] 賀金鑫,李文印.IC卡數(shù)據(jù)加密的研究和實現(xiàn)[J].吉林大學(xué)學(xué)報,2003(11):1-2.
[2] 趙軍輝.射頻識別技術(shù)與應(yīng)用[M].北京:機械工業(yè)出版社,2008.
[3] 趙時旻.軌道交通自動售檢票系統(tǒng)[M].上海:同濟大學(xué)出版社,2007.
[4] 楊振野.IC卡技術(shù)及其應(yīng)用[M].北京:科學(xué)出版社,2006.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。