CCC3.0 SPAKE2+ SCP03

SPAKE2

手机端和车辆端在使用SPAKE2+存在的操作

  • 双端password、salt根据计算z0、z1。

  • 双端根据z0、z1计算w0、w1

  • 车辆端根据w1计算L

  • 手机端根据w0计算x,之后在verify命令中会把x传给车辆

  • 车辆端根据w0计算y,之后在verify命令中会把y传给手机

  • 手机端根据车辆发来的Y,协商出对称密钥Z和V

  • 车辆端根据手机发来的X,协商出对称密钥Z和V

  • 双端利用X、Y、Z、V、w0哈希得到32字节密钥K。CK为左16字节、SK为右16字节

  • 双端利用CK,applet版本、spake2版本生成校验key K1、K2

  • 双端利用K1、X、K2、Y计算校验值M1、M2。

11、双端利用SK离散得到SCP03通道所需的密钥Kenc、Kmac、Krma和长期永久保存在车辆和手机端的LONG_TERM_SHARED_SECRET。

一旦双向认证成功,安全通道建立,基于此安全通道,车辆端即可以开始向手机端写入密钥证书。个人认为以上算法的应用有以下两个优点:首先,后台服务器仅向车辆传递L和w0,并不直接传递w1; 其次,车辆端和手机端都分别生成随机数,仅用于此次安全通道,即使后续password泄露,这个通讯过程仍然不能被解密得出,即前向安全。

spake2+流

  • 发送数据给device使得能够计算
  • 发送X给Vehicle使得能够计算对称密钥
  • 发送M【1】和Y使得device能够计算对称密钥和校验(对比自己计算的M【1】)
  • 发送M【2】使得Vehicle能够校验(对比自己计算出来的M【2】)

SCP03

SPAKE2获得了密钥后,就来到了SCP03。SCP03是一个安全通道,能够实现数据的安全通信。

Spake2+算法之后,通常可以得到Kenc、Kmac、Krmac。

posted @ 2022-08-30 23:08  Miraculous_B  阅读(1754)  评论(0编辑  收藏  举报