Ativar Virtio RNG

O Virtio RNG é um gerador de números aleatórios paravirtualizado. O Virtio RNG fornece números aleatórios a partir de um conjunto de entropia gerado pela máquina anfitriã da sua instância de máquina virtual (VM). O conjunto de entropia recolhe bits aleatórios de informações do sistema e usa essas informações para gerar números verdadeiramente aleatórios, que pode usar para informações confidenciais, como chaves SSH ou IDs únicos.

Antes de começar

  • Se ainda não o tiver feito, configure a autenticação. A autenticação valida a sua identidade para aceder a Google Cloud serviços e APIs. Para executar código ou exemplos a partir de um ambiente de desenvolvimento local, pode autenticar-se no Compute Engine selecionando uma das seguintes opções:
    1. Instale a CLI Google Cloud. Após a instalação, inicialize a CLI gcloud executando o seguinte comando:

      gcloud init

      Se estiver a usar um fornecedor de identidade (IdP) externo, primeiro tem de iniciar sessão na CLI gcloud com a sua identidade federada.

    2. Set a default region and zone.

Limitações

  • O Virtio RNG não está disponível para imagens do Windows.
  • Por predefinição, as VMs do Compute Engine usam o Virtio RNG em vez de um daemon para repor o conjunto de entropia do convidado. Se preferir usar um daemon de recolha de entropia em vez de ou juntamente com o Virtio RNG, tem de instalar um. Para ver um exemplo de um daemon de recolha de entropia, consulte a documentação de rng-tools.

A verificar se o Virtio RNG está ativado

Pode verificar se o Virtio RNG está ativado na sua VM executando o seguinte comando:

lsmod | grep rng

Quando o Virtio RNG está ativado, o resultado é semelhante ao seguinte:

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

Testes de Virtio RNG

Pode testar o Virtio RNG através do dispositivo /dev/random.

  1. Estabeleça ligação à VM através do SSH. Por exemplo, pode usar a CLI gcloud para estabelecer ligação:

    gcloud compute ssh VM_NAME
    

    Substitua VM_NAME pelo nome da sua VM.

  2. Instale rng-tools:

    CentOS

    Use o seguinte comando para instalar o rng-tools:

    sudo yum install rng-tools

    Debian

    Use o seguinte comando para instalar o rng-tools:

    sudo apt install rng-tools

    Fedora CoreOS

    Use o seguinte comando para instalar o rng-tools:

    sudo yum install rng-tools

    RHEL

    Use o seguinte comando para instalar o rng-tools:

    sudo yum install rng-tools

    SLES

    Use o seguinte comando para instalar o rng-tools:

    sudo zypper install rng-tools

    Ubuntu LTS

    Use o seguinte comando para instalar o rng-tools:

    sudo apt install rng-tools

    Algumas imagens do Ubuntu devolvem um erro Package 'rng-tools' has no installation candidate. Se receber este erro, execute os seguintes comandos:

    sudo apt update
    sudo apt install rng-tools
    
  3. Na VM, execute o comando rngtest:

    cat /dev/random | rngtest -c 1000
    

Se o Virtio RNG não estiver ativado, o comando não devolve nada. Se estiver ativada, recebe uma resposta semelhante à seguinte:

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

O que se segue?