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: