除了双因素:如何使用U2F来改善应用安全

您还记得过去在用双因素身份验证之前,只使用一个用户名和密码就能被认为是安全的好时光吗?事实上,其实从来都不是那样的。在少年时的朱利安·阿桑奇(Julian Assange)闯入五角大楼之前,甚至在互联网广为传播到世界各地之前,人们就在使用暴力密码攻击去攻破了一个个系统。美剧《黑客军团》里的Mr. Robot就运用社交工程破解了其视为目标的大多数人的账户。

创新互联-专业网站定制、快速模板网站建设、高性价比井陉网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式井陉网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖井陉地区。费用合理售后完善,十余年实体公司更值得信赖。

使用2FA(双因素身份认证)曾被视为是对此的补救方法,但其方法已被发现有着黑客可利用的漏洞,而应对此挑战的办法则比较昂贵的。幸运的是,还有一个双因素身份认证的替代方案:通用第二要素认证,或称U2F,它正是应用程序开发人员所需一个的开源方案。

双因素身份认证的问题

在转为使用双因素身份认证之前,通过检查各种单因素身份认证的基线挑战来做好准备是很重要的。根据对主要服务提供商,如Adobe、Twitter、Linkedin和雅虎的攻击上升趋势所显示,仅用密码和安全问题的方式会将用户暴露于黑客面前。

由于用户不断重复使用某个秘密这一事实,密码本身成了一个最大问题。黑客们深谙这一点,所以一旦他们破解并窃取了一个帐户的身份验证凭证,他们则会尝试着以此潜入受害者的其他服务。如果用户选择使用了弱的密码机制,则黑客完全可以使用到Kali Linux的Crunch工具或是其它现成的密码破解工具。

既然单因素身份认证是不安全的,那么2FA(双因素身份认证)一定可靠吗?实际上,2FA的实施也有其自身局限性。例如,当您的双因素身份认证依赖于通过短信方式发送的一个验证码的话,骗子则可以通过利用社会工程学骗取用户的电话以获取之。而如果通过使用智能手机来作为第二种认证因素的话,也会有其它的风险。例如我们需要保护应用程序在逻辑上远离各种恶意软件。

实施双因素身份认证的另一个挑战在于价格方面。像谷歌或Facebook这样拥有数十亿用户的公司是无法实施昂贵且复杂的解决方案的。例如为它们所服务的每个用户提供一个唯一的令牌或智能卡,这都将是一笔非常昂贵的开销。那么,如何才能有效且划算的实施2FA呢?我们可以考虑“通用第二要素认证”,或称U2F。

U2F是如何工作的

由谷歌和Yubico所共同创建的U2F(通用第二要素认证)开启了认证的新标准。它允许用户安全且即时地使用一个设备去访问多个在线服务,而不需要安装特殊的设备驱动程序或客户端软件。通过使用U2F,您可以使用一个令牌来认证许多个服务。

U2F要求用户使用一个支持U2F标准的钥匙令牌(如USB类型)设备和浏览器。而钥匙设备的功能是作为一个安全令牌,让用户登录到多个支持U2F的在线服务上,那些服务包括了定制的应用程序。目前Chrome和Firefox都已支持U2F。

U2F标准协议的初探

Yubico定义U2F为:“一个具有挑战-响应协议的扩展,它提供网络钓鱼和MitM(中间人攻击)保护,特定应用程序的密钥,设备克隆检测和设备认证功能。”该协议的控制旨在对已知的和新的攻击予以防护。它使用的是非对称加密,也称公钥加密算法,其中私钥驻留在Yubikey设备之中。客户端上的浏览器内也开启了对挑战、处理和应用程序ID之类的适当控制(如下图所示)。

如何在您的网站上实现U2F

想让您的网站访问者以U2F的方式进行双因素身份认证相对来说是比较容易的,另外Yubico也提供了开发人员指南。您有三种选择,其中最简单的路径是使用Yubico的U2F的验证服务器(u2fval)。它通过一个简单的基于JSON的REST API提供了U2F的注册和认证,所以您不需要对应用程序的代码做太多的修改。此外,它还能对例如Wordpress这样流行的内容管理系统平台,以插件的形式提供“开箱即用”式的支持。所有的代码都是开源的,并且能在Github上获取到。

如何用u2fval来进行U2F的实施

如前所述,采用带有U2F的双因素身份认证的最简单方法是使用Yubico的U2F验证服务器(u2fval)。如果您正在Linux或Mac OS系统上做开发,其安装是很容易的。您只需使用如下这个pip命令:

sudo pip install
u2fval

您还可以使用其它的Python或Github安装命令。

简单的配置是需要的,但是服务器并不需要一个数据库。您还必须配置每一个客户端,以及它所进行的身份认证方式。不幸的是,这已经超出了u2fval的范畴,所以您需要独立地实现它。

U2F的潜在安全问题

既然U2F式的双因素身份认证协议依赖于浏览器上客户端级别的验证,那么潜在的攻击就可能来自驻留于浏览器本身的安全漏洞。所以U2F的安全性取决于谷歌、Mozilla等其它公司在其浏览器上应用该协议的良好程度。

此外,如果您使用的是U2F验证服务器,那么请记住,REST API的调用需要进行服务器级别的强验证控制。如果API的验证不能被安全地开发和验证,您可以会受到服务器端的攻击。同时,由于U2F依赖于一个数据库,因此所有通过路径/etc/yubico/u2fval/u2fval.conf这一配置文件的访问都应该受到限制。而且,因为在Apache服务器上部署u2val服务器时,有一个选项是使用mod_wsgi,那么在Apache中监控将来可能出现的漏洞,对于防护未来出现的攻击来说是至关重要的。

鉴于身份验证的控制完全掌握在开发人员的手中,我建议大家应该保持谨慎的态度。要知道,一个对于U2F的劣质应用实施将会导致客户端身份认证上的各种安全错误。

U2F的未来

U2F式的双因素身份认证协议是建立在强安全的理念之上的。它在通过诸如Gmail、Github和Facebook等服务传播双因素身份认证的方面有着非常有希望的未来。当然组织要想采用之,则必须首先有一个适当的安全软件开发生命周期。

它的成功实施取决于您是如何编程与集成其它所需组件的。这包括您验证客户的方式,和对数据库的访问设置。运用安全的DevOps的方法,并遵循OWASP指南可以帮助您创建出各种牢固的应用程序,并能防御未来出现的各种验证方面的攻击。

网站题目:除了双因素:如何使用U2F来改善应用安全
标题链接:http://www.shufengxianlan.com/qtweb/news17/267167.html

成都网站建设公司_创新互联,为您提供小程序开发营销型网站建设面包屑导航电子商务网站维护做网站

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联