• 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

    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所示。

    这边有一个概念叫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命令的一部分与其他参数一起发送给手机。

    该流程如下图:

    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,如下表。

    消息:

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

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

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

    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小时。

  • 相关阅读:
    Serializable 和Parcelable的区别
    JDBC的基础操作
    SPL 工业智能:识别指定工况
    一文解达梦
    MicroPython——有点东西,但是不多
    创建共享内存后,进程结束,共享内存是否会消失?
    ROS2机器人-C++和Python怎么选
    历史性突破,200层以上存储芯片率先量产,领先国外芯片巨头
    电源管理芯片代理商:电源管理芯片的领域和封装
    【数据结构】链表--双链表
  • 原文地址:https://blog.csdn.net/zzx3111/article/details/133063070