3.4. Random number Generator の使用
簡単に破損できない安全な暗号鍵を生成できるようにするには、ランダムな数字のソースが必要です。通常は、数字がランダムなほど、一意の鍵を取得する可能性が高くなります。通常、乱数を生成するエントロピー は、コンピューティング環境から「noise」またはハードウェア 乱数ジェネレーター を使用して取得されます。
rng-tools パッケージの一部である
rngd
デーモンは、環境侵害とハードウェア乱数ジェネレーターの両方を使用してエントロピーを抽出できます。デーモンは、ランダム性のソースによって提供されたデータが十分にランダムなものかどうかをチェックしてから、カーネルの random-number エントロピープールに保存します。生成されるランダムな数字は /dev/random
、およびの /dev/urandom
文字デバイスから利用できます。
/dev/random
との違いは、以前のデバイス /dev/urandom
がブロックデバイスであることです。つまり、エントロピーの量が、正しくランダムな出力を生成するのに不十分であると判断すると、数字を提供しなくなります。逆に /dev/urandom
、ブロック以外のソースで、カーネルのエントロピープールを再読み込みし、擬似アンダークラウド番号を無制限に提供でき、エントロピーが少なくなります。/dev/urandom
したがって、は長期暗号鍵の作成に使用しないでください。
rng-tools パッケージをインストールするには、
root
で以下のコマンドを実行します。
yum install rng-tools
~]# yum install rng-tools
rngd
デーモンを起動するには、root
で以下のコマンドを実行します。
service rngd start
~]# service rngd start
デーモンのステータスをクエリーするには、以下のコマンドを使用します。
service rngd status
~]# service rngd status
オプションのパラメーターを指定して
rngd
デーモンを起動するには、直接実行します。たとえば、(以外の /dev/hwrandom
)random-number 入力の代替ソースを指定するには、以下のコマンドを使用します。
rngd --rng-device=/dev/hwrng
~]# rngd --rng-device=/dev/hwrng
上記のコマンドは、ランダムな数字が読み取られるデバイス
/dev/hwrng
として、で rngd
デーモンを起動します。同様に、-o
(または --random-device
)オプションを使用して、ランダムな出力(デフォルト以外の /dev/random
)のカーネルデバイスを選択できます。以下を参照してください。 rngd(8) 利用可能なすべてのオプションの一覧の man ページです。
rng-tools パッケージには、データのランダム性を確認するために使用できる rngtest ユーティリティーも含まれます。の出力のランダム性レベルをテストするには
/dev/random
、以下のように rngtest ツールを使用します。
rngtest ツールの出力で表示される多くの障害は、テストされたデータのランダム性が最適で、依存しないことを示しています。以下を参照してください。 rngtest(1) rngtest ユーティリティーで利用可能なオプションの一覧の man ページです。