Virtio RNG 是半虛擬化的隨機號碼產生器。Virtio RNG 會從虛擬機器 (VM) 執行個體主體機器產生的熵池提供隨機號碼。熵池會從系統收集隨機資訊位元,並使用這些資訊產生真正的隨機號碼,可用於安全殼層金鑰或專屬 ID 等私密資訊。
事前準備
-
如果尚未設定驗證,請先完成設定。
驗證程序會確認您的身分,以便授予 Google Cloud 服務和 API 的存取權。如要從本機開發環境執行程式碼或範例,可以選取下列其中一個選項,向 Compute Engine 進行驗證:
-
安裝 Google Cloud CLI。 完成後,執行下列指令來初始化 Google Cloud CLI:
gcloud init如果您使用外部識別資訊提供者 (IdP),請先 使用聯合身分登入 gcloud CLI。
- 設定預設區域和可用區。
-
限制
- Windows 映像檔不支援 Virtio RNG。
- 根據預設,Compute Engine VM 會使用 Virtio RNG,而非精靈,重新填入訪客熵池。如要使用熵收集精靈,而非 Virtio RNG,或同時使用兩者,請務必安裝熵收集精靈。如需熵收集 Daemon 的範例,請參閱
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 提供的映像檔