Skip to main content
QUICK REVIEW

[论文解读] On the security of modern Single Sign-On Protocols: Second-Order Vulnerabilities in OpenID Connect

Vladislav Mladenov, Christian Mainka|arXiv (Cornell University)|Aug 18, 2015
Web Application Security Vulnerabilities参考文献 15被引用 12
一句话总结

本文识别出 OpenID Connect 中一类新型的二阶漏洞,具体利用发现(Discovery)和动态注册(Dynamic Registration)扩展,实现恶意端点攻击。这些攻击导致认证失效、SSRF、代码注入和拒绝服务(DoS),通过在注册阶段存储有效载荷并在后续认证流程中执行,从而在正确实现协议的情况下仍破坏协议的安全性。

ABSTRACT

OAuth is the new de facto standard for delegating authorization in the web. An important limitation of OAuth is the fact that it was designed for authorization and not for authentication. The usage of OAuth for authentication thus leads to serious vulnerabilities as shown by Zhou et. al. in [44] and Chen et. al. in [9]. OpenID Connect was created on top of OAuth to fill this gap by providing federated identity management and user authentication. OpenID Connect was standardized in February 2014, but leading companies like Google, Microsoft, AOL and PayPal are already using it in their web applications [1], [2], [3], [30]. In this paper we describe the OpenID Connect protocol and provide the first in-depth analysis of one of the key features of OpenID Connect: the Discovery and the Dynamic Registration extensions.We present a new class of attacks on OpenID Connect that belong to the category of second-order vulnerabilities. These attacks consist of two phases: First, the injection payload is stored by the legitimate application. Later on, this payload is used in a security-critical operation. Our new class of attacks - called Malicious Endpoints attacks - exploits the OpenID Connect extensions Discovery and Dynamic Registration. These attacks break user authentication, compromise user privacy, and enable Server Side Request Forgery (SSRF), client-side code injection, and Denial-of-Service (DoS). As a result, the security of the OpenID Connect protocol cannot be guaranteed when these extensions are enabled in their present form. We contacted the authors of the OpenID Connect and OAuth specifications. They acknowledged our Malicious Endpoint attacks and recognized the need to improve the specification [29]. We are currently involved in the discussion regarding the mitigation of the existing issues and an extension to the OAuth specification.

研究动机与目标

  • 分析 OpenID Connect 的安全性,特别是其发现和动态注册扩展,这些部分此前未被深入研究。
  • 识别并演示一类新型漏洞——二阶攻击,其中恶意有效载荷在协议设置阶段被存储,并在后续阶段执行。
  • 表明即使实现遵循协议规范,这些漏洞仍会破坏用户认证、隐私和系统完整性。
  • 填补针对复杂、多阶段单点登录(SSO)协议(如 OpenID Connect)的自动化检测工具的空白。
  • 推动未来在分布式 SSO 系统中开展形式化建模与自动化分析工具的研究。

提出的方法

  • 对 OpenID Connect 协议进行了手动、深入的逆向工程与威胁建模,重点关注发现和动态注册阶段。
  • 发现协议允许注册不受信任的端点,并在后续安全关键操作中使用,而缺乏适当的验证。
  • 设计并演示了实际的攻击链:攻击者在注册阶段注入恶意端点,随后在认证过程中触发执行。
  • 利用客户端与身份提供者在发现和注册阶段缺乏相互认证的漏洞,实现恶意有效载荷的注入与后续执行。
  • 在类似真实场景中验证了攻击,表明无需实现缺陷或配置错误——仅需协议层面的弱点即可成功。
  • 与 OAuth 和 OpenID Connect 规范作者进行了沟通,对方已承认问题,并正在积极改进标准。

实验结果

研究问题

  • RQ1OpenID Connect 的发现与动态注册扩展如何引入传统一阶漏洞之外的新攻击向量?
  • RQ2在无实现缺陷的情况下,能否在 OpenID Connect 中成功利用二阶漏洞(即攻击载荷在某一阶段存储,于后续阶段执行)?
  • RQ3在真实部署中,这些漏洞在多大程度上破坏了用户认证、隐私和系统完整性?
  • RQ4为何现有自动化工具(如 SSOScan 和 AuthScan)无法检测 SSO 协议中的此类二阶漏洞?
  • RQ5这些漏洞对支持类似动态信任建立机制的其他 SSO 协议有何影响?

主要发现

  • 本文发现 OpenID Connect 中存在一类新型二阶漏洞,其根源在于发现与动态注册阶段缺乏验证与信任建立机制。
  • 这些漏洞允许攻击者在注册阶段注册恶意端点,随后在认证流程中执行 SSRF、客户端代码注入和 DoS 攻击。
  • 攻击绕过传统安全机制,因为恶意载荷在合法协议阶段被存储,仅在后期执行,导致检测困难。
  • 用户认证可能被完全破坏,攻击者可伪造身份令牌或将认证流程重定向至恶意身份提供者。
  • 规范作者已承认研究发现,并正在积极通过未来版本的 OpenID Connect 和 OAuth 规范来缓解这些问题。
  • 本研究揭示了当前安全评估实践中的关键缺口:仅关注 SSO 协议的第 2 和第 3 阶段,而忽视了漏洞根源所在的早期发现与注册阶段。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。