选择2FA验证器应用程序可能很困难。Ars做的,所以你不必

2020-05-29 06:25:59

去年,塞尔吉奥·卡尔塔吉隆(Sergio Caltagirone)发现自己陷入了困境。在旅行中,他的手机坏了,完全不能工作了。由于无法访问他的谷歌和微软身份验证应用程序,他在最需要的时候失去了访问双因素身份验证的权限-当他从他注册的30到40个网站无法识别的IP地址登录时。

安全公司Dragos负责威胁情报的高级副总裁Caltagirone说:“我有一大堆网站,我不得不经历一个非常漫长的账户恢复过程,因为我失去了我的2FA,”Caltagirone是安全公司Dragos负责威胁情报的高级副总裁。“每次我都要联系客服。我需要通过不同级别的要求才能让他们在我的账户上有效地禁用2FA。有些需要地址验证。(对于其他人,)我不得不寄出最后一张账单。我看过的那些东西太多了,简直让人抓狂。“。

经验表明,多因素认证是一把双刃剑。要求用户输入每30秒伪随机生成的密码,这会使帐户接管变得非常困难,即使攻击者已经钓鱼或以其他方式获得了密码。但是,如果第二个因素(在本例中是“您拥有的东西”,即手机)不可用,同样的保护可以阻止合法用户登录长达不可接受的时间。

去年9月,当Caltagirone传达他的经验时,对可用的消费者和小企业认证器的快速调查留下了许多不尽如人意的地方。其中只有几个能够备份每部手机用来生成基于时间的一次性密码(TOTP)的独特密码种子。网站-包括谷歌、Github、Facebook和其他数百家实施基于时间的一次性密码算法标准的网站-需要临时密码才能登录选择登录到2FA的用户。

