<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設計應用 > 智能卡的邊頻攻擊及安全防范

智能卡的邊頻攻擊及安全防范

作者: 時(shí)間:2016-11-17 來(lái)源:網(wǎng)絡(luò ) 收藏

應用日益廣泛的今天,應用系統的安全問(wèn)題非常重要。通常認為具有較高的安全性[1],但隨著(zhù)一些專(zhuān)用攻擊技術(shù)的出現和發(fā)展,智能卡也呈現出其安全漏洞,導致整個(gè)應用系統安全性降低。分析智能卡面臨的安全攻擊,研究相應的防御措施,對于保證整個(gè)智能卡應用系統的安全性有重大意義。下面分析目前主要的智能卡攻擊技術(shù)之一——技術(shù),并有針對性地提出相應的安全設計策略。

  1 智能卡簡(jiǎn)述

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

  智能卡內部的微處理器多采用8位字長(cháng)的CPU(當然更高位的微處理器也正在開(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??▋鹊拇鎯ζ魅萘坑芍蛔x存儲器ROM、隨機存儲器RAM和電擦除可編程存儲器 EEPROM組成。其中,ROM 中固化的是操作系統代碼,其容量取決于所采用的微處理器;RAM 用于存放操作數據,容量通常不超過(guò)1 KB;EEPROM存儲智能卡的各種信息,如加密數據和應用文件等,容量通常介于2 KB~32 KB之間(這部分存儲資源可供用戶(hù)開(kāi)發(fā)利用)。

  2 對智能卡安全的威脅

  對智能卡的攻擊可分為三種基本類(lèi)型:

 ?、?邏輯攻擊——在軟件的執行過(guò)程中插入竊聽(tīng)程序。智能卡及其COS中存在多種潛在的邏輯缺陷,諸如潛藏的命令、不良參數與緩沖器溢出、文件存取、惡意進(jìn)程、通信協(xié)議、加密協(xié)議等。邏輯攻擊者利用這些缺陷誘騙卡泄露機密數據或允許非期望的數據修改。

 ?、?物理攻擊——分析或更改智能卡硬件。用于實(shí)現物理攻擊的手段和工具包括化學(xué)溶劑、蝕刻與著(zhù)色材料、顯微鏡、亞微米探針臺以及粒子束FIB等。

 ?、?——利用物理量來(lái)分析和更改智能卡的行為。通過(guò)觀(guān)察電路中的某些物理量,如能量消耗、電磁輻射、時(shí)間等的變化規律,來(lái)分析智能卡的加密數據;或通過(guò)干擾電路中的某些物理量,如電壓、電磁輻射、溫度、光和X射線(xiàn)、頻率等,來(lái)操縱智能卡的行為。

  智能卡攻擊方法的有效性以攻擊者所獲得的效益高于其耗費的時(shí)間、精力、經(jīng)費等作為標準。表1給出了上述三種攻擊類(lèi)型的情況對比。

  物理攻擊成本過(guò)高,耗時(shí)費力,較少被采用;邏輯攻擊雖然投入較少,容易實(shí)施,但也容易防范,成功率較低。近年來(lái),新興的技術(shù)因其較高的收益成本比而被廣泛使用。盡管智能卡業(yè)界對于邊頻攻擊的解決方案已有了越來(lái)越多的認識,然而許多智能卡對于這類(lèi)攻擊仍毫無(wú)免疫力。目前,應用最為廣泛的邊頻分析和邊頻操縱技術(shù)包括:差分能量分析技術(shù)DPA(Differential Power Analysis)與能量短脈沖波形干擾(Power Glitching)技術(shù)。下面重點(diǎn)就這兩種邊頻攻擊的方法加以分析,并給出相應的安全策略。

  3 差分能量分析

  3.1 DPA攻擊的分析

  DPA(差分能量分析)攻擊是通過(guò)用示波鏡檢測電子器件的能量消耗來(lái)獲知其行為的。圖2為某智能卡用DES算法加密時(shí)的能量追蹤圖。

  能量消耗是不連續的并呈現出某種模式。眾所周知,用DES算法對一個(gè)輸入數據加密時(shí)需要執行16次循環(huán),因此可以在能量軌跡的16次重復模式中識別出這些循環(huán)。攻擊者只需知道算法的明文(輸入)或密文(輸出),通過(guò)分析和比較一系列的能量軌跡就可重現加密密鑰。DPA攻擊的基礎是假設被處理的數據與能量消耗之間存在某種聯(lián)系,換句話(huà)說(shuō),假設處理0比1所用的能量要少(反之亦然),那么對兩個(gè)不同數據執行同一算法的兩個(gè)能量軌跡會(huì )由于輸入數據的不同而產(chǎn)生微小的差別。用計算機嚴格按時(shí)鐘計算兩條軌跡的差得到差分軌跡,差分軌跡中出現峰值的時(shí)刻即是輸入數據產(chǎn)生差別的時(shí)鐘周期。如此檢查加密算法的所有輸入以及每一對0和1產(chǎn)生的差分軌跡,就可以識別出它們出現在程序代碼中的確切時(shí)間,從而獲取加密密鑰。

  DPA使得加密算法的內部處理過(guò)程可以被研究,這一危險性對智能卡安全提出了更高的要求。加密算法必須使用足夠長(cháng)度的全密鑰,以保證探索密鑰的過(guò)程因過(guò)于耗時(shí)而不可行。一個(gè)完整的算法通常在加密過(guò)程中分解成許多小步驟以使處理器可以實(shí)現。這些小步驟往往不使用全密鑰而是用其中的一部分。DPA可以獲取這些小步驟的輸出并探索出這些較短的密鑰值,因此,從理論上說(shuō),所有加密算法都可用DPA破解。雖然這種攻擊方法的開(kāi)發(fā)十分復雜,然而其應用卻十分簡(jiǎn)單且只需很小的投資,所需的設備僅限于1臺PC及中等精度的示波鏡,因此解決DPA問(wèn)題成為智能卡制造商最急需面對的問(wèn)題之一。

  3.2 DPA攻擊的安全策略

  應對DPA攻擊的安全策略基本分為三個(gè)層面:硬件、軟件和應用層面。

  (1) 硬件層面的反措施

 ?、?采用平衡電路降低信號能量,以及設置金屬防護以抑制電磁發(fā)射。

 ?、?執行并行隨機處理來(lái)加大幅值噪聲水平。例如,內部編程電壓產(chǎn)生電路可用作并行噪聲發(fā)生器。

 ?、?隨時(shí)處理中斷引入的時(shí)間噪聲和不同的時(shí)鐘頻率。對差分軌跡進(jìn)行計算機處理的基礎是軌跡可排列。在加入軌跡之前處理器的工作步驟應是同步的。時(shí)間噪聲會(huì )防止或至少妨礙軌跡很好地排列。

  硬件反措施的好處在智能卡對于側路攻擊的敏感性比較少地依賴(lài)于軟件的變化,但其弱點(diǎn)在于只能降低智能卡對于側路攻擊的敏感性而無(wú)法完全消除它。事實(shí)上,硬件防范措施只是將信號降低到噪聲水平從而使攻擊變得困難。

  (2) 軟件層面的反措施

 ?、?采用隨機處理順序來(lái)減少相關(guān)的信號。例如,算法中的平行置換(諸如DES中的S盒)可依隨機的順序來(lái)完成,置換的數目重新排序,則可將一次置換產(chǎn)生的信號分解。

 ?、?利用隨機延時(shí)和改變路徑來(lái)增加計時(shí)噪聲。計時(shí)噪聲會(huì )妨礙軌跡的排列,并降低差分軌跡的質(zhì)量。

 ?、?消除密鑰值及中間媒介值的時(shí)間依存性。當處理過(guò)程取決于密鑰值時(shí),直接用肉眼觀(guān)察軌跡就可實(shí)現簡(jiǎn)單的能量分析;而在時(shí)間上連續的密鑰處理過(guò)程則可防止這種易行的攻擊。

 ?、?用隨機值來(lái)隱蔽中間媒介值。能量的泄露取決于一個(gè)數據中的位數。如果在實(shí)際數據上加上隨機數據,處理完之后再減去,那么傳遞的路徑將不會(huì )泄露有用的信息。不過(guò),這種隱蔽將會(huì )導致傳遞函數的非線(xiàn)性并產(chǎn)生錯誤的結果。因此,這些函數需要仔細地重新設計,以補償由隨機數據引起的背離。

  理論上來(lái)說(shuō),軟件對策完美地解決了DPA攻擊的問(wèn)題。然而這種方法必須針對某種算法定制且其設計相當困難,因而非常昂貴且難以維持。

  (3) 應用層面的反措施

 ?、?重設計數器,用于限制攻擊者試探的次數。連續三次PIN校驗失敗后自鎖是防范差分能量分析的有效方法。

 ?、?限制加密算法中輸入輸出的控制和可見(jiàn)度。如果只能選擇部分輸入,或只有部分算法的結果返回,攻擊者就無(wú)法完成差分能量分析。

  以上是防范DPA攻擊的基本方法,其缺點(diǎn)是對可靠性的負面影響以及需要改變已有的協(xié)議。

4 能量短脈沖干擾

  4.1 能量短脈沖干擾攻擊的分析

  微處理器要求在穩定的電壓下工作,能量供應的中斷就好像突然沖擊程序運行或復位電路。然而,一個(gè)短而巧妙的脈沖可以引起單步的程序錯誤而微處理器仍能繼續執行程序。例如, CPU讀取存儲單元的內容,晶體管用一個(gè)閾值來(lái)檢測存儲單元的值,以確定所讀的是邏輯“0”或“1”。突然出現的能量短脈沖對存儲值和邏輯值都會(huì )產(chǎn)生影響。不同的內部容量會(huì )使存儲值受到不同的影響,有可能會(huì )使真實(shí)的值被歪曲。如圖3所示,與邏輯“0”對應的低電平在正常的操作狀態(tài)下可能低于閾值電平,然而由于短脈沖的能量下壓可能導致其高于閾值電平。

  許多加密算法都易受這一類(lèi)故障注入的影響。采用差分故障分析DFA(Differential Fault Analysis )技術(shù)將正確的與錯誤的密碼編碼相比較,從而析出秘藏的密鑰。有些算法僅當一個(gè)精確的中間值被襲擊時(shí)才能被攻擊,而其他算法要求不那么苛刻,可以在處理過(guò)程的任何位置被攻擊。通常DFA要求有可能對同一個(gè)明文加密2次,產(chǎn)生一個(gè)正確的和一個(gè)錯誤的密文。

  故障注入的第二種應用發(fā)生于安全處理過(guò)程關(guān)鍵的決定時(shí)刻。若某一應用執行一個(gè)諸如PIN校驗的安全檢查,那么在器件決定是繼續還是中斷處理的那一刻進(jìn)行攻擊最為有效。攻擊者有可能將 PIN校驗失敗轉為成功以欺騙處理器。更為嚴格的一種方式是,在處理器正要將校驗失敗寫(xiě)入存儲器時(shí)完全關(guān)閉電源,從而避免PIN校驗失敗計數器溢出。

短脈沖干擾的第三種應用以操縱通信活動(dòng)為目標。通信協(xié)議的設計是為了從智能卡存儲



關(guān)鍵詞: 智能卡 邊頻攻擊

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>