【AUTOSAR】-- SHE 内存槽更新



前言

由于项目特定的要求,SecOC的密钥需要基于SHE规范中密钥更新协议进行更新。因此特地对该部分内容进行研究与整理。

一、什么是SHE

SHE (Secure Hardware Extensions),安全硬件扩展,其主要目的是将对软件的攻击转移到对硬件的攻击上来,增加了黑客对系统攻击的复杂程度。
主要实现方式,是将SHE与主核分离开,SHE有自己独立的存储空间,主核可以对SHE下发加密、解密、存储的动作指令,但所有的密钥,私密信息对主核均不可见。从而避免了黑客从软件层面进行调试或注入恶意代码从而获取密钥等私密信息的可能性,想要得到密钥,必须得从硬件存储状态的角度进行破解,但想要从硬件得角度获取到密钥的信息这将是非常困难的,从而大大的提升了系统的安全性。
在这里插入图片描述

二、SHE内存槽更新流程

本文主要对SHE规范中密钥更新流程的讨论,其他部分以后有机会再做补充。
更新一个内存槽(密钥,证书存储在内存槽中)时,外部实体必须知道知道合法的真实的另一个密钥,Table4.5描述了,需要的更新密钥和需要知道的密钥之间的对应关系。该流程图中KEYAuthID是需要上位机知道的密钥,KID是需要被更新的密钥。
例如:更新下表中对应KEY_的位置的密钥时,因此外部实体应该知道现存的MASTER_ECU_KEY,以及需要更新的KEY_的密钥。
在这里插入图片描述
每一个不同的slot类型所包含的信息不同,具体参考Table 4.3。
在这里插入图片描述
SHE内存槽更新流程如下图
在这里插入图片描述
1. K1 = KDF(KAuthID, KEY_UPDATE_ENC_C)
如下截图中4.3.3.1所示KDF(KAuthID, KEY_UPDATE_ENC_C) = AES-MP ( KAuthID | KEY_UPDATE_ENC_C)。
- KAuthID是在更新KID时需要知道的Key;
- KEY_UPDATE_ENC_C是基于4.3.3.1中的方式构成的,具体的值已经在该规范4.12中给出为:0x01015348 45008000 00000000 000000B0
此时在基于4.3.3的压缩函数得到K1。压缩函数解释如下:
长度为L个bit的message的压缩,(L + 1 + k)mod 128 与 88 mod 128 同余,求k的非负最小值,参考示例4.13.2.4,message的长度L为256,那k算出来为87,即87个数值为0的二进制值,前面加上一个数值为1的二进制数值,在加上40个bit来表示message十进制的值,即二进制表示256为0000000100。
Xi作为明文,OUTi-1作为密钥进行AES-128 ECB模式下的循环加密运算。(ECB模式是没有初始向量的,OUTi-1是作为密钥参与计算,OUT0被称之为初始向量),
每一次计算的结果会和本次的OUTi-1和Xi进行异或运算,最后的OUT的值最为压缩的结果。
在这里插入图片描述
2. M1 = UID’| ID | AuthID
M1是UID, ID和AuthID合并后的值,其中UID全称Device/ECU Unique Identifier,每个ECU都是唯一的。
通常UID又由三部分组成,即Serial Number, ECU HW Part Number, Security Peripheral ID串联组成。
3. M2 = ENCCBC,K1,IV=0(CID’|FID’|'‘0…0’‘95|KID’)
该公式含义为:以K1为密钥,初始向量为0,用AES CBC模式对数据CID’|FID’|'‘0…0’‘95|KID’进行加密,其结果赋值给M2,这里的 ’ 我认为是新的参数的意思。
CID:用于防止重放攻击的counter,上文已做解释;
FID:用于使能与不使能所对应ID的key的更新,上文已做解释;
‘‘0…0’‘95:95个bit长度的0;
KID:是我们需要更新的目标key。
4. M3 = CMACK2(M1|M2)
该公式的含义是以K2为密钥,以AES算法的CBC模式,计算出M1和M2串联后的消息消息认证码。
5. CMD_LOAD_KEY
CMD_LOAD_KEY是SHE接口函数。用于在更新时传递M1,M2,M3。在读取时传出M4,M5的值。
在这里插入图片描述
6. Check write protection of KEYID
这里检查的是ECU内部的目标Key的写保护的Flog是否使能,如果使能返ERC_WRITE_ERROR,停止更新。
写保护的Flog未使能,将M1,M2,AuthID传递到SHE的storage。
7. Read (AuthID)
从第⑥步存储的位置读取AuthID所对应的KEYAuthID,并将其与M1,M2一并给到KDF压缩算法作为输入。
8 KDF(KEYAuthID,KEY_UPDATE_MAC_C)
基于从ECU内部读取的密钥KEYAuthID,以及从外部传递的M1,M2,再以KDF压缩算法算出的结果作为内部的K2。
具体KDF的实现参考①。
9. CMACK2(M1|M2)
拿到K2后,以M1|M2作为明文,得到内部的M3*。
10. Check(M3=M3*)
对比外部传过来的CMAC值M3和内部计算的M3*,其目的是为了判断M1(涵盖了UID等信息)和M2(涵盖了需要被更新的密钥)在传输的过程中有没有被篡改过。
如果不相等,停止更新,并返回ERC_KEY_UPDATE_ERROR。
11. Check(UID’=0)
检查输入的UID’是否为0(直接从输入的M1中提取)。
如果不为0,从storage相应的ID中读取UID。并进行对比,若不相等,返回ERC_KEY_UPDATE_ERROR;若相等读取AuthID所对应的KeyAuthID。
如果为0,需要对目标ID所对应的WILDCARD的标志位是否有使能。如果使能,说明通配符不被允许;如果没有使能,读取AuthID所对应的KeyAuthID。
12. KDF(KEYAuthID,KEY_UPDATE_ENC_C)
以KDF算法将KEYAuthID,KEY_UPDATE_ENC_C进行压缩,得到K1(这里的算出来的K1应该与外部用的K1是一致的,因为在KEYAuthID外部也是已知的,且与内部相同)。
13. DECCBC,K1,IV=0(M2)
以AES CBC的模式,算出的K1为密钥,初始向量为0,对外部给到的M2进行解密,得到外部给到的CID’,FID’,KID’,对比外部CID’与本地CID的大小,如果外部的常数没有大于本地的常数,说明该消息是重放的,应返回ERC_KEY_UPDATE_ERROR,如果是大于本地的常数,则将最新的常数、密钥、和标志位存储进相应的位置。

三、SHE内存槽更新后验证消息生成的流程

在这里插入图片描述
1. KDF(KEYID,KEY_UPDATE_ENC_C)
基于更新后的Slot位置的密钥和KEY_UPDATE_ENC_C常数,以KDF算法进行压缩,得到临时的密钥K3。
2. ENCECB,K3(CID)
以K3为密钥,基于ASE-128的ECB模式对从更新后的Slot位置密钥的counter参数进行加密,得到参数M4*。此时M4相当于更新后的Slot位置的密钥的摘要,涵盖了其信息。
3. M4 = (UID | ID | AuthID | M4)*
将UID、Slot的ID、已知密钥的ID、和参数M4
串联得到M4。然后将M4的数据放入响应报文里传递给上位机,此时M4相当于涵盖了UID、被更新的密钥的ID、已知密钥的ID、被更新的密钥的摘要信息,这些信息将在上位机中解析出来,并进行验证被刷写的Key的各项信息是否正确。
4. KDF(KEYID,KEY_UPDATE_MAC_C)
基于更新后的Slot位置的密钥和KEY_UPDATE_MAC_C常数,以KDF算法进行压缩,得到临时的密钥K4。
5. CMACK4(M4)
以K3为密钥,基于ASE-128的CBC模式对进行处理,生成消息认证码M5,同样将M5的数据放入响应报文里传递给上位机。因为CMAC的目的是为了保证数据的完整性,因此这里就是为了保证M4在整个传递过程中没有被第三方篡改过。

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
autosar-eth是指AUTOSAR协会下的以太网标准。AUTOSAR是汽车电子系统开发领域的一个全球化合作网络,旨在实现汽车电子系统的规范化和标准化。而autosar-eth则是AUTOSAR协会为汽车电子系统中的以太网通信提供的一个标准化方案。 autosar-eth主要涉及汽车电子系统中的以太网通信协议、硬件接口和软件架构。通过使用autosar-eth,不同供应商提供的汽车电子元件可以在同一汽车电子系统中进行无缝集成和交互。这个方案的目标是提供高效的以太网通信能力,以满足现代汽车电子系统对高带宽数据传输和实时通信的需求。 autosar-eth的主要特点包括: 1. 实时性能:autosar-eth提供了一种实时性能良好的以太网通信方案,可以满足汽车电子系统中实时数据传输的要求。 2. 可扩展性:autosar-eth支持复杂的网络拓扑结构和多种通信协议,能够适应不同规模和复杂程度的汽车电子系统。 3. 安全性:autosar-eth内置了安全机制,可以保护汽车电子系统中的数据传输和通信安全,防止恶意攻击和未授权访问。 4. 标准化:autosar-eth遵循AUTOSAR协会的标准,能够实现不同供应商之间的互操作性,促进汽车电子系统的标准化和可替代性。 总而言之,autosar-eth为汽车电子系统中的以太网通信提供了一种标准化、实时性好、安全可靠的解决方案,为汽车电子系统的开发、集成和维护提供了便利。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值