Android Q 上的Biometric生物识别

2023-05-16

生物识别架构

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

八、 人脸识别身份验证

此处涉及问题较多,另写一篇讲解
传送门:
https://blog.csdn.net/Easyhood/article/details/104353983

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Android Q 上的Biometric生物识别 的相关文章

随机推荐

  • RxJava + Retrofit 结合使用

    关于Retrofit使用Json数据的一个坑 一般在根据Json数据设计JavaBean的时候我们Android一般使用的GsonFormat这个插件工具 xff0c 这个工具很方便 xff0c 但是也有要注意的地方 今天在调试一个天气接口
  • 7月份的经历+学习总结

    前言 7月份进入了找实习的阶段 xff0c 经过几天在网上的蹲点 xff0c 终于有一家公司给了我面试的机会 xff0c 最后也面试成功 xff0c 成为咱们阔地教育的一名实习生 经历 7月10号入职 xff0c 经过2天的培训 xff0c
  • Android zxing 二维码扫描和生成方法(简单版)

    前言 二维码大家都见识过 xff0c 这里就不废话了 xff0c 直接来干货 步骤 导入依赖 compile span class hljs string 39 com google zxing core 3 2 1 39 span spa
  • 开源库BaseRecyclerViewAdapterHelper的简单用法

    前言 BaseRecyclerViewAdapterHelper 是用于对RecycleView的数据绑定以及定义事件的一系列超级简单的一个adapter xff0c 下面我们就来学习他的用法 用法 xff08 介绍两种 xff09 配置环
  • 关于虚拟化(virtualization)的一些知识

    什么是虚拟化 xff08 virtualization xff09 首先是wiki上面对于虚拟化的定义 In computing virtualization refers to the act of creating a virtual
  • Node.js 连接MongoDB,并实现浏览器GET请求加参数

    前言 最近学习了Node js xff0c 并且接触了MongoDB 因此想做一个浏览器访问一个http地址获取数据库里的数据的例子 xff0c 本文使用的是Node js作为接口 具体内容 Node js要准备的东西 express模块
  • ListView 分页简单写法

    前言 关于Android 端ListView分页的做法之前一直不懂 xff0c 碰巧项目中遇到了 xff0c 所以在这边记录下学习的成果 分页 xff1a 当用户在ListView界面上的时候不会加载全部的数据 xff0c 而是从服务端加载
  • 冒泡排序算法小结

    冒泡排序 原理 xff1a 比较两个相邻的元素 xff0c 将值大的元素交换至右端 思路 xff1a 依次比较相邻的两个数 xff0c 将小数放在前面 xff0c 大数放在后面 即在第一趟 xff1a 首先比较第1个和第2个数 xff0c
  • 2018.7.20 阶段小结

    前言 好久没写博客了 xff0c 距离上次写博客应该是几个月前的事情了 现在是一名毕业生 xff0c 在上海 xff0c 这个压力比较大的城市工作 xff0c 第一份工作的薪水还行 xff0c 虽然跟当初上大学时期望的有点出入 xff0c
  • 附录A 进阶游戏编程书籍总结与推荐

    章节导读 很多游戏编程书籍都有一个通病 xff0c 一本书写完 xff0c 读者看完之后 xff0c 不知道下一步该如何前进 这里的附录就是让大家看完这本书后 xff0c 知道自己接下来可以学习什么 xff0c 如何进一步提升自己 为学习思
  • 自己写的Arch Linux自动安装脚本

    自己写的Arch Linux自动安装脚本 https github com iceshroom Arch Install 脚本将自动添加用户 xff1a admin xff0c 密码为 admin123 暂不支持自定义账户 More det
  • Linux系统通过firewall限制或开放IP及端口

    一 查看防火墙状态 1 首先查看防火墙是否开启 xff0c 如未开启 xff0c 需要先开启防火墙并作开机自启 systemctl status firewalld 开启防火墙并设置开机自启 systemctl start firewall
  • Redis集群添加数据报错(error) CLUSTERDOWN The cluster is down

    连接到Redis集群 xff0c 添加向集群中添加数据 xff0c 出现如下错误 xff1a error CLUSTERDOWN The cluster is down 我上网上查了查 xff0c 发现导致这个错误的原因很多 xff0c 这
  • Ubuntu 22.04.2 LTS点云PCL库的安装

    先简单说明一下我的病情 xff0c 我的Ubuntu版本是22 04 xff0c 在没有安装点云之前就已经安装的QT5和Anaconda的运行环境 开始的时候我是通过直接apt安装PCL库的 xff0c 但是有点问题 xff0c 跑网上给的
  • Android_Google Pay的添加使用

    虽然国内的支付宝 微信支付这么火热 但是我们在国外开发的时候 免不了还是会遇到使用Google Pay的时候 一 注册您的应用程序 你必须注册通过API控制台访问谷歌API的所有应用程序 注册过程导致了一组已知只有谷歌和你的应用程序 xff
  • 素数的几种判断方法总结(含C++代码)

    素数的几种判断方法总结 xff08 含C 43 43 代码 xff09 一 素数定义二 素数判断方法1 定义法2 定义法改进3 取模法5 筛选法改进 三 总结 一 素数定义 素数 xff08 prime number xff09 xff0c
  • [Python黑帽] 三.编程实现IP及端口扫描器、实现多线程C段扫描器

    Python黑帽第三篇文章将分享网络扫描基础知识 xff0c 编程实现IP及端口扫描器 实现多线程C段扫描器 本文参考了 Python绝技 书籍和i春秋ADO老师的课程内容 xff0c 这里真心推荐大家去学习ichunqiu课程 xff0c
  • [Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解

    欢迎大家来到 Python从零到壹 xff0c 在这里我将分享约200篇Python系列文章 xff0c 带大家一起去学习和玩耍 xff0c 看看Python这个有趣的世界 所有文章都将结合案例 代码和作者的经验讲解 xff0c 真心想把自
  • [Python从零到壹] 六.网络爬虫之BeautifulSoup爬取作者个人博客网站详解

    欢迎大家来到 Python从零到壹 xff0c 在这里我将分享约200篇Python系列文章 xff0c 带大家一起去学习和玩耍 xff0c 看看Python这个有趣的世界 所有文章都将结合案例 代码和作者的经验讲解 xff0c 真心想把自
  • Android Q 上的Biometric生物识别

    生物识别架构 Android Q版本不再使用相对独立的指纹识别或是人脸识别板块 xff0c 而是转而使用一个相对大的笼统的架构 就是生物识别 Biometric xff0c 基于生物特征的因素允许在平台上进行安全身份验证 xff0c 目前在