硬體安全模塊(Hardware Security Module,縮寫HSM)是一種用於保護和管理強認證系統所使用的密鑰,並同時提供相關密碼學操作的計算機硬體設備。
典型的加解密計算時間超過信號處理函數計算時間的數量級,實時性能和加密方法開銷的要求相互衝突,僅僅通過軟體無法解決。故汽車電子網絡安全的實現需要軟體和硬體的共同支持, 因此奧迪和寶馬等廠商合作制定了SHE (Secure Hardware Extension,安全硬體擴展)針對於硬體模塊的安全規範,主要內容為密碼模塊的通用軟硬體接口。
硬體密碼模塊是以基於硬體的安全機制為目標, EVITA(E-safety Vehicle Intrusion Protected Applications)在SHE規範的基礎上提出了HSM (Hardware Security Module,硬體安全模塊) 硬體安全規範, 針對不同的安全硬體能力,分為Full HSM, Medium HSM和Light HSM。這個分類也被廣泛應用於汽車網絡信息安全領域,其關鍵信息總結如下表。Full和Medium的主要差別在於是否硬體支持非對稱加密的加速。而Medium和Light主要差別在於是否有獨立的計算存儲資源以及是否具有隨機數生成器
面向汽車硬體安全模塊的基本通用結構如圖所示,圖中 ECU 的應用 CPU 附帶擁有一個密碼協處理器HSM作為信任根, HSM承擔的功能作用主要是對所有密碼應用的執行操作,其中包括基於對稱密鑰和非對稱密鑰的加密解密運算、完整性校驗、消息認證碼的生成與校驗、數字簽名的生成與驗證,以及基礎的真隨機數生成功能。
HSM能夠訪問主機的所有硬體,在運行時實現系統的安全、認證啟動或主機監測。專用數據快閃記憶體可以用來存儲密鑰, 主機系統無法隨意訪問。這代表著主機可以請求 HSM 執行加密操作,而密鑰無需離開 HSM。由於 HSM 通常是公鑰基礎設施(PKI)或網上銀行一類關鍵基礎設施的一部分,一般會同時使用多個HSM以實現高可用性。
在汽車電子領域談軟體或者固件,就不得不提AUTOSAR。AUTOSAR包含密碼基本軟體的規範-在後來的版本中對適當的規範進行了修訂和微調。在這種情況下,所謂的加密服務管理器(Crypto Service Manager, CSM)為應用程式提供加密服務:
- CSM是其他軟體模塊調用加解密模塊的第一接口。應用層SWC通過RTE訪問CSM,而其他底層軟體(BSW)或者複雜驅動(CDD)則可以直接調用CSM。同時CSM也負責安全相關任務的隊列管理,即優先級管理(Job Processor: key management job/crypto job/boot&download job etc)。
- CryIf是CSM往下調用的接口模塊,每一個CryIf中的加密基元都會與CSM中的一個服務相對應。而且CryIf支持分發相關任務,進一步調用不同的驅動(軟體和硬體,對稱和非對稱等)。
- Crypto Driver是驅動模塊,訪問相關部件,實現加解密操作,例如訪問加解密加速器或者隨機數生成器等。
Host和HSM通過共享內存來傳輸CryptoJob等數據,host通過中斷來請求hsm處理job,hsm也可以通過中斷來響應host。以Vector HSM為例,HSM與Host通過IPC(Inter-Process Communication)進行通信,在接受到Host端的Job請求後,HSM固件根據Job類型進行相應的處理,能夠支持密鑰以及重要數據的安全存儲、硬體加速算法以及軟體實現的算法以及安全啟動等功能。
Secure Boot實例時序圖: