3.12 密码的反模式
什么是密码的反模式呢?这为什么值得一提呢?许多社交网站一直都在与“零状态启动”状态做斗争:用户刚刚进入网站后没有好友,网站可能会将用户数据与从其他的网络服务(例如,用户的在线通讯录)所获取数据相比较,然后让用户在本站内页找到他自己的好友。网站可能会要求用户开放他们的各种在线通讯录,这样网站就能将通讯录中的姓名、电子邮件地址与网站现有客户进行匹配,然后向新注册用户推荐一组已在该站注册过的好友,以便让新用户快速建立起人际关系网。在其他情况下,网站会集合来自其他账户的数据并让用户连接账户,如图3-23所示。
图3-23:密码反模式要求用户认证另一个银行账户,参见USAA(http://www.usaa.com)
由于实现起来很容易,所以网站都会采用这种密码反模式。问题是要实现这种交互,网站会要求用户提供另一个服务的用户名和密码。许多网站会一次性地收集这些用户数据,并承诺不会将用户名和密码用于其他用途,但是用户无法相信网站的这一承诺,他们也无法获知网站的主人真的没有说谎。这么做的最终目的就是让用户非常轻松愉快地找到他的好友并且能迅速融入网站的社交活动中。不幸的是,有许多钓鱼网站和黑客创建看起来可信的网站或服务,但它们实际上是想搞到用户的账户并有着“邪恶”的用途。此外,该做法违背了许多网站在用户刚刚访问时向用户承诺的服务条款。
密码的反模式唆使用户将自己的登录凭证甩给了一个陌生人,并且将用户的登录凭证设置得更易通过互联网来骗取。人们习惯了该做法后,就会不假思索地将自己的登录信息提交给另一个新网站,以便换取一些很酷的应用权限。这对银行信息来说特别危险,因为泄露的登录凭证会从经济上毁掉一个人。
另一种比较安全的变通做法是使用OAuth、OpenID或者Facebook、Twitter、雅虎和谷歌的身份连接API,通过正式授权来访问用户在其他网站中的数据。
OAuth是“一个可以通过简单而标准的方式,从桌面和网络应用中获取安全的API授权的开放协议”。也就是说,它是一种开放性技术,允许网站以安全的方式访问用户数据,并且不需要用户将用户名和密码洒向整个互联网。实际上,数据归第三方网站来保存和控制,需要到第三方的网站上来访问这些数据。很多大型互联网公司都同意支持OAuth,因此我们没有理由保留这种反模式,实际上,这种反模式已经越来越难以找到了。
最终,用户应该能够访问自己的数据并且可以将自己的数据从一个网站带到另一个网站——不论是他们的关系网还是他们的社交图,或者是他们所贡献的数据,例如照片或视频。通过人际关系来提升用户体验的社交网站,应该采用安全的认证交互,这样既能让用户访问他们的数据,又能让用户养成更好的上网习惯来保护他们的密码安全。