对具有不同安全级别的站点使用相同的 OpenID 提供程序是否存在风险?

信息安全 验证 身份 打开ID 身份管理
2021-08-16 22:35:06

我总是在支持它的每个站点中使用相同的 OpenID 提供程序(Google,具有强大的唯一密码和 2 因素身份验证),而不会三思而后行。我的理解是,只要提供者是安全的,这些站点中的一个或多个是否被入侵都没有关系,其余站点将保持安全。

但是,另一个问题中的一条评论让我怀疑:

问题的一部分是您“失去”对用户身份的控制,因此您可能会暴露您的数据(...)。但是,通常用户会将他的 OpenId 用于多个安全性较低的站点,这可能会使他在安全性较高的站点上的身份面临风险。(信任边界和攻击面的问题)。但是,如果他想在安全站点和不太安全站点之间混合身份,那可能是他的选择。

我一直在阅读有关以用户为中心和以企业为中心的身份以及一些相关概念的内容,但不太了解这是如何发生的。毕竟,每个Relying Party只信任 OpenID Provider,不一定彼此信任。其中一个的活动不会得到另一个的认可,即使它报告它与同一个 OpenID 帐户相关联。此外,RP 中的敏感信息不一定会回到 OP,更不用说其余 RP 可以使用了。

无论如何,一个站点(或相关站点的集合)可以独立于身份验证方法创建自己的“角色”。例如,StackExchange 有一个单一的网络配置文件,该配置文件将同一用户在其多个站点上的所有操作集中起来,同时允许每个用户通过许多 OpenID 提供程序同一个帐户进行身份验证(如果任何一个提供程序被破坏,那么当然用户帐户将面临风险,但如果所有提供商都是安全的并且其他一些依赖方 - 与其中任何一个相关联 - 行为不端,则不会有风险)。

我错过了什么吗?我应该为我或多或少关心的网站使用不同的供应商,还是可以继续使用一个供应商?

PS当我第一次读到“我刚登录你”它的后续我认为这是与OpenID的问题,但仔细阅读后,我明白杰夫面临的实际问题是重复使用口令,并比他的其他供应商账户将仍然是安全的。这是正确的,还是真的有可能被妥协的依赖方最终会干扰 OpenID 提供者?

1个回答

这里的风险是在线角色本身以及会导致社会工程攻击的原因。假设您使用 google 作为 openid 身份验证器,并将其链接到堆栈交换站点以及其他站点的集合。在此之前,您可能在所有站点上使用了相同的用户名和其他所有内容,但这都是一种松散的关联,人们不会使用它来相信“mgibsonbr”实际上就是您。现在人们可以在 stack exchange、reddit 和 shodanhq 等网站上看到,mgibsonbr 直接链接到您的 gmail 帐户,他们相信他们实际上是在与您交谈。

现在假设有人破坏了堆栈交换并可以冒充任何用户。大不了吧?他们所能做的就是提出或回答问题,人们会认为你不明白该怎么rm -rf /做。那么,如果他们开始在职业 2.0 网站上像您一样申请工作怎么办?雇主会相信他们实际上是在与您交谈,因为职业 2.0 网站直接链接到您的电子邮件地址。也许他们甚至会找到一份工作,并在某家公司像你一样受雇。或者,也许您链接到您的 openid 的另一个网站允许您申请信用卡。现在有人以你的名义持有信用卡。

这个想法是,您不希望将您的开放 ID 与任何冒充您可能造成任何实际损害的站点链接。