10. Security Considerations (安全考虑)
10. Security Considerations (安全考虑)
本文档的全部内容都是关于安全考虑的, 特别是关于生成密码学质量的随机性。
生成随机数的质量对于安全性至关重要。如果生成的数字可以被对手预测或猜测, 则基于这些数字的安全系统将会失败。
关键的安全考虑包括:
-
熵收集: 必须从真正不可预测的源收集足够的熵。不要依赖可预测的源, 如简单的系统时钟或序列号。
-
熵估计: 保守地估计从各种源收集的熵量。高估熵量可能导致虚假的安全感。
-
状态保护: 随机数生成器的内部状态必须受到保护, 防止对手观察或修改。如果内部状态被泄露, 可能会破坏过去和未来生成的所有随机数的安全性。
-
算法选择: 使用经过良好测试和广泛审查的密码学算法。不要使用自制或未经验证的算法。
-
实现质量: 即使使用正确的算法, 糟糕的实现也可能导致漏洞。确保实现正确并经过彻底测试。
-
重新播种: 定期使用新的熵重新播种伪随机数生成器, 以防止状态泄露后的长期影响。
-
侧信道攻击: 考虑定时攻击、功耗分析和其他侧信道攻击的可能性。
-
物理安全: 对于高安全性应用, 考虑物理访问控制和防篡改措施。
遵循本文档中的指导将有助于构建能够抵御已知攻击的安全随机数生成系统。