OAuth 1.0A中共享密钥的好处是什么?

时间:2014-11-07 21:21:16

标签: oauth shared-secret

OAuth 1.0A共享密钥有什么好处?

根据我的理解,客户端可以向受保护的资源服务器注册,其中客户端接收客户端标识符和共享密钥。即使我一遍又一遍地阅读OAuth 1.0A spec - 我很难理解两个问题:

  • 为什么需要共享秘密?
  • 为什么客户端标识符不足以让服务器验证客户端?共享密钥提供了哪些额外的安全性好处(如果有)?

我不是要你引用这个规范 - 在这一点上我需要更简单的澄清,因为我很难理解规范的内容(它真的没有详细说明共享 - 无论如何秘密)。

1 个答案:

答案 0 :(得分:1)

需要秘密来为请求生成签名。没有签名,你无法确定两件事:

  1. 第三方没有拦截客户提出的请求,修改它,然后传递它做一些完全不同的事情
  2. 第三方没有冒充有效的消费者并在没有他们参与的情况下提出请求
  3. 只有提供者和消费者知道秘密,签名和验证才能防止这些未经授权的请求。 This post详细介绍了签名背后的想法。特别是,以下摘录与您的问题非常相关:

      

    哈希本身并不验证发件人的身份,只验证数据的完整性。为了允许接收者验证请求来自声明的发送者,散列算法与共享秘密组合。如果双方都同意仅为他们所知的某些共享秘密,他们可以将其添加到正在散列的内容中。这可以通过简单地将秘密附加到内容上,或者使用具有用于诸如HMAC的秘密的内置机制的更复杂的算法来完成。无论哪种方式,生成和验证签名都需要访问共享密钥,这可以防止攻击者伪造或修改请求。