亚马逊REST服务的身份验证和安全性

4
我正在阅读亚马逊的身份验证流程,他们使用一种自定义的流程对每个请求进行签名。
  • 我仍然不明白为什么签署每个请求可以防止中间人攻击,因为每个看到请求并看到签名的人都可以再次发出相同的请求。

  • 如果有人分享关于安全或亚马逊网络服务或网络服务的文献资料,我也会很感激。

  • SSL如何帮助解决这个问题?

谢谢!

1个回答

7
这是文档中的内容。基本上这是关于时间戳的,为了防范重放攻击,他们建议使用SSL验证请求

AWS的请求通过验证请求内包含的信息进行验证。这个验证是通过以下表格内的信息来完成的。

AWSAccessKeyId 发送者的AWS帐户由访问密钥ID标识。访问密钥ID用于查找密钥。

Signature 每个需要验证请求的Web服务请求必须包含有效的请求签名,否则请求将被拒绝。请求签名是使用由AWS分配给开发人员帐户的Secret Access Key计算的,这是一个只有AWS和开发人员知道的共享密钥。

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

第二个链接提供了以下信息:

防范重放攻击的最佳机制是确保所有请求都使用SSL连接进行。如果无法使用SSL,则对于重放攻击可用的机制是签名版本2中的Expires参数。这要求客户端使用原子时间进行同步(使用NTP或类似的同步协议)。如果您不使用Expires参数,并且仅依赖于timestamp参数,则您的请求将受到请求过期时间的限制,该时间因服务而异,但最长可达15分钟。


那么,为了完全确保我受到中间人攻击的保护,我必须使用SSL吗? - danielrvt
SSL是防范中间人攻击的重要手段。 - GalacticJello
如果签名是通过URL传递而不是在请求头中,该怎么办? - Andy Fusniak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接