【问题标题】:Amazon rest service authentication and securityAmazon REST 服务身份验证和安全性
【发布时间】:2012-08-31 13:26:55
【问题描述】:

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

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

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

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

谢谢!

【问题讨论】:

    标签: web-services security authentication amazon-s3 hmac


    【解决方案1】:

    这是documentation 不得不说的。基本上它归结为时间戳,为了减轻重放攻击,他们建议using SSL

    验证请求

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

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

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

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

    第二个链接可以提供:

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

    【讨论】:

    • 所以为了完全确保我受到保护免受中间人攻击,我必须使用 SSL?
    • SSL 可以很好地防御 MITM 攻击。
    • 如果签名是在 URL 上而不是在请求头中传递的呢?
    猜你喜欢
    • 1970-01-01
    • 2016-03-24
    • 2021-08-19
    • 2010-10-02
    • 1970-01-01
    • 2020-06-24
    • 1970-01-01
    • 1970-01-01
    • 2010-10-31
    相关资源
    最近更新 更多