【问题标题】:What is the benefit of the shared secret in OAuth 1.0A?OAuth 1.0A 中的共享密钥有什么好处?
【发布时间】:2015-01-04 18:40:36
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: oauth shared-secret


    【解决方案1】:

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

    1. 第三方没有拦截客户端发出的请求,对其进行修改,然后将其传递以执行完全不同的操作
    2. 第三方没有冒充有效消费者并在没有他们参与的情况下提出请求

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-15
      • 1970-01-01
      • 2014-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多