身份是计算机安全防御方面特别重要的安全机制。如果可以访问多个域的单个登录凭证受到损害,那么不管是物理边界、防火墙边界、安全域、网络验证域还是虚拟网络等,全都不再重要。
如今好的身份识别解决方案能够使用单个凭证访问成千上万个不同的安全域,但令人惊讶的是,它可以在降低整体风险的同时实现这一目标。这究竟是怎么做到的呢?
早期身份认证技术
在计算机和网络技术的早期阶段,大多数人都使用单一登录名和密码来访问全部资源。这种策略后来被证实是非常糟糕的,因为只要一台计算机被感染,就可能会导致共享相同登录凭证的其他所有计算机也遭到破坏。每个人都被建议为自己访问的每个不同的系统创建一个不同的密码。
中期身份认证技术
由于大多数人现在都可以访问数十到数百种不同的受密码保护的资源,如果要对每种不同的资源使用不同的密码,要么就需要借助密码管理器把所有密码存储起来,并在访问所有不同的站点时自动登入,要么就需要采用某种形式的单点登录(SSO)解决方案。
SSO解决方案在企业中变得相当盛行,而密码管理器也在家庭用户间日益普及。但是,这两种类型的解决方案都无法在全部的安全域和平台中适用。一些广泛应用的SSO解决方案被创建出来(比如微软的Passport服务和去中心化的OpenID标准),后来又在尝试之后遭到摒弃。尽管它们都承诺可以“全球使用和接受”,但是所有中期SSO解决方案并没有一个实现了真正意义上的成功。
如今的身份认证技术
社交媒体杀手级应用程序(例如Facebook和Twitter)在对其余的身份认证竞争失败者进行了残忍碾压之后,才奠定了如今的“王者地位”。它们所拥有的庞大用户群,确保了他们无论使用哪种解决方案和协议最终都将成为全球性的通行方案。不过,新的解决方案并非总能获得全球信任和认可。它伤害了许多聪明而又敬业的人的感受,这些人花费了很长时间,一直以来都在研究其他可能更好的解决方案。但都不重要了,要么同化,要么淘汰。
最初的阵痛过去后,纷争平息,强势的新标准最终被认为是不错的东西。最终的结果就是,我们拥有的SSO身份验证标准变得更少,但也变得更受欢迎。这些标准如今可以同时在企业和消费者平台上进行应用。
在谈论如今的身份认证解决方案时,你会听到以下协议和解决方案:Facebook的 Graph API、OAuth、OpenIDConnect、xAuth、SAML、RESTful以及FIDO联盟。经过数十年的努力,无处不在的身份认证世界终于到来了。在很多网站上,你可以使用Facebook、Twitter或喜欢的 OAuth/xAuth SSO来进行身份认证。当然,互操作性(interoperability)问题依然存在,但这些障碍正在迅速瓦解。
现在,你可以使用密码、手机、数字证书、生物识别身份验证、双因子身份认证(2FA)或是多因子身份认证(MFA) SSO解决方案来登录各种网站。每个身份认证可以具有与其相关联的不同“属性”或“声明”,关联至一个或多个受信设备,且具有不同的保证级别,可用于你所选择的不同站点。
当然,现在,SSO解决方案并非在全部网站都有效,但我们距离这一目标已经越来越近了。而当我们日益接近这一目标时,可以肯定地说,也许我们并不是真的想要它!
对于大多数人来说,需要使用多个不同的身份认证来应对不同事务的需求。例如,我们大多数人都有工作和个人账号。我的工作要求能够随时保留所有与工作相关内容,甚至要能够在雇佣关系终止时立即清除所有工作内容。同时,绝大多数和人并不希望工作上的管理员可以访问家庭电脑上的个人内容浏览记录,也不希望自己的个人文档以某种形式出现在工作计算机上,反之亦然。但是,这种情况在当前这种更普遍的全局身份认证大环境下还是会经常发生的。比如,你家里的电脑上会出现工作文档副本的现象,好多人并不陌生吧。
完美的单一身份认证
在一个想像中的完美世界中,如果我们能拥有一个具有不同“身份”(例如工作和家庭)的单一全局身份认证,就可以将其应用到不同用例场景,并且确保不同内容和资源各自隔离开来,那这样的世界就太完美了。也许未来能够实现这种形式,但目前我们还没有能力实现。
单点登录是否会引入更多风险?
你可能会担心,如果拥有一个统一的身份认证是否意味着一旦该单一身份认证失效,那么将会造成更为糟糕的后果。毕竟,使用单点登录跟使用同一个密码登录所有注册网站太像了,不是吗?难道我们绕这一大圈,只是为了走回原点?
是又不是!因为如果你做的是正确的话,大多数情况下是不会绕一圈又绕回原点的。
如果你使用的全局身份认证机制在其源头处(即身份认证服务提供商)受到了损害,那么受损的身份信息有可能会被用到更多地方,风险自然也就会更大。例如,如果一名黑客获取到了你的微信或是微博的登录名和密码,那么他很可能会尝试使用你的社交账户凭证访问你登录的任何地方。
但这也正是大多数其他流行的社交网站和身份验证提供商都在力推更强大的双因素身份认证(2FA)和多因素身份认证(MFA)解决方案,并建议你应该使用它们的原因所在。这样一来,即便黑客获取了你的密码信息,他也得不到(至少不能立即获得)作为身份验证一部分所需的第二个因素或物理设备。
此外,大多数全局身份认证解决方案并不会在所有参与站点上使用单一身份验证令牌。相反地,如果你的“全局令牌”被用来创建特定于单独站点和会话的身份验证令牌,那么这些令牌间便不存在交叉使用的情况。这也就意味着,即使黑客侵入了你用全局身份验证令牌登录的特定站点,该令牌也无法应用到其他站点上。这是双赢的解决方案。至少比共享密码要好得多。
对于生物识别身份验证的隐忧
人们确实担心生物识别技术会被滥用,或者它们哪一天就会被存储到每个人的全局身份账户中。生物识别技术从来都没有像它所宣传得那般好用过,它们根本没有宣传的那么准确,而且通常很容易被伪造,还经常失灵(例如,手上有汗水或污垢时去按指纹读卡机一定是没反应的)。
但是,假设你是一名生物识别指纹爱好者,并且希望能够使用指纹访问任意网站,那么建议你选择一个接受指纹的全局身份验证提供商。这听起来像个好主意,但是,一旦我们开始在全局身份账户中存储指纹,侵入了该身份认证提供商的攻击者就将永远拥有你的指纹信息。他们有可能以你的名义,在所有接受你指纹的其他网站上肆意妄为。
到目前为止,有两件事在阻止生物识别身份盗窃问题蔓延(除了生物识别技术并未在手机和笔记本电脑之外的许多用例中被接受的事实)。首先,大多数生物识别技术都是在本地存储和使用的。这就意味着,黑客必须访问并攻破你的物理设备才能访问你的生物识别身份信息,而且,即使他获取了访问权限,该生物识别技术也无法跨越单一受感染的设备,运用到其他设备上。
第二,也是最为相关的问题,一旦你使用生物识别身份登录,那么之后发生的身份验证就是:认证系统会使用除了你的指纹之外的其他身份验证令牌。你的生物识别身份通常是不会离开你的本地设备的。如果人们开始过度依赖全局生物识别身份验证,这种情况就会发生改变。
结论
我们从来没有像现在这样接近无处不在的全局身份认证。在全局身份认证中启用2FA/MFA选项,这样才能实现利益最大化,以及风险最小化。