12

A comment on a Microsoft blog from 2005 mentions over 150 sources of entropy for the Windows CryptGenRandom function. The majority of sources come from low-level system information (precise stat counters), the process' environment block, high-precision CPU counters, exception information, process information, and more. I have two questions about this entropy collection:

  1. Are all these entropy sources still used on modern Windows, more than a decade later?

  2. Are these sources queried at each randomness request, or is an entropy pool used?

The only two sources I could find give no information for modern Windows (post-XP).

10
  • iirc, they use fortuna, which means a pool. CryptGenRandom has largely been outmoded by .NET's RNGCryptoServiceProvider, which uses HWRNG.
    – dandavis
    Commented Apr 5, 2018 at 22:48
  • Here's the Win10 DRBG FIPS 140-2 cert. That page doesn't contain any useful info, but I wonder if questions could be asked to get access to some of the implementation docs for that certification? Commented May 12, 2021 at 14:20
  • 1
    @forest, I updated the link to an archived version.
    – nobody
    Commented May 12, 2021 at 20:17
  • @nobody Thanks! That's strange. I tried to open it in the Web Archive but it only claimed to have crawled it once in 2021 and once in 2020. How'd you find one from 2018?
    – forest
    Commented May 12, 2021 at 22:09
  • "At a high level, the TPM collects and stores measurements from multiple early boot components and boot configuration data to create a system identifier (much like a fingerprint) for that computer. It stores each part of this fingerprint as a hash in a 160-bit platform configuration register (PCR)" - from WIndows Internals, 6th ed.
    – ewm
    Commented Aug 20, 2021 at 13:44

1 Answer 1

1
  1. Are all these entropy sources still used on modern Windows, more than a decade later?

  2. Are these sources queried at each randomness request, or is an entropy pool used?

  1. When you say Modern Windows, do you mean Windows 10 and up? CryptGenRandom has been deprecated in favor of Cryptography Next Generation API: https://docs.microsoft.com/en-us/windows/win32/seccng/cng-portal.

  2. Similar question raised here, with the closest answer: https://crypto.stackexchange.com/questions/39566/where-do-windows-applications-get-entropy-from

1
  • 1
    That only describes the API. I'm asking about the sources the kernel uses to collect entropy.
    – forest
    Commented Mar 11, 2022 at 21:56

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .