Android Q 上的Biometric生物识别

生物识别架构

Android Q版本不再使用相对独立的指纹识别或是人脸识别板块,而是转而使用一个相对大的笼统的架构。就是生物识别 Biometric,基于生物特征的因素允许在平台上进行安全身份验证,目前在Android Framework主要包括人脸和指纹生物身份验证两大部分。如果你明白其中的原理,自己也可以做一些别的生物验证的方式,比如声音识别什么的。

一、 第一个类

BiometricManager
包含生物识别实用程序的类,用于身份验证
开发者可以查询生物识别的可行性

二、 第二个类

BiometricPrompt
管理系统提供的生物识别对话框的类
包括指纹和人脸验证的集成

三、 实现

在Android 最新版本中,不是很赞成直接去修改FingerprintManager这个类。如果你要捆绑应用或者系统应用想要使用此类,更新他们去使用BiometricPromptBiometricManager去代替。
为了确保用户和开发人员无缝的生物识别体验,请将您的生物识别堆栈与BiometricPrompt整合在一起。为任何形式的BiometricPrompt设备提供可能,包括人脸,指纹,声音,必循遵守这些安全相关的强度要求。如果他们不满足安全强度要求,那么他们就不能实现这个类。

确保你的 < Modality >这个服务正确连接到BiometricService,并且正确连接到authenticate()方法,通用模式(人脸,指纹)从通用超类扩展而来,如果你想集成一套之前没有集成过的模式,可以仿照指纹和人脸的例子并遵循兼容性标准。

确保你的模式在SystemUI上也支持,指纹和面部有默认的BiometricPrompt用户界面。

更新frameworkflag KEYGUARD_DISABLE_FACE_* 添加到生物识别中BiometricPrompt/BiometricManager

确保你的设备通过CTSCtsVerifier测试,测试您集成到 BiometricPrompt/BiometricManager的每个模式,举个例子,如果你同时含有指纹和人脸模块,必须通过每个模块的测试。

四、 HAL实施指南

遵循这些生物特征HAL指南,以确保生物特征数据不会泄露,并在用户从设备中移除时移除:

确保原始生物特征数据或衍生工具(如模板)永远无法从传感器驱动或安全隔离环境(如TEEsecure元素)外部访问

如果硬件支持它,请限制对安全隔离环境的硬件访问,并使用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

八、 人脸识别身份验证

此处涉及问题较多,另写一篇讲解
传送门:

发布了45 篇原创文章 · 获赞 23 · 访问量 7万+

猜你喜欢

转载自blog.csdn.net/Easyhood/article/details/104262006
今日推荐