wps栏目上的运服务怎么没有了
953
2022-05-29
OBS身份认证简略流程如下图:
1、用户使用在华为云注册的账号名/密码登录华为云;
2、登录成功后,在IAM Console申请AK/SK;
3、利用申请到的SK计算出单次OBS HTTP 请求的签名;
4、将AK和签名随HTTP请求发送到OBS;
5、OBS使用HTTP请求携带的AK到IAM获取用户SK;
6、IAM返回用户AK对应的SK;
7、OBS使用和第3部完全相同的方式计算出签名,并验证签名是否相同;
8、验证通过,请求成功,返回对象数据。
这其中有3步涉及到了身份认证:
1、第1步,用户和IAM之间的身份认证;用户只有通过了认证才能生成并下载到AK/SK;
2、第5步,OBS和IAM之间的身份认证;OBS只有通过了认证才能通过AK查询到对应的SK;
3、第7步,用户和OBS之间的身份认证;用户只有通过了认证才能访问到对象数据
注:实际过程中,这些操作还需要进行鉴权,确认该用户是否有执行操作的权限,这里为了防止误解,没有在描述中说明。
从上面的过程也可以看出,认证的目的最终其实还是保护数据,上面分别保护:SK、SK、Object Content。
有了简略流程,我们再回过头来讲认证方案:
认证(Authentication)是指通过一定的手段,完成对用户身份的确认。
身份认证的目的是确认当前所声称为某种身份的用户,确实是所声称的用户。一般来说,有如下3种因素能够用于身份认证:
· 某人所知道的内容
根据知识进行身份认证,可以是:密码、PIN、短语或家里小狗的名字。
优点:实现简单、经济实惠
缺点:易丢失
· 某人所拥护的物品
根据所有权进行身份认证,可以是:钥匙、门卡、身份证等。
优点:安全性较高
缺点:需要物理接触携带不方便
· 某人的身份
根据生物特征进行身份认证,可以是:指纹、虹膜、声纹、行为等。
优点:安全性最高
缺点:成本高,依赖硬件,不正确的实现将导致凭证永久丢失
实际实现中,为追求更高级别的安全性,一般会使用上诉两种甚至三种方式的组合,对应我们通常所说的“双因素认证Two-factor authentication (TFA or 2FA) ”“多因素认证Multi-factor authentication (MFA)”。
上诉简略流程中的3步认证,均使用到了“某人所知道的内容”(注:IAM还支持双因素认证,这里不详细解释)。该方式一般有如下实现方案:
· 基于账号口令的认证
· 基于预共享密钥的认证
· 基于公钥的认证
· 基于数字证书的认证
IAM使用“基于账号口令的认证”方案,对用户和对OBS均通过分发账号口令,登录时验证来完成身份认证,由于这部分主要由IAM控制,这里不做详细解释。
OBS使用“基于预共享密钥的认证”方案,一般场景下,有如下要点:
· 算法选择:对称加密算法 or 密码校验函数
· 连接场景:长连接 or 短连接
· 时变参数:随机数 or 时间戳
· 认证模型:双向认证 or 单向认证
OBS业务不同于传统B/S场景,业务上下文无强制依赖,无需维护复杂的会话生命周期,连接场景基于:短连接;业务对性能要求极高,对称加密算法虽然具有同时实现认证和加密的优点,但性能较低,因此算法选择:密码校验函数;业务要求单次短连接,时变参数不适合需要多次交互的随机数,因此时变参数选择:时间戳;同时因为单次短连接原因,认证模型也不适合需要多次交互的双向认证,因此认证模型选择:单向认证。
总结起来:OBS使用的是一种:基于预共享SK使用密钥校验算法包含时间戳的单向单次认证方式。
· 预共享SK:用户在IAM申请AK/SK并仅有一次下载机会。
· 密钥校验算法:基于RFC2104 HMAC算法。
· 时间戳:请求访问的时间会包含在算法签名中。
· 单向:服务端认证客户端。
· 单次:短连接,每次访问都进行认证。
方案的安全机制:
通过比较签名的形式来确认身份。客户端在发起请求前,需要将头域和内容hash进行HMAC计算,得到的字符窜就是签名。客户端将签名随HTTP头域一同发给服务器端,服务器端将按照同样的方式再计算一次,相同则认证通过。有如下优点:
· 防仿冒:只有持有正确预共享SK的用户才能通过认证,访问指定资源;
· 防窃听:SK作为密钥参与签名,但不需要在网络传输,无法被窃听;
· 防篡改:内容hash值也参与签名,若被篡改,服务器端将拒绝请求;
· 防重放:时间也参与签名,超时服务器端将拒绝请求;
对象存储服务
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。