不使用OpenID的原因有哪些?

57

在极客社区中,您会经常听到OpenID相关的讨论。它似乎是个好主意。我正在开发一个面向不太懂技术(但也不完全是老百姓)的网站,所以我必须考虑是否OpenID对某些受众来说“太难了”。

您怎么看?除此之外,还有其他技术或非技术原因不使用OpenID吗?


类似但不完全相同的问题:https://dev59.com/BXRC5IYBdhLWcg3wRO7k - Nicholas Piasecki
论点的另一面:有什么意义吗?http://superuser.com/questions/176367/openid-whats-the-point - Humphrey Bogart
17个回答

70

说普通人不理解OpenID可能略有不准确。

在大多数情况下,通过一些说服性的营销(例如“在所有网站上都使用一个登录名!11!”),他们可以理解它允许他们在网站上使用一个登录名进行登录,而不是在不同的网站上使用一堆不同的用户名和密码。

然而,问题在于对于普通用户来说,整个OpenID体验与他们对在线安全的理解相反。

  • 用户不会自动信任它

    使用正常的用户名/密码登录,用户知道密码应该保密,这就是当他们在网站上登录时,保护他们隐私的方式。他们如何理解OpenID客户端网站和其OpenID提供者之间的交换呢?他们所知道的是,他们没有输入密码(假设他们在其OpenID提供者上“始终保持登录状态”) - 那么它就不安全,对吧?我的意思是,在用户看来,如果他们没有提供密码,它怎么可能是安全的呢?这可能导致用户不信任它。

  • 它使网络钓鱼变得容易

    (很多)用户知道重复使用相同的密码用于不同的账户是错误的,然而这似乎正是OpenID所做的。如果一个用户简单地假设他们的所有OpenID提供者正在做的就是与所有参与的网站共享他们的密码,那该怎么办呢?我的意思是,在所有这些网站上,OpenID如何为他们“登录”呢?如果用户假设通过OpenID,他们的密码变为所有参与的OpenID网站所知,则他们可能会认为将这个密码提供给任何这些站点是相当合理的。这是一个网络钓鱼噩梦。想象一下将这个短语放在您的网站上:“请输入您的(某个OpenID提供者)用户名[ ]和密码[ ]”。你已经在网络钓鱼了。

    我们也不能忘记,即使出于稍微不同的原因,用户在一方面怀疑是正确的:如果有人获得了他们的OpenID提供者的访问权限,他们就可以在该身份被用于所有站点的情况下访问其身份,这与在多个站点使用相同密码的缺点相同。

  • 它偏离了用户理解的范围太远

    在不同站点使用多个用户名和密码对于用户来说并不难理解。用户很好地理解了用户名和密码的概念,因为他们经常使用它们,并且安全性(密码是秘密)的重点对他们非常明显。密码的工作原理也非常清晰。使用多个用户名和密码组合并不会使这更加混乱或复杂——这只是相同的事情,但是它们有多个。虽然记住多个密码可能很困难,但用户至少知道如何去做,以及它是如何工作的。

    OpenID试图解决记住多个密码的问题,但在此过程中它创建了一个全新的范例,完全不透明于用户。与密码不同,其安全性是显而易见的(它只需要保密),OpenID的所有安全性都在幕后进行,站点之间进行通信,使用密钥和哈希等。用户不再完全理解如何保护他们的隐私或要向谁保密,因为他们不了解系统的工作原理。因此,为了解决记住多个密码的问题,OpenID创建了一个神秘的密钥交换系统,这违背了用户对认证工作原理和为什么它安全的整个理解。


我不太确定我同意这个答案。这只是教用户的问题;这并没有真正削弱OpenID,而是表明我们需要让用户习惯新的范式。 - Robert Massaioli
4
“仅仅是教用户”与可用性相反。 - thomasrutter
我得同意你最后的评论,但安全措施很少能让人的生活变得更简单。这是因为它们不仅让犯罪分子更难操作,也让我们自己的操作更加困难。好处是,现在你只需要一个真正安全的密码,而不是为每个你注册过的网站都想一个密码。我们都知道要记住安全密码有多难。或者您的OpenID提供商甚至可能使用其他登录方式,例如客户端证书。虽然这种方式更加复杂,但通常也更加安全。 - DanMan
1
自从我两年前写下这篇文章以来,已经有了新的OpenID实现,看起来更加用户友好,比如你看到的“使用Google账户登录”的按钮。这是一个好现象,但我的观点仍然存在,尤其是易于钓鱼攻击。事实上,现在可能会更糟糕。如果出现一个表单,说“使用Google账户登录”,并要求她输入Google用户名和密码,你的祖母/母亲会怎么做? - thomasrutter

44

普通用户仍然不理解OpenId是什么,它的作用是什么以及如何使用它。例如,我的父母将无法登录Stack Overflow。

