RFID智能卡的安全問題
RFID智能卡是應(yīng)用最廣泛的一種電子標(biāo)簽,應(yīng)用于證件或者流通領(lǐng)域等領(lǐng)域。隨著智能卡的推廣使用,利用它進(jìn)行欺詐或者作弊的行為也會(huì)不斷增加,因此,需要提供合理的防護(hù)措施。
1、影響智能卡安全的基本問題
在智能卡的設(shè)計(jì)階段、生產(chǎn)環(huán)境、生產(chǎn)流程及使用過程中都會(huì)遇到各種潛在的威脅。攻擊者可能采取各種探測方法以獲取硬件安全機(jī)制、訪問控制機(jī)制、鑒別機(jī)制、數(shù)據(jù)保護(hù)系統(tǒng)、存儲(chǔ)體分區(qū)、密碼模塊程序等的設(shè)計(jì)細(xì)節(jié),以及初始化數(shù)據(jù)、私有數(shù)據(jù)、口令或密碼密鑰等敏感數(shù)據(jù),并可能通過修改智能卡上重要安全數(shù)據(jù)的方法,非法獲得對智能卡的使用權(quán)。這些攻擊對智能卡的安全構(gòu)成很大威脅。根據(jù)各種對智能卡攻擊所采用的手段和攻擊對象的不同,一般可以歸納為以下三種方式。
(1)使用偽造的智能卡,以期進(jìn)入某一系統(tǒng)。模擬智能卡與接口設(shè)備之間的信息,使接口設(shè)備無法判斷出是合法的還是偽造的智能卡。例如,像制造偽鈔那樣直接制造偽卡,對智能卡的個(gè)人化過程進(jìn)行攻擊,在交易過程中替換智能卡等。
(2)冒用他人遺失的,或是使用盜竊所得的智能卡。試圖冒充別的合法用戶進(jìn)入系統(tǒng),對系統(tǒng)進(jìn)行實(shí)質(zhì)上未經(jīng)授權(quán)的訪問。
(3)主動(dòng)攻擊方式,直接對智能卡與外部通信時(shí)所交換的信息流(包括數(shù)據(jù)和控制信息)進(jìn)行截聽、修改等非法攻擊,以謀取非法利益或破壞系統(tǒng)。
2、物理安全
雖然智能卡的主要功能封閉在單個(gè)芯片中,然而仍然有可能被實(shí)施反向工程。用于實(shí)施物理攻擊的主要方法包括以下三種。
(1)微探針技術(shù):攻擊者通常使用專業(yè)手段去除芯片的各層金屬,在去除芯片封裝之后,通過使用亞微米級(jí)微探針獲取感興趣的信號(hào),從而分析出智能卡的有關(guān)設(shè)計(jì)信息和存儲(chǔ)結(jié)構(gòu),甚至直接讀取出存儲(chǔ)器的信息進(jìn)行分析。
(2)版圖重構(gòu):利用特制顯微鏡研究電路的連接模式,跟蹤金屬連線穿越可見模塊(如ROM、RAM、EEPROM、ALU、指令譯碼器等)的邊界,可以迅速識(shí)別芯片上的一些基本結(jié)構(gòu),如數(shù)據(jù)線和地址線。
(3)聚離子束(FIB)技術(shù):采用鎵粒子束攻擊芯片表面,在不破壞芯片表面電路結(jié)構(gòu)的情況下,用含有不同氣體的粒子束,可在芯片上沉積出導(dǎo)線、絕緣體甚至半導(dǎo)體。采用這種方法可重
重新連接測試電路的熔斷絲,或?qū)⒍鄬有酒猩畈卦趦?nèi)部的信號(hào)連到芯片的表面,或加粗加強(qiáng)過于纖細(xì)脆弱無法置放探針的導(dǎo)線,從而形成一個(gè)新的“探針臺(tái)”。技術(shù)人員可利用激光干涉儀工作臺(tái)觀察芯片單個(gè)晶體的微細(xì)結(jié)構(gòu),以及其他的電路結(jié)構(gòu)。
物理攻擊是實(shí)現(xiàn)成功探測的強(qiáng)有力手段,但其缺點(diǎn)在于入侵式的攻擊模式,同時(shí)需要昂貴的高端實(shí)驗(yàn)室設(shè)備和專門的探測技術(shù)。
為了保證智能卡在物理安全方面的安全,一般應(yīng)該采取如下的一些措施。
(1)在智能卡的制造過程中使用特定的復(fù)雜而昂貴的生產(chǎn)設(shè)備,同時(shí)制造人員還需要具備各種專業(yè)知識(shí)或技能,以增加直接偽造的難度,甚至使之不能實(shí)現(xiàn)。
(2)對智能卡在制造和發(fā)行過程中所使用的一切參數(shù)都應(yīng)嚴(yán)格保密。
(3)增強(qiáng)智能卡在包裝上的完整性。這主要包括給存儲(chǔ)器加上若干保護(hù)層,把處理器和存儲(chǔ)器做在智能卡內(nèi)部的芯片上;選用一定的特殊材料(如對電子顯微鏡的電子束敏感的材料),防止非法對存儲(chǔ)器內(nèi)容進(jìn)行直接分析。
(4)在智能卡的內(nèi)部安裝監(jiān)控程序,以防止外界對處理器/存儲(chǔ)器數(shù)據(jù)總線及地址總線的截聽,設(shè)置監(jiān)控程序也可以防止對智能卡進(jìn)行非授權(quán)的訪問。
(5)對智能卡的制造和發(fā)行的整個(gè)工序加以分析,確保沒有人能夠完整地掌握智能卡的制造和發(fā)行過程,從而在一定程度上防止可能發(fā)生的內(nèi)部職員的非法行為。
3、邏輯安全
邏輯攻擊者在軟件的執(zhí)行過程中插入竊聽程序,利用這些缺陷誘騙智能卡泄漏機(jī)密數(shù)據(jù)或允許非期望的數(shù)據(jù)修改。從所需的設(shè)備來看,邏輯攻擊的成本可以說是相當(dāng)?shù)偷模粽咧恍杈邆渲悄芸?、讀寫器和PC即可;其另一優(yōu)點(diǎn)在于非入侵式的攻擊模式,以及可輕松地復(fù)制。智能卡的邏輯安全主要由下列的途徑實(shí)現(xiàn)。
1. 鑒別與核實(shí)
鑒別與核實(shí):鑒別與核實(shí)其實(shí)是兩個(gè)不同的概念,但是它們二者在所實(shí)現(xiàn)的功能十分相似,所以我們同時(shí)對它們進(jìn)行討論,利于比較。
通常所謂的鑒別(Authentication),是指的是對智能卡(或者是讀寫設(shè)備)的合法性的驗(yàn)證,即如何判定一張智能卡(或讀寫設(shè)備)不是偽造的卡(或讀寫設(shè)備)的問題;而核實(shí)(Verify)是指對智能卡的持有者的合法性進(jìn)行驗(yàn)證,也就是如何判定一個(gè) 持卡人是否經(jīng)過了合法的授權(quán)的問題。由此可見,二者實(shí)質(zhì)都是對合法性的一種驗(yàn)證,但是,在具體的實(shí)現(xiàn)方式上,由于二者所要驗(yàn)證的對象的不同,所采用的手段也就不盡相同。
鑒別是通過智能卡和讀寫設(shè)備雙方同時(shí)對任意一個(gè)相同的隨機(jī)數(shù)進(jìn)行某種相同的加密運(yùn)算(目前常用DES算法),然后判斷雙方運(yùn)算結(jié)果的一致性來達(dá)到驗(yàn)證的目的。以智能卡作為參照點(diǎn),分為外部鑒別和內(nèi)部鑒別。
外部鑒別就是智能卡對讀寫設(shè)備的合法性進(jìn)行的驗(yàn)證。先由讀寫器向智能卡發(fā)一串口令(產(chǎn)生隨機(jī)數(shù))命令,智能卡產(chǎn)生一個(gè)隨機(jī)數(shù),然后由讀寫器對隨機(jī)數(shù)加密成密文,密鑰預(yù)先存放在讀寫器和IC卡中,密鑰的層次則要按需要設(shè)定。讀寫器將密文與外部鑒別命令發(fā)送給IC卡,卡執(zhí)行命令時(shí)將密文解密成明文,并將明文和原隨機(jī)數(shù)相比較,若相同則卡認(rèn)為讀寫器是合法的,否則卡認(rèn)為讀寫器是偽造的。
內(nèi)部鑒別就是讀寫設(shè)備對智能卡的合法性進(jìn)行的驗(yàn)證,原理與IC卡鑒別讀寫器的真?zhèn)蜗嗨?,但使用?nèi)部鑒別命令,解密后的結(jié)果與隨機(jī)數(shù)進(jìn)行比較的操作應(yīng)在讀寫器中進(jìn)行,而不是由IC卡來鑒別真?zhèn)巍?/span>
核實(shí)是通過用戶向智能卡出示僅有他本人才知道的通行字,并由智能卡對該通行字的正確性進(jìn)行判斷來達(dá)到驗(yàn)證的目的。在通行字的傳輸過程中,有時(shí)為了保證不被人竊聽還可以對要傳輸?shù)男畔⑦M(jìn)行加/解密運(yùn)算,這一過程通常也稱為通行字鑒別,有時(shí)也稱為個(gè)人身份鑒別。目前用得最多的方法就是通過驗(yàn)證用戶個(gè)人識(shí)別號(hào)(Personal Identification Number,PIN)來確認(rèn)使用卡的用戶是不是合法的持卡人。驗(yàn)證過程如圖9-4所示,持卡人利用讀寫設(shè)備向智能卡提供PIN,智能卡把它和事先存儲(chǔ)在卡內(nèi)的PIN相比較,比較結(jié)果在以后訪問存儲(chǔ)器和執(zhí)行指令時(shí)可以作為參考,用來判斷是否可以訪問或者執(zhí)行。
圖PIN的驗(yàn)證過程
2. 智能卡的通信安全與保密智能卡通過鑒別與核實(shí)的方法可以有效地防止偽卡的使用,防止非法用戶的入侵,但無法防止在信息交換過程中發(fā)生的竊聽,因此,在智能卡與讀寫設(shè)備的通信過程中,需要對重要的數(shù)據(jù)進(jìn)行加密來作為反竊聽的有效手段。智能卡的通信安全與保密是智能卡的安全特性中最重要的方面之一,因?yàn)闊o論一張卡使用的目的是什么,它都必須與別的設(shè)備進(jìn)行通信。
一般而言,在通信方面對信息的修改可以有許多不同的方法,主要包括:對信息內(nèi)容進(jìn)行更改、刪除及添加、改變信息的源點(diǎn)或目的點(diǎn)、改變信息組/項(xiàng)的順序、再次利用曾經(jīng)發(fā)送過的或者存儲(chǔ)過的信息,以及篡改回執(zhí)等。從安全角度考慮,就是要針對 以上這些攻擊手段采取適當(dāng)?shù)募夹g(shù)防范措施,以求實(shí)現(xiàn)智能卡與外部設(shè)備進(jìn)行信息交換過程的有效性與合法性的目的。
信息交換過程中的保密性主要是利用密碼技術(shù)對信息進(jìn)行加密處理的,以掩蓋真實(shí)信息,使之變得不可理解,達(dá)到保密的目的。智能卡系統(tǒng)中常用的兩種密碼算法是:對稱密鑰密碼算法或數(shù)據(jù)加密算法(Data Encryption Standard,DES)和非對稱密碼算法或公共密鑰密碼算法(RSA)。智能卡經(jīng)常采用DES算法的原因是因?yàn)樵撍惴ㄒ驯蛔C明是一個(gè)十分成功的加密算法,而且算法的運(yùn)算復(fù)雜度相對而言也較小,比較適用于智能卡這樣運(yùn)算能力不是很強(qiáng)的情況。
例如,在對數(shù)據(jù)內(nèi)容a加密時(shí),采用的辦法就是對從密碼文件中選出的密碼首先進(jìn)行一次DES加密運(yùn)算,然后將運(yùn)算結(jié)果作為數(shù)據(jù)加密的密碼使用。其計(jì)算公式為
Key=DES(CTC,K(a))
式中,K是從密碼文件中隨機(jī)選取的一個(gè)密鑰;CTC是記錄智能卡操作次數(shù)的計(jì)數(shù)器,該計(jì)數(shù)器每完成一次操作就增1;Key就是最后要提供給數(shù)據(jù)加密運(yùn)算使用的密碼。使用這種方法可以提高智能卡的安全性,但卻降低了執(zhí)行的效率。具體采用什么樣的方法來產(chǎn)生密碼應(yīng)當(dāng)根據(jù)智能卡的應(yīng)用范圍及安全性要求的高低而具體而定。
保證數(shù)據(jù)完整性的一般方法是在所交換的信息報(bào)文內(nèi)加入報(bào)頭或報(bào)尾,稱其為鑒別碼。這個(gè)鑒別碼是通過對報(bào)文進(jìn)行的某種運(yùn)算得到的,它與報(bào)文的內(nèi)內(nèi)容密切相關(guān),報(bào)文的正確與否可以通過這個(gè)鑒別碼來檢驗(yàn)。鑒別碼由報(bào)文發(fā)送方計(jì)算產(chǎn)生,并和報(bào)文一起加密后提供給接收方。接收方在收到報(bào)文后,首先對之解密得到明文,然后用約定的算法計(jì)算出解密報(bào)文(明文)的鑒別碼,再與收到報(bào)文中的鑒別碼相比較,如果相等,則認(rèn)為報(bào)文是正確的,否則就認(rèn)為該報(bào)文在傳輸過程中已被修改過。在鑒別過程中,鑒別算法的設(shè)計(jì)是至關(guān)重要的,常用的鑒別算法有累加和、異或校驗(yàn)、CRC校驗(yàn)、DSA(Decimal Shift and Add)鑒別算法等。
3. 存儲(chǔ)區(qū)域保護(hù)
把智能卡的數(shù)據(jù)存儲(chǔ)器劃分成若干若干個(gè)區(qū),對每個(gè)區(qū)都設(shè)定各自的訪問條件;只有在符合設(shè)定條件的情況下,才允許對相應(yīng)的數(shù)據(jù)存儲(chǔ)區(qū)域進(jìn)行訪問。表所示為一金融智能卡的存儲(chǔ)區(qū)域保護(hù)措施,“O”為允許,“X”為不允許,發(fā)行密碼用來驗(yàn)證發(fā)行者的身份,PIN用來驗(yàn)證持卡人的身份。通過對存儲(chǔ)區(qū)域的劃分,普通數(shù)據(jù)和重要數(shù)據(jù)被有效地分離,各自接受不同程度的條件保護(hù),相應(yīng)地提高了邏輯安全的強(qiáng)度。
智能卡數(shù)據(jù)存儲(chǔ)區(qū)域訪問權(quán)限
對存儲(chǔ)區(qū)的訪問控制,本書5.5.2節(jié)已經(jīng)介紹了一個(gè)具體的實(shí)例(Mifare S50卡的存儲(chǔ)區(qū)訪問控制),可作為部分參考。