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