ASA-2019-00118 – OpenSSL: ChaCha20-Poly1305 com nonces longo


For the English version of this alert, click here.

Allele Security Alert

ASA-2019-00118

Identificador(es)

ASA-2019-00118, CVE-2019-1543

Título

ChaCha20-Poly1305 com nonces longo

Fabricante(s)

The OpenSSL Project

Produto(s)

OpenSSL

Versão(ões) afetada(s)

OpenSSL versões 1.1.1 e 1.1.0

Versão(ões) corrigida(s)

Versões do OpenSSL com o seguinte commit aplicado:

Prevent over long nonces in ChaCha20-Poly1305
https://github.com/openssl/openssl/commit/f426625b6a

Prova de conceito

Desconhecido

Descrição

O ChaCha20-Poly1305 é uma cifra AEAD e requer uma entrada nonce única para cada operação de criptografia. A RFC 7539 especifica que o valor do nonce (IV) deve ser 96 bits (12 bytes). O OpenSSL permite um comprimento nonce variável e preenche o nonce com 0 bytes se for menor que 12 bytes. No entanto, também permite incorretamente que um nonce seja configurado em até 16 bytes. Neste caso, apenas os últimos 12 bytes são significativos e quaisquer bytes iniciais adicionais são ignorados.

É um requisito de usar essa cifra que valores nonce são únicos. As mensagens criptografadas usando um valor nonce reutilizado são suscetíveis a sérios ataques de confidencialidade e integridade. Se um aplicativo alterar o comprimento de nonce padrão para maior que 12 bytes e, em seguida, fizer uma alteração nos bytes iniciais do nonce esperando que o novo valor seja um novo nonce exclusivo, esse aplicativo poderá criptografar mensagens inadvertidamente com um nonce reutilizado.

Além disso, os bytes ignorados em um longo nonce não são cobertos pela garantia de integridade dessa codificação. Qualquer aplicativo que dependa da integridade desses bytes principais ignorados de um longo nonce pode ser afetado ainda mais.

Qualquer uso interno do OpenSSL dessa codificação, inclusive em SSL/TLS, é seguro, pois nenhum uso desse tipo estabelece um valor nonce muito longo. No entanto, os aplicativos de usuário que usam essa codificação diretamente e definem um comprimento de nonce não padrão para ter mais de 12 bytes podem estar vulneráveis.

Technical details

Desconhecido

Créditos

Joran Dirk Greef (Ronomon)

Referência(s)

ChaCha20-Poly1305 with long nonces (CVE-2019-1543)
https://www.openssl.org/news/secadv/20190306.txt

Prevent over long nonces in ChaCha20-Poly1305
https://github.com/openssl/openssl/commit/f426625b6a

chacha20-poly1305: fails to detect tampering, where IV > 12 and IV <= 16 (CHACHA_CTR_SIZE) #8345
https://github.com/openssl/openssl/issues/8345

CVE-2019-1543
https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-1543

CVE-2019-1543
https://nvd.nist.gov/vuln/detail/CVE-2019-1543

Se encontrou algum erro neste alerta ou deseja uma análise compreensiva, entre em contato.

Última modificação: 6 março 2019

Não somos responsáveis por qualquer perda de dados, corrupção de dispositivos ou qualquer outro tipo de problema devido ao uso de qualquer informação mencionada em nossos alertas de segurança.