3.2DPA攻擊的安全策略應(yīng)對DPA攻擊的安全策略基本分為三個(gè)層面:硬件、軟件和應(yīng)用層面。(1)硬件層面的反措施①采用平衡電路降低信號能量,以及設(shè)置金屬防護(hù)以抑制電磁發(fā)射。②執(zhí)行并行隨機(jī)處理來加大幅值噪聲水平。例如,內(nèi)部編程電壓產(chǎn)生電路可用作并行噪聲發(fā)生器。③隨時(shí)處理中斷引入的時(shí)間噪聲和不同的時(shí)鐘頻率。對差分軌跡進(jìn)行計(jì)算機(jī)處理的基礎(chǔ)是軌跡可排列。在加入軌跡之前處理器的工作步驟應(yīng)是同步的。時(shí)間噪聲會(huì)防止或至少妨
3.2 DPA攻擊的安全策略
應(yīng)對DPA攻擊的安全策略基本分為三個(gè)層面:硬件、軟件和應(yīng)用層面。
(1) 硬件層面的反措施
① 采用平衡電路降低信號能量,以及設(shè)置金屬防護(hù)以抑制電磁發(fā)射。
② 執(zhí)行并行隨機(jī)處理來加大幅值噪聲水平。例如,內(nèi)部編程電壓產(chǎn)生電路可用作并行噪聲發(fā)生器。
③ 隨時(shí)處理中斷引入的時(shí)間噪聲和不同的時(shí)鐘頻率。對差分軌跡進(jìn)行計(jì)算機(jī)處理的基礎(chǔ)是軌跡可排列。在加入軌跡之前處理器的工作步驟應(yīng)是同步的。時(shí)間噪聲會(huì)防止或至少妨礙軌跡很好地排列。
硬件反措施的好處在智能卡對于側(cè)路攻擊的敏感性比較少地依賴于軟件的變化,但其弱點(diǎn)在于只能降低智能卡對于側(cè)路攻擊的敏感性而無法完全消除它。事實(shí)上,硬件防范措施只是將信號降低到噪聲水平從而使攻擊變得困難。
(2) 軟件層面的反措施
① 采用隨機(jī)處理順序來減少相關(guān)的信號。例如,算法中的平行置換(諸如DES中的S盒)可依隨機(jī)的順序來完成,置換的數(shù)目重新排序,則可將一次置換產(chǎn)生的信號分解。
② 利用隨機(jī)延時(shí)和改變路徑來增加計(jì)時(shí)噪聲。計(jì)時(shí)噪聲會(huì)妨礙軌跡的排列,并降低差分軌跡的質(zhì)量。
③ 消除密鑰值及中間媒介值的時(shí)間依存性。當(dāng)處理過程取決于密鑰值時(shí),直接用肉眼觀察軌跡就可實(shí)現(xiàn)簡單的能量分析;而在時(shí)間上連續(xù)的密鑰處理過程則可防止這種易行的攻擊。
④ 用隨機(jī)值來隱蔽中間媒介值。能量的泄露取決于一個(gè)數(shù)據(jù)中的位數(shù)。如果在實(shí)際數(shù)據(jù)上加上隨機(jī)數(shù)據(jù),處理完之后再減去,那么傳遞的路徑將不會(huì)泄露有用的信息。不過,這種隱蔽將會(huì)導(dǎo)致傳遞函數(shù)的非線性并產(chǎn)生錯(cuò)誤的結(jié)果。因此,這些函數(shù)需要仔細(xì)地重新設(shè)計(jì),以補(bǔ)償由隨機(jī)數(shù)據(jù)引起的背離。
理論上來說,軟件對策完美地解決了DPA攻擊的問題。然而這種方法必須針對某種算法定制且其設(shè)計(jì)相當(dāng)困難,因而非常昂貴且難以維持。
(3) 應(yīng)用層面的反措施
① 重設(shè)
計(jì)數(shù)器,用于限制攻擊者試探的次數(shù)。連續(xù)三次
PIN校驗(yàn)失敗后自鎖是防范差分能量分析的有效方法。
② 限制加密算法中輸入輸出的控制和可見度。如果只能選擇部分輸入,或只有部分算法的結(jié)果返回,攻擊者就無法完成差分能量分析。
以上是防范DPA攻擊的基本方法,其缺點(diǎn)是對可靠性的負(fù)面影響以及需要改變已有的協(xié)議。
4 能量短脈沖干擾
4.1 能量短脈沖干擾攻擊的分析
微處理器要求在穩(wěn)定的電壓下工作,能量
供應(yīng)的中斷就好像突然沖擊程序運(yùn)行或復(fù)位電路。然而,一個(gè)短而巧妙的脈沖可以引起單步的程序錯(cuò)誤而微處理器仍能繼續(xù)執(zhí)行程序。例如, CPU讀取存儲單元的內(nèi)容,
晶體管用一個(gè)閾值來檢測存儲單元的值,以確定所讀的是邏輯“0”或“1”。突然出現(xiàn)的能量短脈沖對存儲值和邏輯值都會(huì)產(chǎn)生影響。不同的內(nèi)部容量會(huì)使存儲值受到不同的影響,有可能會(huì)使真實(shí)的值被歪曲。如圖3所示,與邏輯“0”對應(yīng)的低電平在正常的操作狀態(tài)下可能低于閾值電平,然而由于短脈沖的能量下壓可能導(dǎo)致其高于閾值電平。
許多加密算法都易受這一類故障注入的影響。采用差分故障分析DFA(Differential Fault Analysis )技術(shù)將正確的與錯(cuò)誤的密碼編碼相比較,從而析出秘藏的密鑰。有些算法僅當(dāng)一個(gè)精確的中間值被襲擊時(shí)才能被攻擊,而其他算法要求不那么苛刻,可以在處理過程的任何位置被攻擊。通常DFA要求有可能對同一個(gè)明文加密2次,產(chǎn)生一個(gè)正確的和一個(gè)錯(cuò)誤的密文。
故障注入的第二種應(yīng)用發(fā)生于安全處理過程關(guān)鍵的決定時(shí)刻。若某一應(yīng)用執(zhí)行一個(gè)諸如PIN校驗(yàn)的安全檢查,那么在器件決定是繼續(xù)還是中斷處理的那一刻進(jìn)行攻擊最為有效。攻擊者有可能將PIN校驗(yàn)失敗轉(zhuǎn)為成功以欺騙處理器。更為嚴(yán)格的一種方式是,在處理器正要將校驗(yàn)失敗寫入存儲器時(shí)完全關(guān)閉
電源,從而避免PIN校驗(yàn)失敗計(jì)數(shù)器溢出。