跳过内容

MASTG-TEST-0247: 引用检测安全屏幕锁定的 API

概述

此测试验证应用是否在设置了密码的设备上运行。Android 应用可以通过使用平台提供的 API 确定是否启用了安全的屏幕锁(例如 PIN 码或密码)。具体来说,应用可以利用 KeyguardManager API,该 API 提供了 isDeviceSecure()isKeyguardSecure() 方法来检查设备是否安装了安全的锁定机制。

此外,应用可以使用 BiometricManager#canAuthenticate(int) API 来检查生物识别身份验证是否可用且可以使用。由于 Android 上的生物识别身份验证需要安全的屏幕锁作为后备方案,因此当 KeyguardManager 不可用或受到设备制造商限制时,此方法可以用作替代检查。

如果应用依赖生物识别进行身份验证,则应确保使用 BiometricPrompt API 强制执行生物识别身份验证,或者通过 Android KeyStore 系统 要求对加密密钥访问进行身份验证。但是,应用无法强制用户在系统级别启用生物识别,只能强制在应用内使用它来访问敏感功能。

步骤

  1. 使用 semgrep 来识别用于检查是否已设置安全屏幕锁的 API。

观察

输出应包含使用相关 API 的位置列表。

评估

如果应用没有使用任何 API 来验证安全屏幕锁的存在,则测试失败。

演示

MASTG-DEMO-0028:使用 semgrep 的 KeyguardManager.isDeviceSecure 和 BiometricManager.canAuthenticate 用法