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