Wie kann ich nach verfügbarer Entropie suchen?

14

Auf Linux-Systemen kann man nach der verfügbaren Entropie suchen (nützlich, um zu wissen, ob Sie /dev/randomfür PRNG-Zwecke tippen )

cat /proc/sys/kernel/random/entropy_avail

Es gibt jedoch kein Äquivalent /proczu einem Mac (AFAIK). Wie kann ich auf einem Mac nach der verfügbaren Systementropie suchen? Ich verwende OS X 10.7.3 (Lion)


Aktualisierung mit einigen meiner Kommentare unter Kyles Antwort - Einer der Gründe dafür, dass Macs diese Informationen nicht anzeigen, ist, dass sie (in den meisten Fällen) nicht benötigt werden. Linux-Systeme blockieren Aufrufe von, /dev/randomwenn nicht genügend Entropie im Pool vorhanden ist. Auf Macs wird der Entropiepool regelmäßig mithilfe des SecurityServerDaemons erweitert.

Es wird jedoch auch darauf hingewiesen, dass die Ausgabequalität sinkt, wenn der Dämon aus irgendeinem Grund ausfällt, ohne dass Anzeichen für einen Fehler vorliegen :

Die Qualität seiner Ausgabe hängt jedoch von der regelmäßigen Zugabe geeigneter Entropie ab. Wenn der SecurityServerSystem-Daemon aus irgendeinem Grund ausfällt, leidet die Ausgabequalität mit der Zeit, ohne dass das zufällige Gerät dies ausdrücklich anzeigt.

Auch wenn die Menge an Entropie nicht einfach verfügbar gemacht werden kann, bedeutet dies nicht, dass sie nicht vorhanden ist, und es kann Fälle geben, in denen ihr Wissen hilfreich sein kann.

rm -rf
quelle
Müssen Sie wirklich nachsehen, oder stellen Sie einfach sicher, dass genügend Material für die Verwendung vorhanden ist? Siehe developer.apple.com/library/mac/#documentation/Darwin/Reference/… Quote: "Paranoide Programmierer können diesem Risiko etwas entgegenwirken, indem sie Entropie ihrer Wahl (z. B. durch Tastendruck oder Maussteuerung) sammeln und randomdirekt vor dem Abrufen einsetzten wichtige Zufallszahlen. "
Chris W. Rea
Ich muss nur sicherstellen, dass es genug zum Verwenden gibt.
rm -rf

Antworten:

6

Dies ist keine Lösung, sondern eine Erläuterung, wie Entropie unter Linux gesammelt und verwendet wird.

Linux hat eigentlich zwei verschiedene Entropie-Pools:

/dev/randomund /dev/urandom.

Ersteres ist ein echter Zufallspool, der von Systementropiequellen gespeist wird.
Letzteres ist eher ein PRNG, wie es bei BSDs und OS X der Fall ist.

Sogar Urandom erfordert jedoch einen Keim von "echter" Zufallsentropie, um qualitativ hochwertige pseudozufällige Daten zu erzeugen. In neueren Kernels wird ein vollständiger Mangel an Entropie in / dev / random das Urandom immer noch nicht blockieren, aber das Urandom wird den letzten gültigen Startwert wiederverwenden, bis mehr Entropie verfügbar wird. Da urandom nicht blockiert, wird es von den meisten Diensten, die einen stetigen Entropiestrom erfordern, verwendet, anstatt sich auf / dev / random zu verlassen.

Es gibt jedoch noch einige Dienste, wie z. B. verschiedene SSL-Suiten, die nicht mit pseudozufälliger Entropie auskommen, sondern eine wirklich unvorhersehbare Entropiequelle benötigen. In diesem Fall kann urandom (oder ein anderes PRNG) nicht verwendet werden, und / dev / random kommt ins Spiel.

Chris
quelle
2

Mac OS X verwendet einfach Yarrow . Sogar FreeBSD ging weiter und wechselte zu seiner verbesserten Version namens "Fortuna".

Die Stärke der Schafgarbe wird durch die Größe des Schlüssels begrenzt. Yarrow-160 hat beispielsweise eine effektive Schlüsselgröße von 160 Bit. Wenn die Sicherheit 256 Bit erfordert, ist Yarrow-160 nicht in der Lage, die Arbeit zu erledigen.

Alles in allem ist dies eine weitere Erinnerung daran, dass die Prioritäten von Apple nicht Sicherheit / Robustheit oder ähnliches beinhalten.

Poige
quelle
1

Mac OS X ist wie FreeBSD nicht auf externe Entropiequellen angewiesen. Stattdessen wird ein Pseudozufallszahlengenerator verwendet, der auf dem Yarrow-Algorithmus basiert . Da ein Algorithmus und kein Entropiepool verwendet wird, muss nicht sichergestellt werden, dass "genug" Entropie vorhanden ist - Sie können immer aus / dev / random lesen, ohne zu blockieren .

Um Ihre Frage zu beantworten, es sei denn, Sie sind "paranoid" und müssen Ihre Entropie auf externen Quellen (Tastenanschläge / Mausbewegungen / usw.) basieren. In diesem Fall müssen Sie die Menge der verfügbaren Entropie für / dev / selbst bestimmen. zufällige Verwendung ist immer unendlich.

Kyle Cronin
quelle
4
Das ist nicht ganz richtig. Die Verwendung eines Algorithmus führt nicht zu einer unendlichen Entropie. Was sie bedeuten ist, dass es unter Linux blockiert, wenn der Entropie-Pool niedrig ist, während auf dem Mac: "Zusätzliche Entropie wird regelmäßig vom SecurityServer-Dämon aus zufälligen Jitter-Messungen des Kernels in den Generator eingespeist." Im Grunde genommen kümmert es sich also darum und speichert Entropie auf der Festplatte, die unmittelbar nach dem Start verwendet werden kann. Es heißt auch, dass Schafgarbe zwar belastbar ist, die Qualität jedoch von der regelmäßigen Zugabe von Entropie abhängt - etwas, das nicht notwendig wäre, wenn es wirklich eine unendliche Entropie wäre
rm -rf
1
Außerdem heißt es: "Wenn der SecurityServer-System-Daemon aus irgendeinem Grund ausfällt, leidet die Ausgabequalität im Laufe der Zeit, ohne dass das zufällige Gerät dies ausdrücklich anzeigt." Ich gebe zu, dass es OSX leicht gemacht hat, sich keine Sorgen um das tatsächliche Gerät zu machen Entropiewert, bedeutet aber nicht, dass es keinen gibt ... Übrigens habe ich in meinen obigen Zitaten auf diese Manpage
verwiesen
@RM Richtig, ich habe mehr darüber nachgedacht, ob ein Aufruf von / dev / random blockieren würde oder nicht, als die Qualität der Entropie
Kyle Cronin
> , Wenn Sie „paranoid“ sind - Mac OS X fehlt einfach jede vernünftige Menge an Zufälligkeit sogar leicht als sicher betrachtet werden
poige