衡量生物识别解锁模式的安全性

设备实现必须满足 Android 兼容性定义文档 (CDD) 中列出的要求,才会被视为与 Android 兼容。 Android CDD 根据架构安全性欺骗性来评估生物识别实现的安全性。

  • 架构安全性:生物识别管道在抵御内核或平台入侵方面的弹性。如果攻击者在入侵内核和平台后既无法读取原始生物识别数据,也无法将合成数据注入管道以影响身份验证决定,则相应管道被视为是安全的。
  • 生物识别安全性效果:生物识别安全性的效果通过生物识别的欺骗接受率 (SAR)、错误接受率 (FAR)(如果适用)和冒名接受率 (IAR) 来衡量。SAR 是 Android 9 中引入的一项指标,旨在衡量生物识别技术抵御实际演示攻击的弹性。在衡量生物识别技术的弹性时,您需要遵循下述协议。

Android 使用三类指标来衡量生物识别安全性的效果。

  • 欺骗接受率 (SAR):其定义的指标用于衡量生物识别模型接受事先记录的已知良好样本的概率。例如,对于语音解锁,该指标会衡量使用已录制的用户语音样本“Ok, Google”成功解锁用户手机的概率。我们将此类攻击称为欺骗攻击。(又称为冒名攻击演示匹配率 (IAPMR))。
  • 冒名接受率 (IAR):其定义的指标用于衡量生物识别模型接受意图模仿已知良好样本的输入的概率。例如,在 Smart Lock 可信声音(语音解锁)机制中,该指标会衡量攻击者尝试模仿用户声音(使用相似的音调和口音)成功解锁设备的概率。我们将此类攻击称为冒名攻击
  • 错误接受率 (FAR):其定义的指标用于衡量模型错误地接受随机选择的有误输入的概率。尽管它是非常实用的衡量指标,但它无法提供足够信息来评估模型抵御定向攻击的效果。

可信代理

Android 10 更改了可信代理的行为方式。可信代理无法解锁设备,只能延长已解锁设备的解锁时长。可信面孔在 Android 10 中已弃用。

生物识别类别

生物识别安全性根据架构安全性和欺骗性测试的结果进行分类。生物识别实现可以分类为 3 类(之前的强)2 类(之前的弱)1 类(之前的便利)。下表说明了每个生物特征类别的一般要求。

如需了解详情,请参阅最新的 Android CDD

生物识别类别 指标 生物识别管道 限制条件
3 类
(之前的“强”)
所有 PAI 类型的 SAR:0-7%

A 级 PAI 类型的 SAR:
<=7%

B 级 PAI 类型的 SAR:
<=20%

任何单个 PAI 类型的 SAR <= 40%(强烈建议 <= 7%)

FAR:1/50k

FRR:10%
安全
  • 最多 72 小时后再回退到主要身份验证(例如 PIN、图案或密码)
  • 可以向应用公开 API(例如,通过与 BiometricPrompt 或 FIDO2 API 集成)
  • 必须提交 BCR
2 类
(之前的“弱”)
所有 PAI 类型的 SAR:7-20%

A 级 PAI 类型的 SAR:
<=20%

B 级 PAI 类型的 SAR:
<=30%

任何单个 PAI 类型的 SAR <= 40%(强烈建议 <= 20%)

FAR:1/50k

FRR:10%
安全
  • 最多 24 小时后再回退到主要身份验证
  • 在 4 小时闲置超时期限或 3 次错误尝试之后,再回退到主要身份验证
  • 可以与 BiometricPrompt 集成,但无法与密钥库集成(例如,发布应用身份验证绑定密钥)
  • 必须提交 BCR
1 类
(之前的“便利”)
所有 PAI 类型的 SAR:20-30%

A 级 PAI 类型的 SAR:
<=30%

B 级 PAI 类型的 SAR:
<=40%

任何单个 PAI 类型的 SAR <= 40%(强烈建议 <= 30%)

FAR:1/50k

FRR:10%
不安全或安全
  • 最多 24 小时后再回退到主要身份验证
  • 在 4 小时闲置超时期限或 3 次错误尝试之后,再回退到主要身份验证
  • 无法向应用公开 API
  • 从 Android 11 开始,必须提交 BCR
  • 从 Android 13 开始,必须测试 SAR
  • 临时类将来可能会被停用

