Download - HTTPS: Usted, úselo bien
![Page 1: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/1.jpg)
![Page 2: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/2.jpg)
Cristián Rojas, CSSLPCLCERT Universidad de Chile
![Page 3: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/3.jpg)
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
![Page 4: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/4.jpg)
StarTechConf, octubre 2013.
![Page 5: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/5.jpg)
2014
![Page 6: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/6.jpg)
SSL/TLS
![Page 7: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/7.jpg)
¿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
![Page 8: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/8.jpg)
Criptografía en una slide
Criptografía simétrica hs2&gstehdytse
Criptografía asimétrica f23hh328rf2q8eodst6t46gw7qasf
![Page 9: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/9.jpg)
Cliente
Servidor
Algoritmo de intercambio de
llave
Algoritmo de encriptación
Algoritmo MAC
RSA-RC4-SHA
Negociación (Handshake)
![Page 10: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/10.jpg)
Llave de sesión
Handshake (continuación)
![Page 11: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/11.jpg)
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
![Page 12: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/12.jpg)
● 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
![Page 13: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/13.jpg)
www.misitio.clmail.misitio.clrest.misitio.cl
www.misitio.clwww.misitio.com.pewww.misitio.comwww.misitio.edu
Wildcard SAN
¿Y para múltiples sitios?
![Page 14: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/14.jpg)
Vulnerabilidades en SSL/TLS
![Page 15: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/15.jpg)
EXP-RC2-CBC-MD5
EDH-RSA-DES-CBC-SHA
AECDH-NULL-SHA
Algoritmos débiles
![Page 16: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/16.jpg)
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
![Page 17: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/17.jpg)
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...
![Page 18: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/18.jpg)
AutoridadCertificadora
Ataques a CA's
![Page 19: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/19.jpg)
Compromiso futuro de llave
Transmisiones anteriores de la sesiónincluyendo negociación de llave
![Page 20: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/20.jpg)
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)
![Page 21: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/21.jpg)
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
![Page 22: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/22.jpg)
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
![Page 23: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/23.jpg)
Recomendacionespara el servidor
![Page 24: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/24.jpg)
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?
![Page 25: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/25.jpg)
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
![Page 26: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/26.jpg)
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
![Page 27: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/27.jpg)
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
![Page 28: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/28.jpg)
SSLv2
SSLv3
TLSv1.0
TLSv1.1
TLSv1.2
Usar protocolos de TLSv1.0 hacia arriba
![Page 29: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/29.jpg)
DHE
DHE
???
Implementar Forward Secrecy
![Page 30: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/30.jpg)
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
![Page 31: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/31.jpg)
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
![Page 32: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/32.jpg)
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";
![Page 33: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/33.jpg)
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
![Page 34: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/34.jpg)
Herramienta: Qualys SSL Test
● Herramienta que comprueba en linea configuraciones SSL/TLS de un sitio
● Requiere que el sitio sea expuesto a la web
![Page 35: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/35.jpg)
Recomendacionespara la aplicación
![Page 36: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/36.jpg)
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
![Page 37: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/37.jpg)
Asegurando cookies
![Page 38: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/38.jpg)
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
![Page 39: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/39.jpg)
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
![Page 40: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/40.jpg)
![Page 41: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/41.jpg)
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/
![Page 42: HTTPS: Usted, úselo bien](https://reader034.vdocuments.net/reader034/viewer/2022042518/55a889091a28abcc288b46a9/html5/thumbnails/42.jpg)
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