网站的无密码登录

标签: IT | 发表时间:2012-10-03 21:00 | 作者:
出处:http://www.ruanyifeng.com/blog/

大部分网站,都要求用户登录。

常见的做法,是让用户注册一个账户。

这种做法并不让人满意。

对于用户来说,每个网站必须记住一个密码,非常麻烦;对于开发者来说,必须承担保护密码的责任,一旦密码泄漏,对网站的业务和信誉都是 巨大打击

所以,很早以前,人们就开始设想"无密码登录"(password-less login)。这对用户和网站,都将是极大的减负。

本文先回顾"无密码登录"的几种常见做法,然后探讨一种最简单的实现。

一、OpenID

OpenID是最早提出的一种无密码登录。

它的设想是这样的:互联网上每一个网址(URL),都指向一个独一无二的网页,这说明网址具有唯一性。因此,可以用网址来标识用户。

所以,使用OpenID的网站,不要求用户输入"用户名",而要求用户输入一个代表其身份的网址。然后,向该网址进行求证,如果得到证实,就允许用户登录,从而实现"无密码登录"。

OpenID有两个很大的缺点:一是需要服务器端支持,二是使用网址表示身份,违背直觉,普通用户难以理解。因此,始终无法得到推广。

二、第三方账户

OpenID的实质,是让第三方网站认证用户身份。那么很显然,这等同于用户在第三方网站登录。

因此,可以直接告诉用户,使用第三方帐号登录(前提是对方支持OpenID)。

这样做的优点是比较直观,用户容易接受;缺点是自身的业务,从此多多少少要依赖第三方网站。比如,现在很多网站使用Facebook帐号登录,一旦Facebook出现故障,这些网站都会受到影响。

三、Persona

去年,Mozilla提出了 Persona方案,号称是无密码登录的 终极解决方案

它与OpenID异曲同工。后者用网址标识用户,它用Email标识用户。用户键入Email地址以后,网站向Email服务器请求认证。

虽然这种方案还处在推广期,效果有待观察。但是,我目前不太看好它。一则,它的 技术要求和流程,比OpenID更复杂,无法用一句话讲清楚;二则,它要求服务器端支持,很难想象世界上大部分Email服务器都会部署Persona代码。

四、OAuth

OAuth协议其实与"第三方帐户"是一回事。

"第三方账户"是第三方网站提供用户身份认证,属于"认证"服务(authentication);OAuth则是更进一步,第三方网站允许你直接操作它的用户数据,属于"授权"服务(authorization)。

因为涉及到用户数据的改变,所以OAuth认证比Openid认证要求更严格。通常,只有针对某个第三方网站的外部服务,才需要用到OAuth;如果只是单纯地区分用户身份,其实没必要用它。

五、Email一次性登录

上面四种登录方法,是目前主流的"无密码登录"。下面,我想介绍一种最简单的实现,它是美国程序员Ben Brown在今年7月份 提出来的。

他的做法很简单。用户登录的时候,只显示一个Email地址输入框。

用户输入Email地址以后,网站就向该地址发出一封邮件,里面包含了一个登录链接。用户点击这个链接,就证明他/她确实是这个邮箱的主人,身份有效,从而实现登录。

登录链接只在一段时间内有效,但是可以通过cookie,让用户长时间处在登录状态。如果cookie失效,则重新向用户邮箱发出另一个登录链接即可。

由于整个认证过程,都通过电子邮件完成,彻底实现"无密码登录",而且操作流程很自然,易于理解。更重要的是,它使用现有的Email协议,不需要服务器端部署新的代码,具有最好的兼容性。

主要缺点是,它需要用户额外查看一次邮箱,稍显麻烦;它也不适合那种用户无法打开Email的场合,比如在朋友家中上网。因此,使用它的网站,还必须部署备用的登录方式。

总的来说,我觉得这是一个简单易行的好方法,以后做网站的时候,打算尝试一下。

想听听大家的意见,你觉得这种方法可行吗?

(完)

文档信息

相关 [网站 密码 登录] 推荐:

网站的无密码登录

