/dev/randomá cryptographically secure pseudo-random number generator (CSPRNG) ááẠá áááºá¡ááŸá±á¬ááºá¡ááŸááºááŒá áºá á±áá±á¬ ááŒá¿áá¬áá áºáá¯ááŸááááº- ááááºááá¯á·ááŒááºážááœáẠáá°áááá»á¬ážáááºá á€áá±á¬ááºážáá«ážááœáẠáááºááŒá±ááŸááºážááá¯ááºáá¯á¶ááᯠááŸááºážááŒáá¬ážáááºá
ááœááºáá²á·ááá·áºáá¡áááºážáááºá¡ááœááºážá kernel ááŸá áá»áááºážáá¶áá«ááºáá¯ááºáá¯ááºááŒááºážááá¯ááºáᬠá¡áá±á¬ááºá¡á¡á¯á¶áá»á¬ážááᯠá¡áááºážáááºááŒááºáááºááŒá¯ááŒááºáá¬ážáá±á¬áºáááºáž á€á
áá
áºááœá²ááŸáááŒá¿áá¬áá»á¬ážááᯠááá¯ááá¯áá»ááºááŒáá·áºá
áœá¬ááŒá±ááŸááºážááá¯ááºáá²á·áááºá
Andy Lutomirski ááẠáá®áááºáá¬ááá¯ááºááœáẠáááááá¬ážááŸááºážááᯠáá¯ááºáá±áá²á·áááºá á¡ááŸá°ááœá±ááá·áºáááºáá° "áá»áááºáž Linux APIs áá»á¬ážá¡ááœáẠá¡ááá semantic ááŒá±á¬ááºážáá²ááŸá¯ ááŸá
áºáá¯". patch ááẠgetrandom() á
áá
áºáá±á«áºááá¯ááŸá¯ááœáẠGRND_INSECURE á¡áá¶á¡áá
áºááᯠáá±á«ááºážááá·áºááẠ( Lutomirsky ááẠáááºážááᯠgetenttropy() á¡ááŒá
áºáááºááœáŸááºážáá±á¬áºáááºáž getrandom() ááᯠáá¯á¶áá±á¡áá¶áá»á¬ážá¡áá¯á¶ážááŒá¯á glibc ááœááºá¡áá±á¬ááºá¡áááºáá±á¬áºáá¬ážááá·áºá á€á¡áá¶ááẠáá±á«áºááá¯ááŸá¯á¡á¬áž áá±á¬ááºážááá¯áá¬ážáá±á¬ áá±áá¬ááá¬áááᯠá¡ááŒá²ááŒááºáá±ážá
á±áááºá ááá¯á·áá±á¬áº áá±áá¬ááẠáá»áááºážááŒá
áºááŒá±á¬ááºáž á¡á¬áááá¶ááá¯ááºáá«á kernel ááẠáááºááŸááºá¡áá»áááºá¡ááœááºáž áááºážáá¡áá±á¬ááºážáá¯á¶áž áá»áááºážáá±áá¬ááᯠáá¯ááºáá¯ááºááẠá¡áá±á¬ááºážáá¯á¶ážáá¯ááºáá±á¬ááºáááºááŒá
áºáááºá "áá¯ááºááá·áºáᬠá¡áá±á¬ááºážáá¯á¶ážá á¡á²áá«ááᯠ'ááá¯á¶ááŒá¯á¶áá²á·' ááá¯á· áá±á«áºáᬠááŒá
áºááá¯ááºáááºá áá¯á¶ááŒá¯á¶áá±ážááá¯á¡ááºáá±á¬á¡áá¬áá»á¬ážá¡ááœáẠဠAPI ááᯠá¡áá¯á¶ážáááŒá¯ááẠ(ááá¯á¶ááŒá¯á¶)á
áá¬áá±ážááŸá¯áá»á¬ážáááºáááºáž ááááºááá¯á·ááŒááºážáá»á¬ážááᯠáááºááŸá¬ážáá±ážáááºá kernel ááẠáááºááŸáááœáẠáá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºáž áá»áááºážáá±áá¬áá±á«ááºážá
á¯ááŸá
áºáá¯ááᯠááááºážááááºážáá¬ážááŒá®ážá áá
áºáá¯ááẠ/dev/random ááŸáá·áº á¡ááŒá¬ážáá
áºáá¯ááẠá€ááœááºáá±á¬áºááŒáá¬ážááá·áºá¡ááá¯ááºáž /dev/urandom ááŸáá·áºáááºááá¯ááºáááº
áá±á¬á·ááºáá»áá±á¬áá±áááºááᯠáááºááŸá¬ážááŒááºážááẠ/dev/random ááŸáááºááŒááºážá¡á¬áž áá¯ááá¯áááºááŸááºáá¬ážáá±á¬ á¡áá¶áá»á¬ážááŒáá·áº getrandom() áá²á·ááá¯á· ááŒá¯áá°ááẠ(ááŒá®áž GRND_RANDOM á¡áá¶á¡á¬áž ááœááºážááá·áºááŸá¯á¡ááŒá áºááá¯á·ááŒá±á¬ááºážáááº)á cryptographic áá»áááºážáá¶áá«áẠgenerator (CRNG) ááᯠá áááºááá¯ááºáááºááŸáá·áºá /dev/random ááŸáááºááŸá¯ááŒá®áž getrandom(...,0) ááá¯á·áá±á«áºááá¯ááŸá¯áá»á¬ážááᯠááááºááá¯á·áááºááá¯ááºáá² áá±á¬ááºážááá¯áá¬ážáá±á¬ áá»áááºážáá±áá¬ááá¬áááᯠááŒááºáá±ážáááºááŒá áºáááºá
Lutomirsky áááŒá±á¬áá«ááẠ"Linux ááááºááá¯á·ááŒááºážáá±áááºááẠá¡áá¯á¶ážáááŒá¯áá±á¬á·ááŒá®áᯠáá»áœááºá¯ááºáá¯á¶ááŒááºáá«áááºá CRNG Linux ááẠáá±á¬á·áá¯ááºáá¯ááºáááºá¡ááœááºááẠá¡áá¯á¶ážááŒá¯ááá±á¬ááºá¡á±á¬áẠáá±á¬ááºážááœááºáá±á¬ output ááá¯áá¯ááºáá±ážáá«áááºá ááááºááá¯á·ááŒááºážáá±áááºááẠáááºááá·áºáá á¹á ááºážááá±á¬á¡ááá»áŸ á¡á¬ážáá±á¬ááºážááŒááºážáááŸáááá·áºá¡ááŒáẠáááºážááá¯áá¶á·ááá¯ážáááºá¡ááœáẠáá¶ááááŒá áºááœááºáááºááá¯ážááŸááá±á¬ á¡ááŒá±áá¶á¡áá±á¬ááºá¡á¡á¯á¶áá»á¬ážá áœá¬ ááá¯á¡ááºáá«áááºáâ
áááºááŸááááá¯ááááºáá»á¬ážááᯠá¡ááŸááºáááẠááááá¯ááºáááºááá¯ááºááŒá±á¬ááºáž áá±áá»á¬á á±ááẠáááºááœááºáá»ááºááŒáá·áº á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááᯠááŒá¯áá¯ááºáá²á·ááŒááºážááŒá áºááŒá®áž á¡ááŸááºááááºááœááºá GnuPG áá±á¬á·áá»áá¯ážáááºáá²á·ááá¯á· á¡áá¬áá»á¬ážá¡ááœáẠááŒá¬ááŸááºá á±á¬áá·áºááá¯ááºážáááá·áº ááŒá¿áá¬á¡áááºážáááºáᬠááŸááááºááŒá áºáááºá
âáá®á¡ááá¯ááºážááœá±á áááºááŸááááá¯ááááºááœá±ááᯠáááŸá±á¬áá·áºááŸááºááá°ážá /dev/urandom ááẠáááŒá±á¬ááºážáá²áá«á /dev/random ááẠboot ááœááºáá»ááºáá»ááºážááááºááá¯á·áá²ááŒá áºáá±á¬áºáááºážáááºážáááºááááºááááºáá»á±á¬á·áááºážááááºááá¯á·áááºá ááŸáááŒá®ážáá¬ážá¡áá¶áá»á¬ážááŸáá·áºá¡áá° getenttropy() ááẠááááºáá²á·ááá¯á· áááºááœá±á·áá»áá±á¬áááºááœááºáá»ááºáá»á¬ážá¡ááœáẠááá·áºáá»á±á¬áºááá·áºááááºááᯠááŒááºáá±ážáááá·áºáááºá"
Lutomirsky ááẠkernel ááẠ"á á áºááŸááºáá±á¬áá»áááºážáá¶áá«ááºáá»á¬áž" áá¯áá±á«áºáá±á¬á ááááºááá¯á·ááŒááºáž kernel ááẠá¡ááá¯ááºážá¡áá¬áá áºáá¯á¡áá áá¯ááºáá±á¬ááºááá·áºáááºááá¯áááºááᯠááœáá·áºááœáá·áºáááºážáááºážáá±ážááœááºážáá¯ááºáá±áá²ááŒá áºááŒá±á¬ááºáž ááŸááºáá»ááºááŒá¯áá²á·áááºá áááºážá¡ááœáẠá¡ááŒá±á¬ááºážááŒáá»ááºáá áºáá¯áááºážááá¯áᬠáá°ááŒááºáááºâ âá¡á áá¯ážáá á¶ááŸá¯ááºážáá»á¬ážááᯠááá¯ááºáá¬ááŒááºážâá Lutomirsky á kernel ááẠáááºážááᯠáá¶á·ááá¯ážáá±ážáááºááá¯áá«áá áááºážááᯠáá¯á¶ážáááœá²ááŒá¬ážááŒá¬ážáá¬ážáá±á¬ á¡ááºáá¬áá±á·á áºáá áºáá¯ááŸáá áºááá·áº áá¯ááºáá±á¬ááºááá·áºáááºá ááá¯á·ááá¯áẠáááºážááᯠá¡áá¯á¶ážááŒá¯áá°áá±áá¬ááá¯á· ááœáŸá±á·ááá·áºááŒá®áž ááá¯áá²á·ááá¯á·áá±á¬áá±á¬á·áááºáá±áááºááᯠáááºáá®ážáááºá¡ááœáẠá¡áá¯á¶ážááŒá¯ááá¯ááºááá·áº á¡ááŒááºážááŒá áºáááºááá°áá¬áá»á¬ážááᯠá¡áá¯á¶ážááŒá¯áá°á¡á¬áž ááŒááºáááºááá°ááœáá·áºááŒá¯ááẠLutomirsky á០á¡ááŒá¶ááŒá¯áá²á·áááºá
Stephan Muller á áá°á·áááºááŸááºááŸá¯ááᯠá¡ááŒá¶ááŒá¯áá²á·áááºá
Matthew Garrett ááẠâá
á
áºááŸááºáá±á¬áá»áááºážáá±áá¬â áá°áá±á¬ á¡áá¯á¶ážá¡ááŸá¯ááºážááᯠááá·áºááœááºáá²á·ááŒá®áž ááá°áá¬áá°áá¬ážáá±á¬ áááááá¬áá»á¬ážááẠáááºážááá¯á·á¡á¬áž ááá·áºááŸááºážááá¯ááºáá±á¬ááºá¡á±á¬áẠáááá»á
áœá¬ á
á¶ááá°áá¬ááŒá¯áá¬ážááá¯ááºáááº- âáá»áœááºá¯ááºááá¯á·ááẠá€áá±áá¬ááœáẠááœááºáááºááŒá
áºáááºáá»á¬ážááᯠááá°áá¬áá°áá¬ážááŒááºáž áááŸááá«áâ
MÃŒller á á€áá±á«áá¬áááẠáá»á¬áááºá ᶠAIS 31 á០áááºážáááºáá¬ááŒá®áž "á¡ááŒá±áá¶áá°áá¶áá¶á¡áááºážá¡ááŒá áºááẠá¡ááºáááá¯áá®ááᯠáá¯ááºáá¯ááºáááºááŸáá·áº áá°áá®áá±á¬ááŸá¯ááºážááŒáá·áº ááááºááá¯áá¯ááºáá±ážááá·áº áá»áááºážáá¶áá«ááºáá»ááºááá±áá¬ááᯠáá±á¬áºááŒáááº" á០áá¬ááŒááºážááŒá áºáááºá
LRNG áá¬áá±ážááŸá¯áá»á¬ážá០á¡ááŒá¶ááŒá¯áá¬ážááá·áºá¡ááá¯ááºáž áá±á¬á·áááºáá¬ážáá±á¬ áá±áááºáá áºáá¯ááŸáááŒááºážááẠá¡áááºážáá¯á¶áž á¡ááœáá·áºáá°ážáááŸááá² áááºáá±á¬ááºáá«á á¡áá»áá¯ážáá»áá¯ážáá±á¬ ááŒá¿áá¬áá»á¬ážááᯠááá¯ážááŸááºážá áœá¬ ááŒá áºáá±á«áºá á±áá«áááºá
Lutomirsky áááŒá±á¬áá²á·áááá¯áá«áá²á âáá«á ááŒá¿áá¬ááᯠáááŒá±ááŸááºážááá¯ááºáá°ážá á¡áááºá ááá°áá®áá±á¬á¡áá¯á¶ážááŒá¯áá°ááŸá áºáŠážááẠgnupg áá²á·ááá¯á·áá±á¬ ááá¯ááºáá²áá±á¬áááá¯ááááºáá»á¬ážááᯠáá¯ááºáá±á¬ááºáá«áá áááºážááá¯á·ááẠá¡áá»ááºážáá»ááºáž áá±á¬ááºááŒááºááœá¬ážáááºááŒá áºáááºá /dev/random ááœáẠáá±á¬áá±á¬áááºááœáẠá¡ááá ááŒá¿áá¬ááŸá áºáᯠááŸááá±áááºááᯠáá»áœááºá¯ááºááŒááºááááº- áááºážááẠDoS (ááá¯ááá¯áááºááŸá¬ á¡áááºážá¡ááŒá áºáá»á¬áž áá»á±á¬á·áááºážááœá¬ážááŒááºážá á¡áá¹ááá¬ááºááŸááá±á¬ ááŒáá¬ááœáŸááºážááá¯ážááŸá¯ ááá¯á·ááá¯áẠá¡áá¬ážáá°á¡áá¬) ááŸáá·áº áááºážááᯠá¡áá¯á¶ážááŒá¯ááẠá¡ááœáá·áºáá°ážáá»á¬áž áááá¯á¡ááºáá±á¬ááŒá±á¬áá·áºá áááºážááẠá¡ááœá²áá¯á¶ážá á¬ážáá¯ááºááŸá¯áá»á¬ážáááºáž ááŒá áºááá¯ááºáááºá Gnupg ááŸá¬ážáááºá áááºážááẠáá¯á¶ážáááŒáá¯áá²ááœá¬ážáá«áááºá á¡áááºá áá»áœááºá¯ááºááá¯á·ááẠgnupg ááŸáá·áº á¡áá¬ážáá°áááá¯ááááºáá»á¬ážááᯠá¡áá¯á¶ážááŒá¯ááá·áº á¡ááœáá·áºáá°ážáááá±ážáá±á¬ á¡ááºáá¬áá±á·á áºá¡áá áºááᯠááá·áºáá«áá áá»áœááºá¯ááºááá¯á· áááºáá¶áá¯á¶ážááŸá¯á¶ážááááá·áºáááºá"
getrandom() ááááºááá¯ážááŸá¯áááºááá¯á¡áá«ááœáẠGnuPG á¡á¬áž á€á¡ááºáá¬áá±á·á áºááá¯á¡áá¯á¶ážááŒá¯ááœáá·áºáá±ážáááºááŒá áºááŒá±á¬ááºáž Mueller ááŸááŸááºáá»ááºáá»áááºá GnuPG áá±á¬á·ááºáá²áá±ážáá¬ážáá° Werner Koch ááŸáá·áº ááœá±ážááœá±ážááŸá¯áá»á¬ážá¡áá±á«áº á¡ááŒá±áá¶á Mueller ááẠá¡á¬ááá¶áá»ááºááẠáááºááŸá GnuPG /dev/random á០ááá¯ááºááá¯ááºáááºááŸá¯ááá·áº áá áºáá¯áááºážáá±á¬á¡ááŒá±á¬ááºážááŒáá»ááºááŒá áºáááºáᯠMueller ááá¯á¶ááŒááºáááºá ááá¯á·áá±á¬áº áááºáá±á¬ááºááŸá¯ááᯠááŒááºážáááºááẠá¡áá¬ážá¡áá¬áááŸááá±á¬ á¡ááœáá·áºáá°ážáᶠá¡ááºáá¬áá±á·á áºáá áºáᯠááŸááá«á (ááá±á· /dev/random áá²á·ááá¯á·) Lutomirsky á áááºážááᯠá¡áá»áá¯á·áá±á¬ á¡ááá®áá±ážááŸááºážáá»á¬ážá áááœá²áá¯á¶ážáá¬ážáááºáᯠLutomirsky á ááŒááºážááá¯áááºá
Linux ááá»áááºážáá¶áá«ááºááœá²á áá áºá developer Theodore Yue Tak Ts'o ááẠblocking pool ááá¯á¡ááºááŸá¯ááŸáá·áº áááºáááºá áá°á·á áááºááŒá±á¬ááºážááœá¬ážáá¯á¶ááááºá á€áá±áá°ážáááºááᯠáááºááŸá¬ážááŒááºážááẠLinux ááœáẠá á áºááŸááºáá±á¬ áá»áááºážáá¶áá«áẠáá»ááºááá±áᬠ(TRNG) ááŸááááºáá°áá±á¬ á¡áá°á¡áááᯠáááá±á¬ááºá áœá¬ áááºááŸá¬ážááá¯ááºáááºáᯠáááºážá ááŒá±á¬ááŒá¬ážáá²á·áááºá "áá«á á¡áááá¹áá«ááºáááŸááá°ážá áá«á *BSD á¡ááŒá²áá¯ááºáá²á·áá²á·á¡ááá¯ááºážáá²á"
TRNG ááá¹ááá¬ážá¡á¬áž áá±ážá¡ááºááŒááºážááẠá¡ááá®áá±ážááŸááºážáá±á¬á·ááºáá²áá±ážááœá²áá°áá»á¬ážá¡ááœáẠááŒáŸá¬ážáá áºá ááºážá¡ááŒá Ạááá¯ážááŸááºážá áœá¬ áá¯ááºáá±á¬ááºááá¯ááºáááºáá¯áááºáž áá°á á áá¯ážááááºáá±ááŒá®áž á¡ááŸááºááááºááœáẠLinux á០áá¶á·ááá¯ážáá±ážáá¬ážáá±á¬ áá¬á·ááºáá²á¡áá»áá¯ážá¡á á¬ážáá»á¬ážááᯠáá±ážá kernel ááœáẠTRNG ááᯠá¡á¬ááá¶ááẠáááŒá áºááá¯ááºááŒá±á¬ááºážáááºáž áá°á áá¯á¶ááŒááºáá«áááºá root á¡ááœáá·áºáá°ážáá»á¬ážááŒáá·áºáᬠá ááºáááááá¬áá»á¬ážááŸáá·áº á¡áá¯ááºáá¯ááºááá¯ááºááŸá¯áááºáá»áŸáẠááŒá¿áá¬ááᯠááŒá±ááŸááºážááá¯ááºááẠááá¯ááºáá«- "Application developer áá»á¬ážááẠáá¯á¶ááŒá¯á¶áá±ážáááºááœááºáá»ááºáá»á¬ážá¡ááœáẠáááºážááá¯á·á application á¡á¬áž root á¡ááŒá Ạááá·áºááœááºážáá¬ážááẠáááºááŸááºáá±ážáááºá ááá¯á·ááŒá±á¬áá·áº á€áááºááŸá¬ áááºááẠ'ááááºáá±á¬ááºáž' áá»áááºážáá¶áá«ááºáá»á¬ážááᯠáááºáá±á¬ááºááŒáá·áºááŸá¯ááá¯ááºááá·áº áá áºáá¯áááºážáá±á¬áááºážáááºážááŒá áºáááºá
Mueller ááẠCao ááẠáá°ááá¯ááºááá¯áẠáá¬áááŸááºááŒá¬ á¡ááá¯ááŒá¯áá²á·áá±á¬ ááááºááá¯á·ááŒááºážááá¯ááºáᬠá¡áá±á¬ááºá¡áááºáá±á¬áºááŸá¯ááᯠá áœáá·áºááœáŸááºáá²á·ááá¬ážáᯠáá±ážááŒááºážáá²á·áááºá Cao ááẠLutomirsky á áá¬áá±ážááŸá¯áá»á¬ážááᯠáá°ááẠá á®á ááºáá±ááŒá®áž kernel ááœáẠááááºááá¯á·ááá·áº á¡ááºáá¬áá±á·á áºááᯠáá±á«ááºážááá·áºááŒááºážááᯠáááºááŒáœá áœá¬ ááá·áºááœááºááŒá±á¬ááºáž áá¯á¶á·ááŒááºáá²á·áááºá
â kernel ááẠáá°áá¶áá¶á¡áááºážá¡ááŒá áºááᯠááŸááºáááºá áœá¬áááºááŸááºáá¬ážááŒááºážááŸááááŸáááŸáá·áºáááºáááºá á¡á¬ááá¶áá»ááºáá áºá á¯á¶áá áºáá¬ááá±ážááá¯ááºáá«á GPG ááá¯á·ááá¯áẠOpenSSL developer áá áºáŠážáááŸáááá¯ááºááá·áºáá áºáá¯áááºážáá±á¬á¡áá¬ááŸá¬ TRUERANDOM "ááá¯áá±á¬ááºážáááº" áá¯ááá±áááœááºááá¯ááºáá±á¬áá¶á á¬ážáá»ááºááŒá áºááŒá®ážáááºážááá¯á·áááºááá¯ááá¯áá¯á¶ááŒá¯á¶áá±ážááá¯ááá¯áá»ááºáá±á¬ááŒá±á¬áá·áºáááºážááá¯á¡áá¯á¶ážááŒá¯áááºááŒáá¯ážá á¬ážáááºááŸá¬áá±áá»á¬áááºá áá áºáá»áááºáá»áááºááœáẠáááºážááᯠááááºááá¯á·ááœá¬ážáááºááŒá áºááŒá®áž á¡ááŒá¬ážá áááºá¡áá¯á¶ážááŒá¯áá°á¡áá»áá¯á· (ááŒáá·áºááŒá°ážáá±ážáá»áœááºážáá»ááºáá°ááŒá áºáá±á¬ááºážááŒá áºááá¯ááºáááº) ááẠáááºážááᯠinit script ááœáẠááá·áºááœááºážááŒá®áž á áá áºáá»á¬áž á¡áá¯ááºááá¯ááºáá±á¬á·ááá·áºá¡áá« á¡áá¯á¶ážááŒá¯áá°áá»á¬ážááẠLinus Torvalds ááá¯ááºááá¯ááºáᬠááá¯ááºááŒá¬ážááááºááŒá áºáááºáâ
Cao ááẠcryptographers áá»á¬ážááŸáá·áº TRNG á¡ááŸááºááááºááá¯á¡ááºáá±áá°áá»á¬ážááᯠááá·áºáá»á±á¬áºá áœá¬á¡áá¯á¶ážááŒá¯áááºá¡ááœáẠá¡áá¯á¶ážááŒá¯áá°áá±áá¬ááŸá áááºážááá¯á·áááá¯ááºááá¯áẠentropy ááá¯ááááºááááºážááẠáááºážáááºážáá áºáá¯áá±ážáááºá¡ááœááºáááºáž áá±á¬ááºáá¶á¡á¬ážáá±ážáá«áááºá á¡ááºáááá¯áá® á á¯áá±á¬ááºážááŒááºážááẠá¡áá»áá¯ážáá»áá¯ážáá±á¬ áá¬á·ááºáá²á¡á¬ážáá¯á¶ážááŸá kernel á០áá¯ááºáá±á¬ááºááá¯ááºááá·áº áá¯ááºáááºážá ááºááá¯ááºáááᯠkernel ááá¯ááºááá¯ááºááááºáž ááá°áá®áá±á¬ áááºážááŒá áºáá»á¬ážá០áá¶á·ááá¯ážáá±ážáá±á¬ entropy ááá¬áááᯠááá·áºááŸááºážááá¯ááºáááºááá¯ááºááŒá±á¬ááºáž áááºážá ááŒá±á¬ááŒá¬ážáá²á·áááºá
"Kernel ááẠááá°áá®áá±á¬ áá°áá¶áá¶áááºážááŒá áºáá»á¬ážááᯠá¡áá°ááᜠáá±á¬ááŸá±á¬ááŒááºážáááŒá¯ááá·áºáá«á áááºážááẠáá±á«áááœááºá áá¬áá±á¬ááºážáá±á¬ááºá¡á±á¬ááºááá¯ážááŸááºážáá±á¬ CPU áá±á«áºááœáẠ"twitchy entropy ááááºáž" áá áºáá»áá¯ážááᯠáá á¬ážááẠááŒáá¯ážá á¬ážáá±á¬á¡áá«ááœáẠáááºážááẠáááŸááá¬ááá·áº entropy ááá¬áááᯠááááŸáááẠááá±á¬ááºážááá¯ááá·áºáá«á á á¬ážáá¯á¶ážáá°áá»á¬ážá¡ááœáẠáááá¯áá¬ááá¬á IOT/Embedded ááá á¹á áá»á¬ážááœáẠá¡áá¬á¡á¬ážáá¯á¶ážááẠáá¬á áᬠoscillator áá áºáá¯áááºážááŸáá·áº áááºáá°ááá»áá²á ááŸááºáá¯á¶áááºáá áºáá¯á¡á¬áž ááŒááºá á®ááẠááá¯á·ááá¯áẠá¡áááºááŒá±á¬ááºážááẠCPU ááœáŸááºááŒá¬ážáá»ááºáááŸááá±á¬á á áááºááá¯á·ááŒá áºáááºá
âá€ááœááºáá»ááºááŸá¯áá»á¬ážááᯠáá¯ááºáá±á¬ááºááẠááŒáá¯ážá á¬ážááá·áº áááááá¬áá»á¬áž áá¶á·ááá¯ážáá±ážááŒááºážá¡ááŒá±á¬ááºáž áááºááŒá±á¬ááá¯ááá¯ááºáááºá ááá¯á·áá±á¬áº ááŒáá·áºááŒá°ážáá¯á¶ážá áœá²áá°á¡áá»á¬ážá á¯á¡ááœáẠáááºááœá±á·ááá»ááá·áº áá¯á¶ážá áœá²áá°áá áºáŠážá á®á áá¬á·ááºáá²áá±á«áºááœáẠááá¯ááá¯á·áá±á¬á¡áá¬áá»á¬ážááᯠáá¯ááºáá±á¬ááºááááºááŒá áºáááºá áááºážááẠcryptographers áá»á¬ážá¡ááœááºáá¬áááºááœááºáá«ááááºážááá¯áááºážááá¯á·áá¡áá¯á¶ážááŒá¯áá°áá±áá¬ááœááºááœááºááŒá¯áá¯ááºáá«á á±á GPGá OpenSSL á¡á ááŸááááºááá¯á·ááᯠááá¯ážááŸááºážá¡á±á¬ááºááá¯ááºáá«ááŸáá·áºá ááá¯á·ááŒá±á¬áá·áº áá°ááá¯ááºážá "áá»áœááºá¯ááºááá¯á·ááẠ"á á áºááŸááºáá±á¬áá»áááºážááŒá áºááŒááºáž" ááᯠááá¯áá»ááºááŒá®áž áá»áŸá±á¬á·áááœááºááá á±ááá«á áááºááá°áá¶áá¶áááºážááŒá áºáá»á¬ážááᯠááœá²ááŒá¬ážá á¡áááºáá±ážááŒááºážááŒáá·áº áááºážááá¯á·ááá¯á¡ááºáá±á¬ á¡áá»ááºá¡áááºáá»á¬ážááᯠcryptographer áá»á¬ážááá¯á· áá»áœááºá¯ááºááá¯á· áááºááá¯á·áá»áááºáááºáá±ážáááºááá¯áááºááᯠáá»áœááºá¯ááºááá¯á·ááŒá±á¬ááá¯ááá¯ááºááŒá®ážá áá°áá¶áá¶á¡áááºážá¡ááŒá áºááẠá á¬ááŒáá·áºááá¯áẠááá¯á·ááá¯áẠá¡áá¯á¶ážááŒá¯áá°áá±áá¬á¡ááá®áá±ážááŸááºážááá¯á· áá áºáááºážáááºážááŒáá·áº á á áºááŸááºááŒá±á¬ááºážááŒáááá¯ááºáááºá"
á¥ááá¬á¡á¬ážááŒáá·áº á¡áá»áá¯á·áá±á¬ááŒá áºáááºáá»á¬ážá¡ááœáẠáá¯á¶ááŒá¯á¶áá±ážááá¯ááºáᬠáááºáá±á¬ááºááŸá¯áá»á¬ážááŸáááá¯ááºáá±á¬ááŒá±á¬áá·áº ááá¯ááá¯á·áá±á¬á¡ááºáá¬áá±á·á áºáá¯á¶ááá¹áá¬ááºááŸáá·áºáááºáááºá ááœá±ážááœá±ážááŸá¯á¡áá»áá¯á·ááŸááá²á·áááºá Cao ááẠáá®ážáá¯ááºá áááºááºáá¯ááºáá»á¬áž (ááá¯ááá¯áááºááŸá¬ áá®ážá ááá) áá»á¬ážááᯠentropy á á¯áá±á¬ááºážááŸá¯á áá áºá áááºáá áºááá¯ááºážá¡ááŒá Ạáá±áá°ážáááºáá áºáá¯á¡ááŒá Ạáá±á¬ááŸá±á¬áá¬ážáááº- "áá«ááᯠá¡ááœáá·áºáá°ážáá¶á áá áºáá±á«áºááá¯ááŸá¯ááá±áá±á¬áẠá¡áá¯á¶ážááŒá¯áá°áá±áá¬ááᯠáá°áá¬ááá¯ááºáá¬áᬠá¡áááºážáá¯á¶ážáá±á¬á· ááá¬ááŸáááŒá áºáááá·áºáááº" á¡ááŒá¬ážááŒá áºáááºá¡áá»áááºááá¬ážáá»á¬ážááẠáá±ážáááºáá»ááºáááºáá»á¬ážá០á¡áá»ááºá¡áááºá¡áá»áá¯á· áá±á«ááºááŒá¬ážááŸá¯áá»áá¯áž áááºáá®ážááá¯ááºáááºááŸá¬ á¡áá±á¬áºáá±áž ááŒá áºááá¯ááºáááºá
ááá¯á·ááŒá±á¬áá·áº Linux á áá»áááºážáá¶áá«ááºááœá²á áá áºááŸáá·áº áá¬áááŸááºááŒá¬á áœá¬ ááŒá¿áá¬áá áºáá¯ááẠá¡ááŒá±áá áºáá¯áá®ááá¯á· áá±á¬ááºááŸááá±áá¯á¶ááááºá áá»áááºážáá¶áá«ááºá áá áºááœá²ááẠáááŒá¬áá±ážáá®á ááŒá¯áá¯ááºáá²á·áá±á¬ á¡ááŒá±á¬ááºážá¡áá²áá»á¬ážááẠáááºážááá¯á¡áá¯á¶ážááŒá¯áá±á áẠDoS ááŒá¿áá¬áá»á¬ážááá¯áᬠá¡ááŸááºááááºááŒá áºáá±á«áºá á±áá²á·áááºá ááᯠkernel áá±ážá áœááºážááá¯ááºáá±á¬ á¡áá±á¬ááºážáá¯á¶ážáá»áááºážáá¶áá«ááºáá»á¬ážáááŸáááẠáááá±á¬ááºáá±á¬áááºážáááºážáá»á¬ážááŸááá«áááºá TRNG ááẠLinux ááœáẠááŸá áºááá¯ááœááºááŸááá±ážáá«áá á€áá»áá¯á·ááœááºážáá»ááºááᯠá¡áá¬áááºááœáẠááá¯ááºááœááºááŒá±ááŸááºážááẠááá¯á¡ááºáá±á¬áºáááºáž á¡áá»á¬ážá á¯ááŸá¬ áááºážááᯠkernel á¡ááœááºážááœáẠáá¯ááºáá±á¬ááºáááºááá¯ááºáá±á
ááŒá±á¬áºááŒá¬á¡áá»áá¯á· ð
áá»áœááºá¯ááºááá¯á·ááŸáá·áºá¡áá°ááŸááá±ááá·áºá¡ááœáẠáá»á±ážáá°ážáááºáá«áááºá áá»áœááºá¯ááºááá¯á·ááá±á¬ááºážáá«ážáá»á¬ážááᯠáááºááŸá
áºáááºáá«ááá¬ážá ááá¯á
áááºáááºá
á¬ážá
áá¬áá±á¬ááºážáá²á· á¡ááŒá±á¬ááºážá¡áá¬ááœá±ááᯠááŒáá·áºáá»ááºáá«ááá¬ážá ááŸá¬áá°ááŸá¯áá
áºáá¯ááŒá¯áá¯ááºááŒááºáž ááá¯á·ááá¯áẠáá°áááºáá»ááºážáá»á¬ážááᯠá¡ááŒá¶ááŒá¯ááŒááºážááŒáá·áº áá»áœááºá¯ááºááá¯á·á¡á¬áž áá¶á·ááá¯ážáá°áá®áá«á
á¡ááºá
áá¬áááºááŸá Equinix Tier IV áá±áá¬á
ááºáá¬ááœáẠDell R730xd ááẠá á á
á»á±ážáááºáá¬áááºá áá®ááŸá¬áá¬
source: www.habr.com