在HOTP (基于HMAC的一次性口令)算法中,客户端和服务器可以有不同的计数器值.埃斯卡。如果攻击者试图破解密码,但没有成功。
HOPT怎么处理这件事?
发布于 2019-11-24 19:37:47
IETF RFC 4226定义HOTP:一种基于HMAC的一次性密码算法.认证方(客户端)和认证者(服务器)建立了一些参数。
现在,他们使用不同的计数器,但离对方不远。原因是,当请求新的HTOP时,身份验证器只在成功的身份验证之后递增,其中已验证的计数器增加。
假设HOTP具有前瞻性同步窗口大小s -通常由验证器确定。验证器比尝试使用当前计数器,并期待直到s的数量。
现在,攻击者可以尝试使用s来执行野蛮攻击.在这种情况下,d对降低攻击概率很重要。建议和常用的方法是经过少量的失败尝试后对系统进行锁定。这在银行账户验证者中很常见。在锁定的情况下,你与银行联系,以重新确认甚至是重新键控。
人们也可以在每次失败后增加延迟,比如Linux/Windows登录失败。就银行业而言,前者更好。
用于计数器同步化的RFC 4226
可选地,系统可能要求用户发送(例如,2,3) HOTP值序列以进行再同步,因为伪造连续HOTP值序列比猜测单个HOTP值更加困难。
对手Sec成功的概率由
Sec = \frac{s v}{10^\text{d}},其中v是验证尝试的次数。
https://crypto.stackexchange.com/questions/75985
复制相似问题