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