El documento presenta información sobre SSL/TLS, incluyendo su propósito de permitir la confidencialidad y la integridad de las transmisiones por la red, los componentes criptográficos que utiliza, los tipos de certificados digitales, vulnerabilidades comunes como Heartbleed, y recomendaciones de configuración segura para servidores y aplicaciones.
3. About: Cristián Rojas
●
Consultor independiente en Seguridad de la
Información
●
Profesional Certificado en Ciclo de vida de
desarrollo de software seguro (CSSLP)
●
Profesor de Seguridad de la Información,
UCHILE-PUC
●
Investigador asociado, CLCERT UCHILE
7. ¿Qué es SSL/TLS?
●
Es un protocolo criptográfico que permite hacer
valer la confidencialidad y la integridad de
transmisiones por la red
●
Generalmente se monta sobre protocolos como
HTTP, FTP, XMPP...
●
También se utiliza en aplicaciones como VPN's
11. La Autoridad
Certificadora (CA)
CA Raíz (root)
CA EuropaCA Américas CA Asia
CA PerúCA Brasil CA Chile
Root CA
CA Americas
CA Chile
www.misitio.cl
12. ●
Dominio (DV)
– Automatizado, sólo requiere un mail
– No es mejor que un certificado autofirmado
●
Organización (OV)
– Mayor chequeo: NIC, registros de marcas...
●
Extendida (EV - “Barra verde”)
– Se valida:
●
Existencia de la empresa
●
Identidad oficialmente registrada y derecho de uso de dominio
●
Pago de seguro
– Validación anual
Validación para
certificados
16. Ataques a protocolos
2011 2012 2013 2014
BEAST
(Browser Exploit Against
SSL/TLS)
Permite desencriptar
cookies seguras en minutos
CRIME
(Compression Ratio Info-leak Made Easy)
Ataque de canal lateral contra la
compresión en HTTPS
BREACH
(Browser Reconnaissance and
Exfiltration via Adaptive Compression
of Hypertext)
Ataque de canal lateral contra la
compresión en HTTP bajo
SSL/TLS
POODLE
(Padding Oracle On Downgraded
Legacy Encryption)
Ataque de rollback de protocolo
2015
FREAK
(Factoring Attack on RSA-
EXPORT Keys)
Ataque de rollback de
protocolo
17. FREAK
Usemos RSA-2048 OK
¿Y por qué no EXP-512?
Es más rápido ;)
Vamos con
EXP-512 entonces
EXP-512.
¡Genial!
Supieran que EXP-512
es crackeable desde
1999...
21. Heartbleed
●
Error de programación
que causa filtración de
contenido de memoria
del servidor
●
Ocurre por no
validación de largo de
entradas
●
Implementado en
OpenSSL versiones
1.0.1a hasta 1.0.1f
22. OpenSSL y sus
"yayas"
●
OpenSSL es mantenido por 4
personas (uno de ellos full-
time)
●
Los desarrolladores sólo
están interesados en agregar
features
●
Los bugs y correcciones “se
pudren” (hasta 4 años)
●
Este “código horrible” causa
una enorme barrera de
entrada para nuevos
desarrolladores
24. Eligiendo una CA
●
Ver qué tipo de
validación se requiere y
los costos
– Los certificados se
compran por 1, 2, 3...
años, por lo tanto tienen
fecha de vencimiento.
●
Si pierdo o se filtra la
llave privada ¿podré
reemplazar el certificado
sin costo?
25. Ojo con la cadena de
certificados
CA-1 Root CA
Cadena de confianza incompleta
Certificado
Raíz CA
Certificado CA
intermedia
Certificado
servidor
Root CA
26. Ojo con la cadena de
certificados
CA-1 Root CA
Cadena de confianza verificada
Certificado
Raíz CA
Certificado CA
intermedia
Certificado
servidor
CA-1
Root CA
30. Proveer una buena lista de
suites de cifrado
●
Usar algoritmos de
encriptación fuertes
(pero no tanto)
– 2048 bits para RSA
– 256 bits para ECDHE
●
No usar EXPORT ni
algoritmos obsoletos
●
Dar preferencia a la lista
de suites de cifrado del
servidor
31. Controles de ataques a
protocolos
●
BEAST: Hoy en día es muy dificil de explotar
●
CRIME: ¿Deshabilitar compresión TLS? La
mayoría de los browsers modernos ya no la usan
●
BREACH: Deshabilitar compresión HTTP o
randomizar tokens CSRF
●
POODLE: No incluir SSLv3 en la lista de
protocolos soportados
●
FREAK: No usar cifradores tipo EXPORT
36. Encriptarlo todo
●
Asegurarse de no usar
contenido mezclado (ej.
HTML encriptado, pero
CSS y JS sin encriptar)
●
Asegurar las cookies de
sesión (mediante el flag
Secure)
●
Usar HTTP Strict
Transport Security
(HSTS) en lo posible
38. Strict Transport
Security (HSTS)
●
Es un header que causa que:
– Si el cliente va a hacer una llamada a http://, la
convierte automáticamente a https://
– Si la seguridad de la conexión no es asegurada, la
conexión se corta (no hay downgrade) y aparece un
mensaje de error.
●
Ejemplo típico:
Strict-Transport-Security: max-age=31536000
39. Deshabilitar cache de
contenidos sensibles
●
La cache queda en el disco duro sin encriptar
●
Por eso datos cacheados pueden ser fácilmente
accesibles
●
Ejemplo:
https://www.owasp.org/index.php/Session_Management_Cheat_Sheet#Web_Content_Caching
Cache-Control: no-cache, no-store, must-revalidate
Pragma: no-cache
Expires: 0
40.
41. Recursos útiles
●
Mozilla SSL Configuration Generator
https://mozilla.github.io/server-side-tls/ssl-config-generator/
●
OWASP: "Transport Layer Protection Cheat
Sheet"
https://www.owasp.org/index.php/Transport_Layer_Protection_Cheat_Sheet
●
Ivan Ristic: "OpenSSL Cookbook", y "Bulletproof
SSL and TLS"
●
Qualys SSL Test
https://www.ssllabs.com/ssltest/
42. Muchas gracias por su
atención.
Contacto:
https://cl.linkedin.com/in/crirojas/es
Iconos cortesía de OSA (CC BY-SA 3.0):
http://www.opensecurityarchitecture.org/cms/library/icon-library