MCU在幾乎所有可以想象的應(yīng)用中都被用作主要控制元素。它們的強大功能和靈活性使它們成為大多數(shù)設(shè)計核心的首選組件。由于確保您的設(shè)計不易被復(fù)制,反向設(shè)計或篡改非常重要,現(xiàn)代MCU現(xiàn)在提供了一些保護您設(shè)計的不同選項;為了確定哪種方法最適合給定的設(shè)計,對功能和權(quán)衡的理解非常重要。本文將回顧一些常見的設(shè)計保護方法,例如使您的MCU無法從外部讀取世界,使用片上功能來驗證要執(zhí)行的代碼是否未經(jīng)修改,并使用外部組件提供更高級的安全功能。還將描述用于篡改檢測的機載技術(shù)和可能應(yīng)用的可能的“懲罰”。
保護您的設(shè)計
您可能沒有太多考慮復(fù)制您的設(shè)計是多么容易,但是工程師們有經(jīng)驗的設(shè)計盜竊會告訴你,一旦它發(fā)生了,你永遠不希望它再次發(fā)生!例如,如果您的MCU設(shè)計的片上代碼可以由競爭對手,甚至是不道德的合同制造商讀出,您的整個設(shè)計可以輕松復(fù)制和轉(zhuǎn)售 - 或者使用不同的品牌或甚至使用您的品牌在黑市上。超出產(chǎn)品容量的流行設(shè)計對于這種類型的處理已經(jīng)成熟,如果賣家無法從您那里獲得產(chǎn)品,他們可能會進入黑市以滿足他們的客戶需求。
同樣脆弱的是隱藏在其中的實際設(shè)計或算法MCU代碼的核心。也許您有一種創(chuàng)新的方法來分析傳感器數(shù)據(jù),從而大大減少所需的功率或處理時間。您是否希望競爭對手能夠復(fù)制您的代碼并對您的算法進行反向工程?甚至有一些軟件工具可以采用二進制并重新生成合理的“C”代碼,這樣算法細節(jié)甚至更容易破譯。即使是像車載測試例程那樣平凡的事情可能需要花費數(shù)月才能做到正確 - 您是否希望競爭對手能夠快速獲得與基礎(chǔ)架構(gòu)相關(guān)的代碼,從而大幅降低開發(fā)成本,從而不公平地削減市場贏得業(yè)務(wù)的價格?
保護的另一個方面與硬件認證有關(guān)。通常,設(shè)計將允許外圍設(shè)備或附加卡,因此可以升級或增強基礎(chǔ)設(shè)計。如果設(shè)計不包含某些檢測附加模塊硬件授權(quán)的功能,則其他供應(yīng)商可以創(chuàng)建成本較低的模塊來競爭附加業(yè)務(wù)。打印機墨盒可能是最熟悉的硬件認證應(yīng)用程序,以確保您購買制造商的品牌墨盒。通常打印機以折扣價出售,并且墨盒價格被夸大以覆蓋打印機使用壽命期間的折扣。競爭對手可以以較低的價格出售墨盒,因為它不需要收回打印機折扣,并且仍能獲得健康的利潤。
因此,現(xiàn)在應(yīng)該清楚的是,在許多情況下,能夠保護您的硬件免受復(fù)制,逆向工程和偽造是很重要的。此外,如果沒有安全的硬件作為起點,就不可能創(chuàng)建連接家庭等應(yīng)用所需的各種安全設(shè)備(圖1)。
圖1:安全設(shè)備的常見示例在連通的家中。 (德州儀器公司提供)
隨著時間的推移,一些技術(shù)不斷發(fā)展,其中許多技術(shù)使用標準化的安全算法來保護和驗證存儲在MCU內(nèi)部或MCU外圍存儲器中的代碼。讓我們看看一些最常見的保護技術(shù)和安全標準以及它們的用途。然后,我們將能夠查看支持這些標準的各種MCU和外設(shè),并可用于保護您的設(shè)計。
保護技術(shù)和通用安全標準
保護硬件不受復(fù)制的最常見技術(shù)可能是以一次性可編程(OTP)模式對MCU進行編程,其中無法從器件外部訪問編程數(shù)據(jù)。必須關(guān)閉JTAG和調(diào)試工具,以便使用調(diào)試“后門”無法訪問數(shù)據(jù)。但現(xiàn)代設(shè)計發(fā)現(xiàn)OTP方法非常有限,因為調(diào)試在故障分析和現(xiàn)場測試期間是一個有用的功能。 OTP方法消除的另一個重要功能是片上MCU代碼的遠程更新,用于升級,錯誤修復(fù)以及改善操作完整性或服務(wù)質(zhì)量所需的其他類似更改。理想情況下,我們希望保護我們的代碼免受逆向工程和復(fù)制,但仍然能夠輕松地進行更新和更改。
某些MCU提供了一種訪問片上存儲器的安全方法。德州儀器(TI)及其MSP430FR MCU系列提供了一種通過密碼保護JTAG端口的方法,或通過編程片上禁用熔絲特征來完全禁用它。禁用JTAG時,只允許使用密碼通過引導(dǎo)加載程序訪問設(shè)備。提供錯誤的密碼可能會導(dǎo)致整個代碼存儲區(qū)被大量擦除。
TI還提供了一種在MSP430FR存儲空間內(nèi)創(chuàng)建安全區(qū)和非安全區(qū)的方法。通過將安全代碼存儲在第一個上電周期后映射到引導(dǎo)代碼區(qū)的特殊存儲區(qū)中,可以封裝安全代碼(通過IP封裝或IPE)。 JTAG,BSL甚至系統(tǒng)內(nèi)讀取都無法訪問IPE區(qū)域,因此它在設(shè)備的生命周期內(nèi)保持安全。但是,安全區(qū)域內(nèi)的代碼可以訪問安全區(qū)域內(nèi)的數(shù)據(jù),因此安全算法和密鑰可以在安全區(qū)域內(nèi)共存。
保護IP所需的最常見安全算法用于加密和/或解密安全數(shù)據(jù)或驗證數(shù)據(jù),以證明它來自已知且受信任的來源。 MCU可以提供專用硬件來實現(xiàn)通用的行業(yè)標準,而Microchip PIC32MZ MCU系列就是這樣的一個例子。 PIC32MZ器件包括一個硬件加密引擎,可實現(xiàn)常見的批量加密解密“密碼”,如AES,DES和Triple DES。這些功能用于通過使用密鑰加密來保護安全數(shù)據(jù),以便只有“知道”密鑰的進程才能解密數(shù)據(jù)。身份驗證由SHA-1,SHA-256,MD-5,AES-GCM和HMAC提供 - 所有這些都在硬件中實現(xiàn)。加密引擎硬件架構(gòu)和最終性能(輸入時鐘的Mbps/MHz和100 MHz時鐘的Mbps)如圖2所示。性能值遠遠優(yōu)于軟件實現(xiàn),并表明如果大量數(shù)據(jù)需要經(jīng)常處理(可能在高速數(shù)據(jù)傳輸期間)或在時間關(guān)鍵事件期間(例如在啟動過程中),使用硬件加密引擎對滿足系統(tǒng)要求至關(guān)重要。
圖2:Microchip PIC32MZ MCU加密引擎和性能指標。 (由Microchip提供)
雙核MCU
在更復(fù)雜的系統(tǒng)中實現(xiàn)安全性的另一種方法是使用雙核MCU。其中一個MCU內(nèi)核可專用于實現(xiàn)安全功能,而另一個內(nèi)核可用于更標準的操作。恩智浦半導(dǎo)體LPC4370雙核MCU(圖3)有兩個CPU內(nèi)核,一個是ARM Cortex-M4,另一個是ARM Cortex-M0。 Cortex-M4內(nèi)核可用于應(yīng)用程序的“繁重”部分,而Cortex-M0內(nèi)核可用于實現(xiàn)安全相關(guān)功能和通用外設(shè)功能 - 可能管理以太網(wǎng)和USB端口,配置各種端口,以及管理任何片外資源。
圖3:恩智浦LPC43xx雙核MCU可用于保護您的設(shè)計。 (由恩智浦提供)
對于更高級的安全設(shè)計,LPC43Sxx設(shè)備上提供的可選AES加密和解密引擎可用于加速標準加密功能,如AES,CMAC和隨機數(shù)生成。 AES密鑰可以安全地存儲在片上一次性可編程(OTP)存儲器中,并可選擇加密以提供額外保護。 AES硬件甚至可用于實現(xiàn)安全引導(dǎo)功能(確保引導(dǎo)代碼未被篡改 - 黑客用來攻擊嵌入式系統(tǒng)安全性的常見目標)來加密圖像以進一步保護設(shè)計IP。
安全外圍設(shè)備
如果您想通過一些額外的安全功能擴充現(xiàn)有MCU,您可以添加安全外設(shè)以獲得所需的安全功能。例如,Atmel ATSHA204A設(shè)備提供防篡改的安全密鑰存儲和身份驗證。片上4.5 Kb的EEPROM安全存儲器可用于存儲多個密鑰,執(zhí)行讀寫操作以管理密碼或機密數(shù)據(jù)。可以組織,配置和鎖定內(nèi)存以防止更改。每個設(shè)備都有一個唯一的72位序列號,并支持常見的加密算法(帶有消息驗證碼和基于哈希的消息驗證碼選項的SHA-256)和高質(zhì)量的隨機數(shù)發(fā)生器。 I2C接口使設(shè)備可以輕松連接到標準MCU。 ATSHA204A通常用于與主機MCU的質(zhì)詢和響應(yīng)事務(wù),如下面的圖4所示。
圖4:使用Atmel ATSHA204驗證和保護設(shè)計的IP。 (由Atmel提供)
ATSHA204使用存儲的密鑰和消息認證碼(MAC)命令處理MCU質(zhì)詢,以創(chuàng)建發(fā)送回主機的響應(yīng)。主機可以通過執(zhí)行相同的MAC命令來驗證響應(yīng)是否正確。事務(wù)的觀察者永遠不會看到密鑰,因此實際上不可能確定復(fù)制設(shè)計或確定存儲在ATSHA204中的任何秘密信息所需的密鑰。 ATSHA204可用于防止復(fù)制設(shè)計,通過在執(zhí)行前驗證固件或介質(zhì)(例如安全啟動)來保護固件或介質(zhì),存儲和管理主機MCU用于安全通信,存儲密鑰配置,校準或消耗的會話密鑰數(shù)據(jù),或用于驗證用戶密碼。 Atmel還為工程師提供ATSHA204的加密認證產(chǎn)品培訓(xùn)模塊。總之,當使用現(xiàn)代MCU和各種支持設(shè)備可用的高級安全功能時,現(xiàn)在可以保護您的設(shè)計免受逆向工程和黑客攻擊。隨著針對嵌入式系統(tǒng)的基于網(wǎng)絡(luò)的攻擊的發(fā)生持續(xù)增長,保護網(wǎng)絡(luò)嵌入式系統(tǒng)尤其重要。
-
mcu
+關(guān)注
關(guān)注
146文章
17400瀏覽量
353252 -
存儲器
+關(guān)注
關(guān)注
38文章
7538瀏覽量
164566
發(fā)布評論請先 登錄
相關(guān)推薦
如何保證儲存密鑰和信息數(shù)據(jù),不被非法讀取與篡改?

MCU設(shè)備系統(tǒng)的防篡改技術(shù)介紹

智能電表怎么采用篡改檢測和保護
怎么保護嵌入式軟件和電子設(shè)備產(chǎn)品不被抄襲
使用MMU進行多用戶場景下的FLASH分區(qū)保護
有沒有辦法從MCU訪問篡改或備份寄存器或備份sram?
采用量化離散余弦變換系數(shù)檢測視頻單幀連續(xù)多次復(fù)制粘貼篡改

基于GMD和SSIM的同源視頻復(fù)制粘貼篡改檢測及恢復(fù)

如何防止PIC微控制器代碼被復(fù)制?
python如何通過_X和all隱藏模塊數(shù)據(jù)
從復(fù)制保護您的MCU設(shè)計和逆向工程
使用MSP MCU的系統(tǒng)級篡改保護

評論