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

StackOverflow https://stackoverflow.com/questions/182258

  •  05-07-2019
  •  | 
  •  

开放ID 网站上用户身份验证的安全方法?

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

有帮助吗?

解决方案

事实上,出于各种原因,我一直不喜欢 OpenID。

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

    1. 如果我的 OpenID 密码被泄露,我使用 OpenID 的所有网站都会被泄露。通常我会为我使用的每个站点选择不同的密码,但 OpenID 则不能。

    2. 我根本不喜欢角色概念。尽管在发送任何数据之前都会询问我,但一个提供商拥有此信息而其他服务可以请求它似乎是不对的。好吧,如果我不喜欢,我不必使用它,但这个概念对我来说似乎有缺陷。

    3. 正如已经提到的,数据在站点和 OpenID 提供商之间发送并再次返回。每当交换数据时,数据都可能受到损害。没有一个系统是 100% 安全的;甚至没有 SSL (HTTPS)。如果数据仅从我传输到一侧并返回到我自己,或者数据也从该侧传输到另一侧并再次返回,那么这是有区别的。

    4. 如果 OpenID 提供商遭到黑客攻击,并且黑客获取了所有用户的登录数据(毕竟它们可爱地集中在一个地方!),请想象一下影响!

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

  1. 更快、更轻松的注册和登录
    • 减少因忘记用户名/密码而产生的挫败感
    • 在首选站点上维护个人数据的最新状态
    • 最大限度降低密码安全风险

好吧,我们来分析一下。

(1) 您每天注册一个页面的频率是多少?200次?如果我每周注册 2 页,那已经是很多了。通常最多 2-3 个月(实际上 Stack Overflow,或者我使用 Stack Overflow 的 OpenID 提供商,是我注册的最后一个页面,这并不是昨天)。那么,当您每月注册 2 个网站时,您没有 5 分钟时间填写表格吗?来吧,别开玩笑了。

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

(3) 嗯,这可能是积极的事情......但是,到目前为止,我的名字从未更改过,我的电子邮件地址也不会更改,因为它是我使用的域之一并转发到真实地址(因此真实地址可以更改,我只需更新转发即可,一切正常)前)。我的街道地址?嗯,有些人经常搬家。到目前为止,我一生只搬过一次家。然而,大多数方面不需要知道我的街道地址。我认为没有理由让人们知道这些信息,但要求我填写注册信息的网站,只需获取一个伪造的信息即可。整个互联网上很少有网站知道我的真实地址(实际上只有那些可能需要向我发送蜗牛邮件或我可能在哪里订购商品的网站)。

(4) 其实我的看法是相反的。它最大限度地提高了安全风险。如何最大限度地降低风险?

其他提示

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

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

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

许多网站 不知道如何安全地维护用户的密码. 。OpenID 的真正好处是 选择我的 OpenID 提供商以及登录依赖方所需的身份验证级别。例如,我可以选择将身份验证委托给 威瑞信 或者 信托承担者 - 两者都提供比网络上大多数网站更强大的身份验证技术。我宁愿相信一个专门负责我的密码安全的组织,也不愿相信网络上的某个随机网站。所以我认为,对于知识渊博的用户来说,OpenID 比每个实施自己的身份验证系统的网站更安全。

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

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

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

OpenID存在许多其他安全问题。您可以在“互联网隐私”中找到更多信息

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

,则可以使OpenID更安全

我认为大多数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 其中”The Weakest Link:Email“密码重置机制“我也很满意。

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top