Introducing BrowserID – 更轻松、更安全的网络身份验证

网络安全比以往任何时候都更加重要。几乎每周都有关于信息漏洞和泄露到公众的报道,这使得很多人难以信任互联网。

最令人恼火的事情之一是,每项服务都期望我们拥有一个登录名和密码。由于我们使用大量服务,这意味着我们必须记住大量登录名和密码。人们以各种方式处理这个问题。最危险的方法是在不同的服务中使用简单的密码。另一种方法是不费心记住安全的密码,而是每次返回想要访问的网站时重新设置它,通过电子邮件验证进行。这可能也是一种非常危险的做法——尤其是当您登录的网站以纯文本形式发送您的密码,而不是强制您创建一个新的密码时。无论如何,您都会花费大量时间在您、您想要访问的网站和您的电子邮件客户端之间兜圈子。

过去有几个想法可以解决登录名和密码问题。 OpenID是最雄心勃勃的一个,但未能获得主流市场的认可,因为将 URL 作为您的标识符对许多最终用户来说似乎很奇怪。

Mozilla Labs吸取了OpenID和其他方法的教训,现在提出了BrowserID,它从域和网站转向电子邮件作为您的主要标识符。从本质上讲,我们推广了传统登录方法的“密码恢复”机制,将其作为您的主要访问点。

什么是 BrowserID?

BrowserID 旨在为您提供一个登录网站和服务的单一帐户,通过您的电子邮件地址连接(可以选择将多个电子邮件添加到同一个帐户)。核心思想是,您将始终记住您的电子邮件地址,而不是虚构的用户名或 URL。

BrowserID 的主要支柱是

  • 易用性
  • 安全性
  • 跨浏览器实现
  • 去中心化、全网验证
  • 改善未来浏览器的体验
  • 尊重用户的隐私

使用一个电子邮件地址和一个主密码,您只需激活和验证您的帐户一次。由于 BrowserID 是使用经过验证的电子邮件协议实现的,因此它具有内置的安全性。此外,它还提供验证服务进行检查。

它可以跨浏览器使用,无论是在桌面还是移动设备上,而且它是去中心化的,因此任何人都可以选择在其网站上实现它。尊重用户隐私对 Mozilla 来说是一个非常重要的因素。因此,不会与任何服务共享有关您 BrowserID 使用情况的任何信息(有关更多信息,请查看BrowserID 隐私声明)。

从长远来看,更诱人的一点是,BrowserID 可以原生集成到网络浏览器中,例如通过 URL 栏,用户可以在其中选择登录/注销。这将使其成为抵御钓鱼和其他攻击的更安全的措施,并为最终用户提供最一致、最可靠的体验。

试一试

如果您想尝试一下,可以访问TextChannels 网站,创建一个 BrowserID 帐户并使用它登录。

在您在 TextChannels 创建 BrowserID 帐户后,您可以访问我们另一个测试网站,看看当您拥有 BrowserID 帐户时,体验是多么容易。

这里有一个视频解释了该过程

如何实现 BrowserID

如果您想在网站中使用 BrowserID,您需要执行三个主要步骤

  1. 启用 BrowserID
  2. 识别用户
  3. 验证用户的身份

启用 BrowserID 非常容易:只需在您的网页中包含BrowserID JavaScript。然后,在您的网页中为登录按钮添加一个事件处理程序。此按钮将用于识别用户。完成此操作后,您需要在服务器端验证该用户的身份。这可以通过 BrowserID 验证服务轻松完成。

以下是一些完整的示例代码

Sign in



当您成功收到断言后,向 https://browserid.org/verify 发送一个请求,并带上两个 GET 参数。例如

$ curl "https://browserid.org/verify?assertion=&audience=mysite.com"
{
  "status": "okay",
  "email": "lloyd@mozilla.com",
  "audience": "mysite.com",
  "valid-until": 1308859352261,
  "issuer": "browserid.org:443"
}

它是如何工作的?

如果您想深入了解 BrowserID 的流程和内部工作原理,请查看BrowserID 工作原理文章。

BrowserID 处于实验阶段 - 帮助我们

请注意,虽然 Mozilla Labs 在 BrowserID 上付出了很多努力和思考,但它目前的状态仍处于实验阶段。这意味着目前不建议在任何真实的生产网站中使用它。

