amazon s3 的用户验证 access

php中文网
发布: 2016-06-07 15:38:47
原创
1671人浏览过

amazon s3的用户验证方式是一种对称加密方式,下面介绍此加密方式。 请求的构造 请求元素: AWS Access Key Id:其实就是常见的用户名,用来区分用户的。 Signature:签名,使用私钥计算后得出。 Timestamp:时间戳 Date:时间,为每一个请求设置一个过期时间

amazon  s3的用户验证方式是一种对称加密方式,下面介绍此加密方式。


 请求的构造

  请求元素:

  •   AWS Access Key Id:其实就是常见的用户名,用来区分用户的。
  •   Signature:签名,使用私钥计算后得出。
  •   Timestamp:时间戳
  •   Date:时间,为每一个请求设置一个过期时间。

验证过程

  客户端:经过下面3个步骤

amazon s3 的用户验证 access

1 构建http请求。
2 使用请求内容(request_str) 和 secret-key计算签名(signature)。
3 发送请求到aws服务器。

  aws服务器:经过下面三个步骤

amazon s3 的用户验证 access

4 Amazon S3 根据发送的access-key得到对应的secret-key。
5 Amazon S3 使用同样的算法将请求内容(request_str) 和 secret-key一起计算签名(signature)!和步骤2一样。
6 对比用户发送的签名和Amazon S3计算的签名,判断是否合法。


签名的构造过程

Authorization = <span>"</span><span>AWS</span><span>"</span> + <span>"</span> <span>"</span> + AWSAccessKeyId + <span>"</span><span>:</span><span>"</span> +<span> Signature;
Signature </span>= Base64( HMAC-SHA1( UTF-8-Encoding-<span>Of( YourSecretAccessKeyID,
StringToSign ) ) );
StringToSign </span>= HTTP-Verb + <span>"</span><span>\n</span><span>"</span> +<span>
 Content</span>-MD5 + <span>"</span><span>\n</span><span>"</span> +<span>
 Content</span>-Type + <span>"</span><span>\n</span><span>"</span> +<span>
 Date </span>+ <span>"</span><span>\n</span><span>"</span> +<span>
 CanonicalizedAmzHeaders </span>+<span>
 CanonicalizedResource;
CanonicalizedResource </span>= [ <span>"</span><span>/</span><span>"</span> + Bucket ] +
 <HTTP-Request-URI, <span>from</span> the protocol name up to the query string> +<span>
 [ sub</span>-resource, <span>if</span> present. For example <span>"</span><span>?acl</span><span>"</span>, <span>"</span><span>?location</span><span>"</span>, <span>"</span><span>?logging</span><span>"</span>, <span>or</span>
<span>"</span><span>?torrent</span><span>"</span><span>];
CanonicalizedAmzHeaders </span>= <described below>
登录后复制

  

 

 

Example

客户端

假设:

网趣购物系统加强升级版
网趣购物系统加强升级版

新版本程序更新主要体现在:完美整合BBS论坛程序,用户只须注册一个帐号,即可全站通用!采用目前流行的Flash滚动切换广告 变换形式多样,受人喜爱!在原有提供的5种在线支付基础上增加北京云网支付!对留言本重新进行编排,加入留言验证码,后台有留言审核开关对购物系统的前台进行了一处安全更新。在原有文字友情链接基础上,增加LOGO友情链接功能强大的6种在线支付方式可选,自由切换。对新闻列表进行了调整,

网趣购物系统加强升级版 0
查看详情 网趣购物系统加强升级版

AWSAccessKeyId: AKIAIOSFODNN7EXAMPLE
AWSSecretAccessKey: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

假设我们需要发送下面这样的请求:

DELETE /puppy.jpg HTTP/1.1<span>
User-Agent: dotnet
Host: mybucket</span>.s3.amazonaws.<span>com
</span><span>Date</span>: Tue, 15 Jan 2008 21:20:27 +0000<span>
x-amz-</span><span>date</span>: Tue, 15 Jan 2008 21:20:27 +0000<span>
Authorization: AWS AKIAIOSFODNN7EXAMPLE</span><span>:k3nL7gH3</span>+PadhTEVn5EXAMPLE
登录后复制

1. 构建除Authorization之外的其他字段。

DELETE /puppy.jpg HTTP/1.1<span>
User-Agent: dotnet
Host: mybucket</span>.s3.amazonaws.<span>com
</span><span>Date</span>: Tue, 15 Jan 2008 21:20:27 +0000<span>
x-amz-</span><span>date</span>: Tue, 15 Jan 2008 21:20:27 +0000
登录后复制

2. 提取request_str:

 

 

服务端

相关标签:
最佳 Windows 性能的顶级免费优化软件
最佳 Windows 性能的顶级免费优化软件

每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。

下载
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
最新问题
开源免费商场系统广告
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号