OpenID这很容易破解或者我错过了什么?

对于允许用户指定OpenID提供者(OP)的那些依赖方(RP),对我来说似乎比知道或猜测你的OpenID的人

  1. input他们自己的OP地址。
  2. 让它validation他们拥有你的OpenID。
  3. 在RP上访问您的帐户。

RP“可以”采取措施来防止这种情况,只允许OpenID由原始的OP进行validation,但…

  1. 你怎么知道他们做的?
  2. 你永远不能改变你的OP而不改变你的OpenID。

OpenID是你必须信任端点的系统之一。 如果RP不可信,那么这种关联中毒是完全可能的。 如果RP真的值得信赖,那么这种攻击就更难了。 为了避免受到这种攻击,“解决办法”是使用外部OpenID端点(OpenID URL,ServerFault允许您将多个关联的本地安全原则(在ServerFault上这将是您的用户名在后端数据库中的表示forms)这些)。

您仍然可以通过对RP的部分进行DNS中毒攻击来进行攻击,例如* .livejournal.com会被redirect到您为攻击特制的一个OP。 但是这是一个DNS中毒攻击,而不是在OpenID本身的错误。 OpenID只是容易受到DNS的影响。

我认为你很困惑OpenID和用户安全的其他部分。 您的OP是身份validation机制,而不是您的帐户。 在这里ServerFault,你有一个帐户。 该帐户本身没有authentication手段; 除非您将其指向一个或多个OP。

当您尝试在SF这里login您的帐户时,它要求您的OP处理authentication。 只有一个OP(或多个OP,但是你有它设置)可以authentication你的SF帐户的目的。

典型的login系统有三部分(称为三重“A”或简称“AAA”):

  • 会计 – 跟踪你的名字和特定的信息(如post,消息等)
  • 身份validation – 跟踪如何确保它是真正的你(通常是密码)
  • 授权 – Keeeps追踪您的权限(读或写访问各种事物)

您可以在Wikipedia上阅读更多关于AAA系统的信息。

大卫,你的假设是错误的。 OpenID的工作原理是这样的:1)你想login到网站relyingparty.com 2)你给relyingparty.com你的OpenID,例如david.com 3)relyingparty.com检查david.com(嘿,这是一个URL)称为OpenID端点,可以在david.com上find,但也可以通过委托的方式,例如yahoo.com或google.com。 让我们称之为davidsopenidprovider.com 4)你现在被redirect到davidsopenidprovider.com。 davidsopenidprovider.com的工作是validation你。 您必须login到davidsopenidprovider.com。 这取决于davidsopenidprovider.com这个login是如何工作的。 它可以是用户名/密码,它可以是信息卡,浏览器证书,指纹,智能卡,带外机制,如电话validation,…这是由davidsopenidprovider.com如何处理身份validation。 然后它询问你是否真的想login到relyingparty.com。 5)如果您成功login到davidsopenidprovider.com,您将被redirect到relyingparty.com并自动login。 6)davidsopenidprovider.com只保证relyingparty.com你是谁你声称你是。 它不发送任何密码。

所以你的假设“作为一个消费者,当我在任何一个网站创build一个帐户,我不知道开发人员/网站pipe理员的智慧。 在OpenID方面是错误的。 如果有一个弱点,它是提供者,但不是any-site.com。 这是传统的用户名/密码login现在的问题。 你必须相信每个提供login的站点,而不仅仅是你的OpenID提供者。

我希望这有助于理解OpenID。

你怎么知道他们做的?

就像你知道任何旧网站将你的密码传递给别人一样 – 你不知道。 这就是为什么你使用什么可能是一个有信誉的公司。

你永远不能改变你的OP而不改变你的OpenID。

你当然可以。 看看OpenID代表团。

我的OpenID是http://ceejayoz.com/ ,但我的OP是WordPress.com。 在http://ceejayoz.com/头两个META标签允许我这样做,我可以随时改变它,我喜欢。

你的openID是你的提供者。 pwnguin.net是我的openID。 这不是猜测,这只是一个已知的事实。 什么保护我的openID是在pwnguin.net上运行的软件,如果访问者有一个auth cookie,只能答复肯定。

我不会说openID是安全的; 有各种各样的跨站点脚本可以继续,或者我倾向于忽略或错误的一些世俗的细节。

这是我从这里的答复中得到的…

OpenID只与所涉及的各方一样安全,任何authentication方法都是如此。 在我开始讨论之前,我意识到了这一点。

OpenID的问题,在我看来是双重的…

  1. 您的LoginID不再是您和您使用它的网站之间共享的秘密。 这是你的OpenID,并且被你使用它的每个站点所知道,并且可以很容易地猜到,就像电子邮件地址或者从你的电子邮件地址或类似的东西中派生出来的东西。

  2. RP可能会在他们的网站上实施OpenIP,但没有进行尽职调查,因为他们正在使用被广泛接受的“协议”,这是安全的。 当然,大多数普通的网站开发人员并没有如何确保网站的真实概念,但是如果他们实现自己的安全性,至less问题1不会发挥作用。

作为一个消费者,当我在任何一个网站上创build一个帐户,我不知道开发人员/网站pipe理员的智慧。 我使用一个我认为不容易猜到的ID。 我不想让serverfault.com知道我用来loginEtrade.com的ID。 我还在每个站点上使用不同的密码,并使用我自己的schemepipe理这些密码。 除非网站运营总是白痴,否则我的账户将不可能被包括在内。

使用OpenID,即使RP没有适当的措施,WEB中的每个人都知道它是如何工作的以及如何进行攻击。

我喜欢开放源代码软件,但在OpenID的情况下,我认为这可能会给不知情的采用者带来劣势的实现。

我认为这可以通过一些经过签署的批准印章来解决,这样可以保证消费者网站已经通过审核,并且不会受到黑客的攻击。

也许我只是偏执狂。