1

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

据我了解,客户端可以向受保护的资源服务器注册,在该服务器中,客户端同时接收客户端标识符和共享机密作为回报。即使我一遍又一遍地阅读OAuth 1.0A 规范——我很难理解两个问题:

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

我不是要你引用规范——在这一点上,我需要更简单的说明,因为我很难理解规范所说的内容(无论如何,它实际上并没有详细介绍共享秘密) .

4

1 回答 1

1

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

  1. 第三方没有拦截客户端的请求,修改它,然后传递它来做一些完全不同的事情
  2. 第三方没有冒充有效消费者并在没有他们参与的情况下提出请求

如果只有提供者和消费者知道秘密,签名和验证可以防止这些未经授权的请求。这篇文章详细介绍了签名背后的想法。特别是,以下摘录与您的问题非常相关:

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

于 2014-11-07T22:41:42.443 回答