生物识别架构
Android Q版本不再使用相对独立的指纹识别或是人脸识别板块,而是转而使用一个相对大的笼统的架构。就是生物识别 Biometric,基于生物特征的因素允许在平台上进行安全身份验证,目前在Android Framework
主要包括人脸和指纹生物身份验证两大部分。如果你明白其中的原理,自己也可以做一些别的生物验证的方式,比如声音识别什么的。
一、 第一个类
BiometricManager
包含生物识别实用程序的类,用于身份验证
开发者可以查询生物识别的可行性
二、 第二个类
BiometricPrompt
管理系统提供的生物识别对话框的类
包括指纹和人脸验证的集成
三、 实现
在Android 最新版本中,不是很赞成直接去修改FingerprintManager
这个类。如果你要捆绑应用或者系统应用想要使用此类,更新他们去使用BiometricPrompt
和BiometricManager
去代替。
为了确保用户和开发人员无缝的生物识别体验,请将您的生物识别堆栈与BiometricPrompt
整合在一起。为任何形式的BiometricPrompt
设备提供可能,包括人脸,指纹,声音,必循遵守这些安全相关的强度要求。如果他们不满足安全强度要求,那么他们就不能实现这个类。
确保你的 < Modality >
这个服务正确连接到BiometricService
,并且正确连接到authenticate()
方法,通用模式(人脸,指纹)从通用超类扩展而来,如果你想集成一套之前没有集成过的模式,可以仿照指纹和人脸的例子并遵循兼容性标准。
确保你的模式在SystemUI
上也支持,指纹和面部有默认的BiometricPrompt
用户界面。
更新framework
的flag KEYGUARD_DISABLE_FACE_*
添加到生物识别中BiometricPrompt/BiometricManager
去
确保你的设备通过CTS
和CtsVerifier
测试,测试您集成到 BiometricPrompt/BiometricManager
的每个模式,举个例子,如果你同时含有指纹和人脸模块,必须通过每个模块的测试。
四、 HAL实施指南
遵循这些生物特征HAL指南,以确保生物特征数据不会泄露,并在用户从设备中移除时移除:
确保原始生物特征数据或衍生工具(如模板)永远无法从传感器驱动或安全隔离环境(如TEE
或secure
元素)外部访问
如果硬件支持它,请限制对安全隔离环境的硬件访问,并使用SElinux
策略保护它。使通信通道(例如。SPI,I2C
)仅对安全隔离环境访问,并对所有设备文件使用明确的对SElinux
策略
生物特征信息采集、注册和识别必须在安全隔离的环境中进行,以防止数据泄露和其他攻击。此要求仅适用于强生物测定。
仅在文件系统上存储和吉米形式的生物特征数据衍生工具,即使文件系统本身已加密
为了防止重播攻击,请使用专用设备特定密匙对生物识别模板进行鉴定。对于高级加密标准(AES)
,模板必须至少通过绝对文件路径,群组和生物识别ID进行签名,这样一来,相应模板文件便无法在其他设备上使用,并且无法用于在同一设备上注册的任何其他用户。例如,您将无法复制同一设备上其他用户的生物识别数据,也无法从其他设备复制生物识别数据。
使用set_active_group()
函数提供的文件系统路径,或提供另一种能够在移除用户时一并清空所有用户模板数据的方法。强烈建议将生物识别模板文件以加密形式存储在提供的路径中。如果因安全隔离环境的存储要求而导致这种做法不可行,请添加一些钩子,以确保在移除用户或清空设备数据时一并移除相关数据。
五、 验证
您的生物识别实现必须通过以下测试
CTS BiometricManager
CTS BioMetricPrompt
(健全性方面的深入测试依赖于验证程序)
CtsVerifer BiometricPromptBoundKeysTest
:必须通过针对设备支持的每种模态的各项测试
CtsVerifer BioMetricTest
: 必须通过针对设备支持的每种模态的各项测试
此外,如果您的设备支持具有 AOSP HIDL
的生物识别技术,则必须通过
与之相关的VTS
测试
六、 衡量生物识别解锁模式的安全性
如今,基于生物识别的解锁模式几乎仅通过(FAR)指标(即模型错误的接受随机选择的有误输入的概率)进行评估,虽然它是很有用的测量指标,但它时很有用的测量指标,但它无法提供足够信息来评估模型抵御针对性攻击的效果。
指标
Android 8.1引入了两项与生物识别解锁相关的新指标,旨在帮助设备制造商更准确地评估设备安全性:
IAR(冒名接受率):生物识别模型接受意图模仿已知良好样本输入的概率。例如:攻击者模仿用户声音(使用相似的音调,口音)进行攻击
SAR(欺骗接受率):生物识别模型接受事先录制的已知良好样本的概率。;例如:通过录制用户声音进行攻击
但是,SAR 适用于所有生物的识别模式
七、 指纹识别身份验证
此处涉及问题较多,另写一篇讲解
传送门:
https://blog.csdn.net/Easyhood/article/details/104278886
八、 人脸识别身份验证
此处涉及问题较多,另写一篇讲解
传送门: