Vulnerabilidade no AMD SEV que permite a determinação de chaves de criptografia

Desenvolvedores da equipe do Google Cloud identificado vulnerabilidade (CVE-2019-9836) na implementação da tecnologia AMD SEV (Secure Encrypted Virtualization), que permite o comprometimento de dados protegidos por esta tecnologia. O AMD SEV no nível do hardware fornece criptografia transparente da memória da máquina virtual, na qual apenas o sistema convidado atual tem acesso aos dados descriptografados, e outras máquinas virtuais e o hipervisor recebem um conjunto criptografado de dados ao tentar acessar essa memória.

O problema identificado permite restaurar completamente o conteúdo da chave PDH privada, que é processada no nível de um processador PSP protegido separado (AMD Security Processor), inacessível ao sistema operacional principal.
Tendo a chave PDH, o invasor pode então recuperar a chave de sessão e a sequência secreta especificada ao criar a máquina virtual e obter acesso aos dados criptografados.

A vulnerabilidade é causada por falhas na implementação da criptografia de curva elíptica (ECC), que permite ataque para restaurar os parâmetros da curva. Durante a execução de um comando de inicialização de máquina virtual protegida, um invasor pode enviar parâmetros de curva que não atendem aos parâmetros recomendados pelo NIST, resultando no uso de valores de pontos de baixa ordem em operações de multiplicação com dados de chave privada.

Segurança do protocolo ECDH diretamente depende de de ordem o ponto inicial gerado da curva, cujo logaritmo discreto é uma tarefa muito difícil. Durante uma das etapas de inicialização do ambiente AMD SEV, os cálculos de chave privada utilizam parâmetros recebidos do usuário. Essencialmente, a operação consiste na multiplicação de dois pontos, um dos quais corresponde à chave privada. Se o segundo ponto se referir a números primos de ordem inferior, o invasor poderá determinar os parâmetros do primeiro ponto (bits do módulo usados ​​na operação do módulo) pesquisando todos os valores possíveis. Para determinar a chave privada, os fragmentos de números primos selecionados podem então ser reunidos usando Teorema do resto chinês.

O problema afeta plataformas de servidores AMD EPYC usando firmware SEV até a versão 0.17 build 11. A AMD já publicado Atualização de firmware que adiciona bloqueio de pontos que não atendem à curva NIST. Ao mesmo tempo, os certificados gerados anteriormente para chaves PDH permanecem válidos, o que permite que um invasor realize um ataque para migrar máquinas virtuais de ambientes protegidos da vulnerabilidade para ambientes suscetíveis ao problema. Também é mencionada a possibilidade de realizar um ataque para reverter a versão do firmware para uma versão antiga vulnerável, mas essa possibilidade ainda não foi confirmada.

Fonte: opennet.ru

Adicionar um comentário