第四章 零信任架构中的身份验证:多因素认证、单点登录、生物识别与无密码认证

零信任说白了就是“永不信任,始终验证”。谁来验证?第一道关卡就是身份验证。我见过太多团队把精力花在网络隔离上,结果被一个弱口令直接打穿。嗯,这一章咱们就聊聊最常见的几种身份验证手段:MFA、SSO、生物识别和无密码认证。不聊虚的,只讲选型和实战。

4.1 为什么身份验证是零信任的第一道门

在零信任模型里,没有内网外网之分。每一次访问请求都要验证身份。哪怕请求来自公司内部的IP,也得拿出证明。我个人习惯画一条原则:身份是新的边界。身份验证不牢,后面所有的策略都是白搭。

核心原则:零信任中的身份验证必须满足三者取二(知识、拥有、固有),且要有抗重放和抗代理能力。单靠密码,连及格线都够不上。

4.2 多因素认证(MFA)—— 最低门槛的防御

MFA不是什么新概念,但落地细节坑很多。说白了就是你要提供两种或以上的凭证:密码(你知道的)+ 短信验证码(你拥有的)+ 指纹(你固有的)。我建议至少上两层。

我曾经在一个金融项目里遇到这样的问题:他们启用了MFA,但把短信验证码设成了4位数,而且允许验证码30分钟内有效。结果被中间人截获后,攻击者用脚本轮询就绕过了。记住,验证码位数要够,有效期别超过60秒。

实战建议:优先选择基于时间的TOTP(如Google Authenticator),其次是推送认证,最后才考虑短信。短信费用高、延迟大、且容易受到SIM Swap攻击。

4.3 单点登录(SSO)—— 体验与安全的平衡

SSO让你一次登录,到处访问。用户不用记一堆密码,也减少了密码泄露面。但风险也很明显:单点失守,全线崩塌。所以我个人在做SSO选型时,一定会要求必须配合MFA,而且要对不同敏感度应用设置二次认证。

你在公司里很可能用过SAML或OIDC。我简单说一下区别:

协议 适用场景 身份传递方式 安全重点关注
SAML 2.0 企业应用、SaaS XML断言 签名验证、断言注入
OIDC(OpenID Connect) 现代Web/移动App ID (JWT) 劫持、iss校验

我个人倾向于OIDC,因为JWT结构轻、自包含、便于在微服务间传递身份信息。但要注意,SSO的IdP(身份提供商)必须是高可用的,否则瘫痪。

特别注意:SSO不要和零信任的细粒度策略混淆。SSO只解决“你是谁”,不解决“你能做什么”。权限管控要靠后面的策略引擎。

4.4 生物识别—— 方便但别迷信

指纹、人脸、声纹、虹膜……生物特征确实方便,因为“你”就是密码。但我必须提醒一句:生物特征不可撤销!密码泄露了可以改,指纹泄露了你改不了手指。所以生物识别最好只作为MFA中的第二因素,不要单独使用。

我在一个物联网项目里用过指纹模块,结果发现传感器分辨率和算法版本不同会导致误识别率飙升。如果你是做移动端,Face ID和Touch ID比较成熟;如果是PC端,Windows Hello的摄像头红外方案相对安全。

4.5 无密码认证—— 未来趋势

无密码不是没密码,而是用密码学证明代替共享口令。比如WebAuthn / FIDO2:你注册时生成本地密钥对,私钥不离开设备,公钥保存在服务器。登录时服务器发挑战,你用私钥签名。这样即使服务器被拖库,也无法冒充用户。

这样做的好处很明显:没有密码可被钓鱼、没有密码可被重复使用、没有密码可被暴力破解。但缺陷是设备丢失后恢复流程复杂,我建议结合多设备密钥和恢复码。

避坑指南:我曾经见过团队直接禁用密码登录,结果用户换了手机无法登录,花了三天才找回账号。一定要给用户提供足够安全的恢复路径(比如备用密钥或带外验证)。

4.6 技术选型对比与决策路径

选型不是挑最贵的,而是挑最适合你业务场景的。下面这张表可以帮你快速决策:

技术 安全性 用户体验 部署成本 适用场景
MFA(TOTP) 中高 中 低 所有系统的基础防御
SSO + MFA 高(需配合MFA) 高 中 多应用、企业内部
生物识别(终端) 中 极高 中(需硬件) 移动端、PC登录
无密码(WebAuthn) 高 高 中高 高安全场景、零信任试点

我个人推荐的做法是:以SSO为入口,强制MFA,并引入WebAuthn作为无密码备用。生物识别做终端解锁的推动即可,不要对服务器暴露原始生物样本。

身份验证选型决策流程 用户访问请求 是否有多应用场景? 是 → 部署SSO | 否 → 单点MFA 集成SSO (OIDC/SAML) 启用MFA (TOTP优先) 用户设备是否支持WebAuthn? 是 → 开放无密码 | 否 → 保留MFA 启用无密码 (WebAuthn) 保留MFA + 生物识别 无论走哪条路,均需强制MFA且对敏感操作二次认证

看到这张图,你应该能理清选型的逻辑了。不管走哪条路,最终都必须确保身份验证具备抗钓鱼、抗重放能力。我见过一些厂商宣传“无密码即安全”,结果没了密码,攻击者直接利用设备漏洞绕过。零信任的身份验证没有银弹,只有分层防御。

复盘笔记:零信任身份验证的选型公式 = 用户体验 × 安全模型 × 恢复成本。别只看宣传,要动手测。我曾被一个号称“AI人脸识别”的云服务坑过,离线环境竟然回退到明文密码,真是让人倒吸一口冷气。