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 权限),并且不会被基于软件的检测检测到。
了解安全状况判定结果
您可以通过解读 devicePosture
和 securityRisk
的不同组合来了解设备的整体安全性。请注意,以下列表并未涵盖所有可能的原因:
- 如果
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> |