Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ese candadito es lo que nos dice “Ey, esta comunicación es segura”, y además nos
marca con verde el “HTTPS” porque estamos en un protocolo seguro para acceder a
la web. Si le damos click al candado (ojo que cada navegador tiene su manera de
visualizar los certificados. Estoy usando Chrome en este caso y se logra acceder con
click derecho), nos encontramos con esto:
1/15
Bueno, tenemos 2 cosas que ver. Primero que un supuesto DigiCert SHA2 blablabla
emitió el certificado y que lo aprueba. ¿Si nos metemos en los datos del
certificado?
Nos aparece todos los datos del mismo. Es decir, el logaritmo usado para el hash de
la firma, la versión, hasta que fecha es válido e incluso la clave pública. No se ustedes
pero a mi siempre me pareció muy interesante que este tipo de información sea
pública.
2/15
En la segunda parte nos dice dos cosas que nos importan. La version de TLS (1.2) y
el mecanismo de intercambio de clave simétrica, que es el ECDHE_ECDSA. Esto
corresponde a “Curva elíptica de Diffie-Hellman” - “Curva elíptica de algoritmo de
firma digital”. Aunque creo que por ahora voy a dejar las curvas elípticas y la
generación de claves para otro día porque merecen una clase entera para ellas solas.
Además en la última clase profundicé RSA y me han llegado cartas de amenazas.(?)
3/15
REGISTROS SSL/TLS
Los registros se dividen de esta manera:
4/15
PROTOCOLO DE NEGOCIACION
5/15
3. Server Hello: El servidor recibe el “hola” inicial del cliente y manda su
respuesta con otro saludo. La información contenida es: versión de protocolo
a usar, otra cadena de 32 bytes aleatorios, ID de la sesión actual (en caso de
querer usar las mismas preferencias de un ID anterior enviado por el cliente,
usa el mismo ID), combinación de algoritmos criptográficos y de compresión.
En caso de que el server no envíe ningún ID es para no dejar que el cliente use
el restablecimiento de la configuración en una conexión futura.
5. Certificate Request: En caso de que el cliente deba decir quién es, entonces el
server le manda este mensaje exigiéndole que lo certifique.
6/15
8. Client Key Exchange: Aquí el cliente envía un contenido de claves como las
claves de cifrado simétrico previamente cifradas con la clave pública del
servidor. Como vimos en la clase anterior, es posible hacerlo con RSA.
7/15
8/15
¿Qué corno es x.509?
Es un estándar. Una manera de cómo están organizados los datos de los certificados
para que todos lo hagan de una misma manera. En este caso están organizados así:
• Versión
• Número de serie
• ID del algoritmo
• Emisor
• Fechas de validez
• Sujeto (a quién valida)
• Clave pública del Sujeto
• Datos opcionales
• Algoritmo usado para firmar el certificado
• Firma del certificado
9/15
Certificate:
Data:
Version: 1 (0x0)
Serial Number: 7829 (0x1e95)
Signature Algorithm: md5WithRSAEncryption
Issuer: C=ZA, ST=Western Cape, L=Cape Town, O=Thawte Consulting cc,
OU=Certification Services Division,
CN=Thawte Server CA/Email=server-certs@thawte.com
Validity
Not Before: Jul 9 16:04:02 1998 GMT
Not After : Jul 9 16:04:02 1999 GMT
Subject: C=US, ST=Maryland, L=Pasadena, O=Brent Baccala,
OU=FreeSoft, CN=www.freesoft.org/Email=baccala@freesoft.org
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
RSA Public Key: (1024 bit)
Modulus (1024 bit):
00:b4:31:98:0a:c4:bc:62:c1:88:aa:dc:b0:c8:bb:
33:35:19:d5:0c:64:b9:3d:41:b2:96:fc:f3:31:e1:
66:36:d0:8e:56:12:44:ba:75:eb:e8:1c:9c:5b:66:
70:33:52:14:c9:ec:4f:91:51:70:39:de:53:85:17:
16:94:6e:ee:f4:d5:6f:d5:ca:b3:47:5e:1b:0c:7b:
c5:cc:2b:6b:c1:90:c3:16:31:0d:bf:7a:c7:47:77:
8f:a0:21:c7:4c:d0:16:65:00:c1:0f:d7:b8:80:e3:
d2:75:6b:c1:ea:9e:5c:5c:ea:7d:c1:a1:10:bc:b8:
e8:35:1c:9e:27:52:7e:41:8f
Exponent: 65537 (0x10001)
Signature Algorithm: md5WithRSAEncryption
93:5f:8f:5f:c5:af:bf:0a:ab:a5:6d:fb:24:5f:b6:59:5d:9d:
92:2e:4a:1b:8b:ac:7d:99:17:5d:cd:19:f6:ad:ef:63:2f:92:
ab:2f:4b:cf:0a:13:90:ee:2c:0e:43:03:be:f6:ea:8e:9c:67:
d0:a2:40:03:f7:ef:6a:15:09:79:a9:46:ed:b7:16:1b:41:72:
0d:19:aa:ad:dd:9a:df:ab:97:50:65:f5:5e:85:a6:ef:19:d1:
5a:de:9d:ea:63:cd:cb:cc:6d:5d:01:85:b5:6d:c8:f3:d9:f7:
8f:0e:fc:ba:1f:34:e9:96:6e:6c:cf:f2:ef:9b:bf:de:b5:22:
68:9f
En negrita están remarcados los campos que deben ir. Pero no nos metamos más en
esto.
10/15
Vulnerabilidades
Cada vez que SSL es vulnerado, la voz se pasa rápidamente y se aprovecha por
muchos internautas curiosos. Pero generalmente el parche se libera al poco tiempo
-relativamente hablando- así que no esperen poder aprovecharse de esto
deliberadamente. Veremos el famoso bug que recorrió las noticias informáticas en
Abril del 2014: Heartbleed.
Cliente: -Ey, server. ¿Estás activo todavía? Si es así, responde con la palabra
“auto”. Son 4 letras.
Servidor: -auto
Bueno, sí. Es justamente el fallo. Cuando el cliente dice que da una cantidad de letras
mayor a lo que es la palabra, el server se confunde porque además de mandar la
11/15
palabra de respuesta, rellena esa cantidad de “letras” con las que tiene en
memoria en ese momento. Entonces la conversación pasaría a ser algo así:
Cliente: -Ey, server. ¿Estás activo todavía? Si es así, responde con la palabra
“auto”. Son 50 letras.
Claro. Aquí en nuestro ejemplo, el server tiene palabras sueltas pero en la vida real,
en memoria, el server podría tener credenciales, contraseñas, logs, información de
sistema requerida, acciones de los usuarios, etc.
“Me imagino que el registro sólo puede mandar una cantidad de datos
limitados.”
12/15
En fin. Eso es todo por hoy :). Espero que lo hayan disfrutado (y aprendido sobre
todo) y nos vemos en la siguiente clase. :D
13/15
-------------------------------------------
1HqpPJbbWJ9H2hAZTmpXnVuoLKkP7RFSvw
-------------------------------------------
-------------------------------------------
Roadd.
14/15