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

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

智能電表怎么采用篡改檢測(cè)和保護(hù)
請(qǐng)問圖中的D1 D2 起到什么作用,像控制繼電器一樣保護(hù)mos不被反向擊穿嗎?
怎么保護(hù)嵌入式軟件和電子設(shè)備產(chǎn)品不被抄襲
使用MMU進(jìn)行多用戶場(chǎng)景下的FLASH分區(qū)保護(hù)
有沒有辦法從MCU訪問篡改或備份寄存器或備份sram?
采用量化離散余弦變換系數(shù)檢測(cè)視頻單幀連續(xù)多次復(fù)制粘貼篡改

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

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

評(píng)論