AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 126225
In Process
David
David
Asked: 2010-03-26 06:27:39 +0800 CST2010-03-26 06:27:39 +0800 CST 2010-03-26 06:27:39 +0800 CST

OpenID 这么容易破解还是我错过了什么?

  • 772

对于那些允许用户指定 OpenID 提供者 (OP) 的依赖方 (RP),在我看来,比任何知道或猜测您的 OpenID 的人都可以

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

RP“可以”通过仅允许原始 OP 验证 OpenID 来采取措施防止这种情况发生,但是......

  1. 你怎么知道他们做的?
  2. 如果不更改 OpenID,就永远无法更改 OP。
security authentication openid
  • 6 6 个回答
  • 2744 Views

6 个回答

  • Voted
  1. sysadmin1138
    2010-03-26T07:43:46+08:002010-03-26T07:43:46+08:00

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

    您仍然可以通过 RP 部分的 DNS 中毒攻击进行攻击,例如 *.livejournal.com 被重定向到您为攻击专门设计的 OP。但这是一次 DNS 中毒攻击,而不是 OpenID 本身的故障。OpenID 只是容易受到 DNS 中毒的影响。

    • 7
  2. Chris S
    2010-03-26T07:57:28+08:002010-03-26T07:57:28+08:00

    我认为您混淆了 OpenID 和用户安全的其他部分。您的 OP 是身份验证机制,而不是您的帐户。在 ServerFault 上,您有一个帐户。该帐户本身无法进行身份验证;除非您将其指向一个或多个 OP。

    当您尝试以 SF 身份登录您的帐户时,它会要求您的 OP 处理身份验证。只有一个 OP(或多个 OP,但你有它设置)可以为你的 SF 帐户对你进行身份验证。

    典型的登录系统包含三个部分(称为三重“A”,或简称为“AAA”):

    • 会计 - 跟踪您的姓名和特定于网站的信息(如帖子、消息等)
    • 身份验证 - 跟踪如何确保它真的是你(通常是密码)
    • 授权 - 跟踪您的权限(对各种事物的读取或写入访问权限)

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

    • 2
  3. Carsten
    2010-04-01T22:02:13+08:002010-04-01T22:02:13+08:00

    大卫,你的假设是错误的。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。

    • 1
  4. ceejayoz
    2010-03-26T09:39:21+08:002010-03-26T09:39:21+08:00

    你怎么知道他们做的?

    就像您知道任何旧网站正在将您的密码传递给其他人一样 - 您没有。这就是为什么您使用可能是有信誉的公司的原因。

    如果不更改 OpenID,就永远无法更改 OP。

    你当然可以。查看 OpenID 委托。

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

    • 0
  5. jldugger
    2010-03-26T21:36:06+08:002010-03-26T21:36:06+08:00

    您的 openID 是您的提供者。pwnguin.net是我的openID。这不是猜测,它只是一个已知的事实。保护我的 openID 的是运行在 pwnguin.net 上的软件,它只会在相关访问者有 auth cookie 的情况下做出肯定的答复。

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

    • 0
  6. David
    2010-03-27T06:06:34+08:002010-03-27T06:06:34+08:00

    这是我从这里的回复中获得的...

    OpenID 仅与相关各方一样安全,任何身份验证方法都是如此。在我开始讨论之前,我意识到了这一点。

    在我看来,OpenID 的问题有两个……

    1. 您的 LoginID 不再是仅在您和您使用它的网站之间共享的秘密。它是您的 OpenID,您使用它的每个站点都知道它,并且很容易猜到,例如电子邮件地址或源自您的电子邮件地址或类似的东西。

    2. RP 可能会在他们的站点上实施 OpenIP,而无需进行尽职调查,假设因为他们使用的是广泛接受的“协议”,因此它是安全的。诚然,大多数普通网站开发人员对于如何保护网站并没有真正的概念,但是,如果他们实施自己的安全性,至少问题 #1 不会发挥作用。

    作为消费者,当我在 any-site.com 上创建帐户时,我对开发人员/网站管理员的智慧一无所知。我使用一个我认为不容易猜到的 ID。我不想让 serverfault.com 知道我用来登录 Etrade.com 的 ID。我还在每个站点上使用不同的密码,并使用我自己的方案管理这些密码。除非网站运营商完全是白痴,否则我的帐户不太可能被包括在内。

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

    我喜欢开源软件,但在 OpenID 的情况下,我认为它为毫无戒心的采用者提供了劣质实现的可能性。

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

    也许我只是偏执。

    • 0

相关问题

  • OpenSSH 漏洞 [重复]

  • 选择什么安全套件?

  • 安全地授予对 SQL 2005 复制监视器的访问权限以创建快照

  • SSH 服务器零日漏洞利用 - 保护自己的建议

  • 如何将安全组添加到正在运行的 EC2 实例?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve