ZHCAEP3 November 2024 F29H850TU , F29H859TU-Q1
除了加密和解密外,安全系統(tǒng)還必須能夠確認器件上存儲的代碼和數據資產的完整性。哈希算法支持這一目標,將任意長度的代碼或數據塊簡化為獨特的固定長度摘要。如果不使用密鑰,加密哈希函數始終會為同一輸入生成相同的輸出摘要,并具有幾個可確保其安全的重要屬性:
通過計算要引導的身份驗證證書或存儲代碼上的哈希摘要,并將其與已知參考進行比較,系統(tǒng)可以確認代碼或數據自創(chuàng)建以來未被修改。安全哈希算法 (SHA) 和消息摘要 5 (MD5) 是常用哈希函數的示例。不建議使用 SHA-1 和 MD5 算法,因為已針對這些函數證明了成功的沖突攻擊??梢愿挠?SHA-2 和 SHA-3 算法來提供強大的哈希函數。哈希摘要的長度與函數的加密強度有關。所有內容都相等,較長的摘要更安全,但代價是計算時間增加。
非對稱算法可用于使用私鑰從消息創(chuàng)建數字簽名。數字簽名可用于確認已簽名消息的完整性和真實性。但是,非對稱算法比哈希函數慢得多。因此,通過解決大量數據的計算時間問題,哈希算法與非對稱算法結合使用時效果很好。首先可以計算塊的安全散列,而不是對整個塊簽名。然后使用發(fā)送方的私鑰對生成的輸出哈希摘要進行簽名。接收方使用發(fā)送方的公鑰反轉此過程,計算接收到的數據塊的哈希值,并根據原始哈希值對其進行身份驗證。此過程可確定數據的完整性和真實性,同時節(jié)省計算時間,通常稱為數字簽名。這些項目通常與其他重要元數據一起存儲在數字證書中,使用業(yè)界通用格式(如 X.509)。此過程對于出廠配置和固件更新至關重要,后續(xù)章節(jié)將對此進行討論。
加密身份驗證方案還可用于應用本身,以實現運行時安全,驗證在器件之間傳輸的數據的完整性和真實性。使用密鑰、消息身份驗證代碼或 MAC 通過加密算法進行計算,然后附加到發(fā)送給接收器的消息中。然后,接收方可以使用相同的密鑰和算法根據接收的消息計算 MAC,并將其與發(fā)送方發(fā)送的消息進行比較。如果兩個代碼匹配,則驗證消息為真實且未更改。
兩種最常用的加密身份驗證方案是 CMAC 和 HMAC。CMAC 表示基于密碼的消息身份驗證代碼,基于對稱算法(如 AES)。HMAC 表示帶密鑰的哈希消息驗證碼,使用 SHA-256 等哈希函數。在為電子控制單元(即 ECU)之間傳輸的數據采用 AUTOSAR 安全車載通信 (SecOC) 架構的現代汽車系統(tǒng)中,可以找到加密消息身份驗證的示例。SecOC 使用 CMAC 對通過車輛網絡(如 CAN、FlexRay 或以太網)傳輸的網絡消息提供端到端保護。在 SecOC 架構中,每個消息幀都包含一個安全標頭和標尾,其中包含 MAC 和其他安全元數據。每個 ECU 都可以使用 MAC 來驗證接收到的每個消息,共享密鑰可以由中央主機管理和定期分發(fā)以保持新鮮度。此類方案可用于防范汽車竊賊經常使用的 CAN 注入等攻擊方法。