ZHCAEP3 November 2024 F29H850TU , F29H859TU-Q1
除了加密和解密外,安全系统还必须能够确认器件上存储的代码和数据资产的完整性。哈希算法支持这一目标,将任意长度的代码或数据块简化为独特的固定长度摘要。如果不使用密钥,加密哈希函数始终会为同一输入生成相同的输出摘要,并具有几个可确保其安全的重要属性:
通过计算要引导的身份验证证书或存储代码上的哈希摘要,并将其与已知参考进行比较,系统可以确认代码或数据自创建以来未被修改。安全哈希算法 (SHA) 和消息摘要 5 (MD5) 是常用哈希函数的示例。不建议使用 SHA-1 和 MD5 算法,因为已针对这些函数证明了成功的冲突攻击。可以改用 SHA-2 和 SHA-3 算法来提供强大的哈希函数。哈希摘要的长度与函数的加密强度有关。所有内容都相等,较长的摘要更安全,但代价是计算时间增加。
非对称算法可用于使用私钥从消息创建数字签名。数字签名可用于确认已签名消息的完整性和真实性。但是,非对称算法比哈希函数慢得多。因此,通过解决大量数据的计算时间问题,哈希算法与非对称算法结合使用时效果很好。首先可以计算块的安全散列,而不是对整个块签名。然后使用发送方的私钥对生成的输出哈希摘要进行签名。接收方使用发送方的公钥反转此过程,计算接收到的数据块的哈希值,并根据原始哈希值对其进行身份验证。此过程可确定数据的完整性和真实性,同时节省计算时间,通常称为数字签名。这些项目通常与其他重要元数据一起存储在数字证书中,使用业界通用格式(如 X.509)。此过程对于出厂配置和固件更新至关重要,后续章节将对此进行讨论。
加密身份验证方案还可用于应用本身,以实现运行时安全,验证在器件之间传输的数据的完整性和真实性。使用密钥、消息身份验证代码或 MAC 通过加密算法进行计算,然后附加到发送给接收器的消息中。然后,接收方可以使用相同的密钥和算法根据接收的消息计算 MAC,并将其与发送方发送的消息进行比较。如果两个代码匹配,则验证消息为真实且未更改。
两种最常用的加密身份验证方案是 CMAC 和 HMAC。CMAC 表示基于密码的消息身份验证代码,基于对称算法(如 AES)。HMAC 表示带密钥的哈希消息验证码,使用 SHA-256 等哈希函数。在为电子控制单元(即 ECU)之间传输的数据采用 AUTOSAR 安全车载通信 (SecOC) 架构的现代汽车系统中,可以找到加密消息身份验证的示例。SecOC 使用 CMAC 对通过车辆网络(如 CAN、FlexRay 或以太网)传输的网络消息提供端到端保护。在 SecOC 架构中,每个消息帧都包含一个安全标头和标尾,其中包含 MAC 和其他安全元数据。每个 ECU 都可以使用 MAC 来验证接收到的每个消息,共享密钥可以由中央主机管理和定期分发以保持新鲜度。此类方案可用于防范汽车窃贼经常使用的 CAN 注入等攻击方法。