保護(hù)物聯(lián)網(wǎng) (IoT) 應(yīng)用免受安全威脅涉及設(shè)備和服務(wù)器身份驗(yàn)證、敏感數(shù)據(jù)和知識產(chǎn)權(quán)保護(hù)以及保護(hù)機(jī)密性以及設(shè)備和通信完整性。例如,考慮一個(gè) IoT 節(jié)點(diǎn)設(shè)備。此類設(shè)備需要具有安全引導(dǎo)加載程序和最新的安全固件,以便通過TLS連接安全地將傳感器數(shù)據(jù)發(fā)送到服務(wù)器,并將敏感數(shù)據(jù)存儲(chǔ)在閃存中。該等式中的一個(gè)關(guān)鍵組件是安全IC,用作應(yīng)用處理器的配套IC,以確保安全的數(shù)據(jù)交換并保護(hù)數(shù)據(jù)。
對于這一角色,安全I(xiàn)C有一些不同的選擇。傳統(tǒng)上,流行的選擇是基于可信計(jì)算組(TCG) 定義的可信平臺模塊 (TPM) 標(biāo)準(zhǔn)的芯片。這些分立芯片為消費(fèi)類 PC 和服務(wù)器提供防篡改的加密協(xié)處理器。它們旨在通過網(wǎng)絡(luò)交換數(shù)據(jù)的計(jì)算機(jī)之間建立信任,保護(hù)用戶數(shù)據(jù),并安全地存儲(chǔ)某些數(shù)據(jù)(如密鑰)。對于那些具有專業(yè)知識的人來說,TPM芯片還可用于支持非常復(fù)雜的安全策略的實(shí)施,這些策略定義了誰可以在何時(shí)做什么。由于此用例,TPM 標(biāo)準(zhǔn)的學(xué)習(xí)曲線相當(dāng)高。這種復(fù)雜性也使得驗(yàn)證系統(tǒng)的安全性變得更加困難。當(dāng)涉及到小型嵌入式系統(tǒng)時(shí),簡單地說,TPM芯片由于其初始設(shè)計(jì)和平臺資源要求而難以集成到物聯(lián)網(wǎng)領(lǐng)域的簡單系統(tǒng)中。
現(xiàn)在,還有另一種安全 IC 選項(xiàng)可用作配套 IC。Maxim的MAXQ1061和MAXQ1062設(shè)計(jì)用于為小型低成本嵌入式系統(tǒng)提供高安全性證書、密鑰和數(shù)據(jù)安全存儲(chǔ)以及安全加密基元。這些緊湊、防篡改的設(shè)備是專門為簡單的嵌入式連接設(shè)備創(chuàng)建的,基于內(nèi)部、客戶和公共加密模塊規(guī)范的要求。它們可用于將設(shè)備集成到公鑰基礎(chǔ)結(jié)構(gòu)、設(shè)備和服務(wù)器身份驗(yàn)證、數(shù)據(jù)的機(jī)密性和完整性以及設(shè)備完整性。憑借其40個(gè)命令集來實(shí)現(xiàn)這些目的,IC消除了嵌入式安全不必要的復(fù)雜性。其簡單的訪問控制策略和功能集適用于與 IoT 設(shè)備相關(guān)的大多數(shù)安全方案。在這篇博文中,我們將比較兩種選項(xiàng)之間的差異,以證明MAXQ1061和MAXQ1062適用于保護(hù)物聯(lián)網(wǎng)設(shè)計(jì)等小型嵌入式系統(tǒng)。圖2給出了MAXQ1061和MAXQ1062的集成框圖。
圖2.MAXQ1061/MAXQ1062的集成示例。
為什么使用安全I(xiàn)C?
安全I(xiàn)C為嵌入式系統(tǒng)提供了多種優(yōu)勢,包括:
提高密鑰存儲(chǔ)的安全性
抵御故障注入和側(cè)信道攻擊的安全加密實(shí)施
與平臺上運(yùn)行的其他軟件嚴(yán)格隔離,因?yàn)槲ㄒ坏慕换ネǖ朗敲羁偩€
僅靠軟件是不夠的數(shù)據(jù)保護(hù)和其他安全功能
硬件信任根通過其受信任的行為
減輕主機(jī)處理器的安全功能所需的內(nèi)存占用和計(jì)算資源的負(fù)擔(dān)
滿足物聯(lián)網(wǎng)的獨(dú)特要求 鑒于這些電子設(shè)備通常尺寸小,有時(shí)甚至是電池供電的性質(zhì),為物聯(lián)網(wǎng)
設(shè)計(jì)提供安全性涉及一些獨(dú)特的考慮因素。因此,底層組件的低功耗對于支持延長電池壽命至關(guān)重要。MAXQ1061和MAXQ1062的典型待機(jī)電流為25μA,遠(yuǎn)低于基于TPM標(biāo)準(zhǔn)的芯片,后者的電流典型值超過100μA,通常高達(dá)300μA。此外,MAXQ1061和MAXQ1062的啟動(dòng)時(shí)間為30ms,不用時(shí)可以完全斷電,但在需要時(shí)仍能非??焖俚靥峁?。安全I(xiàn)C的足夠內(nèi)部非易失性存儲(chǔ)是保存密鑰和證書等敏感數(shù)據(jù)的另一個(gè)重要考慮因素。MAXQ1061和MAXQ1062的防篡改內(nèi)部存儲(chǔ)器適用于存儲(chǔ)X.509證書、ECDSA密鑰對或其他密鑰或任意數(shù)據(jù)。此內(nèi)部存儲(chǔ)被組織為由用戶定義的訪問控制控制的簡單文件系統(tǒng)?;?TPM 標(biāo)準(zhǔn)的芯片還具有內(nèi)部、防篡改、非易失性存儲(chǔ),足以滿足物聯(lián)網(wǎng)應(yīng)用中不典型的大型密鑰存儲(chǔ)。MAXQ1061和MAXQ1062還支持與嵌入式設(shè)計(jì)緊密一致的通信協(xié)議:器件通過I連接到主機(jī)處理器2C 或 SPI 總線。雖然基于TPM標(biāo)準(zhǔn)的芯片也具有SPI接口,但它們具有其他接口,例如LPC,主要用于PC架構(gòu)而不是嵌入式系統(tǒng)。
TPM芯片的學(xué)習(xí)曲線更艱難 使用基于TPM的芯片最具挑戰(zhàn)性的方面
之一是學(xué)習(xí)曲線。符合TPM標(biāo)準(zhǔn)的主機(jī)端軟件龐大而復(fù)雜,專用于具有Linux和Windows等操作系統(tǒng)的大型系統(tǒng)。內(nèi)存占用量在 100KB 到 1MB 范圍內(nèi)。網(wǎng)上可用的編程資源并不多。軟件組件包括TCG軟件堆棧(TSS),其規(guī)范龐大而復(fù)雜;符合 TPM 標(biāo)準(zhǔn)的驅(qū)動(dòng)程序,其 API 很復(fù)雜且處于非常低的級別;以及功能 API,它具有簡單的用法但復(fù)雜的安全策略定義。
相比之下,MAXQ1061和MAXQ1062需要非常簡單的軟件,適合最小的微控制器。主機(jī)端軟件在源代碼中提供,因此可以自定義。由于它是一個(gè) C 語言庫,其函數(shù)直接映射到設(shè)備的命令集,因此您可以使用簡單的程序以相對直接的方式實(shí)現(xiàn)復(fù)雜的用例。這些安全微控制器的主機(jī)庫通常使用大約 6KB 的代碼和 4KB 的 RAM,并且可以為任何小型處理器(如 Arm)構(gòu)建。皮層-M0.定制的TLS客戶端堆棧,例如用于任何類型的微控制器(例如Cortex-M0,類似于高端微控制器的微控制器)和OpenSSL的mbedTL對于運(yùn)行嵌入式Linux或Windows的大型微控制器,在此庫之上提供。TLS 客戶端堆棧使用設(shè)備的 TLS 功能。
卸載主機(jī)處理器 在系統(tǒng)中使用安全 IC 的一個(gè)優(yōu)點(diǎn)是將主處理器
從敏感的加密操作中卸載。TPM芯片與MAXQ1和MAXQ1061支持的低級加密算法比較見表1062。
表 1.支持的低級加密算法
低級加密功能 | 基于 TPM 標(biāo)準(zhǔn)的芯片 | 最大Q1061/最大Q1062 |
---|---|---|
標(biāo)準(zhǔn)加密算法 | 是的 | 是的 |
AES | AES-256 is optional in the TPM 2.0 standard | ECB, CBC, CCM 128/192/256 ECB/GCM 128, fast |
Random Number Generator | SP800-90A, AIS31PTG2 | Designed for SP800-90A SHA256DRBG* |
Key Generation | RSA, ECDSA | ECDSA |
Secure Hash Algorithm | SHA-1, 256 | SHA-1, 256, 384, 512 |
RSA Signature | 2048-bit | No |
RSA Encryption | 2048-bit | No |
ECDSA Signature | NIST P-256 | NIST P-256, 384, 521 Brainpool 256, 384, 512 |
ECDH | Same curves as ECDSA | Same curves as ECDSA |
HMAC | SHA-256 | SHA-256, 384, 512 |
AES based MAC | No | Fast AES-CBC-MAC, AES-CMAC AES-GMAC with 128-bit keys on a dedicated SPI interface |
TLS 1.2 PRF | No | SHA-256-based |
*此隨機(jī)數(shù)生成器標(biāo)準(zhǔn)的設(shè)計(jì)尚未通過認(rèn)證。
與TPM芯片相比,MAXQ1061和MAXQ1062運(yùn)行加密算法的方式在性能方面具有一定的優(yōu)勢。MAXQ1061和MAXQ1062通過SPI提供快速AES引擎,用于AES ECB和AES GCM加密,具有128位密鑰,速度高達(dá)10MBps。這樣,主處理器就不必處理一些對稱加密任務(wù)了。此外,AES密鑰不需要導(dǎo)出到主處理器,在那里它們可能會(huì)被側(cè)信道攻擊暴露和泄露(導(dǎo)致通過功耗或電磁輻射分析檢索密鑰)。通過板載快速AES引擎,密鑰可以安全地存儲(chǔ)在MAXQ1061和MAXQ1062中。相比之下,基于 TPM 標(biāo)準(zhǔn)的芯片沒有如此高速的對稱加密引擎。
如表1所示,MAXQ1061和MAXQ1062不支持RSA。值得注意的是,RSA正變得越來越不推薦使用,因?yàn)榕cECDSA相比,長密鑰和數(shù)字簽名可能長達(dá)數(shù)千位,而ECDSA的密鑰和簽名只有幾百位長。
TPM 芯片不具有處理 TLS 協(xié)議的特定功能。它們可以用作基本的加密引擎和長期密鑰存儲(chǔ),由某些TLS軟件堆棧(如wolfSSL)利用。以執(zhí)行原子操作,如證書生成、簽名驗(yàn)證、AES 加密或解密、HMAC 簽名或驗(yàn)證,或 ECDH,具體取決于 TLS 握手和記錄處理的需要。使用此類芯片,TLS會(huì)話密鑰在主機(jī)處理器中計(jì)算,正如我們所討論的,主機(jī)處理器更容易受到黑客的攻擊。在將TLS會(huì)話密鑰保留在易失性存儲(chǔ)器內(nèi)部的同時(shí),MAXQ1061和MAXQ1062可以處理從握手到安全應(yīng)用數(shù)據(jù)交換的完整TLS 1.2會(huì)話。通過 TLS 交換應(yīng)用程序數(shù)據(jù)時(shí),將使用 TLS 記錄層,并使用協(xié)商密鑰應(yīng)用加密和簽名。設(shè)備完全處理此TLS記錄層,因此從握手階段派生的TLS會(huì)話密鑰可以在芯片內(nèi)保持安全,并且永遠(yuǎn)不會(huì)暴露在芯片外部。
外部內(nèi)存加密需要一個(gè)對稱密鑰來加密/解密磁盤數(shù)據(jù)。對稱方法(如 AES)提供速度。安全 IC 必須在加密時(shí)保存磁盤加密/解密密鑰,僅當(dāng) CPU 啟動(dòng)到安全狀態(tài)時(shí),才會(huì)將其釋放到主 CPU。對于 TPM 芯片,安全狀態(tài)是使用在引導(dǎo)過程中更新的 PCR 值確定的。只有這樣,TPM 標(biāo)準(zhǔn)芯片才會(huì)將密鑰釋放給主機(jī)處理器,主機(jī)處理器自行執(zhí)行磁盤加密/解密,因?yàn)樾酒狈Υ祟惒僮鞯乃俣取5牵荑€在傳輸?shù)街鳈C(jī)處理器時(shí)可能會(huì)暴露。使用MAXQ1061和MAXQ1062時(shí),安全啟動(dòng)功能和保存磁盤解密密鑰的內(nèi)部存儲(chǔ)器對象實(shí)現(xiàn)了此過程。一旦平臺安全啟動(dòng),MAXQ1061和MAXQ1062可以選擇將密鑰傳輸?shù)酵獠緼ES-SPI引擎,并對外部存儲(chǔ)器進(jìn)行高速加密/解密,而不是將密鑰傳輸?shù)街鳈C(jī)處理器。使用此功能,可以快速解密外部存儲(chǔ)器,而不會(huì)暴露解密密鑰。
審核編輯:郭婷
-
嵌入式
+關(guān)注
關(guān)注
5082文章
19126瀏覽量
305198 -
服務(wù)器
+關(guān)注
關(guān)注
12文章
9160瀏覽量
85421 -
IOT
+關(guān)注
關(guān)注
187文章
4210瀏覽量
196796
發(fā)布評論請先 登錄
相關(guān)推薦
評論