
iOS 中的车钥匙安全性
开发者可为受支持的 iPhone 和配对的 Apple Watch 提供安全的无实体钥匙方式来使用车辆。
车主配对
车主必须先证明车辆所有权(具体方法取决于汽车制造商,通常必须携带一把或两把遥控钥匙),才可在汽车制造商 App 中使用汽车制造商发送的电子邮件链接或从车辆菜单中开始配对流程。不管是哪种情况,车主都必须向 iPhone 提供一个一次性保密配对密码,用于通过使用 NIST P-256 曲线的 SPAKE2+ 协议创建 Global Platform SCP03 安全通道,生成安全配对通道以在设备和车辆之间传输数据。使用 App 或电子邮件链接时,密码会自动传输到 iPhone。从车辆发起配对需要手动在该 iPhone 上输入密码。
在车主配对流程中,车辆会通过 SCP03 通道发送请求,指示设备的安全元件生成椭圆曲线加密 (ECC) 密钥对。车辆标识符和车辆公钥随后会安全绑定到此密钥对。设备公钥 (device.PK) 会以 X.509 证书格式与证书链一起发回车辆,该证书链可由生产时内嵌于车辆的汽车制造商根证书公钥 (root.PK) 验证。这可让系统验证并接受设备公钥作为车主钥匙。
设备安全元件中的车主钥匙还会将汽车制造商 root.PK(由车辆通过 SCP03 通道提供)安全绑定到 device.PK,用于钥匙共享。
出于保险目的需要,每位车主的钥匙都需向汽车制造商的服务器注册。设备将其 device.PK 证书链发送到密钥追踪服务器 (KTS),该服务器会发回签名以确认注册。设备会在车主配对流程结束时或在车辆的下一次标准交易中(请参阅下文)向车辆提供签名,然后车辆会在 KTS 签名验证成功后启用车主钥匙。KTS 签名密钥为汽车制造商所有。
钥匙共享
发送者的 iPhone 可通过任何通信通道(例如电子邮件、iMessage 信息、WhatsApp、微信或隔空投送)向接收者发送邀请 URL,以此向符合条件的设备共享钥匙。URL 会将接收者引导至一个中继服务器(基于 IETF 技术规范实现)上的隐私保护邮箱。隐私加密密钥会作为共享 URL 中的片段发送。
在此过程中,发送者的 iPhone 会请求用户认证(面容 ID、触控 ID 或密码输入)和安全用户意图(“视控 ID、面容 ID 和触控 ID 的用途”中所述)。发送者授权会暂时储存在安全元件中,供稍后在接收者设备返回签名请求时使用。
为了增强安全性,若要激活共享钥匙,发送者可能需要接收者使用汽车制造商支持的其中一种可用激活选项,或者需要接收者在其设备上输入密码。
接受邀请后,接收者设备会从中继服务器邮箱取回钥匙创建数据,并根据 CCC 数字钥匙规范创建数字钥匙。作为钥匙创建流程中的一环,钥匙由发送者签名。接收者设备会使用中继服务器将钥匙创建证书链发回发送者的 iPhone。然后发送者的 iPhone 会使用内嵌于安全元件的 root.PK 验证接收者钥匙是否已使用预期的证书链创建。如果成功,发送者的 iPhone 会为接收者设备的 ECC 公钥签名,并使用中继服务器将签名发回接收者。该签名会使用之前储存在安全元件中的发送者授权进行授权。
钥匙授权和发送者签名会在车辆上首次使用共享钥匙时提供给车辆(请参阅标准交易)。授权描述包括以下内容:
权限等级:例如,解锁或驾驶。
再次共享策略:例如,不允许再次共享、限制再次共享或不限制再次共享(就共享链长度方面)。
部分汽车制造商需要每个共享钥匙都通过汽车制造商的服务器注册。如有需要,接收者设备会将其 device.PK 证书链发送到汽车制造商的 KTS,该服务器会返回签名以确认注册。接收者设备会在车辆的首次交易中向车辆出示该签名(请参阅标准交易)。车辆会验证签名并在 KTS 签名验证成功后启用共享钥匙。此类签名密钥为汽车制造商所有。
钥匙删除
钥匙可通过以下方式删除:
在持钥者设备上
从车主设备上
从拥有适当授权的共享人设备上
位于车辆中时
从持钥者 iPhone 删除会立即生效,即使持钥者正使用该钥匙或设备未接入互联网也无妨。
从车辆中删除钥匙的操作可能在以下情况中可行,具体取决于汽车制造商的政策:
随时
仅当车辆在线时
仅当遥控钥匙在手边时(以免因没有钥匙而被困)
无论是在持钥者设备上还是从车辆中删除,两种情况均会报告给汽车制造商的 KTS。出于保险目的,其会注册已颁发的车辆钥匙。
车主和符合条件的用户均可通过在 Apple 钱包中车钥匙凭证背面的共享钥匙持有者账户列表中选择用户,使用由请求者私钥 (device.SK) 签名的远程终止请求来发起删除请求。请求会先发送至汽车制造商以在车辆中移除钥匙。从车辆中移除钥匙的条件由汽车制造商规定(如上所列)。仅当钥匙从车辆中移除后,汽车制造商服务器才会向持钥者设备发送已签名的远程终止请求。
设备中的钥匙终止使用后,管理数字车钥匙的小程序会创建加密签名的终止证明,以用于证明汽车制造商的删除操作和从 KIS 移除钥匙。
隐私
汽车制造商的 KTS 不会储存设备 ID、SEID 或 Apple 账户,仅会储存作为可变标识符的实例 CA 标识符。此标识符不会在设备中或通过服务器绑定到任何隐私数据,并会在用户发起“抹掉所有内容和设置”时被删除。
CCC 标准还会强制要求汽车制造商方的 KTS 信息保密,且仅在保险需要或其他符合条件的请求下才使用。
设备向 KTS 发送的钥匙注册数据(钥匙标识符、车辆标识符、车辆公钥、设备公钥证书链、钥匙授权)基于 KTS 隐私加密公钥加密。将钥匙注册数据从设备传输到汽车制造商服务器的 Apple 服务器无法解密此数据。Apple 无法获知车主与谁共享了其车辆钥匙。
不能向设备进行认证的任何其他 iPhone 或 Apple Watch 配件均无法通过 NFC 或蓝牙使用标准或快速交易接收稳定的标识符。如果设备无法识别车辆标识符(例如,误尝试访问与持钥者车辆相似的车辆),则安全元件中的小程序会使用生成随机值的替代密钥,而非有意义的密钥或密码。
首次蓝牙连接使用临时密钥进行保护,该临时密钥会在共享车钥匙时提供,或在响应密钥追踪请求时由汽车制造商提供。