为什么网站运营商需要信任 openid 提供者?

信息安全 相信 打开ID
2021-09-06 23:08:25

我在一个网站上工作,正在考虑使用 OpenID 进行身份验证。该网站将提供一些低成本(3-5 美元)的高级服务,但不会保护特别敏感的用户数据,只是保存游戏状态。从我的角度来看,我对身份验证的主要关注是为这些服务付费的人是使用这些服务的同一个人。我不关心验证用户是否属于特定的电子邮件地址或其他公共身份。

如果我允许使用johndoeblog.com/openidGoogle 等知名提供商,我会面临哪些风险也许用户自己比谷歌更信任自己的私人服务器?为什么我要强迫他信任我信任的相同的身份验证提供者?

我可以看到的一个因素是用户要么自愿分享他的凭据,要么他们被泄露,从而允许多人访问高级服务,但无论我使用什么身份验证提供商,我都必须解决这个问题。我在这里想念什么?

1个回答

基本上,您不需要信任 OpenID 提供者:用户信任。

让我们从严格的身份验证角度将密码与 OpenID 进行比较。

  • 密码:用户:“嘿,服务器,是我!你知道是我,因为没有人知道这个神奇的词correcthorsebatterystaple,我在创建帐户时告诉过你。”
  • OpenID:用户:“嘿,服务器,是我!你知道是我,因为说是我,当我创建帐户时,当它说是我时johndoeblog.com/openid,我告诉你要相信。”johndoeblog.com/openid

在这两种情况下,作为服务器,您都依赖于用户选择可靠身份验证方法的意愿和能力。使用密码,用户必须选择一个其他人都不知道的密码。使用 OpenID,用户必须选择其他人无法使用的 OpenID 端点。

出于身份验证的目的,作为服务器运营商,没有理由偏爱一个 OpenID 提供者而不是另一个。您可能(或可能不)更愿意推荐您认为可靠的 OpenID 提供者,但您无需以任何方式信任 OpenID 提供者即可对用户进行身份验证。

这两种情况同样依赖于用户的配合,以确保支付的用户是使用服务的用户。经过密码验证的用户可以共享他们的密码;OpenID 认证的用户可以允许使用他们的 OpenID 端点。

所有这一切都是因为您只关心用户在您的服务器上作为帐户 #1234 的身份。如果您想知道帐户#1234 的所有者被 Syldavia 政府称为 Joe Bloggs,那当然会完全不同:那么您需要信任 OpenID 提供者为您提供 Joe Bloggs 的真实姓名。

信任 OpenID 提供商的一个次要原因是减轻限制帐户创建率的工作:如果您知道 Myriad 已采取措施限制帐户创建率,并且您只接受 Myriad OpenID 帐户,那么这会自动限制帐户创建为您的服务评分。这不适用于您:鉴于您正在运行付费服务,帐户创建率限制是内置的。