4、身份认证基础:密码认证、多因素认证(MFA)、生物特征认证的原理与对比

身份认证,说白了就是回答三个问题:「你是谁?」「你有什么?」「你是什么?」。在零信任架构里,这一步是信任的起点。如果连门都认错人,后面所有的策略都是白搭。

我做了这么多年安全,见过太多「认证形同虚设」的案例。有的公司上了各种高大上的设备,结果员工密码还是「123456」。嗯,咱们今天就把这三种主流认证方式掰开揉碎讲清楚。

核心观点:没有绝对安全的认证方式,只有「够用」的组合。零信任要求的是持续验证,而不是一次性通关。

4.1 密码认证:最古老,也最脆弱

密码认证的原理很简单:你设置一个只有你知道的字符串,系统存它的哈希值。登录时,系统比对哈希。匹配就放行。

但这里有个坑——哈希算法。我见过不少项目还在用 MD5 存密码。MD5 啊,2010 年就被证明可以碰撞了。你想想看,攻击者拿到数据库,直接彩虹表一跑,密码全裸奔。

避坑指南:我曾经审计过一个金融项目,发现他们用 SHA-1 加固定盐。SHA-1 同样不安全。正确的做法是使用 bcrypt、scrypt 或 Argon2 这类慢哈希算法。它们自带盐,而且计算成本可调,能有效抵御暴力破解。

密码认证的优缺点很明显:

  • 优点:部署成本低,用户习惯成熟,不需要额外硬件。
  • 缺点:容易被钓鱼、撞库、暴力破解。用户喜欢复用密码,一个泄露全完蛋。

我个人习惯在密码策略上做三件事:

  1. 强制使用慢哈希算法(bcrypt 成本因子至少 10)。
  2. 加 Pepper(服务端密钥),防止数据库泄露后盐也被拿走。
  3. 登录失败超过 5 次,临时锁定账户 15 分钟。

4.2 多因素认证(MFA):加一把锁

MFA 的核心逻辑是:组合两种或以上不同类型的因素。因素分三类:

  • 知识因素:你知道的(密码、PIN 码)。
  • 持有因素:你有的(手机、硬件令牌、智能卡)。
  • 固有因素:你是什么(指纹、人脸)。

最常见的 MFA 是「密码 + 一次性验证码(TOTP)」。TOTP 的原理是基于时间戳和共享密钥,每 30 秒生成一个新码。攻击者就算拿到密码,没有你的手机,也进不去。

我记得有一次帮客户做渗透测试,他们上了 MFA,但用的是短信验证码。结果呢?攻击者通过 SIM 卡劫持,直接把验证码截走了。短信 MFA 其实并不安全,我建议优先用 TOTP 或硬件密钥(如 YubiKey)。

实战建议:在零信任架构中,MFA 不是可选项,而是必选项。我通常推荐「密码 + TOTP」作为基线,高敏感系统再加硬件密钥。别嫌麻烦,被攻破一次的成本远高于部署成本。

MFA 的优缺点:

  • 优点:大幅提升安全性,即使密码泄露也能挡住大部分攻击。
  • 缺点:用户体验下降(多输一次码),短信 MFA 有被劫持风险,硬件令牌有丢失成本。

4.3 生物特征认证:方便,但有隐私风险

生物特征认证用的是你独一无二的身体特征:指纹、人脸、虹膜、声纹等。它的原理是提取特征点,转换成模板,然后比对。

但这里有个关键点:生物特征不是秘密。你的指纹每天留在各种地方,人脸在社交网络上到处都是。一旦泄露,你没法像改密码一样「改指纹」。

我在项目中遇到过一家公司,他们用摄像头做人脸识别开门。听起来很酷对吧?但他们的系统把原始人脸图片直接存数据库,连哈希都没做。这要是被拖库,所有员工的面部数据就全没了。

重要提醒:生物特征数据必须做「可撤销生物识别」处理。比如用特征向量加盐哈希,而不是存原始图像。这样即使泄露,也能像换密码一样重新生成模板。

生物特征认证的优缺点:

  • 优点:用户体验极佳(刷脸就行),难以伪造(理论上)。
  • 缺点:隐私风险高,特征不可撤销,受环境影响大(光线、指纹磨损)。

4.4 三种认证方式对比

下面这张表是我自己整理的,方便你快速对比:

维度 密码认证 多因素认证(MFA) 生物特征认证
安全性 低(易泄露、易破解) 高(组合因素,攻击成本高) 中高(难以复制,但不可撤销)
用户体验 高(输入即可) 中(多一步操作) 高(无感认证)
部署成本 低(纯软件) 中(需要令牌或 App) 高(需要专用硬件)
隐私风险 低(可改密码) 低(令牌可重置) 高(特征不可改)
抗钓鱼能力 弱 强(尤其硬件密钥) 中(可被深度伪造攻击)

4.5 零信任场景下的选择策略

在零信任架构里,我一般这样选:

  • 低风险操作(查看公开信息):密码 + 设备指纹就够了。
  • 中风险操作(访问内部系统):强制 MFA(密码 + TOTP)。
  • 高风险操作(转账、修改权限):MFA + 生物特征(比如刷脸 + 硬件密钥)。

你想想看,如果所有操作都用同一个密码,那跟没锁门有什么区别?零信任讲究的是「最小权限」和「持续验证」。认证方式也要跟着风险等级动态调整。

我的经验:别追求「一刀切」的认证策略。我曾经帮一家电商平台做改造,他们一开始想全上生物特征。后来发现仓库工人手上有油污,指纹识别率不到 60%。最后我们改成了「密码 + 工卡 NFC」的组合,成本更低,体验更好。

4.6 认证流程的核心逻辑

下面这张图展示了三种认证方式在零信任架构中的典型流程:

零信任认证流程对比 用户 密码认证 哈希比对 通过/拒绝 MFA(密码+TOTP) 双重验证 通过/拒绝 生物特征认证 特征提取比对 通过/拒绝 零信任策略引擎 三种方式最终汇聚到策略引擎

从图上你能看到,无论哪种认证方式,最终都要交给零信任策略引擎做决策。引擎会根据用户身份、设备状态、行为特征、风险等级,动态决定是否放行。