啟用 Virtio RNG

Virtio RNG 是半虛擬化的隨機號碼產生器。Virtio RNG 會從虛擬機器 (VM) 執行個體主機產生的熵集區提供隨機號碼。熵池會從系統收集隨機資訊位元,並使用這些資訊產生真正隨機的數字,可用於 SSH 金鑰或專屬 ID 等機密資訊。

事前準備

  • 如果尚未設定驗證,請先完成設定。 「驗證」是指驗證身分的程序,確認您有權存取 Trusted Cloud by S3NS 服務和 API。如要從本機開發環境執行程式碼或範例,請選取下列任一選項,向 Compute Engine 進行驗證:
    1. 安裝 Google Cloud CLI,然後 使用同盟身分登入 gcloud CLI。 登入後,執行下列指令初始化 Google Cloud CLI:

      gcloud init
    2. Set a default region and zone.

限制

  • Windows 映像檔不支援 Virtio RNG。
  • 根據預設,Compute Engine VM 會使用 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。

  1. 使用 SSH 連線至 VM。舉例來說,您可以使用 gcloud CLI 連線:

    gcloud compute ssh VM_NAME
    

    將您的 VM 名稱替換為 VM_NAME

  2. 安裝 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
    
  3. 在 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

後續步驟