Weak Message Authentication Code (MAC) Algorithms Supported
Algoritmos de Código de Autenticación de Mensajes (MAC) débiles admitidos
Descripción
Esta vulnerabilidad indica que el servidor admite uno o más algoritmos de Código de Autenticación de Mensajes (MAC) débiles o en desuso, como MD5 o SHA1. Estos algoritmos tienen vulnerabilidades de seguridad conocidas y se consideran inseguros para el uso moderno.
Los algoritmos MAC débiles pueden incluir:
- MD5: Vulnerable a ataques de colisión.
- SHA1: Vulnerable a ataques de colisión, el ataque de cumpleaños (Birthday Attack), y más.
- MD5-MAC: Basado en el algoritmo hash MD5, que es vulnerable a ataques de colisión.
- SHA-1-MAC: Basado en el algoritmo hash SHA-1, que tiene vulnerabilidades conocidas, incluidos los ataques de colisión.
- HMAC-MD5: Una construcción HMAC que utiliza MD5, heredando sus vulnerabilidades.
- HMAC-SHA1: Una construcción HMAC que utiliza SHA-1, que también se ha demostrado que es débil debido a ataques de colisión.
- RC4-MAC: Basado en el cifrado de flujo RC4, que se considera inseguro por varias razones, incluidos los sesgos en su salida.
- CBC-MAC: El Cipher Block Chaining MAC puede ser vulnerable si no se usa con el relleno (padding) adecuado o si el cifrado de bloques subyacente es débil.
- CMAC con cifrados de bloque débiles: Si bien CMAC (Cipher-based Message Authentication Code) es seguro cuando usa cifrados de bloque fuertes como AES, usarlo con cifrados débiles (como DES) puede generar vulnerabilidades.
- Poly1305 con longitudes de clave débiles: Si bien Poly1305 es generalmente seguro, el uso de tamaños de clave pequeños o débiles puede comprometer su seguridad.
- GMAC (Galois Message Authentication Code): Si bien generalmente es seguro cuando se usa con el modo Galois/Counter Mode (GCM), el uso indebido o la implementación incorrecta pueden generar vulnerabilidades.
- KMAC: Aunque se basa en SHA-3, su uso con longitudes de clave insuficientes puede hacerlo inseguro.
Estos algoritmos tienen varias debilidades que los atacantes pueden explotar, lo que podría conducir a:
- Ataques de colisión: Encontrar dos entradas diferentes que produzcan la misma salida hash. Esto socava la integridad de la función hash.
- Ataques de preimagen: Dado un valor hash, encontrar una entrada que produzca ese hash. Esto rompe la propiedad unidireccional de las funciones hash.
- Ataques de extensión de longitud: Capacidad para calcular
hash(mensaje1 || mensaje2)dado solohash(mensaje1)y la longitud demensaje1, sin conocermensaje1en sí. - Falsificación de códigos de autenticación de mensajes: Creación de MAC válidos para mensajes sin conocer la clave secreta, a menudo explotando debilidades en el algoritmo subyacente.
Example Scenario: Un atacante podría explotar debilidades en SHA1 para crear dos mensajes diferentes que produzcan el mismo MAC. Esto podría permitir que el atacante falsifique mensajes autenticados, lo que podría provocar acciones no autorizadas o manipulación de datos.
Admitir estos algoritmos MAC débiles viola varios estándares de seguridad y mejores prácticas, lo que podría afectar el cumplimiento de regulaciones como PCI DSS.
Recomendación
Para mitigar los riesgos asociados con algoritmos MAC débiles, considere las siguientes recomendaciones:
- Deshabilitar algoritmos MAC débiles:
- Deshabilite el soporte para algoritmos MAC débiles como MD5 y SHA1.
-
Habilite solo algoritmos MAC fuertes como SHA256, SHA384 o SHA512.
-
Configurar conjuntos de cifrado (Cipher Suites) fuertes:
- Use conjuntos de cifrado que incorporen algoritmos MAC fuertes.
-
Deshabilite los conjuntos de cifrado que usan algoritmos MAC débiles.
-
Implementar una configuración TLS segura:
- Siga las mejores prácticas de la industria para la configuración de TLS, como las que proporciona el generador de configuración SSL de Mozilla o el TLS Cheat Sheet de OWASP.
-
Pruebe regularmente su configuración TLS utilizando herramientas como la prueba de servidor SSL de SSL Labs.
-
Usar HTTP Strict Transport Security (HSTS):
-
Implemente HSTS para asegurarse de que los clientes siempre se conecten a su servidor usando HTTPS, evitando ataques de degradación (downgrade attacks).
-
Considerar TLS 1.3:
- Si es posible, habilite el soporte para TLS 1.3, que usa algoritmos MAC más seguros de forma predeterminada.
Ejemplos de configuraciones para servidores web comunes:
SSLProtocol all -SSLv3 -TLSv1 -TLSv1.1
SSLCipherSuite ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384
SSLHonorCipherOrder off
SSLSessionTickets off
ssl_protocols TLSv1.2 TLSv1.3;
ssl_ciphers ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-RSA-CHACHA20-POLY1305:DHE-RSA-AES128-GCM-SHA256:DHE-RSA-AES256-GCM-SHA384;
ssl_prefer_server_ciphers off;
New-Item 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -Force
New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'Enabled' -value '1' -PropertyType 'DWord' -Force
New-ItemProperty -path 'HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Server' -name 'DisabledByDefault' -value 0 -PropertyType 'DWord' -Force
Enlaces
Estándares
- SOC2_CONTROLS:
- CC_6_7
- CC_7_1
- CCPA:
- CCPA_1798_150
- GDPR:
- ART_32
- PCI_STANDARDS:
- REQ_2_3
- REQ_4_1
- REQ_6_5
- HIPAA_CONTROLS:
- SECURITY252
- SECURITY212
- SECURITY213
- SECURITY255