CCC数字钥匙设计【BLE】--URSK管理

1、URSK创建流程

URSK的英文全称为:UWB Ranging Secret Key,即UWB安全测距密钥。

在车主配对时会生成URSK,且在车主配对期间,车辆不得尝试生成第二个URSK。

URSK示例: ed07a80d2beb00f785af2627c96ae7c118504243cb2c3226b3679daa0f7e616c

在建立安全测距之前,需要URSK。车辆可能使用预先创建的URSK或根据需要创建一个新的URSK。

生成URSK的流程有如下两种情况:

1.1 情况1:专门生成URSK(如车主配对时)

BLE加密设置完成后,如果车辆支持UWB,则车辆将执行创建URSK的标准交易流程。比如在车主配对时会执行一次URSK创建流程。该流程如下图:

该流程中AUTH0命令的transaction_code值0x10

CCC数字钥匙设计【BLE】--URSK管理_第1张图片

1.1.1 步骤1:标准交易流程的1-6步

1.1.2 步骤2:生成URSK流程

对于上图框F和框G,一旦URSK被成功派生,它将被存储在使用UWB_Session_Id索引的安全存储中。

具有安全测距能力的车辆,应支持每个数字钥匙至少产生并存储一个Pre-derived URSK

具有安全测距能力的手机,应支持每个数字钥匙产生并存储两个Pre-derived URSK

每个Pre-derived URSK通过关联的UWB_Session_Id进行索引。

车辆应使用Secure Ranging Setup流程(详见CCC的图19-23)来激活Pre-derived URSK。每个数字钥匙最多只能有一个激活的URSK,当另一个URSK被激活时,这个激活的URSK将被丢弃。

在一个Pre-derived URSK被激活后,车辆应请求生成和存储另一个Pre-derived URSK。车辆应控制这种额外的URSK生成所耗费的时间,以尽量减少对用户的影响(例如,在PE进入完成后),。建议在URSK激活不久后,则进行另一个Pre-derived URSK的生成。URSK存储要求如表19-85所示。

CCC数字钥匙设计【BLE】--URSK管理_第2张图片

这边有一个概念叫URSK TTL,即已经激活的URSK(也叫dURSK)是有生存期限的,CCC要求该生存期限小于12小时,具体该时间参数由车厂OEM指定。

CCC中说明,可以选择使用不同的URSK设置一个新的测距会话,该URSK具有比较短的TTL(如30秒),用于发动机启动授权,提高安全性。

如果满足下列条件之一,URSK将被丢弃:

1) STS_Index达到最大值2^31-1。

2) STS_Index丢失。

3) URSK TTL(生存时间)到期。车辆的URSK最大生存时间为12小时(具体时间由车辆OEM指定)。

4) 通过Secure Ranging Setup流程激活一个新的URSK。

1.2 情况2:执行功能时生成URSK(如启动引擎)

通过向标准交易流程添加一个CREATE RANGING KEY命令,用于其他目的,如启动引擎。

该流程中AUTH0命令的transaction_code值不等于0x10

每次成功执行此流程时,都会生成一个唯一的URSK,并使用UWB_Session_Id进行存储索引。这个UWB_Session_Id是transaction_identifier中排序LSB的4个字节。车辆为每个AUTH0生成一个16字节的随机数,并作为AUTH0命令的一部分与其他参数一起发送给手机。

该流程如下图:

CCC数字钥匙设计【BLE】--URSK管理_第3张图片

1.2.1 步骤1:标准交易流程的第1-8步

流程与情况1基本一样,比情况1 的流程增加了标准交易的第7步、第8步(Exchange Command及Exchange Response相关功能)。

1.2.2 步骤2:生成URSK流程

当执行解闭锁、引擎启动等功能时,也可以BLE在标准交易成功后产生URSK。

流程与情况1基本一样,比情况1 的流程增加了第11步、第12步(Control Flow Command及Control Flow Response相关功能)。

如果在BLE标准交易的步骤1到8中出现错误,则跳过后续的URSK生成流程,并向手机发出适当的错误信号。然后车辆发送Command complete SubEvent(Deselect SE))给手机,如上图中的步骤11所示。

如果在URSK生成流程中发生错误,则只有由之前standard transaction触发的操作(已经)被车辆接受。此时,如果仍然需要生成URSK,则应该执行情况1中描述的专门用于URSK生成的流程

1.3 生成URSK对应的BLE通信命令

上面的标准交易流程及生成URSK流程,均通过BLE来进行通信交互。

为了通过BLE创建URSK,每个APDU命令和响应都需要进行如下编码,具体如下。

消息类型:SE Message,如下表。

CCC数字钥匙设计【BLE】--URSK管理_第4张图片

消息:

  • APDU命令封装:DK_APDU_RQ
  • APDU响应封装:DK_APDU_RS

1.4 情况1&情况2的AUTH0命令说明

如下表,0x10专门用于URSK生成。而其他值则有于相关功能的执行。

CCC数字钥匙设计【BLE】--URSK管理_第5张图片

2、总结

1)、URSK创建流程有两种情况,第一种情况是专门生成URSK的流程,一般在车主配对时实施。第一种情况是引擎启动等功能执行时,可以执行生成URSK的流程。

2)、两种情况的流程差别不大,都是先通过standard transaction,然后通过Create ranging key来创建URSK。

3)、通过BLE的SE Message格式来发送DK_APDU_RQ、DK_APDU_RS数据 帧以完成URSK的生成流程。

4)、有个URSK TTL的概念,即已经激活的URSK是有生存期限的,CCC要求该生存期限小于12小时。

你可能感兴趣的:(CCC,数字钥匙,汽车,软件工程)