錯誤注入攻擊總結(Fault Injection Attack)

1.   什麼叫錯誤注入攻擊

錯誤注入攻擊,指在密碼芯片設備中通過在密碼算法中引入錯誤,導致密碼設備產生錯誤結果,對錯誤結果進行分析從而得到密鑰。

它比差分能量攻擊(DPA,DifferentialPower Analysis)、簡單能量攻擊(SPA,SimplePower Analysis)、電磁分析攻擊(EMA,ElectromagneticAnalysis)都更強大。攻擊沒有防護的RSA-CRT只需要一個trace(能量跡),AES或者DES需要兩個traces。DPA和EMA通常需要上千或者上萬條traces,SPA需要少量traces,但不夠強大。

 

2.   錯誤注入攻擊的主要方式

a)    Glitch Attack

通過擾亂外部電壓或者外部時鐘使設備失靈對設備進行攻擊,優點是易於實施,但無法對某一個特定的部分進行攻擊。現在的大多數芯片都有glitch detector或者DC filter來抵抗攻擊。 

b)    Temperature Attack

通過改變外部的溫度來擾亂設備的正常運行,從而得到錯誤結果。

c)    Light Attack

通過激光照射,利用光子擾亂密碼設備的正常運行。它可以選擇攻擊的位置,是最強的攻擊方式。由於芯片主要都是在正面進行保護,背面很少採用保護措施。Laser attack可以通過照射背部進行攻擊。

 d)    Magnetic Attack

電磁攻擊,利用強大的磁場對設備進行干擾。優勢在於廉價,但不如Laser attack強。

 

3.   錯誤的種類:包括永久性錯誤和暫時性錯誤

a)    永久性錯誤

強大,可用於攻擊數據(EEPROM、RAM)或者代碼(EEPROM),但是難於實現。

 b)    暫時性錯誤

干擾代碼的特定操作過程,包括:跳過子過程skip subroutine, 避免檢測avoidtest, 錯誤執行代碼executedifferently, 抓取錯誤數值fetch wrongvalue, 改變程序計數器modify programcounter等

 

4.   錯誤注入攻擊模型的選擇:步驟分兩步,首先選擇引入哪種錯誤,然後再選擇實踐的方式。

a)    Bit v.s. Byte

Bit: 攻擊單bit,強大,幾乎可以成功攻擊所有的密碼系統,但難於實現

Byte:攻擊整個Byte,由於byte是設備數據的存儲和傳輸的主要方式,所以它比較易於實現

 b)    Specific v.s. Random Value

Specific:把數據設爲全0或者全1,理論上比較容易想到的攻擊方式

Random Value:利用隨機數進行攻擊,比較易於實現。

 c)    Static v.s. Computational

Static:用於攻擊DSA,攻擊點是存儲器memory,比較困難

Computational:用於攻擊RSA-CRT,在攻擊中引入錯誤操作計算,實現起來比較容易。

 d)    Data v.s. Control

Data:攻擊芯片操作中的數據

Control:攻擊芯片的操作過程,這種方法比較難於實現,但更加強大。



Reference:

Kim, Chong Hee, and J-J. Quisquater. "Faults, injection methods, and fault attacks."Design & Test of Computers, IEEE 24.6 (2007): 544-545.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章