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
を使用しても機能しますが、古いカーネルを使用したくありません。
利用可能なエントロピー(ランダム性)が不十分なため、カーネルからランダムデータを取得しようとするとき(つまり、_/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
_ を使用してエントロピーをより速く収集することができます。
これはカーネルの変更(バグ?)です。以下を参照してください https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897572
そのインストールを軽減するにはrng-tools5
が役立つようです。このパッケージのインストールが強力な暗号化キーの生成に影響を与えるかどうかはわかりません。
編集:明らかにutil-linux 2.32を更新すると問題が解決するはずです
これは、さまざまなカーネルで発生する可能性があるカーネルのバグです。
ランニング apt-get install rng-tools
as su
as terminalが機能するはずです。
rng-tools
は、インテルの「Secure Key」のように、システムが乱数をハードウェアでサポートしている場合にのみ役立ちます。この方法は、Ivy Bridgeで発明されました。 1037uプロセッサー(ivyブリッジに基づく)を搭載した私のシステムはnotがこのハードウェアをサポートしています。したがって、rng-tools
役に立たない。
ここにあるSandy Bridge i3プロセッサを搭載した別のシステムrng-tools
助けてください。エントロピーキューをいっぱいにするために、ブートプロセスの非常に早い段階でrngd
サービスを開始する必要があります。これは、Ubuntuのブートシーケンスの場合です。他のディストリビューションに当てはまるかどうかはわかりませんが、rngd
の開始がsyslogに記録されるため、確認できます。
前にぶら下がって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
私の場合、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
)は必要ありません。