Android StrongAuth 机制
Strong Authentication 顾名思义强认证,即当生物识别失败次数过多时需要输入密码解锁,此时生物识别被禁用。常见的还有启动设备首次解锁需要输入密码、72 小时未输入密码禁用生物识别,需要输入密码解锁,所以当我们遇到需要输入密码以进一步确保安全时,就意味着我们太久没用过密码解锁了。
Android 中通过 LockPatternUtils 来管理生物识别是否可用,其中 StrongAuthTracker 用来跟踪全局强认证状态。
public static class StrongAuthTracker {
// ...
// 不要求强认证
public static final int STRONG_AUTH_REQUIRED = 0x0;
// 用户刚启动设备首次解锁需要强认证
public static final int STRONG_AUTH_REQUIRED_AFTER_BOOT = 0x1;
// 设备管理员要求强认证
public static final int STRONG_AUTH_REQUIRED_AFTER_DPM_LOCKOUT_NOW = 0x2;
// 用户暂时关闭信任需要一些强认证
public static final int SOME_AUTH_REQUIRED_AFTER_USER_REQUEST = 0x4;
// 用户在多次尝试生物识别后被禁用需要强认证
public static final int STRONG_AUTH_REQUIRED_AFTER_LOCKOUT = 0x8;
// 用户已经太久未使用强认证而需要强认证
public static final int STRONG_AUTH_REQUIRED_AFTER_TIMEOUT