BrowserID 是 Mozilla 认为对网络非常有利的东西,但我们需要您的帮助!请作为用户试用 BrowserID,试用一下代码并给我们反馈!我们正在努力将其打造成用户和开发人员的优秀资产,我们收到的任何意见都会让它更容易、更快地实现这一目标!

关于 Robert Nyman [编辑 Emeritus]

Mozilla Hacks 的技术布道者和编辑。发表演讲和撰写关于 HTML5、JavaScript 和开放网络的博客文章。Robert 是 HTML5 和开放网络的坚定支持者,自 1999 年以来一直从事网络前端开发工作——在瑞典和纽约市。他还会定期在http://robertnyman.com 上发表博客文章,并且喜欢旅行和结识新朋友。

Robert Nyman [编辑 Emeritus] 的更多文章…

关于 Chris Heilmann

HTML5 和开放网络的布道者。让我们一起解决这个问题!

Chris Heilmann 的更多文章…


17 条评论

  1. Mardeg

    我注意到 Mozilla 不是我链接中的 Kantara Initiative 的成员。
    有计划将这个项目与它整合吗?

    2011 年 7 月 21 日 下午 1:40

  2. Thomas Svenson

    我认为 BrowserID 计划非常有趣,并计划在我的几个正在开发的网站中测试它。

    我在使用 Drupal 构建我的网站,在 7 月 15 日就已经发布了一个用于 BrowserID 的模块。可以在http://drupal.org/project/browserid 找到它。

    开源再次证明它是技术领先的!

    2011 年 7 月 21 日 下午 3:55

  3. zub

    我理解得对吗,浏览器保存着私钥?我不确定是否完全理解“它是如何工作的”页面,我可能需要去阅读实际的代码。

    2011 年 7 月 21 日 上午 6:00

  4. askdksd

    Mozilla,太棒了!你们太棒了,感谢你们。

    2011 年 7 月 21 日 上午 6:56

  5. Adrian

    不确定这是否是在正确的地方(Bugzilla?),但只是我发现了一个小错误。第一次注册时,登录和取消按钮没有反应,直到我关闭窗口,然后再次点击“使用 Browser ID 登录”。使用的是 Chrome 12/Windows 7。

    2011 年 7 月 21 日 上午 8:45

    1. louisremi

      我无法在 Chrome 上重现您的问题。
      如果您能够重现问题,可以在 Bugzilla 上进行报告,使用“身份”组件:https://bugzilla.mozilla.org/enter_bug.cgi?product=Mozilla%20Labs
      谢谢

      2011 年 7 月 21 日 上午 9:38

  6. Anonymous

    如何在不能使用第三方脚本的页面上使用 BrowserID?是否有通过与 browserid.org 距离较远的第三方脚本进行通信的方式来处理它?

    2011 年 7 月 21 日 上午 8:48

    1. JPF

      有人能告诉我如何在某人的个人资料中查看隐藏的电子邮件地址吗?求求你了……

      2011 年 9 月 26 日 下午 4:23

      1. Robert Nyman

        不确定您是否是指想要查看您注册的不同电子邮件地址?在这种情况下,在任何使用 BrowserID 的网站上登录,然后访问https://browserid.org/manage 管理您的帐户。

        2011 年 9 月 27 日 上午 12:12

  7. Stephanie Daugherty

    到目前为止,我喜欢我看到的,但我发现了一些挥之不去的问题和担忧,需要解决。

    首先,为了真正“拥有”自己的身份,即使我的电子邮件提供商消失或变得不可靠,我也必须能够重新控制它,并快速将我的身份更新到新地址。否则,您将遇到与 OpenID 完全相同的问题,即必须维护自己的域名才能完全控制您的身份。

    其次,帐户恢复需要有一定的干扰性。它必须造成足够的麻烦,让我知道恢复是否已执行——也就是说,如果有人获得了我的电子邮件帐户的访问权限,并恢复了我的 BrowserID 凭证,密码应该已更改,并且我应该被锁定,直到我进行恢复。目前尚不清楚这种情况是否已发生,或尚未发生。

    第三,browserid.org 仍然是单点故障和攻击目标。即使在那里采取适当的安全性(并且了解 Mozilla 如何保护 Web 应用程序,我不太担心),还有法律强制下的攻击问题。BrowserID 对于寻求访问嫌疑人帐户的政府调查人员来说可能是金矿,在美国,根据当前法律,如《爱国者法案》,当局可以强迫 Mozilla 合作。唯一防御措施是使这种合作在物理上和/或逻辑上无法实现。我还没有看到这一点。

    当然,这些与我仍在使用的 OpenID 的缺陷相同,但我们不需要另一个重复 OpenID 错误的身份验证“标准”——即使实现方式不同,但相同的缺陷仍然存在。

    2011 年 7 月 21 日 上午 9:19

  8. Justin

    太棒了!!

    我刚刚在 Go 中的一个小项目中研究了 OpenID。我还没有看到 Go 的库,而实现它比我现在想做的还要多。

    不错,简单,易用,太棒了!!
    谢谢 Mozilla!

    2011 年 7 月 21 日 上午 11:27

  9. Robert Nyman [Mozilla - 文章作者]

    感谢大家的好评!

    Mardeg,

    关于 Kantara Initiative,据我所知,Mozilla 至少目前没有加入它的计划。

    zub,

    希望这可以解释它

    浏览器定位在步骤 #2 中生成的私钥,并将它和证书从临时会话存储移动到用户的 BrowserID 密钥环中。用户现在在他们的浏览器中有一个来自 gmail 的有效证书,他们可以使用它来生成断言以证明他们的身份。

    Adrian,

    如果您愿意,您也可以在 GitHub 上报告 BrowserID 问题

    匿名,

    您可以在自己的服务器上进行操作。请阅读针对开发者的 BrowserID页面底部的有关如何操作的信息。

    Stephanie,

    感谢您提出重要问题——非常棒的反馈!
    关于您的第三点,您可以自行托管它,使其完全分散化,与 browserid.org 无关。更多关于自托管的信息在该页面底部。

    2011 年 7 月 22 日 上午 4:47

    1. Stephanie Daugherty

      Robert,感谢您的回复,这留下了我剩下的一个大问题——当我的电子邮件提供商变得不可靠、被黑客入侵、被发出搜查令或干脆消失时会发生什么?我该如何发现这种情况(发现有人在我的电子邮件地址中生成了另一个密钥,在不可靠、被黑客入侵、被发出搜查令的情况下),并在发生这种情况后将所有帐户重定向到一个新的身份?

      2011 年 7 月 22 日 上午 9:17

  10. Robert Nyman

    Stephanie,

    非常棒的问题。我现在没有答案,但我将要求 BrowserID 团队对此进行回复。

    2011 年 7 月 22 日 下午 1:46

  11. Dan Mills

    嗨 Stephanie,

    感谢您宝贵的评论!

    您说得对,如果您的电子邮件提供商变得不可靠、被黑客入侵或被迫,它可以冒充您。这在联邦制中是固有的,我认为您也指出了这一点。

    一个重要的点是允许您运行自己的身份提供者。通过将 API 移动到客户端,并专注于本质上是去中心化的标识符(电子邮件),我们正在使其成为默认情况下依赖方将支持长尾的可能性。我认为,通用网站只接受来自一个域的电子邮件(例如,这在 OpenID 中相对常见)是不太可能(尽管有可能)的。

    我很想知道关于如何至少检测此类冒充事件发生的任何其他想法。也许涉及更多方以使串谋更难?但是,我认为,对电子邮件提供商需要有一定程度的信任(我认为已经存在)。毕竟,您已经信任他们管理您的电子邮件。但我们绝对希望听到其他想法——加入我们的 IRC 频道或加入我们的邮件列表!

    2011 年 7 月 22 日 下午 2:50

  12. Régis

    我今天才发现 BrowserID(抱歉,我有一段时间没有关注 Mozilla 的新闻)。

    我认为它最大的问题之一就是它的主要优势。一些最终用户不想分享他们的身份。而有些人则不关心。

    相反,网站管理员希望尽可能多地了解信息。

    谁在网站上实施身份验证?网站管理员。

    底线:Facebook 连接将持续存在。

    但 BrowserID 可以杀死 OpenID……

    2012 年 7 月 18 日 上午 1:29

    1. Robert Nyman

      好吧,希望人们会更加意识到他们分享的信息,并且会更加谨慎。归根结底,这是关于选择和选项。

      2012 年 7 月 31 日 上午 8:40

本文的评论已关闭。