我在网站上使用OpenID作为身份验证方法是否存在任何安全风险?

时间:2008-10-08 11:33:19

标签: security openid

网站上OpenID是一种安全的身份验证用户方法吗?

如果没有,那么与OpenID相关的安全风险是什么?

9 个答案:

答案 0 :(得分:10)

我同意David在上面提到的许多观点,所以我在这里只是为了争论而提出一些观点。

对于知识渊博的用户,我认为OpenID是一种更多安全形式的身份验证,而不是许多网站提供的。现在让我支持这一说法。首先,知识渊博的用户是什么意思?我会将那个人定义为了解OpenID弱点并采取措施缓解这些弱点的人:

  • 如果他们不希望网站能够有效地跟踪它们,则保持多个角色。
  • 在24/7访问成为问题的网站上注册两个或多个OpenID提供商。
  • 始终直接登录其OpenID提供商。他们从不登录第三方网站重定向到的页面。

许多网站do not know how to securely maintain user's passwords。 OpenID非常好用的是可以选择我的OpenID提供商,从而选择登录依赖方所需的身份验证级别。例如,我可以选择将身份验证委派给VerisignTrustbearer - 这两者都提供了比网络上大多数网站更强大的身份验证技术。我宁愿相信一个专门用我的密码安全的组织而不是网上的一些随机网站。所以我认为,对于知识渊博的用户,OpenID 可以比实现自己的身份验证系统的每个网站更安全。

尽管如此,大多数用户并不了解OpenID中固有的风险因素,也不会采取措施来降低风险。

答案 1 :(得分:7)

实际上我总是因为各种原因而不喜欢OpenID。

  • 我必须信任我提供数据的OpenID提供商。我确实相信某些方面,但仅仅因为我可能信任Stack Overflow,我不会自动信任任何着名的OpenID提供商。

    1. 如果我的OpenID密码遭到入侵,我使用OpenID的所有网站都会受到攻击。通常我会为我正在使用的每个网站选择不同的密码,但我不能使用OpenID。

    2. 我根本不喜欢Persona的概念。即使在发送任何数据之前我被问到,但是一个提供商拥有此信息并且其他服务可以请求它似乎也不正确。好的,如果我不喜欢,我不必使用它,但这个概念对我来说似乎有缺陷。

    3. 如前所述,数据在站点和OpenID提供程序之间发送,然后再返回。无论何时交换数据,都可能会受到损害。没有系统100%安全;甚至不是SSL(HTTPS)。如果数据仅从我传到一侧并返回到我自己,或者它也从那一侧传播到另一侧并再次返回,则会有所不同。

    4. 如果OpenID提供程序被黑客入侵,黑客获取所有用户的登录数据(毕竟他们可以集中在一个地方!),只需考虑其影响!

仅举几例。我也没有看到OpenID的巨大优势。对于他们说的用户

  1. 更快更好更容易注册和登录
    • 减少忘记用户名/密码的挫败感
    • 在首选网站维护个人数据
    • 最大限度地降低密码安全风险
  2. 好的,让我们分析一下。

    (1)您每天多久注册一个页面? 200次?如果我每周注册2页,那已经很多了。通常最多2-3个月(实际上Stack Overflow,或我的OpenID提供程序使用Stack Overflow,是我注册的最后一页,这在昨天并不完全)。因此,当您每月注册2个网站时,您没有5分钟填写表格吗?来吧,不要太荒谬。

    (2)怎么样?因为它到处使用相同的密码? “这不是未来,这是一个错误”,大多数安全专家会说。或者因为它允许我通过邮件恢复我的密码?好吧,实际上几乎我使用的任何一方都允许我这样做。尽管如此,我的Firefox还是很好地记住了我的密码,将它们加密存储在磁盘上(使用主密码),这个加密的数据库定期备份,永远不会丢失。

    (3)嗯,这可能是积极的......但是,到目前为止,我的名字从未改变过,我的电子邮件地址也不会因为它是我使用的域名之一而转发到真实地址(所以真正的人可以改变,我只是更新前进,一切都像以前一样工作)。我的街道地址?好吧,有些人搬家很多。到目前为止,我一生中只搬过一次。但是,大多数方面都不需要知道我的街道地址。我认为没有理由让人们知道这些信息的网站,但这要求我填写注册信息,只是伪造一个。整个互联网上有很少的网站知道我的真实地址(实际上只有那些可能要发给我蜗牛邮件的地方或者我可能订购商品的地方)。

    (4)实际上我反过来看。它最大化了安全风险。它如何将风险降至最低?

答案 2 :(得分:6)

