HTTPS: Usted, úselo bien.

42

Transcript of HTTPS: Usted, úselo bien.

Page 1: HTTPS: Usted, úselo bien.
Page 2: HTTPS: Usted, úselo bien.

Cristián Rojas, CSSLPCLCERT Universidad de Chile

Page 3: HTTPS: Usted, úselo bien.

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.

StarTechConf, octubre 2013.

Page 5: HTTPS: Usted, úselo bien.

2014

Page 6: HTTPS: Usted, úselo bien.

SSL/TLS

Page 7: HTTPS: Usted, úselo bien.

¿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.

Criptografía en una slide

Criptografía simétrica hs2&gstehdytse

Criptografía asimétrica f23hh328rf2q8eodst6t46gw7qasf

Page 9: HTTPS: Usted, úselo bien.

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.

Llave de sesión

Handshake (continuación)

Page 11: HTTPS: Usted, úselo bien.

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.

● 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.

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.

Vulnerabilidades en SSL/TLS

Page 15: HTTPS: Usted, úselo bien.

EXP-RC2-CBC-MD5

EDH-RSA-DES-CBC-SHA

AECDH-NULL-SHA

Algoritmos débiles

Page 16: HTTPS: Usted, úselo bien.

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.

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.

AutoridadCertificadora

Ataques a CA's

Page 19: HTTPS: Usted, úselo bien.

Compromiso futuro de llave

Transmisiones anteriores de la sesiónincluyendo negociación de llave

Page 20: HTTPS: Usted, úselo bien.

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.

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.

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.

Recomendacionespara el servidor

Page 24: HTTPS: Usted, úselo bien.

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.

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.

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.

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.

SSLv2

SSLv3

TLSv1.0

TLSv1.1

TLSv1.2

Usar protocolos de TLSv1.0 hacia arriba

Page 29: HTTPS: Usted, úselo bien.

DHE

DHE

???

Implementar Forward Secrecy

Page 30: HTTPS: Usted, úselo bien.

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.

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.

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.

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.

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.

Recomendacionespara la aplicación

Page 36: HTTPS: Usted, úselo bien.

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.

Asegurando cookies

Page 38: HTTPS: Usted, úselo bien.

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.

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.
Page 41: HTTPS: Usted, úselo bien.

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.

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