CCC3.0学习笔记_标准交易

下面对车辆与手机进行标准交易的整个过程的详细解释:

执行此标准交易的前提条件是车辆已经从车厂服务器获取到公私密钥对(Vehicle.PK&Vehicle.SK)同时手机端也具有自身终端的公私密钥对(Endpoint.PK&Endpoint.SK),同时在手机与车辆配对的时候已经交换了公钥(注意只互换公钥而私钥则是单独保存),其次SE里面已加载Applet小程序,有了以上前提条件就可以结合上述步骤来理解标准交易的流程了。

Step:1-1 是车辆通过发送AUTH0 Command来发起标准交易请求 AUTH Command(applet_ver, vehicle_epk, transaction_identifier, vehicle_identifier) 发起这条命令车辆需要发送SELECT命令获取手机端的applet协议版本列表,同时车辆端需要产生临时公私密钥对,交易标识符是发起标准交易请求时随机产生的,车辆标识符则是车辆的唯一编号,车辆端准备好这些参数数据后通过AUTH0命令发送至手机端。

Step:2-1 是手机端也产生自身的临时公私密钥对,在AUTH0命令反馈时给到车辆端,相当于车辆与手机完成了信息的交换。

Step:1-2 是车辆发送的AUTH1 Command命令,此命令主要携带的参数是车辆的签名,主要使用车辆私钥(此处非前面所生成的临时私钥)对如下内容进行签名并发送至手机端:(vehicle_identifier | endpoint_ePK.x | vehicle_ePK.x | usage = 415D9569h )

Step:2-2 手机端接收到车辆签名Veh.sig时进行验签

Step:2-3 如果手机对车辆的验签通过则手机端也会用自身的永久私钥对如下内容进行签名得到终端签名endpoint.sig(vehicle_identifier | endpoint_ePK.x | vehicle_ePK.x | usage = 4E887B4Ch )并反馈至车辆端。

Step:1-3 车辆接收到手机的签名也进行验签操作,如果验签成功则车辆与手机完成双向认证过程

Step:1-4 && Step:2-4 ECDH算法可以在不事先存储密钥的情况下协商出一个共享密钥也就是对称密钥(Symmetric Key), DHKEY = [Vehicle.eSK * Endpoint.ePK | Transaction_identifier] = [Endpoint.eSK * Vehicle.ePK | Transaction_identifier] 通过这种方式,车辆和手机端在不经过密钥传输的情况下协商出一个对称密钥Kdh。

Step:1-5 && Step:2-5  车辆和手机端可以利用对称密钥Kdh离散出建立安全通道所需要的密钥Kenc/Kmac/Krmac, 离散时需要的信息 info <- cod.vehicle_ePK.x || cod.endpoint_ePK.x || code.transaction_identifier || interface_byte || code.flag || "Volatile" || 5Ch||02h||code.current_protocol_version, 就是将 Kdh 与 info信息输入到SHA-256加密算法,派生出来的48bytes的密钥就可以分解成三个16字节的安全通道密钥。

Step:1-6 && Step:2-6 类似于上一步步骤,此步骤车辆和手机端也是生成一个32字节的对称密钥Kpersistent, 离散时需要的信息 info <- cod.vehicle_ePK.x || cod.endpoint_ePK.x || code.transaction_identifier || interface_byte || code.flag || "Persistent" || 5Ch||02h||code.current_protocol_version, 就是将 Kdh 与 info信息输入到SHA-256加密算法,派生出来的32bytes的密钥就作为Kpersistent, Kpersistent是一个长期的对称密钥用于派生加密密钥和会话密钥,它存储在车辆和手机端的NVM中。Kpersisent在接下的安全通讯不会使用,它被存储起来,用于快速交易,所以必须经过标准交易后,才有可能进行快速交易。

生成了安全通道密钥和长期密钥Kpersistent之后,交易双方可以基于已经建立的安全通道,继续相关的应用操作,比如mailbox读写,然后结束当前交易。同时因为交易双方生成和保存了Kpersisent,所以下一次交易的时候交易双方可以采用快速交易的方式来建立安全通道,也就是在进行一次标准交易之后,后面可以利用Kpersistent进行快速的身份验证,这个有点类似于蓝牙配对之后生成的LTK有点类似。

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 7
    评论
回答: CCC 3.0 BLE是指"Core Bluetooth Communication Channel"的第三个版本。它是一种用于蓝牙低功耗(BLE)设备之间通信的标准。在CCC 3.0中,有关OOB(Out-of-Band)部分的要求包括首次连接请求消息(FA-RQ)和加密链路下的密钥分发。在第三阶段中,主机通过链路层使用LL_ENC_REQ发起加密请求,并将用于计算会话密钥SK的参数发送给从机。从机通过LL_ENC_RSP加密应答将与计算SK相关的参数发送给主机,然后通过LL_START_ENC进行三次加密握手。CCC 3.0 BLE的数字密钥技术规范第三版定义了一个数字密钥生态系统,它使用标准化的数字密钥小程序Applet和标准化的车辆访问协议来支持车辆和设备之间的广泛部署数字密钥服务。此规范还支持使用蓝牙低功耗(BLE)或NFC等无线电技术实现数字密钥服务。123 #### 引用[.reference_title] - *1* *2* [CCC3.0 蓝牙OOB配对](https://blog.csdn.net/xingqingly/article/details/125530729)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] - *3* [CCC3.0学习笔记_数字钥匙系统架构](https://blog.csdn.net/u010674359/article/details/125546541)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT0_1"}} ] [.reference_item] [ .reference_list ]
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的蜗牛哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值