blob: f2dffe3b90251444d58a7a191d569f0c2e986210 [file] [log] [blame]
<html devsite><head>
<title>测量生物识别解锁模式的安全性</title>
<meta name="project_path" value="/_project.yaml"/>
<meta name="book_path" value="/_book.yaml"/>
</head>
<body>
<!--
Copyright 2017 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<p>
如今,基于生物识别的解锁模式几乎仅通过错误接受率 (FAR) 指标(即模型错误地接受随机选择的有误输入的概率)进行评估。<em></em>虽然它是很有用的测量指标,但它无法提供足够信息来评估模型抵御针对性攻击的效果。
</p>
<h2 id="metrics">指标</h2>
<p>
Android 8.1 引入了两项与生物识别解锁相关的新指标,旨在帮助设备制造商更准确地评估设备安全性:
</p>
<ul>
<li><em></em>冒名接受率 (IAR):生物识别模型接受意图模仿已知良好样本输入的概率。例如,在 <a href="https://support.google.com/nexus/answer/6093922">Smart Lock</a> 可信声音(语音解锁)机制中,该指标将测量攻击者尝试模仿用户声音(使用相似的音调、口音等)成功解锁设备的概率。我们将此类攻击称为“冒名攻击”。<em></em></li>
<li><em></em>欺骗接受率 (SAR)<strong></strong>生物识别模型接受事先录制的已知良好样本的概率。例如,对于语音解锁,该指标会测量使用已录制的用户语音样本“Ok, Google”成功解锁用户手机的概率。我们将此类攻击称为“欺骗攻击”<strong></strong><em></em></li>
</ul>
<p>
其中,IAR 测量并非对所有生物识别模式都有用。下面以指纹为例。攻击者可创建用户指纹的模具,并试图使用此模具绕过指纹传感器,此行为被视为欺骗攻击。但是,没有一种方法可成功模仿用户的指纹,所以没有关于指纹传感器冒名攻击的明确概念。
</p>
<p>
但是,SAR 适用于所有生物识别模式。
</p>
<h3 id="example-attacks">攻击示例</h3>
<p>
下表列出了针对四种模式的冒名攻击和欺骗攻击示例。
</p>
<table>
<tbody><tr>
<th>模式</th>
<th>冒名攻击</th>
<th>欺骗攻击</th>
</tr>
<tr>
<td>指纹
</td>
<td>不适用
</td>
<td>指纹 + 指纹模具
</td>
</tr>
<tr>
<td>脸部
</td>
<td>试图看上去像是用户的脸部
</td>
<td>高分辨率照片、乳胶(或其他高质量)面罩
</td>
</tr>
<tr>
<td>语音
</td>
<td>试图听起来像是用户的声音
</td>
<td>录音
</td>
</tr>
<tr>
<td>虹膜
</td>
<td>不适用
</td>
<td>高分辨率照片 + 隐形眼镜
</td>
</tr>
</tbody></table>
<p>
<strong>表格 1. 攻击示例</strong>
</p>
<p>
要了解有关测量不同生物识别模式 SAR 和 IAR 的方法的建议和更多详情,请参阅<a href="#test-methods">测试方法</a>
</p>
<h3 id="strong-weak-unlocks">安全系数高与低的解锁模式</h3>
<p>
同时考虑三个接受率(FAR、IAR 和 SAR)的解锁模式被视为安全系数高的解锁模式。在不存在冒名攻击的情况下,我们只考虑 FAR 和 SAR。
</p>
<p>
要了解安全系数低的解锁模式的应对措施,请参阅 <a href="https://source.android.com/compatibility/android-cdd">Android 兼容性定义文档</a> (CDD)<strong></strong>
</p>
<h2 id="test-methods">测试方法</h2>
<p>
我们将在此部分介绍有关测量生物识别解锁模式 SAR 和 IAR 的测试设置的注意事项,并提供关于这些测试设置的建议。有关这些指标的含义及其作用的更多信息,请参阅<a href="#metrics">指标</a>
</p>
<h3 id="common-considerations">常见注意事项</h3>
<p>
尽管不同模式需要不同的测试设置,但有一些常见的注意事项适用于所有这些模式。
</p>
<h4 id="test-hw">测试实际硬件</h4>
<p>
如果生物识别模型是在理想条件下测试的,并且测试硬件与实际所用的移动设备不同,则采集的 SAR/IAR 指标可能会不准确。例如,使用多个麦克风在无回音室中校准的语音解锁模型,当在嘈杂环境中使用单个麦克风时,行为会明显不同。为了获得准确的指标值,应在安装了相关硬件的实际设备上进行测试,或至少使用相同硬件并以其在设备上的实际应用方式进行测试。
</p>
<h4 id="known-attacks">使用已知的攻击</h4>
<p>
目前采用的大多数生物识别模式都被成功欺骗过,并且相应的攻击方法也已公开。下面简要介绍出现已知攻击的模式对应的测试设置。建议尽可能使用此处列出的设置。
</p>
<h4 id="anticipate-attacks">预测新的攻击</h4>
<p>
对于进行了新的重大改进的模式,测试设置文档可能不包含合适的设置,并且可能不存在已知的公开攻击。在发现新攻击后,现有模式还可能需要调整测试设置。在这两种情况下,您都需要配置合理的测试设置。请使用此页面底部的<a href="https://issuetracker.google.com/issues/new?component=191476">网站反馈</a>链接告诉我们您是否已设置可添加的合理机制。
</p>
<h3 id="setups-for-different-modalities">针对不同模式的设置</h3>
<h4 id="fingerprint">指纹</h4>
<table>
<tbody><tr>
<td><strong>IAR</strong>
</td>
<td>不需要。
</td>
</tr>
<tr>
<td><strong>SAR</strong>
</td>
<td>
<ul>
<li>使用目标指纹的模具创建虚假指纹。</li>
<li>测量结果的精确度与指纹模具的质量密切相关。牙科中使用的硅是一个不错的选择。</li>
<li>测试设置应测量通过模具创建的虚假指纹成功解锁设备的概率。</li>
</ul>
</td>
</tr>
</tbody></table>
<h4 id="face-and-iris">脸部和虹膜</h4>
<table>
<tbody><tr>
<td><strong>IAR</strong>
</td>
<td>下限将由 SAR 捕获,因此不需要单独测量该指标。
</td>
</tr>
<tr>
<td><strong>SAR</strong>
</td>
<td>
<ul>
<li>使用目标的脸部照片进行测试。对于虹膜,需要放大脸部以模仿用户使用该功能的常规距离。</li>
<li>照片应具有高分辨率,否则会产生误导性结果。</li>
<li>照片的展现方式不应使其被识别出是图片。例如:
<ul>
<li>图片边界不应包含在内</li>
<li>如果照片显示在手机上,则手机屏幕/边框不应可见</li>
<li>如果有人拿着照片,手部不应可见</li>
</ul>
</li>
<li>对于直角来说,照片应填满传感器,使其他物体不可见。</li>
<li>当样本(脸部/虹膜/照片)与相机呈锐角时(模仿用户将手机握在正前方并朝向脸部的用例),脸部和虹膜模型的宽容度通常更高。以该角度进行测试有助于确定您的模型是否易受欺骗。</li>
<li>测试设置应测量通过脸部或虹膜图片成功解锁设备的概率。</li>
</ul>
</td>
</tr>
</tbody></table>
<h4 id="voice">语音</h4>
<table>
<tbody><tr>
<td><strong>IAR</strong>
</td>
<td>
<ul>
<li>通过参与者听到阳性样本后尝试模仿样本的方式进行测试。</li>
<li>由不同性别、不同口音的参与者进行模型测试,以确保考虑某些语调/口音具有更高 FAR 的极端情况。</li>
</ul>
</td>
</tr>
<tr>
<td><strong>SAR</strong>
</td>
<td>
<ul>
<li>用目标声音的录音进行测试。</li>
<li>录音必须质量较高,否则会产生误导性结果。</li>
</ul>
</td>
</tr>
</tbody></table>
</body></html>