Como ativar o RNG


O Virtio RNG é um gerador de números aleatórios paravirtualizados. O Virtio RNG fornece números aleatórios de um pool de entropia gerado pela máquina host da instância de máquina virtual (VM, na sigla em inglês). O pool de entropia coleta bits aleatórios de informações do sistema e as usa para gerar números realmente aleatórios que podem ser usados para informações confidenciais, como chaves SSH ou IDs exclusivos.

Antes de começar

  • Configure a autenticação, caso ainda não tenha feito isso. A autenticação é o processo de verificação da sua identidade para acesso a serviços e APIs do Google Cloud. Para executar códigos ou amostras de um ambiente de desenvolvimento local, autentique-se no Compute Engine da seguinte maneira.
    1. Instale a Google Cloud CLI e inicialize-a executando o seguinte comando:

      gcloud init
    2. Defina uma região e uma zona padrão.

Limitações

  • O Virtio RNG não está disponível para imagens do Windows.
  • Por padrão, as VMs do Compute Engine usam o Virtio RNG em vez de um daemon para preencher o pool de entropia convidado. Se você preferir usar um daemon de coleta de entropia em vez de ou juntamente do Virtio RNG, instale um. Para ver um exemplo de daemon de coleta de entropia, consulte a documentação do rng-tools.

Como verificar se o Virtio RNG está ativado

Verifique se o Virtio RNG está ativado na VM executando o seguinte comando:

lsmod | grep rng

Quando o Virtio RNG estiver ativado, a saída será semelhante a esta:

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

Como testar o RNG

É possível testar o Virtio RNG usando o dispositivo /dev/random.

  1. Conecte-se à VM usando SSH. Por exemplo, é possível usar a CLI gcloud para se conectar:

    gcloud compute ssh VM_NAME
    

    Substitua VM_NAME pelo nome da VM.

  2. Instale rng-tools:

    CentOS

    Use o seguinte comando para instalar rng-tools:

    sudo yum install rng-tools

    Debian

    Use o seguinte comando para instalar rng-tools:

    sudo apt install rng-tools

    Fedora CoreOS

    Use o seguinte comando para instalar rng-tools:

    sudo yum install rng-tools

    RHEL

    Use o seguinte comando para instalar rng-tools:

    sudo yum install rng-tools

    SLES

    Use o seguinte comando para instalar rng-tools:

    sudo zypper install rng-tools

    Ubuntu LTS

    Use o seguinte comando para instalar rng-tools:

    sudo apt install rng-tools

    Algumas imagens do Ubuntu retornam um erro Package 'rng-tools' has no installation candidate. Se você receber esse 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 retornará nada. Se estiver ativado, você receberá uma resposta semelhante a esta:

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

A seguir