https: usted, úselo bien
Post on 17-Jul-2015
137 Views
Preview:
TRANSCRIPT
Cristián Rojas, CSSLPCLCERT Universidad de Chile
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
StarTechConf, octubre 2013.
2014
SSL/TLS
¿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
Criptografía en una slide
Criptografía simétrica hs2&gstehdytse
Criptografía asimétrica f23hh328rf2q8eodst6t46gw7qasf
Cliente
Servidor
Algoritmo de intercambio de
llave
Algoritmo de encriptación
Algoritmo MAC
RSA-RC4-SHA
Negociación (Handshake)
Llave de sesión
Handshake (continuación)
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
● 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
www.misitio.clmail.misitio.clrest.misitio.cl
www.misitio.clwww.misitio.com.pewww.misitio.comwww.misitio.edu
Wildcard SAN
¿Y para múltiples sitios?
Vulnerabilidades en SSL/TLS
EXP-RC2-CBC-MD5
EDH-RSA-DES-CBC-SHA
AECDH-NULL-SHA
Algoritmos débiles
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
FREAK
Usemos RSA-2048 OK
¿Y por qué no EXP-512? Es más rápido ;)
Vamos conEXP-512 entonces
EXP-512. ¡Genial!
Supieran que EXP-512 es crackeable desde
1999...
AutoridadCertificadora
Ataques a CA's
Compromiso futuro de llave
Transmisiones anteriores de la sesiónincluyendo negociación de llave
Errores (horrores) de implementación
● “goto fail” en MacOSX y iOS (febrero 2014)
● Error de validación CA en GnuTLS (marzo 2014)
● Heartbleed (abril 2014)
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
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
Recomendacionespara el servidor
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?
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
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
MUERTE A SHA1!!!
6F:73:43:78:02:42:9D:D3:FB:91:6F:3B:26:2F:CD:73:97:C1:A8:3F:43:7F:5F:E2:54:08:BB:F8:80:9A:17:92
23:A9:50:DA:64:E8:B1:93:DB:E3:A5:45:D9:EF:31:BF:96:5F:2F:3FSHA1:
SHA256:
● Recomendaciones:– Solicitar a la CA certificados con fingerprints SHA256
– Si ya se tiene un certificado con SHA1, solicitar uno nuevo con SHA256 incorporado
SSLv2
SSLv3
TLSv1.0
TLSv1.1
TLSv1.2
Usar protocolos de TLSv1.0 hacia arriba
DHE
DHE
???
Implementar Forward Secrecy
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
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
Ejemplo
admin@secureserver ~$ openssl ciphers -v \'AES !EXP !RC2 !MD5 !DES !aNULL !eNULL'
String de configuración
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;ssl_prefer_server_ciphers on;ssl_ciphers "AES !EXP !RC2 !MD5 !DES !aNULL !eNULL";
Herramienta: Mozilla SSL Configuration
Generator
● Genera el código necesario para configurar servidores Apache, NginX, HAProxy
● Permite definir cifradores más seguros y configuraciones robustas
Herramienta: Qualys SSL Test
● Herramienta que comprueba en linea configuraciones SSL/TLS de un sitio
● Requiere que el sitio sea expuesto a la web
Recomendacionespara la aplicación
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
Asegurando cookies
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
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-revalidatePragma: no-cacheExpires: 0
Recursos útiles
● Mozilla SSL Configuration Generatorhttps://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 Testhttps://www.ssllabs.com/ssltest/
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
top related