设备注册

在设备注册阶段,系统会在发布者的系统中注册身份密钥,以便为设备存储 VDC 做准备。

请求流程

流程说明

步骤 来源 说明
1 搭载 Android 的设备 用户的设备上已创建新的 VDC 请求。发布者必须创建新的身份密钥。用户的 设备会调用 getDeviceRegistrationNonce 来启动此 流程。
2 Google 服务器 Google 会将 getDeviceRegistrationNonce 请求中继给 发布者。
3 发布者服务器 发布者会生成一个 nonce,将其与 deviceReferenceId 一起存储,然后将该 nonce 返回给 Google。
4 Google 服务器 Google 会将该 nonce 中继给用户的设备。
5 搭载 Android 的设备 用户的设备会对该 nonce 进行签名,并将其嵌入到 x509 证书中。 此证书包含在 registerDevice 调用中,用于验证 设备。
6 Google 服务器 Google 会将 registerDevice 调用中继给发布者。
7 发布者服务器 发布者会执行设备完整性检查,并存储与设备关联的身份密钥。

如何验证设备的完整性

设备认证是一项安全功能,可让发布者在注册设备之前验证 设备的完整性。 这有助于防止注册经过 篡改或运行未经授权的软件的设备。

如需验证设备的完整性,发布者应执行以下操作:

  1. 验证在 /registerDevice 请求中发送的证书链。 链中的根证书必须与 Google 提供的 证书 一致。
  2. 确保根证书不在 证书吊销列表中。
  3. 解析叶证书,读取扩展,并验证以下内容:
    • attestationChallenge 值与在 /getDeviceRegistrationNonce 操作期间发送的 nonce 一致。
    • teeEnforced.rootOfTrust 具有以下属性:
      • deviceLocked=TRUE
      • verifiedBootState=VERIFIED
    • softwareEnforced.attestationApplicationId 中的软件包名称与 com.google.android.gms 或 com.google.android.gsf 一致。

设备认证流程各个部分的说明

  • 证书链 :证书链是一系列用于验证设备身份的证书。链中的根证书是最受信任的证书,链中的每个后续证书都由其上方的证书签名。
  • 证书吊销列表 :证书吊销列表 (CRL) 是一个列表,其中列出了因某种原因而被吊销的证书。如果设备认证证书链中的根证书位于 CRL 中,则该证书无效,并且设备认证不应被信任。
  • 叶证书 :叶证书是特定于设备的证书。它包含有关设备的信息,例如硬件标识符和软件版本。
  • 扩展 :扩展是证书中包含的其他信息。设备认证证书包含许多用于验证设备完整性的扩展。 如需了解详情,请参阅证书扩展数据 架构。