标签归档:密码

聊聊身份认证

## 概念

身份认证,简单说就是证明你是 “你”,“本质是一个概率问题”,目的是 “确保操作(交易)是客户真实意愿的体现”。

## 分类

身份认证通常有三类要素:一是所知(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,比如 GoogleApple 的两步验证登录,一步密码,一步验证码),高风险多因素认证(MFA),需要注意的是流程中不要出现死循环。对于风险的判断,早期是人工,现在是风控系统智能判断,风险低认证就简单点,当然前提是合规且不影响用户的安全感。

合规层面,人行在 2015 年 12 月发布的《非银行支付机构网络支付业务管理办法》(中国人民银行公告〔2015〕第 43 号)提到:“支付机构可以组合选用下列三类要素,对客户使用支付账户余额付款的交易进行验证:(一)仅客户本人知悉的要素,如静态密码等;(二)仅客户本人持有并特有的,不可复制或者不可重复利用的要素,如经过安全认证的数字证书、电子签名,以及通过安全渠道生成和传输的一次性密码等;(三)客户本人生理特征要素,如指纹等。”

安全感层面,之前讲过产品设计是安全性和便捷性的平衡,但严格说是安全感和便捷感的平衡,因为用户接受了才算。比如曾经修改支付宝登录密码,点击后相关选项后直接就让我设置新密码(可能是考虑用户在常用设备上操作),当时就慌了,因为流程太简单,担心别人也可以这么轻易地改掉我的密码,后来支付宝增加了页面加载提示 “正在检测安全…”,感觉就好多了。

产品设计为业务发展服务,2015 年支付宝 9.0 版从移动钱包转型为社交生活平台,为提高应用打开速度取消手势密码,结果被网友群槽,支付宝于是改为提供不启用、启动支付宝时启用、财富和我的页面启用三个选项供用户选择。不知道后续整体数据如何,但我自己经此过后没再用过手势密码。

支付宝一直是我的主力支付工具,使用频率高于京东支付、微信支付等,个人非常喜欢支付宝曾经的一句口号:“因为信任,所以简单”,当然我们也知道有句俄罗斯谚语:“Trust but Verify”。

## 扩展阅读

1、问答:如何看待支付宝可能出现的登录漏洞通过短信验证码验证身份是否安全解锁手势密码的正确姿势为什么银行业务不能完全取消柜台
2、文章:身份验证和识别 (ID&V) 的内涵和外延支付安全感的设计思考