话虽如此,这主要与用户界面有关。没有任何固有的阻止他们使用OpenId的东西-他们只需要一种把OpenId从他们那里抽象出来的用户界面,并且只允许他们使用他们的Google帐户进行登录(例如)。


11
请访问 https://rpxnow.com/ 了解一个更好的UI示例。这个变体还支持OAuth,可以使用Facebook等平台。 - Jeff Atwood
1
我同意 - 我非常喜欢开放式身份验证。但是它太复杂了,很难解释清楚。 - Foredecker
我完全同意。事实上,我正在为我的网站实现一个纯OpenID登录解决方案,其中包括简化的登录/注册流程。它基于DotNetOpenID项目(http://dotnetopenauth.net)中提供的示例,该项目非常出色。 - Steve Wortham
3
同意。实际上,我作为用户与OpenID的第一次接触是在Stack Overflow上,花了我大部分时间才弄清楚我究竟应该做什么或使用什么以及它如何工作。我注意到我已经有一个帐户可以将其用作OpenID(Technorati),但几个月后它开始变得不稳定,然后完全停止支持,使体验更加糟糕。一般来说,任何你需要向“极客”解释超过一分钟的东西,对于普通人来说都过于复杂。或许我只是一个低水平的极客。 - Joey

19

OpenID非常容易受到网络钓鱼攻击。如果您运行一个OpenID网站,请尝试改变登录页面,要求用户输入标识符密码,而不是只请求标识符并重定向到OpenID提供商以请求用户的密码(这是常见的方法)。我敢打赌,你可以通过这种方式获取四分之一以上的用户密码。


15
虽然你说的是对的,Ross,但这并不是OpenID所特有的。如果你的网站采用“电子邮件地址和密码”组合方式,就像许多网站一样,我敢打赌超过50%的帐户使用的密码与他们用于电子邮件账户的相同。OpenID至少可以不需要输入密码! - Andrew Arnott

12

使用OpenID会使你受制于管理其账户的组织。你无法控制密码安全和用户身份信息。你需要相信其他组织能够验证来访者的身份信息。如果你需要真正确认某人的身份,光使用OpenID并不能保证该人就是他所声称的身份。在这种情况下,你可能需要自行进行第二次验证,否则最好不要使用OpenID。

http://www.computerworld.com/s_article/9179224/Researchers_Password_crack_could_affect_millions


4
使用第三方验证是一种有效的安全形式。例如,我们信任并支付由第三方公司颁发的SSL证书,这被认为比自行颁发证书更可取。 - null
对,但这是不同的。OpenId并不能验证你的身份,除了注册账户时提供的信息之外。如果他们进行了背景调查等操作,那就不同了,这完全取决于你对像OpenId这样的第三方的信任程度。 - kemiller2002
如果你使用可信的提供者名单,就不必进行身份验证。 - Andrew Arnott
26
尽管如此,我相信雅虎和谷歌能够构建比我更好的身份验证架构。这样的大型服务提供商很可能比我提供更好的密码保护,所以我不知道这个观点有多少份量。 - SqlRyan
2
-1 这只是一种恐吓手段。我同意 @rwmnau 的观点。凯文所说的“看起来”有道理,但实际上是错误的。 - o0'.
是的,在那件事上我完全错了...并不像他们只是在OpenID标准中发现了一个漏洞之类的事情... - kemiller2002

9

这种情况经常出现。

一个好的规则:

如果您需要收集和保留涉及个人身份信息,请勿使用OpenID。

如果您不需要收集和保留涉及个人身份信息,请使用OpenID作为登录方法。

对于需要遵守PCI/DSS认证的电子商务或其他任何地方,我不会使用OpenID。

我不介意SO专门使用OpenID,但我不会创建只使用OpenID的网站。


6
  1. 界面很糟糕。

    a. 使用OpenID注册需要更多的时间和技巧。普通注册只需要很少的时间或技巧。注册只需进行一次,但这是一个很大的前期投资,因此网站必须非常吸引人。

    b. 登录涉及:三个数据而不是两个;两个网页而不是一个(实际上在StackOverflow有三个);以及一个外部网站。每次都要这样做。

    c. 有更好的解决方案接口。例如我使用KeePass。

  2. 名称冲突。没有办法确保唯一的名称。

  3. 安全性很糟糕。

    a. 它鼓励类似钓鱼的行为。虽然不像“Verified by Visa”那么糟糕,但也很接近。

    b. 单点故障:如果你失去任何东西,你就会失去一切。 Kepass至少允许我物理保护密码(必须拥有加密数据库的硬盘)。

    c. 跨站点跟踪。信用卡公司实际上制定了规则来管理他们被允许进行多少跟踪。现代浏览器可以选择性地禁用或防止Cookie。 OpenID没有规则和管理者。

  4. 它实际上并不是普遍适用的。谷歌提供OpenID……但不使用它们。雅虎也是如此。对于AOL也是一样的。没有任何激励措施让OpenID提供者允许使用其他提供者的OpenID。

  5. OpenID对于认证很有用,但对于特别敏感的事情(例如信用卡)的授权并不适用。

对于我个人而言,我在每个站点上使用一个登录名/密码,并使用KeePass(我可以物理保护密码,并使用必须破解的两层密码来维护各处的一个登录名)。这包括StackOverflow:我为你们创建了一个专门的OpenID,并且我不会在其他地方使用它。我这样做,并且忍受着登录的痛苦,因为内容非常吸引人。

但是,如果StackOverflow提供了一个真正的身份验证方法,我会毫不犹豫地采用它,只是为了获得使用便利性的收益。


5
OpenID仍然像其他基于密码的身份验证方法一样不安全。事实上,它甚至更糟糕,因为如果有人获得了您的OpenID,他们现在不仅可以访问一个账户。当然还有网络钓鱼攻击,但我们都是精明的程序员、数据库和系统管理员,所以我们不会上当,对吧?
身份验证安全性是基于信任的。正如其他人指出的那样,为什么要信任第三方来处理可能敏感的信息?当然,您可以自己设置OpenID服务器,但与在多个系统上维护单独的密码相比,这有多麻烦?当然,您可以创建长且充满非字母数字字符的安全密码,并将它们全部存储在密码管理器中(我也这样做),但某些网站存在缺陷,只需要填写简单的密码恢复表格即可访问并重置密码。
如果OpenID采用了安全的基于私钥的身份验证方式,例如SSH或PGP,我可能会倾向于支持并甚至推广OpenID。也许这是提供商提供此类方法的问题——我还没有研究过。
最后,虽然我们都足够信任OpenID,在Stack Overflow上使用它进行身份验证,但我的OpenID是一个“一次性”的,这并不像我在使用它作为专业声誉建设工具(即,我的真实姓名没有涉及;-))。我相信我不是唯一一个这样做的人(尽管这个网站很酷也很棒!)。

