El análisis de certificados SSL/TLS es crucial para asegurar que las comunicaciones en línea sean seguras y privadas. SSL (Secure Sockets Layer) y su sucesor TLS (Transport Layer Security) son protocolos que cifran los datos transmitidos entre un cliente (como un navegador web) y un servidor, protegiendo la información contra interceptaciones y ataques man-in-the-middle (MITM).
Importancia del Análisis de Certificados SSL/TLS
Verificación de la Validez del Certificado:
Asegura que el certificado no ha expirado y es emitido por una autoridad de certificación (CA) confiable.
Comprobación de la Configuración:
Evalúa la configuración del servidor para asegurar que utiliza versiones seguras de SSL/TLS y que los cifrados utilizados son robustos.
Detección de Vulnerabilidades:
Identifica posibles vulnerabilidades como soporte para protocolos obsoletos (SSLv2, SSLv3) o cifrados débiles (RC4).
Cumplimiento Normativo:
Ayuda a garantizar que las prácticas de cifrado cumplan con estándares y regulaciones de seguridad.
Prevención de Ataques:
Detecta configuraciones que podrían ser explotadas en ataques como POODLE, Heartbleed, y BEAST.
Herramienta: testssl.sh
testssl.sh es una herramienta de línea de comandos de código abierto que permite realizar pruebas de seguridad en servidores SSL/TLS. Proporciona una evaluación completa de la configuración de seguridad de un servidor, incluyendo la validación del certificado, la compatibilidad de cifrados, y la detección de vulnerabilidades conocidas.
Comando de testssl.sh y Ejemplo de Salida
Para realizar un análisis de un servidor utilizando testssl.sh, se utiliza el siguiente comando:
Comando
Explicación del Comando
./testssl.sh: Ejecuta el script testssl.sh.
--wide: Muestra un reporte detallado y extendido.
--tls: Limita las pruebas a las versiones de TLS, excluyendo SSL.
192.168.1.50: La dirección IP del servidor objetivo.
Ejemplo de Salida
Interpretación de la Salida
La salida del comando testssl.sh proporciona una evaluación detallada del estado de seguridad SSL/TLS del dominio spartan-cybersec.com. Aquí se interpreta la información más relevante:
Información General
Versiones Protocolares:
SSLv2 y SSLv3: No se ofrecen, lo cual es positivo ya que estos protocolos están obsoletos y son inseguros.
TLS 1.0: No se ofrece, lo cual es bueno ya que también está desaconsejado.
TLS 1.1: Se ofrece, pero es un protocolo obsoleto y debería ser deshabilitado.
TLS 1.2 y TLS 1.3: Se ofrecen y son las versiones recomendadas para uso seguro.
Cifrado:
Cifrado Nulo, Anónimo y Exportación: No se ofrecen, lo cual es positivo.
Cifrado Bajo y CBC Obsoleto: Ofrecido, pero debería ser deshabilitado en favor de cifrados más modernos.
Cifrado Fuerte y Forward Secrecy: Ofrecido, lo cual es positivo.
Preferencias de Cifrado del Servidor
Orden de Cifrados:
TLS 1.1 y 1.2: Listas de cifrados adecuados se ofrecen, con algunos cifrados CBC obsoletos que deben ser eliminados.
TLS 1.3: Se ofrecen cifrados fuertes y modernos (AES_128_GCM_SHA256, AES_256_GCM_SHA384, CHACHA20_POLY1305_SHA256).
Forward Secrecy (FS):
Se ofrece FS con cifrados fuertes como ECDHE-RSA-AES256-GCM-SHA384 y TLS_CHACHA20_POLY1305_SHA256, lo cual es positivo.
Certificado del Servidor
Información del Certificado:
Nombre Común (CN):spartan-cybersec.com
SAN (Subject Alternative Name): spartan-cybersec.com, www.spartan-cybersec.com
Emisor: Amazon RSA 2048 M03
Validez: Válido hasta el 14 de mayo de 2025 (más de 60 días restantes)
OCSP y CRL: Certificado no revocado, con OCSP Stapling ofrecido.
Configuración del Servidor
Renegociación Segura: Soportada, lo cual es positivo.
Resúmenes TLS (RFC 5077): Soportado, pero con tickets rotados diariamente.
Certificados Intermedios y Raíz: Correctamente configurados, con validez adecuada.
Cabeceras HTTP: Implementación de cabeceras de seguridad como X-Frame-Options, X-Content-Type-Options, Permissions-Policy, X-XSS-Protection, Referrer-Policy.
Vulnerabilidades
Heartbleed, CCS, Ticketbleed, ROBOT: No vulnerable.
POODLE, CRIME, DROWN: No vulnerable.
BREACH: Potencialmente vulnerable debido a la compresión HTTP gzip, pero sólo relevante si se transmiten datos sensibles.
LUCKY13: Potencialmente vulnerable debido al uso de cifrados CBC con TLS.
RC4, FREAK, SWEET32: No vulnerable.
Simulaciones de Cliente
Compatibilidad: Compatible con navegadores modernos (Chrome, Firefox, Safari, Edge) y versiones de Android e iOS.
Cifrado Fuerte: Utiliza cifrados fuertes y modernos, garantizando la seguridad en las comunicaciones.