OpenId如何安全?

时间:2013-03-23 21:29:09

标签: authentication openid

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

步骤:

  1. 用户连接到启用OpenID的网站。
  2. 用户输入凭证信息。
  3. 使用BASE64(网站到提供商)
  4. 进行POST
  5. 建立答案(包含过期时间)
  6. 网站将用户重定向到提供商以进行登录。
  7. 用户输入密码并提交。
  8. 验证完成。
  9. 登录!
  10. 步骤6-8如何安全?我看到它的方式,客户端正在与提供商进行身份验证,并将结果报告给我们的服务器。

    什么阻止客户伪造身份验证结果?

1 个答案:

答案 0 :(得分:2)

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

引用OpenID 2.0 specification, section 11.

  

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

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

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