2008-10-24 10 views
9

/dev/random und/dev/urandom verwenden Umgebungsgeräusche, um Zufälligkeit zu erzeugen.Welche Auswirkungen hat die Virtualisierung auf kryptografisch starke Zufallsgeneratoren?

Bei einem virtualisierten Server kann es mehrere Instanzen eines Betriebssystems auf einer Hardwarekonfiguration geben. Diese Betriebssysteme werden alle ihre Zufälligkeit aus dem gleichen Umgebungslärm beziehen.

Bedeutet dies, dass die Stärke der Generatoren von Zufallszahlen als Gruppe reduziert wird, da alle OS-Instanzen ihre Berechnungen auf derselben Eingabe basieren? Oder wird das Umgebungslärm aufgeteilt, so dass das Teilen nicht stattfindet?

Wenn Letzteres wahr ist, kann ich sehen, dass dies die Effektivität von/dev/urandom reduziert, weil es seinen internen Pool wiederverwendet und mit weniger Umweltaufwand die Entropie reduziert.

/dev/random sollte in Ordnung sein, da es blockiert, bis genug Rauschen erfasst wird ... es sei denn natürlich die OS-Instanzen teilen alle die Eingabe.

Also, die Frage: Was ist der Einfluss der Virtualisierung auf kryptografisch starke Zufallszahlengeneratoren, insbesondere diejenigen, die Umgebungslärm verwenden?

Antwort

3

Ich konnte keine Referenzen schnell finden, aber es scheint mir, dass die Entropie von den Kernel-Datenstrukturen für die Geräte abgeleitet ist, nicht die eigentlichen Geräte selbst. Da diese unabhängig von der Virtualisierung unabhängig sind, vermute ich, dass die Antwort nicht viel ist.

[EDIT] Nach dem Blick auf die Kernel-Quelle (eigentlich Patch-Geschichte), sieht es zumindest so aus, dass Linux Entropie von Tastaturdrücken, Mausaktivität, Interrupt-Timing (aber nicht alle Interrupts) sammelt und Blockierung der Geräteanforderung beendet mal. Auf einem virtualisierten System vermute ich, dass Maus-/Tastaturereignisse ziemlich niedrig sind und somit nicht zur gesammelten Entropie beitragen. Vermutlich würde dies durch zusätzliche Netzwerk-E/A-Unterbrechungsaktivität ausgeglichen werden, aber es ist nicht klar. In dieser Hinsicht glaube ich nicht, dass es sich von Nicht-VM-Servern unterscheidet.

0

Danke.

Von dem, was ich verstehe, dass ein System, das auf Netzwerk-I/O für Entropie beruht anfällig für Menschen in der Mitte Angriffe ist. Ich fand die follow article, die geeignete Quellen der Entropie diskutiert. Ihr Vorschlag ist, Netzwerk-I/O aus dem Linux-Kernel wegen seiner Anfälligkeit zu entfernen.

Ich denke, das bedeutet, dass es die Möglichkeit gibt, die gemeinsame Hardware in einer virtualisierten Umgebung zu nutzen. Die Wahrscheinlichkeit wird erhöht, wenn Netzwerk-E/A verwendet wird. Ansonsten ist es niedrig genug, um für alle außer den sichersten Anwendungen keine Sorge zu sein. In solchen Fällen ist es wahrscheinlich sicherer, eine eigene Anwendung zu hosten.

0

Per Definition sollte die Zufälligkeit eines kryptographisch starken PRNG durch Virtualisierung nicht beeinflusst werden. Wie Sie erwähnen, besteht der Unterschied zwischen/dev/random und/dev/urandom [ref: http://en.wikipedia.org/wiki/Urandom/] darin, dass eine Leseoperation auf/dev/random blockiert, wenn das System nicht genug Entropie gesammelt hat, um die gewünschte Menge an Zufallsdaten zu erzeugen. Sie können auch nach/dev/random schreiben, um Ihre eigenen Daten in den Entropiepool zu mischen.

Verwandte Themen