iOS 中的车钥匙安全性
开发者可为受支持的 iPhone 和配对的 Apple Watch 提供安全的无实体钥匙方式来使用车辆。
所有者配对
所有者必须先证明车辆所有权(方法具体取决于汽车制造商),才能在汽车制造商 App 中使用汽车制造商发送的电子邮件链接或在车辆菜单中开始配对流程。无论如何,所有者必须向 iPhone 展示一次性保密配对密码,该密码会通过使用 NIST P-256 曲线的 SPAKE2+ 协议生成安全配对通道。使用 App 或电子邮件链接时,密码会自动传输到 iPhone。从车辆发起配对时,必须手动在 iPhone 上输入密码。
钥匙共享
所有者在其配对的 iPhone 上使用 iMessage 信息和 Apple 身份识别服务 (IDS) 向特定设备发送邀请,即可将钥匙共享给符合条件的家庭成员和朋友的 iPhone 设备(及其配对的 Apple Watch 设备)。所有共享命令都将使用端对端加密的 IDS 功能进行交换。在共享过程中,所有者的配对 iPhone 会防止 IDS 通道发生更改,以防邀请转发。
邀请一经接受,家庭成员或朋友的 iPhone 将创建数字密钥并将密钥创建证书链发送回所有者的配对 iPhone,以验证密钥在可信的 Apple 设备上创建。所有者的配对 iPhone 将对其他家庭成员或朋友的 iPhone 的 ECC 公钥签名,并将签名发送回家庭成员或朋友的 iPhone。所有者设备中的签名操作需要用户认证(面容 ID、触控 ID 或密码输入)和“面容 ID 和触控 ID 的用途”中所述的安全用户意图。发送邀请时需要授权,授权会储存在安全元件中以在朋友设备发回签名请求时使用。密钥授权会通过车辆 OEM 服务器在线提供或在车辆上首次使用共享密钥时提供给车辆。
钥匙删除
钥匙可在所有者设备上从钥匙包设备中删除,以及从车辆中删除。从钥匙包 iPhone 删除会立即生效,即使钥匙包正使用该钥匙。因此删除前会出现强警告。从车辆中删除钥匙的操作可能随时都可执行,也可能仅当车辆在线时才可执行。
从钥匙包设备上或从车辆中删除这两种情况都会报告给汽车制造商的钥匙库存服务器 (KIS)。出于保险目的,车辆的已颁发钥匙都会注册在该服务器中。
所有者可从所有者凭证的背面发起删除请求。请求会先发送至汽车制造商以在车辆中移除钥匙。从车辆中移除钥匙的条件由汽车制造商规定。仅当钥匙从车辆中移除时,汽车制造商服务器才向钥匙包设备发送远程终止请求。
设备中的钥匙终止使用后,管理数字车钥匙的小程序会创建加密签名的终止证明,以用于证明汽车制造商的删除操作和从 KIS 移除钥匙。
NFC 标准事务
对于使用 NFC 钥匙的车辆,读卡器和 iPhone 之间的安全通道通过在读卡器和 iPhone 上生成临时密钥对建立。通过密钥协议方法,共享密钥可在两边派生并用于使用迪菲-赫尔曼的共享对称密钥生成、密钥派生功能和来自配对时建立的长期密钥的签名。
在车辆一方生成的临时公钥使用读卡器的长期私钥签名,因此 iPhone 需要对读卡器进行认证。对于 iPhone,此协议专用于防止隐私敏感数据泄露给拦截通信的攻击者。
最后,iPhone 使用已建立的安全通道加密其公钥标识符以及根据读卡器的数据派生质询计算的签名和部分其他特定于 App 的数据。读卡器对 iPhone 签名的验证使读卡器可认证设备。
快速事务
iPhone 基于之前标准事务中共享的密钥生成密码。此密码可使车辆在需要出色性能时快速认证设备。车辆和设备之间的安全通道也可通过从之前标准事务中共享的密钥和新的临时密钥对中派生会话密钥来建立。车辆建立安全通道的功能使 iPhone 能够认证车辆。
BLE/UWB 标准事务
对于使用 UWB 钥匙的车辆,车辆和 iPhone 之间会建立低功耗蓝牙会话。与 NFC 事务相似,共享密钥在两边派生并用于建立安全会话。此会话用于后续派生和同意 URB 测距密钥 (URSK)。URSK 会提供给用户设备和车辆的 UWB 无线电,以准确定位车辆附近或车辆内部特定位置处的用户设备。然后,车辆会使用设备位置来决定允许解锁还是启动车辆。URSK 具有预定义的 TTL。若要避免在 TTL 过期时测距中断,在安全测距未启用但 BLE 已连接时,URSK 可在设备 SE 和车辆 HSM/SE 中预派生。此操作可避免标准事务在关键时期需要派生新的 URSK。预派生的 URSK 可十分快速地传输到车辆和设备的 UWB 无线电,以避免 UWB 测距中断。
隐私
汽车制造商的钥匙库存服务器 (KIS) 不会储存设备 ID、SEID 或 Apple ID,仅会储存作为可变标识符的实例 CA 标识符。此标识符不会在设备中或通过服务器绑定到任何隐私数据,并会在用户完全擦除其设备(使用“抹掉所有内容和设置”)时被删除。