发布于 2021-11-07 03:15:52
在传统的HOTP设置中,计数器版本由服务器存储,并且只接受少量代码(用于下一个N个计数器的代码)。这通常防止重放攻击,因为服务器通常不会接受先前的代码。但是,可能有一个很小的时间窗口,根据服务器的实现(由于数据库滞后之类的原因),代码在其中仍然有效。
但是,TOTP本质上是HOTP,其中计数器值是时间戳。在这种情况下,您确实可以在短时间内重放值。例如,如果你在咖啡厅with上登录一个未加密的网站,那么网络上的任何人都可以窥探它,并在你之后不久登录你的凭据,然后你的账户就被破坏了。使用安全通道(如TLS或SSH )可防止此问题,因为TLS和SSH包含针对重放攻击的自身防御,且攻击者看不到TOTP值。
因此,虽然对于标准的HOTP来说,这是不太可能的,因为TOTP本质上是HOTP,而且它确实遇到了这个问题,这是您在实践中确实需要处理的事情。当然,无论如何,您应该使用安全通道,因为这被认为是当前不受信任网络可接受的最低安全级别。
https://security.stackexchange.com/questions/256770
复制相似问题