||
事實上,所有基于MCU的嵌入式系統——汽車、無人機、USB棒、車庫門開啟器、數碼相機,甚至打印機墨盒等消耗品都容易受到安全攻擊。
越來越多的文件安全漏洞使用物聯網作為切入點,提高了聯網設備設計社區的安全意識。通常情況下,這些故事涉及影響消費者和最終用戶的違規行為。然而,其他類型的安全威脅至少對設計工程師同樣重要,而且最重要的是涉及盜竊、篡改或破壞知識產權。
互聯網可能已經成為微控制器系統中最流行的切入點,但它并不是唯一的一個。安全或不安全的診斷端口總是潛在脆弱的,因為汽車行業主要是通過“調諧器”社區的活動發現的。任何無線(或有線)通信鏈路也可以用作入口點。
即使是獨立的MCU設備(或其相關ROM)也會受到篡改和IP竊取。在其他技術中,逆向工程專家已經開發出芯片掩模層被仔細研磨直至ROM層暴露的技術。通過仔細分析哪些交換機被炸毀,其中包含的固件代碼可以推斷出來。
MCU供應商已經采取了多種方法來增強運行它們設備的固件的安全性。雖然這些措施使固件更安全,但實現這些要求需要系統設計團隊理解它們是如何工作的,并正確地實現它們。這涉及到系統物料清單(BOM)的額外努力、時間和成本。計算機密集的安全措施,如數據加密,可能需要更強大的微控制器。
安全策略
軟件解決方案通常被視為一個有吸引力的選擇,因為它們相對容易實現,而且實際上是免費的。有時他們是足夠的,但通常情況下,“快速,廉價,容易”的解決方案,他們承擔更多的風險。
安全算法的關鍵組件,如加密密鑰,存儲在MCU的現有內存資源中,如EEPROM或閃存。但是,如果內存設備本身是無擔保的,密鑰信息仍然處于危險之中。還有一種可能性,即算法本身可能有實現錯誤,使其容易受到攻擊。
基于軟件的解決方案的一個流行變體是向系統的客戶端添加基于硬件的安全,并在主機端使用軟件安全性。這種硬件——可以存在于客戶端MCU或附加芯片上——用于存儲加密密鑰并執行部分或全部安全算法。關鍵數據由邏輯和物理機制相結合,通常由制造商保密。這種方法是對中間人攻擊的有效防御。由于主機側密鑰存儲在無擔保資源中,因此它們仍然可能受到更改或被盜。完全在硬件中實現的MCU安全,在系統的每個關鍵點都有防篡改密鑰存儲,包括加密,并在硬件中執行安全算法。
實現基于硬件的MCU安全的一種流行方法是為MCU供應商提供專門設計的處理器和外設。實現不同,但通常安全處理芯片集,提供更低的性能和增加BOM成本。
硬件加密
微芯片技術通過集成微控制器上的加密引擎,向一些流行的PIC設備提供硬件安全性。該引擎還執行身份驗證以防止中間人攻擊。舉例16位PIC24F“GB2”和32 PIC32MZ。
除了增加安全性,結合發動機卸載單片機軟件加密算法的執行任務。Microchip的硬件引擎可以按順序或并行執行加密和認證。采用基于內部描述符的DMA對安全關聯數據和數據包指針進行有效編程。智能狀態機根據協議選擇和包邊界調度加密引擎。
主要功能包括:批量密碼和散列引擎,集成的DMA到非負載處理,每個緩沖描述符的安全關聯,以及并行執行某些函數的能力。
圖1顯示的PIC32MZ算法和性能指標。性能指標給出了加密的速度,多少CPU卸載獲得相比于軟件算法執行的指示。
引擎/算法 | 性能的因素 (Mbps /兆赫) | 最大Mbps (pbclk5 = 100 MHz) |
十二月 | 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 |
圖1:微芯片技術的集成加密引擎支持八種安全算法。(微芯片技術提供)
Microchip提供的32位加密引擎裝置dm320006-c入門套件和16位器件的dm240314演示套件。
擴展內存選項
德克薩斯儀器最近推出的嵌入新的MSP430 FRAM MCU使用鐵電隨機存取存儲器系列單片機存儲器的一種新方法(FRAM)代替閃光燈。FRAM結合Flash和SRAM的屬性。像閃存一樣,它是非易失性的,但像SRAM一樣,它提供快速、低功耗的寫入。它的重寫耐力大于1015個周期。
存儲在幀數據更不容易受到逆向工程攻擊比Flash EEPROM由于其耐輻射和電磁場。此外,它的功率和訪問速度優于閃存。
FRM的寫入速度為13 KB 10毫秒相比1的Flash和其平均有功功率測量(測量為16位字訪問)是100μ/ MHz相比,Flash的230μ/兆赫。
它的輻射和電磁場的阻力使存儲器尤其是防止使用顯微鏡和電壓操作的物理攻擊有價值。
在這些類型的攻擊中,黑客試圖改變應用程序代碼本身,而不是試圖在傳輸數據時修改數據。為了實現這一點,他們首先獲得應用程序代碼的映像,反向工程,最后在系統中成功地覆蓋修改版本。
FRAM抗拒顯微鏡攻擊因為點讀寫線物理上位于極化分子的兩邊,這意味著層芯片可能會破壞記憶的內容。
防止電壓操作很大程度上是由于鐵電存儲器寫周期獲得的速度。在這些攻擊中,設備的輸入電壓被操縱到標準范圍之外,通過蠻力來編程位單元。這是很難提供棕色和過壓保護電路,可操作長于所需的時間來編程EEPROM比特單元。但是,因為框架寫的快得多,這種保護電路可以被配置為創建平安回寫電路允許的框架來完成書寫過程中正確。
確保編程端口
MSP430 FRAM MCU還必須確保所使用的程序的設備端口的有效手段,這是黑客具有吸引力的切入點。通常,這些都是JTAG接口和引導加載器(BSL),它主要用于固件升級。
在FRAM編程熔絲簽名,TI的FRAM MCU可以安全JTAG使用密碼或完全禁用它。當JTAG端口被禁用,訪問設備只使用BSL是可能的,這就需要密碼才能讀取或接收數據。
密碼是中斷向量表的內容。MSP430 FRAM器件提供的密碼不正確,將導致整個框架代碼區被大規模擦除。增加密碼強度的另一種方法是通過有效的地址值填充中斷向量表中的任何未使用的地址空間,或者通過創建一個雙跳轉表,使執行暴力攻擊變得更加困難。
TI提供的MSP430 FRAM器件的msp-exp430fr5739開發工具包。該板兼容許多TI低功耗射頻無線評估模塊。
安全的密鑰管理
另一種方案是由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保護和驗證、安全數據存儲、用戶密碼檢查和會話密鑰交換的任務。
認證
打擊山寨產品的一個有效策略是實現與真實產品協同使用的附件的認證過程。當電纜、插件、電源和電池等常用附件使復印機產品失效時,就會暴露出假冒偽劣產品的性質。
同樣,復印機配件不能與原產品配合使用。復印機配件總是導致收入的損失,但未經授權的附件,如電池或醫療設備,不完全符合規格,也可能造成嚴重損害。在客戶端向系統添加安全密鑰管理器是實現高安全級別的第一步。
額外的安全性可以通過在主機系統如圖2所示得到ATSHA204。主機為客戶端(附件)生成一個隨機的挑戰,并評估其響應。
一個額外的安全利益是來自這個事實,因為主機的挑戰是利用其ATSHA204產生,甚至主機處理器并不知道它的響應。將處理器與安全功能隔離開來,可以使用廉價的非安全性硬處理器,而不提供攻擊者可以提取系統機密的弱點。
Atmel安全密鑰存儲映像
圖2:包括附件和主機上的安全密鑰存儲,提高了系統級安全性。(由Atmel公司提供)
固件驗證
雖然許多安全威脅會損害公司的收入或損害其品牌,但設計工程師最擔心的是試圖復制或損壞MCU的固件,該固件通常存儲在閃存中。有效的防御是一個安全的引導過程,確保只有真正的固件才能在系統上運行。
安全的靴子是使用驗證代碼或簽名存儲在閃存中以及引導代碼來實現的。簽名是在制造或代碼更新是加密哈希函數的輸出–不可逆轉的算法“凝結”的啟動代碼到一個緊湊的時間創建的,但獨特的數據,典型長度32到128個字節。圖3說明了如何計算和密鑰存儲卸載到硬件密鑰管理裝置(ATSHA204)。
愛特梅爾安全啟動映像
圖3:安全引導是保護MCU固件的極好方法。(由凱利訊半導體提供)
在系統啟動時,引導序列的一部分要求安全設備驗證伴隨引導代碼的簽名。只有當驗證成功時,操作程序才能執行,并允許系統正常運行。即使修改一個位的操作程序也需要一個新的驗證簽名。這兩個代碼圖像和下載的媒體文件都可以使用一個加密密鑰來存儲,該密鑰只能在一個經過身份驗證的系統上使用。
結論
為了應對安全漏洞和山寨產品的激增,MCU供應商在芯片中提供基于硬件的安全解決方案。雖然比基于軟件的解決方案更昂貴,但即使是最不可能的,即使是最頑固的入侵者,它們也更加困難。解決方案包括嵌入式加密引擎的內存技術,如FRAM自主安全芯片將單片機從惡意干擾。然而,沒有一種適合所有人的解決方案。設計團隊必須為應用程序創建最合適的安全策略。