在你的网站上使用OpenID有什么危险?

在你的网站上使用OpenID有什么危险?,openid,Openid,假设我创建了一个类似StackOverFlow的网站,并决定使用OpenID。怎样才能防止我,或者其他人,通过网络钓鱼来盗取身份证呢?也就是说,您如何才能真正知道任何网站都在使用OpenID而不是假装使用OpenID?你如何保护自己不受这种伤害 在此基础上,假设有一个站点确实破坏了您的openID凭据,难道他们不能在其他所有使用openID的站点上使用它吗?难道你的openID的安全性就不会像最脆弱的网站/提供商那样强大吗 您只需输入ID,无需输入密码。ID是公共的,因此“网络钓鱼”不是安全漏洞

假设我创建了一个类似StackOverFlow的网站,并决定使用OpenID。怎样才能防止我,或者其他人,通过网络钓鱼来盗取身份证呢?也就是说,您如何才能真正知道任何网站都在使用OpenID而不是假装使用OpenID?你如何保护自己不受这种伤害


在此基础上,假设有一个站点确实破坏了您的openID凭据,难道他们不能在其他所有使用openID的站点上使用它吗?难道你的openID的安全性就不会像最脆弱的网站/提供商那样强大吗

您只需输入ID,无需输入密码。ID是公共的,因此“网络钓鱼”不是安全漏洞。一些提供商甚至对所有用户使用相同的ID,例如,google帐户的ID总是
https://www.google.com/accounts/o8/id
。有关更详细的说明,请参阅。

当有人在您的站点输入开放ID时,您可以通过询问用户的开放ID所在的站点(并且仅该站点)来验证该用户是否正常。例如,AOL无法验证Yahoo OpenID

如果用户尚未在该站点进行身份验证,则身份验证将失败,您需要重定向到该站点的登录页面。真正的身份验证仍然需要进行,但对于该用户的OpenID提供程序,这种情况总是会发生。作为用户,您受到保护,因为您应该只看到您熟悉的登录页面。恶意站点很难虹吸OpenID凭据,因为用户从不直接向这些站点提供密码

一旦用户通过其提供商的身份验证(或者如果他们来自get go),提供商将向您的网站报告此情况。OpenID的变化是,您的站点现在需要信任某些其他站点——它们将准确地为用户报告状态

有人可能会设置一个“恶意”的开放id提供者,并试图通过这种方式删除新id,但这是用户和提供者之间的事。由于这种身份验证都是关于声誉的,因此这样的提供商不会在业务上停留太久。如果没有其他原因,网站可能会将这些提供商列入黑名单。恶意提供程序将无法模拟向其他提供程序注册的开放ID


恶意提供商的另一种可能性是设置OpenID服务,该服务只需始终确认传递给它进行身份验证的任何id(或允许管理员为其用户设置后门)。但是,这只会影响向该提供商注册的用户。同样,网站可能会将这些提供商列入黑名单,而且由于它们依赖声誉,这种想法不会在业务中长期存在。

OpenID系统非常安全,因此获得了很多支持


我看到的主要缺点是,如果您的许多用户的OpenID提供程序失败,这些用户将被锁定在您的站点之外。因此,您应该有一个用户名/密码备份计划,在验证后存储他们的电子邮件地址,以便在发生紧急/灾难时向他们发送密码。

对于对OpenID工作原理知之甚少的用户,您可以创建一些看起来像他们的OpenID所针对的网站的欺骗页面(比如说,任何处理OpenID的免费电子邮件提供商)。如果他们在填写用户名和密码之前忘记检查他们所在的域,那么evildomain现在就有了他们的OpenID用户名和密码

在服务器端,您依赖外部站点进行身份验证。因此,如果提供商XYZ的OpenID身份验证表单中存在漏洞,允许密码“箭鱼”在任何帐户上工作,则任何人都可以在接受OpenID的任何位置模拟该提供商的用户


allesklar在我打字的时候提出了一个很好的观点,这与我的最后一点很好地衔接:如果你混合了本地和远程用户,你突然需要两个禁止列表而不是一个;第二个禁止列表代表“坏”OpenID提供程序由用户设置,用于创建成批帐户…或自动授权给他们的任何帐户名。

有趣的故事。我在上发现了一个漏洞,允许我完全更改某人的个人资料。如果Jeff一直使用电子邮件+密码,我可以拥有他的帐户,但因为SO使用OpenID,所以什么都没有只是把他的口头禅改成有趣的东西


问题中的漏洞已被报告、修复,我还在等待我的黑客徽章。:p

这里让我害怕的关键不是某个网站拥有他的帐户,而是每个使用openID的网站!!!

释放您的openID有什么害处?在造成任何伤害之前,您仍然需要在openID提供商处验证您的身份。你可能应该编辑标题或文本。我理解标题是在询问使用OpenID作为开发人员的危险(就像这样),但这篇文章是从用户的角度讲风险的。你的问题是什么?OpenID URI是公开的。我的是-没有什么可以钓鱼的。OpenID提供者的身份验证,而不是依赖方的身份验证。@Mark:没错。但是你怎么知道StackOverFlow是正确验证你的ID而不是假装呢?@phihag:我的想法是正确的我的网站的安全性仅与使用的开放提供商一样好。实际上,更重要的是,我的安全性仅与用户的技能一样安全。例如,如果他们访问伪造提供商并输入其凭据的网站,我的网站也会受到损害。在您的评论中:“…您可以创建一些看起来像他们的OpenID所针对的网站的欺骗页面)。“这不正是会发生的吗?如果它成为主流,大多数人都不知道什么是合法的,什么是不合法的。即使在今天,大多数人都不太了解SSL证书……为了拥有他的openID帐户,我需要拥有他的openID提供商,这取决于它是谁,可能是一项相当困难的任务。值得注意的是,大多数人使用相同的电子邮件+密码c