Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

SWEET32: Ataques do aniversário contra cifras TLS com tamanho de bloco de 64 bits (CVE-2016-2183)

Atualizado -

Visão Geral

A Segurança de Produto da Red Hat ficou ciente de um problema com codificação de bloco nos protocolos SSL/TLS que em algumas configurações podem permitir um ataque de colisão. Este problema foi classificado como Moderado e recebeu o CVE-2016-2183. Este problema não requer atualizações ou ações dos usuários dos produtos da Red Hat no momento. Por favor, consulte a seção abaixo Resolução para mais detalhes.

Histórico

Cifras de codificação de bloco herdadas que possuem tamanho de bloco de 64 bits são vulneráveis a um ataque de colisão quando utilizado em modo CBC. Todas as versões do protocolo SSL/TLS que suportam conjuntos de codificação que usam 3DES como a cifra de encriptação simétrica são afetadas ( por exemplo ECDHE-RSA-DES-CBC3-SHA). Nas versões do OpenSSL lançadas com o Red Hat Enterprise Linux 6 e 7, os conjuntos de codificação baseados em DES são listados abaixo dos que suportam AES-128 (com conjuntos de codificação PFS) e AES-256. Isto significa que a codificação DES será escolhida somente quando o servidor desabilitar explicitamente AES-128 e AES-256. Na versão do OpenSSL lançadas com o Red Hat Enterprise Linux 5, conjuntos de codificação baseados DES são listados abaixo de AES-256, mas acima de AES-128. Nesses casos, DES será o escolhido somente quando o servidor desabilitar explicitamente o conjunto de codificação baseado em AES-256 .

A segurança de uma codificação de bloco depende do tamanho da chave (k). Assim, o melhor ataque contra uma codificação de bloco é o ataque de busca exaustiva da chave que tem uma complexidade de 2k. Porém, quando codificações de bloco são usadas para criptografar grandes quantidades de dados usando modos de encriptação como CBC, o tamanho do bloco (n) também desempenha seu papel na determinação da segurança.

Quando o modo CBC de encriptação é utilizado, há ataque de aniversário simples no qual depois que os blocos de dados 2n/2 forem criptografados com a mesma chave, é prevista uma colisão entre duas codificações de blocos. Uma colisão na saída significaria que a entrada é igual. Estes dados, combinados com várias condições (discutidas abaixo), podem ser usados para extrair o texto simples dos dados criptografados.

Praticidade do ataque

  1. Primeiramente, DES/3DES é a única codificação usada em SSL/TLS que possui um tamanho de bloco de 64 bits. Conforme discutido na síntese, conjuntos de codificação contendo 3DES são priorizados abaixo de outros conjuntos de codificação (por exemplo AES-128).

  2. Para executar o ataque em codificação de bloco de 64 bit, ao menos 32GB de dados precisam ser capturados na conexão à cabo. No caso de SSL/TLS , isto significaria de uma sessão SSL/TLS única. (Para todas as novas sessões, SSL/TLS renegocia as chaves simétricas). Portanto, conexões https de longa duração podem estar vulneráveis.

  3. Em muitos contextos, recuperar somente o xor entre dois blocos textos simples não é suficiente para um ataque de impacto real. Porém, um ataque pode ser executado quando as seguintes condições existirem:

    • Um segredo fixo é enviado repetidamente;

    • Uma fração do texto simples é conhecida.

  4. O ataque PoC (prova de conceito) mencionado no trabalho de pesquisa, presume que alguns tokens de autenticação são passados entre o servidor e o cliente em todas as suas comunicações (o token pode ser um cookie de credenciais usado em autenticação básica). O invasor executa então um JavaScript malicioso na origem do website que está sendo atacado. Um tipo de ataque BEAST pode então ser usado para extrair o cookie.

Mitigações

  1. Configurações SSL/TLS devem preferir AES a DES. As versões de OpenSSL lançadas com o Red Hat Enterprise Linux 6 e 7 já estão configuradas para isso.
  2. Na versão do OpenSSL lançada com o Red Hat Enterprise Linux 5, 3DES está listado abaixo da codificação AES-256 e acima da codificação AES-128, portanto, conjuntos de codificação baseados em AES-256 não devem ser desabilitados no servidor.
  3. Servidores usando OpenSSL não devem desabilitar conjuntos de codificação AES-128 e AES-256. As versões de Apache lançadas com o Red Hat Enterprise Linux usam a cadeia de caracteres de codificação padrão, na qual AES tem preferência em comparação aos conjuntos de codificação baseados em DES/3DES.

Resolução

  1. Esta falha está relacionada ao projeto de codificação DES/3DES e não é uma falha de implementação.
  2. Esta falha não afeta diretamente quaisquer bibliotecas de criptografia (OpenSSL, NSS e GnuTLS) no Red Hat Enterprise Linux 5, 6 e 7, pois há vários conjuntos de codificação mais fortes que estão colocados mais acima de 3DES nas configurações da lista de cifra padrão.
  3. Para Red Hat Enterprise Linux 5, não desabilite conjuntos de codificação baseados em AES-256-no servidor. Para Red Hat Enterprise Linux 6 e 7, não desabilite conjuntos de codificação baseados em AES-128 ou AES-256 no servidor.

Correções de segurança upstream :

OpenSSL:

OpenSSL classificou isto como questão de segurança de gravidade 'baixa'. Eles mudaram os conjuntos de codificação 3DES da categoria ALTA para MÉDIA na ramificação 1.0.2, e irão desabilitá-los por padrão no próximo lançamento.

NSS:

O Mozilla está implementando limite de dados para todos conjuntos de codificação.

Problemas relacionados

Upstream OpenVPN também esta susceptível ao ataque Sweet32 e está sendo rastreado pelo CVE-2016-6329. A implementação do OpenVPN da Red Hat não está afetada por esta falha.

Referências

https://access.redhat.com/security/cve/CVE-2016-2183
https://sweet32.info/