alg: drbg: could not allocate DRNG handle for ...
Ich sehe diesen Fehler nur auf der Konsole während des Startvorgangs der von uns erstellten virtuellen Maschinen. EDIT: 05.02.16 - Ich sehe es auch bei einigen Bare-Metal-Installationen. (Es wird vollständig gestartet.) Ich gehe davon aus, dass dies etwas mit der virtualisierten Hardware und dem Fehlen eines (kompatiblen) Zufallszahlengenerators zu tun hat. Das Problem ist, dass ich den Schweregrad nicht beurteilen kann. Ist die Verschlüsselungsstärke beeinträchtigt? (Sollte ich mich überhaupt um diesen Fehler kümmern?) Wie kann ich ihn beheben?
Wir verwenden QEMU / KVM unter CentOS 6.7. Ich kann virsh dumpxml
ein Beispielsystem erstellen, wenn Sie wirklich glauben, dass es helfen wird. Wir verwenden die Standard-Chiffrier- / Schlüsselgröße von Anaconda . (aes-xts-plain64 / 512)
Dies ist die früheste Referenz, die ich auf der Linux-Crypto-Mailingliste gefunden habe . Leider geht es mir etwas über den Kopf.
http://www.mail-archive.com/linux-crypto%40vger.kernel.org/msg10398.html
quelle
Antworten:
Ich glaube nicht, dass dies die Stärke Ihrer Verschlüsselung beeinflusst.
Ich habe den Quellcode überprüft und solange ich das, was ich richtig lese, interpretiere, müssen Sie sich darüber keine Sorgen machen.
Dieser Code gehört zum Modul 'stdrng'. Zumindest unter Fedora 23 ist dies in den Kernel integriert und wird nicht als Kernelmodul exportiert.
Wenn stdrng zum ersten Mal initialisiert wird, treten die folgenden Aufrufe auf.
In crypto / drbg.c beginnt hier die Initialisierung.
Dies registriert alle dem System bekannten Drbgs.
Anschließend wird es an eine Hilfsfunktion übergeben, die die Initialisierung durchführt:
In
crypto/rng.c
diesem Fall wird einfach jedes Rng durchlaufen, um es zu registrieren.Diese Funktion führt eine Reihe von Initialisierungsschritten aus und ruft dann eine andere Funktion zur Zuordnung auf.
Was nicht so offensichtlich ist, ist, was während der Registrierung passiert.
Ein anderes Modul, das
tcrypt
ebenfalls in den Kernel integriert ist, erhält Benachrichtigungen über das Einfügen neuer Algorithmen. Sobald ein neuer registrierter Algorithmus angezeigt wird, plant er einen Test. Dies erzeugt die Ausgabe, die Sie auf Ihrem Bildschirm sehen.Wenn der Test beendet ist, geht der Algorithmus in einen TEST-Zustand über. Wenn der Test fehlschlägt, kann ich mir vorstellen (ich konnte das Bit, das dieses Verhalten erzeugt, nicht finden), dass es nicht für die Suche ausgewählt werden kann, wenn Sie die richtigen Flags übergeben.
Ob der Test erfolgreich ist oder nicht, wird definitiv intern gespeichert.
Darüber hinaus bewirkt das Aufrufen des Psudeo-Zufallszahlengenerators, dass eine Liste von Algorithmen von Prngs in der Reihenfolge der Stärke iteriert wird, wie in dieser Anmerkung in vorgegeben
crypto/drbg.c
Da der stärkste nicht ausfällt (hmac sha256), ist es unwahrscheinlich, dass Sie die ausgefallenen verwenden, selbst wenn sie ausgewählt werden könnten.
Zusammenfassen -
stdrng
Modul für etwas benötigt wird.stdrng
hoffentlich stützt, sollten diese Algorithmen nicht als Grundlage für ihre PRNG-Quelle verwenden.Mit dem folgenden Befehl können Sie sehen, welche Algen erfolgreich waren und die Tests bestanden haben:
Sie können die Auswahlpriorität auch im Feld "Priorität" anzeigen. Je höher der Wert, desto stärker ist der PRNG laut Modulautor.
Ich bin froh, dass ich mich hier irre, da ich mich nicht als Kernel-Programmierer betrachte, sondern abschließend -
Beim
stdrng
Laden werden anscheinend andere Algorithmen aus der Liste der akzeptablen Algen ausgewählt, die als stärker als die fehlgeschlagenen angesehen werden, und die fehlgeschlagenen werden wahrscheinlich sowieso nicht ausgewählt.Daher glaube ich, dass dies kein zusätzliches Risiko für Sie ist, wenn Sie luks verwenden.
quelle
Gemäß der Red Hat Knowledge Base müssen Sie Ihrem initrd das Kernelmodul 'ctr' hinzufügen. In ihren Anweisungen heißt es auch, 'ecb' einzuschließen, obwohl das Problem anscheinend darin besteht, dass das 'ctr'-Modul nicht geladen wird.
Abonnenten können die vollständigen Informationen anzeigen. Ich bin mir nicht sicher, ob ich den Rest hier erneut veröffentlichen darf, daher habe ich die vollständige Lösung umschrieben.
https://access.redhat.com/solutions/2249181
Bearbeiten 29.09.2016:
Sie können diese Treiber auch hinzufügen,
/etc/dracut.conf
damit sie bei Kernel-Upgrades zu den neuen initramfs hinzugefügt werden. Andernfalls treten Ihre Symptome viele Monate später auf mysteriöse Weise wieder auf. ;)quelle