基于应用程序的 2FA 与基于硬件的 2FA

信息安全 验证 安卓 多因素 u2f
2021-09-10 01:46:16

与使用硬件身份验证令牌(例如最近的 U2F 设备)相比,Symantec VIP / Okta Verify 等应用程序和类似实现如何?

Android 系统被劫持和 2FA 应用程序身份验证令牌或其他密钥被提取的可能性有多大?

除了不需要其他设备,基于应用程序的 2FA 还有其他优势吗?

鉴于使用基于应用程序的 2FA 可以实时验证请求或登录会话,它是否不易受到实时验证重放网络钓鱼攻击?

编辑:这似乎在这里得到了回答,当智能手机没有像智能卡这样的硬件令牌功能时,是否可以严格地将智能手机视为 2FA 的“你拥有的东西”因素?

2个回答

在此处查看此答案以获取更多详细信息。但这是您问题的重点:

Symantec VIP 和 Okta Verify 实施的 2-factor 问题与它在软件中实施的事实关系不大,而与代码可以被拦截的事实有关。

从这个意义上说,Symantec VIP、Okta Verify 和 RSA SecurID 都与 Google Authenticator 处于同一条船上;它们都不会保护您免受网络钓鱼攻击,因为攻击者用来获取您的密码的相同技术可用于获取您的第二因素代码;通常是让您将其输入到虚假的登录页面中。

但U2F不同。

使用 U2F,您无需输入一次性密码即可显示您拥有令牌。相反,浏览器直接与硬件令牌通信,其中一部分过程是浏览器告诉硬件令牌请求识别的站点的主机名,并且 2FA 身份与单个主机相关联。并且浏览器(与用户不同)不会被欺骗,因为浏览器会检查 TLS 证书。

这意味着攻击者的网站无法获得正确的第二因素代码,这意味着即使一个聪明的社会工程攻击者设法欺骗用户放弃他们的密码,用户也不能放弃他们的第二因素代码。

仅当浏览器与正确的站点进行通信时,并且仅当浏览器物理连接到 U2F 令牌时,才能使用第二因素令牌。这几乎消除了任何不涉及受害者硬件物理盗窃的攻击。

U2F可以(并且已经)在软件中实现,因此您依赖计算机上的软件而不是物理设备。这仍然比基于 OTP 的 2FA(如 Symantec VIP)更好地抵抗网络钓鱼,但在这种情况下,物理盗窃不再是利用的必要条件。相反,如果您的令牌是在软件中实现的,那么您计算机上的任何入侵(病毒等)都可能会复制您的身份验证设备并在您不知情的情况下在他们的计算机上使用它。所以它不如物理设备好,但要便宜得多。

应用程序 [...] 与使用硬件身份验证令牌 [...] 相比如何?

乍一看,它们并没有太大的不同。好吧,在这两种情况下,您都有一些其他设备可以为您执行额外的加密验证步骤。但一个重要的区别是系统的复杂性(该设备上的整个软件)。

在智能手机上,有大量来自不同供应商(应用程序)的交互软件,而专用的身份验证令牌则要简单得多,因为它只服务于一个目的。因此,对于较简单的系统,漏洞的机会和表面通常较低。

另一个区别是用于该身份验证步骤的实际算法。但这并不取决于硬件。然而,应用程序往往更简单,例如基于时间的一次性密码生成器,而其他应用程序通常对其唯一目的更复杂,例如 U2F 使用基于挑战的公钥加密。顺便说一句,这就是为什么使用 U2F 还需要浏览器的支持才能将挑战转发给 U2F 棒的原因之一。

Android 系统被劫持 [...] 和 [...] 密钥被提取的可能性有多大?

确实,您可以像其他所有计算机系统一样破解手机并获得对其的访问权限。如果可以提取密钥,取决于应用程序如何存储该密钥。但是由于它必须保存它并且由于 Android 设备上没有真正的私有内存 (AFAIK),因此获得root访问权限的攻击者可以复制密钥。

[...] 基于应用程序的 2FA 还有其他优势吗?

在简单的安全级别上,我认为智能手机与专用硬件相比没有任何优势。但是应用程序通常比那些专门的系统更容易安装和设置。一个普通用户无法使用的复杂系统在现实世界中并没有任何改进。另请注意,这些特殊系统通常需要额外的服务提供商支持,如果一项技术难以实现或难以使用,最好的用户在没有支持的服务的情况下将无法做任何事情。

鉴于 [...] 您实时验证请求或登录会话,它是否不易受到实时验证重放网络钓鱼攻击?

据我所知,您通常可以进行中间人攻击并劫持经过身份验证的会话。但这正是 SSL 证书想要阻止的。它伴随着加密,限制了简单重放攻击的可用性。作为 SSL 的一部分,可以重放基于时间的令牌。但是,服务提供商可以征用成功使用的令牌并防止重放。尽管如此,如果攻击者足够快,他将是成功的人。