微控制器被用作幾乎每個應用可以想象在主控制元件。他們的權力和靈活性,讓他們去到組件的大多數設計的心臟。因為它確保您的設計不能輕易被復制是非常重要的,逆向工程或篡改,現代的微控制器現在提供了幾個不同的選項來保護您的設計;的能力和權衡一個很好的理解是,以確定哪種方法是最好的一個給定的設計很重要。本文將回顧一些常見的方法來設計保護,如使從外面的世界,你的MCU讀取,使用片上的功能來驗證要執行的代碼修改,并使用外部元件來提供更先進的安全功能。板上技術篡改檢測和可能的“懲罰”是也可以應用進行說明。
保護你的設計
你可能沒有考慮了很久是多么容易復制你的設計,但誰擁有經驗豐富的設計偷竊會告訴你,一旦它發生的工程師,你永遠不希望它再次發生!例如,如果片上的代碼為您的MCU設計,可以讀出一個競爭對手,甚至是通過不法合同制造商,你的整個設計可以很容易地復制和轉售 - 無論是在不同的品牌或者甚至可以使用你的品牌在黑市上。這超過產品容量流行的設計已經成熟,這種類型的治療,如果賣家無法從你的產品,他們可能會動用黑市場,以滿足他們客戶的需求。正如脆弱的是隱藏在你的MCU代碼心臟的實際設計或算法。也許你有一個創新的方法來分析傳感器數據,大大減少了所需的電力或處理時間。你想一個競爭對手能夠把剛才復制的代碼和反向工程算法?甚至有軟件工具,可以采取二進制和再生合理的“C”代碼,使算法的細節更容易破譯。即使是很平常,比如板上測試程序,可能已經采取了許多個月的時間剛剛好 - 你想要的競爭對手獲得快捷訪問您的基礎架構相關的代碼,大大降低其開發成本,使他們能夠不公平地削減他們的市場價格來贏得您的公司嗎?保護的另一個方面是涉及硬件驗證。通常,一個設計將允許外設或附加卡這樣的基本設計理念可以升級或增強。如果設計不包括一些功能,能夠檢測的附加模塊硬件授權,有可能為其他廠商打造低成本的模塊,以爭奪附加業務。打印機墨盒也許是最熟悉的應用程序的硬件認證,以確保你買的是制造商的品牌墨盒。常打印機以折扣出售和盒價格膨脹以覆蓋折讓打印機的壽命。參賽者可以以較低的價格出售墨盒,因為它不需要收回打印機的折扣,同時仍然保持健康的利潤。因此,現在應該清楚的是,在許多情況下,重要的是要能夠保護硬件復制,逆向工程,并且從假冒。此外,如果沒有安全硬件為起點,這將是不可能創造的各種需要的像家庭互聯(圖1)的應用程序的安全設備。
一些技術已經發展隨著時間的推移,其中許多是使用標準化的安全算法,以保護和驗證存儲內的MCU或存儲器外設到MCU的代碼。讓我們來看看一些他們用于最常見的保護技術和安全標準和內容。然后,我們就可以看到各種微控制器和外設支持這些標準,可以用來保護你的設計。
保護技術和通用安全標準
也許是最常用的技術,用于保護硬件從復印編程在其中的編程的數據不能從裝置外部進行訪問的一次性可編程(OTP)模式的MCU。 JTAG和調試設備必須關閉,因此數據不能使用調試訪問“后門”。現代的設計找到OTP的做法卻非常有限,因為調試測試過程中故障分析和現場一個非常有用的功能。在OTP方法消除的另一個重要功能是遠程更新片上MCU代碼進行升級,bug修復,提高誠信經營和優質的服務所需要的其他類似的變化。理想情況下,我們希望保護我們的代碼逆向工程和復制,但仍然能夠方便地進行更新和更改。一些MCU提供了訪問片上存儲器的安全方法。德州儀器(TI)憑借其MSP430FR MCU系列,提供了一種方法要么確保JTAG端口通過密碼,或者通過編程片上禁用保險絲簽名完全禁用它。當JTAG被禁用,對設備的訪問經由使用密碼引導裝載程序只允許。提供了一個不正確的密碼可以導致整個代碼存儲區被質量擦除。 TI還提供了一個方法來創建兩個MSP430FR存儲器空間內的安全的和非安全區域。安全碼可以被封裝(通過IP封裝,或IPE),通過存儲安全碼在被映射到引導代碼區中的第一電周期后一個特殊存儲區域。 IPE的區域不能由JTAG,BSL甚至在系統讀取訪問,所以它保持安全的裝置的壽命。在安全區域內的代碼可以,不過安全區域內的訪問數據,因此既安全算法和密鑰可以安全區域內共存。為了保護您的IP所需的最常見的安全算法使用,也可以加密和/或解密的安全數據或數據進行驗證,以證明它是從一個已知的和可信賴的來源。 MCU可提供專用硬件來實現共同的行業標準和Microchip PIC32MZ MCU系列就是這樣一個例子。 PIC32MZ設備包括一個實現共同批量加密解密“密碼”,如AES,DES和三重DES硬件加密引擎。這些功能所使用的加密保護的安全數據,使用密鑰,以便只“知道”一個進程密鑰才能解密數據。認證是由SHA-1,SHA-256,MD-5,AES-GCM和HMAC提供了 - 在所有的硬件實現。加密引擎的硬件結構和產生的性能(在輸入時鐘的Mbps的/ MHz和以Mbps為100MHz的時鐘)示于圖2中。性能值遠遠優于軟件實現并表明,如果大量的數據需要經常處理的(可能在高速數據傳輸)或在時間關鍵事件(諸如在啟動過程中)使用的硬件加密引擎可滿足系統的要求是至關重要的。
雙核微控制器
另一種方法在更復雜的系統實施的安全性是使用雙核的MCU。一個單片機芯可以專用于執行,而另一個芯可以用于更標準的操作的安全性的功能。恩智浦半導體LPC4370雙核MCU(圖3)具有兩個CPU核心,一個是ARM的Cortex-M4,另一個是了ARM Cortex-M0。了Cortex-M4內核可用于應用程序的“繁重”的部分,而在Cortex-M0內核,可用于實現安全相關的功能和常用的外設功能 - 或許是管理以太網和USB端口,配置各種端口和管理所有的片外資源。
對于更先進的安全設計,可選的AES加密和解密引擎,提供對LPC43Sxx設備,可以用來加速標準密碼函數,例如AES,CMAC,以及隨機數生成。 AES密鑰可以安全地存儲在片上的一次性可編程(OTP)存儲器和任選加密以額外的保護。將AES硬件甚至可以用來實現安全啟動功能(確保引導代碼沒有被篡改 - 黑客用來攻擊嵌入式系統的安全方面擁有共同的目標)從加密圖像,以進一步保護設計IP。
安全外設
如果你想增加現有的MCU與一些附加的安全功能,您可以添加一個安全外圍設備來獲得你所需要的安全功能。例如,愛特梅爾ATSHA204A設備提供了篡改保護的安全密鑰存儲和認證。片上4.5 KB的EEPROM安全存儲器可被用于存儲多個密鑰,執行讀取和寫入來管理密碼或秘密的數據。存儲器可以被組織,構造,然后鎖定,以防止更改。每個設備都有一個唯一的72位序列號,并支持常見的加密算法(SHA-256,消息認證碼,并基于散列的消息認證碼選項)和高品質的隨機數發生器。 I2C接口可以很容易地將設備連接到一個標準的MCU。所述ATSHA204A通常用于詢問和響應事務與主機MCU所示,下面的圖4。
該MCU挑戰是由ATSHA204使用所存儲的秘密和消息認證碼(MAC)命令創建發送回主機的響應處理。主機可以驗證響應是由執行相同的MAC命令正確。該事務的觀察者不會看到的秘密密鑰,所以這幾乎是不可能確定要復制的設計或確定存儲在ATSHA204任何秘密信息所需要的密鑰。該ATSHA204可用于防止在設計的復制,通過在執行之前(例如安全引導),存儲驗證它保護固件或媒體和管理用于由主機MCU用于安全通信的會話密鑰,存儲秘密配置,校準或消費數據或確認用戶密碼。 Atmel還為工程師提供了ATSHA204一個加密認證的產品培訓模塊。總之,利用現有的現代MCU和各種配套設備的高級安全功能時保護您的設計,從逆向工程和黑客攻擊成為可能。保護聯網的嵌入式系統中尤為重要,因為對嵌入式系統的基于網絡的攻擊事件繼續增長。
審核編輯 黃宇
-
微控制器
+關注
關注
48文章
7489瀏覽量
151055 -
mcu
+關注
關注
146文章
16996瀏覽量
350321 -
檢測
+關注
關注
5文章
4439瀏覽量
91375
發布評論請先 登錄
相關推薦
評論