background image
Microsoft Windows XP, XP SP1, XP SP2 RSAENH.DLL Security policy
19
Each process requesting access is provided its own instance of the module. As such, each process
has full access to all information and keys within the module. Note that no keys or other information
are maintained upon detachment from the DLL, thus an instantiation of the module will only contain
keys or information that the process has placed in the module.
The Collection of Data Used to Create a Seed for Random Number
To create a seed for its random number generator, RSAENH concatenates many different source of
information. Each piece of information is concatenated together, and the resulting byte stream is
hashed with SHA-1 to produce a 20-byte seed value that is used in generating random numbers
(according to FIPS 186-2 appendix 3.1 with SHA-1 as the G function).
·
The process ID of the current process requesting random data
·
The thread ID of the current thread within the process requesting random data
·
A 32bit tick count since the system boot
·
The current local date and time
·
The current system time of day information consisting of the boot time, current time, time zone
bias, time zone ID, boot time bias, and sleep time bias
·
The current hardware-platform-dependent high-resolution performance-counter value
·
The information about the system's current usage of both physical and virtual memory, and page
file
·
The local disk information including the numbers of sectors per cluster, bytes per sector, free
clusters, and clusters that are available to the user associated with the calling thread
·
A hash of the environment block for the current process
·
Some hardware CPU-specific cycle counters
·
The system processor performance information consisting of Idle Process Time, Io Read Transfer
Count, Io Write Transfer Count, Io Other Transfer Count, Io Read Operation Count, Io Write
Operation Count, Io Other Operation Count, Available Pages, Committed Pages, Commit Limit,
Peak Commitment, Page Fault Count, Copy On Write Count, Transition Count, Cache Transition
Count, Demand Zero Count, Page Read Count, Page Read Io Count, Cache Read Count, Cache
Io Count, Dirty Pages Write Count, Dirty Write Io Count, Mapped Pages Write Count, Mapped
Write Io Count, Paged Pool Pages, Non Paged Pool Pages, Paged Pool Allocated space, Paged
Pool Free space, Non Paged Pool Allocated space, Non Paged Pool Free space, Free System
page table entry, Resident System Code Page, Total System Driver Pages, Total System Code
Pages, Non Paged Pool Look aside Hits, Paged Pool Lookaside Hits, Available Paged Pool
Pages, Resident System Cache Page, Resident Paged Pool Page, Resident System Driver Page,
Cache manager Fast Read with No Wait, Cache manager Fast Read with Wait, Cache manager
Fast Read Resource Missed, Cache manager Fast Read Not Possible, Cache manager Fast
Memory Descriptor List Read with No Wait, Cache manager Fast Memory Descriptor List Read
with Wait, Cache manager Fast Memory Descriptor List Read Resource Missed, Cache manager
Fast Memory Descriptor List Read Not Possible, Cache manager Map Data with No Wait, Cache
manager Map Data with Wait, Cache manager Map Data with No Wait Miss, Cache manager Map
Data Wait Miss, Cache manager Pin-Mapped Data Count, Cache manager Pin-Read with No
Wait, Cache manager Pin Read with Wait, Cache manager Pin-Read with No Wait Miss, Cache
manager Pin-Read Wait Miss, Cache manager Copy-Read with No Wait, Cache manager Copy-