首页/网络/协议速查/随机数与熵源

随机数与熵源

密钥、nonce、会话 ID 全依赖高质量随机:/dev/urandom(getrandom)是 Linux 上的正确来源;自造随机数(时间戳/rand())是事故重灾区。

协议速查网络更新于 2026-10-12

检查与使用

检查与使用
cat /proc/sys/kernel/random/entropy_avail   # 传统熵池观察值
openssl rand -hex 32                          # 生成 32 字节随机
head -c 32 /dev/urandom | xxd                 # 直接读随机源
正确来源getrandom(2) / /dev/urandom(现代内核无阻塞问题)
错误来源时间戳、rand()、UUIDv1 做密钥
场景TLS nonce、会话 token、密码重置令牌、盐
早期内核担心启动期熵不足;现代 Linux(5.6+)getrandom 在极早期即可用,容器里一般也安全。

易错点

  • 虚拟机快照/容器克隆会导致「同一随机种子」:曾引发大量设备密钥相同的事故,部署后要检查密钥唯一性

数据来源与参考

  • man 2 getrandom
  • NIST SP 800-90A/B

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