3 类、2 类和 1 类模式

系统会根据安全管道的情况以及三个接受率(FAR、IAR 和 SAR)分配生物识别安全性类别。在不存在冒名攻击的情况下,我们只考虑 FAR 和 SAR。

如需了解所有解锁模式的应对措施,请参阅 Android 兼容性定义文档 (CDD)。

人脸识别和虹膜识别身份验证

评估流程

评估流程由两个阶段组成。校准阶段为指定的身份验证解决方案(即校准后的位置)确定最佳演示攻击。测试阶段使用校准后的位置执行多次攻击,并评估攻击成功的次数。Android 设备和生物识别系统的制造商应提交此表单,以便与 Android 联系获取最新的测试指导。

首先,请务必确定校准后的位置,因为您只能通过针对系统上的最大弱点进行攻击来衡量 SAR。

校准阶段

为了确保测试阶段获得最佳值,需要对人脸识别和虹膜识别身份验证的三个参数进行优化:演示攻击手段 (PAI)、演示格式和跨主体多样性的效果。

人脸
  • 演示攻击手段 (PAI) 是欺骗行为的实际媒介。无论采用何种生物识别技术,以下 PAI 类型目前均在考虑范围之内:
    • 2D PAI 类型
      • 打印照片
      • 显示器或手机屏幕上的照片
      • 显示器或手机屏幕上的视频
    • 3D PAI 类型
      • 3D 打印面具
  • 演示格式涉及到对 PAI 或环境的进一步操纵,在某种程度上有助于进行欺骗。以下是一些尝试操纵的示例:
    • 稍微折叠打印照片,使其在脸颊处形成曲线(以此略微模仿深度),有时可以有效地帮助破解 2D 人脸识别身份验证解决方案。
    • 改变光照条件就是通过改变环境来协助实现欺骗攻击的一个示例
    • 弄脏或稍微弄脏镜头
    • 使手机屏幕方向在竖屏模式和横屏模式之间进行切换,看看这是否会影响欺骗性
  • 跨主体多样性(或缺乏主体多样性)的效果与基于机器学习的身份验证解决方案息息相关。通过测试跨主体性别、年龄段和种族的校准流程,通常会发现该流程对全球人口各个群体的效果显著下降,而这是此阶段需要校准的重要参数。
欺骗测试旨在测试某个系统是否接受有效的重放或演示攻击。如果反欺骗或演示攻击检测 (PAD) 未实现或已停用,则 PAI 类型必须足以作为有效的生物识别声明通过生物识别验证流程。没有反欺骗或 PAD 功能而无法通过生物识别验证流程的 PAI 无效,并且使用该 PAI 类型的所有测试均无效。欺骗测试的执行者应证明其测试中使用的 PAI 类型符合此条件。
虹膜
  • 演示攻击手段 (PAI) 是欺骗行为的实际媒介。以下 PAI 类型目前均在考虑范围之内:
    • 清晰显示虹膜的人脸打印照片
    • 显示器或手机屏幕上清晰显示虹膜的人脸照片/视频
    • 义眼
  • 演示格式涉及到对 PAI 或环境的进一步操纵,在某种程度上有助于进行欺骗。例如,在打印照片上或显示眼睛照片/视频的屏幕上放置隐形眼镜,有助于欺骗一些虹膜分类系统,并有助于提高绕过虹膜身份验证系统的绕过率。
  • 跨主体多样性的效果与基于机器学习的身份验证解决方案息息相关。使用基于虹膜的身份验证时,不同的虹膜颜色会具有不同的光谱特性,并且对不同颜色的虹膜进行测试可以突出该身份验证解决方案对全球人口各个群体的效果问题。

测试多样性

人脸和虹膜模型在不同性别、年龄段和种族之间的效果可能会有所不同。针对各种不同的人脸校准演示攻击,以尽可能提高发现性能差异的机率。

测试阶段

测试阶段是指使用前一阶段经过优化的演示攻击来衡量生物识别安全性的效果。

计算测试阶段的尝试次数

从呈现人脸(真实或假冒)开始,到接收到来自手机的反馈(解锁事件或用户可见的消息),这一过程被计为一次尝试。当手机无法获取足够的数据来尝试匹配时,任何尝试都不应计入用于计算 SAR 的总尝试次数。

评估协议

注册

