《停止密码掩盖》一文的作者是雅各布·尼尔森博士,一位非常有名的网络和用户界面专家:
"雅各布·尼尔森博士是尼尔森·诺曼集团的用户代言人和负责人,他和唐纳德·A·诺曼博士(苹果电脑负责研发的前副总裁)都是该集团的共同创始人。在1998年创立NNG之前,他是太阳微系统公司的一位著名工程师。
尼尔森博士发起了"简化可用性工程"运动,主张对用户界面进行改善,实现方便快速的使用,并发明了包括启发式评估法在内的多种可用性方法。他拥有79项美国专利,内容主要涉及到如何让互联网变得更易于使用的办法。"
从尼尔森博士的背景中我们可以看出,他提出的使用密码掩盖是个坏主意的观点是不应该被大家所忽视的。
为什么要掩盖密码?
在阅读这篇文章之前,我一直都认为掩盖密码是一件理所当然的事情:
· 为了防止其它人偷看输入的密码,进行掩盖是必须的操作。
· 对于安全来说,自动完成是个坏习惯,但在掩盖操作的帮助下,可以阻止其它人看到密码前部的相同字符。在多位用户使用同一台计算机的时间,这种情况需要重点关注。
· 进行密码掩盖是获得监管机构许可的需要。公司的安全策略也可能要求在任何时候都要对输入的密码进行掩盖。
为什么进行密码掩盖是错误的
尼尔森是这样总结其观点的:
"当用户输入的是密码而得到的反馈却仅仅是一行星号的时间,就意味着可用性的损失。通常情况下,掩盖密码不仅仅不会增加安全性,而且还会由于造成登录失败从而进一步导致业务成本的增加。"
通过研究,尼尔森得出了这样的结论–使用莫名其妙的星号覆盖密码字符违背了一项重要的可用性原则,即提供感觉反馈。为了支持这个主张,尼尔森进一步解释道:
· 在填写表格时,由于看不到所输入的文字,用户就会出现更多错误。这样会导致他们感觉信心不足。这种用户体验方面的双重削弱意味着人们更有可能做出的选择是放弃登录你的网站,这样的结果进一步导致业务的流失。
· 用户越是不敢确定地输入密码,就越有可能使用非常简单的密码或从计算机文件中拷贝–粘贴密码的操作方式。这两种行为都导致了真正安全性的缺乏。
关于该理论,我并没有看到可供研究的任何参考文献,以便进行验证上述说法是否属实,但看起来这两个观点是值得思考的。
使用便携式设备
当使用便携式设备的时间,我是支持尼尔森的观点,掩盖密码真的是一件非常麻烦的事情。举例来说,我就知道一些同事就是象尼尔森所说的那样进行操作的。 他们复制下密码以便在使用的时间实现更轻松的输入。在访问类似银行门户之类的重要网站时,这种做法可以说是非常不明智的。
另一种观点
杰森·蒙哥马利,审计网络安全方面的一位安全专家在一篇日志提出了一个不同的观点。作为一个安全爱好者,我对他回应尼尔森所写的内容很感兴趣。内容我在前面已经提到过了,在这里重复一下:
"通常情况下,掩盖密码不仅仅不会增加安全性,而且还会由于造成登录失败进一步导致业务成本的增加。"
蒙哥马利的回应是:
"尼尔森也许是对的:它的确有可能导致公司成本的增加。但问题的关键是成本有多大?安全不应该成为所有一切的终极目标。永远都应该以公司业务作为最高优先。根据所保护的功能来考察安全控制的成本才是正确的态度。"
蒙哥马利先生说得非常好。我支持你的观点,并且相信尼尔森博士也会同意这一点。这就是所谓的妥协,并且而我认为尼尔森或许已经找到了解决的方法:
"是的,用户有时的确会遇到旁观者偷看密码的情况,举例来说,在网络咖啡馆的时间。因此,向他们提供一个复选框来对密码进行掩盖是应该的;对于银行账号之类的高风险应用,你也许应该把复选框作为缺省设置。在安全与可用性之间取得平衡的时间,有时候我们应该更重视安全性。"
这看起来似乎是行之有效的,你是怎么认为的呢?它考虑到所有的可能性了吗?我们什么时间才能知道自己已经非常安全,可以降低安全方面的标准,以便获得更高的可用性呢?
最后的思考
在读到尼尔森的文章之前,我一直认为掩盖密码本来就属于操作过程的一部分。但现在我不是那么的肯定了。过分的复杂性会导致交易失败,失去客户。不过从另一方面来说,对于安全来说,不掩盖密码就意味着增加了一项潜在的风险。
我们围绕着密码的使用展开了讨论,这让我不断在思考目前非常流行的多因素验证的必要性。不过一厢情愿对于我们来说,并没有什么帮助。对于可用性与安全性之间的冲突,你又是怎么认为的呢?