“带上你自己的身份”作为唯一的身份验证选项是一种有效的做法吗?

信息安全 验证 oauth 身份 打开ID 开放式连接
2021-09-02 17:10:21

这个问题主要针对OpenID Connect,等它完全实现的时候。

我理解对使用社交网站登录的反感,但根据我对 OIDC 的了解,它应该最终允许开发人员简单地实现一次 OIDC 并让它与每个提供商一起工作。

一旦发生这种情况,人们可以选择使用非社交网络登录,看到像赛门铁克这样的选项,并意识到‘哦,这个身份的事情不仅仅是与整个星球分享我的电子邮件联系人和朋友列表',我相信大部分的不信任都会消失。

因此,忽略对社交网络的 oauth 犹豫不决,并转向这个问题:

BYOID 作为唯一的身份验证方式,因此完全外包身份验证,是一种有效的安全实践吗?

4个回答

的,这是一个合理的方法。

这不是一种零风险的方法。如果用户还没有 OpenID Connect 帐户,或者他们不了解该概念,则注册过程会变得更加困难,并且您可能会失去该用户。因为你正在做一些非标准的事情,你会得到一些聪明的 alec 用户,他们会用迂腐的抱怨来纠缠你的支持人员。如果将来有一些妥协,也许是 OpenID Connect 协议中的一个缺陷,与从未采用这种方法的网站相比,你可能看起来很愚蠢。

但总的来说,我认为这是一件好事。大多数用户已经拥有一个主要提供的帐户,并且很乐意使用它,就像我很乐意使用我的 Google 帐户登录堆栈交换一样。少数用户将在次要提供商处拥有一个帐户,他们之所以选择该提供商是因为他们喜欢他们的隐私政策。有些甚至会运行自己的 OpenID Connect 服务器。相信这涵盖了大家的需求,所以没有必要提供回退到用户名+密码认证。


编辑- 重读我的帖子,我意识到我做了两个假设:

  • OpenID Connect 成为一种广泛使用的事实上的标准。如果没有,那么您当然需要提供替代方案。
  • 您的网站不是高度敏感的。如果是,那么您可能应该使用多因素身份验证。

,我不相信它,尽管我更关注可用性目的而不是安全目的,由于您发布它的位置,这可能不是您所指的这个问题,但考虑到这一点很重要。

有些人,比如我自己,不使用任何第三方身份验证服务。将这些作为唯一的登录选项将完全拒绝我访问您的网站,否则我可能会对此感兴趣。事实上,只有像 Facebook 和谷歌这样的大型社交网站才有足够的吸引力让您成为有理由确定最感兴趣的访问者会在他们那里拥有一个帐户。但是您应该始终为那些感兴趣但没有/不希望使用任何第三方服务的人提供后备选项,否则您将不必要地拒绝感兴趣的参与者。

这在很大程度上取决于您的用例。例如,我认为 Plug DJ 或 Stackexchange 等网站实现 OpenID 是可以接受的。他们通常不提供任何其他形式的身份验证,但我认为这是可以接受的。会有一些用户不喜欢它,因为这又是社交媒体收集更多统计数据的另一种方式,但这并不是真正的安全问题。

从敏感应用程序的角度来看,由于几个原因,它目前不可行或不可接受。最重要的是对双因素身份验证的要求(我不确定目前是否可用)。

此外,您的应用程序的密码安全控制(例如密码策略)完全依赖于 OpenID 提供程序的实现。如果 OpenID 提供者犯了错误并泄露了密码,如果您的应用程序发生欺诈行为,谁来承担责任?

我不想关注 OIDC 实现,而是想解决更普遍的问题:

BYOID 作为唯一的身份验证方式,因此完全外包身份验证,是一种有效的安全实践吗?

公钥是一种外包身份验证形式。我们信任证书有效性的第 3 方验证,因此允许访问资源。从这个角度来看,这似乎不是不合理的。通过将外部验证与可能相当于“众包验证”(即社交网络)的方式联系起来,您可以在一定程度上确认此人就是您期望他们成为的人。

确实,实施存在一些重大障碍,但该概念以其他形式被广泛接受。