Come posso verificare l'entropia disponibile?


14

Sui sistemi Linux, è possibile verificare l' entropia disponibile (utile sapere se si sta toccando /dev/randomper scopi PRNG) con

cat /proc/sys/kernel/random/entropy_avail

Tuttavia, non esiste un equivalente di /procsu un Mac (AFAIK). Come posso verificare l'entropia di sistema disponibile su un Mac? Sto eseguendo OS X 10.7.3 (Lion)


Per aggiornare con alcuni dei miei commenti sotto la risposta di Kyle - Uno dei motivi per cui i Mac non visualizzano queste informazioni è che non è necessario (nella maggior parte dei casi). I sistemi Linux bloccheranno le chiamate /dev/randomse non c'è abbastanza entropia nel pool. Sui Mac, continua periodicamente ad aggiungersi al pool di entropia usando il SecurityServerdemone.

Tuttavia, nota anche che se il demone fallisce per qualche motivo, la qualità dell'output diminuirà senza alcuna indicazione di errore :

La qualità della sua produzione dipende tuttavia dall'aggiunta regolare di entropia appropriata. Se il SecurityServerdaemon di sistema fallisce per qualsiasi motivo, la qualità dell'output subirà nel tempo senza alcuna indicazione esplicita dal dispositivo casuale stesso.

Quindi, anche se la quantità di entropia non è resa facilmente disponibile, ciò non significa che non ci sia e ci potrebbero essere casi in cui la sua conoscenza potrebbe essere utile.


Hai davvero bisogno di controllare, o semplicemente assicurarti che ci siano abbastanza cose da usare? Vedi developer.apple.com/library/mac/#documentation/Darwin/Reference/… Citazione: "I programmatori paranoici possono contrastare un po 'questo rischio raccogliendo l'entropia di loro scelta (ad esempio da sequenze di tasti o tempi del mouse) e seminandolo randomdirettamente prima di ottenere importanti numeri casuali ".
Chris W. Rea,

Devo solo assicurarmi che ci sia abbastanza da usare.
rm -rf

Risposte:


6

Questa non è una soluzione, ma un chiarimento di come l'entropia viene raccolta e utilizzata in Linux.

Linux in realtà ha due diversi pool di entropia:

/dev/randome /dev/urandom.

Il primo è un vero pool casuale, alimentato da fonti di entropia di sistema.
Quest'ultimo è più di un PRNG come quelli trovati su BSD e OS X.

Tuttavia, anche l'urandom richiede un seme di entropia casuale "reale" per produrre dati pseudo-casuali di qualità. Sui kernel recenti, una completa mancanza di entropia in / dev / random non bloccherà ancora l'urandom, ma l'urandom riutilizzerà l'ultimo seme valido fino a quando non sarà disponibile più entropia. Poiché urandom è non bloccante, la maggior parte dei servizi che richiedono un flusso costante di entropia lo usano piuttosto che fare affidamento su / dev / random.

Esistono comunque alcuni servizi, come varie suite SSL, che non possono accontentarsi di entropia pseudo-casuale, ma richiedono una fonte di entropia davvero imprevedibile. In questo caso, urandom (o qualsiasi altro PRNG) non può essere usato e / dev / random entra in gioco.


2

Mac OS X utilizza semplicemente Yarrow . Anche FreeBSD è andato oltre e è passato alla sua versione migliorata chiamata "Fortuna".

La forza di Yarrow è limitata dalla dimensione della chiave. Ad esempio, Yarrow-160 ha una dimensione chiave effettiva di 160 bit. Se la sicurezza richiede 256 bit, Yarrow-160 non è in grado di svolgere il lavoro.

Tutto sommato, questo è un altro promemoria che le priorità di Apple non includono sicurezza / robustezza o qualcosa del genere.


1

Mac OS X, come FreeBSD, non si basa su fonti esterne di entropia. Invece, utilizza un generatore di numeri pseudocasuale basato sull'algoritmo Yarrow . Poiché utilizza un algoritmo e non un pool di entropia, non è necessario assicurarsi che ci sia "abbastanza" entropia: sarai sempre in grado di leggere da / dev / random senza bloccare .

Quindi, per rispondere alla tua domanda, a meno che tu non sia "paranoico" e non debba basare la tua entropia su fonti esterne (sequenze di tasti / movimenti del mouse / ecc.), Nel qual caso devi farlo da solo, la quantità di entropia disponibile per / dev / l'uso casuale è sempre infinito.


4
Questo non è del tutto corretto. L'uso di un algoritmo non lo rende entropia infinita. Ciò che significano è che su Linux, si blocca quando il pool di entropia è basso, mentre su mac: "L'entropia aggiuntiva viene fornita regolarmente al generatore dal demone SecurityServer da jitter casuali del kernel". Quindi, fondamentalmente, se ne occupa e salva anche qualche entropia su disco per l'uso immediatamente dopo l'avvio. Dice anche che mentre Yarrow è resistente, la qualità dipende dall'aggiunta regolare di entropia - qualcosa che non sarebbe necessario se fosse davvero un'entropia infinita
rm -rf

1
Dice inoltre che: "Se il demone del sistema SecurityServer fallisce per qualsiasi motivo, la qualità dell'output subirà nel tempo senza alcuna indicazione esplicita dal dispositivo casuale stesso" , ammetterò che OSX ha reso facile non doversi preoccupare dell'effettivo valore di entropia, ma non significa che non ce n'è uno ... A proposito, mi riferivo a questa pagina man tra le mie citazioni sopra
rm -rf

@RM Vero, stavo pensando di più in termini di blocco della chiamata a / dev / random rispetto alla qualità dell'entropia
Kyle Cronin

> a meno che tu non sia "paranoico" - Mac OS X è semplicemente privo di qualsiasi ragionevole ragionevole di casualità da considerare anche leggermente sicuro
poige
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.