應對智能卡硬件攻擊的軟件方法
文章出處:http://www.nyfzw.net 作者:陳士超 徐開勇 陳光 李福林 人氣: 發表時間:2011年09月23日
1 引言
智能卡技術的發明與應用是計算機技術的一項重大革命,它作為個人身份標識和安全信息載體被廣泛地應用于金融、醫療、交通、電信等多個領域,深層次地影響:蕾人們的生產生活。單張智能卡要保護的資產價值可能不高,但整個智能卡領域涉及到的資產可能數額巨大;攻擊者攻破單張卡的獲利與其付出的努力可能無法相比,但是成功攻破之后所獲得的經驗可能使得對同類卡的攻擊變得容易,隨后的累計獲利將十分巨大。因此,近年來針對智能卡的硬件攻擊技術不斷得到發展,同時由于相對于其它昂貴的信息技術產品來說,智能卡價格低廉,通常在幾十到幾百元人民幣之間,所以攻擊者只需花費很少的代價就可以獲得多個智能卡來進行攻擊性試驗。因此,智能卡所面臨的安全威脅越來越嚴峻,然而為保護智能卡而實施的硬件安全加固又較為昂貴,找到一種低廉而又有效的智能卡安全防護技術顯得尤為重要。
2 智能卡常見硬件攻擊方法
針對智能卡的硬件攻擊方法有很多,按照攻擊行為有無入侵智能卡硬件可以分為兩大類:主動攻擊和被動攻擊。
2.1主動攻擊
針對智能卡常見的主動攻擊行為有硬件分解、電磁干擾、永續變異等,它們的一個共同特點就是使用一定的工具,如蝕刻工具、光學顯微鏡、探針臺、激光切割機、掃描電子顯微鏡、聚焦離子束等,對智能卡的完整性均會造成不同程度的破壞。中介紹了一些其他的方便易行的攻擊技術。按照攻擊的時機不同,主動攻擊又可以分為兩類。一類是靜態情況下獲取卡內存儲體內的數據和代碼,一類是動態運行情況下,攻破或者繞過智能卡的安全機制以獲取敏感信息。
2.2被動攻擊
同主動攻擊不同,利用被動攻擊攝取智能卡信息時就沒有那么直接和精確了,但是它對智能卡的影響是可逆的。而且,被動攻擊的種類不僅僅局限在硬件攻擊一個方面.而是廣泛地存在于對通訊、接口、COS等多個方面的攻擊之中。
2.2.1信息泄露模型
最基本的被動攻擊方法就是觀測法。觀測法是基于程序或者密碼算法在執行過程中的信息泄漏模型而來的,如圖1所示。
圖1 信息泄露模型
觀測的對象可以是一定時間段內電能的消耗、電壓的起伏,也可以是電磁輻射強度的變化等信息,進而分析它們與時間的函數,找出其中的規律。根據觀測對象和角度的不同,大致可以分為以下幾種攻擊類型:
2.2.2功率分析
1998年6月,Kocher等三人提出了功率分析的攻擊方法,即根據已知操作確定的功率值.直接分析密碼算法運行時所記 錄到的功率數據。常見的有簡單功率分析(SPA)~1 率差分攻擊(DSA)。通過分析功率消耗信號得到處理器正在處理數據的漢明重量信息,利用這些信息可以構造出數據中的等價關系,進而有可能破譯出密碼。
2.2.3電磁輻射分析
作為電子設備,計算機的組件在操作時常常會產生電磁輻射。攻擊者如果可以檢測到電磁輻射并且找到它們與底層計算和數據之間的關系,就可能獲得和這些計算和數據有關的相當多的信息。同功率分析相似,電磁輻射輻射攻擊fEMA1也可以分成兩大類:簡單電磁輻射分析(SEMA)~ 分電磁輻射分析(DEMA)。
2.2.4耗時信息分析
由于性能優化、分支和條件語句、RAM緩存的命中率或者處理器指令執行時問的不固定等諸多原因,對于不同的輸入,一個加密系統所耗費的時問會有略微的不同。耗時信息攻擊就是是基于對加密系統基本運算單元操作時間的測量而進行的。這可能會導致與密鑰相關的信息的泄露。比如:通過精心測量完成私鑰導人操作所需的時問.攻擊者可以找到Diffie—Hell—man密鑰交換協議中同定的參數或者RSA算法中的密鑰因子,進而破譯其他的密碼系統,給出了一個對RC5算法的耗時信息攻擊的實例。
3 基于軟件的應對策略
針對這些硬件攻擊手段.通常的防護措施是采用增加防護層、設置安全傳感器、芯片混亂布線、內存總線加密,內存訪問 控制等硬件的防護手段。但是硬件防護手段具有成本高、靈活性差的缺點.法國學者Xavier Leroy提出了一種使用軟件方法來防范硬件攻擊的思想.并從編程語言和靜態分析的角度進行了研究。我們將這種思想稱為“軟件防御”,根據這一思想,本文進一步提出了幾種在智能卡嵌入式軟件設計中針對硬件攻擊的具體的策略和方法。
3.1“軟件防御”思想的基本內涵
Xavier Leroy在他的文章中指出:“使用軟件方法應對硬件攻擊的關鍵就是要看到一任何硬件攻擊都不能隨意改變硬件自身的運行方式”,這也是“軟件防御”思想的基本內涵。
比如拿第3部分所列舉出的各種類型的硬件攻擊來說:主動攻擊雖然具有準確高效的優點,但是卻會對智能卡硬件造成不可逆轉的損傷。這樣就會很容易被智能卡中存在的安全傳感器所發現,當然我們也可以采用軟件的方法來檢測,比如運行一個周期性自檢的程序:被動攻擊雖然不會對硬件造成不可逆轉的影響,但是它對特定的敏感信息的影響是不精確的。比如使用聚焦離子束照射的方法可以在瞬問將卡上存儲的數據變成全0或者是全1.但是卻很將存儲器上特定位置的數據改變為0或者1。
3.2“軟件防御”的具體方法
3.2.1數據冗余
為防止硬件攻擊行為修改智能卡存儲體上的靜態數據和程序代碼,可以在存儲數據f及程序代碼1的時候增加一定長度的冗余數據,用來保證數據的完整性。一種簡單的方法就是在每組數據的后面增加循環冗余碼。如果對于數據完整性有著更加嚴格的要求,可以采用一個簡單的哈希函數計算出每組數據的雜湊值。
通過數據冗余,還可以有效地防止主動攻擊對智能卡內關鍵數據的修改(比如安全位、指令下載控制位等),并且由于僅僅是對數據存儲格式的變化,這種措施可以在不影響卡內原有程序結構的情況下,加固智能卡的安全性。
3.2.2控制冗余
針對對靜態數據或者關鍵代碼的篡改,我們可以通過數據冗余的方法進行有效的防御。但是,在程序的動態執行過程中,數據冗余策略就無能為力了,因此還必須增加程序執行時控制的冗余。控制冗余的主要思想就是在包含有關鍵代碼的函數中 添加多重控制, 以最大程度上保證程序執行是處于完全安全、可信的環境之中。比如,設置多個狀態位,在程序的執行過程中不斷檢查這些狀態位的狀態,如果有一個發生了改變,程序馬上退出執行。
3.2.3執行冗余
不同于主動攻擊,智能卡被動攻擊利用了卡內程序(密碼算法1在執行過程中的信息泄露模型.不會對智能卡產生任何不可 逆的破壞.因此針對智能卡的被動攻擊也必須從智能卡的信息泄露模型著手。
為了便于理解,我們假設卡內程序f密碼算法1中有兩段獨立的f邏輯上沒有繼承關系、時問上沒有先后關系1代碼段C1和C2,代碼段可以是不同層次的,既可以是大到獨立的功能函數,也可以是簡單的0和1。不難理解,正是由于C1和C2的差異,最終導致了程序執行過程中各種信息的產生。為了避免信息的泄露,最根本的方法就是盡可能地減少這類信息的產生。文獻介紹了在編碼層次減少信息產生的方法。本文給出了在程序功能函數這一級減少信息泄露的一種簡單卻又有效的方法一執行冗余。
對于上文所述兩段獨立的功能函數C1、C2,我們在編寫程序時就可以設計一個這樣的隨機函數發生器Random0。它的輸出是等概率分布的O和1。這時我們的代碼就可以這樣改造:
當然.這只是這一思想的一個簡單的實現。如果是多個功能函數.我們就要適當改造我們的隨機數發生器和條件判斷結
構,如果程序中不存在這樣的獨立的功能函數,那么我們還需要對同一個功能構造多個不同但是等價的實現。
總之.軟件防御的具體方法都是針對智能卡硬件安全的具體薄弱環節,采用數據冗余、控制冗余或者執行冗余的方法,有 針對性地進行安全加固。由于是軟件的方法進行實現,同硬件安全加固相比,只需要簡單的對代碼進行修改,非常經濟高效。
4 結束語
上面所講述的軟件防御技術雖然實現起來比較簡單,但是往往需要在整個系統設計過程中集中規劃才能對程序執行進
行足夠的控制進而有效的抵抗各種硬件攻擊行為。而且無論是數據冗余、控制冗余還是執行冗余都會給系統功能的實現增加 一定程度的負擔,下一步的工作可以考慮通過綜合運用現代程序設計技巧來減少這些開銷。
本文作者創新點:總結出了一種智能卡的信息泄漏模型:基于“軟件防御”思想,提出了幾種抵抗智能卡硬件安全威脅的低開銷、高效率的軟件防御措施和方法。
[1] Oliver K0mmerling and Markus Kuhn. Design Principles for Tamper-Resistant Smartcard Pmcessom. Chicago: Proceedings of USENIX Workshop on Smartcard Technology,1999:9-20.
[2]Thomas S.Messerges,Ezzy A.Dabbish,Robert H_Sloan.Eamining Smart-Card Security under the Threat of Power Analysi6 Attacks.IEEE Transactions on Computers,2002,(51):541—552.
[3]Paul Kocher,Joshua Jafe and Benjamin Jun.Introduction t!DDiferential Power Analysis an d Related Attacks. http’.//www.eryptography.com/dpa/technica1.
[4]Xavier keroy.Computer security from a programming languagean d static analysis perspective.http://pauillac.inria.fr/~xlemy/publL
[5] Ross Anderson, Markus Kuhn. Low Cost Attacks on Taml~?Resistan t Devices. Springer—Verlag :5th International Workshop,LNCS,1997(1361):125-136.
[6]Helena Handschuh,Howard M.Heys.A Timing Attack on RC5.http://www.engr.man.ca/-howard/PAPERS.2004
[7] Simon Moore,Ross Anderson,Robert Mullins.Balanced SeIf-Checking Asynchronous Logic for Smart Card Applications.http://WWW.c1.cam.ac.uk/-swml 1/research/papers.2002
[8]曹寧,馮曄.智能卡的安全和應用.微計算機信息.
作者簡介:
陳士超(1982.10一),男(漢族),河南商丘人,解放軍信息工程大學碩士研究生,現主要從事公鑰基礎設施、智能卡系統研究;
徐開勇(1963.4一),男(漢族),河南羅山人,解放軍信息工程大學碩士生導師,研究員,現主要從事軍隊信息安全系統設計、公鑰基礎設施研究;
陳光(1978.6一),男(漢族),河南駐馬店人,碩士,講師,現主要從事公鑰基礎設施、智能卡系統研究;
李福林(1980.2一),男(漢族),河北承德人,碩士,助教,現主要從事公鑰基礎設施、網絡信息安全研究。
通訊地址:(450004 河南鄭州商城東路l2號解放軍信息工程大學電子技術學院研究所)陳士超