中文

不要信任我:利用恶意 IdP 分析与攻击单点登录

密码学与安全 2014-12-05 v1

摘要

单点登录 (SSO) 系统通过使用身份提供者 (IdP) 颁发可由服务提供商 (SP) 使用的认证令牌来简化登录过程。传统上,IdP 被建模为受信任的第三方。这对于 Kerberos、MS Passport 和 SAML 等 SSO 系统是合理的,其中每个 SP 明确指定其信任的 IdP。然而,在 OpenID 和 OpenID Connect 等开放系统中,每个用户都可以设置自己的 IdP,并且协议流程中增加了发现阶段。因此,攻击者很容易设置自己的 IdP。在本文中,我们采用一种新方法,通过引入恶意 IdP 来分析 SSO 认证方案。利用这种方法,我们评估了最流行且广泛部署的 SSO 协议之一——OpenID。我们发现了四种先前研究未涵盖的新型 OpenID 攻击类别,并展示了它们在实际实现中的适用性。结果,我们能够攻破 16 个现有 OpenID 实现中的 11 个,如 Sourceforge、Drupal 和 ownCloud。我们在开源工具 OpenID Attacker 中自动化了这些攻击的发现过程,该工具还允许对 OpenID 实现中的所有参数进行细粒度测试。我们的研究有助于更好地理解 OpenID 协议中的消息流、系统不同组件中的信任假设以及 OpenID 组件中的实现问题。该方法适用于 OpenID Connect 和 SAML 等其他 SSO 系统。所有 OpenID 实现均已被告知其所存在的漏洞,并且我们协助他们修复了这些问题。

关键词

引用

@article{arxiv.1412.1623,
  title  = {Do not trust me: Using malicious IdPs for analyzing and attacking Single Sign-On},
  author = {Christian Mainka and Vladislav Mladenov and Jörg Schwenk},
  journal= {arXiv preprint arXiv:1412.1623},
  year   = {2014}
}