2

我在 ASP.NET 上工作,只是从亚马逊目录http://docs.amazonwebservices.com/AmazonS3/latest/dev/RESTAuthentication.html中读取它

非正式地,我们将此过程称为“签名请求”,我们将 HMAC 算法的输出称为“签名”,因为它模拟了真实签名的安全属性。最后,使用本节中描述的语法将此签名添加为请求的参数。

当系统接收到经过身份验证的请求时,它会获取您声称拥有的 AWS 秘密访问密钥,并以相同的方式使用它来计算它收到的消息的“签名”。然后它将计算的签名与请求者提供的签名进行比较。

但我认为这两个请求都不一样。请求已签名(太好了!!)但是来自客户端浏览器的响应的 HMAC 会有所不同,因为它包含额外的数据,对吗?那么即使它们是有效的,请求如何验证

4

1 回答 1

3

你需要阅读你引用的所有段落。就在您引用的那篇文章之前,它说:

要对请求进行身份验证,您首先连接请求的选定元素以形成一个字符串。然后,您使用您的 AWS 秘密访问密钥来计算该字符串的 HMAC。

因此,您根据这些选定的元素计算 HMAC,当您提交请求时,服务器会根据这些相同的元素计算 HMAC,然后将它们进行比较。

于 2012-10-08T15:34:01.060 回答