NIST为各种算法的密钥和散列长度提供了很好的指导。但我没有看到任何关于随机或伪随机随机数(使用一次的数字)长度的具体内容。
如果对各种用途有一个好的答案,我很乐意看到。但为了具体化,我将使用常见的“通过电子邮件重置密码”情况,在这种情况下,服务器会生成一个带有伪随机路径组件的 URL。它似乎有点类似于 HTTP Digest Authentication,其中RFC 中的示例似乎有 136 位 (dcd98b7102dd2f0e8b11d0f600bfb0c093)。
我注意到许多人似乎使用第 4 版 UUID(提供 122 个伪随机位)或这个,正如GUID 对一次性令牌安全吗?,尽管用户必须小心使用以前更可预测的 UUID 版本,以及对 Windows 随机数生成器的讨厌的持续本地攻击,这些攻击大多在 2008 年得到修补。
但是忽略在 UUID 版本和实现中纠结的风险,应该在 URL 中包含多少伪随机位?