Android指纹识别框架分析及速度优化
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
手机指纹识别设计实现方案分类及其原理分析
• 光学指纹识别 • 电容式指纹识别 • 超声波指纹识别
• 光学指纹识别
• 利用光的折摄和反射原理,将手指放在光 学镜片上,手指在内置光源照射下,光从 底部射向三棱镜,并经棱镜射出,射出的 光线在手指表面指纹凹凸不平的线纹上折 射的角度及反射回去的光线明暗就会不一 样。用棱镜将其投射在电荷耦合器件上
FLASH
Secure ROM Public Key (or Hash)
SSMC
Secure RAM (From Flash) Decrypted Trusted Data Signed Trusted App.’s Trusted uOS except boot
百度文库
Secure Flash Signed Boot code
1、CTS 指纹测试相关项
• CTS Verifier 指纹相关的测试项共3项: • 1.Lock Bound Keys Test
2. BYOD Managed Provisoning Authentication-boud keys • Lockscreen-boud key test • Fingerprint-boud key test
Ps:第2项,版本中需打开AFW(android for work),且目前 过CTS都需要配置该宏。
这3项测试的失败原因基本都是指纹对auth_token的封装有问题。
AuthToken version :此token的版本号。 Challenge:就是前面调用preEnroll的到的64位随机数,防止此次enroll被第三方假冒。 User SID : 安全性id,不是android user id。 Athenticator ID: 用于标明不同的认证权限。 Authenticator Type:0x00表示Gatekeeper,0x01表示Fingerprint。 Timestamp:最近一次开机时间戳。 AuthToken HMAC key: 用一个特殊的key和SHA-256算法去计算前面一堆参数后,得到的一 个 hmac值,保证前面参数的合法性和安全性。
误识率:指两个不同指纹被错误地识别成相同指纹的概率 拒识率:指同一手指的两个不同指纹样本不能匹配,即被认为来自 不同手指的概率 模板特征的大小:从一个指纹图像中提取的指纹特征的存储容量
很敏感。
活体指纹识别方案
• 活体检测技术 • 为了防止恶意者伪造和窃取他人的生物特征用于身份认证,生物识别 系统必须具有活体检测功能,即判别向系统提交的生物特征是否来自
有生命的个体。一般生物特征的活体判别技术利用的是人们的生理特
征,例如活体指纹检测可以基于手指的温度、排汗、导电性能等信息, 活体人脸检测可以基于头部的移动、呼吸、红眼效应等信息,活体虹
2、SPI通信问题
1、Android N 平台默认开启TEE环境。若指纹是运行在REE环境下的,需 要关闭TEE环境对SPI的加密控制。否认会因为没有权限,导致SPI通信失 败。修改如下:
2、MT6580平台SPI 不通问题
使用MT6580的三組SPI pad, 會需要 去設定spi-padmacro in mt6580.dtsi GPIO Mapping关系如图: spi@1100c000 { compatible = "mediatek,mt6580spi"; cell-index = <0>; reg = <0x1100c000 0x1000>; interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_LOW>; mediatek,spi-padmacro = <1>; };
3、识别率低问题
• 指纹识别率相关因素
1、指纹的录入区域
指纹录入区域跟指纹识别率相关,应该尽可能录入更多的指纹 特征,这样指纹再匹配时,更容易成功。
2、指纹图像质量(浅指纹、沟壑指纹等)
浅指纹显示指纹纹理模糊,软件处理上会对指纹采到的图像进行 增强增强图质量差,造成录入相对困难和解锁率较低。
3、指纹识别算法
膜检测可以基于虹膜振颤特性、睫毛和眼皮的运动信息、瞳孔对可见
光源强度的收缩扩张反应特性等。
• 活体指纹识别方案是将指纹识别传感器和光学传感器集成 到一颗传感器中,在进行指纹识别的同时,可以通过光学 传感器对人体的心率、血液等用户的生物特征来验证用户 的指纹信息真实性,从而识别并拒绝伪造或克隆的假指纹, 提高支付安全等级。
TrustZone software architecture
Normal World Secure-aware App Secure World Trusted task
User
Apps
Privileged
Rich OS
TZ Driver
SMC
Secure Monitor
Trusted kernel
Secure World Memory/Peripheral space
Normal World Memory/Peripheral space
(This is ONE Hardware design – there are MANY alternatives)
277v06
常见问题FAQ
• • • • 1、CTS 相关问题 2、SPI通信问题 3、识别率低问题 4、指纹解锁慢,从触摸到解锁亮屏的响应 时间,各阶段的分析 • 5、指纹无法正常工作问题checklist
Hardware platform
277v06
Hardware Architectural View
Running App.’s
Running Rich OS
SDRAM
SoC
DMC
TrustZone CPU Normal Secure
Normal Storage
Rich OS
Applications Trusted App.’s Trusted uOS Encrypted DATA
较高的行为,例如指纹的比对,支付时候用私钥签名的动作等,就要放到
Secure World里面去了。 • TEE环境下需要一个操作系统,例如海思有自己的Trustzone的操作系统,此外
还有Trustonic、高通的QSEE、国内的豆荚,还有开源的OPTEE等。在操作系统
之上自然要有应用程序,在Trustzone里面叫TA(TrustApp),当然TEE里面每个 TrustApp都在一个沙盒里,互相之间是隔离的。比如说支付,就可以做成一个 App(需要注意的是,和Normal World里面的App是两个概念)。
• 通过软件、硬件相结合的活体指纹识别方案,可有效辨别 3D和2D假指纹,具有更高的安全性和便捷性。
指纹识别android框架分析
Android整体框架
• FingerprintManager API
直接与应用交互,是 fingerprintservice的封装函数
• FingerprintService
候,手指的谷与脊很明显,而干燥的时候,指纹泛白,光
学拍照的识别率就会变差。 • 三是光学指纹传感局限性体现于潜在指印方面(潜在指印 是手指在台板上按完后留下的),不但会降低指纹图像的 质量,严重时还可能导致2个指印重叠。
• 电容指纹识别
其原理是将电容传感器整
合于一块芯片中,当指纹
按压芯片表面时,内部电 容感测器会根据指纹波峰 与波谷而产生的电荷差, 从而形成指纹影像。
指纹识别技术概述
• 指纹识别技术原理介绍
• 指纹是指人的手指末端正面皮肤上凸凹不
平产生的纹线。纹线有规律的排列形成不
同的纹型。纹线的起点、终点、结合点和 分叉点等称为指纹的细节特征。
• 指纹识别是指通过比较不同指纹的细节特征点
来进行鉴别。
• 指纹识别技术涉及图像处理、模式识别、计算 机视觉、数学形态学、小波分析等众多学科。 • 指纹识别通过指纹传感器采集信息,进行指纹 图像的预处理,然后进行特征点提取,最后进 行特征匹配
系统进程的service,与fingerprintd 进行通信。
• Fingerprintd
fingerprintSerice的binder调用, daemon独立线程,封装HAL调用函数。
• Fingerprint HAL
硬件实现的库文件,与指纹硬件进行通信
• Keystore API &keymaster
指纹识别框架分析
•
•
•
指纹识别技术概述 指纹识别技术原理介绍 指纹识别特点及应用 手机指纹识别设计实现方案分类及其原理分析 指纹识别android 框架分析 android 框架 TEE 介绍 指纹驱动触摸按键实现代码分析 Enroll 流程分析 Authenticate流程分析 常见问题FAQ CTS 相关问题 SPI通信问题 识别率低问题 指纹解锁慢,从触摸到解锁亮屏的响应时间,各阶段的分析 概率性开机指纹无法工作问题
• 优点:
1、芯片和模组可以做的很薄
2、功耗更容易控制 • 缺点: 1、穿透率比较低,玻璃厚了以后,阻碍不只是在 灵敏度穿透力,而且也是在电场的散射玻璃厚了以后, 阻碍不只是在灵敏度穿透力,而且也是在电场的散 射。
2、防水、防污性不强
• 超声波指纹识别
• 特制的晶片(称为换能器)在电脉冲的激励下,产生机械振动(类似 于人摸一下电门浑身一抖),振动产生超声波脉冲(pulse),超声波 脉冲在传播过程中,会被传播介质(如人体)一部分一部分地被反射 或者散射回来(echo),尤其是介质中物理性质不连续的地方,(比 如手机上方的一根手指),反射波尤为强烈。反射或散射回换能器的 回波,又使换能器产生振动,这种振动被换能器转换为电信号,对于 电信号进行不同的处理,可以得到不同的信息,比如传播介质的结构, 有没有运动的物体在介质中,介质的弹性等等。超声波检测的是声学 阻抗
指纹识别特点及应用
1.识别速度最快,应用方便
2.推广容易、应用最为广泛、适应能力强
3.误判率和拒真率低 4.稳定性和可靠性强 5.易操作,无需特殊培训既可使用 6.安全性强,系统扫描对身体无害 7.指纹具备再生性 指纹应用很广泛。例如智能手机、笔记本电脑、考勤机、指纹门禁、指 纹门锁。指纹识别技术已经在司法领域、信用交易等大型的公共项目中, 进行着非常广泛的应用或者尝试。
TEE环境下,支持硬件加密,保证Key的安 全
Fingerprintd 通过Fingerprint HAL 调用指纹算法库来注册指纹及其他操作
TEE介绍
• TEE(Trust Execution Environment),也叫可信执行环境,是和REE(Rich Execution Environment)相对应的,是ARM的一种模式。我们一般也称TEE和REE为Secure World和Normal World。Linux都跑在Normal World上,但是有些安全性要求比
CMOS或者CCD上,进而形成脊线(指纹图
像中具有一定宽度和走向的纹线)呈黑色、 谷线(纹线之间的凹陷部分)呈白色的数 字化的、可被指纹设备算法处理的多灰度 指纹图像。
• 优点:
• 无需挖孔, 给Home键的消失提供了技术方向。如果Home键 真得以取消,那么对产业链来说,可以大幅降低了玻璃的加
工难度和成本;对手机厂商来说,在手机外观设计上则拥有
了更多的自由度。 • 光指纹传感器穿透性更好,可以透过1mm盖板玻璃扫描,配
置在2.5D玻璃盖板内上完全没有问题。电容式指纹传感器只
能透过300um左右 • 湿手指完全可用,并且还可以实现耐用性、耐刮性以及抗静 电等特性
• 缺点:
• 一是光学指纹“容易受骗”,无法识别出打印机打印的指 纹,因为其是拍照方式,对于它来说,都是一维的图片。 • 二是光学指纹对于干燥的指纹识别有难度。因为湿润的时
• 优点: • 1、能够穿透由玻璃、铝、不锈钢、蓝宝石或塑料 • 2、超声波扫描可以对指纹进行更深入的分析采样,甚至能渗透到皮 肤表面之下识别出指纹独特的3D特征。识别范围更广。无需按压和紧 密接触。 • 3、可以做到屏幕内部,无需开孔。 • 缺点: • 1、超声波对手指上的脏东西会比较敏感,特别是脏污与人体的密度 差不多的时候,超声波就有问题。 • 2、超声指纹用PVDF技术方式实现(高通采用的方式),还会对温度