写点什么

谁说天平不稳——安全性与用户体验设计思考

用户头像
石君
关注
发布于: 2020 年 07 月 21 日
谁说天平不稳——安全性与用户体验设计思考

鉴于工作,最近一直在思考移动 App 安全要求与用户体验平衡的问题。由于没有很好的方法论,这听一点那听一点,总觉得不成体系、没有底气。突然想起来书柜里还有一套《设计心理学》,买了 5 年了一直没仔细研读过,刚买来的时候也是努力翻了几页就没动力了。现在带着问题去读,阅读体验果然不一样,念念不忘必有回响确有道理,这也让我理解了“书非借不能读也”的真实含义——借来的才是着急要读的,所谓书到用时。


总结下来,我把对于安全要求与用户体验平衡的理解分为 3 个派别:

  1. “安全大于体验”派:倾向于从安全问题、安全合规角度提出问题,有可能存在安全风险那就一定得修复,还得照着最严格的防护能力去做,有可能不满足合规要求那就一定得按照要求去改;即便是参考别人家的做法,也是参照银行这类做的最严格的 App 的做法。

  2. “骑墙”派:安全部门强势就听安全的,业务部门强势就听业务部门的,除了底线之外都可以商量。根据我的体会,越是在纯技术工作中强调底线,其实越没有底线。技术问题应该交由清晰的技术能力边界解决,“骑墙”作风下的安全治理,往往演变成员工说不清,领导拍脑袋。

  3. “实事求是”派:无所谓部门强势与否,在出现问题之后安全人员能够根据问题利用难易程度判断实际风险,产品能够根据实际风险判断产品设计是否需要改动,或通过业务隔离的方式,根据业务等级设置不同门槛;在参考别人家做法时,能够同类对标、摸清门道,知道相同现象背后有不同的本质。


有没有看到过人们在电梯里反复按上楼按钮,或者不听地按接到十字路口人行道的控制按钮?有没有曾经在一个拥挤的交通路口等待很长时间的交通信号灯,而在等待中不住地担心是否信号指示系统注意到了自己的车(骑自行车时的一个常见问题)?在所有这些情况下缺少的是反馈:一些让你知道系统正在处理你的要求的方式。

反馈——沟通行动的结果——是控制论、信息论的著名概念。

反馈必须是即时的:即使延迟 1/10 秒就会令人不安。如果拖延太久,人们经常会放弃,而选择其他的活动。 反馈还必须提供信息。 过多的反馈可能比过少的反馈更恼人。 


——《设计心理学》


我们以 App 登录功能为例展开分析。


四大行手机银行 App 登录功能都使用了自定义键盘,但支付宝、微信用的是系统自带键盘,登录时有的按键有反馈,有的完全没有,有的密码输入框支持反显,有的不支持,有的键盘是乱序的,有的又很正常。还有一些外部规范要求,移动金融客户端规范要求、网上银行客户端安全要求、个人信息安全规范要求等等。总之,需要考虑的因素很多。


  • 首先说按键反馈。如《设计心理学》所说,反馈其实是一种心理需求,是人对机器控制的感受,所以如果仅出于安全考虑,不允许按键反馈,一定会触发用户失去掌控的感觉,这样的体验是有问题的。另外,信息安全人员抛出的安全问题,比如说按键反馈的话存在被截屏导致信息泄漏的风险,其实从禁止截屏角度也可以解决这一风险,不要一根筋。


  • 再说说密码输入框反显的问题,多数银行 App 都是不支持的,但支付宝、云闪付支持。

1、如果从严执行《JR∕T 0092-2019 (人行 237 号文)移动金融客户端应用软件安全管理规范》中“5.1.2.2 个人金融信息展示” “处于未登录状态时,不应展示与个人信息主体相关的用户鉴别信息”这一要求,那么前端是不能在任何情况下展示密码的,但如果我们考虑这个密码是在用户主动点击了密码输入框的小眼睛之后才出现的,这算是一个业务功能,而非主动展示,也能说得过去。

