作者: Gordon Cooper,恩智浦半導體公司微控制器全球事業部產品營銷經理 隨著越來越多的嵌入式設備接入網絡并成為物聯網的一部分,網絡黑客們開始利用這些連接,以達到自己不可告人的目的。因此,嵌入式設備必須提高安全性,以防止黑客復制IP、盜竊數據或侵入系統,可是對于嵌入式工程師來說,安全是又一個極其復雜的主題,在為嵌入式微控制器設計系統時,很難把握到底需要怎樣的保護力度。 圖1:安全性思維模型。 為了簡化安全性這一討論話題,我們從三個方面進行探討。在圖1中,嵌入式設備A需要與遠程設備B通信。此時,需要考慮的三個安全因素:(1)設備完整性 – 安全訪問設備A;(2)通過身份驗證建立與遠程設備B的信任關系;(3)建立信任關系后,通過數據加密保障兩個設備之間的信息傳送安全。 * 設備完整性是指如何防止嵌入式設備上的代碼(或IP)和數據受到未授權的訪問(如遠程軟件攻擊、通過已建立的用戶接口獲得訪問權限或對系統硬件進行物理/探測攻擊)?梢酝ㄟ^多種方式防范這些攻擊,但各個方法的成本和復雜性也各不相同。 * 在設備之間建立信任關系是指一個或兩個設備間相互驗證真偽,以確保不會將數據發送至冒名頂替的設備,或從這樣的設備接收數據。建議信任關系的常用方法是非對稱密鑰加密。此方法使用一對密鑰(一個私人密鑰和一個公共密鑰)來建立信任關系。私人密鑰用于加密而公共密鑰用于解密。非對稱密鑰加密的常用算法為RSA和ECC。 * 建立信任關系之后,如果從設備A向設備B傳輸數據,對稱加密算法將對其進行保護。對稱加密使用相同密鑰進行加密和解密。(此方法的速度比非對稱加密快,這也是并非所有通信都使用非對稱加密的原因)。該算法目前的加密標準為AES(高級加密標準)。這是一種使用相同長度的密鑰對128、192或256位數據塊進行加密的對稱密鑰塊加密標準。 雖然任何加密算法在長時間攻擊下都可能被破 解,但即使使用現代超級計算機進行蠻力攻擊(指嘗試每一種密鑰組合:2128或3.4 x 103種),破 解AES-128密鑰塊加密可能需要花費一百萬年時間,而AES-256加密算法更有2256或1.1 x 1077個組合。由此,AES-128或AES-256都適用于防止蠻力攻擊。但是通常來說,AES-128更佳,因為其計算效率比AES-256要高40%。這么看來,蠻力破 解AES的可能性幾乎微乎其微。因此,黑客們將主要精力花在提取AES密鑰上。如果未能安全地保護AES密鑰,那么無論算法多么安全都沒有用。這就好像是用一個六英寸厚的鋼門保護您的家,卻將鑰匙留在門墊下面。 安全性并非是一個必須的剛性需求。嵌入式設計中到底需要什么程度的安全性取決于您所連接的設備、需要保護的內容以及沖破安全防護時所造成的損失。圖2中列示了嵌入式設計中可用的不同安全性級別。 圖2.:安全性范圍。 第一列表示典型的嵌入式應用。如果嵌入式設備無需接入互聯網,不是網絡的一部分,則不需要使用加密算法、建立信任關系或密鑰存儲。但是,仍需注意設備完整性,尤其是在知識產權(IP)保護非常重要的應用中。防止競爭對手讀取內部Flash中的程序內容可以保護公司產品的知識產權不受潛在抄襲者的侵害,為了實現此種保護,需要尋找配備內置代碼讀取保護功能的微控制器。 如果需要進行IoT連接,則需要考慮附加的安全功能,以實現代碼和數據保護。在通用微控制器中實現軟件安全算法,即可滿足安全傳送信息所需的所有要求。軟件實現的RSA或ECC可以用于建立信任關系,而軟件實現的AES可以用于安全傳送信息。密鑰存儲在Flash或RAM中,并且通常使用軟件技術進行保護。但是,與由硬件加速的AES實施相比,軟件實現的AES算法在安全性上還是略遜一籌。 圖2同時列出了將運行軟件算法的通用微控制器替換為配備硬件安全功能(如硬件加速的AES加密、真隨機數生成器和改進版AES密鑰存儲)的微控制器的優點。 * 與軟件實現的AES實施相比,硬件加速AES模塊的核心優勢就是其運行速度要快八倍。同時,硬件AES更加省電(需要的MCU計算更少,因此更省電),占用的程序代碼空間也更小。如果能夠充分利用微控制器內置的硬件加速AES,就可以更加高效地運行相同的軟AES加密算法。 * 真“隨機數發生器(RNG)”是用于創建真隨機密鑰的軟件實現的物理改進版。真RNG使用物理現象(如噪音)來創建隨機數,而軟件實現則必須依賴算法才能創建隨機數。與軟件實施相比,真RNG更加不可預測。因此,其安全性更高。 * 某些微控制器中的附加安全功能可以將AES密鑰存儲于存儲器中僅可通過硬件IP塊讀取的位置。這樣一來,密鑰就無法被軟件提取。 當黑客無法以物理方式訪問嵌入式設備時,配備附加安全功能和軟件加密算法的微控制器可以提供出色的解決方案。例子為住宅中的恒溫器,您可能會擔心有人會通過遠程訪問它以侵入您的內部網絡。但是,您可能不會擔心有人闖入您的房子并探測恒溫器中的微控制器,從而提取其中的AES密鑰。如果有人闖入您的住宅,那么,您所面臨的問題比丟失AES密鑰要大得多。 另一方面,如果您在房子外面安裝了智能儀表,則可能會更加吸引那些想以物理方式攻擊和盜取密鑰的黑客的注意力。對于電力公司而言,電費收益是其需要保護的重要資產。因此,他們可能將資金花費更多地花費在防篡改安全功能上。 將微控制器與安全元件相結合可以為您的嵌入式系統提供銀行級別的安全性(圖2)。安全元件是一個防篡改IC,它可以為密鑰和證書提供安全的存儲位置;同時通常配備硬件加速RSA和ECC,以實現更快的身份驗證。雖然硬件加速AES加密仍由更快的微控制器控制,但是安全元件可以提高設備的完整性并帶頭建立信任關系和AES密鑰保護。 恩智浦半導體公司的LPC18Sxx和LPC43Sxx微控制器是現有LPC1800和LPC4300系列的擴展。這兩款微控制器添加了用于代碼和數據保護的硬件功能(圖3)。LPC18Sxx和LPC43Sxx系列配備多種高端連接功能,包括以太網、兩個高速USB和SDIO(與WiFi模塊之間實現最快速的數據連接)。此外,某些版本還支持圖形LCD連接。大部分恩智浦LPC微控制器提供代碼讀取保護(CRP)功能,該功能可用于保護開發者代碼。增加的安全功能包括一個AES-128硬件加速器、一個真隨機數發生器和兩個位于一次可編程存儲器中用于存儲AES密鑰的128位OTP Key。 圖3:LPC43Sxx功能框圖LPC18Sxx所提供的功能與Cortex-M3內核類似。 兩個128位一次可編程(OTP)密鑰位置有助于防止密鑰在受到軟件攻擊后被遠程提取。將密鑰(以加密格式)寫入OTP后,不可再通過軟件或JTAG邊界掃描對其進行訪問。這些密鑰僅可通過內部AES硬件模塊訪問。 LPC18Sxx和LPC43Sxx微控制器提供內置Flash(內部512kB至1MB)和無內置Flash版本。無內置Flash版本必須在復位時從外部存儲器位置(即外部QSPI Flash)引導,并通過大型內部RAM運行。為了防止代碼在引導過程中被他人看到,可以在復位時在QSPI中存儲一個加密的圖像,LPC18Sxx或LPC43Sxx將會讀取此加密圖像、通過內置CMAC消息身份驗證對其進行驗證、使用存儲在OTP中的AES模塊和128位密鑰解密并從內部RAM開始執行已解密的代碼。 LPC18Sxx和LPC43Sxx微控制器適合于任何需要廣泛連接和高處理器性能的IoT應用,包括工業控制、工業自動化或診斷應用、智能家居產品(包括恒溫器和門禁控制)、汽車售后市場和消費電子產品(如樂器、打印機和其他聯網配件)。另一個典型應用為安全IoT網關(圖4)。 圖4:安全IoT網關功能框圖。 在本圖中,微控制器通過以太網或基于SPI接口擴展的WiFi,提供配備硬件加速AES的高速加密連接。Cypherbridge Systems是恩智浦的軟件合作伙伴,提供適用于LPC18Sxx和LPC43Sxx的IoT和云互聯軟件開發套件,從而充分利用AES硬件加速的優勢。 只需通過I2C接口將恩智浦A7系列安全芯片連接到微控制器,即可添加銀行級別的安全性。A7安全芯片將控制硬件加速身份驗證,并為云存儲所需的永久證書提供安全存儲。 ESL Smart Solutions已開發了EMap,這是一款使用LPC18S57微控制器和Cypherbridge Systems軟件安全庫的安全IoT網關(圖5)。 圖5:ESL Smart Solutions EMap IoT網關。 EMap是一款具有高度安全性的物聯網(IoT)網關,可作為現成產品或云開發套件(CDK)的一部分提供。 互聯設備的增長趨勢不可阻擋,伴隨而來的是多種層次的風險。恩智浦為嵌入式設計師提供多種解決方案,從而為具體應用提供合適的代碼和數據安全級別。 |