En 20 minutos... Buenas Practicas SSL

25
SSL: buenas prácticas y recientes avances en la seguridad de aplicaciones web. Javier García Ros Sección de Telemática ([email protected])

description

La charla está dividida en dos partes: - SSL/TLS: buenas prácticas. Aspectos a tener en cuenta a la hora de configurar los servicios bajo SSL/TLS, protocolos que debemos usar, tamaños de clave recomendables, algoritmos, herramientas que nos pueden ayudar. (Orientada a gente que configure sistemas) - Recientes avances en la seguridad de aplicaciones web. Ataques como XSS y el ClickJacking. Nuevas técnicas que están siendo implementadas en los navegadores más recientes para minimizar estos riesgos pero que se configuran desde las aplicaciones o desde el servidor. (Orientada tanto a desarrolladores como a administradores de Sistemas).

Transcript of En 20 minutos... Buenas Practicas SSL

Page 1: En 20 minutos... Buenas Practicas SSL

SSL: buenas prácticas y recientes avances en la seguridad de aplicaciones web.

Javier García Ros Sección de Telemática

([email protected])

Page 2: En 20 minutos... Buenas Practicas SSL

2/25

En 20 minutos ...

Page 3: En 20 minutos... Buenas Practicas SSL

3/25

SSL: buenas prácticas y recientes avances en la seguridad de aplicaciones web.

• Agenda • Buenas prácticas en la configuración SSL/TLS (~

2/3 )– Protocolos SSL– Certificados y claves– Suites criptográficas– Herramientas de interés– Informes internos

• Nuevos avances en la seguridad web (~ 1/3)– CSP- Content Security Policy– HSST - HTTP Strict Transport Security– X-Frame-Options

Page 4: En 20 minutos... Buenas Practicas SSL

4/25

SSL/TLS: Introducción

• SSL (Secure Sockets Layer) – es el protocolo original desarrollado en

1995 por Netscape.• Es fácil de implantar, pero lo que no suele ser

tan común es hacerlo correctamente.• En SSL/TLS hay varios elementos que

debemos tener en cuenta:• certificado

• protocolos

• algoritmos de intercambio de clave

• algoritmos de autenticación

• algoritmos de cifrado

• algoritmos para la creación de MAC

Page 5: En 20 minutos... Buenas Practicas SSL

5/25

SSL/TLS: Certificados

• Sospechosos habituales:– Que no haya errores en el nombre/dominio– Certificado aún no válido– Certificado caducado– Uso de certificados autofirmados– CA no conocidas– Certificado revocado

Page 6: En 20 minutos... Buenas Practicas SSL

6/25

SSL/TLS: Certificados (II)

• Tamaños de clave:– Usar ya claves de 2048 bits de clave

pública*

• Protección– Renovación a ser posible anual– Protección de las claves en el servidor– Y allí donde vayan a parar como:

• Copias de seguridad

Page 7: En 20 minutos... Buenas Practicas SSL

7/25

SSL/TLS: Certificados (IV)

• Nombres de DNS:– El certificado ha de contener TODOS los

nombres que permitan acceder al servicio– Es posible usar certificados tipo:

• *.blogs.um.es

Page 8: En 20 minutos... Buenas Practicas SSL

8/25

SSL/TLS: Certificados (IV)

Page 9: En 20 minutos... Buenas Practicas SSL

9/25

SSL/TLS: Entidades Raíz y jerarquía (V)

• El servidor debe entregar su certificado y los intermedios

• Han de entregarse en orden: primero la que firma el certificado del servidor y subiendo hasta la entidad raíz

• La entidad raíz puede no entregarse, ya que el cliente ha de tenerla en su propio almacén

• Los certificados intermedios aunque suelen tener periodos de validez mayores también expiran

• Cada navegador reacciona de una manera ante un fallo de jerarquía; mejor probar

Page 10: En 20 minutos... Buenas Practicas SSL

10/25

SSL/TLS: Protocolos

• SSLv2– tiene graves fallos de seguridad no debería

usarse nunca• SSLv3 y TLSv1

– TLSv1 es la versión del IETF de SSLv3 • Mayoritáriamente soportado

– TLSv1.1• Algunas mejoras • Bastante soportado

– TLSv1.2 • Más mejoras• Pero aún poco soportado

Page 11: En 20 minutos... Buenas Practicas SSL

11/25

SSL/TLS: Renegociación

• El canal SSL puede pararse momentáneamente y permitir que los extremos renegocien la sesión

• No hay una buena razón para que el cliente deba reiniciarla; sólo el servidor debería poder hacerlo, pues puede ser una vía de DoS

• Esto depende del código del servidor

Page 12: En 20 minutos... Buenas Practicas SSL

12/25

SSL/TLS: Ataque BEAST

• El 2004 se descubrió un ataque teórico a SSL v3/TLS v.1 conocido como BEAST

• Desde 2011 es un ataque practicable• Desde 2006 TLS v1.1 resuelve este problema,

aunque hay todavía muchos clientes que no soportan TLS v1.1

• La solución es priorizar RC4 que no se ve afectado por este ataque cuando los servidores hablen sólo TLS v1.0 or SSL v3

