AFC系統中IC卡用芯片的安全
文章出處:http://www.nyfzw.net 作者:魏輝 人氣: 發表時間:2011年09月23日
0 引言
北京市軌道交通線路自1971年發售車票接待乘客開始,已有的3條線路一直采用人工售檢票。2003年12月31日地鐵13號線(城鐵線)自動售檢票系統的開通使用結束了北京軌道交通無自動售檢票系統的歷史,同時揭開了北京軌道交通自動售檢票系統全面發展的新篇章。2008年奧運會的成功申辦為北京軌道交通的發展提供了機遇,新線建設和既有線通過改造將全部采用自動售檢票系統,屆時將形成軌道交通網絡化自動售檢票(AFC)系統。IC卡是軌道交通自動售檢票(AFC)系統的車票介質,而IC卡用芯片的安全性是IC卡安全性的基礎。
1 IC卡安全機制
IC卡(Integrated Circuit Card)又稱集成電路卡或智能卡(Smart Card),IC卡用芯片是一種集成電路芯片,其安全性是IC卡安全性的基礎,在芯片的設計階段應提供完善的安全保護措施。一般來說,對IC卡用芯片的攻擊主要有以下幾種:
(1)通過電子顯微鏡對存儲器或芯片內部邏輯進行掃描,直接進行分析讀取;
(2)通過測試探頭讀取存儲器內容;
(3)通過從外部獲取的接口直接對存儲器或處理器進行數據存取;
(4)再激活IC卡用芯片的測試功能。
IC卡用芯片的安全技術要從物理上防止以上攻擊,物理保護的實施強度以實施物理攻擊者所耗費的時間、精力、經費等與其獲得的效益相比作為標準。在AFC系統中,安全問題主要包括以下幾個方面:
a.車票安全防止偽造、克隆、篡改、泄密、偷盜。
b.設備安全防止偷盜后對車票進行加值或復制;防止被攻擊改變業務程序;防止被改變重要參數及數據;
c.數據安全 防止篡改、竊取、丟失、抵賴;
d.系統安全防止攻擊、破壞,泄露重要信息。
對于IC卡單程票,經過BOM、TvM等發售到乘客手中,到出站閘機進行回收。在整個使用過程中,IC卡處于兩種狀態:在系統運營人員管理中,包括單程票的采購、初始化、發售、回收、循環運輸等環節;在乘客手中,從購買單程票到出站之間。對于IC卡儲值票,經過BOM、TvM等設備發售到乘客手中后,將一直在乘客手中重復使用,直至被收回。兩種情況中,IC卡在乘客手中時有更大的不安全風險。但是整體而言,單程票處在安全范圍內的比例要比儲值票大,尤其是儲值票,由于其儲值金額可能較大,所以被攻擊的可能性更大。
IC卡的安全由三個不同層次的安全保障環節組成,一是芯片的物理安全技術;二是卡片制造的安全技術;三是卡的通信安全技術。這三個方面共同形成卡的安全體系,保證卡片從生產到使用的安全。公開密鑰基礎設施PKI能夠使位于世界上任何地方的兩個人通過互聯網來進行通信,而且能夠保證通信雙方身份的真實性以及相互交換信息的安全性。IC卡和PKI之間的聯系在于密鑰及相關數字證書的存儲,卡片載有持卡人的數字證書和私有密鑰,可通過PKI技術實現身份識別和信息加密傳輸。這種技術對于實現智能卡的安全交易提供了更多的選擇。具體方法如下:
(1)通過燒斷熔絲,使測試功能不可再激活;
(2)高/低電壓的檢測;
(3)低時鐘工作頻率的檢測;
(4)防止地址和數據總線的截取;
(5)邏輯實施對物理存儲器的保護;
(6)總線和存儲器的物理保護層等。
2 儲值IC卡票的安全保證
AFC系統的儲值票使用符合ISO 14443TYPE A標準的Mifare@ 1 IC卡。Mifare 1 IC智能(射頻)卡的核心是Philips公司的Mifare 1 ICS50(一01,一02,一03,一04)系列微模塊(微晶片)。它具有先進的數據通信加密和雙向驗證密碼系統;卡片制造時具有唯一的卡片系列號;卡片上內建8K EEPROM存儲容量并劃分為16個扇區,每個扇區劃分為4個數據存儲塊,每個扇區可由多種方式的密碼管理;卡片上還內建有增值/減值的專項的數學運算電路,具有防重疊功能,模塊與卡片通信時數據加密,每個扇區設有3套密碼及其認證和密碼存儲器。
Mifare 1卡認證過程是:由Mifare 1卡片向讀寫器發送一個隨機數據RB;讀寫器收到RB后向Mifare 1卡片發送一個令牌數據TOKEN AB,其中包含了讀寫器發出的一個隨機數據RA;Mifare 1卡片收到TOKEN AB 后,對TOKENAB的加密部分進行解密,并校驗第一次由(A)環中Mifare 1卡片發出去的隨機數RB是否與(B)環中接收到的TOKEN AB中的RB相一致; 如果(C)環校驗是正確的,則Mifare 1卡片向讀寫器發送令牌TOKEN BA給讀寫器;讀寫器收到令牌TOKEN BA后將對令牌TOKEN BA中的RB(隨機數)進行解密,并校驗第一次由(B)環中讀寫器發出去的隨機數RA是否與(D)環中接收到的TOKEN BA中的RA相一致。如果上述的每一個環節都能正確通過驗證,則讀寫器將對通過認證的卡片上的這個扇區進行下一步的操作。同樣,卡片中的其他扇區由于有各自的密碼,想對其進行進一步的操作,也必須完成上述的認證過程。每個扇區都通過認證,整個過程才算完成。認證過程中的任何一環出現差錯,整個認證將告失敗,必須重新開始。由于密碼的變化極其復雜,靠猜測密碼打開卡片上的一個扇區的可能性幾乎為零。上述過程充分地說明Mifare 1卡片的高度安全性與保密性。
Mifare 1卡片的存儲容量為8192 BIT X 1位字長,采用EEPROM作為存儲介質,整個結構劃分為16個扇區,編為扇區0~15,每個扇區有4個塊,每個塊有16個字節,每個扇區的塊3(即第4塊)包含了該扇區的密碼A(6個字節)、存取控制(4個字節)、密碼B(6個字節),是一個特殊的塊。其余三個塊是一般的數據塊。但扇區0的塊0是特殊的,是廠商代碼,已固化,不可改寫。
在對Mifare 1卡進行讀寫時,相應的軟件操作也同樣為卡片的安全性提供了保證。如在讀取Mifare 1卡片上的數據之前,必須證明它是被允許的,這個過程叫做認證操作。可通過選擇秘密存儲在MCM中的RAM的密碼集中的一組密碼來進行認證而實現。卡片存儲器的每一個塊都有指定的存取條件,這些存取條件根據密碼A或B(它們對整個扇區始終有效)而定。MCM能夠存儲3個密碼集KEYSET0,KEYSET1,KEYSET2,每一個KEYSET又包含了KEYA及KEYB等,以存取最高達32Kbit內存容量的MIFARE卡片。用戶必須在KEYSTACON(0B H地址)寄存器中指定一套密碼。要想對此種IC卡進行攻擊的話,必須要知道AFC Mifare 1 IC卡的數據存儲結構和密鑰,但這都不是很容易的。
3 單程IC卡票的安全保證
對于符合ISO14443 TYPE A標準的Mifar Ultra Light IC卡作為軌道交通單程票使用是足夠安全的。用UID+密鑰防止偽造,用動態MAC鎖定防止篡改,用密鑰系統保證密鑰安全。利用Mifare Ultra light卡的全球唯一序列號(該序列號是燒制在卡片的EPROM上的,是不可修改的)與密鑰通過運算產生一個MAC,每次交易對MAC進行認證。產生MAC的密鑰保存在SAM上,這樣想要克隆一張車票就需要克隆其全球唯一序列號,并得到保存在sAM上的密鑰,同時還要知道計算方法。所以能得到MAC的機會幾乎是不存在的。這樣只要通過密鑰系統保護主密鑰不流失就可以保證車票不被偽造。采用動態MAC方式,即SAM卡計算,動態MAC與CRC相結合的方法來實現關鍵數據不被篡改。動態MAC計算就是在交互過程中加入SAM卡作為計算主體(密鑰系統由主密鑰卡多級分散后得到交易密鑰卡SAM卡,SAM 卡通過密鑰分散因子以及三重DEA算法保證其安全性),所有數據作為運算項目,每次對票操作完成后由SAM產生一個MAC,并寫入票中,下次操作票時首先驗證MAC是否可以通過。由于sAM可以認為是安全的,MAC的計算可以放在SAM中,這樣可以認為MAC是安全。參與MAC計算的數據包括車票的唯一編號、車票的金額以及CRC結果碼。這樣如果金額被修改,下次就無法通過MAC計算。但是SAM送人MAC的數據量是有限的,并且數據多了速度會受到比較大的影響,所以增加二級安全保護措施,即CRC運算。當車票操作完成時,對車票內的所有數據(除MAC碼和CRC結果碼)進行CRC運算,并得到CRC結果碼,之后將CRC碼也作為MAC運算的數據項目之一送人SAM卡進行運算。這樣票中的數據項目一旦被非法修改,CRC不會被通過,可以發現。如果CRC算法被攻擊或偽造,MAC也無法通過,因為MAC由SAM計算得到,SAM是由密鑰系統保證安全的,故攻擊者無法篡改票中的數據。
由于Ultra Light可直接修改數據內容,所以無法防止車票中的數據被讀取,但是SAM中的數據及流程是無法讀取的,而且系統泄露個別車票的數據內容不會帶來特別風險,如果攻擊者分析得到車票的數據結構,但有動態MAC作安全保證,也無法獲得非法利益,所以可以不采用特別的保護措施。
作者簡介:魏輝(1969- ),男,工程師,北京市遠達建設監理有限責任公司,主要從事軌道交通AFC、ACC、TCC、OCC等的監督及監理工作。