使用OAUTH HOTP在窗口中生成重复OTP的概率?

时间:2012-07-08 10:51:44

标签: authentication

我正在使用HOTP为第二因素身份验证生成OTP。我正在使用基于事件的OTP生成,并且如果客户端和服务器的计数器不匹配,则提供10次迭代的窗口。

然而,我被问到如果在任何时间点从过去重新生成OTP会发生什么。

由于OTP是一个6位数字,因此用户可能只有999999种组合。因此,OTP在生命周期中不可能是唯一的,并且它将在某个时刻重新生成。特定OTP重复时是否会出现模式?

此外,如果OTP在窗口大小为10的范围内重新生成,则可能会更糟糕,因为它很容易受到重放攻击。

请指导我。

1 个答案:

答案 0 :(得分:1)

不,如果您不使用randomness知道密钥,则不应存在重复的可预测模式(否则算法中的重要发现和缺陷)。

虽然您可以容忍10的窗口大小,但只能容忍前进。永远不要接受小于最后确认的计数器的令牌,否则你将打开重播攻击。

当然,HOTP,TOTP或其他任何形式的攻击都不能免疫,所以你需要一种多层次的安全方法,这种方法对于攻击向量和防御成本是切合实际的。

更深入的讨论最好是here。在这个答案中,我试图坚持实施问题。