Virtio RNG は準仮想化された乱数生成ツールです。Virtio RNG は、仮想マシン(VM)インスタンスのホストマシンによって生成されたエントロピー プールからの乱数を提供します。エントロピー プールは、システムからランダムビットの情報を収集し、その情報を使用して真の乱数を生成します。これは SSH 認証鍵や固有の ID などの機密情報に使用できます。
始める前に
-
まだ設定していない場合は、認証を設定します。認証とは、Google Cloud サービスと API にアクセスするために ID を確認するプロセスです。ローカル開発環境からコードまたはサンプルを実行するには、次のように Compute Engine に対する認証を行います。
-
Install the Google Cloud CLI, then initialize it by running the following command:
gcloud init
- Set a default region and zone.
-
制限事項
- Virtio RNG は Windows イメージで使用できません。
- デフォルトでは、Compute Engine VM はデーモンの代わりに Virtio RNG を使用してゲスト エントロピー プールを補充します。Virtio RNG の代わりに、または Virtio RNG とともにエントロピー収集デーモンを使用する場合は、インストールする必要があります。エントロピー収集デーモンの例については、
rng-tools
のドキュメントをご覧ください。
Virtio RNG が有効かどうかを確認する
次のコマンドを実行して、VM で Virtio RNG が有効になっているかどうかを確認できます。
lsmod | grep rng
Virtio RNG を有効にしている場合、出力は次のようになります。
virtio_rng 16384 0 rng_core 16384 2 virtio_rng virtio_ring 28672 4 virtio_rng,virtio_scsi,virtio_pci,virtio_net virtio 16384 4 virtio_rng,virtio_scsi,virtio_pci,virtio_net
Virtio RNG のテスト
/dev/random
デバイスを使用して Virtio RNG をテストできます。
SSH を使用して VM に接続します。たとえば、gcloud CLI を使用して次のように接続できます。
gcloud compute ssh VM_NAME
VM_NAME
は実際の VM 名に置き換えます。rng-tools
をインストールします。CentOS
rng-tools
をインストールするには、次のコマンドを使用します。sudo yum install rng-tools
Debian
rng-tools
をインストールするには、次のコマンドを使用します。sudo apt install rng-tools
Fedora CoreOS
rng-tools
をインストールするには、次のコマンドを使用します。sudo yum install rng-tools
RHEL
rng-tools
をインストールするには、次のコマンドを使用します。sudo yum install rng-tools
SLES
rng-tools
をインストールするには、次のコマンドを使用します。sudo zypper install rng-tools
Ubuntu LTS
rng-tools
をインストールするには、次のコマンドを使用します。sudo apt install rng-tools
Ubuntu イメージによっては
Package 'rng-tools' has no installation candidate
エラーが返されます。このエラーが表示された場合は、次のコマンドを実行します。sudo apt update sudo apt install rng-tools
VM で
rngtest
コマンドを実行します。cat /dev/random | rngtest -c 1000
Virtio RNG が有効になっていない場合、コマンドは何も返しません。有効にすると、次のようなレスポンスが返されます。
rngtest 2-unofficial-mt.14.. rngtest: starting FIPS tests... rngtest: bits received from input: 20000032 rngtest: FIPS 140-2 successes: 1000 rngtest: FIPS 140-2 failures: 0 rngtest: FIPS 140-2(2001-10-10) Monobit: 0 rngtest: FIPS 140-2(2001-10-10) Poker: 0 rngtest: FIPS 140-2(2001-10-10) Runs: 0 rngtest: FIPS 140-2(2001-10-10) Long run: 0 rngtest: FIPS 140-2(2001-10-10) Continuous run: 0 rngtest: input channel speed: (min=4.801; avg=7.318; max=7.839)Mibits/s rngtest: FIPS tests speed: (min=39.005; avg=69.557; max=72.523)Mibits/s rngtest: Program run time: 2880954 microseconds
次のステップ
- Virtio RNG について学習する。
/dev/random
の詳細を学習する。- Compute Engine で利用可能なイメージの詳細を確認する。オペレーティング システムの詳細をご覧ください。