OpenID本质上是不安全的。它适用于您的站点将用户重定向到其开放ID提供程序站点,然后从该站点接收ID。这在两个方向都提供了不安全感。您必须信任返回的ID(因为您无法自己对用户进行身份验证),并且可以轻松地为用户的开放ID提供程序运行代理,从而允许您窃取其用户名和密码。

OpenID适用于像Stack Overflow这样的东西,如果有人假冒你并不重要。将OpenID用于更严重的网站 - 在个人层面 - 内容风险极大。例如,如果您使用OpenID作为电子邮件,那么窃取您的身份证的任何人都可以访问您的电子邮件。然后,他们可以将密码提醒请求发送到您使用的其他网站,以获取这些网站的密码。在最糟糕的情况下,您可以将OpenID用于银行帐户,或者让银行向您的电子邮件帐户发送密码提醒...

OpenID存在许多其他安全问题。您可以在"Privacy on the Internet"中找到更多信息。

答案 3 :(得分:4)

OpenID确实在身份验证过程中添加了另一方,您必须将其视为受信任的组件。在这方面,它与允许通过电子邮件恢复帐户的任何应用程序非常相似,但是当您的电子邮件以明文形式传输时,您可以选择仅通过经过验证的HTTPS连接与OpenID提供商进行通信。

查看规范的Security Considerations部分。

要详细了解OpenID中的弱点,并演示一个优秀的OpenID提供商如何提供比传统的易于破解的密码更安全的体验,请参阅this short video by Kim Cameron中的Identity Weblog }。

答案 4 :(得分:2)

如果您选择忽略所有不支持HTTPS的OpenID提供商

,则可以使OpenID更安全

答案 5 :(得分:2)

我认为大多数OpenId提供商的主要弱点是他们通过电子邮件提供密码恢复。这将OpenId安全性降低到了我的电子邮件提供商的安全性。如果有人访问我的电子邮件帐户,他可以有效地窃取我的身份(使用或不使用OpenId)。

使用OpenId进行身份验证可以更轻松地窃取ym身份。只需访问我的电子邮件帐户并重置我的OpenId密码即可。没什么可做的(而不是100个密码重置请求,一个用于我在网络上的每个帐户)。

更糟糕的是,如果攻击者更改了我的电子邮件帐户的密码,我将很难证明我是该OpenId帐户的原始所有者。攻击者可能会将关联的电子邮件帐户更改为他的帐户,因此即使我稍后收回我的电子邮件帐户,也无法重置密码。

访问我的OpenId提供商发送的密码恢复电子邮件可能足以窃取我的身份。

OpenId提供商提供禁用电子邮件密码恢复功能,并提供更安全的方法来恢复丢失的密码。基于邮政地址,护照或银行账户的东西(我信任的东西比电子邮件帐户更多)。

只要通过访问单个电子邮件就可以接管OpenId帐户,这只不过是一个额外的单点故障。

另请参阅:http://danielmiessler.com/blog/from-password-reset-mechanisms-to-openid-a-brief-discussion-of-online-password-security其中“最薄弱的链接:电子邮件密码重置机制”也得到了解决。

答案 6 :(得分:1)

虽然这个帖子已经老了,但我想加2美分。我认为OpenId有一个似乎没人关心的缺陷。当我通过Yahoo验证时,它实际上将我登录到雅虎。它不应该让你进入雅虎它应该只是验证你有正确的凭据与雅虎。当您退出我的应用程序时,您仍然登录到雅虎。如果您离开共享计算机而另一个人去雅虎,您将登录..因为当您使用Yahoo进行身份验证时,他们也会将您登录到他们的服务中。他们应该只是认证你,而不是让你登录。我已经告诉了几个人这个甚至用stackoverflow.com(他有一个糟糕的注销机制,当我点击退出时我希望注销,不是请点击)另一个注销按钮)。试试这个yahoo或gmail的注销。关闭所有选项卡,然后使用yahoo / gmail登录stackoverflow。然后退出堆栈溢出..(确保你点击退出两次)..现在浏览到雅虎或gmail,你已登录。现在我得到的讽刺答案是“不要使用共享计算机,你应该注销Yahoo / gmail等等......“每个人都不是具有MIS或计算机科学学位的开发人员,我的婆婆会在她退出Stackoverflow时认为她仍然不会登录雅虎..也许我我错过了一些实际上会强制实施我想要的东西,但是文档中肯定没有告诉你OpenId有多棒!!!

答案 7 :(得分:0)

哎哟。 MyOpenID报告未经证实的电子邮件地址,只是对此进行了测试。看起来电子邮件信息应仅受到一些手动白名单提供商(如google / yahoo和其他几家)的信任。如果有人有兴趣,我会在这里链接代码。

答案 8 :(得分:-1)

我喜欢Verisign的VIP访问权限,哪些网站可以使用,并且有一个很好的小iPhone应用程序可以让你生成令牌进入,就像secureID