隨著嵌入式系統與產品於我們日常生活中的普及,其安全性正逐漸成為不可忽視的議題。對嵌入式系統開發人員和使用者而言,安全上的顧慮來自於入侵者得以透過系統遠端及實體的方式進行存取。
提升遠端存取安全性的做法,包括在系統中結合安全資料通訊、安全軟體及韌體更新等功能,例如運用業界接受的加密演算法及安全通訊協定。本文將著重探討入侵者對系統或產品進行實體存取的安全顧慮、瞭解系統級篡改防護的必要性,以及如何利用系統級篡改偵測與回應功能來減輕安全衝擊。
系統級篡改偵測功能的實作,包括識別出系統中的安全性資產,並定義相關的信任界線;而任何入侵信任界線(例如電錶盒)的舉動皆視為必須被偵測到的篡改企圖。
偵測後也必須採取適當的因應措施,來提高資產安全性。防篡改機制必須謹慎實施,避免大幅影響整體系統解決方案的成本與效能。本文將說明超低功耗MSP微控制器(MCUs)支援的功能,以及其可達成上述目的的系統級篡改防護功能。
「篡改」是指意圖更改或操控系統,藉此竊取系統中的機密或於未經授權之下操作系統。通常不可能設計出完全防止篡改的系統,因為實作反制措施來防止各種已知或潛在的未知攻擊都會提高成本(例如隨著技術持續提升,入侵者的攻擊能力逐漸增強,其成功篡改系統所需的時間與成本也逐漸降低)。
系統設計師採用下列技術來實作某種程度的篡改防護功能,以解決或因應系統面臨的實體攻擊:
‧篡改偵測(Tamper Detection):意指監控系統的篡改感測器或輸入功能,以及識別/鑑定任何異常以指出系統中可能的篡改事件。
‧篡改回應(Tamper Response):意指系統在發現篡改事件時所採取的動作。篡改回應機制通常會採取行動來防止系統中的安全資產受到危害(例如系統中重要資訊的讀取功能或是操控),以免系統遭濫用或修改。
‧防弊功能(Tamper Evidence):意指標記或記錄系統中的篡改事件。通常在系統發生可觀測的不可逆變更時,防弊系統才會啟動進一步的調查。防弊功能可保留產品層級的實體證據(例如密封遭破壞)、含篡改時間及篡改動作來源等細節的篡改紀錄及其它可供採取進一步行動的詳細資訊。
‧防篡改功能(Tamper Resistance):意指系統主動偵測並防禦威脅,來保護系統及其處理的資料免受危害的能力,其可衡量威脅(攻擊者)成功執行篡改攻擊所需的時間、技能、工具及知識。
嵌入式系統可能有不同層級的篡改防護要求,必須依據系統所需達成的目標予以設計。例如有些系統僅需防弊功能,而無需篡改回應或抗篡改機制。
入侵者存取系統的手法類型
就系統存取的觀點而言,駭客威脅主要分為三類:網路(遠端)、基板(鄰近區域)及晶片威脅(圖二)。
網路威脅泛指允許駭客不在現場或於裝置附近即可發動攻擊的通訊(例如駭客可能位於地球另一端的房間)。
基板威脅泛指對於PCB(印刷電路板)的存取行為以及晶片介面的使用。通常是除錯介面(例如JTAG)、電源供應器(例如功率分析攻擊或突波攻擊)以及任何序列介面(例如UART允許讀取記憶體)。
晶片威脅泛指需要拆解裝置以存取內部層與元件的攻擊(例如反向工程、以電子顯微術讀取記憶體、以發散顯微術來進行門海(Sea of Gate)分析法,或利用聚焦離子束(FIB)來修改或避開安全感測器)。針對最後一種威脅的反制通常較為不易且昂貴,但駭客的攻擊成本也較高 (例如需要特殊設備及訓練)。
實體攻擊意指基板與晶片威脅。本文的焦點為基板威脅。
實體攻擊的安全顧慮(基板與晶片威脅)
篡改防護是一種於系統中實作的措施,目的是減輕實體篡改的安全風險。系統或晶片級實體攻擊的目的包括:
‧破壞系統機密性(例如存取程式碼IP與資料或金鑰)。
‧破壞系統完整性(例如修改裝置中或外部記憶體內存的程式碼、資料或金鑰,藉此進一步控制系統)。
‧破壞系統可用性(例如使系統無法使用來中斷正常運作),也稱為阻斷服務攻擊。
‧找出系統弱點以供駭客自遠端入侵現場部署設備(此即連結實體與遠端兩種攻擊型態)。
涉及產品實體存取的各種攻擊大致分類如下:
‧非侵入性攻擊:這類攻擊不包括實體入侵、損壞產品外殼或裝置封裝(分別為系統層與晶片級)。
典型的非侵入性攻擊包括:
‧跨頻道攻擊(Side-channel attacks):這類攻擊藉由觀察系統執行加密或安全作業的行為(例如執行時間、功耗或出現故障時的行為),以取得系統所使用之金鑰或密碼。
典型的跨頻道分析型攻擊包括:
‧時間分析攻擊
‧EMA(電磁分析)
‧功率分析,包括簡易功率分析(SPA)或差分功率分析(DPA)
‧故障注入攻擊(Fault injection attacks):這類攻擊會改變環境與操作條件,導致裝置或系統發生影響安全性的故障(例如跳過關鍵的CPU指令,或抹除位元以破壞裝置除錯鎖定或其它裝置編程安全功能)。
常見的方法包括變更下列條件:
‧電壓(例如將干擾導入電源供應器、提高或降低供電壓,使其超過運作限值)。
‧溫度(例如加熱或冷卻裝置,使其超過運作限值)
‧時鐘或時間(例如外部晶體攻擊、傳送過短的時鐘脈衝clock pulse)
‧軟體攻擊:透過裝置的任何通訊介面所發起的攻擊。
常受攻擊的裝置通訊介面為:
‧裝置除錯介面,例如鎖定JTAG/SBW對於存有安全資產的嵌入式記憶體裝置的存取
‧其它裝置編程介面(例如開機載入程式、廠商專屬介面或通訊協定)
‧任何資料通訊介面(例如外部記憶體介面、序列介面(I2C、UART、SPI)、(EMIF、Quad SPI)無線介面)
‧侵入式攻擊:涉及入侵實體系統或晶片級的攻擊。
‧在系統級方面,這意味著入侵實體系統的產品機殼或防篡改機殼(信任邊界)內部(例如PCB篡改網格)。
‧在晶片級方面,這意味著入侵實體裝置的封裝。晶片級的實體入侵不在本文範圍內,因此不做進一步討論。
保障系統實體存取的必要性
系統層級的篡改防護最常用於支付卡產業(PCI)的產品(例如信用卡讀卡機),在這些應用中,篡改防護必須符合特定的PCI標準。但是,篡改防護的概念不應侷限於上述應用,其它面臨實體存取層級攻擊風險的應用領域也必須考慮採用。
由於許多應用皆已連接網際網路,保護遠端連線安全性變得至關重要;然而系統設計師亦應考量,在實體存取層級所蒐集的任何資訊,皆有利於駭客從遠端入侵,因此,保護產品的實體存取安全也非常重要。並非所有安全措施皆可套用至系統,且須考量若有安全漏洞遭到入侵,在聲譽、財務、營運、安全或健康等方面會有何衝擊及其損害程度。
晶片級與系統級篡改防護的差異
以內嵌記憶體的MCU而言,系統的機密資料通常位於晶片(例如程式碼、資料及金鑰)。但是,具有晶片級篡改防護的MCU設計成本很高(例如MCU裸片的屏蔽可能需要在晶圓加工製程中增加額外遮罩),而安全MCU類型的MCU產品通常支援這項功能。
若要降低晶片級篡改防護的成本,又要實作足夠的安全措施以因應實體存取的威脅,則應考慮採用系統級篡改防護。它可在系統級提供篡改防護,並可涵蓋MCU以外受系統層級篡改防護措施的適用元件。其它元件包括感測控制器、備用電池、外部晶體及外部記憶體。系統級篡改防護亦可依據產品所部署的環境或周遭情況,提供篡改條件與閾值的設定彈性。
(本文作者Bhargavi Nisarga、Eric Peeters皆任職於德州儀器)