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

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

  • 架构安全性:生物识别管道在抵御内核或平台入侵时有多大弹性。如果攻击者在入侵内核和平台后既无法读取原始生物识别数据,也无法将合成数据注入管道以影响身份验证决策,则认为该管道是安全的。
  • 欺骗性:欺骗性是通过生物识别的欺骗接受率 (SAR) 进行衡量的。SAR 是 Android 9 中引入的一项指标,旨在衡量生物识别技术抵御专业攻击者的弹性。在衡量生物识别技术的弹性时,您需要遵循下述协议。

Android 使用三类指标来衡量生物识别实现的强度。

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

可信代理

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

分层身份验证

生物识别安全性根据架构安全性和欺骗性测试的结果进行分类。生物识别实现可以分类为便利。下表介绍了各个层级。

生物识别层级 指标 生物识别管道 约束
第 3 类 - 强 SAR:0-7%
FAR:1/50k
FRR:10%
安全
  • 72 小时之后再回退到主要身份验证(例如,PIN 码、解锁图案或密码)
  • 可以向应用公开 API(例如,通过与 BiometricPrompt 或 FIDO2 API 集成)
  • 必须提交 BCR
第 2 类 - 弱
(新设备)
SAR:7-20%
FAR:1/50k
FRR:10%
安全
  • 24 小时之后再回退到主要身份验证
  • 在 4 小时闲置超时期限或 3 次错误尝试之后,再回退到主要身份验证
  • 可以与 BiometricPrompt 集成,但无法与密钥库集成(例如,发布应用身份验证绑定密钥)
  • 必须提交 BCR
第 2 类 - 弱
(升级设备)
SAR:7-20%
FAR:1/50k
FRR:10%
不安全/安全
  • 强烈建议 24 小时之后再回退到主要身份验证
  • 强烈建议在 4 小时空闲超时期限或 3 次错误尝试之后,再回退到主要身份验证
  • 如果管道安全,则可以与 BiometricPrompt 集成,但无法与密钥库集成(例如,发布应用身份验证绑定密钥)
  • 必须提交 BCR
第 1 类 - 便利(新设备) SAR:>20%
FAR:1/50k
FRR:10%
不安全/安全
  • 24 小时之后再回退到主要身份验证
  • 在 4 小时闲置超时期限或 3 次错误尝试之后,再回退到主要身份验证
  • 无法向应用公开 API
  • 在 Android Q 之后的版本中,临时层级可能会消失
第 1 类 - 便利
(用于升级设备)
SAR:>20%
FAR:1/50k
FRR:10%
不安全/安全
  • 强烈建议 24 小时之后再回退到主要身份验证
  • 强烈建议在 4 小时空闲超时期限或 3 次错误尝试之后,再回退到主要身份验证
  • 无法向应用公开 API
  • 在 Android Q 之后的版本中,临时层级可能会消失

强、弱以及便利模式对比

解锁模式的评级标准会同时考虑三种接受率,即 FAR、IAR 和 SAR。在不存在冒名攻击的情况下,我们只考虑 FAR 和 SAR。
如需了解所有解锁模式的应对措施,请参阅 Android 兼容性定义文档 (CDD)。

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

评估流程

评估流程由两个阶段组成。校准阶段为指定的身份验证解决方案(即校准后的位置)确定最佳演示攻击。测试阶段使用校准后的位置执行多次攻击,并评估攻击成功的次数。

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

校准流程

对于人脸识别和虹膜识别身份验证,有三个参数需要进行优化,以确保测试阶段获得最佳值。

面孔

  • 演示媒介是欺骗行为的实际输出媒介。以下媒介目前在考虑范围内:
    • 2D
      • 打印照片
      • 显示器或手机屏幕上的照片
      • 显示器或手机屏幕上的视频
    • 3D
      • 3D 打印面具
  • 演示格式涉及到对媒介或环境的进一步操纵,在某种程度上有助于进行欺骗。以下是一些尝试操纵的示例:
    • 稍微折叠打印照片,使其在脸颊处形成曲线(以此略微模仿深度),有时可以有效地帮助破解 2D 人脸识别身份验证解决方案。
    • 改变光照条件就是通过改变环境来协助实现欺骗攻击的一个示例
    • 弄脏或稍微弄脏镜头
    • 使手机屏幕方向在竖屏模式和横屏模式之间进行切换,看看这是否会影响欺骗性
  • 跨主体多样性(或缺乏主体多样性)的效果与基于机器学习的身份验证解决方案息息相关。通过测试跨主体性别和种族的校准流程,通常会发现该流程对全球人口各个群体的效果显著下降,而这是此阶段需要校准的重要参数。

欺骗测试旨在测试某个系统是否接受有效的重放或演示攻击。如果反欺骗或演示攻击检测 (PAD) 未实现或已停用,则演示媒介必须足以作为有效的生物识别声明通过生物识别验证流程。在没有反欺骗或 PAD 功能的情况下,如果演示媒介无法通过生物识别验证流程,则会被视为无效的欺骗,使用该媒介的所有测试也会被视为无效。欺骗测试的执行者应证明其测试中使用的演示媒介或人工制品符合此标准。

