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/目錄下