2
也许这取决于提供商是否提供这样的方法。Verisign的OpenID可以做到这一点。不同提供商的价值... - Jeff Atwood
1
显然,我的openid.com也可以,它在这里比Verisign有更好的“评分”:http://openidexplained.com/get - jtimberman
这也在积极讨论是否将其“包含”在下一阶段的XRDS发现中 http://lists.oasis-open.org/archives/xri/200812/msg00027.html -只是一个随机的电子邮件以开始。 - null
1
OpenID并不像其他基于密码的身份验证那样不安全。我的OpenID帐户受到InfoCard的保护,这使得它免受网络钓鱼攻击。 - Andrew Arnott
安德鲁:但大多数OpenID都没有受到InfoCard的保护。OpenID可以非常安全,也可以非常不安全——这与基于密码的身份验证完全相同。除了低门槛外,技术根本不是限制因素。 - Ken
@Ken - 你可以自行选择使用哪个OpenID提供者。如果你选择的提供者只允许你使用电子邮件和密码进行登录,那么不能因此责怪OpenID。 - DanMan

3

读到这个话题,我觉得很有趣,因为它完全反映了我的OpenID体验:

StackOverflow.com是我使用OpenID的原因。
我通过许多谷歌搜索找到了这个网站,但我一直无法发表评论。
我想过很多次要注册,但由于对OpenID不太清楚,所以没有注册。
但有一天,我决定注册了,虽然花了我一些时间,但我并不后悔,因为我每天都在使用它。虽然我知道如果被钓鱼攻击,只有一个账户会导致很多问题,但它给了我更安全的感觉。

因此,对我来说,OpenID是在我不熟悉的网站上快速登录的好方法,也适用于像StackOverflow.com这样的大型网站。
主要问题是需要推动新用户进入注册流程,然后发现OpenID实际上是多么好。


3

如果所有网站都使用OpenID,那么它是很好的选择。但是仅为了使用一个网站而注册OpenID可能有点过于繁琐。从消费者的角度来看,注册OpenID并不像直接在一个网站上注册那样简单明了。


1
有点道理。拥有 Google、AOL、Yahoo、Livejournal 或 Flickr 帐户(以及不久的将来的 Hotmail/MSN)的每个人都拥有一个 OpenID 帐户。但是,他们可能还不知道。 - Gareth
这只是关键质量的问题。随着“大玩家”开始采用像这样的标准,它将变得越来越有意义。当然,引导它是最困难的障碍,在OpenID的情况下,我认为这正在相当快地发生,考虑到所有事情。 - Chris Tonkinson

3
我今天看到了一篇文章,它强烈建议跳过OpenID,这是来自一个最初对它非常热心的人的观点。

Open ID是一场噩梦

我一直是Open ID的主要支持者。我喜欢这个想法和意图-它是一个长期存在的问题的好解决方案,并为开发人员解决了很多问题。 不幸的是,它为企业主创造了更多的问题。

在这里阅读其余部分:http://www.wekeroad.com/2010/11/17/open-id-is-a-party-that-happened/

这不是我的故事,所以我不会为此负责。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接