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