/ dev / random und / dev / urandom verwenden Umgebungsgeräusche, um Zufälligkeit zu erzeugen.
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 Zufallsgeneratoren als Gruppe reduziert wird, da alle OS-Instanzen ihre Berechnungen auf die gleiche Eingabe stützen? Oder wird das Umgebungslärm aufgeteilt, so dass kein Teilen stattfindet?
Wenn Letzteres wahr ist, kann ich sehen, dass dies die Effektivität von / dev / urandom verringert, weil es seinen internen Pool wiederverwendet und mit weniger Umwelteinflüssen die Entropie reduziert.
/ dev / random sollte in Ordnung sein, weil es blockiert, bis genug Rauschen erfasst wird ... außer natürlich, die OS-Instanzen teilen alle die Eingabe.
Also, die Frage: Was ist der Einfluss der Virtualisierung auf kryptographisch starke Zufallszahlengeneratoren, insbesondere diejenigen, die Umgebungslärm verwenden?
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 tatsächlichen Geräte selbst. Da diese unabhängig von der Virtualisierung unabhängig sind, vermute ich die Antwort nicht viel.
[EDIT] Nach einem Blick auf die Kernel-Quelle (eigentlich Patch-Verlauf) sieht es so aus, als ob Linux zumindest Entropie durch Tastatureingaben, Mausaktivität, Interrupt-Timing (aber nicht alle Interrupts) sammelt und die Abschlusszeiten der Geräteanfragen blockiert . 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 denke ich nicht, dass es sich sehr vom Nicht-VM-Server unterscheidet.
Danke.
Von dem, was ich verstehe, ist ein System, das auf Netzwerk-I / O für die Entropie angewiesen ist, in den mittleren Angriffen für den Menschen anfällig. Ich habe den Artikel gefunden, in dem geeignete Quellen der Entropie behandelt werden. Ihr Vorschlag ist, Netzwerk-I / O aus dem Linux-Kernel wegen seiner Anfälligkeit zu entfernen.
Ich denke, das bedeutet, dass es möglich ist, 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.
Per Definition sollte die Zufälligkeit eines kryptographisch starken PRNG nicht durch Virtualisierung beeinflusst werden. Wie Sie erwähnen, ist der Unterschied zwischen / dev / random und / dev / urandom [ref: Ссылка , dass a Die Leseoperation auf / dev / random wird blockiert, wenn das System nicht genügend Entropie gesammelt hat, um die gewünschte Menge an Zufallsdaten zu erzeugen. Sie können auch schreiben nach / dev / random, um Ihre eigenen Daten in den Entropiepool zu mischen.
Tags und Links random virtualization cryptography