Wenn ich mich anmelde, bleibt es hängen, bis crng init fertig ist

22

Wenn ich mich mit LightDM auf meinem Laptop mit Debian Unstable anmelde, hat es vor kurzem begonnen, für ungefähr 2 Minuten zu hängen, bis journalctldie Nachricht angezeigt wird kernel: random: crng init done. Wenn ich zufällige Tasten auf meiner Tastatur drücke, während sie hängt, meldet sie sich schneller an (ungefähr 10 Sekunden). Gibt es eine Möglichkeit, das Problem zu beheben, bevor ich es nicht hatte?

Bearbeiten: Verwenden linux-image-4.15.0-3-amd64anstelle von linux-image-4.16.0-1-amd64funktioniert, aber ich möchte keinen älteren Kernel verwenden.

wb9688
quelle
1
Klingt so, als würde etwas den gesamten Entropie-Pool verschlingen.
Kusalananda
1
Das Thema systemd-journaldund die (behauptete) Notwendigkeit der Aussaat des CSPRNG ist in letzter Zeit in verschiedenen Diskussionsforen aufgetaucht. Siehe beispielsweise lists.freedesktop.org/archives/systemd-devel/2018-May/… .
JdeBP
1
sudo apt install haveged sudo systemctl enable haveged
Virusmxa

Antworten:

15

Sieht aus wie eine Komponente Ihres Systems, die versucht, zufällige Daten vom Kernel abzurufen (dh auszulesen /dev/urandomoder aufzurufen getrandom()), da nicht genügend Entropie (Zufälligkeit) zur Verfügung steht.

Ich habe keine Erklärung dafür, warum das Problem von einer bestimmten Kernel-Version abhängt oder welche Komponente auf Ihrem System tatsächlich blockiert, aber unabhängig von der Grundursache.

Tatsächlich scheint es sich , wie Bigon in seiner Antwort hervorhob, um einen in 4.16 eingeführten Kernel-Bug zu handeln:

Dieser Fehler wird durch die Änderung von "crng_init> 0" zu "crng_init> 1" in diesem Commit verursacht: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ ? id = 43838a23a05fbd13e47d750d3dfd77001536dd33

Diese Änderung wirkt sich versehentlich auf urandom_read aus und bewirkt, dass der Status crng_init == 1 als nicht initialisiert behandelt wird und dass urandom blockiert wird, obwohl dieser Status speziell für die Unterstützung nicht kryptografischer Anforderungen zum Startzeitpunkt gilt: https://git.kernel.org/pub /scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c#n1863

Durch das Zurücksetzen von 43838a23a05f ("random: fix crng_ready () test") wird der Fehler behoben (getestet mit 4.16.5-1), dies kann jedoch zu Sicherheitsbedenken führen (CVE-2018-1108 wird in 43838a23a05f erwähnt). Ich teste ein lokalisierteres Update, das für den Upstream besser geeignet sein sollte.

( https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572#82 )

... Trotzdem können Sie versuchen , die Entropie mit havegedoder rng-toolsschneller zu erfassen.

intelfx
quelle
4
Es sieht so aus, als hätten sich in Linux 4.16.4 einige Dinge im Zusammenhang mit CRNG aufgrund von CVE-2018-1108 geändert. rng-toolsfunktioniert auf meinem Laptop nicht, weil der Intel Celeron N2840 AES-NI nicht unterstützt und daher kein eingebautes TRNG hat.
wb9688
3
Letzter Upload von rng-toolsin debian aus dem Jahr 2011. Sie haben ein rng-tools5Paket, das kürzlich vorgestellt wurde
Bigon,
@Bigon TBH Ich weiß nichts über Pakete in Debian; Ich benutze es nicht. Dies ist ein allgemeiner Rat, nicht Debian-spezifisch.
intelfx
1
Bestätigt mit Ubuntu 18.04 (bionic). Hatte dieses Problem nach der Installation dropbear-initramfsund Entsperrung meiner Festplatte per Fernzugriff mit cryptroot-unlock. Lässt apt install rng-toolsdie Dinge einfach auf magische Weise funktionieren. Vielen Dank!
ein bezahlter Nerd
Die Installation havegedhat bei mir funktioniert. Ich habe einen alten Intel Core 2 Duo, der keinen True Random Number Generator hat.
Balau
7

Es handelt sich um eine Änderung (Bug?) Im Kernel, siehe: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572

Das zu mildern, rng-tools5scheint zu helfen. Beachten Sie, dass ich nicht weiß, ob sich die Installation dieses Pakets auf die Erzeugung starker Kryptografieschlüssel auswirkt oder nicht

Edit: Offensichtlich sollte ein Update von util-linux 2.32 das Problem beheben

Groß auf
quelle
Nein, util-linux 2.32 behebt das Problem nicht für mich.
Vinc17
5

Es ist ein Kernel-Fehler, der bei verschiedenen Kerneln auftreten kann.

Laufen apt-get install rng-toolswie suim Terminal sollte funktionieren.

Giulio G
quelle
Das Ausführen von apt-get install rng-tools als su im Terminal hat das Problem mit meiner Linux-Box behoben.
Giovanni Cannizzaro
2

rng-toolsDies hilft nur, wenn Ihr System Hardware-Unterstützung für Zufallszahlen wie den " Secure Key " von Intel bietet . Dieser Weg wurde mit Ivy Bridge erfunden . Meine Systeme mit 1037u Prozessoren (basierend auf Ivy Bridge) haben nicht haben diese Hardware - Unterstützung. rng-toolsHelfen Sie deshalb nicht.

Auf einem anderen System kann hier mit einem Sandy Bridge i3 Prozessor rng-toolsgeholfen werden. Der rngdDienst muss sehr früh im Startprozess gestartet werden, um die Entropiewarteschlange zu füllen. Dies ist der Fall in der Boot-Sequenz mit Ubuntu, ich weiß nicht, ob dies für andere Distributionen zutrifft, aber Sie können herausfinden, wie der Start von rngdin Syslog protokolliert wird.

J. Schwender
quelle
1
Das ist nicht ganz richtig. Sie könnten laufen rngd -f -r /dev/urandomzu pumpen /dev/urandomin /dev/random, obwohl es ratsam ist es nicht auf diese Weise zu laufen, es ist eine Option ..
slm
2

Kann auch nach dem Löschen der Swap-Partition auftreten

Das Aufhängen vor kernel: random: crng init donekann auch nach dem Löschen einer Swap-Partition erfolgen.

Wenn eine Swap-Partition gelöscht wird, sollte die Konfigurationsdatei /etc/initramfs-tools/conf.d/resume entweder vollständig leer oder gelesen sein RESUME=. Löschen Sie eine UUID-Nummer. RESUME=NONEist ungültig.

$ sudo vim /etc/initramfs-tools/conf.d/resume

Das ursprüngliche RAM-Dateisystem muss aktualisiert werden, damit die folgenden Änderungen wirksam werden:

$ sudo update-initramfs -u
Serge Stroobandt
quelle
1

In meinem Fall habe ich eine Debian Buster (Kernel 4.19.0-4-amd64) VM auf Proxmox VE ausgeführt.

Die Lösung bestand darin , der VM ein VirtIO RNG- Gerät hinzuzufügen . In Proxmox erfolgt dies durch Bearbeiten der VM-Konfigurationsdatei .

In meinem Fall habe ich /etc/pve/qemu-server/110.confdie folgende Zeile bearbeitet und hinzugefügt:

args: -device virtio-rng-pci

Es wurden keine Userspace-Tools (z. B. rng-toolsoder haveged) benötigt.

Jonathon Reinhart
quelle