web-services - 亚马逊休息服务认证和安全

标签 web-services security authentication amazon-s3 hmac

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

  • 我仍然不明白签署每个请求是如何停止中间人攻击的,因为每个看到请求并看到签名的人都可以再次发出相同的请求。
  • 如果有人分享一些关于安全或亚马逊网络服务或一般网络服务的引用书目,我也会很感激。
  • SSL 在这种情况下如何提供帮助?

  • 谢谢!

    最佳答案

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

    Authenticating Requests

    Requests to AWS are authenticated by verifying information contained within the request. This verification is performed using the information in the following table.



    AWSAccessKeyId 发件人的 AWS 账户由访问 key ID 标识。访问 key ID 用于查找 secret 访问 key 。

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

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

    第二个链接提供:

    The best mechanism for defense against a replay attack is to ensure all your requests are made over an SSL connection. If you cannot use SSL, then the mechanism available to you for prevention of replay attacks is the Expires parameter in signature version 2. This requires your client to be synchronized to atomic time (using NTP, or a similar synchronization protocol). If you do not use the Expires parameter, and rely only on the timestamp parameter, your requests are subject to a request expiration period, which varies by service, but can be as long as 15 minutes.

    关于web-services - 亚马逊休息服务认证和安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12216321/

    相关文章:

    java - 你好。我有 war 包装 spring boot soap web 服务,我部署到 tomcat 但 soapui 请求返回错误

    java - Hibernate - 将列存储为加密,并仅在运行时解密

    authentication - 实现用户登录系统的正确方法

    jsp - NetBeans Tomcat Jsp mysql 表单登录和 session

    c# - 如何在 C# 中公开 WCF Web 服务调用响应 header

    c# - ASMX Web 服务可以使用 Response.BinaryWrite 响应吗?

    java - 在 java eclipse 的 web.xml 中使用 servlets 名称和 servlets-url

    asp.net - 什么取代了 IIS/ASP.NET 站点上的 .htaccess?

    java - 我无法使用恶意反射来查看私有(private)字段的值

    android - android 可以签署 http/https 调用,以唯一标识执行请求的应用程序吗?