5.1. General (一般性)
5.1. General (一般性)
该算法的安全性和强度取决于底层构建块 HOTP 的属性, HOTP 是基于 HMAC [RFC2104] 的构造, 使用 SHA-1 作为哈希函数。
[RFC4226] 中详述的安全性分析的结论是, 对于所有实际目的, 不同输入上的动态截断输出是均匀且独立分布的字符串。
分析表明, 针对 HOTP 函数的最佳可能攻击是暴力攻击。
如算法要求部分所述, 密钥应该随机选择或使用适当地用随机值种子化的密码学强伪随机生成器。
密钥应该是 HMAC 输出的长度, 以促进互操作性。
我们建议对所有伪随机和随机数生成遵循 [RFC4086] 中的建议。用于生成密钥的伪随机数应该成功通过 [CN] 中规定的随机性测试, 或类似的公认测试。
所有通信应该在安全通道上进行, 例如, 安全套接字层/传输层安全 (SSL/TLS) [RFC5246] 或 IPsec 连接 [RFC4301]。
我们还建议在验证系统中安全地存储密钥, 更具体地说, 使用防篡改硬件加密对其进行加密, 并仅在需要时公开它们: 例如, 在需要验证 OTP 值时解密密钥, 并立即重新加密以将 RAM 中的暴露限制在短时间内。
密钥存储必须位于安全区域, 以尽可能避免对验证系统和密钥数据库的直接攻击。特别是, 对密钥材料的访问应该仅限于验证系统所需的程序和进程。