gpt4 book ai didi

security - 通过 TLS 对参数和内容进行哈希验证的优势

转载 作者:太空宇宙 更新时间:2023-11-03 13:07:40 27 4
gpt4 key购买 nike

在研究保护 Web 服务的方法时,我发现了一个应用程序,它除了使用 TLS 之外还对 URL 的某些部分进行哈希处理。我还找到了一个规范,建议通过生成哈希和验证内容服务器端来验证请求的主体(规范如下):

Final: OAuth Request Body Hash

在规范中,它提到:

Nonce checking and the use of https can mitigate this risk, but may not be available in some environments. Even when nonce checking and https are used, signing the request body provides an additional layer of defense.

看看 OAuth 2.0 规范,似乎他们认为当应用程序被正确配置/编码时这些步骤是不必要的,而不是依赖 TLS 来提供安全功能,我相信其中包括防篡改。虽然像前主要作者这样的人对这个规范提出了批评,但也有人说(由同一个人)正确实现后,它是安全的。

这些散列程序有什么真正的好处吗?是否存在已知的攻击会危及仅使用 Nonce 和 TLS 验证有效性的 Web 服务?

最佳答案

据我快速阅读文档(我不太了解 OAuth)可以看出,您混淆了散列的用途。包含哈希是为了将签名扩展到请求的其他部分:

The OAuth Core specification provides body integrity checking only for application/x-www-form-urlencoded request bodies. Other types of request bodies are left unsigned.

请注意,仅在 URL 中包含散列并不能提供任何额外的安全性。相反,他们所做的是将其包含在已签名的部分中:

  1. Set the oauth_body_hash parameter to the obtained value.

  2. Sign the request as per [OAuth Core 1.0] section 9. The oauth_body_hash parameter MUST be included in the Signature Base String together with the other request parameters.

因此,他们的声明“即使使用 nonce 检查和 https,签署请求正文也会提供额外的防御层。”指的是通过 RSA(或通过 HMAC“签名”)对 URL 参数(以及其他内容)进行签名的做法,因此也通过包含的哈希对主体进行身份验证。如果 URL 参数未签名(使用“PLAINTEXT”方法),则您不会通过包含正文哈希来获得任何额外的安全性。

关于security - 通过 TLS 对参数和内容进行哈希验证的优势,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29444238/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com