幾乎所有基于MCU的嵌入式系統 - 汽車,無人機,USB記憶棒,車庫門開啟器,數碼相機,甚至是打印機墨盒等耗材 - 都容易受到安全攻擊。
越來越多的記錄在案的安全漏洞使用物聯網(IoT)作為切入點,提高了物聯網連接設備的設計社區的安全意識。通常,這些故事涉及影響消費者和最終用戶的漏洞。但是,其他類型的安全威脅對設計工程師來說至少同樣重要 - 而且大多數涉及盜竊,篡改或破壞知識產權。
互聯網可能已成為基于MCU的系統中最受歡迎的切入點,但它遠非唯一的。無擔保或安全性不足的診斷端口一直容易受到攻擊 - 因為汽車行業很大程度上是通過“調諧器”社區的活動發現的。任何無線(或有線)通信鏈路也可用作入口點。即使是未連接的MCU設備(或其相關ROM)也會受到篡改和IP盜竊。在其他技術中,逆向工程專家已經開發出一些技術,其中芯片的掩模層被小心地磨平,直到暴露出ROM層。通過仔細分析哪些交換機已被燒斷,可以推斷出其中包含的固件代碼。
MCU供應商已采用多種方法來響應,以增強運行其設備的固件的安全性。雖然這些措施使固件更加安全,但實施它們需要系統設計團隊了解它們的工作方式 - 并正確實施它們。這涉及系統物料清單(BOM)的額外工作量,時間和成本。計算機密集型安全措施(如數據加密)可能需要功能更強大的MCU。
安全策略
軟件解決方案通常被認為是一種極具吸引力的選擇,因為它們相對容易實現且幾乎免費。有時它們已足夠,但通常情況下是“快速,便宜,簡單”的解決方案,它們會帶來更多風險。安全算法的關鍵組件,如加密密鑰,存儲在MCU的現有內存資源中,如作為EEPROM或Flash。但是,如果存儲設備本身不安全,則密鑰信息仍然存在風險。算法本身也可能存在實施錯誤,使其容易受到攻擊。
基于軟件的解決方案的一個流行變體是為系統的客戶端添加基于硬件的安全性并使用軟件安全性在主機方面。該硬件 - 可以存在于客戶端MCU或附加芯片中 - 用于存儲加密密鑰并執行部分或全部安全算法。關鍵數據受邏輯和物理機制的組合保護,這些機制通常由制造商保密。這種方法可以有效防御中間人攻擊。由于主機端密鑰存儲在不安全的資源中,它們仍然可能被更改或被盜。完全由硬件實現的MCU安全性將防篡改密鑰存儲放置在系統的每個關鍵點,包括加密,并執行硬件中的安全算法。
實現基于硬件的MCU安全性的一種流行方式是MCU供應商提供專門設計的處理器和外圍設備。實施方案各不相同,但通常安全處理芯片組可提供更低的性能并增加BOM成本。
硬件加密
Microchip Technology通過在MCU上集成加密引擎,為其一些常用的PIC器件提供硬件安全性。該引擎還執行身份驗證以防止中間人攻擊。兩個例子是16位PIC24F“GB2”和32位PIC32MZ。
除了增加安全性之外,集成引擎還可以將MCU卸載到軟件中執行加密算法的任務.Microchip的硬件引擎可以執行加密和驗證順序或并行。基于內部描述符的DMA用于安全關聯數據和分組指針的有效編程。智能狀態機根據協議選擇和數據包邊界調度加密引擎。
主要功能包括:批量密碼和哈希引擎,集成DMA到卸載處理,每個緩沖區描述符的安全關聯以及執行能力一些函數并行。
圖1顯示了PIC32MZ的算法和性能指標。與在軟件中執行算法相比,性能指標可以指示加密速度和獲得的CPU卸載量。
引擎/算法性能因子
(Mbps/MHz)最大Mbps
(PBCLK5 = 100 MHz)DEC 14.4 1440 TDES 6.6 660 AES-128 9.0 900 AES-192 7.9 790 AES-256 7.2 720 MD5 15.6 1560 SHA-1 13.2 1320 SHA-256 9.3 930
Microchip為其32位加密引擎器件提供DM320006-C入門套件,為其16位器件提供DM240314演示套件。
德州儀器(TI)最近推出了一種新的嵌入式MCU存儲器方法,其新系列MSP430 FRAM MCU使用鐵電隨機存取存儲器(FRAM)代替Flash。 FRAM結合了Flash和SRAM的屬性。與Flash一樣,它是非易失性的,但與SRAM一樣,它可以提供快速,低功耗的寫入。它的重寫耐久性大于1015個周期。
由于其對輻射和電磁場的抵抗力,FRAM中存儲的數據比Flash/EEPROM更不易受到逆向工程攻擊。此外,它的功率和訪問速度優于閃存。
13 KB的FRM寫入速度為10 ms,而閃存為1 s,其測得的平均有功功率(16位字訪問測量)為100μA/MHz與閃存的230μA/MHz相比。
它對輻射和電磁場的抵抗力使FRAM在使用顯微鏡和電壓操縱防止物理攻擊方面特別有價值。
在這些類型的攻擊中,黑客試圖改變應用程序代碼本身,而不是在傳輸數據時嘗試修改數據。為了實現這一目標,他們首先獲得應用程序代碼的圖像,對其進行反向工程,最后在系統中成功覆蓋修改后的版本。
FRAM抵抗顯微鏡攻擊,因為位寫入和讀取線實際位于任何一側極化分子,這意味著芯片的去層可能會破壞存儲器的內容。
主要由于FRAM寫周期的速度,可以防止電壓操作。在這些攻擊中,器件的輸入電壓在標準范圍之外被操縱,以通過強力對位單元進行編程。很難提供欠壓和過壓保護電路,其工作時間長于編程EEPROM位單元所需的時間。但是,由于FRAM寫入速度要快得多,因此可以將此保護電路配置為創建安全的回寫電路,以允許FRAM正確完成寫入過程。
保護編程端口
MSP430 FRAM MCU還具有保護用于對器件進行編程的端口的有效方法,這些端口是黑客的有吸引力的切入點。通常,這些是JTAG接口和引導帶加載器(BSL),主要用于固件升級。通過在FRAM中編程熔絲簽名,TI的FRAM MCU可以使用密碼保護JTAG或完全禁用它。禁用JTAG端口時,只能使用BSL訪問設備,BSL需要密碼才能讀出或接收數據。
密碼是中斷向量表的內容。在MSP430 FRAM設備上,提供錯誤的密碼將導致整個FRAM代碼區域被大量擦除。增加密碼強度的另一種方法是使用有效的地址值填充中斷向量表中任何未使用的地址空間,或者通過創建雙跳表使得執行暴力攻擊更加困難。
TI提供適用于MSP430 FRAM器件的MSP-EXP430FR5739開發套件。該板與許多TI低功耗RF無線評估模塊兼容。
安全密鑰管理器
另一種替代方案 - 由Atmel公司提供的另一種方案 - 通過存儲密鑰,密碼的廉價芯片實現加密安全性和其他數據在EEPROM中。安全密鑰管理器使用各種物理和邏輯機制,例如隨機數生成器,使設備防篡改,并且還能夠實現身份驗證和加密。
因為它們是自治設備,所以它們會刪除來自MCU的100%的計算負擔。由于大多數加密和保護方案的工作都是由芯片供應商提前完成的,因此整體系統設計時間也大大縮短。
Atmel的CryptoAuthentication ATSHA204系列器件為設計團隊提供了此選項。這些芯片使用SHA-256哈希算法,該算法由消息認證碼(MAC)和基于哈希的消息認證碼(HMAC)選項增強。其他功能包括:
256位密鑰長度
最多16個加密密鑰的存儲
保證唯一的72位序列號
內部高質量隨機數發生器(RNG)
用于密鑰和數據的4.5 Kb EEPROM
512位OTP(一次性可編程)用于固定信息的位
多個I/O選項
獨特的72位序列號對于實現ATSHA204的大部分功能至關重要。使用設備支持的加密協議,主機系統或遠程服務器可以證明序列號是真實的而不是副本。
ATSHA204生成高質量隨機數的能力也被設備的加密協議使用至于其他安全策略。靈活的命令集可以簡化實施防偽和反克隆保護,固件IP保護和驗證,安全數據存儲,用戶密碼檢查和會話密鑰交換的任務。
Authentication
一種有效的策略來對抗模仿產品是為與真實產品配合使用的配件實施認證過程。當電纜,插件,電源和電池等常見配件使仿制產品無用時,它們會暴露其偽造品質。
同樣,仿制配件也無法與原始產品配合使用。模仿配件總會導致收入損失,但是未經完全符合規格的未經授權的配件(如電池或醫療設備)也會造成嚴重傷害。在客戶端向系統添加安全密鑰管理器是實現高級別安全性的第一步。
通過將ATSHA204包含在主機系統中可以獲得額外的安全性,如圖2所示。主機生成客戶端(附件)的隨機挑戰并評估其響應。
由于主機的挑戰是使用其ATSHA204生成的,因此即使主機處理器也不知道其響應,因此可以獲得額外的安全優勢。將處理器與安全功能隔離,可以使用廉價的非安全加固處理器,而無需提供攻擊者可以通過其獲取系統秘密的弱點。
圖2:在附件和主機上包括安全密鑰存儲可提高系統級安全性。 (由Atmel公司提供)
固件驗證
雖然許多安全威脅可能會損害公司收入或損害其品牌,但設計工程師最擔心的是嘗試復制或破壞MCU的固件,這是通常存儲在Flash中。有效防御是一種安全啟動過程,可確保只有正版固件才能在系統上運行。
安全啟動是使用存儲在閃存中的驗證代碼或簽名以及啟動代碼實現的。簽名是在制造或代碼更新時創建的,并且是加密散列函數的輸出 - 一種不可逆算法,它將引導代碼“壓縮”為緊湊但唯一的數據報,通常長度為32-128字節。圖3說明了如何將計算和密鑰存儲卸載到硬件密鑰管理設備(ATSHA204)中。
圖3:安全啟動是保護MCU固件的絕佳方法。 (由Atmel公司提供)
在系統啟動時,部分引導順序要求安全設備驗證引導代碼附帶的簽名。只有在驗證成功時才會執行操作程序,并允許系統以正常方式運行。即使用一位修改操作程序也需要新的驗證簽名。代碼圖像和下載的媒體文件都可以使用加密密鑰進行存儲,加密密鑰只能在單個經過身份驗證的系統上使用。
結論
為了應對安全漏洞和模仿產品的激增,MCU供應商正在提供硬件 - 基于芯片的安全解決方案。雖然比基于軟件的解決方案成本更高,但即使是最持久的入侵者也難以打敗它們 - 如果不是不可能的話。解決方案包括嵌入式加密引擎,內存技術(如FRAM),以及將MCU與惡意干擾隔離開來的自主安全芯片。但是,沒有一個通用的解決方案。設計團隊必須為其應用程序創建最合適的安全策略。
-
mcu
+關注
關注
146文章
17824瀏覽量
360174 -
嵌入式
+關注
關注
5139文章
19524瀏覽量
314738 -
德州儀器
+關注
關注
123文章
1782瀏覽量
141982
發布評論請先 登錄
國產智能掃地機器人被曝存在安全漏洞,易隱私泄露
開發人員和嵌入式系統設計人員如何使用JWT關閉物聯網設備的安全漏洞?
軟件安全漏洞的靜態檢測技術
Linux發現更多安全漏洞LHA 與imlib受到波及
Intel發布補丁 修復vPro安全漏洞

VoIP安全漏洞以及防護辦法
Intel披露一種新的CPU安全漏洞
微軟開發出一種新系統 區分安全漏洞和非安全漏洞準確率高達99%
NVIDIA已修復Windows和Linux的安全漏洞
飛騰入選首批CITIVD信創政務產品安全漏洞專業庫技術支撐單位

評論