Haveged
関連記事
Haveged プロジェクトは、HAVEGE アルゴリズムに基づいた予測不可能の使いやすい乱数生成器を提供することを目的としたプロジェクトです。Haveged は主にヘッドレスサーバーなど、Linux の random デバイスを使うにあたってエントロピーが少ない状況を改善するために考案されました。
インストール
その後 haveged.service
を起動・有効化してください。
利用可能なエントロピーを確認
haveged が必要かどうかわからない(もしくは迷っている)なら、次のコマンドを実行してください:
# cat /proc/sys/kernel/random/entropy_avail
このコマンドはあなたのサーバがどれくらいエントロピーを確保しているかを出力します。もし、出力された値が低かった (1000以下) のであれば、haveged をインストールするべきです。暗号アプリケーションは十分なエントロピーが貯まるまで動きません。結果として、あなたのサーバーをソフトウェアアクセスポイントとして使っている場合など、wlan の速度が低下するかもしれません。
インストール後、もう一度コマンドを実行して確認してみてください。どれくらい haveged があなたのサーバのエントロピープールを加速させたかがお分かりいただけるでしょう。
代替
コンピュータに搭載されているハードウェア乱数生成器が信頼できないなどの特別な理由がないかぎり、まず先に rng-tools を試して、それで不十分 (あるいはコンピュータにハードウェア乱数生成器が載っていない) なら、Haveged を使うようにしてください。
仮想マシン
Is it appropriate to use haveged as a source of entropy on virtual machines? で議論されているように、haveged は仮想環境で質の高いエントロピーを作れるのかどうか疑問があります。Haveged は rdtsc 命令を使用していますが、仮想マシンでこの命令が仮想化されるとエントロピーが低品質になってしまいます。ハイパーバイザの中には、rdtsc の仮想化を無効化できるものがあり、それであれば理論的には haveged は高品質なエントロピーを供給できます。
VMware ESXi で rdtsc 命令の仮想化を無効化するには、仮想マシンの .vmx 設定ファイルに monitor_control.virtual_rdtsc = "FALSE"
の設定を追加してください。VMware は仮想マシンでリアルタイムの正確なソースが必要な計測を行う場合にこの設定を使用することを推奨しています [1]。