Entropia em máquinas virtuais

13

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

Existem muito mais funções de criptografia por aí que não são tão sensíveis à entropia quanto o gpg.

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

    
por dbanck 24.10.2011 / 12:39

2 respostas

7

Primeiro de tudo, deixe-me dizer que não sou de forma alguma um especialista em segurança.

Como a criação da chave gpg está usando /dev/random como gerador de números aleatórios, ela é 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 o montante disponível. Você pode verificar sua aleatoriedade disponível por cat /proc/sys/kernel/random/entropy_avail (deve estar em torno 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ê poderia aumentar a entropia por meio de aplicar chaves de entropia e / ou mudar para uma máquina não virtualizada.

Existe um artigo interessante disponível em entropia em máquinas virtuais. Unfortunatly ambos partes do artigo só estão disponíveis no cache do google agora mesmo.

A entropia tem efeitos adicionais em qualquer criptografia ssl / tls. Portanto, usar /dev/urandom ou qualquer fonte não verdadeiramente aleatória tem realmente um impacto sobre a segurança de seus aplicativos.

Em termos de quão confiável é o /dev/urandom em relação à aleatoriedade verdadeira,
 Eu não sou capaz de lhe dar uma resposta decente, desculpe.

Para mais informações sobre este tópico, você pode acessar o link e / ou ler, por exemplo. esta postagem

    
por 24.10.2011 / 14:10
4

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 reunir entropia de algum hardware real. De fato, a operação de um pedaço de HW está - na maioria dos casos - ligada a algum fenômeno físico, que está sempre sujeito a pequenas variações, aleatórias por todas as contas. Como os servidores geralmente são executados por um período muito longo sem um reset, o pool de entropia resultante eventualmente 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 muito mais frequentemente do que os servidores reais e podem nem ter tempo para coletar entropia suficiente (por isso, é bom salvar o estado de entropia atual ao encerrar e usá-lo para alimentar o pool de entropia ao reinicializar ).
  3. Embora um servidor real possa tenha alguma chance de determinar quando está lidando com um pool de entropia incorreto, a máquina virtual funcionará mais facilmente sob a impressão de que o pool de entropia é bom (porque foi coletado de HW, mas sem saber que o HW não é real), enquanto na verdade é ruim.

A melhor solução é ter a VM para simplesmente desistir e perceber 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 aleatoriedade do HW genérico (caso em que deve operar por um tempo suficiente, e deve ter um sistema operacional decente) ou de criptografia HW específica (um chip TPM, um chip VIA Padlock etc.). / p>

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

    
por 17.01.2012 / 00:09