Bootstrap

密码学在汽车网络安全中的应用

1.hash算法

hash算法的特点:

  • 哈希算法又叫指纹算法,也叫摘要算法。
  • 任意长度的输入,固定长度的输出。如SHA256算法,不管输入是几兆数据还是几GB数据,输出总是256bit,即32字节。经过MD5计算,输出的固定长度128bit,经过SHA-1计算输出的固定长度为160bit。
  • 通过哈希值无法反推出明文,但是由明文很容易计算出哈希值,即单向性。
  • 几乎不可能找到两个不同的明文,而计算出来的哈希值一样,即抗碰撞特性。
  • SM3是中国的哈希算法,是国密算法的一种。MD5,SHA-1,SHA256,SHA512是国际算法,MD5和SHA-1不在被认为是安全的,中国的密码学专家王小云院士,让这两个算法的抗碰撞特性不在牢固。

通信场景:

  • 哈希算法保证的数据的完整性

  • A发送明文到B,会将明文+明文的哈希值一起发送给B, B收到后,会对明文计算哈希值,并与收到的哈希值做比较,如果一致,说明数据在传输过程中没有丢帧,接收的数据是完整的,如果不一致,说明数据在传输中发生了错误,可能是丢帧,篡改等。

  • 哈希算法只能解决数据传输过程的完整性,但是并不能判断数据以及数据来源的真实性,如果黑客C在中间窃听,并将另外的明文+哈希值发送给B,B并不能判断数据来自黑客c。

汽车应用场景:

  • 在使用低阶芯片的控制器中,比如车身类控制器,在刷新时使用哈希算法来验证诊断仪和控制器之间升级包传输的完整性。前提是已经对诊断仪进行了身份校验
  • 在使用中高阶芯片的控制器中,哈希算法通常和非对称算法结合做数字签名。
  • 哈希算法还经常被用来衍生密钥。

2.对称算法

加密:                               

                                              

解密: 

对称算法的特点:

  • 所谓“对称”,是指加密和解密使用相同的密钥。
  • AES128/AES256是国际算法,SM1/4/9是中国的对称加密算法,国密中的一种。

通信场景:

  • A,B提前存储或者协商对称密钥,A将密文发送给B, B接收到密文,使用对称密钥解密,就可得到明文。
  • 加密保护了信息的机密性,即使被黑客在中间窃听,也无法获知明文是什么。
  • 对称加密不解决不可否认性,由于A和B都有对称密钥,当有人拿着对称密钥干坏事时,无法判断时谁干的。
  • 在非对称算法发明之前,如何安全的分配对称密钥,不被第三者获取,是一个难题。
  • 对同样大小的数据加密,对称算法比非对称算法要快很多。

汽车应用场景:

  • 汽车里的敏感数据,个人隐私存储会有加密的需求。
  • 自动驾驶采集的数据有加密存储和传输的需求。
  • OTA升级包可能会有加密的需求。
  • 安全日志存储可能会有加密的需求
  • 车云通信传输的数据通常使用TLS对数据加密。

3.非对称算法

加密:

解密:

对称算法特点:

  • 计算速度比对称加密慢很多,通常不直接使用非对称算法对大数据加密。
  • 私钥加密,公钥解密,或者私钥解密,公钥加密
  • SM2/9是中国的非对称算法,ECC/RSA2048/4096是国际公认的非对称算法
  • 不存在密钥分发的问题,并且提供不可否认性,私钥所有者需保存好私钥,公钥可以公开,凡是使用私钥加密的一方绝对不能否认,因为只有他自己拥有私钥。

通信场景:

  • A使用自己的私钥将数据加密发给B和C, 因为只有A又能力使用自己的私钥,这就解决了A不可否认性的问题。因为公钥是公开的,理论上并没有解决机密性的问题,理论上任何人都可以拿到公钥。
  • 但是如果项解决机密性的问题该怎么办呢,如果A发送给B的信息需要机密性保护,那么A可以使用B的公钥进行加密,然后将加密的数据发送给B,因为只有B有私钥,所以其他人即使拿到密文,也无法解密。

汽车应用场景:

  • 汽车中通常不单独使用非对称加密,通常与哈希算法结合起来做数字签名。
  • UDS27诊断服务可以单独使用此算法,后续更新详细原理。

4.数字签名

签名:

校验签名:

数字签名特点:

  • 提供身份验证和不可否认性,但不提供机密性。
  • 结合使用了哈希算法和非对称加密算法。哈希算法的优点弥补了非对称加密算法的缺点。不知道读者是否可以get到这一点,欢迎评论区留言
  • 常被应用于证书中。

通信场景:

  • A提前将自己的公钥发送给B。
  • A使用自己的私钥对明文签名,然后将签名和明文一起发送给B。
  • B使用A的公钥解密签名得到哈希值1,然后对明文计算哈希值2,如果两个哈希值相同,则签名校验成功,明文内容确实是A发送来的,而不是黑客C发送来的。

汽车用场景:

  • 软件升级包中通常使用数字签名证明升级包真实性和完整性。
  • 证书PKI体系就是利用了数字签名证明身份的真实性和完整性。
  • 与云平台通信时(OTA/远程控制/数据上传等),TLS使用证书证明通信方身份的真实性。
  • 与诊断仪的身份认证可以借助数字签名技术。
  • 基于TLS的DOIPH和SOME/IP协议。
  • 自动驾驶中对传感器的身份验证。
  • UDS的29诊断服务
  • 车机上应用商店下载的app需要数字签名和被校验。
  • 安全启动(andorid的AVB2.0和QNX的QTD)

5.消息校验码(MAC)

发送方:

接收方:

 MAC算法特点:

  • 任意长度的输入,固定长度的输出,与哈希算法的区别是,MAC算法使用了密钥
  • 由于采用了对称密钥,通信双方仍然会存在密钥分发的问题。
  • MAC算法解决了消息的真实性问题,没有解决机密性和不可否认行。

通信场景:

  • AB通信,A将明文和MAC校验值一起发送给B。
  • B使用密钥和接收到的明文在计算一次MAC,将接收到的MAC和收到的MAC比较,若一致,说明消息来源是真实的,且在传输过程未被篡改。

汽车行业的应用场景:

  • SecOC: 汽车内各个零部件进行通信,为了保证消息的真实性,经常使用基于MAC原理实现的SecOC,
  • 安全启动:有些中阶芯片的控制器中,对安全启动时间要求较高,越快越好,会采用基于MAC校验的算法,这会比基于数字签名的安全启动时间快很多。
;