一些安全IC被設計為用作應用處理器的配套IC。Maxim MAXQ1061/MAXQ1062系列和可信計算組??定義的可信平臺模塊 (TPM) 就是這樣的配套芯片。物聯網中的安全目標涉及設備和服務器身份驗證、敏感數據保護、通信的機密性和完整性(例如 TLS 協議)、設備完整性和知識產權保護。
在更具體的例子中,物聯網節點設備需要具有安全的引導加載程序和安全固件更新,通過TLS連接將傳感器數據發送到服務器,并將敏感數據存儲在閃存中。MAXQ1061/MAXQ1062專為小型嵌入式系統設計,器件應用處理器資源要求小,使用方便。本應用筆記從多個方面表明,使用MAXQ1061/MAXQ1062比使用基于TPM標準的芯片更簡單、更高效。
介紹
從歷史上看,基于可信計算組的芯片?(TCG) 定義的可信平臺模塊 (TPM) 標準是防篡改、離散、加密協處理器,已在大多數消費者個人計算機和服務器中實施?;赥PM標準的芯片中的安全概念是多年前設計的,旨在通過網絡交換數據的計算機之間實現信任,并保護用戶的靜態數據免遭丟失或盜竊?;?TPM 標準的芯片是防篡改、安全的加密處理器,旨在執行加密操作并安全地存儲少量數據,包括密鑰。
基于 TPM 標準的專用硬件 IP 也可以在現有組件上實施,也可以作為利用現有 CPU 的可信執行環境(例如英特爾 TXT 或 Arm 信任區)的固件實施。本應用筆記僅考慮基于TPM標準的分立芯片,因為建議在防篡改方面具有更高的安全級別。???
基于 TPM 標準的芯片設計目的很簡單,但它們也可以支持非常復雜的安全策略的實施,這些策略定義了誰可以在何時做什么。這種復雜性,由計算機應用程序中所需的各種場景證明,使TPM標準的學習曲線非常僵硬。由于這種復雜性,驗證系統的安全性要困難得多。盡管基于TPM標準的芯片也用于嵌入式系統,但它們的初始設計和平臺資源要求使其難以集成到物聯網中常見的簡單系統中。
MAXQ1061/MAXQ1062由Maxim Integrated根據內部、客戶和公共加密模塊規范的要求創建,特別適用于簡單的嵌入式連接設備。MAXQ1061/MAXQ1062設計用于為低成本嵌入式系統提供高安全性證書、密鑰和數據安全存儲以及安全加密基元。這些器件可用于將設備集成到公鑰基礎設施中、設備和服務器身份驗證、數據的機密性和完整性以及設備完整性。MAXQ1061/MAXQ1062提供了一組嚴格的40個命令,以實現這些目的,避免不必要的復雜性。簡單的訪問控制策略和功能集以比基于 TPM 標準的芯片簡單得多的方式回答與 IoT 設備相關的大多數安全方案。
MAXQ1061/MAXQ1062提供的加密算法符合標準(如NIST、ANSI、BSI)。MAXQ1061/MAXQ1062也是防篡改IC,采用最先進的防黑客對策。
在本應用筆記中,我們列舉了相關物聯網器件的特性和用例,并比較了它們與MAXQ1061/MAXQ1062以及基于TPM標準的芯片的實現。雖然,并非基于TPM標準的芯片提供的所有無限可能性都將暴露出來。
定義
本應用筆記中使用以下術語:
主機:主處理器,例如運行設備的 CPU 或 SoC
服務器:設備連接到的遠程計算機
安全IC:MAXQ1061/MAXQ1062或基于TPM標準的芯片
圖1.MAXQ1061/MAXQ1062的集成示例。
MAXQ1061/MAXQ1062通過SPI或I2C總線連接到主機處理器?;蛘撸鳈C處理器可以控制MAXQ1061/MAXQ1062的RESET輸入和看門狗輸入(WDI)。MAXQ1061/MAXQ1062還可以連接到器件級篡改檢測機制(如開關)。最后,MAXQ1061/MAXQ1062可以控制主機處理器的RESET輸入。
請記住,安全IC的行為就像從屬設備。它們通過命令總線從主機處理器接收命令,處理命令,并返回答案。這些芯片不會自發發送任何東西,也不會主動讀取外部記憶等。
安全IC的用途
安全IC或安全元件的目的是提高密鑰存儲的安全性,并提供可抵抗故障注入和側信道攻擊的安全加密實現。此外,安全IC允許與平臺上運行的其他軟件嚴格隔離,因為唯一的交互通道是命令總線,這大大減少了攻擊面以及敏感功能和數據暴露給主機處理器的軟件。此外,要找到現成的純軟件、能夠抵抗攻擊的加密算法的實現并不容易(甚至更不容易自己開發它們),除非主機處理器已經具有集成的加密專用硬件塊,并且芯片供應商提供了這樣的加密例程。
設備可以使用安全 IC 來支持僅靠軟件無法實現的數據保護和安全方案。例如,軟件無法可靠地報告系統啟動過程中是否存在惡意軟件。安全IC和主機處理器之間的緊密集成使啟動過程更清晰,更容易評估安全性。通過啟動設備的受信任軟件進行可靠的測量和報告,可以評估設備完整性。
將安全IC作為器件的一部分實現可提供硬件信任根,這意味著它始終以受信任的方式運行。例如,存儲在安全IC中的私鑰確實不能離開IC,或者存儲在其中的證書不能被篡改。
最后但并非最不重要的一點是,安全IC將主機處理器從安全功能所需的存儲器占用空間和計算資源中卸載出來,這在具有小型主機處理器的設備中特別有用,例如Arm Cortex-M0微控制器(通常為128K閃存,16K RAM,40MHz)。?
主要特性比較
包
MAXQ1061/MAXQ1062和基于TPM標準的芯片采用類似的封裝。封裝尺寸在大多數嵌入式設備中變得至關重要,由于器件外形尺寸受到更多限制,PCB尺寸會變得更小。
MAXQ1061/MAXQ1062采用緊湊型TSSOP14 6.4x4.9封裝。
圖2.MAXQ1061/MAXQ1062封裝
大多數基于 TPM 標準的芯片采用 TSSOP28 或 VQFN 5x5 封裝。
電源和消耗
待機模式下的低功耗是電池供電設備的關鍵優勢。MAXQ1061/MAXQ1062的典型待機電流為25μA,遠低于基于TPM標準的芯片,后者的電流典型值超過100μA,通常高達300μA。MAXQ1061/MAXQ1062的啟動時間為30ms,不用時可以完全斷電,但在需要時仍能非??焖俚靥峁?。
在工作模式下,基于TPM標準和MAXQ1061/MAXQ1062的芯片具有約25mA的有源電源電流。MAXQ3/MAXQ3和大多數基于TPM標準的芯片的電源電壓為1061.1062V。一些基于 TPM 標準的芯片提供 1.8V。
內部存儲大小
安全IC的內部非易失性存儲對于存儲敏感數據(如機密數據、秘密或私鑰)以及必須保留以防止修改的數據(如證書)至關重要。
MAXQ1061/MAXQ1062具有內部非易失性防篡改存儲器,用于存儲敏感數據。MAXQ1061/MAXQ1062具有足夠的內部存儲器,可用于存儲X.509證書、ECDSA密鑰對或其它密鑰或任意數據等適用于嵌入式系統的大多數用例。此內部存儲被組織為由用戶定義的訪問控制控制的簡單文件系統。有關更多詳細信息,請參閱使用訪問控制設計安全策略部分。
基于TPM標準的芯片還具有內部,防篡改,非易失性存儲。除其他外,此存儲允許存儲加密其他子密鑰的根密鑰,而子密鑰可以反過來加密其他孫密鑰?;?TPM 標準的芯片可以處理大型密鑰存儲。除根密鑰外,密鑰通常根據 TPM 標準存儲在芯片外部,并在需要時重新注入并解密到芯片中。主機端軟件處理此操作。子密鑰一旦加載到芯片中就會解密,然后使用,最終被丟棄,但長期密鑰保留在外部加密存儲中。此功能在PC平臺中非常有用,其中許多應用程序可能希望出于各種目的保留大量密鑰,但通常與物聯網設備無關。
通信協議
MAXQ1061/MAXQ1062提供I2C 和適合大多數嵌入式設計的 SPI 接口?;赥PM標準的芯片還提供SPI接口和其他面向計算機的接口,如LPC或SMBUS(接近I2LPC接口專用于PC架構,幾乎不適用于嵌入式系統。
主機端支持軟件
符合 TPM 標準的主機端軟件龐大而復雜,并且學習曲線很僵硬,互聯網上可用的編程資源很少。該軟件專用于具有操作系統(如Linux或Windows)的大型系統。符合 TPM 標準的主機端軟件具有以下主要組件:??
TCG 軟件堆棧 (TSS)。該軟件需要大型系統,例如Linux或Windows。通常,符合TPM標準的軟件隱藏在高級工具(如Microsoft Crypto Provider或PKCS#11引擎)后面。雖然它處理了符合 TPM 標準的低級通信的奇怪和復雜性,但 TSS 的規范仍然龐大而復雜。?
符合 TPM 標準的驅動程序。此驅動程序是 TSS 所在的較低級別的組件。此驅動程序的 API 非常復雜,并且處于非常低的級別,這使得在復雜的用例中實現變得更加困難。雖然Windows和Linux中的TPM標準集成是開箱即用的,但將其移植到裸機平臺上并不容易,甚至可能是不可能的。
功能接口。在現有層之上,TPM 標準還提出了一個功能API,具有更簡單、更集成的使用,僅限于最常見的場景,并提供大約 45 個 API 函數。但是,安全策略定義仍然很復雜。
表 1 顯示了我們在 Linux 2 位目標上的 TSS (TSS64) 上的實驗結果。
文本(字節) | 靜態數據(字節)* | 文件名 |
146344 | 4972 | ./src/tss2-sys/.libs/libtss2-sys.so |
253071 | 2140 | ./src/tss2-mu/.libs/libtss2-mu.so |
16214 | 928 | ./src/tss2-tcti/.libs/libtss2-tcti-device.so |
20019 | 960 | ./src/tss2-tcti/.libs/libtss2-tcti-mssim.so |
600190 | 6640 | ./src/tss2-esys/.libs/libtss2-esys.so |
* 此處不考慮動態分配的內存。 |
表 1 中的代碼大小不適合通常小于 256KB 的眾多小型嵌入式設備 代碼存儲器和 64KB 內存。
另一方面,MAXQ1061/MAXQ1062需要非常簡單的軟件,適用于最小的 微控制器。主機端軟件在源代碼中提供,允許自定義。這是一個圖書館 C語言提供直接映射到MAXQ1061/MAXQ1062命令集的功能。由于 這組減少的命令,復雜的用例可以用一個相當直接的方式實現,使用簡單的 程序。通信協議和總線級命令格式的幾率被庫隱藏, 它公開了一個清晰、易于使用的 C 語言程序員界面。該軟件依賴于標準SPI或I2C 平臺的驅動程序。集成商可能必須開發一個簡約的“膠水”層來鏈接 MAXQ1061/MAXQ1062主機庫到微控制器的驅動API。
MAXQ1061/MAXQ1062主機庫通常使用約6KB代碼和4KB內存,可用于任何 小型處理器,如Arm Cortex-M0。在此庫之上,提供了自定義的 TLS 客戶端堆棧, 例如用于任何類型的微控制器的mbedTLS(例如,Cortex-M0,類似于高端的微控制器) 微控制器)和OpenSSL,用于運行嵌入式Linux或Windows的大型微控制器。TLS 客戶端 堆棧利用MAXQ1061/MAXQ1062 TLS功能。?
安全 IC 用例
本節列出了基于TPM標準和MAXQ1061/MAXQ1062的芯片可以實現的用例。
卸載主機-處理器加密函數
安全 IC 將主處理器從敏感的加密操作中卸載出來。各IC系列支持的低級加密算法的比較如表2所示。
低級加密功能 | 基于 TPM 標準的芯片 | 最大Q1061/最大Q1062 |
標準加密算法 | 是的 | 是的 |
AES | AES-256 在 TPM 2.0 標準中是可選的 | ECB, CBC, CCM 128/192/256 ECB/GCM 128, 快速 |
隨機數生成器 | SP800-90A, AIS31PTG2 | 專為 SP800-90A SHA256DRBG 設計 |
密鑰生成 | RSA, ECDSA | 幼兒發展局 |
安全哈希算法 | SHA-1, 256 | SHA-1, 256, 384, 512 |
RSA 簽名 | 2048 位 | 不 |
RSA 加密 | 2048 位 | 不 |
ECDSA簽名 | 美國國家情報研究院 P-256? | NIST P-256, 384, 521腦池 256, 384, 512 |
人權捍衛人權委員會 | 與ECDSA相同的曲線 | 與ECDSA相同的曲線 |
HMAC | SHA-256 | SHA-256, 384, 512 |
基于 AES 的 MAC | 不 | 快速 AES-CBC-MAC、AES-CMAC AES-GMAC,在專用 SPI 接口上提供 128 位密鑰 |
TLS 1.2 PRF | 不 | 基于 SHA-256 |
* 此隨機數生成器標準的設計尚未通過認證。 |
快速 AES 引擎
MAXQ1061/MAXQ1062通過SPI提供快速AES引擎,用于AES ECB和AES GCM加密,具有128位密鑰。加密速度高達10MBps。此引擎將主處理器從某些對稱加密任務中卸載出來。此外,它避免將AES密鑰導出到主處理器,在主處理器中,密鑰可能會被諸如側信道攻擊之類的攻擊暴露和泄露,其中密鑰是通過功耗或電磁輻射分析來檢索的。通過使用板載快速AES引擎,密鑰安全地存儲在MAXQ1061/MAXQ1062中。
基于 TPM 標準的芯片沒有這種高速對稱加密引擎,當主機處理器不夠快或忙于其他重要任務時,這通常很有用。
RSA vs ECDSA
與基于TPM標準的芯片不同,MAXQ1061/MAXQ1062不支持RSA。但是,RSA越來越不推薦使用,因為與ECDSA相比,長密鑰和數字簽名可能長達數千位,而ECDSA的密鑰和簽名只有幾百位長。
TLS 1.2
基于 TPM 標準的芯片沒有處理 TLS 協議的特定功能。它們可以用作基本的加密引擎和長期密鑰存儲,由某些TLS軟件堆棧(如wolfSSL)利用,以執行原子操作,如證書生成,簽名驗證,AES加密或解密,HMAC簽名或驗證,或TLS握手和記錄處理所需的ECDH。有了這樣的芯片,TLS會話密鑰是在主機處理器中計算的,這更容易被黑客攻擊。?
MAXQ1061/MAXQ1062可以處理從握手到安全應用數據交換的完整TLS 1.2會話,同時將TLS會話密鑰保留在易失性存儲器內部。TLS 記錄層在通過 TLS 交換應用程序數據時使用,并使用協商密鑰應用加密和簽名。該TLS記錄層可完全由MAXQ1061/MAXQ1062處理,允許從握手階段獲得的TLS會話密鑰在芯片內保持安全,絕不會暴露在芯片外。MAXQ1061/MAXQ1062與提供的TLS軟件堆棧(即mbedTLS、OpenSSL)捆綁在一起,是一種交鑰匙解決方案,為設計人員提供連接器件的安全通信。
基于 TPM 2.0 標準的芯片 | 最大Q1061/最大Q1062 | |
TLS 1.2 PRF | 不 | 是的 |
保護會話密鑰 | 不 | 是的 |
完全握手 | 不 | 是的 |
TLS 1.2 記錄處理 | 不 | 是的 |
外部存儲器加密
外部內存加密需要一個對稱密鑰來加密/解密磁盤數據。對稱(例如 AES)是 出于速度原因需要。安全 IC 必須將磁盤加密/解密密鑰保存為已加密并釋放 僅當 CPU 已啟動到安全狀態時,它才會發送到主 CPU。
對于基于 TPM 標準的芯片,使用 PCR 值確定安全狀態 (有關平臺配置寄存器的詳細信息,請參閱安全啟動部分),這些寄存器在引導過程中會更新。然后,TPM 標準芯片將密鑰釋放給主機處理器,主機處理器自行執行磁盤加密/解密,因為芯片對于此類操作來說太慢了。當傳輸到主機處理器時,密鑰可能會暴露,并且不再受益于基于 TPM 標準的芯片保護。主機處理器上的側信道攻擊(請參閱 TLS 1.2 部分)或軟件攻擊可能會泄露密鑰,并且整個系統可能會受到損害。
MAXQ1061/MAXQ1062只需使用其安全啟動功能和保存磁盤解密密鑰的內部存儲器對象即可實現此行為。當平臺安全啟動后,MAXQ1061/MAXQ1062可以選擇將密鑰傳輸到外部AES-SPI引擎,并對外部存儲器進行高速加密/解密,而不是將密鑰傳輸到主機處理器。此功能允許在不暴露解密密鑰的情況下高速解密外部存儲器。還可以選擇將密鑰傳輸到主機處理器。
設備識別和認證,尤其適用于設備反克隆
基于公鑰的標識和身份驗證依賴于真正唯一標識符的存在和 每個設備中唯一的密鑰對。
MAXQ1061/MAXQ1062可以存儲唯一的ECDSA密鑰對,這些密鑰由內部非易失性存儲器中的1061個私鑰和一個公鑰組成。還會存儲公鑰的證書,用于設備身份驗證。根據要求,MAXQ1062/MAXQ1061可以使用私鑰對從對等方收到的質詢進行簽名,并通過發回該質詢和證書的簽名來證明其身份,該身份存儲在證書中。認證對等方可以使用證書頒發機構(CA)驗證來自MAXQ1062/MAXQ1061的證書,然后使用該證書中的MAXQ1062/MAXQ1061公鑰驗證質詢的簽名。成功后,對包含MAXQ1062/MAXQ<>的器件進行識別和認證。
證書固定
將證書頒發機構 (CA) 證書存儲在設備標準微控制器上的軟件保管庫中存在風險。如果攻擊者可以修改軟件并獲取對證書存儲的訪問權限,則攻擊者可以插入惡意證書,從而使設備將惡意遠程服務器識別為真實服務器。
MAXQ1061/MAXQ1062可以將CA證書存儲在內部存儲器中,防止任何人修改它們。此外,MAXQ1061/MAXQ1062在將證書加載到存儲器之前驗證證書的真實性。只有 CA 簽名的證書才能導入芯片,因此無法使用流氓證書。導入后,這些證書還可以通過某些安全條件進行控制,以進一步限制使用。
圖3.使用父證書進行子證書驗證。
如圖 3 所示,子證書簽名請求 (1) 使用自己的 CA 私有簽名密鑰 (2) 發送到發出子證書的證書頒發機構 (CA)。由于內部存儲器中已經存在證書頒發機構的根證書,因此新生成的子證書在MAXQ1061/MAXQ1062上得到驗證,然后記錄到MAXQ1061/MAXQ1062非易失性存儲器中。注意,證書頒發機構的根證書(與CA私有簽名密鑰匹配)必須在設備個性化期間由受信任實體預加載,該可信實體必須擁有MAXQ1061/MAXQ1062私鑰才能導入。
主機處理器的監視器
當主機處理器受到外部監控時,可以提高設備的整體可靠性和安全性。
使用MAXQ1061/MAXQ1062,可以通過看門狗機制監測主機處理器的行為。在這種機制中,主機處理器必須在截止時間之前定期置位MAXQ1061/MAXQ1062的輸入引腳。如果超過截止時間,MAXQ1061/MAXQ1062置位主機處理器的RESET信號并復位內部安全環境。這允許設備退出死鎖或停止主機處理器的異常行為。
當發生某些安全錯誤時,如MAXQ1061/MAXQ1062與主機之間的安全通道出現故障或TAMPER引腳發生篡改事件,或者MAXQ1061/MAXQ1062重新啟動時,MAXQ1061/MAXQ1062也可以觸發主機處理器的RESET信號。此功能可確保平臺在出現任何問題時保持安全狀態(重新啟動)。
基于 TPM 標準的芯片不支持此類功能。
內部安全存儲
MAXQ1061/MAXQ1062和基于TPM標準的芯片既可以直接將少量數據存儲在具有訪問控制的內部存儲器中,也可以存儲數據加密/解密密鑰,并在滿足某些條件時將其釋放給主機處理器。在后者的情況下,主機處理器負責使用安全IC釋放的密鑰對數據存儲的數據進行加密/解密。兩款安全IC的內部存儲器空間有限,因此將此用例的數據限制在幾千字節到幾十千字節之間。
管理
使用MAXQ1061/MAXQ1062時,管理員必須使用私鑰進行身份驗證。MAXQ1061/MAXQ1062設計用于無人值守設備,因此私鑰應遠程存儲,管理應遠程完成,或者在制造過程中完成。這是連接設備的首選方案。始終限制為管理員的唯一操作是在文件系統中創建對象。創建的對象可以分配不同的訪問權限(想想Linux的chmod命令)。可以限制對某些對象的某些操作的訪問權限,并且僅授予管理員。有關詳細信息,請參閱使用訪問控制設計安全策略部分。
基于 TPM 標準的芯片管理不太適合物聯網設備。可以由 TPM 芯片所有者進行管理?;?TPM 標準的芯片所有權是通過設置密碼建立的。在PC上,此密碼由操作系統生成,并且很長且很復雜。密碼存儲在遠程數據庫(例如,Active Directory)上或由PC用戶寫下。擁有基于 TPM 標準的芯片允許執行各種操作,例如密鑰生成和芯片重置。請注意,基于 TPM 標準的芯片可以在沒有任何密碼的情況下清除,但此操作需要物理存在(即斷言物理存在 I/O)。
如果有人打開設備機箱并斷言存在引腳,TPM 狀態功能會將基于 TPM 標準的芯片公開到本地重置。MAXQ1061/MAXQ1062更安全,因為始終需要動態認證。管理員可能無法完全訪問MAXQ1061/MAXQ1062的所有資產,這造成了更加嚴格的安全策略。
安全通道
安全通道旨在保護安全 IC 和發送對等體之間傳輸的命令和響應。對等方可以是本地主機處理器,也可以是遠程實體。安全通道提供傳輸中的命令和數據的機密性、完整性和真實性。
基于TPM標準的芯片可以結合授權會話執行加密/解密會話。授權會話要求對整個命令以及響應使用 HMAC,以保證命令結束響應的完整性。此外,加密/解密會話使用基于 AES 的算法來確保命令和響應的機密性。換句話說,基于 TPM 標準的芯片和與芯片通信的對等方(本地主機處理器或遠程對等方)共享相同的加密密鑰和 HMAC 密鑰。此機制是授權功能的一部分。
MAXQ1061/MAXQ1062也支持這種機制。打開安全通道只需要從隨機數和共享密鑰派生,MAXQ1061/MAXQ1062與對等方共享密鑰。生成的派生會話密鑰用于對雙向數據進行加密和簽名。加密使用 AES-CBC,簽名使用 AES-CBC-MAC。MAXQ1061/MAXQ1062除響應外,還對命令、參數和數據進行完全加密,使得無法猜測傳輸到MAXQ1061/MAXQ1062的命令。命令和響應以加密方式相互鏈接,因此無法在序列中交換、刪除、插入或重放命令。
在MAXQ1061/MAXQ1062上,成功啟動安全通道可以解鎖物體并允許明確定義的操作。
安全啟動
為了值得信賴,嵌入式設備的主機處理器必須運行設備批準的經過驗證的固件 制造者。MAXQ1061/MAXQ1062和基于TPM標準的芯片提供基于以下特性的安全自舉機制: 假設如圖 4 所示。
圖4.安全啟動。
步 | 描述 |
1 |
主機處理器必須始終引導位于非易失性存儲器 (A) 中的相同初始固件。 此步驟基于以下假設: 此固件的位置定義一次,無法更改 初始固件存儲在主機處理器的內部閃存中,不能 輕松重新編程 主機處理器必須提供一種機制來使這些假設成立。可以存儲初始固件 放入可以通過非常嚴格的訪問控制進行更新的閃存中,此外,還可以使用主機處理器 始終在此內部閃存上啟動。此內存是信任的靜態根。 |
2 | 初始固件在主機處理器中執行,并使用安全 IC 執行自我驗證。 |
3 | 讀取固件。早期固件使用安全 IC 驗證下一階段固件。 |
4 |
為安全 IC 提供應用固件。 初始固件將下一級固件(即應用固件)發送到安全IC。 |
5 |
如果固件驗證成功,則修改安全 IC 內部狀態。 初始固件使用安全IC驗證下一階段固件。如果驗證成功,安全 IC 中影響訪問控制的某些安全條件可能會更改。例如,私鑰可用于對數據進行簽名。 |
MAXQ1061/MAXQ1062與基于TPM標準的芯片的安全啟動技術細節不同。基于TPM標準的芯片通過測量平臺來驗證平臺完整性(即固件和重要數據完整性)。測量意味著在平臺配置寄存器(PCR)中對散列運算結果進行散列和累積。主機處理器執行的早期固件使用基于TPM標準的芯片進行自我驗證,然后驗證后續啟動階段固件(例如,BIOS 到磁盤 MBR 到 U-Boot 引導加載程序到 Linux 內核)。每個認證階段負責通過將二進制代碼輸入芯片的PCR來檢查下一個級別。
為了增加復雜性,基于TPM標準的芯片具有多個PCR,可用于各種目的。根據現有的策略,如果PCR值與先前記錄的參考值匹配,則可以解鎖TPM標準芯片中的某些內部對象。請注意,基于TPM標準的芯片還可以驗證存儲在PCR中的哈希的數字簽名,并將PCR值與參考值進行比較。
MAXQ1061/MAXQ1062提供簡單安全的自舉機制,僅支持一個內部哈希寄存器,并要求簽名驗證。若要使用此機制,主機處理器將啟動位于固有受信任的不可變內存中的初始固件。該初始固件向MAXQ1061/MAXQ1062饋送必須啟動的應用二進制代碼和MAXQ1061/MAXQ1062哈希,并將該代碼累積到內部哈希寄存器中。在該過程結束時,初始固件向MAXQ1061/MAXQ1062提供應用程序的簽名。MAXQ1061/MAXQ1062使用公鑰驗證簽名是否與內部哈希寄存器匹配。成功的驗證可解鎖部分MAXQ1061/MAXQ1062內部對象以供進一步使用。此類對象可以是身份驗證機制中使用的私鑰,該機制可以向網絡對等方證明已成功執行安全啟動序列。
MAXQ1061/MAXQ1062提供與基于TPM標準的芯片一樣安全的平臺完整性驗證,但具有更簡單但可配置的安全策略。MAXQ1061/MAXQ1062快速AES引擎還提供基于TPM標準的芯片所不具備的替代固件同步驗證和解密。
安全更新
安全固件更新比安全啟動更相關。兩個安全IC都可以實現安全更新。使用MAXQ1061/MAXQ1062,實現起來非常簡單。MAXQ1061/MAXQ1062使用公共驗證密鑰進行初始化,用于驗證新固件映像的數字簽名。此外,當進行上述驗證時,可以呈現解密密鑰,從而允許解密固件。隨著高價值算法變得司空見慣,即使在簡單的嵌入式設備中也是如此,因此更需要固件加密。因此,需要保護算法免受長期存儲的提取、傳輸過程中的竊聽和逆向工程。
由于SPI總線上的AES快速引擎處理GCM模式,MAXQ1061/MAXQ1062可以實現固件的快速解密和認證(高達10Mbps)。MAXQ1061/MAXQ1062提供非對稱或基于對稱的安全啟動。
基于TPM標準的芯片也可以使用快速解密和身份驗證執行安全更新,但不支持同時進行快速身份驗證和解密。
使用訪問控制設計安全策略
MAXQ1061/MAXQ1062的安全策略相當簡單。對于MAXQ1061/MAXQ1062的每個生命周期狀態,訪問控制列表定義了允許某些操作所需的安全條件。
如表 5 所示,每個空單元格根據對象/命令和當前啟用的安全條件定義允許或不允許的內容。為每個生命周期狀態定義相同的訪問控制矩陣(不同或不同)。
安全條件 | ||||
V 項 | 沒有 | 主機 | 安全啟動 | 管理 |
對象 | ||||
命令 |
MAXQ1061/MAXQ1062內部存儲器中的對象具有可在創建時定義的訪問條件。對象訪問條件定義了對對象執行每個可能的操作所需的安全條件(例如,讀?。盒枰鳈C條件,寫入:從不允許,使用密鑰:需要安全啟動)。
命令訪問條件是預定義的,不能更改,但大多數命令必須使用主機條件的可能性除外。這將強制所有命令通過與主機處理器的安全通道發送。
MAXQ1061/MAXQ1062的安全條件如下:
成功打開安全通道時,將驗證條件 HOST(處理器)。
條件 ADMIN 通過成功的管理員身份驗證命令執行進行身份驗證。
條件安全引導通過成功的驗證引導命令執行進行身份驗證,這意味著主機 固件的數字簽名已成功驗證。
注意:可以同時啟用多個安全條件。
解釋整個TPM標準安全策略概念是壓倒性的,因為它非常復雜。有關詳細信息,請閱讀“TPM 2.0 實用指南:在新的安全時代使用新的可信平臺模塊”一書,并參閱 TCG 規范?;赥PM標準的芯片盡管更加復雜,但具有與MAXQ1061/MAXQ1062相同的安全條件。
基本上,有三種可能的角色:USER、ADMIN 和 DUP。 USER 用于實體的正常使用,ADMIN 角色用于系統管理任務,而 DUP(一個重點狹窄的角色)是 TPM2_Duplicate 命令允許的唯一角色。
所需的授權類型由兩個屬性確定:userWithAuth 和 adminWithPolicy。這些屬性可以顯式設置(例如在對象創建對象時),也可以通過其他方式為基于 TPM 標準的芯片處理的某些類型的實體確定。
對于基于TPM標準的芯片,三種授權類型如下:
密碼。命令的發送方發送一個簡單的密碼,用于授權執行命令。
哼。密碼用作 HMAC 密鑰的基礎。HMAC 是通過命令計算的,以保證命令的完整性,并且命令由知道密碼的人發送(不泄露密碼)。隨機數用于避免在發送兩次完全相同的命令時獲得兩倍相同的 HMAC 值,這也稱為重放攻擊保護。
策略會話。策略通過包括某些狀態的值(例如,PCR值,命令序列,對象值,時間值),定義非常復雜的方案,甚至強制要求特定的命令序列,非常精細地定義何時授權操作。
總體而言,MAXQ1061/MAXQ1062安全策略使用靈活,同時更易于理解和實現。
生命周期狀態
MAXQ1061/MAXQ1062基于嚴格的單調生命周期計數器,具有三種主要的生命周期狀態。每個狀態提供不同的訪問控制策略。名為“終止”的第四個狀態可用于完全和永久地停用部件,從而停用設備。轉換到此狀態僅限于管理員,但如果需要,也可以永久禁用。僅當管理員發送專用命令時,才會在狀態之間進行轉換。這在設備的制造和個性化過程中非常有用,以授予或拒絕對某些對象的訪問,具體取決于制造步驟。
基于TPM標準的芯片可以雙向發展。建立所有權時,將啟用基于 TPM 標準的芯片。當所有者發送擦除命令時,芯片將被擦除。盡管必須斷言存在 I/O,但無法阻止基于 TPM 標準的擦除芯片,在某些情況下這可能是一個安全問題。
單調計數器
TPM 標準具有僅遞增的 64 位計數器。計數器可用于構建復雜的安全策略。例如,復雜的安全策略要求密鑰在使用一定次數后過期。MAXQ1061/MAXQ1062具有32位計數器,有兩種類型:僅遞增和僅遞減。與基于TPM標準的芯片相反,MAXQ1061/MAXQ1062計數器沒有特別的副作用。
時間管理
基于 TPM 標準的芯片具有集成計時器,用于安全時間戳和某些鎖定、密鑰或證書的過期。當基于 TPM 標準的芯片斷電時,計時器停止運行。為了克服這一限制,芯片有一個引導計數器,每次芯片引導時都會遞增。否則,定時器可以在每次復位后安全地同步到外部時鐘源。TPM 標準提供使用當前時間和啟動計數器值進行簽名或將數據綁定到計時器的功能。例如,可以簽署當前時間戳和證明操作已執行的票證,以證明該操作是在某個時間執行的(即簽署合同)。另一個示例是制作僅在下次重新啟動之前可用的密鑰。MAXQ1061/MAXQ1062沒有時間或重啟計數器,但通過計算來自主機微控制器的RTC輸入的數字簽名,MAXQ1061/MAXQ1062可用于提供安全的時間戳。由于TPM標準要求外部時鐘同步,因此MAXQ1061/MAXQ1062的約束與基于TPM標準的芯片的約束相似。
備份/還原和密鑰遷移
與基于TPM標準的芯片不同,MAXQ1061/MAXQ1062不能導出密鑰或私鑰,只能導出公鑰或證書。但是,可以導入密鑰或公鑰對,并且導入期間的密鑰加密只能使用安全通道?;?TPM 標準的芯片可以導入/導出使用傳輸密鑰加密的密鑰。當用戶需要將數據遷移到另一臺計算機上以備更換時,這種類型的密鑰備份/還原機制在計算機上很有用。在嵌入式設備上,這可能不是很有用。因此,MAXQ1061/MAXQ1062功能就足夠了。
MAXQ1061/MAXQ1062 個性化和配置服務
MAXQ1061/MAXQ1062最主要的應用之一是啟用離線公鑰基礎設施。設備必須預先預配證書頒發機構證書,以便能夠對其他對等方進行身份驗證,或者由其他人進行身份驗證,同時無法訪問聯機證書服務器???信任您的數字 請參閱信任您的數字。
基于 TPM 標準的芯片隨附一對稱為認可密鑰 (EK) 對的密鑰,該密鑰對每個 IC 都是唯一的。EK對由芯片制造商認證的公鑰(Ekpub)和私鑰(Ekpriv)組成。EK對的目的是驗證芯片是否真實。在制造過程中, EK對在芯片內部生成。Ekpriv 永遠不會離開芯片存儲器,但 Ekpub 被讀出,然后由制造商認證,生成的證書被加載回芯片的非易失性存儲器存儲中。交付后,客戶可以使用 Ekpub 證書驗證芯片的 Ekpriv 計算的數字簽名,從而驗證芯片的真實性。制造商的根證書可在線獲得,以便客戶可以在使用芯片Ekpub證書驗證簽名之前驗證其真實性。請注意,客戶可以替換初始 EK 對,以避免追溯到制造商。雖然基于 TPM 標準的芯片制造商可能會提供個性化服務,但通常由客戶來執行整個芯片的配置。
默認情況下,MAXQ1061/MAXQ1062 IC附帶默認管理員認證公鑰和默認導入密鑰。但是,根據要求,MAXQ1061/MAXQ1062 IC可以附帶一些預先個性化的對象,包括額外的管理員公鑰和密鑰導入公鑰、額外的密鑰和證書對或任何其他類型的對象。這種個性化服務使客戶能夠避免在其制造設施中處理密鑰和證書或生成證書的負擔。相反,MAXQ1061/MAXQ1062 IC安裝在PCB上,提供自舉最終器件所需的所有信息。MAXQ1061/MAXQ1062可以寄送給客戶,內部存儲器中已有一對獨特的密鑰,密鑰就地生成,私鑰永遠不會離開內部存儲器。Maxim的制造工廠也可以使用硬件安全模塊(HSM)生成公鑰證書。證書頒發機構可以來自Maxim、客戶或第三方。
MAXQ1061/MAXQ1062在密鑰和證書配置方面提供了充分的靈活性,因為沒有預定義的密鑰或對象角色。
安全IC的安全限制
MAXQ1061/MAXQ1062可以克服雙芯片設計的固有局限性。固有限制如下:
入侵者篡改主機處理器和安全 IC 之間的通信鏈路的能力。
入侵者能夠替換初始固件并跳過安全啟動階段,但仍向安全 IC 提供正版固件,以訪問由安全啟動條件鎖定的資產。例如,請參閱 Ledger 地址 中間人攻擊威脅數百萬個硬件錢包。
基于TPM標準的芯片完全無法抵御此類攻擊,因為它們依賴于只有遠程攻擊才能進行的假設。
MAXQ1061/MAXQ1062通過使用篡改輸入引腳來監視器件外殼的完整性,從而減輕攻擊。一旦打開外殼,就可以從MAXQ1061/MAXQ1062內部安全存儲器中擦除重要資產,然后阻止器件以不安全的固件或狀態連接到網絡。
但是,在系統級別實施篡改檢測需要添加開關和/或特殊的篡改敏感工件。另外,應為MAXQ1061/MAXQ1062增加一個永久電源,以便能夠主動擦除相關資產。此設計實現的額外成本可能是值得的。
MAXQ1061/MAXQ1062未實現的特性
由于芯片的初始設計基于TPM標準,芯片可以實現許多面向PC的用例,這些用例在小型嵌入式設備中并不特別相關。
PKCS#11 或 Microsoft CAPI 引擎。這些加密服務提供商可以利用基本的 TPM 標準功能,為上層軟件層提供更安全的加密密鑰存儲和算法。與 TCG 軟件堆棧相比,服務提供商支持的功能更少。MAXQ1061/MAXQ1062可以在這樣的引擎中實現,但并不是真正為此目的而設計的。
基于 TPM 標準的芯片提供數字版權管理和軟件許可證驗證。以數字版權管理為例,當視頻在 30 天的有限時間內購買時,視頻解密密鑰將在 30 天后過期。軟件許可證驗證可以通過驗證平臺的身份與許可證中注冊的身份匹配以及驗證許可證是否未過期來實現。
遠程匿名證明。雖然這在涉及用戶的事務中可能很重要,但此操作在不泄露其標識的情況下證明了平臺的安全屬性(如平臺完整性)。刪除匿名證明使用MAXQ1061/MAXQ1062中未實現的特定算法(DAA)。這種先進的概念功能強大但很復雜,在嵌入式應用程序中可能沒有那么有用,因為簡單的數字簽名方案就足夠了。
密碼管理器。與磁盤加密用例類似,密碼管理器在釋放密碼存儲解密密鑰之前需要證明平臺的完整性。它還需要輸入密碼錢包的所有者主密碼短語或成功匹配的指紋。在物聯網的背景下,缺少密碼管理器并不被視為真正的限制,因為密碼很少使用。
結論
即使支持的加密算法變體列表存在一些差異,這通常也不是客戶的決策因素,除非存在非常具體的加密要求。TPM標準和基于TPM標準的芯片使用和理解非常復雜,需要相對較大的主機端軟件堆棧。此外,目前還不清楚TPM兼容芯片的制造商是否愿意提供個性化服務,例如在每個芯片中預加載唯一證書。
MAXQ1061/MAXQ1062完全適合物聯網安全場景和要求。除非必須滿足有關訪問控制策略或認證的特殊要求,否則MAXQ1061/MAXQ1062始終是比基于TPM標準的芯片更好的選擇,這要歸功于安全概念的簡單性、平臺安全性的可驗證性、更少的命令集、獨特的功能,如主機處理器看門狗和復位控制, 設備機箱篡改檢測功能和集成的 TLS 協議處理。MAXQ1061/MAXQ1062易于實現,對主機處理器存儲器占用空間要求小。
審核編輯:郭婷
-
傳感器
+關注
關注
2550文章
51035瀏覽量
753081 -
處理器
+關注
關注
68文章
19259瀏覽量
229653 -
芯片
+關注
關注
455文章
50714瀏覽量
423154
發布評論請先 登錄
相關推薦
評論