Fingerprint与 TA/TEE (qualcomm)
Architecture overview of Qualcomm encryption scheme for fingerprint 链接 https://zhuanlan.zhihu.com/p/42527644
手机厂商如何保证指纹安全的?兼谈供应链
如goodix:
Note:指纹的算法部分是在ta中 (xx.b01,xx.b02,.....)中,具体是在
/amss_sdm660/TZ.BF.4.0.7/trustzone_images/core/securemsm/trustzone/qsapps/goodixfp/src/qsee4.0/SENSOR_60_128/libGxAlgorithm.a中。
原理:
- Fingerprint Sensor Principle_1
- Fingerprint Sensor Principle_2
固件(Firmware)就是写入EROM(可擦写只读存储器)或EEPROM(电可擦可编程只读存储器)中的程序(通常有固件升级之说,也就是基础软件升级)。
固件担任着一个系统最基础最底层工作的软件。而在硬件设备中,固件就是硬件设备的灵魂,因为一些硬件设备除了固件以外没有其它软件组成,因此固件也就决定着硬件设备的功能及性能。
固件可以说是神经中枢,也可以称作COMBO的操作系统,它包括很多模块:驱动、控制、解码、传送、检测……,只有在它的控制下COMBO才能正常工作。同时,固件还带有许多附加功能,如纠错技术、安全刻录技术、播放控制技术等。
- CA---TA
指纹驱动部分一应该就在kernel中,不在TEE中
- 指纹框架图
- TEE 安全执行环境:
Abbreviations 缩写 REE – Rich Execution Environment TEE – Trusted Execution Environment TA – Trusted Application HAL – Hardware Abstraction Layer TAC – Trusted Application Connector SAO – Software Architecture Overview SPI – Serial Peripheral Interface (Used for sensor communication):串行外围接口(用于与传感器通讯) IRQ – Interrupt Request: 中断请求 APK – Android Application Package ADB – Android Debug Bridge (Android cmd-line interface) ESD – Electrostatic Discharge
GPIO -General-Purpose Input /Output Ports:通用I/O端口
DTSI/DTS - Device Tree https://www.cnblogs.com/lialong1st/p/8532639.html
GPIO: 在嵌入式系统中,经常需要控制许多结构简单的外部设备或者电路,这些设备有的需要通过CPU控制,有的需要CPU提供输入信号。
并且,许多设备或电路只要求有开/关两种状体就够了,比如LED的亮与灭。对这些设备的控制,使用传统的串口或者并口就显得比较复杂,所以,在嵌入式微处理器上通常提供了一种“通用可编程I/O端口”,也就是GPIO。
一个GPIO端口至少需要两个寄存器,一个做控制用的“通用IO端口控制寄存器”,还有一个是存放数据的“通用I/O端口数据寄存器”。数据寄存器的每一位是和GPIO的硬件引脚对应的,而数据的传递方向是通过控制寄存器设置的,通过控制寄存器可以设置每一位引脚的数据流向。
ps. MTK平台的指纹部分与qualcomm不同,具体请见https://blog.csdn.net/zhangbijun1230/article/details/80755066
存储在eMMc的RPMB分区中,RPMB确实很安全,但size是在太小,只能存储一些微信支付宝的安全密钥之类的,指纹模板是经过加密后,存储在data/目录下
以分享为宗旨,共同进步