在开始人脸识别或虹膜识别身份验证的校准阶段之前,请转至设备设置并移除所有现有的生物识别个人资料。 移除所有现有的个人资料后,请使用目标人脸或虹膜注册一份新的个人资料,以用于校准和测试。在添加新的人脸或虹膜个人资料时,请务必处于明亮的环境中,并将设备正确地放置在目标人脸正前方 20 厘米至 80 厘米处。

校准阶段

对每种 PAI 类型执行校准,因为不同类型具有不同的大小和其他特性,可能会影响最佳测试条件。准备 PAI。

人脸
  • 在与注册流程相同的光照条件、角度和距离下,为注册人脸拍摄高品质的照片或视频。
  • 对于实际打印件:
    • 沿着脸部轮廓进行裁剪,制作各种各样的纸面具。
    • 在两侧脸颊处弯曲面具,以模仿目标人脸的弧线
    • 在面罩上切开眼孔,以便露出测试人员的眼睛 - 这对于将眨眼作为活体检测方法的解决方案十分有用。
  • 尝试建议的演示格式操作,看看它们是否会影响校准阶段的成功机率
虹膜
  • 在与注册流程相同的光照条件、角度和距离下,为注册人脸拍摄高分辨率且清晰显示虹膜的照片或视频。
  • 分别尝试在眼睛上戴和不戴隐形眼镜,看看哪种方法会提高欺骗性

执行校准阶段

参考位置
  • 参考位置:参考位置是通过以下方式确定的:将 PAI 放置在设备前方的适当距离(20-80 厘米)处,这样可以使 PAI 在设备视野内清晰可见,但所有其他正在使用的物体(例如,PAI 的支架)不可见。
  • 水平参考面:当 PAI 位于参考位置时,设备和 PAI 之间的水平面为水平参考面。
  • 垂直参考面:当 PAI 位于参考位置时,设备与 PAI 之间的垂直面为垂直参考面。
参考面

图 1. 参考面。

垂直弧线

确定参考位置,然后沿垂直弧线测试 PAI,确保 PAI 与设备之间的距离和参考位置与设备之间的距离相同。在同一垂直面内提升 PAI 的位置,使设备和水平参考面之间呈 10 度角,然后测试人脸解锁。

继续以 10 度为增量提升 PAI 的位置并进行测试,直到 PAI 在设备视野范围内不再可见。记录所有成功解锁设备的位置。重复这一过程,但要沿着向下弧线将 PAI 移动到水平参考面下方。有关弧线测试的示例,请参阅下面的图 3。

水平弧线

将 PAI 返回参考位置,然后沿水平面移动,使其与垂直参考面呈 10 度角。使用位于此新位置的 PAI 执行垂直弧线测试。以 10 度为增量沿水平面移动 PAI,并在每个新位置执行垂直弧线测试。

沿水平弧线测试

图 1. 沿垂直和水平弧线测试。

弧线测试需要在设备的左侧和右侧以及设备的上方和下方以 10 度为增量重复进行。

生成最可靠的解锁结果的位置是相应 PAI 类型(例如 2D 或 3D PAI 类型)的校准后的位置

测试阶段

在校准阶段结束时,每个 PAI 类型应具有一个校准后的位置。如果无法确定校准后的位置,应使用参考位置。该测试方法对于 2D 和 3D PAI 类型测试来说十分常见。

  • 涵盖已注册的人脸(其中 E>= 10),且包含至少 10 个唯一的人脸。
    • 注册人脸/虹膜
    • 使用上一阶段的校准后的位置执行 U 次解锁尝试,并按照上一部分中的说明计算尝试次数,其中 U >= 10。U记录成功解锁的次数 S。
    • 然后,可以根据以下公式衡量 SAR:
$$ \displaystyle SAR = \frac{\displaystyle\sum_{i=1}^{E}{S_i} }{(U * E)}\ {* 100\%} $$

其中:

  • E = 注册数量
  • U = 每次注册的解锁尝试次数
  • Si = 针对注册 i 的成功解锁次数

为获取统计学上有效的错误率样本所需的迭代次数:假设以下所有样本的置信度均为 95%,采用大样本进行测试

误差范围 每个主体所需的测试迭代次数
1% 9595
2% 2401
3% 1067
5% 385
10% 97

所需时间(每次尝试 30 秒,共 10 个主体)

