我正在设计一个系统,其中生成一个注册代码,它被发送给用户,然后用户根据这个注册代码注册到系统中。
注册代码有一定的过期时间,因此如果用户在有效期内未注册,注册代码将过期,需要生成新的注册代码。
是否有任何标准建议这样的注册码的熵应该是多少?
一方面,它应该足够长,使攻击者无法猜测。另一方面,它应该足够短,以便用户可以很容易地进入系统。
发布于 2019-04-02 14:21:27
在基于HMAC的一次性密码算法中有一些长度建议,简单地解释了这里,细节是这里。
其中最重要的是:
建议对HOTP 值进行持续节流,以解决其相对较小的大小,从而容易受到暴力攻击。
就像一台有四位数密码的提款机。他们在三次失败的尝试后生气了。RFC 4226建议在每次注册失败后延迟增加。如果你使用默认的6位编码,你会得到20位以下的熵值。但这是与节流有关的。代码看起来很像872921。
还有一些RSA硬件令牌使用6位数字,但有效期仅为1分钟。相应地调整..。
请注意。这种形式的HOTP并不在数学上将代码与时间联系起来。你必须分别实现那张支票。我不想过多地讨论产生/接受令牌的机制。我的重点是IETF推荐的熵方面的问题,在一个速率有限的环境。
https://crypto.stackexchange.com/questions/68474
复制相似问题