智能卡的攻擊技術(shù)分析及安全設計策略
文章出處:http://psychicreadingswithdeb.com 作者:中國一卡通網(wǎng) 收編 人氣: 發(fā)表時(shí)間:2011年09月28日
0 引言
在智能卡應用日益廣泛的今天,智能卡應用系統的安全問(wèn)題非常重要。通常認為智能卡本身具有較高的安全性 ,但隨著(zhù)一些專(zhuān)用攻擊技術(shù)的出現和發(fā)展,智能卡也呈現出其安全漏洞,從而導致整個(gè)應用系統安全性降低。分析智能卡面臨的安全攻擊,研究相應的防御措施,對于保證整個(gè)智能卡應用系統的安全性有重大的意義。本文首先分析了目前主要的智能卡攻擊技術(shù),并有針對性地提出相應的安全設計策略。
1 智能卡設計簡(jiǎn)述
智能卡是將具有存儲、加密及數據處理能力的集成電路芯片鑲嵌于塑料基片上制成的卡片,智能卡的硬件主要包括微處理器和存儲器兩部分,邏輯結構如圖1 所示。
智能卡內部的微處理器一般采用8 位字長(cháng)的中央處理器,當然更高位的微處理器也正在開(kāi)始應用。微處理器的主要功能是接受外部設備發(fā)送的命令,對其進(jìn)行分析后,根據需要控制對存儲器的訪(fǎng)問(wèn)。訪(fǎng)問(wèn)時(shí),微處理器向存儲器提供要訪(fǎng)問(wèn)的數據單元地址和必要的參數,存儲器則根據地址將對應的數據傳輸給微處理器,最后由微處理器對這些數據進(jìn)行處理操作。此外,智能卡進(jìn)行的各種運算(如加密運算) 也是由微處理器完成的。而控制和實(shí)現上述過(guò)程的是智能卡的操作系統COS??▋鹊拇鎯ζ魅萘恳话愣疾皇呛艽?,存儲器通常是由只讀存儲器ROM、隨機存儲器RAM 和電擦除可編程存儲器EEPROM組成。其中,ROM 中固化的是操作系統代碼,其容量取決于所采用的微處理器;RAM 用于存放操作數據,容量通常不超過(guò)1KB; EEPROM中則存儲了智能卡的各種信息,如加密數據和應用文件等,容量通常介于2KB 到32KB 之間,這部分存儲資源可供用戶(hù)開(kāi)發(fā)利用。
圖1 智能卡的硬件結構
2 智能卡攻擊技術(shù)分析
在智能卡的設計階段、生產(chǎn)環(huán)境、生產(chǎn)流程及使用過(guò)程中會(huì )遇到各種潛在的威脅。攻擊者可能采取各種探測方法以獲取硬件安全機制、訪(fǎng)問(wèn)控制機制、鑒別機制、數據保護系統、存儲體分區、密碼模塊程序的設計細節以及初始化數據、私有數據、口令或密碼密鑰等敏感數據,并可能通過(guò)修改智能卡上重要安全數據的方法,非法獲得對智能卡的使用權。這些攻擊對智能卡的安全構成很大威脅。
對智能卡的攻擊可分為三種基本類(lèi)型:
(1) 邏輯攻擊:在軟件的執行過(guò)程中插入竊聽(tīng)程序bugs
(2) 物理攻擊:分析或更改智能卡硬件
(3) 邊頻攻擊:利用physical phenomena 來(lái)分析和更改智能卡的行為
2.1 邏輯攻擊技術(shù)分析
許多方面存在潛在的邏輯缺陷:
(1) 潛藏的命令:
(2) 不良參數與緩沖器溢出
(3) 文件存取
(4) 惡意進(jìn)程applet?
(5) 通信協(xié)議
(6) 加密協(xié)議,設計與執行過(guò)程
2.2 物理攻擊
多種方法和工具可用于實(shí)現物理攻擊
(1) 化學(xué)溶劑、蝕刻和著(zhù)色材料
(2) 顯微鏡
(3) 探針臺
(4) FIB聚離子束?
物理攻擊的安全對策在以下方面加以改進(jìn):
(1) 形體尺寸
(2) 多層化
(3) 保護層
(4) 傳感器
(5) 不規則總線(xiàn)?
(6) 封膠?邏輯
2.3 邊頻攻擊
1)差分能量分析(DPA)
差分能量分析(DPA)攻擊是通過(guò)用示波鏡檢測電子器件的能量消耗來(lái)獲知其行為。攻擊者只需知道算法的明文(輸入)或密文(輸出),通過(guò)分析和比較一系列的能量軌跡就可重現加密密鑰。
DPA攻擊的基礎是假設被處理的數據與能量消耗之間存在某種聯(lián)系,換句話(huà)說(shuō),假設處理0比1所用的能量要少(反之亦然)。那么對兩個(gè)不同數據執行同一算法的兩個(gè)能量軌跡會(huì )由于輸入數據的不同而產(chǎn)生微小的差別。用計算機嚴格按時(shí)鐘計算兩條軌跡的差得到差分軌跡,差分軌跡中出現峰值的時(shí)刻即是輸入數據產(chǎn)生差別的時(shí)鐘周期。如此檢查加密算法的所有輸入以及每一對0和1產(chǎn)生的差分軌跡,就可以識別出它們出現在程序代碼中的確切時(shí)間,從而獲取加密密鑰。
2)能量短脈沖干擾
微處理器要求在穩定的電壓下工作,能量供應的中斷就好象突然沖擊程序運行或復位電路。然而,一個(gè)短而巧妙的脈沖可以引起單步的程序錯誤而微處理器仍能繼續執行程序。例如, CPU讀取存儲單元的內容,三極管用一個(gè)閾值來(lái)檢測存儲單元的值以確定所讀的是邏輯0或1。突然出現的能量短脈沖對存儲值和邏輯值都會(huì )產(chǎn)生影響。不同的內部容量會(huì )使存儲值受到不同的影響,有可能會(huì )使真實(shí)的值被歪曲。如圖3所示,與邏輯0對應的低電平在正常的操作狀態(tài)下可能低于閾值電平,然而由于短脈沖的能量下壓可能導致其高于閾值電平。許多加密算法都易受這一類(lèi)故障注入的影響。采用差分故障分析(DFA, Differential Fault Analysis )技術(shù)將正確的與錯誤的密碼編碼相比較從而析出秘藏的密鑰。
圖3 讀存儲器時(shí)能量短脈沖干擾
短脈沖干擾的第二種攻擊方式是將PIN校驗失敗轉為成功以欺騙處理器。更為嚴格的一種方式是在處理器正要將校驗失敗寫(xiě)入存儲器時(shí)完全關(guān)閉電源,從而避免PIN校驗失敗計數器溢出。
短脈沖干擾的第三種應用是攻擊發(fā)送限制計數器,從而導致整個(gè)存儲器內容輸出到串行接口。
3 智能卡的安全設計策略
安全應用的設計者使用智能卡而無(wú)視其許多的弱點(diǎn)(攻擊點(diǎn)?),可供選擇的解決方案有著(zhù)其自己的安全漏洞,甚至于更不安全。本節為設計者提供一些應用技巧,以達到適當水平的安全。
3.1 攻擊者的商業(yè)狀況
大多數嚴重的威脅來(lái)自于尋求經(jīng)濟利益的攻擊者。這一類(lèi)攻擊者會(huì )慎重考慮成本與收入之間的平衡。防范措施的技巧多在于增加攻擊成功的難度和成本。
3.2 設計步驟
智能卡應用系統的設計者使用現成?的智能卡產(chǎn)品來(lái)設計系統、軟件和協(xié)議,實(shí)現系統應用。盡管面臨重重威脅,他仍然需要交付一個(gè)足夠安全的系統。
以下是達成這一目標所需要采取的步驟:
(1)確定應用系統所需的安全程度及特殊的安全要求。同時(shí)還需要將技術(shù)上、商業(yè)上、公共關(guān)系上(品牌價(jià)值)潛在的安全成本考慮在內。
(2)進(jìn)行風(fēng)險分析并評估安全威脅。
(3)分析攻擊者的商業(yè)狀況,考慮從善意的黑客到犯罪組織等各種類(lèi)型的攻擊者。
(4)選擇能達到所要求的安全級別的智能卡解決方案。
3.1 邏輯攻擊的安全策略
邏輯攻擊的安全對策
(1) 結構化設計
(2) 正規的校驗
(3) 測試
(4) 接口與應用的標準化
(5) 集中?應用JAVA卡操作系統
(6) 普及評估實(shí)驗室
3.2 物理攻擊的安全策略
物理攻擊的安全對策在以下方面加以改進(jìn):
(7) 形體尺寸
(8) 多層化
(9) 保護層
(10) 傳感器
(11) 不規則總線(xiàn)?
(12) 封膠?邏輯
3.3 安全設計策略
面對上述種種攻擊手段,智能卡在設計時(shí)應根據所要求的安全級別采用響應安全設計策略,其基本思想是:增加芯片上集成電路的復雜性;提高電路的抗干擾能力;增加噪聲來(lái)掩蓋真正的電源功率的消耗;提高對異常信號的控制功能等等。具體預防措施如下:
(1)限制程序計數器技術(shù)
在上面所述的短脈沖攻擊中,由于攻擊者可以利用程序計數器來(lái)增加對內存數據的訪(fǎng)問(wèn), 因此在智能卡程序設計時(shí)一定要限制程序計數器的使用, 以免被攻擊者所利用。
(2)隨機的時(shí)鐘信號
許多邏輯和邊頻攻擊技術(shù)是要攻擊者預見(jiàn)某條指令執行的準確時(shí)間。如果處理器在每一次復位后執行一個(gè)相同的指令,很容易被攻擊者發(fā)現。推測處理器的行為也能簡(jiǎn)化對協(xié)議的分析。因此預防措施是在可觀(guān)察和關(guān)鍵的操作之間插入隨機的時(shí)鐘,這樣可以有效地防止這種攻擊。
(3)低頻傳感器
當智能卡芯片用低頻的時(shí)鐘電路驅動(dòng)時(shí),用電子流測試來(lái)觀(guān)察總線(xiàn)的技術(shù)日益簡(jiǎn)單。因此芯片的設計者要對低于某一時(shí)鐘頻率的行為報警,以防止這種行為的發(fā)生。應設計這樣一種電路:外部的復位信號不能直接作用到內部復位線(xiàn)上, 只能引起一個(gè)外部分頻器來(lái)降低時(shí)鐘信號頻率,以激發(fā)低頻探測器,而它又可激發(fā)內部復位線(xiàn),最終停止分頻器,而處理器通過(guò)傳感器測試并開(kāi)始正常的操作。這種設計的處理器在上電后沒(méi)有正常的內部復位就不會(huì )運行。其它防御非入侵式攻擊的傳感器也要嵌入到處理器的正常操作中去,否則可以通過(guò)破壞電路的方式繞過(guò)它們。
為了增加攻擊者的難度, 可以將電路設計為多個(gè)電路層。使微探針技術(shù)的使用受到一定限制,從而保證了一定的安全性。但同時(shí)也增加了電路設計的復雜性和提高了制造成本。
(5)頂層的傳感器網(wǎng)
在芯片的表面加上一層格狀的網(wǎng)絡(luò )能夠有效地防止激光切割及探針類(lèi)的探測技術(shù)。這種技術(shù)也能有效地防止對低層電路的進(jìn)一步探測。這種傳感器網(wǎng)與一個(gè)寄存器的標志位相關(guān)聯(lián),當入侵行為發(fā)生的時(shí)候,寄存器的標志位發(fā)生改變,使內存的內容清零。
(6)自毀技術(shù)
在芯片的最外層沉積一層薄薄的金屬膜, 并在其上可加UZ 的電壓,然后在最外面用塑料封裝起來(lái)。這樣,芯片就好像穿了一層導電的衣服。如攻擊者用精密機械探針插入芯片內企圖探測里面的密碼時(shí), 會(huì )引起短路而燒毀芯片。
(7)抗電磁探測密碼技術(shù)
采用平衡電路降低信號能量以及設置金屬防護以抑制電磁發(fā)射。導電衣服對芯片內發(fā)出的電磁輻射有一定的屏蔽或衰減作用,使其輻射出來(lái)的電磁波減弱。因此可以在芯片里面加上1個(gè)隨機數發(fā)生器, 其結果是使輻射出的電磁波更加混亂, 即便是靈敏的電磁探頭測到它的電磁輻射也無(wú)法分析到里面的真實(shí)密鑰。
(8)鎖存電路
在智能卡的處理器中設置鎖存位。當出現異常情況,如溫度、壓力、電壓、電流等出現不安全的情況并對芯片內的敏感數據產(chǎn)生威脅時(shí),它會(huì )發(fā)出解鎖電平,同時(shí)立即清除芯片中的敏感數據&注意此項功能的設置與用戶(hù)所采用的安全策略有關(guān),否則容易引起用戶(hù)不滿(mǎn)。
(9)隨機多線(xiàn)程
設計多線(xiàn)程處理器結構,由硬件控制處理器,在每一個(gè)指令組隨機有N 個(gè)或多個(gè)線(xiàn)程在執行。這樣的處理器由多組寄存器、程序計數器、指令寄存器等組成,組合邏輯采取隨機改變的方式。
(10)破壞測試電路:在智能卡卡生產(chǎn)時(shí)一般會(huì )保留測試電路用以測試智能卡卡是否合格,而有些智能卡卡在發(fā)行時(shí)仍然保留了這些測試電路,從而為攻擊者提供了巨大的便利,因此,在智能卡檢測合格后,應該破壞掉這些電路。
4 結論
智能卡應用系統是一個(gè)安全環(huán)境很復雜的系統,本文為分析這個(gè)系統面臨的安全攻擊提供了一個(gè)思路,為系統的安全設計提供了依據。下一步工作是量化各安全設計策略,探索在降低安全威脅與增加安全成本之間尋找最佳平衡點(diǎn)的方法。