在极客社区中,您会经常听到OpenID相关的讨论。它似乎是个好主意。我正在开发一个面向不太懂技术(但也不完全是老百姓)的网站,所以我必须考虑是否OpenID对某些受众来说“太难了”。
您怎么看?除此之外,还有其他技术或非技术原因不使用OpenID吗?
在极客社区中,您会经常听到OpenID相关的讨论。它似乎是个好主意。我正在开发一个面向不太懂技术(但也不完全是老百姓)的网站,所以我必须考虑是否OpenID对某些受众来说“太难了”。
您怎么看?除此之外,还有其他技术或非技术原因不使用OpenID吗?
说普通人不理解OpenID可能略有不准确。
在大多数情况下,通过一些说服性的营销(例如“在所有网站上都使用一个登录名!11!”),他们可以理解它允许他们在网站上使用一个登录名进行登录,而不是在不同的网站上使用一堆不同的用户名和密码。
然而,问题在于对于普通用户来说,整个OpenID体验与他们对在线安全的理解相反。
用户不会自动信任它
使用正常的用户名/密码登录,用户知道密码应该保密,这就是当他们在网站上登录时,保护他们隐私的方式。他们如何理解OpenID客户端网站和其OpenID提供者之间的交换呢?他们所知道的是,他们没有输入密码(假设他们在其OpenID提供者上“始终保持登录状态”) - 那么它就不安全,对吧?我的意思是,在用户看来,如果他们没有提供密码,它怎么可能是安全的呢?这可能导致用户不信任它。
它使网络钓鱼变得容易
(很多)用户知道重复使用相同的密码用于不同的账户是错误的,然而这似乎正是OpenID所做的。如果一个用户简单地假设他们的所有OpenID提供者正在做的就是与所有参与的网站共享他们的密码,那该怎么办呢?我的意思是,在所有这些网站上,OpenID如何为他们“登录”呢?如果用户假设通过OpenID,他们的密码变为所有参与的OpenID网站所知,则他们可能会认为将这个密码提供给任何这些站点是相当合理的。这是一个网络钓鱼噩梦。想象一下将这个短语放在您的网站上:“请输入您的(某个OpenID提供者)用户名[ ]和密码[ ]”。你已经在网络钓鱼了。
我们也不能忘记,即使出于稍微不同的原因,用户在一方面怀疑是正确的:如果有人获得了他们的OpenID提供者的访问权限,他们就可以在该身份被用于所有站点的情况下访问其身份,这与在多个站点使用相同密码的缺点相同。
它偏离了用户理解的范围太远
在不同站点使用多个用户名和密码对于用户来说并不难理解。用户很好地理解了用户名和密码的概念,因为他们经常使用它们,并且安全性(密码是秘密)的重点对他们非常明显。密码的工作原理也非常清晰。使用多个用户名和密码组合并不会使这更加混乱或复杂——这只是相同的事情,但是它们有多个。虽然记住多个密码可能很困难,但用户至少知道如何去做,以及它是如何工作的。
OpenID试图解决记住多个密码的问题,但在此过程中它创建了一个全新的范例,完全不透明于用户。与密码不同,其安全性是显而易见的(它只需要保密),OpenID的所有安全性都在幕后进行,站点之间进行通信,使用密钥和哈希等。用户不再完全理解如何保护他们的隐私或要向谁保密,因为他们不了解系统的工作原理。因此,为了解决记住多个密码的问题,OpenID创建了一个神秘的密钥交换系统,这违背了用户对认证工作原理和为什么它安全的整个理解。
普通用户仍然不理解OpenId是什么,它的作用是什么以及如何使用它。例如,我的父母将无法登录Stack Overflow。
话虽如此,这主要与用户界面有关。没有任何固有的阻止他们使用OpenId的东西-他们只需要一种把OpenId从他们那里抽象出来的用户界面,并且只允许他们使用他们的Google帐户进行登录(例如)。
OpenID非常容易受到网络钓鱼攻击。如果您运行一个OpenID网站,请尝试改变登录页面,要求用户输入标识符和密码,而不是只请求标识符并重定向到OpenID提供商以请求用户的密码(这是常见的方法)。我敢打赌,你可以通过这种方式获取四分之一以上的用户密码。
使用OpenID会使你受制于管理其账户的组织。你无法控制密码安全和用户身份信息。你需要相信其他组织能够验证来访者的身份信息。如果你需要真正确认某人的身份,光使用OpenID并不能保证该人就是他所声称的身份。在这种情况下,你可能需要自行进行第二次验证,否则最好不要使用OpenID。
http://www.computerworld.com/s_article/9179224/Researchers_Password_crack_could_affect_millions
这种情况经常出现。
一个好的规则:
如果您需要收集和保留涉及个人身份信息,请勿使用OpenID。
如果您不需要收集和保留涉及个人身份信息,请使用OpenID作为登录方法。
对于需要遵守PCI/DSS认证的电子商务或其他任何地方,我不会使用OpenID。
我不介意SO专门使用OpenID,但我不会创建只使用OpenID的网站。
界面很糟糕。
a. 使用OpenID注册需要更多的时间和技巧。普通注册只需要很少的时间或技巧。注册只需进行一次,但这是一个很大的前期投资,因此网站必须非常吸引人。
b. 登录涉及:三个数据而不是两个;两个网页而不是一个(实际上在StackOverflow有三个);以及一个外部网站。每次都要这样做。
c. 有更好的解决方案接口。例如我使用KeePass。
名称冲突。没有办法确保唯一的名称。
安全性很糟糕。
a. 它鼓励类似钓鱼的行为。虽然不像“Verified by Visa”那么糟糕,但也很接近。
b. 单点故障:如果你失去任何东西,你就会失去一切。 Kepass至少允许我物理保护密码(必须拥有加密数据库的硬盘)。
c. 跨站点跟踪。信用卡公司实际上制定了规则来管理他们被允许进行多少跟踪。现代浏览器可以选择性地禁用或防止Cookie。 OpenID没有规则和管理者。
它实际上并不是普遍适用的。谷歌提供OpenID……但不使用它们。雅虎也是如此。对于AOL也是一样的。没有任何激励措施让OpenID提供者允许使用其他提供者的OpenID。
OpenID对于认证很有用,但对于特别敏感的事情(例如信用卡)的授权并不适用。
对于我个人而言,我在每个站点上使用一个登录名/密码,并使用KeePass(我可以物理保护密码,并使用必须破解的两层密码来维护各处的一个登录名)。这包括StackOverflow:我为你们创建了一个专门的OpenID,并且我不会在其他地方使用它。我这样做,并且忍受着登录的痛苦,因为内容非常吸引人。
但是,如果StackOverflow提供了一个真正的身份验证方法,我会毫不犹豫地采用它,只是为了获得使用便利性的收益。
读到这个话题,我觉得很有趣,因为它完全反映了我的OpenID体验:
StackOverflow.com是我使用OpenID的原因。
我通过许多谷歌搜索找到了这个网站,但我一直无法发表评论。
我想过很多次要注册,但由于对OpenID不太清楚,所以没有注册。
但有一天,我决定注册了,虽然花了我一些时间,但我并不后悔,因为我每天都在使用它。虽然我知道如果被钓鱼攻击,只有一个账户会导致很多问题,但它给了我更安全的感觉。
因此,对我来说,OpenID是在我不熟悉的网站上快速登录的好方法,也适用于像StackOverflow.com这样的大型网站。
主要问题是需要推动新用户进入注册流程,然后发现OpenID实际上是多么好。
如果所有网站都使用OpenID,那么它是很好的选择。但是仅为了使用一个网站而注册OpenID可能有点过于繁琐。从消费者的角度来看,注册OpenID并不像直接在一个网站上注册那样简单明了。
Open ID是一场噩梦
我一直是Open ID的主要支持者。我喜欢这个想法和意图-它是一个长期存在的问题的好解决方案,并为开发人员解决了很多问题。 不幸的是,它为企业主创造了更多的问题。
在这里阅读其余部分:http://www.wekeroad.com/2010/11/17/open-id-is-a-party-that-happened/
这不是我的故事,所以我不会为此负责。