虹膜

  • 演示媒介是欺骗行为的实际输出媒介。以下媒介目前在考虑范围内:
    • 清晰显示虹膜的人脸打印照片
    • 显示器或手机屏幕上清晰显示虹膜的人脸照片/视频
    • 义眼
  • 演示格式涉及到对媒介或环境的进一步操纵,在某种程度上有助于进行欺骗。例如,在打印照片上或显示眼睛照片/视频的屏幕上放置隐形眼镜,有助于欺骗一些虹膜分类系统,并有助于提高绕过虹膜身份验证系统的绕过率。
  • 跨主体多样性的效果与基于机器学习的身份验证解决方案息息相关。使用基于虹膜的身份验证时,不同的虹膜颜色会具有不同的光谱特性,并且对不同颜色的虹膜进行测试可以突出该身份验证解决方案对全球人口各个群体的效果问题。

测试阶段

测试阶段是实际衡量解决方案弹性的阶段,方法是使用前一阶段经过优化的演示攻击来衡量。

计算测试阶段的尝试次数

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

评估协议

注册

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

校准阶段

准备演示媒介。

面孔

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

虹膜

  • 在与注册流程相同的光照条件、角度和距离下,为注册人脸拍摄高分辨率且清晰显示虹膜的照片或视频。
  • 分别尝试在眼睛上戴和不戴隐形眼镜,看看哪种方法会提高欺骗性

执行校准阶段

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

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

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

水平弧线

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

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

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

最可能实现解锁的位置是用于进行 2D 欺骗的校准后的位置

3D 校准阶段

除了使用 3D 打印媒介(例如,面具)之外,3D 媒介的校准阶段与 2D 媒介的校准阶段相同。按照 2D 媒介校准的说明执行 3D 媒介校准,并确定校准后的位置。

测试多样性

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

测试阶段

在校准阶段结束时,应该有两个校准后的位置(2D 和 3D 测试通用)可用于测试 2D 和 3D 欺骗性。如果无法确定校准后的位置,则应使用参考位置。该测试方法对于 2D 和 3D 测试来说十分常见,并且非常简单。

  • 涵盖所有已注册的人脸(其中 E >= 10),且包含至少 5 个独一无二的人脸(这意味着应针对这 5 个独一无二的人脸中的每个人脸至少重复进行两次测试)。
    • 注册人脸/虹膜
    • 使用上一阶段的校准后的位置执行 U 次解锁尝试,并按照上一部分中的说明计算尝试次数,其中 U >= 10。记录成功解锁的次数 S。
    • 然后,您可以根据以下公式衡量 SAR(分别用于 2D 和 3D 测试):

其中:

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

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

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

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

误差范围 总时间
1% 399 个小时
2% 100 个小时
3% 44.5 个小时
5% 16.4 个小时
10% 4.0 个小时

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

范围

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

指纹身份验证

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

评估流程

评估流程由两个阶段组成。校准阶段为指定的指纹识别身份验证解决方案(即校准后的位置)确定最佳演示攻击。测试阶段使用校准后的位置执行多次攻击并评估攻击成功的次数。

校准流程

对于指纹识别身份验证,有三个参数需要进行优化,以确保测试阶段获得最佳值。

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

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

测试流程

测试阶段是实际衡量解决方案弹性的阶段。测试应以非合作的方式进行。也就是说,任何指纹的收集都是通过从其他表面上提取指纹来完成的,而不是让目标主动参与指纹的采集(例如,制作模具)。

计算测试阶段的尝试次数

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

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

评估协议

注册

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

校准阶段

超声波材料

这与光学材料和电容性材料的校准阶段类似,但同时包含目标用户指纹的打印件和 3D 模具。

  • 从表面提取一份隐藏的指纹。
  • 使用打印件等演示媒介进行测试
    • 将提取的指纹放在传感器上
  • 使用 3D 模具进行测试。必须为每个人使用至少 4 种不同的材料(例如,明胶、硅胶、木胶)来创建仿冒指纹。
    • 创建指纹模具
    • 将模塑指纹放在传感器上
光学材料

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

电容性材料

电容性材料的校准包含与上述光学材料校准相同的步骤,但在隐藏的目标指纹制作完成之后,还会制成一个指纹模具。

测试阶段

  • 使用计算 FRR/FAR 时所用的相同参数,让至少 10 个唯一用户注册一个指纹
  • 通过上述方法,使用至少 4 种不同的欺骗材料为每个人创建至少 4 个虚假指纹
  • 在每人 5 次的解锁尝试中,尝试各种不同的欺骗方式

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

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

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

误差范围 总时间
1% 399 个小时
2% 100 个小时
3% 44.5 个小时
5% 16.4 个小时
10% 4.0 个小时

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

范围

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

常见注意事项

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

测试实际硬件

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

使用已知的攻击

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

预测新的攻击

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

针对不同模式的设置

指纹

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

人脸和虹膜

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

语音

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