指纹认证 — 定义、工作原理与应用

作者: IT Sectr 发布日期: 2026-04-05 阅读时间: 9 分钟

指纹认证是一种生物识别方法,利用手指上独特的乳头状纹路来验证用户身份。该技术已成为移动设备的安全标准:从廉价安卓智能手机到三星和谷歌Pixel的旗舰机型。根据 Counterpoint Research(2025年)的数据,2025年发布的智能手机中超过85%配备了内置指纹扫描仪

核心要点

  • 指纹认证 — 一种生物识别方法,分析乳头状纹路——手指皮肤上独特的脊线和沟纹
  • 电容式扫描仪 — 最常见的类型,通过读取皮肤脊线和沟纹之间的电位差来工作
  • 超声波扫描仪 — FAR为0.001%的三维传感器,即使在湿手指情况下也能工作,并且对硅胶假体具有抵抗力
  • 光学扫描仪 — 带有LED照明和CMOS矩阵的廉价方案;精度较低,容易被高质量照片欺骗
  • FingerprintManager — 用于指纹扫描仪的安卓API(自API 28起已被BiometricPrompt取代)

什么是指纹认证?

指纹认证是一种生物识别方法,通过分析手指表面的独特乳头状纹路来验证用户身份。每个人都有独特的脊线和沟纹图案,在子宫内发育的第12周形成,除物理损伤外终生不变。

指纹是公认最可靠的三种生物识别特征之一,另外两种是虹膜和视网膜图案。乳头状纹路形成特征性细节——细节特征点:终点、分叉点、点和交叉点。指纹的唯一性由扫描区域中40–100个细节特征点的位置和类型决定,这使两个不同人的匹配概率为1比640亿。

第一个自动指纹识别系统(AFIS)于20世纪70年代为执法机构出现。2013年,随着iPhone 5S和Touch ID的推出,开始大规模应用于消费设备。如今,指纹扫描仪安装在智能手机、笔记本电脑、平板电脑、门锁和支付终端中。

指纹扫描仪如何工作?

无论传感器类型如何,指纹认证过程都包括三个阶段:图像采集、处理和特征提取、与参考模板比较。根据实现方式,每个阶段可以在操作系统级别或可信执行环境级别执行。

指纹图像采集

传感器记录手指的物理图案。电容矩阵读取脊线(接触矩阵)和沟纹(不接触)之间的电位差。光学扫描仪使用LED照明照亮手指,并通过CMOS传感器记录反射光。超声波传感器发射声波,分析从不同皮肤深度反射的回声——这提供了对手指表面污垢具有抵抗力的三维图像。

细节特征提取和模板创建

捕获的图像经过滤波:去噪、对比度归一化和二值化(转换为黑白)。算法提取乳头状纹路的脊线,进行骨架化(细化到1像素宽度),并找到细节特征点——线条的终点和分叉点。每个细节特征点由坐标(x, y)、方向角和类型描述。大小为2–10 KB的数学模板不包含原始图像,无法重建指纹。

比较与决策

扫描获得的模板与注册时保存的参考模板进行比较。算法计算匹配的细节特征点数量。成功验证需要至少12–15个细节特征点匹配(由制造商设置)。如果匹配点数超过阈值,则认证成功。在移动设备中,阈值设置使得FAR不超过0.001%,FRR约为2%。

指纹扫描仪的类型

现代移动设备使用三种主要类型的指纹扫描仪,它们在读取技术、精度和生产成本上有所不同。类型的选择取决于设备的价位段和安全要求。

扫描仪类型工作原理FAR设备示例
电容式读取脊线和沟纹之间电容差的电容矩阵0.001%iPhone(Touch ID)、三星Galaxy S9、谷歌Pixel 3
光学式LED照明 + CMOS传感器;捕获手指表面反射的光0.01%小米Redmi、Realme、廉价安卓智能手机
超声波式压电发射器 + 接收器;通过回声信号进行3D重建0.0005%三星Galaxy S10+、Galaxy S21 Ultra、屏下扫描仪

