||
MCU被用作幾乎所有可想象的應用程序的主要控制元件。它們的力量和靈活性使它們成為大多數設計的核心部件。因為重要的是要確保您的設計不容易復制、反向設計或篡改,現代MCU現在提供了幾個(gè)不同的選項來(lái)保護您的設計;對能力和權衡的良好理解是重要的,以確定哪種方法是對于給定的設計最好。
本文將回顧一些常見(jiàn)的設計保護方法,例如使MCU無(wú)法從外部世界讀取,使用片上功能來(lái)驗證要執行的代碼未被修改,并使用外部組件來(lái)提供更高級的安全能力。還將描述用于篡改檢測的板上技術(shù)和可能應用的可能的“懲罰”。
保護你的設計
你可能沒(méi)有太多的考慮到復制你的設計是多么容易,但是經(jīng)歷過(guò)設計盜竊的工程師會(huì )告訴你,一旦它發(fā)生了,你就不希望它再次發(fā)生。例如,如果你的MCU設計的片上代碼可以由競爭對手或者甚至是一個(gè)不道德的合同制造商讀出,你的整個(gè)設計可以很容易地被復制和轉售——或者是在不同的品牌下,或者甚至是在黑市上使用你的品牌。超過(guò)了產(chǎn)品容量的流行設計已經(jīng)成熟了,如果賣(mài)方不能從你們那里得到產(chǎn)品,他們可能會(huì )進(jìn)入黑市以滿(mǎn)足他們的客戶(hù)需求。
同樣脆弱的是實(shí)際設計或算法隱藏在你的MCU代碼的心臟。也許你有一個(gè)創(chuàng )新的方法來(lái)分析傳感器數據,大大降低了電力或處理時(shí)間所需的。你想讓競爭對手能夠復制你的代碼并逆向設計你的算法嗎?甚至還有軟件工具,可以采取二進(jìn)制和再生合理的“C”代碼,使算法細節更容易破譯。即使是像登機測試程序那樣平凡的事情,也可能需要幾個(gè)月才剛剛好。你想讓競爭對手得到與基礎設施相關(guān)的代碼的捷徑,從而大幅降低開(kāi)發(fā)成本,這樣他們就可以不公平地降低其市場(chǎng)價(jià)格來(lái)贏(yíng)得你的生意嗎?
保護的另一個(gè)方面與硬件認證有關(guān)。通常,設計將允許外圍設備或附加卡,從而可以升級或增強基礎設計。如果設計不包括一些檢測附加模塊硬件被授權的能力,則其他廠(chǎng)商可能會(huì )創(chuàng )建較低成本的模塊來(lái)競爭附加業(yè)務(wù)。打印機墨盒可能是最常見(jiàn)的硬件認證應用程序,以確保您購買(mǎi)制造商的品牌墨盒。通常打印機打折出售,墨盒價(jià)格膨脹,以彌補打印機壽命的折扣。一個(gè)競爭對手可以以較低的價(jià)格出售一個(gè)墨盒,因為它不需要收回打印機的折扣,并且仍然能獲得可觀(guān)的利潤。
因此,現在應該清楚的是,在很多情況下,重要的是能夠保護您的硬件免受復制、逆向工程和偽造。此外,在沒(méi)有安全硬件作為起點(diǎn)的情況下,不可能在連接家庭(如圖1)等應用程序中創(chuàng )建各種安全設備。
德克薩斯儀器在連接家庭中的安全設備
圖1:連接家庭中安全設備的常見(jiàn)示例。
隨著(zhù)時(shí)間的推移,一些技術(shù)已經(jīng)發(fā)展,其中許多使用標準化的安全算法來(lái)保護和認證存儲在MCU或MCU外圍存儲器中的代碼。讓我們來(lái)看看一些最常用的保護技術(shù)和安全標準以及它們的用途。然后我們將能夠查看支持這些標準的MCU和外設的各種類(lèi)型,并可以用來(lái)保護您的設計。
保護技術(shù)與通用安全標準
也許保護硬件免于復制的最常見(jiàn)的技術(shù)是在一個(gè)時(shí)間可編程(OTP)模式中編程MCU,其中編程的數據不能從設備外部訪(fǎng)問(wèn)。JTAG和調試設備必須關(guān)閉,使得數據不能使用調試“后門(mén)”訪(fǎng)問(wèn),F代設計發(fā)現OTP方法非常限制,因為調試是故障分析和現場(chǎng)測試中的一個(gè)有用的特征。OTP方法消除的另一個(gè)重要能力是對片上MCU代碼的遠程更新,用于升級、bug修復和其他類(lèi)似的更改,以提高操作完整性或服務(wù)質(zhì)量。理想情況下,我們希望保護我們的代碼不受逆向工程和復制,但仍然能夠輕松地進(jìn)行更新和更改。
一些MCU為訪(fǎng)問(wèn)片上存儲器提供了一種安全的方法。德克薩斯儀器,其MSP430FR MCU系列,提供了一種方法,通過(guò)密碼來(lái)保護JTAG端口,或者通過(guò)編程一個(gè)片上禁用的熔絲簽名來(lái)完全禁用JTAG端口。當JTAG被禁用時(shí),只允許通過(guò)引導加載程序使用密碼來(lái)訪(fǎng)問(wèn)設備。提供不正確的密碼會(huì )導致整個(gè)代碼存儲區被大量擦除。
TI還提供了一種在MSP430FR內存空間內創(chuàng )建安全區域和非安全區域的方法。安全代碼可以通過(guò)將安全代碼存儲在第一個(gè)上電周期后映射到啟動(dòng)代碼區域的特殊存儲區域中來(lái)封裝(通過(guò)IP封裝或IPE)。IPE區域不能被JTAG、BSL或甚至在系統讀取中訪(fǎng)問(wèn),因此它對于設備的生存期保持安全。安全區域內的代碼可以訪(fǎng)問(wèn)安全區域內的數據,因此安全算法和密鑰都可以共存于安全區域內。
保護IP的最常用的安全算法用于加密和/或解密安全數據或驗證數據,以證明它來(lái)自已知和可信的源。MCU可以提供專(zhuān)用的硬件來(lái)實(shí)現通用的工業(yè)標準,而微芯片PIC32 MZ單片機家族就是其中一個(gè)例子。PIC32 MZ設備包括硬件加密引擎,它實(shí)現通用的批量加密解密“密碼”,如AES、DES和三重DES。這些功能被用來(lái)通過(guò)加密來(lái)保護安全數據,使用一個(gè)秘密密鑰,使得只有一個(gè)“知道”密鑰的進(jìn)程可以解密數據。認證由SHA-1、SHA256、MD—5、AES-GCM和HMAC—所有硬件實(shí)現。在圖2中示出了密碼引擎硬件結構和由此產(chǎn)生的性能(在輸入時(shí)鐘的MbPS/MHz和100 MHz時(shí)鐘的Mbps中)。性能值遠優(yōu)于軟件實(shí)現,并且表明如果大量數據需要頻繁地處理(也許在高速數據傳輸期間)或在時(shí)間關(guān)鍵事件期間(例如在引導過(guò)程中),硬件加密引擎的使用可能是關(guān)鍵的。滿(mǎn)足系統要求。
微芯片PIC32 MZ MCU加密引擎的圖像及性能指標
圖2:微芯片PIC32 MZ MCU加密引擎和性能指標。
雙核MCU
在更復雜的系統中實(shí)現安全的另一種方法是使用雙核MCU。其中一個(gè)MCU內核可以專(zhuān)門(mén)用于實(shí)現安全功能,而另一個(gè)內核可以用于更標準的操作。NXP半導體LPC4370雙核MCU(圖3)有兩個(gè)CPU核心,一個(gè)是ARM CORTEX-M4,另一個(gè)是ARM CORTEX-M0。CORTEX-M4內核可以用于應用程序的“重載”部分,而CORTEX-M0內核可以用于實(shí)現與安全相關(guān)的功能和通用外圍功能——也許管理以太網(wǎng)和USB端口,配置各種端口,并管理任何端口。F芯片資源。
NXP LPC43XX雙核MCU的圖像
圖3:NXP LPC43XX雙核心MCU可以用來(lái)保護您的設計。
對于更高級的安全設計,可在LPC43Sxx設備上提供的可選AES加密和解密引擎可用于加速標準密碼功能,如AES、CMAC和隨機數生成。AES密鑰可以安全地存儲在片上一次性可編程(OTP)存儲器中,并且可選地加密以進(jìn)行額外的保護。AES硬件甚至可以用來(lái)實(shí)現安全引導能力(確保引導代碼未被篡改——黑客用來(lái)攻擊嵌入式系統安全性的共同目標)從加密圖像中進(jìn)一步保護設計IP。
安全外圍設備
如果你想增加一個(gè)現有的MCU與一些額外的安全功能,您可能能夠添加一個(gè)安全外設,以獲得您需要的安全能力。例如,ATMEL ATHA204A設備提供防篡改的安全密鑰存儲和認證。EEPROM安全存儲器的片上4.5 kb可以用來(lái)存儲多個(gè)密鑰,執行讀寫(xiě)來(lái)管理密碼或秘密數據。內存可以組織、配置,然后鎖定以防止更改。每個(gè)設備具有唯一的72位序列號,并支持常見(jiàn)的密碼算法(帶有消息認證碼的SHA 256和基于哈希的消息認證碼選項)和高質(zhì)量的隨機數生成器。I/C接口使設備易于連接到標準MCU。ATHA204A通常與主機MCU一起使用挑戰和響應事務(wù),如下面的圖4所示。
Atmel ATHA204認證圖像
圖4:使用Atmel ATHA204認證和保護設計的IP。
使用存儲的秘密和消息認證碼(MAC)命令,由ATAH204處理MCU挑戰,以創(chuàng )建發(fā)送回主機的響應。主機可以通過(guò)執行相同的MAC命令來(lái)驗證響應是否正確。事務(wù)的觀(guān)察員從不看到秘密密鑰,因此實(shí)際上不可能確定復制設計所需的密鑰或確定存儲在A(yíng)TAH204中的任何秘密信息。ATSH204可以用來(lái)防止復制的設計,在執行之前驗證它(例如安全引導),保護和存儲固件或媒體,存儲和管理由主機MCU使用的會(huì )話(huà)密鑰,用于保密通信、存儲秘密配置、校準或消耗數據,或用于有效。處理用戶(hù)密碼。Atmel還為ATAH204工程師提供了一個(gè)密碼認證產(chǎn)品培訓模塊。
總之,在使用現代MCU和各種支持設備的高級安全能力時(shí),保護您的設計免受逆向工程和黑客攻擊是可能的。保護網(wǎng)絡(luò )化嵌入式系統是至關(guān)重要的,因為基于網(wǎng)絡(luò )的攻擊對嵌入式系統的持續增長(cháng)。