了解 Security Posture

securityPosture 是设备的安全评估,由当前设备状态决定。当前设备状态取决于设备是否已启用 root 权限、是否运行自定义 ROM 等因素。

securityPosture 在响应中会细分为 devicePosture 和包含字段 securityRisk 的额外 postureDetails 列表。

securityRisk 字段可让您了解设备未被视为处于最安全状态的原因,而 advice 列表可帮助您执行操作来改善设备的安全状态。例如:

 {
  "devicePosture": "POTENTIALLY_COMPROMISED",
  "postureDetails": [
    {
      "securityRisk": "UNKNOWN_OS",
      "advice": [
        {
          "defaultMessage": "The user should lock their device's bootloader."
        }
      ]
    },
    {
      "securityRisk": "HARDWARE_BACKED_EVALUATION_FAILED"
    }
  ]
}

评估安全状况

默认情况下,系统会使用密钥认证(具体而言,如果适用,则使用硬件支持的密钥认证 [HBKA])来评估 securityPosture,并在安全硬件中生成和签署认证,从而提供可信的安全判定结果。

有时,HBKA 可能无法用于此评估。为反映这一点,securityRisk 将返回“HARDWARE_BACKED_EVALUATION_FAILED”。这意味着,可以评估 securityPosture,但不能使用 HBKA,这意味着设备的启动完整性状态可能会遭到破坏(例如,设备可能会被取得 root 权限),并且不会被基于软件的检测检测到。

了解安全状况判定结果

您可以通过解读 devicePosturesecurityRisk 的不同组合来了解设备的整体安全性。请注意,以下列表并未涵盖所有可能的原因:

  • 如果 devicePosture 返回“SECURE”且 securityRisk 返回“HARDWARE_BACKED_EVALUATION_FAILED”,则表示设备的完整性是安全的,但 HBKA 无法确认这一点。
  • 如果 devicePosture 返回“POTENTIALLY_COMPROMISED”且未返回 securityRisk 结果,则在评估中使用 HBKA,并将设备视为已遭到入侵。
  • 如果 devicePosture 返回“POTENTIALLY_COMPROMISED”且 securityRisk 返回“HARDWARE_BACKED_EVALUATION_FAILED”,则只能执行基于软件的检查,但完整性威胁信号足以将设备视为已遭破解。
  • 如果 devicePosture 返回“POSTURE_UNSPECIFIED”,则无法完成安全评估。我们建议您等待 HBKA 重新签发(在返回新判定结果时发生),看看它能否返回特定值。不过,在首次安装时,预计会短时间出现“POSTURE_UNSPECIFIED”。

Android Management API 与 Play Integrity API 的映射

下表提供了 AM API 判定结果与 Play Integrity API 判定响应之间的对应关系。

AM API DevicePosture AM API Posture.Detail.SecurityRisk Play Integrity API 判定等效项
SECURE SECURITY_RISK_UNSPECIFIED MEETS_STRONG_INTEGRITY
SECURE 包含:HARDWARE_BACKED_EVALUATION_FAILED MEETS_DEVICE_INTEGRITY
POTENTIALLY_COMPROMISED 包含:UNKNOWN_OS MEETS_BASIC_INTEGRITY
POTENTIALLY_COMPROMISED 包含:COMPROMISED_OS <unset>
POSTURE_UNSPECIFIED <any> <unset>