晶元物理攻擊平台 ChipWhisperer 初探
來自專欄伏宸安全實驗室6 人贊了文章
前言
傳統基於窮舉或純數學理論層面的分析,對於現代高強度加密演算法而言,算力有限導致無法實現窮舉,演算法的複雜性也無法通過數學工具直接破解,根據近代物理學發展出來的理論,電子設備依賴外部電源提供動力,設備在運行過程中會消耗能量,同時會跟外界環境存在聲、光、電、磁等物理交互現象產生,設備本身也可能存在設計薄弱點,通過這些物理泄露或人為進行物理層的修改獲取數據,然後運用各類數學工具和模型實現破解。
然而在做物理攻擊時,往往需要昂貴的設備,並要具備數學、物理學、微電子學、半導體學、密碼學、化學等等多學科的交叉理論知識,因此其技術門檻和攻擊成本都很高,目前在剛剛結束的 Blackhat 2018 上,展台上展示了多款 ChipWhisperer 硬體工具,作為親民型的物理攻擊平台,獲得了一致的好評。
ChipWhisperer Lite 版官方商店售價 $250 ,不管是實驗學習,還是實戰入門,都是極具性價比的,本文主要介紹主流的一些物理攻擊手段,以及對 ChipWhisperer 的初步認知,後續將會據此從理論、原理、實驗以及實戰等角度詳細介紹該平台。
物理攻擊
真正的安全研究不能凌駕於真實的攻防場景,對於物聯網安全而言,其核心目標是真實物理世界中的各種硬體設備,真實的攻擊場景往往發生在直接針對硬體設備的攻擊,因此物聯網安全的基石在於物理層的安全,而針對物聯網物理攻擊手段,是當前物聯網面臨的最大安全風險之一。
物理攻擊就是直接攻擊設備本身和運行過程中的物理泄露,根據攻擊過程和手段可以分為非侵入攻擊、半侵入式攻擊和侵入式攻擊。ChipWhisperer 平台主要用做非侵入式攻擊,包括側信道和故障注入攻擊等。
傳統密碼分析學認為一個密碼演算法在數學上安全就絕對安全,這一思想被Kelsey等學者在1998年提出的側信道攻擊(Side-channel Attacks,SCA)理論所打破。側信道攻擊與傳統密碼分析不同,側信道攻擊利用功耗、電磁輻射等方式所泄露的能量信息與內部運算操作數之間的相關性,通過對所泄露的信息與已知輸入或輸出數據之間的關係作理論分析,選擇合適的攻擊方案,獲得與安全演算法有關的關鍵信息。目前側信道理論發展越發迅速,從最初的簡單功耗分析(SPA),到多階功耗分析(CPA),碰撞攻擊、模板攻擊、電磁功耗分析以及基於人工智慧和機器學習的側信道分析方式,側信道攻擊方式也推陳出新,從傳統的直接能量採集發展到非接觸式採集、遠距離採集、行為側信道等等。
故障攻擊就是在設備執行加密過程中,引入一些外部因素使得加密的一些運算操作出現錯誤,從而泄露出跟密鑰相關的信息的一種攻擊。一些基本的假設:設定的攻擊目標是中間狀態值; 故障注入引起的中間狀態值的變化;攻擊者可以使用一些特定演算法(故障分析)來從錯誤/正確密文對中獲得密鑰。
使用故障的不同場景: 利用故障來繞過一些安全機制(口令檢測,文件訪問許可權,安全啟動鏈);產生錯誤的密文或者簽名(故障分析);組合攻擊(故障+旁路)。
ChipWhisperer
簡介
本系列使用的版本是 CW1173 ChipWhisperer-Lite ,搭載 SAKURA-G 實驗板,配合一塊 CW303 XMEGA 作為目標測試板。
CW1173 是基於FPGA實現的硬體,軟體端基於 python,具有豐富的擴展介面和官方提供的各類 API 供開發調用,硬體通過自帶的 OpenADC 模塊可以實現波形的捕獲,不需要額外的示波器。
板上自帶有波形採集埠(MeaSure)和毛刺輸出(Glitch)埠,並自帶 MOSFET 管進行功率放大。
並提供多種介面觸發設置,基本滿足一般的攻擊需求。
能量攻擊
晶元物理結構為許多CMOS電路組合而成,CMOS 電路根據輸入的不同電信號動態改變輸出狀態,實現0或1的表示,完成相應的運算,而不同的運算指令就是通過 CMOS 組合電路完成的,但 CMOS電路根據不同的輸入和輸出,其消耗的能量是不同的,例如彙編指令 ADD 和 MOV ,消耗的能量是不同的,同樣的指令操作數不同,消耗的能量也是不同的,例如 MOV 1 和 MOV 2其能量消耗就是不同的,能量攻擊就是利用晶元在執行不同的指令時,消耗能量不同的原理,實現秘鑰破解。
常用的能量攻擊方式就是在晶元的電源輸入端(VCC)或接地端(GND)串聯一個1到50歐姆的電阻,然後用示波器不斷採集電阻兩端的電壓變化,形成波形圖,根據歐姆定律,電壓的變化等同於功耗的變化,因此在波形圖中可以觀察到晶元在執行不同加密運算時的功耗變化。
CW1173 提供能量波形採集埠,通過連接 板上的 MeaSure SMA 介面,就可以對能量波形進行採集,在利用chipwhisperer 開源軟體就可以進行分析,可以實現簡單能量分析、CPA攻擊、模板攻擊等。
毛刺攻擊
ChipWhisperer 提供對時鐘、電壓毛刺的自動化攻擊功能,類似於 web 滲透工具 Burpsuite ,可以對毛刺的寬度、偏移、位置等等參數進行 fuzz ,通過連接板上的 Glitch SMA 介面,就可以輸出毛刺,然後通過串口、web 等獲取結果,判斷毛刺是否注入成功。
時鐘毛刺攻擊是針對微控制器需要外部時鐘晶振提供時鐘信號,通過在原本的時鐘信號上造成一個干擾,通過多路時鐘信號的疊加產生時鐘毛刺,也可以通過自定義的時鐘選擇器產生,CW1173 提供高達 300MHZ 的時鐘周期控制,時鐘是晶元執行指令的動力來源,通過時鐘毛刺可以跳過某些關鍵邏輯判斷,或輸出錯誤數據。
電壓毛刺是對晶元電源進行干擾造成故障,在一個很短的時間內,使電壓迅速下降,造成晶元瞬間掉電,然後迅速恢復正常,確保晶元繼續正常工作,可以實現如對加密演算法中某些輪運算過程的干擾,造成錯誤輸出,或跳過某些設備中的關鍵邏輯判斷等等 。
更多
隨著物理攻擊理論和技術的進步,針對硬體晶元的防護手段也隨之提高,晶元物理層的攻防一直在不斷角力 ,現實環境中,能量採集會受到各種雜訊因素的干擾,硬體廠商也會主動實施一些針對物理攻擊的防護,單純依靠 ChipWhisperer 平台難以實現真實場景的攻擊,因此還需要結合電磁、聲波、紅外、光子等多重信息,以及對硬體進行修改,多重故障注入,引入智能分析模型等等組合手段,今後會進一步介紹一些基於 ChipWhisperer 的高級攻擊方式和實戰分析方法。
參考
1. ChipWhisperer 官網 wiki ChipWhisperer Wiki
2. 開源項目 newaetech/chipwhisperer
3. ChipSHOUTER 電磁故障平台 newaetech/ChipSHOUTER
4. USB 附加模塊 scanlime/facewhisperer
5. 深度學習側信道攻擊 Lowering the bar: deep learning for side-channel analysis - Riscure
6. 使用毛刺攻擊提取汽車 ECU 固件 Fault injection on automotive diagnostic protocols - Riscure
7. 《物聯網安全百科》 前言 · 物聯網安全百科
推薦閱讀:
※如何評價2018年DDCTF線上賽?
※燕麥云何洋開講丨知道了這些,你還會用共享充電寶嗎?
※深入了解正在進行的間諜活動
※靜態數據脫敏產品技術路線分析
※深入理解Windows頁幀號(一)