在2025–2026年,直接嵌入OLED屏幕下方的屏下(in-display)扫描仪越来越受欢迎。它们可以是光学式(廉价段)或超声波式(高端段)。优点——外壳上没有单独的按钮或区域,实现了无边框显示屏。光学屏下扫描仪的缺点——容易受到强烈阳光的影响,阳光通过屏幕像素照亮CMOS矩阵。

指纹与人脸识别的比较

指纹认证和人脸识别是移动设备中两种主要的生物识别技术。每种技术在特定使用场景中都有影响选择的优缺点。

  • 精度(FAR) — 超声波指纹扫描仪:0.0005%,3D Face ID:0.0001%。使用深度摄像头时人脸识别更精确
  • 速度 — 电容式扫描仪:200–300毫秒,光学式:400–600毫秒,3D人脸:600–1000毫秒。在静态场景下指纹更快
  • 非接触性 — Face ID和2D人脸无需触摸设备;指纹需要与扫描仪物理接触
  • 条件 — 指纹在湿手指时无法工作,但在戴口罩和手套时可用;Face ID在戴口罩时(无Apple Watch)和红外摄像头被污染时无法工作
  • 传感器成本 — 电容式扫描仪:约0.5–1.5美元,超声波式:约3–5美元,3D TrueDepth摄像头:约12–15美元

对于移动应用开发者来说,重要的是安卓上的BiometricPrompt和iOS上的LocalAuthentication抽象了传感器类型。然而,在较旧的安卓设备(API < 28)上可能只有FingerprintManager可用——在这种情况下,应用程序必须明确检查传感器类型并提供替代认证方法。

在安卓上实现Fingerprint Auth

在安卓9(API 28)之前,集成指纹扫描仪的唯一方法是使用在API 23中添加的FingerprintManager类。从安卓9开始,谷歌推荐使用BiometricPrompt,它统一了与所有类型生物识别传感器的工作。然而,对于API 23–27的设备,开发者可能仍需要FingerprintManager。

kotlin
class FingerprintAuthHelper(
    private val context: Context
) {
    private val manager =
        context.getSystemService(Context.FINGERPRINT_SERVICE)
            as FingerprintManager?

    fun isFingerprintAvailable(): Boolean {
        return manager?.isHardwareDetected() == true
            && manager?.hasEnrolledFingerprints() == true
    }

    fun authenticate(callback: FingerprintManager.AuthenticationCallback) {
        if (isFingerprintAvailable()) {
            manager?.authenticate(
                null,
                CancellationSignal(),
                0,
                callback,
                null
            )
        }
    }
}

// 使用:
val helper = FingerprintAuthHelper(context)
helper.authenticate(object : FingerprintManager.AuthenticationCallback() {
    override fun onAuthenticationSucceeded(
        result: FingerprintManager.AuthenticationResult
    ) {
        // 指纹已识别 — 访问已授权
        binding.showContent()
    }

    override fun onAuthenticationFailed() {
        binding.showError("指纹未识别")
    }
})

所示代码演示了通过FingerprintManager对较旧安卓设备进行完全认证的完整流程。需要注意的是,FingerprintManager默认不使用TEE——认证结果返回到用户空间,这使其不如带有BIOMETRIC_STRONG标志的BiometricPrompt安全。对于新项目,应始终使用BiometricPrompt,而FingerprintManager仅用于与API 23–27的向后兼容。

从FingerprintManager迁移到BiometricPrompt时,必须考虑安全模型的变化:BiometricPrompt保证所有生物识别操作在TEE(可信执行环境)中执行。在TEE内使用加密密钥签名的认证结果无法从用户代码伪造。AndroidX Biometric库还提供BiometricPrompt.AuthenticationResult.getCryptoObject()接口,用于将生物识别认证与加密操作(密钥加密和数据签名)关联。

