【问题标题】:How is OpenId secure?OpenId 的安全性如何?
【发布时间】:2013-03-23 21:29:09
【问题描述】:

我在另一个 SO thread 中找到了这个:

步骤:

  1. 用户连接到启用 OpenID 的网站。
  2. 用户输入凭据信息。
  3. 使用 BASE64 进行 POST(网站到提供商)
  4. 已构建答案(包含过期)
  5. 网站将用户重定向到提供商进行登录。
  6. 用户输入密码并提交。
  7. 验证完成。
  8. 登录!

如何保护第 6-8 步?在我看来,客户端正在向提供者进行身份验证并将结果报告给我们的服务器。

是什么阻止了客户端伪造认证结果?

【问题讨论】:

    标签: authentication openid


    【解决方案1】:

    首先,验证结果由提供者加密签名。还有其他安全措施可以防止其他攻击。

    引用OpenID 2.0 specification, section 11.

    当依赖方收到肯定断言时,它必须在接受断言之前验证以下内容:

    • “openid.return_to”的值与当前请求的 URL 匹配 (Section 11.1)
    • 发现的信息与断言中的信息匹配 (Section 11.2)
    • 尚未接受来自此 OP 的具有相同“openid.response_nonce”值的断言 (Section 11.3)
    • 断言上的签名有效,所有需要签名的字段都已签名 (Section 11.4)

    客户端当然可以发送虚假的认证结果,但不会通过验证。

    【讨论】:

    • 谢谢你的解释。
    猜你喜欢
    • 2011-03-12
    • 2023-04-04
    • 2019-11-05
    • 2018-03-09
    • 2013-01-19
    • 1970-01-01
    • 1970-01-01
    • 2019-03-08
    • 2019-04-03
    相关资源
    最近更新 更多