S32K3 HSE應用於汽車電子產品提升加密功能與資料保護

1.概述:

HSE(硬體安全引擎)是 NXP 為 S32K3 系列 MCU 開發的專用加密處理器,內嵌了一顆 Arm Cortex-M0 核心,用於執行高效能的加密功能。與傳統的軟體加密相比,HSE 提供了更高的安全性,並能透過硬體加速加密運算。HSE 作為加密協處理器,與主晶片透過共享記憶體和訊息單元(MU)進行溝通。其加密功能在 NXP 出廠時已經燒錄,並由原廠負責程式撰寫,確保功能的安全性。HSE 也支援應用程式的安全啟動(Secure Boot),在系統啟動時執行安全校驗,保障整個系統的安全性。這使得 HSE 成為汽車應用中強化資料保護和加密的理想方案。

2.  HSE功能:

HSE(硬體安全引擎)支援多種加密和資料保護功能,具體包括:
1. ES(高級加密標準):支援 128、192 和 256 位元的密鑰大小。
2. ECB(電子碼本模式):最基本的加密模式。
3. CBC(密碼塊連結模式):加密模式中使用前一密碼塊的加密結果作為下一個密碼塊的輸入。
4. CTR(計數器模式):基於計數器的加密模式,適合快速加密。
5. OFB(輸出反饋模式):將輸出的加密結果反饋回來作為下一個輸入。
6. CFB(密碼反饋模式):類似於OFB,但加密過程中每次使用部分密文作為下一次加密的輸入。
7. CCM(計數器模式與 CBC MAC 結合):提供加密和資料完整性驗證。
8. CMAC(基於密碼的訊息驗證碼):使用對稱密鑰進行資料完整性驗證。
9. 雜湊算法:支援 MD5、SHA-1、SHA-224 和 SHA-256 等雜湊演算法,提供訊息摘要和驗證功能。
10. PKC(公鑰加密引擎):支援 RSA 和 ECC 等公鑰加密演算法,用於密鑰生成、數字簽名和驗證。
這些功能能夠提供強大的加密運算與資料保護,適用於多種需要高安全性要求的應用領域。

3. RNG 功能說明

 HSE(硬體安全引擎)內建 RNG(隨機數產生器),由兩種組件構成,提供高度安全的隨機數生成,符合多項國際安全標準。
          1. TRNG(True Random Number Generator,真隨機數生成器):基於硬體的隨機數產生方式,依賴物理現象生成不可預測的隨機數,用於高安全性需求的應用。

          2. DRBG(Deterministic Random Bit Generator,決定性隨機位元生成器):使用算法產生偽隨機數,適合在某些重複使用或延續性需求的安全場景。

  HSE 的 RNG 功能符合以下國際安全規範,確保隨機數的安全性與可靠性:
           1. BSI AIS20/31
           2. NIST SP800-90a,b,c
4. HSE Status說明

HSE的狀態標誌可以用來判斷目前系統的安全運行狀況和加密操作的成功與否。以下是各狀態的具體說明:
HSE_SHE_STATUS_SECURE_BOOT :
This bit is set when the SHE based secure boot process has been started by HSE firmware.
HSE_SHE_STATUS_SECURE_BOOT_INIT :
BOOT_MAC slot was empty and SHE based secure boot is performed the first time.
HSE_SHE_STATUS_SECURE_BOOT_FINISHED :
SHE Boot: HSE FW has completed the secure boot process and secure boot process was NOT successful.
HSE_SHE_STATUS_SECURE_BOOT_OK :
SHE Boot: HSE FW has completed the secure boot process and secure boot process was successful.
HSE_STATUS_RNG_INIT_OK :
HSE FW has successfully initialized the RNG.
HSE_STATUS_HOST_DEBUGGER_ACTIVE :
Debugger on HOST side is active as well as enabled.
HSE_STATUS_HSE_DEBUGGER_ACTIVE :
Debugger on HSE side is active as well as enabled.
HSE_STATUS_INIT_OK :
HSE initialization has been successfully completed (HSE service requests can be sent over Mus)


HSE_STATUS_INSTALL_OK :
This flag signals the application that needs to format the key catalogs (NVM and RAM).
HSE_STATUS_BOOT_OK :
HSE booting phase has been successfully completed.
HSE_STATUS_CUST_SUPER_USER :
CUST SuperUser rights are granted.
HSE_STATUS_OEM_SUPER_USER :
OEM SuperUser rights are granted.
HSE_STATUS_PUBLISH_SYS_IMAGE :
This flag signals the application to publish the SYS-IMAGE.
HSE_STATUS_PRIMARY_SYS_IMAGE :
Signals the application whether HSE FW has loaded or not the SYS-IMAGE from primary address.
HSE_STATUS_BACKUP_SYS_IMAGE :
This flag signals the application whether HSE FW has loaded or not the SYS-IMAGE from backup address.

5. HSE Interface:

HSE 與主核心之間的溝通藉由共用記憶體來操作,操作在 Secure RAM 和 NVM。 同時,也控制主核心安全相關的記憶體控制暫存器。Interface靠著 MU 單元來進行控制。MU 單元切成兩塊,分別為 MUA 和 MUB。 其中,MUA 僅能由 HSE 進行訪問,MUB 則由主機端(host)來訪問。中間透過 RX/TX 和狀態與控制暫存器(Status & Control Registers)來相互溝通。

6. Host Debug:

在使用 JTAG 介面進行 Host Debug 時,為了確保系統安全性,JTAG 調試可以進行加密處理。加密後的驗證需通過 HSE(硬體安全引擎) 來進行,進一步提升安全性。以下是具體流程:

  1. Key 的儲存

    調試過程中,密鑰(Key)的儲存方式與 MPC57xx 和 S32K1 系列相同,使用 UTEST 存儲區域。
  2. HSE 驗證

    儘管密鑰儲存方式保持一致,不同的是,密鑰的安全性驗證是通過 HSE 進行的。HSE 將對密鑰進行加密驗證,確保只有經過授權的調試操作能夠進行。
  3. 安全性提升

    由於 HSE 參與了密鑰的驗證過程,與傳統調試方式相比,安全等級得到了顯著提升。這樣可以有效防止未經授權的訪問或攻擊,保障系統的完整性與安全性。

此機制允許在進行 JTAG 調試時提供額外的安全保護,並確保敏感數據不會在調試過程中被洩露。

7. 設計參考資料:

S32K3 Microcontrollers for Automotive General Purpose

https://www.nxp.com/products/processors-and-microcontrollers/s32-automotive-platform/s32k-auto-general-purpose-mcus/s32k3-microcontrollers-for-automotive-general-purpose:S32K3

★博文內容均由個人提供,與平台無關,如有違法或侵權,請與網站管理員聯繫。

★文明上網,請理性發言。內容一周內被舉報5次,發文人進小黑屋喔~

評論