在此处查看此答案以获取更多详细信息。但这是您问题的重点:
Symantec VIP 和 Okta Verify 实施的 2-factor 问题与它在软件中实施的事实关系不大,而与代码可以被拦截的事实有关。
从这个意义上说,Symantec VIP、Okta Verify 和 RSA SecurID 都与 Google Authenticator 处于同一条船上;它们都不会保护您免受网络钓鱼攻击,因为攻击者用来获取您的密码的相同技术也可用于获取您的第二因素代码;通常是让您将其输入到虚假的登录页面中。
但U2F不同。
使用 U2F,您无需输入一次性密码即可显示您拥有令牌。相反,浏览器直接与硬件令牌通信,其中一部分过程是浏览器告诉硬件令牌请求识别的站点的主机名,并且 2FA 身份与单个主机相关联。并且浏览器(与用户不同)不会被欺骗,因为浏览器会检查 TLS 证书。
这意味着攻击者的网站无法获得正确的第二因素代码,这意味着即使一个聪明的社会工程攻击者设法欺骗用户放弃他们的密码,用户也不能放弃他们的第二因素代码。
仅当浏览器与正确的站点进行通信时,并且仅当浏览器物理连接到 U2F 令牌时,才能使用第二因素令牌。这几乎消除了任何不涉及受害者硬件物理盗窃的攻击。
U2F可以(并且已经)在软件中实现,因此您依赖计算机上的软件而不是物理设备。这仍然比基于 OTP 的 2FA(如 Symantec VIP)更好地抵抗网络钓鱼,但在这种情况下,物理盗窃不再是利用的必要条件。相反,如果您的令牌是在软件中实现的,那么您计算机上的任何入侵(病毒等)都可能会复制您的身份验证设备并在您不知情的情况下在他们的计算机上使用它。所以它不如物理设备好,但要便宜得多。