点击上方蓝字谈思实验室
获取更多汽车网络安全资讯
01
前言
本文主要以车端BLE的视角来浅谈CCC数字钥匙协议规范,也是为了方便大家能够好的理解CCC协议。本文对于有一定BLE基础的相对友好。文中可能会涉及一些蓝牙规范的知识,如有不懂,可以详细查阅对应的蓝牙官方文档。
对于BLE而言,CCC协议中只划分了Phase0、1、2、3、4这几个阶段,而本文将整个流程划分为以下几个部分。分别为Phase0/1、蓝牙连接、Phase2、OOB配对、UWB测距、Phase3、Phase4。整体流程如下图。
02
Phase0
准备阶段,该阶段中手机端、车端、车端服务器需要准备各自的东西。
03
Phase1
启动阶段,手机采用以下方式来接受密码,从而启动OP流程。
1、通过用户输入。
2、通过URL来跳转钱包(详见6.3.7)。
3、车辆OEM开发的app进行跳转。
04
蓝牙连接
首先在CCC协议中,广播分为OP和PE。且两个广播都是RPA地址。
在PE阶段,车辆广播应基于LE 1M PHY。对应广播周期应为42.5ms。对于这个广播,ADV_IND应包含AdvA,但不包含广播数据(AdvData)。
在进行OP流程的时候,开启OP广播便于手机端扫描并发起连接。op广播格式如下图。
对于车端而言,除了配置该广播格式外,还需要配置相应的服务。服务格式如下图。
配置该服务的目的在于之后通过L2CAP层进行数据交互的时候确定L2CAP层的SPSM。
整个蓝牙连接分为两个部分,第一部分如下图所示。其中车端开启OP广播,手机端经过phase0、1之后进入OP流程。此时手机扫描到广播中CCC_DK_UUID,从而和车端建立LL层连接。
第二部分流程如下,手机端检测车端广播服务以及SPSM特征值。从而获取到具体数值(在实际测试中,我使用的SPSM为0x0083)。然后手机端会发起L2CAP Connect Request。其中该数据包中SPSM为之前服务中读到的SPSM特征值。
如图为实际测试过程中Sniffer抓到的空口数据。
在该数据格式中,其中LE Protocol/Service Multiplexer则是之前所设置的SPSM。该值在《BLUETOOTH SPECIFICATION Version 5.0》中表示,该参数被划分为两个区间,如图所示,
第一个区间是蓝牙SIG规定,范围在0~0x007F(如下图,其中高亮的为BLE使用CID)。第二个区间为动态变化,专门结合服务进行设计,从而完成相应的协议。这也是之前配置广播服务特征时选择SPSM为0x0083的原因(大家可以试一下其他的数值)。
目前为止,对于BLE而言,建立了LL层连接以及L2CAP层连接。接下来的阶段的数据交互都是基于L2CAP层。通过选取的0x0083通道进行交互。更多关于L2CAP层的蓝牙知识在之后的文章中会详细介绍。对于CCC协议而言,目前的储备以及足够。
在蓝牙连接流程结束后,手机会发送Request_owner_pairing命令。空口数据如下。
05
Phase2
当手机发送完Request_owner_pairing命令后,进入到Phase2阶段。该阶段分为两次Transaction。主要是和Digital Key Framework(The DK framework AID :A000000809434343444B467631h)进行数据交互,包括手机端开卡所需的车端的一些数据等。具体流程如下。
由于CCC协议中对于BLE并未由详细的流程图,因此使用NFC进行Phase2阶段的流程图进行介绍。 在图中,NFC会经历场重置的操作,重置后需要重新选择AID。而对于BLE而言,并不需要重置,也就无需再次选择AID。
如图为Phase2阶段的空口数据。
06
OOB配对
在官方蓝牙规范中的OOB中,一般指的是采用带外的方式(非BLE,如NFC)来交互配对的信息。而在CCC协议中规定,通过之前所建立的L2CAP层的数据通道进行配对信息交互。在CCC协议中开始OOB配对之前,需要进行OOB准备工作,将双方需要的配对参数进行交互来为后续OOB配对进行铺垫。具体OOB准备流程如下图。
其中,主要交互参数如下:
BTAddrA/BTAddrB:主/从设备的地址
ra/rb:主/从设备的随机数
Ca/Cb:主/从设备分别通过Pka、ra和Pkb、rb计算出来的加密数。
以上信息通过First_Approach_RQ/First_Approach_RS事件进行交互。
在准备工作完成后,可以开始正常配对流程。具体流程如下。
该部分就是一般BLE配对流程差不多,只有小细节不同。
07
UWB测距
Phase2阶段结束后,接下来要进行UWB测距。此阶段的流程图如下。
如图,第一步需要进行一次标准交易流程。标准交易流程结束后需要生成URSK,URSK的伪代码如下。
在生成URSK时,同时会有一个 transaction_identifier的数据。
生成URSK后,想要测起距还需要进行参数交互,主要分为三个步骤。
6.1Capability Exchange(测距能力交换)
具体流程如下。
如图为能力交互所交互的数据格式。
6.2Ranging Session(测距会话)
具体流程如下。
如图为测距会话所交互的数据格式。
6.3Ranging_Session_Setup(测距会话设置)
具体流程如下。
Tips:红色框中的参数都是实际UWB测距中需要的参数。当UWB定位到车内后,便可开启下一阶段。
08
Phase3
phase3和phase2有些相似,需要进行一次标准交易流程。但是在Phase3主要和Digital Key applet(The DK applet AID :A000000809434343444B417631h)进行数据交互。具体流程如下。
此阶段之前(包括此阶段)的操作都处于离线模式。当Phase3结束后手机端钱包的车卡也可以开下来了。 至于后续的Phase4则是在线模式,需要和OEM服务器去进行交互。
来源:CSDN@打工人预备役
原文链接:
https://blog.csdn.net/weixin_46186672/article/details/143713331
end
精品活动推荐
专业社群
部分入群专家来自:
新势力车企:
特斯拉、合众新能源-哪吒、理想、极氪、小米、宾理汽车、极越、零跑汽车、阿维塔汽车、智己汽车、小鹏、岚图汽车、蔚来汽车、吉祥汽车、赛力斯......
外资传统主流车企代表:
大众中国、大众酷翼、奥迪汽车、宝马、福特、戴姆勒-奔驰、通用、保时捷、沃尔沃、现代汽车、日产汽车、捷豹路虎、斯堪尼亚......
内资传统主流车企:
吉利汽车、上汽乘用车、长城汽车、上汽大众、长安汽车、北京汽车、东风汽车、广汽、比亚迪、一汽集团、一汽解放、东风商用、上汽商用......
全球领先一级供应商:
博世、大陆集团、联合汽车电子、安波福、采埃孚、科世达、舍弗勒、霍尼韦尔、大疆、日立、哈曼、华为、百度、联想、联发科、普瑞均胜、德赛西威、蜂巢转向、均联智行、武汉光庭、星纪魅族、中车集团、赢彻科技、潍柴集团、地平线、紫光同芯、字节跳动、......
二级供应商(500+以上):
Upstream、ETAS、Synopsys、NXP、TUV、上海软件中心、Deloitte、奇安信、为辰信安、云驰未来、信大捷安、信长城、泽鹿安全、纽创信安、复旦微电子、天融信、奇虎360、中汽中心、中国汽研、上海汽检、软安科技、浙江大学......
人员占比
公司类型占比
更多文章
关于涉嫌仿冒AutoSec会议品牌的律师声明
一文带你了解智能汽车车载网络通信安全架构
网络安全:TARA方法、工具与案例
汽车数据安全合规重点分析
浅析汽车芯片信息安全之安全启动
域集中式架构的汽车车载通信安全方案探究
系统安全架构之车辆网络安全架构
车联网中的隐私保护问题
智能网联汽车网络安全技术研究
AUTOSAR 信息安全框架和关键技术分析
AUTOSAR 信息安全机制有哪些?
信息安全的底层机制
汽车网络安全
Autosar硬件安全模块HSM的使用
首发!小米雷军两会上就汽车数据安全问题建言:关于构建完善汽车数据安全管理体系的建议