- - 阮一峰的网络日志
常见的做法,是让用户注册一个账户. 对于用户来说,每个网站必须记住一个密码,非常麻烦;对于开发者来说,必须承担保护密码的责任,一旦密码泄漏,对网站的业务和信誉都是 巨大打击. 所以,很早以前,人们就开始设想"无密码登录"(password-less login). 这对用户和网站,都将是极大的减负.

Mozilla Persona测试版发布,一个密码登录所有网站

- - ITeye资讯频道
Mozilla Persona 跨平台和浏览器的登录管理系统,打造安全、便捷简单的登录体验. 支持Persona 登录的网站使用电子邮件地址即可登录,不需要通常网站所必须的用户名和密码,用户也可以免除记住注册 ID 和某个网站登录密码的麻烦. 关于Mozilla Persona: https://login.persona.org/.

登录密码与HTTP Request

- - 博客园_首页
我们知道,在一些主流的浏览器中按F12,就会拉出一个查看web访问详细信息的窗口,在firefox中叫firebug,在chrome或者IE中,则叫developer tools,他们功能都大同小异,当然,比较重要的自然是查看http request与response, 幸运的是,这三个工具都把其放在一个叫Network的tab下面,虽然显示格式略有不同,但基本信息都是一样的.

详解 Mac OS X Lion 的登录密码漏洞

- Power - cnBeta.COM
Defence in Depth 发现了一个 Mac OS X Lion 下的安全漏洞,使得任何能接触到已经登录的 Lion 的人都可以通过一个简单的命令更改当前用户的登录密码,且这一过程并不需要输入任何密码.

谷歌牵头FIDO联盟发布无密码登录标准

- - cnBeta全文版
今年10月谷歌发布了利用USB秘钥登陆Chrome和Gmail的新方法. 这种技术来自谷歌支持的FIDO联盟,这一联盟旨在推动可以替代用户名和密码的新登陆方式. 该联盟今天发布了无密码访问网站和在线服务的最终通用标准. 在谷歌、PayPal和eBay高管的带领下,FIDO旨在开发能够让用户通过公共密钥进行加密的协议,这比目前的用户名和密码模式更加难以让人破解.

Mac OS X Lion安全漏洞可以轻易修改登录密码

- ArmadilloCommander - Solidot
一位安全研究员发现了Mac OS X Lion系统的一个安全漏洞,可以让任何能接触到已登录Lion系统的人都可以通过一个简单的命令更改当前用户的登录密码,且这一过程不需要输入任何密码. 只要登录后在终端中输入如下命令:“dscl localhost -passwd /Search/Users/[当前用户名]”,之后就会提示输入新密码,这一过程并不需要输入旧密码.

Web新标准:指纹和面容识别可取代登录密码

- - 威锋网-首页- 最新RSS订阅
FIDO(线上快速身份验证)联盟和 W3C(万维网联盟)现已推出新的 Web 认证标准,新标准将更便利地为每个站点提供独立的加密证书,也就是说,你可以通过无密码的 FIDO 身份验证来访问 PC 浏览器中的任何在线服务,用户们将拥有更安全的登录方式,不再是在账号密码框中输入一串串字符,而是改用生物识别(指纹、刷脸、瞳孔)技术和 USB 令牌来实现网站登录.

Chrome V15 已经可以自动登录所有 Google 网站

- 微笑!?~ - 谷奥——探寻谷歌的奥秘
在Chrome V15里(现在包括最新版的Chromium、Chrome Dev和Chrome Canary)新增了一个“对Google的网站启用自动登录”的功能,顾名思义就是说,你当前Chrome窗口所使用的Google Profile可为你自动登录所有Google系的网站,而不需要你手动登录了.

国外hash(MD5、NTLM、LM、SHA)密码在线破解网站

- - 服务器运维与网站架构|Linux运维|X研究
PS:这是国外的hash密码在线破解网站列表,支持多种类型的hash密码,目前可查询破解的hash包括:MD5、NTLM、LM、SHA1、SHA 256-512、MySQL、WPA-PSK.