序言
傳統基于窮舉或純物理理論層面的剖析,對于現代高硬度加密算法而言,算力有限造成難以實現窮舉,算法的復雜性也未能通過物理工具直接破解,按照近代數學學發展下來的理論,電子設備依賴外部電源提供動力,設備在運行過程中會消耗能量,同時會跟外界環境存在聲、光、電、磁等化學交互現象形成,設備本身也可能存在設計薄弱點,通過這種化學泄漏或人為進行化學層的更改獲取數據,之后運用各種物理工具和模型實現破解。
但是在做數學功擊時,常常須要高昂的設備,并要具備物理、物理學、微電子學、半導體學、密碼學、化學等等多學科的交叉理論知識,因而其技術門檻和功擊成本都很高,目前在剛才結束的2018上,展廳上展示了多款硬件工具,作為親民型的數學功擊平臺,獲得了一致的好評。
(圖片來源Newae官方)
Lite版官方商店售價$250,不管是實驗學習,還是實戰入門,都是極具性價比的,本文主要介紹主流的一些數學功擊手段,以及對的初步認知,后續將會據此從理論、原理、實驗以及實戰等角度詳盡介紹該平臺。
化學功擊
真正的安全研究不能凌駕于真實的攻守場景,對于物聯網安全而言,其核心目標是真實化學世界中的各類硬件設備,真實的功擊場景常常發生在直接針對硬件設備的功擊,因而物聯網安全的基石在于化學層的安全,而針對物聯網化學功擊手段,是當前物聯網面臨的最大安全風險之一。
化學功擊就是直接功擊設備本身和運行過程中的化學泄漏,按照功擊過程和手段可以分為非侵入功擊、半侵入式功擊和侵入式功擊。平臺主要用做非侵入式功擊,包括側信道和故障注入功擊等。
傳統密碼剖析學覺得一個密碼算法在物理上安全就絕對安全,這一思想被等學者在1998年提出的側信道功擊(Side-,SCA)理論所打破。側信道功擊與傳統密碼剖析不同,側信道功擊借助幀率、電磁幅射等方法所竊取的能量信息與內部運算操作數之間的相關性,通過對所竊取的信息與已知輸入或輸出數據之間的關系作理論剖析,選擇合適的功擊方案,獲得與安全算法有關的關鍵信息。目前側信道理論發展越發迅速,從最初的簡單幀率剖析(SPA),到多階幀率剖析(CPA),碰撞功擊、模板功擊、電磁幀率剖析以及基于人工智能和機器學習的側信道剖析方法,側信道功擊方法也推陳出新,從傳統的直接能量采集發展到非接觸式采集、遠距離采集、行為側信道等等。
借助耳機進行聲波側信道
借助軟件無線電施行非接觸電磁側信道
故障功擊就是在設備執行加密過程中,引入一些外部誘因促使加密的一些運算操作出現錯誤,因而外泄出跟秘鑰相關的信息的一種功擊。一些基本的假定:設定的功擊目標是中間狀態值;故障注入造成的中間狀態值的變化;功擊者可以使用一些特定算法(故障剖析)來從錯誤/正確密文對中獲得秘鑰。
使用故障的不同場景:借助故障來繞開一些安全機制(口令檢查,文件訪問權限物理攻擊的定義,安全啟動鏈);形成錯誤的密文或則簽名(故障剖析);組合功擊(故障+旁路)。
非侵入式電磁注入
半侵入式光子故障注入
侵入式故障注入
簡介
本系列使用的版本是-Lite,搭載-G實驗板,配合一塊CW303XMEGA作為目標測試板。
是基于FPGA實現的硬件,軟件端基于,具有豐富的擴充插口和官方提供的各種API供開發調用,硬件通過自帶的模塊可以實現波形的捕獲,不須要額外的示波器。
板上自帶有波形采集端口()和毛刺輸出()端口,并自帶管進行功率放大。
并提供多種插口觸發設置,基本滿足通常的功擊需求。
能量功擊
芯片化學結構為許多CMOS電路組合而成,CMOS電路按照輸入的不同聯通號動態改變輸出狀態,實現0或1的表示,完成相應的運算,而不同的運算指令就是通過CMOS組合電路完成的,但CMOS電路按照不同的輸入和輸出,其消耗的能量是不同的,比如匯編指令ADD和MOV,消耗的能量是不同的,同樣的指令操作數不同,消耗的能量也是不同的,比如MOV1和MOV2其能量消耗就是不同的,能量功擊就是借助芯片在執行不同的指令時,消耗能量不同的原理,實現密鑰破解。
常用的能量功擊方法就是在芯片的電源輸入端(VCC)或接地端(GND)串聯一個1到50歐姆的內阻,之后用示波器不斷采集內阻兩端的電流變化,產生波形圖,按照歐姆定理,電流的變化等同于幀率的變化,因而在波形圖中可以觀察到芯片在執行不同加密運算時的幀率變化。
提供能量波形采集端口,通過聯接板上的SMA插口,就可以對能量波形進行采集,在借助開源軟件就可以進行剖析,可以實現簡單能量剖析、CPA功擊、模板功擊等。
通過cpa功擊AES加密算法獲取秘鑰
毛刺功擊
提供對時鐘、電壓毛刺的手動化功擊功能,類似于web滲透工具,可以對毛刺的長度、偏移、位置等等參數進行fuzz,通過聯接板上的SMA插口,就可以輸出毛刺,之后通過并口、web等獲取結果物理攻擊的定義,判定毛刺是否注入成功。
時鐘毛刺功擊是針對微控制器須要外部時鐘晶振提供時鐘訊號,通過在先前的時鐘訊號上引起一個干擾,通過多路時鐘訊號的疊加形成時鐘毛刺,也可以通過自定義的時鐘選擇器形成,提供高達的時鐘周期控制,時鐘是芯片執行指令的動力來源,通過時鐘毛刺可以跳過個別關鍵邏輯判定,或輸出錯誤數據。
通過時鐘毛刺功擊跳過密碼驗證
電流毛刺是對芯片電源進行干擾導致故障,在一個很短的時間內,使電流迅速增長,導致芯片頓時掉電,之后迅速恢復正常,確保芯片繼續正常工作,可以實現如對加密算法中個別輪運算過程的干擾,導致錯誤輸出,或跳過個別設備中的關鍵邏輯判定等等。
對嵌入式設備的電流毛刺功擊