[ccc3.0][数字钥匙] UWB安全策略和实现

时间:2022-11-01 11:04:58


UWB安全--jianqiang.xue

  • ​​一、加密​​
  • ​​(一) 从DRBG得到STS序列​​
  • ​​(二) SP0帧加密​​
  • ​​(三) 密钥派生函数(KDFs)​​
  • ​​1. mUPSKs关键推导​​
  • ​​(四) UWB 预防测距恢复之间的跟踪​​
  • ​​二、UWB测距​​
  • ​​(一) STS索引管理​​
  • ​​三、UWB模块​​

本节介绍数字密钥特性的uwb相关功能固有的(适用的和强制的)安全需求。设备OEM应使用NFC作为后备机制,以防UWB和BLE模块的正常运行受到干扰;有关回退机制的信息由设备OEM提供给用户。

一、加密

本节详细介绍了文档前面介绍的各种安全功能中确定的各种加密功能。

基于加密的DRBG构建STS
第20节描述:

  • MAC协议(测距会话和MAC控制信道);
  • STS索引增量(规则、增量和更新)

(一) 从DRBG得到STS序列

STS的推导遵循15.2.9.1节描述的序列和[33]的图15-7b。为了生成STS,在本规范的上下文中,以下定义在[33]中的参数映射到本规范中定义的相应参数,如下所示:

phyHrpUwbStsVCounter = SaltedHash[0:32]
phyHrpUwbStsVUpper96 = SaltedHash([64:64])|| ((SaltedHash[32:32]+STS_Index) & 0xffffffff)
phyHrpUwbStsKey = dURSK[0:128]

对于每一代STS,即每个bit位,32位计数器都初始化为phyHrpUwbStsVCounter。对于每个128位的STS块,32位计数器加1,也就是说对于4096位的STS, 32位计数器加31。

SaltedHash[0:128]、STSIndex[0:32]和Counter[0:32](与IEEE 32位计数器相同,初始化为0)用于派生phyHrpUwbStsVUpper96phyHrpUwbStsVCounter

(二) SP0帧加密

SP0应使用AES-CCM* 算法进行加密,如[31]第9.3节所述。与NIST规范要求加密数据长度>0时,IEEE 802.15 CCM* 实现只允许身份验证的CCM(在[31]中使用,安全级别设置为1、2或3)。

STS_index加密(SP0预轮询)

  • 算法:AES-CCM*,如[31]的9.3节所述
  • 模式:加密和认证[31](安全级别6 - ENC-MIC64)
  • K (Key) = mUPSK1[0:128]
  • N (Nonce) = Source Long Address | Frame Counter | Nonce安全级别,参见[31]的9.3.2.1节
  • 累计帧计数器,STS_Index在有效载荷

注意:密钥mUPSK1是静态的测距会话。

时间戳加密(SP0 Final_Data时间戳帧)

  • 算法:AES-CCM*,参见[31]的9.3节
  • 模式:加密和认证[31](安全级别6 - ENC-MIC64)
  • K (Key) = dUDSK,其中dUDSK的定义在本小节后面
  • N (Nonce) =源地址|帧计数器| Nonce安全级别,参见[31]的9.3.2.1节
  • 框架层会自动递增计数器

注:由于每个测距模块都需要更新密钥dUDSK,因此IV/Key重复的概率很小。

(三) 密钥派生函数(KDFs)

[ccc3.0][数字钥匙] UWB安全策略和实现


协议的加密基础应由以下级联的KDFs建立,如图22-1所示。有关特定键派生的信息将在后面的部分中介绍。

1. mUPSKs关键推导

todo

(四) UWB 预防测距恢复之间的跟踪

todo

二、UWB测距

适用于UWB测距会话

(一) STS索引管理

STS索引增量应符合以下要求(见第20.6节)。

  1. 在给定的测距会话开始时,选择的STS_Index的初始值(这里称为初始STS_Index0)。它应该是[0…2 ^ 30] 范围内,因此STS_Index可以至少增加2^30次。初始的STS_Index0包含在测距会话设置响应中(参见19.3.1.6节)。
  2. STS_Index应该是单向递增的。在一个给定的由UWB_Session_ID标识的范围会话中,STS_Index将永远不会被减少或在任何两个不同帧之间重用。
  3. 在给定的测距会话中,STS_index的最大值应为2^31-1。当达到这个最大值时,测距会话将结束,一个新的会话将有一个新的URSK应使用。
  4. 恢复的测距会话(这里称为恢复STS_Index0)的第一个STS_Index包含在测距恢复响应(参见19.3.1.10)或可配置的测距恢复响应(参见19.3.1.12)中。恢复的STS_Index0应该大于在测距挂起之前在同一测距会话中最后使用的STS_Index。
  5. 第一个Pre-POLL消息(由车辆接收)的Poll_STS_Index参数中包含的STS_Index值应该分别大于初始的STS_Index0或恢复的STS_Index0,对于新的测距会话或恢复挂起的测距会话。

服务和同步
锚的重新同步发生在车辆一侧。

该机制包括mUPSK1、STS_index和一个nonce(根据MAC首部中的数据计算):设备执行帧加密(SP0),车辆解密。

三、UWB模块

预派生URSKs由DK小程序生成。然后,当它处于活动状态时,URSK或由该URSK派生的子密钥(取决于设备架构)被传输到UWB模块。

UWB模块主要负责处理一些密码操作,如PPDU密码或STS的推导。在UWB安全测距相关的所有资产的整个生命周期内,实现应提供硬件和软件保护,以防止逻辑和特定的物理攻击。

SE和UWB模块之间的传输通道应保护机密性和完整性。SE应提供与UWB模块的安全绑定,在生产后应抵抗操作。应防止在应用处理器上运行的任何代码能够访问或注入此通道上的数据。SE应具有区分UWB芯片接口与其他接口之间通信的能力。

与UWB模块及其与SE接口的有效攻击相关的潜在可能性,应根据所确定的威胁定义的发起成功攻击所需的总尝试来表示。此类潜在攻击的详细语义将根据DKCTG的定义和相关文档确定(例如,在进行威胁分析练习时)。

应采取适当的安全措施,以防止具有专家经验和定制设备的攻击者利用漏洞对任何CCC DK Release 3解决方案组件进行成功的漏洞攻击,从而破坏用例(被动无钥匙进入或启动引擎)的安全性,前提是已实施的解决方案具有敏感知识,并且有几个月的时间用于搜索漏洞。