SSL instalado... ¿estamos realmente seguros?

Post on 21-Jun-2015

519 views 3 download

description

Presentación sobre HTTPS para la StarTechConf 2013. Temas cubiertos: - Vulnerabilidades en suites de cifrado - Forward Secrecy - Temas a considerar respecto de Autoridades Certificadoras - Consejos práticos

Transcript of SSL instalado... ¿estamos realmente seguros?

Cristián RojasEspecialista en Seguridad de Software

¿Estamos realmente seguros?

Vulnerabilidades en suites de cifrado

Cliente

Servidor

Suites de cifrado

RSA-RC4-SHA

Algoritmo de intercambio de

llave

Algoritmo de encriptación

Algoritmo MAC

Llave de sesión

EXP-RC2-CBC-MD5

EDH-RSA-DES-CBC-SHA

AECDH-NULL-SHA

Mitigación

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";

Forward Secrecy

La sesión es segura, pero...

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

Implementando Forward Secrecy

DHE

DHE

???ECDHE

+27%*DHE+210%*

* Indica diferencias en tiempo de respuesta respecto a RSAFuente: Vincent Bernat, “SSL/TLS & Perfect Forward Secrecy”

Autoridades Certificadoras (CA)

Eligiendo una CA

● Postura frente a la seguridad

● Enfoque de negocios● Herramientas de

manejo de certificados● Soporte de clientes

SSL is not fucked. CA's are.

AutoridadCertificadora

Certificate Pinning

restserver1.startechconf.com

restserver2.startechconf.com

restserver3.startechconf.com

Recomendaciones para el servidor

Ojo con la cadena de certificados

CA-1 Root CA

Root CA

CA-1

Cadena de confianza verificada

Certificado Raíz CA

Certificado CA intermedia

Certificado servidor

SSLv2

SSLv3

TLSv1.0

TLSv1.1

TLSv1.2

Usar protocolos de TLSv1.0 hacia arriba

Proveer una buena lista de suites de cifrado

● Usar algoritmos de encriptación fuertes (128 bits o más)

● No usar EXPORT ni algoritmos obsoletos

● Usar ECDHE/DHE para implementar F0rward Secrecy

● Dar preferencia a la lista de suites de cifrado del servidor

Recomendaciones para la aplicación

Encriptarlo todo

● Asegurar las cookies (mediante el flag Secure)

● Usar HTTP Strict Transport Security (HSTS) en lo posible

● Asegurarse de no usar contenido mezclado (ej. HTML encriptado, pero CSS y JS sin encriptar)

Deshabilitar cache de contenidos sensibles

● La cache queda en el disco duro sin encriptar

● Ejemplos:– Datos de perfil– Cartolas– Mensajes personales

Poner atención a otros aspectos de

seguridad ;)

Fuente: OWASP Top 10 2013 – https://www.owasp.org

Herramientas y links

● Qualys SSL Test: https://www.ssllabs.com/ssltest/

● Ivan Ristic, “OpenSSL Cookbook”: http://goo.gl/vYAYHS

● Josh Bleecher Snyder, “Why app developers should care about SSL pinning”: http://goo.gl/fTcLm

Muchas graciasy manténganse seguros ;)

http://injcristianrojas.github.ioinjcristianrojas@gmail.com

@InjenieroBarsa