O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

HTTPS: Usted, úselo bien.

Charla dictada en OWASP Latam Tour 2015.

  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

HTTPS: Usted, úselo bien.

  1. 1. Cristián Rojas, CSSLP CLCERT Universidad de Chile
  2. 2. 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
  3. 3. StarTechConf, octubre 2013.
  4. 4. 2014
  5. 5. SSL/TLS
  6. 6. ¿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
  7. 7. Criptografía en una slide Criptografía simétrica hs2&gstehdytse Criptografía asimétrica f23hh328rf2q8eodst6t46gw7qasf
  8. 8. Cliente Servidor Algoritmo de intercambio de llave Algoritmo de encriptación Algoritmo MAC RSA-RC4-SHA Negociación (Handshake)
  9. 9. Llave de sesión Handshake (continuación)
  10. 10. 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
  11. 11. ● 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
  12. 12. www.misitio.cl mail.misitio.cl rest.misitio.cl www.misitio.cl www.misitio.com.pe www.misitio.com www.misitio.edu Wildcard SAN ¿Y para múltiples sitios?
  13. 13. Vulnerabilidades en SSL/TLS
  14. 14. EXP-RC2-CBC-MD5 EDH-RSA-DES-CBC-SHA AECDH-NULL-SHA Algoritmos débiles
  15. 15. 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
  16. 16. FREAK Usemos RSA-2048 OK ¿Y por qué no EXP-512? Es más rápido ;) Vamos con EXP-512 entonces EXP-512. ¡Genial! Supieran que EXP-512 es crackeable desde 1999...
  17. 17. Autoridad Certificadora Ataques a CA's
  18. 18. Compromiso futuro de llave Transmisiones anteriores de la sesión incluyendo negociación de llave
  19. 19. 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)
  20. 20. 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
  21. 21. 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
  22. 22. Recomendaciones para el servidor
  23. 23. 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?
  24. 24. 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
  25. 25. 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
  26. 26. 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
  27. 27. SSLv2 SSLv3 TLSv1.0 TLSv1.1 TLSv1.2 Usar protocolos de TLSv1.0 hacia arriba
  28. 28. DHE DHE ??? Implementar Forward Secrecy
  29. 29. 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
  30. 30. 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
  31. 31. 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";
  32. 32. 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
  33. 33. Herramienta: Qualys SSL Test ● Herramienta que comprueba en linea configuraciones SSL/TLS de un sitio ● Requiere que el sitio sea expuesto a la web
  34. 34. Recomendaciones para la aplicación
  35. 35. 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
  36. 36. Asegurando cookies
  37. 37. 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
  38. 38. 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-revalidate Pragma: no-cache Expires: 0
  39. 39. Recursos útiles ● Mozilla SSL Configuration Generator https://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 Test https://www.ssllabs.com/ssltest/
  40. 40. 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

×