据我了解,以下事件链发生在 OAuth 2 中 ,*Site-A以便从. *Site-B
Site-A
Site-B
所有这些在安全和加密方面是如何工作的?OAuth 2 如何使用安全令牌防止诸如重放攻击之类的事情?
根据我所阅读的内容,这就是它的工作原理:
问题中概述的一般流程是正确的。在第 2 步中,用户 X 已通过身份验证,并且还授权站点 A 访问用户 X 在站点 B 上的信息。在第 4 步中,站点将其 Secret 传递回站点 B,对自身进行身份验证,以及授权代码,指示什么它要求(用户 X 的访问令牌)。
总体而言,OAuth 2 实际上是一个非常简单的安全模型,加密永远不会直接发挥作用。相反,Secret 和 Security Token 本质上都是密码,整个事情只有通过 https 连接的安全性来保护。
OAuth 2 没有针对 Security Token 或 Secret 的重放攻击的保护。相反,它完全依赖于站点 B 对这些项目负责并且不让它们离开,并依赖于它们在传输过程中通过 https 发送(https 将保护 URL 参数)。
授权码步骤的目的只是为了方便,授权码本身并不是特别敏感。当向站点 B 询问用户 X 的访问令牌时,它为站点 A 的用户 X 的访问令牌提供了一个通用标识符。仅站点 B 上的用户 X 的用户 ID 是行不通的,因为可能有许多未完成的访问令牌等待同时分发给不同的站点。