Activer Virtio RNG


Virtio RNG est un générateur de nombres aléatoires paravirtualisé. Virtio RNG fournit des nombres aléatoires à partir d'un pool d'entropie généré par la machine hôte de votre instance de machine virtuelle (VM). Le pool d'entropie collecte des bits d'informations aléatoires du système et utilise ces informations pour générer des nombres véritablement aléatoires que vous pouvez ensuite utiliser pour des informations sensibles telles que des clés SSH ou des ID uniques.

Avant de commencer

  • Si ce n'est pas déjà fait, configurez l'authentification. L'authentification est le processus permettant de valider votre identité pour accéder aux services et aux API Google Cloud. Pour exécuter du code ou des exemples depuis un environnement de développement local, vous pouvez vous authentifier auprès de Compute Engine comme suit :
    1. Installez Google Cloud CLI, puis initialisez-la en exécutant la commande suivante :

      gcloud init
    2. Définissez une région et une zone par défaut.

Limites

  • Virtio RNG n'est pas disponible pour les images Windows.
  • Par défaut, les VM Compute Engine utilisent Virtio RNG au lieu d'un daemon pour remplir le pool d'entropie invité. Si vous préférez utiliser un daemon de collecte d'entropie au lieu d'utiliser Virtio RNG, vous devez en installer un. Pour obtenir un exemple de daemon de collecte d'entropie, consultez la documentation de rng-tools.

Vérifier que Virtio RNG est activé

Vous pouvez vérifier si Virtio RNG est activé sur votre VM en exécutant la commande suivante :

lsmod | grep rng

Lorsque Virtio RNG est activé, le résultat ressemble à ce qui suit :

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

Tester Virtio RNG

Vous pouvez tester Virtio RNG en utilisant l'appareil /dev/random.

  1. Connectez-vous à la VM à l'aide de SSH. Par exemple, vous pouvez utiliser la CLI gcloud pour vous connecter :

    gcloud compute ssh VM_NAME
    

    Remplacez VM_NAME par le nom de votre VM.

  2. Installez rng-tools :

    CentOS

    Exécutez la commande suivante pour installer rng-tools :

    sudo yum install rng-tools

    Debian

    Exécutez la commande suivante pour installer rng-tools :

    sudo apt install rng-tools

    Fedora CoreOS

    Exécutez la commande suivante pour installer rng-tools :

    sudo yum install rng-tools

    RHEL

    Exécutez la commande suivante pour installer rng-tools :

    sudo yum install rng-tools

    SLES

    Exécutez la commande suivante pour installer rng-tools :

    sudo zypper install rng-tools

    Ubuntu LTS

    Exécutez la commande suivante pour installer rng-tools :

    sudo apt install rng-tools

    Certaines images Ubuntu renvoient une erreur Package 'rng-tools' has no installation candidate. Si vous recevez cette erreur, exécutez les commandes suivantes :

    sudo apt update
    sudo apt install rng-tools
    
  3. Sur la VM, exécutez la commande rngtest :

    cat /dev/random | rngtest -c 1000
    

Si Virtio RNG n'est pas activé, la commande ne renvoie rien. Si Virtio RNG est activé, vous recevez une réponse semblable à celle-ci :

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

Étape suivante