web-dev-qa-db-ja.com

ログインすると、crng initが完了するまでハングします。

Debian Unstableを実行しているラップトップでLightDMを使用してログインすると、journalctlにメッセージkernel: random: crng init doneが表示されるまで、最近2分間ハングし始めました。ハングしているときにキーボードのランダムなキーを押すと、ログインが速くなります(約10秒)。この問題が発生する前に、修正する方法はありますか?

編集:linux-image-4.15.0-3-AMD64の代わりにlinux-image-4.16.0-1-AMD64を使用しても機能しますが、古いカーネルを使用したくありません。

24
wb9688

利用可能なエントロピー(ランダム性)が不十分なため、カーネルからランダムデータを取得しようとするとき(つまり、_/dev/urandom_から読み取るか、getrandom()を呼び出す)、システムブロックの一部のコンポーネントのように見えます。

問題が特定のカーネルバージョンに依存している理由、またはシステムのどのコンポーネントが実際にブロックしているのかについての詳細な説明はありませんが、根本的な原因に関係なく、

実際、Bigonが answer で指摘したように、これは4.16で導入されたカーネルバグのようです。

このバグは、このコミットの "crng_init> 0"から "crng_init> 1"への変更によって導入されています: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux。 git/commit /?id = 43838a23a05fbd13e47d750d3dfd77001536dd

この変更は不注意にurandom_readに影響を及ぼし、crng_init == 1状態が初期化されていないものとして扱われ、この状態が存在していても非サポートをサポートしているにもかかわらず、urandomがブロックされます-起動時の暗号化の必要性: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c#n186 =

43838a23a05f( "random:fix crng_ready()test")を元に戻すと、バグは修正されますが(4.16.5-1でテスト済み)、セキュリティ上の問題が発生する可能性があります(CVE-2018-1108は43838a23a05fで言及されています)。私はよりローカライズされた修正をテストしていますが、それはアップストリームにより適したものになるはずです。

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

...それでも、 haveged または _rng-tools_ を使用してエントロピーをより速く収集することができます。

16
intelfx

これはカーネルの変更(バグ?)です。以下を参照してください https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572

そのインストールを軽減するにはrng-tools5が役立つようです。このパッケージのインストールが強力な暗号化キーの生成に影響を与えるかどうかはわかりません。

編集:明らかにutil-linux 2.32を更新すると問題が解決するはずです

7
Bigon

これは、さまざまなカーネルで発生する可能性があるカーネルのバグです。

ランニング apt-get install rng-tools as su as terminalが機能するはずです。

6
Giulio G

rng-toolsは、インテルの「Secure Key」のように、システムが乱数をハードウェアでサポートしている場合にのみ役立ちます。この方法は、Ivy Bridgeで発明されました。 1037uプロセッサー(ivyブリッジに基づく)を搭載した私のシステムはnotがこのハードウェアをサポートしています。したがって、rng-tools役に立たない。

ここにあるSandy Bridge i3プロセッサを搭載した別のシステムrng-tools助けてください。エントロピーキューをいっぱいにするために、ブートプロセスの非常に早い段階でrngdサービスを開始する必要があります。これは、Ubuntuのブートシーケンスの場合です。他のディストリビューションに当てはまるかどうかはわかりませんが、rngdの開始がsyslogに記録されるため、確認できます。

2
J. Schwender

スワップパーティションを削除した後にも発生する可能性があります

前にぶら下がってkernel: random: crng init doneは、スワップパーティションを削除した後にも発生することがあります。

スワップパーティションが削除された場合、構成ファイル/etc/initramfs-tools/conf.d/resume完全に空にするか、読み取る必要がありますRESUME=。 UUID番号を削除します。 RESUME=NONEは無効です。

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

これらの変更を有効にするには、最初のRAMファイルシステムを更新する必要があります。

$ Sudo update-initramfs -u
2

私の場合、Debianバスター(カーネル4.19.0-4-AMD64)VMをProxmox VEで実行していました。

解決策は、VMに VirtIO RNG デバイスを追加することでした。 Proxmoxでは、これは VM構成ファイル を編集して行います。

私の場合、/etc/pve/qemu-server/110.confを編集して次の行を追加しました。

args: -device virtio-rng-pci

ユーザースペースツール(例:rng-toolsまたはhaveged)は必要ありません。

1