## 概念
身份认证,简单说就是证明你是 “你”,“本质是一个概率问题”,目的是 “确保操作(交易)是客户真实意愿的体现”。
## 分类
身份认证通常有三类要素:一是所知(Something only the user knows),比如密码、安全保护问题等;二是所有(Something only the user has),比如验证码、U 盾等;三是所是(Something only the user is),比如指纹、人脸、虹膜、掌纹、静脉等生理特征和键盘按键行为、鼠标移动轨迹、笔迹、指压、声纹等行为特征。
每类要素都有不足,所是采集、认证技术要求较高;所有容易丢失、被钓鱼;所知容易忘记、被破解。其中所是安全性最高,所知和所有要看具体情况,前段登录 Google 收到提醒:“我们不再支持通过安全问题访问帐号,建议您添加辅助电话号码或辅助邮箱地址,以便确保您的帐号安全无虞”,说明 Google 认为验证码比安全问题更安全,或许因为前者动态后者静态。
## 具体方式
1、密码
混合密码,开始于 PC 时代,最好是 8 位以上字母数字混合,百度、支付宝都是这么要求的,按其中最简单的组合来看,猜对概率是 1/(52×10^7)。
数字密码,银行卡密码多是 6 位数字,猜对概率是 1/1000000。2013 年 8 月上线的微信支付也使用 6 位数字作为支付密码。2014 年 1 月支付宝 8.0 版为从线上走向线下将支付密码由 PC 时代的长密码改为 6 位数字短密码。2015 年 9 月苹果发布 iOS 9,也将解锁密码由 4 位升级为 6 位。
手势密码,因为安卓手机而普及,后来金融类应用大都上线了手势密码辅助登录。手势密码一般要求至少连接 4 个不同的点(3024 种可能),同时连续输错 5 次即需要重置,猜对概率是 5/3024。2013 年支付宝出现过一个飞行模式下可重置手势密码的漏洞,侧面说明测试的重要性。
2、验证码
邮箱验证码,4-6 位字母或数字,PC 时代使用更多。短信验证码,4-6 位数字,移动时代逐渐流行,现在部分应用甚至已经主推短信验证码登录,都无需设置密码。是否采用该方案要看业务类型、产品的整体风控能力和赔付方案,如果能应对,就可以 “把简单留给用户,复杂留给自己”。
动态口令,6 位数字,有硬件设备如网易将军令、中银 e 令等,也有软件如 Google Authenticator、百度帐号管家、QQ 安全中心等。
3、业务数据
个性化且有趣,比如微信的联系人、支付宝的好友 + 淘宝收货地址 & 购买商品、京东的收货人姓名 + 地址等。至于猜对概率,以 2017 年支付宝熟人可改登录密码漏洞为例,正常情况下是 1/81,熟人情况下更高。由于有些人的好友未必有 9 个且未必是真实头像,方案的普遍性和验证效率也有欠缺。
4、指纹
2013 年 9 月苹果发布 iPhone 5s,支持 Touch ID,同时宣称其误识率是 1/50000,再后来,华为、小米等厂商也上线了指纹功能。
5、人脸
2015 年 11 月支付宝 9.3 版上线刷脸登录,2017 年 9 月苹果发布 iPhone X,支持 Face ID,同时宣称其误识率是 1/1000000,再后来,华为、小米等厂商也上线了人脸功能。商用方面,支付宝蜻蜓、微信青蛙、银联商务蓝鲸等刷脸支付产品已进入线下(如味多美),暂未尝试,不过体验过火车站(如北京西站)的刷脸过站,识别速度和准确率还不错。
6、智能判断
比如支付宝风控系统对用户的行为特征包括设备、时间、位置、操作、消费习惯等进行建模,概率上判断是否是你。由于特征采集非用户侧发起,更多地用于风险判断,不直接用作身份认证。
## 产品设计
身份认证的方式在不断演变,不变的是根据不同操作风险程度采取不同认证方式的处理思路:低风险单因素认证,中风险双因素认证(2FA,比如 Google、Apple 的两步验证登录,一步密码,一步验证码),高风险多因素认证(MFA),需要注意的是流程中不要出现死循环。对于风险的判断,早期是人工,现在是风控系统智能判断,风险低认证就简单点,当然前提是合规且不影响用户的安全感。
合规层面,人行在 2015 年 12 月发布的《非银行支付机构网络支付业务管理办法》(中国人民银行公告〔2015〕第 43 号)提到:“支付机构可以组合选用下列三类要素,对客户使用支付账户余额付款的交易进行验证:(一)仅客户本人知悉的要素,如静态密码等;(二)仅客户本人持有并特有的,不可复制或者不可重复利用的要素,如经过安全认证的数字证书、电子签名,以及通过安全渠道生成和传输的一次性密码等;(三)客户本人生理特征要素,如指纹等。”
安全感层面,之前讲过产品设计是安全性和便捷性的平衡,但严格说是安全感和便捷感的平衡,因为用户接受了才算。比如曾经修改支付宝登录密码,点击后相关选项后直接就让我设置新密码(可能是考虑用户在常用设备上操作),当时就慌了,因为流程太简单,担心别人也可以这么轻易地改掉我的密码,后来支付宝增加了页面加载提示 “正在检测安全…”,感觉就好多了。
产品设计为业务发展服务,2015 年支付宝 9.0 版从移动钱包转型为社交生活平台,为提高应用打开速度取消手势密码,结果被网友群槽,支付宝于是改为提供不启用、启动支付宝时启用、财富和我的页面启用三个选项供用户选择。不知道后续整体数据如何,但我自己经此过后没再用过手势密码。
支付宝一直是我的主力支付工具,使用频率高于京东支付、微信支付等,个人非常喜欢支付宝曾经的一句口号:“因为信任,所以简单”,当然我们也知道有句俄罗斯谚语:“Trust but Verify”。
## 扩展阅读
1、问答:如何看待支付宝可能出现的登录漏洞、通过短信验证码验证身份是否安全、解锁手势密码的正确姿势、为什么银行业务不能完全取消柜台
2、文章:身份验证和识别 (ID&V) 的内涵和外延、支付安全感的设计思考