4

我正在阅读亚马逊的身份验证过程,他们使用自定义过程来签署每个请求。

  • 我仍然不明白如何从中间人攻击中停止签署每个请求,因为看到请求并看到签名的每个人都可以再次发出相同的请求。

  • 如果有人分享一些关于安全性或亚马逊网络服务或一般网络服务的参考书目,我也会感激不尽。

  • SSL 如何在这种情况下提供帮助?

谢谢!

4

1 回答 1

7

这是文档必须说的。基本上它归结为时间戳,为了减轻重放攻击,他们建议使用 SSL

验证请求

通过验证请求中包含的信息来验证对 AWS 的请求。使用下表中的信息执行此验证。

AWSAccessKeyId 发件人的 AWS 账户由访问密钥 ID 标识。访问密钥 ID 用于查找秘密访问密钥。

签名 对需要经过身份验证的请求的 Web 服务的每个请求都必须包含有效的请求签名,否则请求将被拒绝。请求签名是使用 AWS 分配给开发人员账户的秘密访问密钥计算的,这是一个只有 AWS 和开发人员知道的共享密钥。

时间戳 创建请求的日期和时间,以 UTC 字符串表示。此参数值的格式必须与 XML Schema dateTime 数据类型的格式匹配。

第二个链接提供:

防御重放攻击的最佳机制是确保您的所有请求都是通过 SSL 连接发出的。如果您不能使用 SSL,那么可用于防止重放攻击的机制是签名版本 2 中的 Expires 参数。这需要您的客户端同步到原子时间(使用 NTP 或类似的同步协议)。如果您不使用 Expires 参数,而仅依赖时间戳参数,则您的请求会受到请求过期期限的影响,该期限因服务而异,但最长可达 15 分钟。

于 2012-09-04T16:09:21.843 回答