对于那些允许用户指定 OpenID 提供者 (OP) 的依赖方 (RP),在我看来,比任何知道或猜测您的 OpenID 的人都可以
- 输入他们自己的 OP 地址。
- 让它验证他们拥有你的 OpenID。
- 在 RP 上访问您的帐户。
RP“可以”通过仅允许原始 OP 验证 OpenID 来采取措施防止这种情况发生,但是......
- 你怎么知道他们做的?
- 如果不更改 OpenID,就永远无法更改 OP。
对于那些允许用户指定 OpenID 提供者 (OP) 的依赖方 (RP),在我看来,比任何知道或猜测您的 OpenID 的人都可以
RP“可以”通过仅允许原始 OP 验证 OpenID 来采取措施防止这种情况发生,但是......
OpenID 是您必须信任端点的系统之一。如果 RP 不可信,那么这种关联中毒是完全可能的。如果 RP 确实值得信赖,那么这种攻击要困难得多。避免受到这种攻击的“解决方法”是将本地安全原则(在 ServerFault 上,这将是您的用户名在后端数据库中的表示)与外部 OpenID 端点(OpenID URL,ServerFault 允许您关联多个这些)。
您仍然可以通过 RP 部分的 DNS 中毒攻击进行攻击,例如 *.livejournal.com 被重定向到您为攻击专门设计的 OP。但这是一次 DNS 中毒攻击,而不是 OpenID 本身的故障。OpenID 只是容易受到 DNS 中毒的影响。
我认为您混淆了 OpenID 和用户安全的其他部分。您的 OP 是身份验证机制,而不是您的帐户。在 ServerFault 上,您有一个帐户。该帐户本身无法进行身份验证;除非您将其指向一个或多个 OP。
当您尝试以 SF 身份登录您的帐户时,它会要求您的 OP 处理身份验证。只有一个 OP(或多个 OP,但你有它设置)可以为你的 SF 帐户对你进行身份验证。
典型的登录系统包含三个部分(称为三重“A”,或简称为“AAA”):
您可以在 Wikipedia 上阅读有关AAA 系统的更多信息。
大卫,你的假设是错误的。OpenID 的工作方式如下: 1) 你想登录到网站relyingparty.com 2) 你给relyingparty.com 你的OpenID,例如david.com 3)relyingparty.com 检查david.com(嘿,这是一个URL)所以称为 OpenID 端点,可以在 david.com 上找到,但也可以通过委托在其他地方找到,例如 yahoo.com 或 google.com。我们称它为 davidsopenidprovider.com 4) 您现在被重定向到 davidsopenidprovider.com。davidsopenidprovider.com 的工作是对您进行身份验证。您必须登录 davidsopenidprovider.com。此登录的工作方式取决于 davidsopenidprovider.com。它可以是用户名/密码,可以是信息卡、浏览器证书、指纹、智能卡、呼叫验证等带外机制……这取决于 davidsopenidprovider。com 它如何处理身份验证。然后它会询问您是否真的要登录relyingparty.com。5) 如果您成功登录到 davidsopenidprovider.com,您将被重定向回relyingparty.com 并在那里自动登录。6) davidsopenidprovider.com 仅向relyingparty.com 保证您就是您所声称的那个人。它不发送任何密码。
因此,您的假设“作为消费者,当我在 any-site.com 上创建帐户时,我不知道开发人员/站点管理员的智慧。” 关于 OpenID 是错误的。如果有弱点,那就是提供商,而不是 any-site.com。这就是现在传统的用户名/密码登录的问题。您必须信任以这种方式提供登录的每个站点,而不仅仅是您的 OpenID 提供商。
我希望这有助于理解 OpenID。
就像您知道任何旧网站正在将您的密码传递给其他人一样 - 您没有。这就是为什么您使用可能是有信誉的公司的原因。
你当然可以。查看 OpenID 委托。
我的 OpenID 是http://ceejayoz.com/,但我的 OP 是 WordPress.com。http://ceejayoz.com/
META
头部的两个标签允许我这样做,我可以随时更改它。您的 openID 是您的提供者。
pwnguin.net
是我的openID。这不是猜测,它只是一个已知的事实。保护我的 openID 的是运行在 pwnguin.net 上的软件,它只会在相关访问者有 auth cookie 的情况下做出肯定的答复。我不会说 openID 是安全的。有各种各样的跨站点脚本可以继续,或者一些我倾向于忽略或出错的平凡细节。
这是我从这里的回复中获得的...
OpenID 仅与相关各方一样安全,任何身份验证方法都是如此。在我开始讨论之前,我意识到了这一点。
在我看来,OpenID 的问题有两个……
您的 LoginID 不再是仅在您和您使用它的网站之间共享的秘密。它是您的 OpenID,您使用它的每个站点都知道它,并且很容易猜到,例如电子邮件地址或源自您的电子邮件地址或类似的东西。
RP 可能会在他们的站点上实施 OpenIP,而无需进行尽职调查,假设因为他们使用的是广泛接受的“协议”,因此它是安全的。诚然,大多数普通网站开发人员对于如何保护网站并没有真正的概念,但是,如果他们实施自己的安全性,至少问题 #1 不会发挥作用。
作为消费者,当我在 any-site.com 上创建帐户时,我对开发人员/网站管理员的智慧一无所知。我使用一个我认为不容易猜到的 ID。我不想让 serverfault.com 知道我用来登录 Etrade.com 的 ID。我还在每个站点上使用不同的密码,并使用我自己的方案管理这些密码。除非网站运营商完全是白痴,否则我的帐户不太可能被包括在内。
使用 OpenID,万一 RP 没有适当的措施,WEB 中的每个人都知道它是如何工作的以及如何攻击它。
我喜欢开源软件,但在 OpenID 的情况下,我认为它为毫无戒心的采用者提供了劣质实现的可能性。
我认为这可以通过一些签署的批准印章来解决,该印章向消费者保证该网站已通过审核并且不会受到黑客攻击。
也许我只是偏执。