安全标准与防伪保护

防止指纹伪造是扫描仪制造商的关键任务之一。现代传感器使用硬件和算法方法的组合来检测活手指(活体检测)并阻止假体。每种方法都有其局限性,但共同使伪造对于大规模攻击在经济上不可行。

主要保护方法包括:皮肤深度分析(超声波扫描仪根据回声信号返回时间确定表皮厚度)、皮肤光谱分析(光学扫描仪评估皮肤在不同波长下的反射系数——硅胶和明胶有不同的光谱)、脉搏检测(手指毛细血管中血液流动的微振动)和电位测量检查(活皮肤具有与合成材料不同的特定电阻抗)。

ISO/IEC 30107-3:2023标准定义了生物识别系统对呈现攻击的抵抗力级别。对于金融应用,建议使用2级(PAD Level 2),要求自动检测至少95%使用假体的攻击,FAR不超过0.01%。三星和高通3D Sonic Sensor超声波扫描仪满足PAD Level 2的要求,而廉价光学扫描仪通常无法获得Level 1以上的认证。

常见问题

电容式扫描仪和超声波扫描仪有什么区别?

电容式扫描仪通过皮肤脊线和沟纹之间的电位差读取指纹——仅在干燥清洁的手指上工作。超声波扫描仪发射声波,根据反射回声构建三维地图——它可以穿透污垢、水甚至薄手套,提供更高的精度。

哪种类型的指纹扫描仪最可靠?

超声波扫描仪因其三维扫描和0.0005%的FAR而被认为最可靠。它们对湿手指、硅胶假体和污垢具有抵抗力。电容式扫描仪精度较低(FAR 0.001%),但更快更便宜。光学扫描仪最不可靠(FAR高达0.01%),可以用透明薄膜上的高质量指纹印刷品欺骗。

指纹可以用于银行操作吗?

可以,但有局限性。PSD2和PCI DSS监管机构要求多因素认证:指纹只是一个因素(您是什么)。支付授权还需要第二个因素——PIN码或一次性密码(您知道什么)。在Apple Pay中,指纹通过Secure Enclave用于签署交易——这符合强客户认证的要求。

如果指纹损坏了怎么办?

在割伤、烧伤或皮肤脱屑的情况下,指纹可能暂时无法识别。此时设备会要求输入PIN码或密码作为备用认证方法。皮肤愈合后,建议在设置中删除旧指纹并注册新指纹。在安卓设备上,也可以注册多个手指作为备份。

在设备上存储指纹安全吗?

是的——现代设备不存储指纹图像,而是存储数学模板在硬件隔离区域(TEE或Secure Enclave)中。模板使用芯片内置的密钥加密,操作系统或应用程序无法读取。在安卓9+上,BiometricPrompt保证所有生物识别操作在TEE中执行,并对结果进行加密签名。

总结

  • 指纹认证 — 基于乳头状纹路的识别方法,FAR从0.0005%(超声波)到0.01%(光学)
  • 三种扫描仪类型 — 电容式(快速、便宜)、光学式(经济、精度较低)、超声波式(可靠、昂贵)
  • 屏下扫描仪 — 现代趋势:无边框设备OLED屏幕下的光学和超声波传感器
  • FingerprintManager — 已过时的安卓API(API 23–27);新项目必须使用带有TEE保证的BiometricPrompt
  • ISO/IEC 30107-3 — 生物识别系统呈现攻击检测(PAD)的国际标准
  • 活体检测 — 通过深度、皮肤光谱和脉搏分析区分活手指和硅胶假体
  • 多因素认证 — 根据PSD2和PCI DSS要求,指纹应与PIN码结合用于银行级应用

我们将开发一款交钥匙移动应用程序

IT Sectr自2017年以来为初创企业和企业打造iOS和Android应用程序。我们将为您提供咨询并提出最佳解决方案。

讨论项目

另请阅读