首页 / 业界 / 正文

身份认证背后没人明说的成本账

上次去线下技术沙龙,碰到个做企业SaaS的产品经理吐槽,说他们花三个月迭代的多因素认证功能,上线后用户投诉量直接涨了四成。 有人说自己赶早班地铁刷脸过闸,口罩加帽子挡了大半张脸,站在识别区僵了三分钟,后面排队的人差点把手里的豆浆挤洒。 很多人对身份认证的认知还停留在“输入密码登录”的阶段,觉得这就是个系统里可有可无的小模块,越安全越好,越复杂越靠谱。 根本不是。

没人愿意为多走的两步路买单

你要知道,用户对登录流程的耐心阈值,比你想的低得多。 之前跟某国有行的安全团队聊,他们把原来的短信验证码换成语音回拨验证,防住了绝大多数撞库攻击,但每月的有效登录请求直接掉了一成多——很多老年用户看到陌生来电直接按掉,根本想不到是银行发的登录校验。 你把登录流程从“输密码”改成“输密码+收验证码+点确认”,安全系数是上去了,但用户每次登录要多花15秒,碰到手机没电、信号差的情况,直接就会放弃操作。 跟十几个做To C产品的运营聊下来,大家都有个共识,登录流程每多一步,就会有近两成的用户直接流失——没人愿意为了一个登录操作,专门从兜里掏出手机等几十秒的验证码。 哦对,还有那种强制要求每90天换一次密码,还不能跟之前三次的密码重复的规则。用户为了凑要求,只能把密码从“abc123”改成“abc1234”“abc1235”,本质上根本没提升安全性,只是给用户添了麻烦。
普通用户登录企业SaaS系统的多因素认证操作界面
很多做安全的团队总觉得,只要防护等级够高,用户就该配合。但现实是,你把流程设得越复杂,用户就会找各种歪路绕开——比如把所有密码都存在同一个便利贴里,比如把验证码截图存在相册里,反而给攻击者留了更多可乘之机。

那些藏在链路里的隐性代价

别以为身份认证就是写几行校验代码的事。 之前碰过一个做工具类产品的小团队,上线头半年觉得身份认证就是个附带功能,随便套了个开源组件,接口连基础的频率限制都没加,被人用脚本扫了大半个月,等发现的时候,已经有十几万条账号密码被打包挂到暗网卖了,最后光是合规整改的成本,就够他们当初招三个安全工程师干两年。 你要是做生物识别认证,不管是指纹还是人脸,得有端侧的加密计算模块,得防照片、视频、3D面具的攻击,得做模型的持续迭代,还得满足不同地区的合规要求——比如有的地方明确要求生物特征数据不能出本地服务器,那你就得在每个区域单独搭一套识别节点,光这个算力和存储成本,每年就是七位数的投入。 更别说那些看不见的运维成本:你得24小时盯着认证接口的可用性,要是哪天短信通道堵了,或者人脸识别的算法服务挂了,所有用户都登不进去,那造成的业务损失,比你省那点服务器成本高得多。 说白了,很多团队一开始算成本的时候,只算了开发功能的钱,根本没把后续的运维、合规、应急的成本算进去,等真的出了问题,才发现原来身份认证是个要持续投钱的长期活。
身份认证全链路数据加密传输架构示意图
身份认证全链路数据加密传输架构示意图

没有绝对安全的认证,只有能承受的风险

最近大家都在聊的无密码认证,听着很玄,其实本质就是把原来存在服务器上的密码校验逻辑,换成存在你本地设备上的非对称密钥,你不用记复杂的密码,只要设备解锁了,就能完成认证。 但麻烦在于,你换手机的时候,得把密钥从旧手机导到新手机,要是旧手机丢了,你得走一套非常繁琐的账号找回流程,才能拿到新的访问权限。很多人刚用的时候觉得爽,等真碰到换设备的情况,才发现原来的方便都是有前提的。 我之前碰过个做游戏公司的安全负责人,说他们之前给内部的代码仓库开了人脸登录,结果有个员工戴了个印着自己脸的口罩,就把仓库的权限登进去了——后来他们把人脸验证改成了必须配合硬件密钥,才没出过类似的乌龙。 你说这事闹的。 没有任何一种认证方式是万无一失的。人脸可以被3D面具骗,指纹可以被硅胶膜复制,就算是你花几百块买的硬件安全密钥,也有可能被侧信道攻击读取出密钥信息。 所以从来没有什么“必须用最高等级认证”的标准答案。你一个看天气的小程序,用手机号验证码登录就够了,没必要让用户每次都插个硬件密钥;但如果你是管核心代码的内部仓库,那至少要密码加硬件密钥的组合,才能把风险压到可接受的范围。 上周我帮我妈弄她那个银行APP的登录,她之前记了三个密码,试来试去都不对,最后我帮她开了指纹登录,她站在手机前面愣了两秒,说原来现在登录这么简单。 我当时就想,其实身份认证这事,从来都是两边晃的天平。你给用户多一点方便,就要多承担一点被攻击的风险;你给系统多上几层防护,就要忍受一部分用户因为嫌麻烦走掉。 没有谁能做到两边都占全。