2、此外,信息安全专业的同学可能会觉察出,如果使用了小眼睛,一般前端就不会对按下的键盘内容进行实时加密了,这里也存在风险。没错,是的,但我们实际讨论一下,没有实时加密的内容,泄密的风险有多大?越狱/root 之后,在内存中被窃取的风险才是真实存在的,但我们还有 App 加固,能够增加破解难度;传输的时候还有传输时的内容加密和 https,链路上被窃取的可能性也不大。再看看央行规范,还以《JR∕T 0092-2019 (人行 237 号文)移动金融客户端应用软件安全管理规范》为例,“5.1.2.1 安全输入”的基本要求是“客户端应用软件应提供客户输入银行卡支付密码和网络支付交易密码的即时防护功能”,增强要求才加上了所有“客户输入信息的即时防护功能”。这其实是一种引导,至少现阶段可以把精力重点放到支付环节的保障上。

3、说回支付宝、云闪付支持输入框反显的问题,作为支付工具,他们的定位与银行 App 其实是不一样的,打开次数使用场景就不一样。另外,支付宝、云闪付敢放开其他家就敢放开吗?你有他们家后台的风控系统么?你有先行赔付的底气么?这不是照葫芦画瓢的事,不能只看个皮毛、学个热闹。


  • 再来说说自定义键盘的事,根据规范的基本安全要求是 App 应在“客户输入银行卡支付密码和网络支付交易密码”时进行即时防护,只要我们留意,我们就一定会注意到不管是银行 App 还是支付宝、云闪付这些,涉及支付就一定会使用自定义键盘;但支付宝在登录环节是使用手机系统自带键盘的,并没有使用自定义键盘。上面也说了,这一方面是支付宝轻前端重后端理念的体现,敢于放开,另一方面,也是政策引导的结果。后面这一点需要产品经理们认真体会,当下流行的查询、交易分离,就是一种从安全虎口下争取来的便利,甚至银行也在尝试这样做,下图是工行未登录状态下的查询界面,仅支持查余额。

  • 最后,来说说密码复杂度的问题。阅读至今,《设计心理学》这本书传递到我的另一个重要理念是,设计是一个整体,每一个部分都可以体现产品的设计语言,甚至还需要考虑自家产品之外、同类产品、同类操作给人带来的感受。书里介绍到:

绝大多数情况下,我们不会像《天方夜谭》里面的卡西姆那样,因为忘记了密码而掉脑袋,但是想记起密码仍旧是件很困难的事。记住一两个密码也许不难,例如一个组合密码锁,一个口令或门锁的密码,但若要记的密码太多,我们的记忆力就会出现问题。在生活中,似乎存在一个阴谋,一个让我们的记忆力超负荷运转,从而达到整垮我们理智的阴谋。

为了保证系统安全,我们设计了超复杂的口令组合,提出了定期改密的要求,但往往“让事情过于安全了,反而变得不安全了”。App 功能是一个整体,除了复杂的密码,我们还有生物指纹验证、滑动验证码验证、短信验证码验证这些更方便且不需要记忆的手方式可以使用;除了登录入口,App 里还有交易入口、资料更新入口,我们还有很多道大门可以加锁,登录入口则加强手势、人脸、指纹等便捷方式上引导。


啰嗦了这么多,抽取一下主要观点,在对移动 App 进行设计时,有助于安全性与便利性天平平衡的因素有:

  1. 轻前端重后端,后端有风控,公司有风险接受的能力和意愿;

  2. 业务上查询与交易分离,改严进宽出的方式,变为宽进严查的做法,树立整体安全的理念;

  3. 所有操作都要给用户以反馈,且反馈经过设计,一个比较好的安全方面的反馈策略是触发式/默认隐藏,比如验证码。

  4. 如果实在拿不定主意,不知道天平该往安全要求上倾斜,还是往用户便利性上倾斜,可以做成前台开关供客户自己选择,然后记住客户的偏好。


发布于: 2020 年 07 月 21 日阅读数: 112
用户头像

石君

关注

与其更好,不如不同 2020.03.26 加入

分享孤独,成为故事,分享思考,成为思想。 做信息安全领域的探险家。

评论

发布
暂无评论
谁说天平不稳——安全性与用户体验设计思考