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