误差范围 总时间
1% 799.6 小时
2% 200.1 小时
3% 88.9 小时
5% 32.1 小时
10% 8.1 小时

我们建议将误差范围设为 5%,从而确定总体的真实误差率为 2% 到 12%。

范围

测试阶段主要针对目标用户人脸的复制品来衡量人脸识别身份验证的弹性。它并不涉及基于非复制品的攻击,例如使用 LED 或充当主要打印件的解锁图案。尽管这些方法尚未被证明可有效抵御基于深度的人脸识别身份验证系统,但从概念上来说,这点毋庸置疑。未来的研究可能会证明情况确实如此。在这一点上,我们将对本协议进行修订,使其包括针对抵御这些攻击的弹性的衡量方法。

指纹身份验证

在 Android 9 中,该指标被设置为对于 PAI 的弹性最低,因为经衡量其欺骗接受率 (SAR) 小于或等于 7%。此博文中专门简要说明了欺骗接受率为 7% 的原因。

评估流程

评估流程由两个阶段组成。校准阶段为指定的指纹识别身份验证解决方案(即校准后的位置)确定最佳演示攻击。测试阶段使用校准后的位置执行多次攻击并评估攻击成功的次数。Android 设备和生物识别系统的制造商应提交此表单,以便与 Android 联系获取最新的测试指导。

校准阶段

为了确保测试阶段获得最佳值,需要对指纹身份验证的三个参数进行优化:演示攻击手段 (PAI)、演示格式和跨主体多样性的效果

  • PAI 是欺骗行为的实际媒介,例如打印的指纹或模塑副本都是演示媒介的示例。我们强烈建议您使用以下欺骗材料
    • 光学指纹传感器 (FPS)
      • 使用不导电油墨的复印纸/透明胶片
      • 诺克斯明胶
      • 乳胶漆
      • 埃尔默牛头安全万用胶水
    • 电容式 FPS
      • 诺克斯明胶
      • 埃尔默牛头木匠室内木胶
      • 埃尔默牛头安全万用胶水
      • 乳胶漆
    • 超声波 FPS
      • 诺克斯明胶
      • 埃尔默牛头木匠室内木胶
      • 埃尔默牛头安全万用胶水
      • 乳胶漆
  • 演示格式涉及到对 PAI 或环境的进一步操纵,在某种程度上有助于进行欺骗。例如,在创建 3D 副本之前,修复或编辑具有高分辨率的指纹图片。
  • 跨主体多样性的效果与优化算法息息相关。通过测试跨主体性别、年龄段和种族的校准流程,通常会发现该流程对全球人口各个群体的效果显著下降,而这是此阶段需要校准的重要参数。
测试多样性

指纹读取器在不同性别、年龄段和种族之间的效果可能会有所不同。一小部分人群的指纹难以识别,因此应使用多种指纹来确定用于识别和欺骗测试的最佳参数。

测试阶段

测试阶段是指衡量生物识别安全性的效果。测试至少应以非合作的方式进行,也就是说,任何指纹的收集都是通过从其他表面上提取指纹来完成的,而不是让目标主动参与指纹的采集(例如,以合作的方式制作主体的手指模具)。后一种方式是允许的,但并非必须。

计算测试阶段的尝试次数

从向传感器提供指纹(真实或假冒)开始,到接收到来自手机的反馈(解锁事件或用户可见的消息),这一过程计为一次尝试。

当手机无法获取足够的数据来尝试匹配时,任何尝试都不应计入用于计算 SAR 的总尝试次数。

评估协议

注册

在开始指纹识别身份验证的校准阶段之前,请转至设备设置并移除所有的现有生物识别个人资料。移除所有的现有配置文件后,请使用目标指纹注册一份新的个人资料,以用于校准和测试。请按照屏幕上的所有说明进行操作,直到成功注册个人资料。

校准阶段

光学 FPS

这与超声波和电容性材料的校准阶段类似,但同时包含 2D 和 2.5D PAI 类型的目标用户指纹。

  • 从表面提取一份隐藏的指纹。
  • 使用 2D PAI 类型进行测试
    • 将提取的指纹放在传感器上
  • 使用 2.5D PAI 类型进行测试。
    • 创建指纹 PAI
    • 将 PAI 放在传感器上
超声波 FPS

