Oauth 2.0 OAuth2如何使用安全令牌防止重播攻击?
据我所知,OAuth 2中发生了以下事件链,以便Oauth 2.0 OAuth2如何使用安全令牌防止重播攻击?,oauth-2.0,Oauth 2.0,据我所知,OAuth 2中发生了以下事件链,以便Site-A从Site-B访问用户的信息 Site-A在Site-B上注册,并获得一个秘密和一个ID 当User告诉Site-A访问Site-B时,User被发送到Site-B,在那里他们告诉Site-B,他们确实想给Site-A特定信息的权限 Site-B将用户重定向回Site-A,并附上授权码 Site-A然后将该授权码及其秘密传递回Site-B,以换取安全令牌 Site-A然后通过将安全令牌与请求捆绑在一起,代表用户向Site-B发出请求 所
Site-A
从Site-B
访问用户的信息
Site-A
在Site-B
上注册,并获得一个秘密和一个IDSite-A
访问Site-B
时,User被发送到Site-B
,在那里他们告诉Site-B
,他们确实想给Site-A
特定信息的权限Site-B
将用户重定向回Site-A
,并附上授权码Site-A
然后将该授权码及其秘密传递回Site-B
,以换取安全令牌李>
Site-A
然后通过将安全令牌与请求捆绑在一起,代表用户向Site-B
发出请求所有这些在安全性和加密方面是如何工作的?OAuth 2如何使用安全令牌防止重播攻击?根据我所读的内容,这就是它的工作原理: 问题中概述的一般流程是正确的。在步骤2中,对用户X进行身份验证,并授权站点A访问站点B上用户X的信息。在步骤4中,站点将其机密传递回站点B,对其自身以及授权码进行身份验证,以指示其请求的内容(用户X的访问令牌) 总的来说,OAuth2实际上是一个非常简单的安全模型,加密从未直接发挥作用。相反,机密和安全令牌本质上都是密码,整个过程只通过https连接的安全性来保护 OAuth 2没有针对安全令牌或机密的重播攻击的保护。相反,它完全依赖于站点B负责这些项目,不让它们出去,并且在传输过程中通过https发送这些项目(https将保护URL参数)
授权代码步骤的目的只是为了方便,授权代码本身并不特别敏感。当向站点B请求用户X的访问令牌时,它为站点a的用户X的访问令牌提供公共标识符。仅仅是用户X在站点B上的用户id是不起作用的,因为可能有许多未完成的访问令牌等待同时分发到不同的站点。另一个答案非常详细,解决了OP提出的大部分问题 为了详细说明,特别是为了解决OP提出的“OAuth 2如何防止使用安全令牌的重播攻击?”的问题,在实施OAuth 2的官方建议中有两个额外的保护: 1) 代币通常会有一个很短的到期期限(): 令牌的短到期时间是一种防止 以下威胁:
- 重播
OAuth是一种协议,通过该协议,三方应用程序可以访问存储在另一个网站中的数据,而无需您的帐户和密码。有关更正式的定义,请参阅Wiki或规范 下面是一个用例演示:
您可以从OAuth的详细信息中获得更多信息。OAuth 2.0在现实生活中的工作原理: 我在上班的路上开车经过奥拉夫面包店,突然看到橱窗里有最美味的甜甜圈——我的意思是,那东西正滴着巧克力糖。于是我走了进去,要求“我一定要吃那个油炸圈饼!”。他说:“当然是30美元。” 是的,我知道,一个油炸圈饼30美元!一定很好吃!我伸手去拿钱包,突然听到厨师喊道:“不!你不要甜甜圈。”。我问:为什么?他说他只接受银行转账 真的吗?是的,他是认真的。我差点就走开了,但是甜甜圈对我喊道:“吃了我,我很好吃……”。我是谁,不服从甜甜圈的命令?我说可以
+--------+ +---------------+
| |--(A)- Authorization Request ->| Resource |
| | | Owner |
| |<-(B)-- Authorization Grant ---| |
| | +---------------+
| |
| | +---------------+
| |--(C)-- Authorization Grant -->| Authorization |
| Client | | Server |
| |<-(D)----- Access Token -------| |
| | +---------------+
| |
| | +---------------+
| |--(E)----- Access Token ------>| Resource |
| | | Server |
| |<-(F)--- Protected Resource ---| |
+--------+ +---------------+