Entropia em máquinas virtuais


12

Como você deve saber, não é tão fácil gerar entropia em uma máquina virtual quanto em um PC "normal". A geração de uma chave gpg em uma máquina virtual pode demorar um pouco, mesmo com as ferramentas corretas.

Existem muito mais funções criptográficas por aí que não são tão conscientes da entropia quanto o gpg.

Então, pode-se dizer que a criptografia é menos segura em uma máquina virtual?


1
Números aleatórios de uma máquina "real" não são realmente aleatórios para começar (a menos que você tenha um gerador de números aleatórios de hardware, o que a maioria não possui). Eles são todos pseudo-aleatórios para começar, e a entropia é gerada da mesma maneira. Se for lento em uma VM, é a plataforma de virtualização que está diminuindo a velocidade (atrevo-me a supor que você não está usando um hipervisor tipo 1).
Chris S

Respostas:


6

Antes de tudo, deixe-me dizer que não sou especialista em segurança.

Como a criação da chave gpg é usada /dev/randomcomo gerador de números aleatórios, é tão segura em uma máquina virtual quanto em uma máquina real.
/dev/randomé um dispositivo de bloqueio e deixará de fornecer qualquer aleatoriedade além da quantidade disponível. Você pode verificar sua aleatoriedade disponível em
cat /proc/sys/kernel/random/entropy_avail(deve ser por volta de 2000 )

Em uma máquina virtual, a aleatoriedade disponível é realmente menor do que em uma máquina real, devido à falta de acesso ao hardware.
Você pode aumentar a entropia aplicando chaves de entropia e / ou alternando para uma máquina não virtualizada.

Há um bom artigo disponível sobre entropia em máquinas virtuais. Infelizmente, ambas as partes do artigo estão disponíveis apenas no cache do Google no momento.

A entropia tem efeitos adicionais em qualquer criptografia ssl / tls. Portanto, o uso de /dev/urandomqualquer fonte não-aleatória realmente afeta a segurança de seus aplicativos.

Em termos de quão confiável é /dev/urandomcomparada à verdadeira aleatoriedade;
não posso lhe dar uma resposta decente, desculpe.

Para obter mais informações sobre esse tópico, acesse http://security.stackexchange.com e / ou leia, por exemplo. esta postagem


1
/dev/urandomestá usando um PRNG criptograficamente seguro (semeado pelo mesmo pool que /dev/random), portanto, não deverá haver problemas desde que haja entropia inicial suficiente nesse pool. Pode haver um ponto em propagá-lo do pool de entropia da máquina pai.
Paŭlo Ebermann 24/10/11

3

Sim, na maioria das circunstâncias, a criptografia é menos segura em uma máquina virtual do que em um servidor "real".

O último pode pelo menos coletar entropia de algum hardware real. De fato, a operação de um pedaço de HW está - na maioria dos casos - vinculada a algum fenômeno físico, que está sempre sujeito a pequenas variações, aleatórias em todas as contas. Como os servidores geralmente são executados por um período muito longo sem uma redefinição, o pool de entropia resultante acabará por ter qualidade suficiente.

Máquinas virtuais sofrem de três problemas.

  1. O hardware que eles vêem não é real e, portanto, dificilmente é influenciado por qualquer fenômeno físico. Eles serão capazes de coletar entropia de maneira muito mais lenta.
  2. As VMs são redefinidas com muito mais frequência do que os servidores reais e podem nem ter tempo para coletar entropia suficiente (é por isso que é bom salvar o estado atual da entropia ao desligar e usá-lo para alimentar o pool de entropia ao reiniciar).
  3. Embora um servidor real possa ter alguma chance de determinar quando está lidando com um pool de entropia ruim, a máquina virtual operará mais facilmente com a impressão de que o pool de entropia é bom (porque foi coletado do HW, mas sem saber que o HW é não é real), embora seja realmente ruim.

A melhor solução é ter a VM simplesmente desistindo e percebendo que o HW que ela vê é uma fonte ruim de entropia. Em seguida, organize um serviço de rede local para distribuir entropia de alta qualidade (consulte Entropy Broker ). O "servidor de entropia" pode extrair a aleatoriedade do HW genérico (nesse caso, ele deve operar por um tempo suficiente e deve ter um sistema operacional decente) ou de um HW criptográfico específico (um chip TPM, um chip VIA Padlock, etc.).

Uma VM que usa esse serviço pode até ser mais segura (criptograficamente) do que um servidor "real" que acabou de inicializar.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.