https: usted, úselo bien

42

Upload: cristian-rojas

Post on 17-Jul-2015

137 views

Category:

Technology


0 download

TRANSCRIPT

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