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