amazon s3 的用户验证 access
程序员文章站
2022-05-22 10:06:19
...
amazon s3的用户验证方式是一种对称加密方式,下面介绍此加密方式。 请求的构造 请求元素: AWS Access Key Id:其实就是常见的用户名,用来区分用户的。 Signature:签名,使用私钥计算后得出。 Timestamp:时间戳 Date:时间,为每一个请求设置一个过期时间
amazon s3的用户验证方式是一种对称加密方式,下面介绍此加密方式。
请求的构造
请求元素:
- AWS Access Key Id:其实就是常见的用户名,用来区分用户的。
- Signature:签名,使用私钥计算后得出。
- Timestamp:时间戳
- Date:时间,为每一个请求设置一个过期时间。
验证过程
客户端:经过下面3个步骤
1 构建http请求。
2 使用请求内容(request_str) 和 secret-key计算签名(signature)。
3 发送请求到aws服务器。
aws服务器:经过下面三个步骤
4 Amazon S3 根据发送的access-key得到对应的secret-key。
5 Amazon S3 使用同样的算法将请求内容(request_str) 和 secret-key一起计算签名(signature)!和步骤2一样。
6 对比用户发送的签名和Amazon S3计算的签名,判断是否合法。
签名的构造过程
Authorization = "AWS" + " " + AWSAccessKeyId + ":" + Signature; Signature = Base64( HMAC-SHA1( UTF-8-Encoding-Of( YourSecretAccessKeyID, StringToSign ) ) ); StringToSign = HTTP-Verb + "\n" + Content-MD5 + "\n" + Content-Type + "\n" + Date + "\n" + CanonicalizedAmzHeaders + CanonicalizedResource; CanonicalizedResource = [ "/" + Bucket ] +from