对超声波材料进行校准涉及提取一份隐藏的目标指纹。例如,这可以使用通过指纹粉末提取的指纹或指纹的打印件完成,并且可能包含手动重新触摸指纹图片以实现更加出色的欺骗效果。

获得一份隐藏的目标指纹之后,还会制成一个 PAI。

电容式 FPS

电容性材料的校准包含与上述超声波校准相同的步骤。

测试阶段

  • 使用计算 FRR/FAR 时所用的相同参数,让至少 10 个唯一用户进行注册
  • 为每个人创建 PAI
  • 然后,可以根据以下公式衡量 SAR:
$$ \displaystyle SAR = \frac{\displaystyle\sum_{i=1}^{E}{S_i} }{(U * E)}\ {* 100\%} $$

为获取统计学上有效的错误率样本所需的迭代次数:假设以下所有样本的置信度均为 95%,采用大样本进行测试

误差范围 每个主体所需的测试迭代次数
1% 9595
2% 2401
3% 1067
5% 385
10% 97

所需时间(每次尝试 30 秒,共 10 个主体)

误差范围 总时间
1% 799.6 小时
2% 200.1 小时
3% 88.9 小时
5% 32.1 小时
10% 8.1 小时

我们建议将误差范围设为 5%,从而确定总体的真实误差率为 2% 到 12%。

范围

此流程主要是针对目标用户指纹的复制品测试指纹身份验证的弹性。测试方法基于当前的材料成本、可用性和相关技术。 我们将对本协议进行修订,使其包括在新材料和技术变得切实可行时衡量其弹性。

常见注意事项

尽管不同模式需要不同的测试设置,但有一些常见的注意事项适用于所有这些模式。

测试实际硬件

如果生物识别模型是在理想条件下测试的,并且测试硬件与实际所用的移动设备不同,则采集的 SAR/IAR 指标可能会不准确。例如,使用多个麦克风在无回音室中校准的语音解锁模型,当在嘈杂环境中使用单个麦克风时,行为会明显不同。为了获得准确的指标值,应在安装了相关硬件的实际设备上进行测试,或至少使用相同硬件并以其在设备上的实际应用方式进行测试。

使用已知的攻击

目前采用的大多数生物识别模式都被成功欺骗过,并且相应的攻击方法也已公开。下面简要介绍出现已知攻击的模式对应的测试设置。建议尽可能使用此处列出的设置。

预测新的攻击

对于进行了新的重大改进的模式,测试设置文档可能不包含合适的设置,并且可能不存在已知的公开攻击。在发现新攻击后,现有模式还可能需要调整测试设置。在这两种情况下,您都需要配置合理的测试设置。请使用此页面底部的网站反馈链接告诉我们您是否已设置可添加的合理机制。

针对不同模式的设置

指纹

IAR 不需要。
SAR
  • 使用目标指纹的模具创建 2.5D PAI。
  • 衡量结果的精确度与指纹模具的质量密切相关。牙科硅胶是一个不错的选择。
  • 测试设置应衡量通过模具创建的虚假指纹成功解锁设备的概率。

人脸和虹膜

IAR 下限将由 SAR 捕获,因此不需要单独衡量该指标。
SAR
  • 使用目标人脸的照片进行测试。对于虹膜,需要放大人脸以模仿用户通常使用该功能的距离。
  • 照片应具有高分辨率,否则会产生误导性结果。
  • 照片的展现方式不应使其被识别出是图片。 例如:
    • 图片边界不应包含在内
    • 如果照片显示在手机上,则手机屏幕/屏幕边框不应可见
    • 如果有人拿着照片,手部不应可见
  • 对于直角来说,照片应填满传感器,使其他物体不可见。
  • 当样本(人脸/虹膜/照片)与相机呈锐角时(模仿用户将手机握在正前方并朝向人脸的用例),人脸和虹膜模型的宽容度通常更高。以该角度进行测试有助于确定您的模型是否易受欺骗。
  • 测试设置应衡量通过人脸或虹膜图片成功解锁设备的概率。

语音

IAR
  • 通过参与者听到阳性样本后尝试模仿样本的方式进行测试。
  • 由不同性别、不同口音的参与者进行模型测试,以确保考虑某些语调/口音具有更高 FAR 的极端情况。
SAR
  • 用目标语音的录音进行测试。
  • 录音必须质量较高,否则会产生误导性结果。