Page 13: En 20 minutos... Buenas Practicas SSL

13/25

SSL/TLS: Apache

• Configurando Apache– SSLProtocol all ­SSLv2 – SSLHonorCipherOrder on  # apache 2.1+– SSLCipherSuite !ADH:!DSS:!RC2:RC4­SHA:RC4­MD5:HIGH:MEDIUM:+AES128:+3DES 

Page 14: En 20 minutos... Buenas Practicas SSL

14/25

SSL/TLS: Alguna herramienta

• SSLLABS Server Test• https://www.ssllabs.com/ssltest/index.html

– Herramienta gráfica y sencilla – Nos ayuda a corregir errores– Sólo para servicios web– No podemos ampliar las entidades raíz

• OpenSSL

Page 15: En 20 minutos... Buenas Practicas SSL

15/25

SSL/TLS: Resultados

Algunos informes....

Page 16: En 20 minutos... Buenas Practicas SSL

16/25

SSL/TLS: Otras recomendaciones

• Usa SSL en aquellos sitios que lo necesiten• Y evita que se acceda sin SSL• Cuidado con el contenido mixto, pues el

usuario es vulnerable a un ataque MITM • Marca las cookies como:

– Secure– Httponly

Page 17: En 20 minutos... Buenas Practicas SSL

17/25

SSL/TLS: Resumen

• Usar claves públicas de un mínimo de 2048 bits

• No ofrecer cifrados de clave privada de menos de 128 bits

• No permitir SSLv2; ofrecer TLS1.0 y posteriores

• No permitir Anonymous Diffie Hellman (ADH)

• Todos los nombres DNS que llevan al servicio deben estar incluidos en el certificado

• Protege la clave privada correctamente en todo momento

• Si el protocolo es SSL 3.0/TLS 1.0 utiliza RC4

• Renegociación: siempre segura e iniciada por el servidor

• Sitio web: todas las páginas y elementos por HTTPS

• cookies: márcalas como seguras y HTTPonly

Page 18: En 20 minutos... Buenas Practicas SSL

18/25

Avances en seguridad web

Page 19: En 20 minutos... Buenas Practicas SSL

19/25

HSTS- HTTP Strict Transport Security

• HSTS (HTTP Strict Transport Security)

– permite forzar el uso de HTTPS

– se trata de una cabecera HTTP

– Chrome viene con lista precargada• El propio navegador se encargaría de utilizar siempre

HTTPS, a partir de la primera visita durante el tiempo de validez definido

• No está soportado por el IE• Pero aún así es conveniente implementarlo: no tiene

apenas coste y puede proteger a algunos usuarios

• Ejemplo

– Strict­Transport­Security: max­age=16070400; includeSubDomains

Page 20: En 20 minutos... Buenas Practicas SSL

20/25

X-Frame-Options

• Esta cabecera indica si un navegador puede renderizar una página dentro de <frame> o <iframe>

• Orientado a evitar el clickjacking• Esta opción sí la soportan la mayoría de los

navegadores: IE, FF, Opera, Safari, Chrome,...• Ejemplos:

– X-frame-options: DENY

– X-frame-options: SAMEORIGIN

– X-frame-options: ALLOW-FROM origen

Page 21: En 20 minutos... Buenas Practicas SSL

21/25

Content-Security-Policy (CSP)

• Fue desarrollada para minimizar y 'eliminar' el riesgo de XSS, Clickjacking y navegación no segura.

• El fundamento es que el navegador sólo considere válidos determinadas fuentes de las que previamente le hemos informado por política, ignorando el resto

• Necesita de ninguna o poca modificación en la aplicación

• Se notifica al navegador bien

– las cabeceras HTTP

– y etiquetas Meta en el HTML• Tiene 3 partes:

– Definición de políticas

– Forzado de políticas

– Informes de violación de políticas

Page 22: En 20 minutos... Buenas Practicas SSL

22/25

Content-Security-Policy (CSP)- II

• Ejemplo : “Limita el contenido a este servidor”

– X­Content­Security­Policy: default­src ‘self’ 

• Elemplo: “Permite imágenes de cualquier sitio, cotenido de plugins de esta lista de proveedores y scripts de un dominio específico”

– X­Content­Security­Policy: default­src 'self'; img­src *; object­src tv1.um.es tv2.um.es; script­src fundewebscripts.um.es

• Ensure all content is loaded over TLS:

– X­Content­Security­Policy: default­src https://*:443 

Page 23: En 20 minutos... Buenas Practicas SSL

23/25

Content-Security-Policy (CSP)- III

• Definida cabecera para testeo:

– X-Content-Security-Policy-Report-Only: policy

• Navegadores que lo implementan:

– Firefox 4+

– Chrome 13+

– Safari 6+

• Navegadores que aún no lo implementan o el soporte es parcial

– IE 10*

– Opera

Page 24: En 20 minutos... Buenas Practicas SSL

24/25

SSL/TLS: Resultados

Una propuesta ...

Page 25: En 20 minutos... Buenas Practicas SSL

25/25

Gracias por asistir