/dev/random αααααΆαααΆαααΈααααααΎαααα pseudo-random αα»ααααα·ααΆααααααΆαα (CSPRNG) ααααΌαααΆαααααΉαααΆααΆααααα αΆααααΆααα½αα ααΆααααααααΆααα α’ααααααααααααααααΈαααααααα’αααα’αΆα αααααααΆαααΆααΆαα
αααα»αααααααααα»ααααΆααααααααααααα α§ααααααααααΎααααα
ααααααα
αααα»αααΊαααααααΌαααΆαααααΎαααΆαα‘αΎααα·αααααα·α
ααα»αααααααα αΆαα
αααα»ααααααααααααααααααΌαααΆααααααααΆααααα»αααααααααΆααααααΌααααΌααΆαα
Andy Lutomirski ααΆαααααα»αααααααααΈααΈαααααααα
α
α»αααααααΌα ααΆαααα½αα
αααα "ααΆαααααΆααααααΌαα’ααααααααααΆααααΈαα
αααα APIs ααΈαα»α
α
ααααα". ααααααααααααα GRND_INSECURE ααααΈαα
ααΆαα α
αααααααα getrandom() (αααααΈααΆ Lutomirsky αααα
ααΎααΆααΆ getenttropy() αααααααΌαααΆαα’αα»αααααα
αααα»α glibc αααααααΎ getrandom() ααΆαα½αααΉααααααα); αααααααααααΆαα±ααααΆαα α
ααΌααααααααααααααα·αααΌαα
ααα½ααα·αααααααααααΆαααααΎαα»α ααα»ααααααααα·αααΆααΆααΆαα·ααααααααΊα
αααααα ααΊαααααΉαααααΉααααααα’ααααΈαααααααΆαααΎααααΈαααααΎααα·ααααααα
αααααααααα’αααα»ααααααΆααΆααα
ααααααααα "αααα ααααΆααΏαααα’αααα»ααααααααΌαααααΎααΊα α
ααΆααΆ 'α’αα»ααααα·ααΆα' (αα·αααΆααα»ααααα·ααΆα) ααΎααααΈααΆαααΆα API αααααΈααΆαααααΎααααΆαααααααΆααα’αααΈαααααααΌαααΆααα»ααααα·ααΆαα"
ααααααααα
ααααΌαα’αΆααααααααΆαααααααα ααΊααααα
αα
α»αααααααααααΆααΌαααααα»ααα·ααααααα
αααααααΈα ααααα½αααααΌαααααΆααΉα /dev/random αα·ααα½αααααα
/dev/urandom ααΌα
αααααΆααα·αααααΆαα
αααα»αααα
ααΆααα»αα’αΆαα αΆααααααΆααααααΆααΆαα’αΆαααΈ /dev/random ααΆαα₯αα·ααΆααααΌα getrandom() ααΆαα½αααΉααααααααααα ααΌααα (α αΎαααααααα GRND_RANDOM αα ααΆ noop)α αα αααααααααΆαααΈααααααΎααααα αααααααααΈαααααΈα (CRNG) ααααΌαααΆαα αΆααααααΎα ααΆαα’αΆαααΈ /dev/random αα·αααΆαα α αα ααΆαα getrandom(...,0) ααΉααα·αααΆααΆαααα α αΎαααΉααααα‘ααα ααα½ααααααΆαααααΎαα»ααααα·ααααααα αααααα
Lutomirsky ααΆααα·ααΆαααΆ: "αααα»αααΏααΆα’αΆαααΆααΆααααΈαα»α ααΆαααααΆααα ααΆαααααααΎα αΎαα CRNG Linux αααααΎααααααααααααα’αααααααααΆααααΎααααΈααααΎααααΆαααααααΆααααΆααααααΎαααΌααααα α’αΆααααααααΆαααα·αααααΆααααΆααααα»αααααααααΆααααΆαα½ααα α αΎαααααΌαααΆαα αααααΆαα ααΆααααααααααΆα αααΎααααααΆαααααααα½αα±ααααααααααΎααααΈααΆααααααΆΒ»α
ααΆαααααΆααααααΌαααααΌαααΆαααααΎα‘αΎααααααΆαααααα ααΆααΆααΆαααααα·ααΈαααααΆαααααΆααααΉααα·ααααααααααΆαααα α αΎαααΆααα·α ααΆααΉαααΆααααα αΆαα·α ααΆααα»αααΆαα½αααΉαααΆααααα αΆαααΌααααααΆααα’αααΈαααΌα ααΆααΆααααααΎαααΌααα GnuPG ααΆααΎαα
βααααααΆααααααα·αααααΌαααααΆαααααααααα·ααΈαααααΆαααααΆααααΆαα½αα‘αΎαα /dev/urandom αα αααα·αααααΆααααααΌαα /dev/random αα ααααΆααΆααααααΆαααα αααα αΆααααααΎα ααα»ααααααΆαααααααΆαααα·α ααΆααα»αα getenttropy() ααΆαα½αααΉαααααααααΆαααααΆααααΉααααα‘ααααααααααααααααααααααΆαααααααααααΆαααααααααΌα ααΈαα»αα"
Lutomirsky ααΆαααααααααΆααααΆααΆαα ααααΆαααα½αααΎαα αα ααΆααΎααΊααααα½ααααααααα’αααΈαααααα α ααΆ "α ααα½αα ααααααα·α" αααααΆα’αααΈαααααΊααααααααααΆααααααΌαααΆαααααααααααΆααααΎαααα»αααααα·αααΆααααΆαααα½αα ααΆααααΎαααΎαα ααα»αααααα½αααααααααΆααααΏαααα: "ααΆαα’αα»αααααΆααααααααΆααααααΆαα·ααΆα" α Lutomirsky ααΆαααααΎααΆ ααααα·αααΎααΊαααααααΌααααααααΆ ααΆαα½αααααααΌαααΆαααααΎααΆααααα ααα»α αααααΆαααα»αααααΆααΆαααααα»α α¬ααΆαα½αααααααΌαααΆαααααΆααααΈαα αααα»αα αααααα’αααααααΎααααΆαα αααα’αα»ααααΆαα±ααα’αααααααΎααααΆααααΆαααααααΌααααΉαααα·ααΆααααα αααα’αΆα ααααΌαααΆαααααΎααΎααααΈαααααΎαα’αΆαα αΆααααααααααα
Stephan Muller ααΆαααααΎααΆαα»αααααααΆααα
Matthew Garrett ααΆαααααΆααααΉαααΆααα "αα·ααααααα
ααααααα·α" αααααααααααΆααααΆα§ααααααααααΆαααααααΌααΆααααααΆαααα’αΆα
ααααΌαααΆαααααααααΌααΆααααΆαααΆααααΆαααααααααααΆααααΎααααΈααααΎα±αααα½αααα’αΆα
ααααααααΆαααΆαα "ααΎααα·αααααααΌααΆαααααΉαααα·ααΆααα Quantum αα
ααΈαααααα"
MΓΌller ααΆαααααΎαααααΆααΆααααααααΆαααααΈαααααααΆαα’αΆα‘αΊαααα AIS 31 ααΎααααΈαα·αααααΆα’αααΈαααΆαααΈααααααΎααααα αααααααααααααΎααααααα "αααα»αα’ααααΆααΌα ααααΆααΉαααααααααααααααΆααααααα·α entropy" α
ααΆααα»αααααΆααααΆαααααααααα½αα‘αα ααΆαααΆαα’αΆαα αΆαααα ααΌα αααααΆαααααΆαααααααα LRNG ααΉαααΆααα αααααα αΆαααααα αααΆαα αα ααΆααααααα·αααΎααΆααααΌαααΆαα αΌααααααααΆααα·αααα·α
ααΌα ααα Lutomirsky ααΆααα·ααΆαααΆ: "ααααα·ααααααααΆααααα αΆααα ααααα·αααΎα’αααααααΎααΈααααααααααΆααααΎαααΆααααααα·ααΈααααααααααΌα ααΆ gnupg αα½αααααΉαααααΆαααααααα αΌαααααΆαα αα·ααα ααα αααα»αααΎαααΆαα αα α»ααααααααΆααααα αΆα ααααααΈαααΆαα½α /dev/randomα ααΆααΆαααΉα DoS (α§. ααΆαααα α»αααααΆα α₯αααα·ααααααΆααΆα α¬α’αααΈαα½ααααααααααααααΆ) α αΎααααααΆαααααΆααα·αααα·αααααΌαα±ααααααΎααΆ ααΆααααΆαααΉαααααΆααααααα Gnupg ααΊαα»α ααΆααΆααΆααα½ααααααΆαααααα»αα ααααα·αααΎααΎαααααααα ααα»α αααααΆαααααααααΆααα·αααα·ααααΈααα gnupg αα·ααααααα·ααΈααααααααααΆααΉαααααΎ ααΎαααΉαααΆααααααααααααα"
Mueller ααΆαααααααααΆααααΆααΆααααααα getrandom() α₯α‘αΌααααααΉαα’αα»ααααΆαα±αα GnuPG ααααΎα ααα»α αααααΆααααααααααααΆααΉααααααααΌαααΆαααΆααΆα αΆαααΆα ααααα’αΆαααααΌαααΆαα αΆααααααΎαα ααα’ααααΎααΆααα·ααΆααααΆααΆαα½αα’αααα’αα·αααααα GnuPG ααα Werner Koch ααα Mueller ααΏααΆααααΆααΆαααΆααΆααΊααΆα ααα»αααααα½ααααααααα αα α»αααααα GnuPG α’αΆααααααααΆααααΈ /dev/random α ααα»ααααααααα·αααΎααΆαα ααα»α αααααΆαααααααααΆααα·αααα·αααααΆαααΉαααα·αααααααΆαααα (ααΌα /dev/random ααΊααααααααααα) Lutomirsky ααααααααΆααΆααΉαααααΌαααΆαααααΎααααΆαααα»αααααααααα·ααΈαα½αα ααα½αα
Theodore Yue Tak Ts'o α’αααα’αα·αααααααααααααααααααα αααααααααααΈαα»α α αΆααααΌα ααΆααΆαααααΆααααααΌααααα·αααααααΆααα’αααΈαααααΌαααΆααααααΆαααααα»αααΆααΆααα ααΆααααΆααα·ααΆαααΆααΆαααα’αΆααααα ααααΉαααΆαααααα·αααααΆααααα αΆαααααα·ααααααΆααΈαα»α ααΆααααΆαααΈααααααΎααααα ααααα (TRNG)α "ααααα·ααααααΆααΏαααα ααα»αααααα ααααααααααΆα’αααΈααα *BSD αααααααααΎα"
ααΆααααααΆαααΆααααα½αααΆαααααααααααΆααΆααααααααααααΆα TRNG ααΉααααααΎααΆαα»ααααααΆααα’αααα’αα·αααααααααααα·ααΈ α αΎαααΏααΆααααΆααΆααα·α ααΆαααααααααααα Hardware αααααααααααΆααααααα Linux ααΆαα·αα’αΆα αα αα½α αααααα»αααΆαααΆααΆ TRNG αα αααα»αααΊαααα ααΌααααΈαααααααααΆααααα»αααΆαααααΎααΆαααΆαα½αα§αααααααααΆαα½ααα·αααα·ααΆ root ααΉααα·ααααααααΆααααα αΆαα: "α’αααα’αα·αααααααααααα·ααΈαααααΆααααΆαααααα·ααΈαααααα½αααααααΌαααΆαααα‘αΎαααΆ root αααααΆααααααααααα»ααααα·ααΆα ααΌα αααααααααΊααΆαα·ααΈαααα½αααααααα’αααα’αΆα α αΌαααααΎαααα ααααα 'αα·αααΆααα’' α"
Mueller ααΆααα½αααΆααΎ Cao ααΆαααααααα ααααΆαα’αα»ααααα’αΆααααααααΆααααααααα½αααΆααααααΆααααΆαααααΎααΆααΌαααα αΎαα¬α’ααα Cao ααΆαααααΎαααααΆααΆαααααααααΉααααααααααα Lutomirsky αα·ααααααΆαααααΆαααααααααα»αααΆαααααααα ααα»α αααααΆαααααααααΆαααααα‘αααα ααΊααααα·αα
βααΊααααα·αα’αΆα ααΆααΆααΆαααΆααΎαααααααα‘ααααααΆαααααΌαααΆααααααααααααααααΉαααααΌαα¬α’ααα ααΏααααα½αααααααα’αααα’αα·αααααα GPG α¬ OpenSSL α’αΆα ααα½αααΆαααΊα’αΆαααααααα·αα αααΆααααΆαααααααΆ TRUERANDOM "αααααΎαααΆα" α αΎααααααΆααα½αααα ααααΆααα»ααααα·ααΆαααααααααα αα½αααααΉαααααΆααΆαααααΎααΆαααααααααα αα α ααα»α ααααααΆααΉαααααΌαααΆαααΆααΆαα α αΎααα ααααααα’αααααααΎααααΆααααααΆααααααααααα (αααα ααααΆα’αααα―ααααα ααα αΆα) αααα αΌαααΆαα αααα»αααααααΈα init α αΎααααααααααααααααΎαααΆα α’αααααααΎααααΆααααΉαααααΌαααααΉααα Linus Torvalds αααα½αα―αααααα»αααααα
Cao ααααααΌααα·αααααα±ααα’ααααααααααΌααααααΆαα αα·αα’αααααααα·αααΆααααΌαααΆα TRNG ααΌααα·ααΈαα½αααΎααααΈαααααΌααα entropy ααααΆαααααα½ααααααα½ααααα αααα»αααα αα’αααααααΎααααΆααααΎααααΈααααΎααααΆααααΌα ααααα½ααααααααααα ααΆαααα·ααΆαααΆααΆααααααΌα entropy αα·ααααααΆααααΎαααΆααααα’αΆα ααααΌαααΆαα’αα»ααααααα kernel αα ααΎ hardware αααααααααΆααΆααα’αααααααΆααΆααααααααα α αΎα kernel αααα½αα―ααααα·αα’αΆα αααΆααααααΆαα ααα½α entropy ααααααααααααααααααααααααααΆαααα
"ααΊααααα·ααα½αααααΌαααΆαααΆαααααααααααααααΆαααααααααΆαα½αααααΆααααα α αΎαααΆαα·αααΆαα·ααα½αααααΆααΆαα’αα’αΆαααΎααααΈααΉαααΈα ααα½ααααΈααα entropy αααααΆααα½αααΆααα ααααααααΆαααα»αααααΆααΆααααα αααα "twitchy entropy" αα½αα ααα½ααα ααΎ CPU ααααΆαααααα½αα ααααΆαααααααααααααΆααα’αααααααΎααααΆααα IOT/Embedded case αααα’αααΈαααΆααα’αααα·ααααΈαααααΆααααααΆααΆαα½α master oscillator αααα½α ααααα·αααΆαααΆαααααΆα CPU ααΎααααΈααααααα‘αΎααα·α α¬ααααΌααααααααΆαα α»ααααααααα"
βα’αααα’αΆα αα·ααΆαα’αααΈααΆααααααα§ααααααααααααΆααΆαααααΎααΆαααααΆααΆααααα ααα»ααααααΏαααααααααααΌαααααΎαα ααΎαααααααΉαααααα’αααααααΎααααΆααα αααααΆαα·αααΆααααααααααααααΆααα’αααααααΎααααΆααα ααα αΆαααΆαα αααΎααααααα ααααα·αααΎαααααΆααααααααααΆααααα’ααααααααααΌααααααΆααααα»ααααα ααΌαα’αα»ααααΆαα±ααααΆαα½α ααΆαααααα»αα αααααα’αααααααΎααααΆαααααααα½αααα α αΎαααΌααα»αααααΎα±αα GPG ααΆαααα OpenSSL ααΆααΎαα ααΎααααΈα±ααααα»ααααααααααααΆαα·ααΆαααΆ "ααΎαα ααααΆα "ααΆαα ααααααα·α" α αΎαααΉααα·ααααααααΆααα·α ααΆααααααα ααΎαβα’αΆα βαα·ααΆαβα’αααΈβααααβαααβααΎαβαααααβα ααα»α βαααααΆααβαααβα’αααβααααΈαααΌ ααΌα ααααβαα½αααβα’αΆα βααα½αβααΆαβααααααΆαβαααβαα½αααβααααΌαβααΆαβαααβααΆαβα αΌαβααααΎααααΆααβαααααβααα‘ααβααααΆαβα ααααβαααβαααααβ αα·αβααΆααβαααααβ α αΎαβαααα ααβααΆβαααααβααα‘ααβααααΆαβα’αΆα βαααααααααΆααβαααα½αβααΆβαα βαααααΆαααβ α¬βαααααα·ααΈβα αααααβα’αααβααααΎα
ααΆαααΆααα·ααΆααααΆαα½αα ααα½αα’αααΈα’αααΈαααα ααα»α αααααΆααααααααα’αΆα ααΎααα ααΌα α αΆααααΆααααΈα§ααΆα ααα ααΆα’αΆα ααΆααααααααΆαααα»ααααα·ααΆααααααΆααααααΉαααα·ααΆααααα½αα ααα½αα Cao ααΆαααααααααΆααααΆαααααΌααααααααααΆαα α»α (α§ααΆα αααααΆαα α»α ααααΆααα α»α ) ααααΌαααΆαααΆααααα αΌαααααΆαα αααα»αα’αΆααααααΆααααααα½αααααΆααααααΌα entropy: "ααΆαααΆαααααΆαα αααα»αα αααααα’αααααααΎααααΆαα ααΌααααΈααααΆααααααΆαα α ααΆααααααααααααααΆααα·αααα·ααααα ααΆααΉαααΆααΆααα·αααα ααα»αααααα»αααΆααα·ααΆααα·α αααα»α"α ααΆα’αΆα αα αα½α αααααΆαααααααΆααααΉαααα·ααΆαααααααααααα’αΆα αααααΎαααΆαααα ααααΆαααααααΆααα½αα ααα½αααΆαααααααααΆαα αα ααα
ααΌα ααααααΆααΎααα ααΌα ααΆαααα αΆαααααΆαααααααααΌαααΆαα½ααααααααααααααα αααααααααααΈαα»α αααα»ααααα·ααα ααΎααααΌααα αααααααααααΆαα ααΆαααααΆααααααΌαααααααααααααααααα αααααααΆαααααααΆααααααΈαααααα·αααΆααΆααααααΆαα±ααααΆααααα αΆ DoS ααααααααααααα»αααααΎααΆα α₯α‘αΌααααααΆααα·ααΈααααΆαααααα·αααααΆααααα»αααΆαααα½αααΆααααα αααααααααα’αααα»ααααααΊαααα’αΆα αααααα±ααα ααααα·αααΎ TRNG αα ααα ααααΆααα ααΎααΈαα»α αααααα α»ααααααΉαααααΌααααααααΆααα αααα’ααΆαα ααα»ααααααααααΆααΆααΉααα·αααααΌαααΆαααααΎαα αααα»αααΊααααααα½αα―ααααααα
ααΆαααααΆαααΆαα·ααααααααα½αα ααα½απ
ααΌαα’ααα»αα
ααααααΆαααααΆαααα
ααΆαα½ααα½αααΎαα ααΎα’αααα
αΌαα
α·αααα’αααααααααααΎααα? α
ααααΎαααααΉαααΆααα½αα±ααα
αΆααα’αΆααααααααααααααααα? ααΆααααααΎααααααΆααααααΆαα·αα¬ααααΆαααααα·αααααααα·,
Dell R730xd 2x αααααΆααα
αααα»αααααααααααα·αααααα Equinix Tier IV αα
ααΈαααα»α Amsterdam? αα
ααΈααα
ααααα: www.habr.com