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是一个安全通道,能够实现数据的安全通信。
标签:SCP03,双端,SPAKE2,CCC3.0,密钥,车辆,w0 From: https://www.cnblogs.com/MiraculousB/p/16640377.html