第四章 零信任架构中的身份验证:多因素认证、单点登录、生物识别与无密码认证
零信任说白了就是“永不信任,始终验证”。谁来验证?第一道关卡就是身份验证。我见过太多团队把精力花在网络隔离上,结果被一个弱口令直接打穿。嗯,这一章咱们就聊聊最常见的几种身份验证手段: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作为无密码备用。生物识别做终端解锁的推动即可,不要对服务器暴露原始生物样本。
看到这张图,你应该能理清选型的逻辑了。不管走哪条路,最终都必须确保身份验证具备抗钓鱼、抗重放能力。我见过一些厂商宣传“无密码即安全”,结果没了密码,攻击者直接利用设备漏洞绕过。零信任的身份验证没有银弹,只有分层防御。
复盘笔记:零信任身份验证的选型公式 = 用户体验 × 安全模型 × 恢复成本。别只看宣传,要动手测。我曾被一个号称“AI人脸识别”的云服务坑过,离线环境竟然回退到明文密码,真是让人倒吸一口冷气。