An entropy pool is an operating-system data structure that accumulates environmental noise for generating random values. Mouse movements, key-press timing, and network jitter can supply noise, after which the operating system seeds a cryptographically secure pseudorandom number generator (CSPRNG). section 10.2
Linux builds both /dev/random and /dev/urandom on a ChaCha20 CSPRNG sourced by the kernel’s entropy pool. These inputs may be weak or correlated: virtual machines can boot with identical or similar pools, especially when colocated systems receive similar traffic. section 10.2
Treat entropy pools as useful but imperfect sources:
- Prefer a dedicated hardware true random number generator (TRNG) for critical applications. section 10.2
- Recognize that ordinary environmental sources lack health tests capable of modeling their expected entropy. section 10.2
- If a TRNG is unavailable, consider adding entropy to the kernel pool through RNDADDENTROPY, while treating dedicated hardware as safer. section 10.2
Figure 10.2 The recommended setup for using randomness for cryptographic applications: health tests should ensure the correct operation of the TRNG, which should periodically reseed a CSPRNG.
Shows the recommended arrangement: health-tested TRNG output periodically reseeds a CSPRNG. section 10.2
