歡迎您訪問鄭州興邦電子股份有限公司官方網(wǎng)站!
    阿里巴巴誠信通企業(yè)
    全國咨詢熱線:40000-63966
    興邦電子,中國水控機第一品牌

    聯(lián)系興邦電子

    全國咨詢熱線:40000-63966

    售后:0371-55132951/55132952

    工廠:河南省 鄭州市 高新區(qū)蓮花街電子電器產(chǎn)業(yè)園

    智能卡的攻擊技術(shù)分析及安全設(shè)計策略

    文章出處:http://www.xujuanpiju.com 作者:中國一卡通網(wǎng) 收編   人氣: 發(fā)表時間:2011年09月28日

    [文章內(nèi)容簡介]:分析智能卡面臨的安全攻擊,研究相應(yīng)的防御措施,對于保證整個智能卡應(yīng)用系統(tǒng)的安全性有重大的意義。本文首先分析了目前主要的智能卡攻擊技術(shù),并有針對性地提出相應(yīng)的安全設(shè)計策略。

        0 引言 

        在智能卡應(yīng)用日益廣泛的今天,智能卡應(yīng)用系統(tǒng)的安全問題非常重要。通常認為智能卡本身具有較高的安全性 ,但隨著一些專用攻擊技術(shù)的出現(xiàn)和發(fā)展,智能卡也呈現(xiàn)出其安全漏洞,從而導(dǎo)致整個應(yīng)用系統(tǒng)安全性降低。分析智能卡面臨的安全攻擊,研究相應(yīng)的防御措施,對于保證整個智能卡應(yīng)用系統(tǒng)的安全性有重大的意義。本文首先分析了目前主要的智能卡攻擊技術(shù),并有針對性地提出相應(yīng)的安全設(shè)計策略。 

        1 智能卡設(shè)計簡述 

        智能卡是將具有存儲、加密及數(shù)據(jù)處理能力的集成電路芯片鑲嵌于塑料基片上制成的卡片,智能卡的硬件主要包括微處理器和存儲器兩部分,邏輯結(jié)構(gòu)如圖1 所示。 

        智能卡內(nèi)部的微處理器一般采用8 位字長的中央處理器,當(dāng)然更高位的微處理器也正在開始應(yīng)用。微處理器的主要功能是接受外部設(shè)備發(fā)送的命令,對其進行分析后,根據(jù)需要控制對存儲器的訪問。訪問時,微處理器向存儲器提供要訪問的數(shù)據(jù)單元地址和必要的參數(shù),存儲器則根據(jù)地址將對應(yīng)的數(shù)據(jù)傳輸給微處理器,最后由微處理器對這些數(shù)據(jù)進行處理操作。此外,智能卡進行的各種運算(如加密運算) 也是由微處理器完成的。而控制和實現(xiàn)上述過程的是智能卡的操作系統(tǒng)COS。卡內(nèi)的存儲器容量一般都不是很大,存儲器通常是由只讀存儲器ROM、隨機存儲器RAM 和電擦除可編程存儲器EEPROM組成。其中,ROM 中固化的是操作系統(tǒng)代碼,其容量取決于所采用的微處理器;RAM 用于存放操作數(shù)據(jù),容量通常不超過1KB; EEPROM中則存儲了智能卡的各種信息,如加密數(shù)據(jù)和應(yīng)用文件等,容量通常介于2KB 到32KB 之間,這部分存儲資源可供用戶開發(fā)利用。 

    智能卡的硬件結(jié)構(gòu)

    圖1  智能卡的硬件結(jié)構(gòu)

        2 智能卡攻擊技術(shù)分析 

        在智能卡的設(shè)計階段、生產(chǎn)環(huán)境、生產(chǎn)流程及使用過程中會遇到各種潛在的威脅。攻擊者可能采取各種探測方法以獲取硬件安全機制、訪問控制機制、鑒別機制、數(shù)據(jù)保護系統(tǒng)、存儲體分區(qū)、密碼模塊程序的設(shè)計細節(jié)以及初始化數(shù)據(jù)、私有數(shù)據(jù)、口令或密碼密鑰等敏感數(shù)據(jù),并可能通過修改智能卡上重要安全數(shù)據(jù)的方法,非法獲得對智能卡的使用權(quán)。這些攻擊對智能卡的安全構(gòu)成很大威脅。 

        對智能卡的攻擊可分為三種基本類型:

        (1) 邏輯攻擊:在軟件的執(zhí)行過程中插入竊聽程序bugs 
        (2) 物理攻擊:分析或更改智能卡硬件
        (3) 邊頻攻擊:利用physical phenomena 來分析和更改智能卡的行為 

        2.1 邏輯攻擊技術(shù)分析 

        許多方面存在潛在的邏輯缺陷:
        (1) 潛藏的命令:
        (2) 不良參數(shù)與緩沖器溢出
        (3) 文件存取
        (4) 惡意進程applet?
        (5) 通信協(xié)議
        (6) 加密協(xié)議,設(shè)計與執(zhí)行過程 

        2.2 物理攻擊 

        多種方法和工具可用于實現(xiàn)物理攻擊 

        (1) 化學(xué)溶劑、蝕刻和著色材料
        (2) 顯微鏡
        (3) 探針臺
        (4) FIB聚離子束? 

        物理攻擊的安全對策在以下方面加以改進:

        (1) 形體尺寸
        (2) 多層化
        (3) 保護層
        (4) 傳感器
        (5) 不規(guī)則總線?
        (6) 封膠?邏輯 

        2.3 邊頻攻擊 

        1)差分能量分析(DPA) 

        差分能量分析(DPA)攻擊是通過用示波鏡檢測電子器件的能量消耗來獲知其行為。攻擊者只需知道算法的明文(輸入)或密文(輸出),通過分析和比較一系列的能量軌跡就可重現(xiàn)加密密鑰。 

        DPA攻擊的基礎(chǔ)是假設(shè)被處理的數(shù)據(jù)與能量消耗之間存在某種聯(lián)系,換句話說,假設(shè)處理0比1所用的能量要少(反之亦然)。那么對兩個不同數(shù)據(jù)執(zhí)行同一算法的兩個能量軌跡會由于輸入數(shù)據(jù)的不同而產(chǎn)生微小的差別。用計算機嚴格按時鐘計算兩條軌跡的差得到差分軌跡,差分軌跡中出現(xiàn)峰值的時刻即是輸入數(shù)據(jù)產(chǎn)生差別的時鐘周期。如此檢查加密算法的所有輸入以及每一對0和1產(chǎn)生的差分軌跡,就可以識別出它們出現(xiàn)在程序代碼中的確切時間,從而獲取加密密鑰。 

        2)能量短脈沖干擾 

        微處理器要求在穩(wěn)定的電壓下工作,能量供應(yīng)的中斷就好象突然沖擊程序運行或復(fù)位電路。然而,一個短而巧妙的脈沖可以引起單步的程序錯誤而微處理器仍能繼續(xù)執(zhí)行程序。例如, CPU讀取存儲單元的內(nèi)容,三極管用一個閾值來檢測存儲單元的值以確定所讀的是邏輯0或1。突然出現(xiàn)的能量短脈沖對存儲值和邏輯值都會產(chǎn)生影響。不同的內(nèi)部容量會使存儲值受到不同的影響,有可能會使真實的值被歪曲。如圖3所示,與邏輯0對應(yīng)的低電平在正常的操作狀態(tài)下可能低于閾值電平,然而由于短脈沖的能量下壓可能導(dǎo)致其高于閾值電平。許多加密算法都易受這一類故障注入的影響。采用差分故障分析(DFA, Differential Fault Analysis )技術(shù)將正確的與錯誤的密碼編碼相比較從而析出秘藏的密鑰。 

    讀存儲器時能量短脈沖干擾

    圖3 讀存儲器時能量短脈沖干擾

        短脈沖干擾的第二種攻擊方式是將PIN校驗失敗轉(zhuǎn)為成功以欺騙處理器。更為嚴格的一種方式是在處理器正要將校驗失敗寫入存儲器時完全關(guān)閉電源,從而避免PIN校驗失敗計數(shù)器溢出。 

        短脈沖干擾的第三種應(yīng)用是攻擊發(fā)送限制計數(shù)器,從而導(dǎo)致整個存儲器內(nèi)容輸出到串行接口。 

        3 智能卡的安全設(shè)計策略 

        安全應(yīng)用的設(shè)計者使用智能卡而無視其許多的弱點(攻擊點?),可供選擇的解決方案有著其自己的安全漏洞,甚至于更不安全。本節(jié)為設(shè)計者提供一些應(yīng)用技巧,以達到適當(dāng)水平的安全。 

        3.1 攻擊者的商業(yè)狀況 

        大多數(shù)嚴重的威脅來自于尋求經(jīng)濟利益的攻擊者。這一類攻擊者會慎重考慮成本與收入之間的平衡。防范措施的技巧多在于增加攻擊成功的難度和成本。 

        3.2 設(shè)計步驟 

        智能卡應(yīng)用系統(tǒng)的設(shè)計者使用現(xiàn)成?的智能卡產(chǎn)品來設(shè)計系統(tǒng)、軟件和協(xié)議,實現(xiàn)系統(tǒng)應(yīng)用。盡管面臨重重威脅,他仍然需要交付一個足夠安全的系統(tǒng)。

        以下是達成這一目標所需要采取的步驟:
        (1)確定應(yīng)用系統(tǒng)所需的安全程度及特殊的安全要求。同時還需要將技術(shù)上、商業(yè)上、公共關(guān)系上(品牌價值)潛在的安全成本考慮在內(nèi)。
        (2)進行風(fēng)險分析并評估安全威脅。
        (3)分析攻擊者的商業(yè)狀況,考慮從善意的黑客到犯罪組織等各種類型的攻擊者。
        (4)選擇能達到所要求的安全級別的智能卡解決方案。 

        3.1 邏輯攻擊的安全策略 

        邏輯攻擊的安全對策 

        (1) 結(jié)構(gòu)化設(shè)計
        (2) 正規(guī)的校驗
        (3) 測試
        (4) 接口與應(yīng)用的標準化
        (5) 集中?應(yīng)用JAVA卡操作系統(tǒng)
        (6) 普及評估實驗室

        3.2 物理攻擊的安全策略 

        物理攻擊的安全對策在以下方面加以改進: 

        (7) 形體尺寸
        (8) 多層化
        (9) 保護層
        (10) 傳感器
        (11) 不規(guī)則總線?
        (12) 封膠?邏輯 

        3.3 安全設(shè)計策略 

        面對上述種種攻擊手段,智能卡在設(shè)計時應(yīng)根據(jù)所要求的安全級別采用響應(yīng)安全設(shè)計策略,其基本思想是:增加芯片上集成電路的復(fù)雜性;提高電路的抗干擾能力;增加噪聲來掩蓋真正的電源功率的消耗;提高對異常信號的控制功能等等。具體預(yù)防措施如下: 

        (1)限制程序計數(shù)器技術(shù)
        在上面所述的短脈沖攻擊中,由于攻擊者可以利用程序計數(shù)器來增加對內(nèi)存數(shù)據(jù)的訪問, 因此在智能卡程序設(shè)計時一定要限制程序計數(shù)器的使用, 以免被攻擊者所利用。 

        (2)隨機的時鐘信號
        許多邏輯和邊頻攻擊技術(shù)是要攻擊者預(yù)見某條指令執(zhí)行的準確時間。如果處理器在每一次復(fù)位后執(zhí)行一個相同的指令,很容易被攻擊者發(fā)現(xiàn)。推測處理器的行為也能簡化對協(xié)議的分析。因此預(yù)防措施是在可觀察和關(guān)鍵的操作之間插入隨機的時鐘,這樣可以有效地防止這種攻擊。 

        (3)低頻傳感器
        當(dāng)智能卡芯片用低頻的時鐘電路驅(qū)動時,用電子流測試來觀察總線的技術(shù)日益簡單。因此芯片的設(shè)計者要對低于某一時鐘頻率的行為報警,以防止這種行為的發(fā)生。應(yīng)設(shè)計這樣一種電路:外部的復(fù)位信號不能直接作用到內(nèi)部復(fù)位線上, 只能引起一個外部分頻器來降低時鐘信號頻率,以激發(fā)低頻探測器,而它又可激發(fā)內(nèi)部復(fù)位線,最終停止分頻器,而處理器通過傳感器測試并開始正常的操作。這種設(shè)計的處理器在上電后沒有正常的內(nèi)部復(fù)位就不會運行。其它防御非入侵式攻擊的傳感器也要嵌入到處理器的正常操作中去,否則可以通過破壞電路的方式繞過它們。 

        為了增加攻擊者的難度, 可以將電路設(shè)計為多個電路層。使微探針技術(shù)的使用受到一定限制,從而保證了一定的安全性。但同時也增加了電路設(shè)計的復(fù)雜性和提高了制造成本。 

        (5)頂層的傳感器網(wǎng)
        在芯片的表面加上一層格狀的網(wǎng)絡(luò)能夠有效地防止激光切割及探針類的探測技術(shù)。這種技術(shù)也能有效地防止對低層電路的進一步探測。這種傳感器網(wǎng)與一個寄存器的標志位相關(guān)聯(lián),當(dāng)入侵行為發(fā)生的時候,寄存器的標志位發(fā)生改變,使內(nèi)存的內(nèi)容清零。 

        (6)自毀技術(shù)
        在芯片的最外層沉積一層薄薄的金屬膜, 并在其上可加UZ 的電壓,然后在最外面用塑料封裝起來。這樣,芯片就好像穿了一層導(dǎo)電的衣服。如攻擊者用精密機械探針插入芯片內(nèi)企圖探測里面的密碼時, 會引起短路而燒毀芯片。
     
        (7)抗電磁探測密碼技術(shù)
        采用平衡電路降低信號能量以及設(shè)置金屬防護以抑制電磁發(fā)射。導(dǎo)電衣服對芯片內(nèi)發(fā)出的電磁輻射有一定的屏蔽或衰減作用,使其輻射出來的電磁波減弱。因此可以在芯片里面加上1個隨機數(shù)發(fā)生器, 其結(jié)果是使輻射出的電磁波更加混亂, 即便是靈敏的電磁探頭測到它的電磁輻射也無法分析到里面的真實密鑰。 

        (8)鎖存電路
        在智能卡的處理器中設(shè)置鎖存位。當(dāng)出現(xiàn)異常情況,如溫度、壓力、電壓、電流等出現(xiàn)不安全的情況并對芯片內(nèi)的敏感數(shù)據(jù)產(chǎn)生威脅時,它會發(fā)出解鎖電平,同時立即清除芯片中的敏感數(shù)據(jù)&注意此項功能的設(shè)置與用戶所采用的安全策略有關(guān),否則容易引起用戶不滿。
     
        (9)隨機多線程
        設(shè)計多線程處理器結(jié)構(gòu),由硬件控制處理器,在每一個指令組隨機有N 個或多個線程在執(zhí)行。這樣的處理器由多組寄存器、程序計數(shù)器、指令寄存器等組成,組合邏輯采取隨機改變的方式。 

        (10)破壞測試電路:在智能卡卡生產(chǎn)時一般會保留測試電路用以測試智能卡卡是否合格,而有些智能卡卡在發(fā)行時仍然保留了這些測試電路,從而為攻擊者提供了巨大的便利,因此,在智能卡檢測合格后,應(yīng)該破壞掉這些電路。

        4 結(jié)論 

        智能卡應(yīng)用系統(tǒng)是一個安全環(huán)境很復(fù)雜的系統(tǒng),本文為分析這個系統(tǒng)面臨的安全攻擊提供了一個思路,為系統(tǒng)的安全設(shè)計提供了依據(jù)。下一步工作是量化各安全設(shè)計策略,探索在降低安全威脅與增加安全成本之間尋找最佳平衡點的方法。

    本文關(guān)鍵詞:攻擊技術(shù),安全設(shè)計,智能卡攻擊,智能卡
    回到頂部