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


22

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

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


1
何かがエントロピープールをすべて食いつぶしているように聞こえます。
クサラナンダ

1
対象systemd-journaldに播種するとCSPRNGのためのその(主張)の必要性は、最近、様々なディスカッションフォーラムに来ています。たとえば、lists.freedesktop.org / archives / systemd-devel / 2018-May /…を参照してください。
JdeBP

1
sudo apt install haveged sudo systemctl enable haveged
virusmxa

回答:


15

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

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

実際、Bigonの回答で指摘されているように、それは4.16で導入されたカーネルバグのようです。

このバグは、このコミットの「crng_init> 0」から「crng_init> 1」への変更によって発生しますhttps ://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/ ?id = 43838a23a05fbd13e47d750d3dfd77001536dd33

この変更はurandom_readに意図せず影響を与え、crng_init == 1状態を初期化されていないものとして扱い、urandomをブロックしますが、この状態は特にブート時の非暗号化ニーズをサポートするために存在します:https : //git.kernel.org/pub /scm/linux/kernel/git/torvalds/linux.git/tree/drivers/char/random.c#n1863

43838a23a05f(「ランダム:fix crng_ready()テスト」を修正)を元に戻すと、バグ(4.16.5-1でテスト済み)が修正されますが、これによりセキュリティ上の懸念が生じる可能性があります(43838a23a05fでCVE-2018-1108が言及されています)。私はよりローカライズされた修正をテストしています。

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

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


4
ように見えますのLinux 4.16.4 CRNGに関連するいくつかのものがあるためCVE-2018から1108の変更されています。rng-toolsIntel Celeron N2840はAES-NIをサポートしていないため、TRNGが組み込まれていないため、私のラップトップでは動作しません。
wb9688

3
最後のアップロードrng-toolsあなたが持っている2011年からDebianにrng-tools5最近導入されたパッケージを
バイゴン

@Bigon TBH Debianのパッケージについては何も知りません。私はそれを使わない。これは一般的なアドバイスであり、Debian固有のものではありません。
intelfx

1
Ubuntu 18.04(バイオニック)で確認済み。を使用してdropbear-initramfsリモートでディスクをインストールおよびロック解除した後、この問題が発生しましたcryptroot-unlock。単にapt install rng-tools物事を魔法のように機能させます。ありがとうございました!
有料のオタク

インストールhavegedはうまくいきました。True Random Number Generatorがない古いIntel Core 2 Duoがあります。
バラウ

7

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

そのインストールを軽減するためrng-tools5に役立つようです。このパッケージのインストールが強力な暗号化キーの生成に影響を与えるかどうかわからないことに注意してください

編集:どうやらutil-linux 2.32を更新すると問題が修正されるはずです


いいえ、util-linux 2.32では問題は解決しません。
vinc17

5

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

ターミナルで実行apt-get install rng-toolsするsuと動作するはずです。


apt-get install rng-toolsを端末でsuとして実行すると、Linuxボックスの問題が修正されました。
ジョヴァンニカニッツァーロ

2

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

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


1
これは完全に真実ではありません。あなたは実行することができrngd -f -r /dev/urandomポンプする/dev/urandom/dev/randomはこの方法でそれを実行しないことをお勧めですけれども、それはオプションであり、..
SLM

2

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

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

1

私の場合、4.19.0-4-amd64Proxmox VE上でDebian Buster(カーネル)VMを実行していました。

解決策は、VMにVirtIO RNGデバイスを追加することでした。Proxmoxでは、これはVM設定ファイルを編集することにより行われます

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

args: -device virtio-rng-pci

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.