Kernel Devices Er zijn een paar block en character devices beschikbaar onder Linux die
je ook behulpzaam kunnen zijn met de beveiliging. De twee devices /dev/random en /dev/urandom worden
verschaft door de kernel om op elk tijdstip te kunnen voorzien in willekeurige
gegevens. Zowel /dev/random als /dev/urandom zouden veilig genoeg
moeten zijn om te gebruiken voor het genereren van PGP sleutels, het aanroepen
van ssh en andere applicaties waar veilige, willekeurige nummers
vereist zijn. Voor aanvallers moet het onmogelijk zijn het volgende nummer te
voorspellen gezien elke aanvangsvolgorde van nummers van deze bronnen. Er is
een hoop moeite voor gedaan om zeker te stellen dat de nummers die je van deze
bronnen krijgt, willekeurig in elke betekenis van het woord zijn. Het enige verschil tussen de twee devices, is dat /dev/random door
zijn voorraad willekeurige bytes heen raakt en je laat wachten tot er weer een
voorraad is aangemaakt. Merk op dat het op sommige systemen een blokkade voor
lange tijd kan opwerpen doordat er gewacht wordt op het invoegen van nieuwe
door de gebruiker gegenereerde entropie in het systeem.
Je moet voorzichtigheid betrachten voordat je /dev/random gebruikt.
(Wellicht is het beste wat je kunt doen, het te gebruiken wanneer je
gevoelige sleutelinformatie aan het genereren bent en je de gebruiker vertelt
herhaaldelijk op het toetsenbord te slaan totdat je de melding "OK, genoeg"
geeft)./dev/random is hoge kwaliteit entropy, gegenereerd door het meten
van de interrupt tijden etc. Het blokkeert totdat er voldoende bits met
willekeurige gegevens beschikbaar zijn./dev/urandom is vergelijkbaar, maar wanneer de opslag van entropie
op een laag pitje staat, zal het een cryptografisch sterk mengelmoesje van wat
er is terugsturen. Dit is niet zo veilig, maar het is voldoende voor de meeste
applicaties. Je kunt de devices raadplegen door iets dergelijks te gebruiken: root# head -c 6 /dev/urandom | mimencode
Dit zal acht regels willekeurige karakters op de console afdrukken, geschikt
voor wachtwoordgeneratie. Je kunt mimencode in het metamail
package vinden. Zie /usr/src/linux/drivers/char/random.c voor een beschrijving
van het algoritme. Met dank aan Theodore Y. Ts'o, Jon Lewis en anderen van Linux-kernel die
mij (Dave) hiermee geholpen hebben.