我有一个服务器将接收带有 SigV4 授权标头的请求,并且基于 SigV4 的验证,我将授予数据访问权限。我们如何验证SigV4?我一直在尝试获取用于验证 SigV4 的文档,但无法获取它?有什么办法可以反编译签名并检查身份验证然后授权吗?
The Sigv4 签名算法 https://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html is
kSecret = your secret access key
kDate = HMAC("AWS4" + kSecret, Date)
kRegion = HMAC(kDate, Region)
kService = HMAC(kRegion, Service)
kSigning = HMAC(kService, "aws4_request")
这使用了一个HMAC https://en.wikipedia.org/wiki/HMAC。 HMAC 使用共享密钥而不是非对称公钥/私钥。
因此,为了验证签名,您的服务器需要知道每个客户端的密钥,或者至少知道kSigning
通过将该秘密绑定到特定日期、区域和服务而派生。
这样做的缺点是,能够验证来自任何(客户端、日期、区域、服务)的请求的服务器也能够生成新请求并将其签名为该身份。根据您的体系结构,如果服务器不比其所有客户端更受信任,这可能会成为问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)