検索

16.6. 乱数ジェネレーターデバイス

download PDF
乱数ジェネレーターは、オペレーティングシステムのセキュリティーにとって非常に重要です。仮想オペレーティングシステムのセキュリティーを保護するために、Red Hat Enterprise Linux 7 には、要求に応じて新しいエントロピーをゲストに提供できる仮想ハードウェア乱数ジェネレーターデバイスである virtio-rng が同梱されています。
ホスト物理マシンでは、ハードウェア RNG インターフェイスにより、/dev/hwrng に chardev が作成されます。これは開いてから読み込み、ホスト物理マシンからエントロピーを取得できます。rngd デーモンと連携すると、ホストの物理マシンのエントロピーは、ランダム性の主要なソースであるゲスト仮想マシンの/dev/random にルーティングできます。
乱数ジェネレーターの使用は、キーボード、マウス、その他の入力などのデバイスがゲスト仮想マシンで十分なエントロピーを生成するのに十分でない場合に特に役立ちます。仮想乱数ジェネレーターデバイスを使用すると、ホストの物理マシンがエントロピーを通過してゲストの仮想マシンのオペレーティングシステムに到達できます。 この手順は、コマンドラインまたは virt-manager インターフェイスのいずれかを使用して実行できます。手順は、以下を参照してください。virtio-rng の詳細は、Red Hat Enterprise Linux Virtual Machines: Access to Random Numbers Made Easy を参照してください。

手順16.11 Virtual Machine Manager を使用した virtio-rng の実装

  1. ゲスト仮想マシンをシャットダウンします。
  2. ゲスト仮想マシンを選択し、Edit メニューからVirtual Machine Details を選択して、指定したゲスト仮想マシンの Details ウィンドウを開きます。
  3. Add Hardware ボタンをクリックします。
  4. Add New Virtual Hardware ウィンドウで RNG を選択し、Random Number Generator ウィンドウを開きます。

    図16.20 Random Number Generator ウィンドウ

    Random Number Generator ウィンドウ
    目的のパラメーターを入力し、完了したら Finish を押します。パラメーターは、virtio-rng 要素 で説明されています。

手順16.12 コマンドラインツールを使用した virtio-rng の実装

  1. ゲスト仮想マシンをシャットダウンします。
  2. virsh edit domain-name コマンドを使用して、目的のゲスト仮想マシンの XML ファイルを開きます。
  3. <devices> 要素を編集して、以下の内容を追加します。

    図16.21 乱数ジェネレーターデバイス

    
      ...
      <devices>
        <rng model='virtio'>
          <rate period='2000' bytes='1234'/>
          <backend model='random'>/dev/random</backend>
          <!-- OR -->
          <backend model='egd' type='udp'>
            <source mode='bind' service='1234'/>
            <source mode='connect' host='1.2.3.4' service='1234'/>
          </backend>
        </rng>
      </devices>
      ...
    乱数ジェネレーターデバイスでは、以下の XML 属性および要素が使用できます。

    virtio-rng 要素

    • <model> - 必要な model 属性は、提供される RNG デバイスタイプを指定します。
    • <backend model> - <backend> 要素は、ゲストで使用されるエントロピーのソースを指定します。ソースモデルは、model属性を使用して設定されます。対応しているソースモデルには、'random' および 'egd' があります。
      • <backend model='random'> - この <backend> タイプでは、ノンブロッキングキャラクターデバイスが入力として想定されます。このようなデバイスの例は、/dev/random および /dev/urandom です。ファイルネームは、<backend> 要素のコンテンツとして指定されます。ファイル名を指定しないと、ハイパーバイザーのデフォルトが使用されます。
      • <backend model='egd'> - このバックエンドは、EGD プロトコルを使用して送信元に接続します。ソースはキャラクターデバイスとして指定されます。詳細は、キャラクターデバイスホストの物理マシンインターフェイスを参照してください。
Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.