为了保证用户的安全,大多数应用程序和设备都有认证机制,或一种证明你是你的方法。这些机制可分为三类:知识因素、占有因素和生物特征因素。知识因素要求你知道的东西(如PIN或密码),占有因素要求你拥有的东西(如令牌生成器或安全密钥),生物特征因素要求你是什么(如指纹、虹膜或脸)。
生物识别认证机制正变得越来越流行,原因很容易理解。它们比输入密码更快,比携带单独的安全密钥更容易,而且它们防止了基于知识因素的身份验证最常见的陷阱之一 肩窥风险。
随着越来越多的设备加入生物识别认证来保护人们的私人信息,我们正在改进Android 中基于生物识别的认证:
1. 定义一个更好的模型来衡量生物识别安全性,并使用它来从功能上约束较弱的认证方法。
2. 为开发者提供一个通用的平台入口,将生物识别认证集成到他们的应用中。
一个更好的生物识别安全模型
目前,生物识别解锁通过借鉴机器学习(ML)的两个指标来量化其性能:错误接受率(FAR)和错误拒绝率(FRR)。
在生物识别的情况下,FAR测量生物识别模型偶尔会把非设备所有者识别为属于目标用户,也就是说,另一个用户偶尔被错误地识别为合法设备所有者。类似地,FRR测量生物特征模型也会将设备所有者的生物特征识别为攻击者——也就是说,合法设备所有者需要多次重试他们的身份验证行为。第一个是安全性问题,第二个是可用性问题。
当应用于随机输入样本时,这两个指标都能很好地测量给定ML(或生物特征)模型的准确性和精确度。然而,由于这两个指标都没有将活跃的攻击者作为威胁模型的一部分来考虑,所以它们没有提供关于攻击弹性的非常有用的信息。
在Android 8.1中,引入了两个新的指标,可以更明确地描述威胁模型中的攻击者:欺骗接受率(SAR)和冒名顶替接受率(IAR)。顾名思义,这些指标衡量攻击者绕过生物特征认证方案的难易程度。欺骗指的是使用已知的良好记录(如重放语音记录或使用人脸或指纹图片),而冒名顶替指的是成功模仿另一个用户的生物特征(如试图听起来或看起来像目标用户)。
强与弱的生物识别技术
我们使用SAR/IAR指标将生物特征认证机制分为强和弱两类。SAR/IAR为7%或更低的生物识别认证机制是强的,高于7%的是弱的。为什么7%是分水岭? 大多数指纹实现的SAR/IAR指标约为7%,这使其成为其他模式的合适标准。随着生物识别传感器和分类方法的改进,未来这个阈值可能会降低。
这种二元分类对不同实现提供的安全范围有点过于简化。然而,它为我们提供了一种可伸缩的机制(通过分层认证模型),根据它们构成的总体风险,在整个生态系统中适当地确定不同生物特征实现的功能和约束。
虽然强生物识别和弱生物识别都可以解锁设备,但弱生物识别:
- 需要用户重新输入他们的主密码、图案、密码或强生物特征来解锁设备在4小时的闲置窗口后,比如放在桌子上或充电器上。这是对强和弱生物特征识别强制72小时超时的补充。
- 即将推出的BiometricPrompt API不支持,这是一个通用的API,供应用程序开发人员以一种模式不可知的方式在设备上安全验证用户。
- 无法验证支付或参与涉及KeyStore认证绑定密钥的其他事务。
- 必须向用户显示警告,阐明使用生物特征的风险,才能启用它。
这些措施旨在允许较弱的生物识别,同时降低未经授权访问的风险。
BiometricPrompt API
从Android P开始,开发者可以使用BiometricPrompt API将生物特征认证以一种设备和生物特征不可知的方式集成到他们的应用中。BiometricPrompt只暴露强模式,因此开发人员可以确保在其应用程序运行的所有设备上具有一致的安全级别。还为运行Android O及更早版本的设备提供了支持库,允许应用程序跨更多设备利用该API的优势。
虽然Android 9及更高版本的应用程序可以直接连接到BiometricPrompt,但开发人员应该使用BiometricPrompt库来支持最广泛的设备。
该API旨在易于使用,允许平台选择合适的生物特征进行身份验证,而不是迫使应用程序开发者自己实现这个逻辑。以下是开发者如何在应用中使用它的例子:
结论
生物识别技术有可能简化和加强我们验证数字身份的方式,但前提是它们的设计安全、测量准确,并以保护隐私的方式实施。
Android能够做到这三点。因此,我们将安全设计原则、更容易察觉攻击者的测量方法和一个通用的、易于使用的生物识别API结合起来,允许开发人员以简单、一致和安全的方式集成身份验证。