结果是什么呢?当您的设备被盗、丢失或停止工作时,您必须经历与Caltagirone相同的痛苦和耗时的帐户恢复过程。缺乏备份和恢复机制意味着避免设备丢失或故障的唯一可行方法是打印、扫描或拍摄每个二维码或底层网络链接(例如,它代表的http://[email protected]/?secret=LZZIKRWX736EH2IQ&;issuer=Slack))。这很耗时。更糟糕的是,存放它们既麻烦又不安全,特别是在旅行时。

不幸的是,TOTP有一把双刃剑,同样令人恼火。通过将它们存储在别人的服务器上,有时只需要密码和短信验证来恢复它们,它们很容易被窃取,至少在更严格的威胁模型场景中是这样。我测试了Twilio Authy,Duo Mobile,LastPass Authenticator,Microsoft Authenticator和Google Authenticator,发现除了Google Authenticator之外,所有这些都提供了一种可行的方法来备份TOTP种子,并在手机或其他设备丢失时恢复它们。

对于提供恢复的所有四个验证器来说,安全性都是可以通过的,但每个验证器也都有弱点,在极端情况下,这些弱点使它们容易受到黑客、恶意内部人士或拥有法院命令的执法机构的攻击(取决于应用程序)。在马克·加马奇(Mark Gamache)的无价帮助下,我想到了这样的场景和每个身份验证者的风险-收益分析,他是西雅图地区的一名安全专业人士,专注于应用密码学和身份验证。

这篇文章不应该被理解为说人们不应该使用2FA。即使启用了备份,使用基于TOTP的2FA无疑也比不使用2FA要好。重要的是要记住,在这里,就像任何安全评估一样,没有一刀切的办法。对一个人来说最安全的东西对另一个人来说不一定是正确的。这一综述与其说是告诉读者哪个验证器备份是最安全的,不如说是帮助读者思考所有的各种注意事项。

我和Gamache假设的威胁模型之一是黑客(1)通过网络钓鱼或其他方式成功获取密码(毕竟,根据定义,这是2FA预期的场景)和(2)通过SIM交换或其他方式控制用户的电话号码。虽然这些要求很高,但并不是闻所未闻,特别是针对在线钱包中存储了大量比特币的目标。

其他威胁包括某个认证服务机构的恶意内部人士,或者是一个政府机构,他要么窃取机密数据,要么强迫交出这些数据。再说一次,这些都是极端的情况,但也不是闻所未闻。

最终,我选择了三个身份验证器-Authy、Duo和LastPass-因为它们让我相信,如果没有未知的软件错误或密码疏忽,他们的备份和恢复过程可以在零知识的情况下工作。该原则意味着,除了最终用户之外,任何人都不能使用秘密TOTP种子。该保证要求所有加密和解密都在客户端的本地设备上执行,并且在提供商的服务器上对传输中和静态的数据进行加密。

脱颖而出的两个验证者是Duo和Authy。它们都使备份变得容易,并给了我合理的信心,相信它们会在我的威胁模型下保护秘密种子的安全和机密。这两个身份验证器主要关注企业客户,这些客户付费使用它们将大量员工登录到公司门户和专用网络。

这两种认证器的制造商都提供了一套远远超出2FA的附加安全服务,比如帮助管理员跟踪他们数千名员工的设备中哪些没有安装安全更新。Duo Security和Authy背后的公司Twilio也提供了一个免费的验证器版本,可以与任何使用TOTP标准的第三方站点一起工作,这也是本综述的重点。

Authy是我的首选,因为备份会将加密种子推送到多个设备,包括Mac、PC、平板电脑、备用手机或Linux机器。然后,种子在所有设备之间同步,使得一个设备上的更改或添加将自动填充到所有其他设备。如果用户丢失了一台设备,她的其他设备将继续生成TOTP。然后可以将种子添加到替换设备。

除了提供可靠的备份和恢复方式的保证外,该方法还提供了拥有多个工作验证码的便利,并且与本综述中的其他验证码相比,可以从更广泛的设备中使用这些验证码。(Duo允许我使用多部手机,但它们都必须运行Android或iOS。此外,在一台设备上所做的更改或添加与其他设备不同步。)。

Authy用户在备份过程中设置密码,在将种子发送到Authy服务器之前对设备上的种子进行加密。没有密码,种子无法解密,并且永远丢失。如果不经过严格的恢复过程(稍后将详细介绍),用户在不显示对设置验证器时使用的原始设备或电话号码的控制的情况下,无法从Twilio接收加密的种子数据。

另一个优点:Authy在记录种子如何在设备上加密方面比其他所有验证器都要长,只有一个除外。Authy机制向用户选择的密码添加随机化的加密盐,然后通过至少1000轮PBKDF2,这种算法在阻止使用单词列表或暴力猜测密码的密码破解攻击方面是最好的算法之一。

生成的散列用于生成密钥,该密钥使用久经考验的高级加密标准来加密种子。该过程还为每个注册帐户添加初始化向量。只有在本地(即在用户设备上)执行此过程后,才会将加密的种子、SALT和IV发送到Twilio。

结果是:Twilio无法存储甚至无法查看备份密码,因此无法解密种子数据。在接收到SALT、IV和加密后,Twilio服务器会将数据发送到授权的备份设备。然后,用户在每个设备上输入备份密码,作为解密种子的最后缺失部分。(SALT/IV的价值在于提供另一层安全,以防攻击者设法从Twilio窃取加密种子,而不是SALT/IV。)。

如果用户丢失了所有设备,但仍然可以控制电话号码,则用户必须经历帐户恢复过程,该过程包括恢复加密种子数据的强制等待期。如果用户丢失了电话和最初用于设置Authy的电话号码,恢复过程将更加复杂,可能需要提供政府颁发的ID等。不过,同样,在恢复密码丢失的情况下,所有这些都无济于事。

我最不喜欢Authy的一点是它使用SMS或语音呼叫来验证新设备是否有权接收加密种子。这意味着只需知道备份密码和SIM卡交换就可以恢复和解密数据。需要明确的是,这是一个极端威胁模型,其他身份验证器类似地允许使用SMS或电子邮件地址进行验证。

Authy在这里有关于备份和恢复过程的更多详细信息。以下是使用Pixel XL作为主设备并备份和同步到Windows笔记本电脑时的流程: