Post on 11-Feb-2018
¿Qué es la criptografía?
• “Arte de escribir con clave secreta o de un modo enigmático”1.
• Una definición mas exacta ( e ingenieril): – Es un conjunto de técnicas – Basadas en argumentos matemáticos – Que tienen como objetivo modificar de manera
sistemática un texto 2
– De manera que sólo pueda ser autenticado, validado en su integridad y comprendido3 sólo por aquellos que posean las condiciones y los conocimientos adecuados4.
Reinaldo Mayol Arnao 2 15/10/2012
A veces el tamaño si importa
Reinaldo Mayol Arnao 4
Tamaño de la Llave(bits)
Número de Llaves posibles
Tiempo de descifrado ( a 106 Operaciones /µs)
32 232 = 4.3 x 109 2.15 milliseconds
56 256 = 7.2 x 1016 10 hours
128 2128 = 3.4 x 1038 5.4 x 1018 years
168 2168 = 3.7 x 1050 5.9 x 1030 years
15/10/2012
CRIPTOGRAFÍA DE CLAVE PRIVADA (SIMÉTRICA)
15/10/2012 Reinaldo Mayol Arnao
5
¿Qué significa “ cifrado de clave privada o Simétrico?
• Si se utiliza una misma clave para cifrar y descifrar se habla de Cifrado Simétrico o de Clave Privada
• Si se utilizan 2 llaves diferentes; una para cifrar y otra para descifrar se habla de Cifrado Asimétrico o de Clave Pública
15/10/2012 Reinaldo Mayol Arnao 6
Número de llaves necesarias
Reinaldo Mayol
Arnao
8
103 104 105
106
107
108
109
Número de
llaves
Número de puntos finales (Aplicaciones)
Introducción
• El DES nació como consecuencia del criptosistema LUCIFER, creado por Horst Feistel quien trabajaba en IBM, este criptosistema trabajaba sobre bloques de 128 bits, teniendo la clave igual longitud .
Reinaldo Mayol Arnao 10 15/10/2012
Introducción
• Tras las modificaciones introducidas por el NSA (National Security Agency), consistentes básicamente en la reducción de la longitud de clave y de los bloques, DES cifra bloques de 64 bits, mediante permutación y sustitución y usando una clave de 56 bits.
Reinaldo Mayol Arnao 11 15/10/2012
Esquema General de DES
Reinaldo Mayol Arnao 12
Permutación
Selectiva EP1x
64 bits de la clave
Permutación
Selectiva EP2 Rotación Izq.
K1
K16
56 bits
48 bits
Permutación
Selectiva EP2 Rotación Izq.
48 bits
64 bits de texto plano
…….
64 bits de texto cifrado
Permutación Inicial
Ronda 1
Ronda 16
Permutación Final
Intercambio (L↔R)
15/10/2012
15/10/2012 13
El tamaño de la clave (56 bits) es
insuficiente para detener un ataque
de fuerza bruta (con un poco de suerte y
bajo algunas condiciones) con las
técnicas actuales.
La estructura interna de las cajas S no ha
sido publicada hasta la actualidad, por lo
que se sospecha podrían contener
algún tipo de “sorpresa” incluida por sus diseñadores
Lentitud de aplicaciones por
software
REINALDO N. MAYOL ARNAO
DEBILIDADES DE DES
Reinaldo Mayol Arnao
DES “Recargado”
• A pesar de su vulnerabilidad por el tamaño de las claves, el algoritmo no ha sido roto en mas de 30 años por ninguna otra razón.
15/10/2012 Reinaldo Mayol Arnao 14
¿AUMENTANDO EL TAMAÑO DE LA CLAVE?
REINALDO N. MAYOL ARNAO
K1 K2
P C X
K2 K1
C P X
15
C=Ek2[Ek1[P]]
P=Dk1[Dk2[C]]
PARECE QUE FUNCIONA PERO….. 15/10/2012 Reinaldo Mayol Arnao 15
Punto Medio
16
Si C=Ek2[Ek1[P]] entonces: X=Ek1[P]=Dk2[C]
[1] Dado un par conocido C, P el
ataque funciona de la siguiente forma:
Se cifra P con cada una de las posibles 256 claves k1
Se descifra C con cada una de las posibles 256 claves k2
Por [1] tiene que existir un valor de X que haga válida la ecuación.
Como se conocen las claves K1 y K2 que hicieron posible [1] se viola el algoritmo sin mayor esfuerzo que el destinado a violar DES.
REINALDO N. MAYOL ARNAO
16
15/10/2012 Reinaldo Mayol Arnao
Punto Medio
Reinaldo Mayol Arnao
REINALDO N. MAYOL ARNAO
P
P
P
K11
K1256
K1n
C
C
C K2,1
K2 256
K2m X
Las claves utilizadas fueron K1n y K2m
17
15/10/2012 17
Reinaldo Mayol Arnao 18
TRIPLE DES Ó 3DES
Obviamente una forma de vencer al ataque de punto medio es colocar en
cadena 3 etapas DES con claves diferentes, pero esto hace que el trabajo
para manejar las claves, ahora de 56X3=168 bits se vuelva complicado
Una solución es colocar tres etapas DES
pero sólo utilizar 2 claves diferentes de
forma que:
C=Ek1[Dk2[Ek1[P]]]
15/10/2012
3DES
Reinaldo Mayol Arnao 19
3DES con dos claves es una alternativa relativamente popular al DES y ha sido adoptada para el uso de las normas de manejo de claves ANS X9.17 y ISO 8732.
15/10/2012
AES: RIJNDAEL
Reinaldo Mayol Arnao 20 15/10/2012
Rijndael
Mecanismo de cifrado por bloques de 128, 192 y 256 bits
Utiliza claves simétricas de igual tamaño
Utiliza una serie de r etapas
Las primeras r-1 etapas son similares y utilizan una serie de operaciones especiales
La última etapa realiza sólo un subconjunto de las operaciones de las etapas anteriores
Reinaldo Mayol Arnao 21 15/10/2012
Funcionamiento de Rijndael ( 128bits)
Reinaldo Mayol Arnao 22
Texto Plano
Etapa Inicial AddRoundKey
Etapas 1-9 ByteSub
ShiftRow
MixCol
AddRoundKey
Etapa Final AddRoundKey
ByteSub ShiftRow
Texto Cifrado
w[0,3]
Byte Sub
W[4,7] (4 palabras por etapa)
w[40,43]
15/10/2012
¿Cómo funciona Rijndael?
Reinaldo Mayol Arnao
23
r-1 Etapas
Byte Sub: Sustitución de bytes
ShiftRow: Desplazamiento de filas
MixCol: Multiplicación de columnas
AddRoundKey: Xor con la llave
Etapa r
Byte Sub
ShiftRow
AddRoundKey
15/10/2012
Cifrado de Rijndael
Reinaldo Mayol Arnao 24
Sustituciones
Desplazamiento de filas
Multiplicación de Columnas
XOR con la Clave
15/10/2012
Rijndael
• En cada ronda sólo la etapa “AddRoundKey” depende de la clave.
• Por lo tanto cada etapa puede ser vista como un proceso de desorden de bits seguido por un XOR con la clave.
• El algoritmo comienza y termina con etapas “Add RoundKey”
Reinaldo Mayol Arnao 25 15/10/2012
Otros Algoritmos de Cifrado Simétrico
Algoritmo K Bloque Etapas Utilización
IDEA 128 64 8 PGP
Blowfish Hasta 448 64 16 Cifrado x Software
RC5 Hasta 2048 64 Hasta 255 Cifrado x Software
Reinaldo Mayol Arnao 26 15/10/2012
Cifrado de Bloques
• Hasta el momento hemos hecho el análisis suponiendo la existencia de un sólo bloque.
• ¿Qué pasa si el mensaje a cifrar tiene mas del tamaño de un sólo bloque?
• Una solución “ obvia” sería dividir el mensaje en bloques y cifrar cada uno individualmente.
• Este tipo de esquema se denomina ECB ( Electronic CodeBook)
Reinaldo Mayol Arnao 27 15/10/2012
CBC (Cipher Block Chaining)
Reinaldo Mayol Arnao 28
CIFRADOR K
+ IV
CIFRADOR K
+
…..
C1 C2
CIFRADOR K
+
Cn
Cn-1
Bloque 1 Bloque 2 Bloque n
15/10/2012
Hasta este momento…
• Quien no tenga la clave (K) no podrá leer el mensaje ( a no ser que se enfrente al problema del criptoanálisis). Tenemos CONFIDENCIALIDAD.
• Si confiamos que sólo los extremos de una conversación conocen K y un mensaje puede ser CORRECTAMENTE descifrado podemos confiar que los extremos son los correctos. Casi tenemos AUTENTICIDAD DE LOS EXTREMOS
Reinaldo Mayol Arnao 29 15/10/2012
Pero…
• ¿Sabemos si el texto es integro al recibirlo? NO.
• ¿Qué hacemos con las claves?
Reinaldo Mayol Arnao 30 15/10/2012
Reglas de Juego
• El sistema funciona con un par de llaves, una para cifrar y otra para descifrar1
• Una clave es secreta y nunca es transmitida (Kp)
• La otra clave es pública y puede ser difundida en la red sin peligro (Ku)
• Si un documento es cifrado con una clave sólo puede ser descifrado con su pareja
• Si un documento puede ser descifrado satisfactoriamente2 con una clave sólo puede haber sido cifrado con su pareja
15/10/2012 Reinaldo Mayol Arnao
33
Ejemplo
15/10/2012 Reinaldo Mayol Arnao 34
José envía el mensaje cifrado con la Kp de Tx (José) José Marcos
Marcos descifra el mensaje utilizando la Ku de José
Pero un extraño también puede leerlo, porque
tiene la Ku (por algo es pública)
Ejemplo
15/10/2012 Reinaldo Mayol Arnao 35
José envía el mensaje cifrado con la Ku del Rx (Marcos) José Marcos
Marcos descifra el mensaje utilizando su Kp
El extraño no puede descifrar
el mensaje porque no tiene
Kp de Marcos
Conclusiones
• Si se cifra el mensaje con la Kp del Tx podría estimarse la autenticidad, pero no la confidencialidad.
• Si se cifra el mensaje con la Ku del Rx podría garantizarse la confidencialidad pero no la autenticidad.
• Ninguno de los esquemas garantiza la integridad de los datos Tx.
15/10/2012 Reinaldo Mayol Arnao
36
Esquema para garantizar (por el momento) confidencialidad
15/10/2012 Reinaldo Mayol Arnao 37
Ku destino
Texto Cifrado (C)
Kp destino
C=EKuRx (P) P=DKpRx
(C)
Texto Plano ( P)
Hasta Ahora…
• Tenemos un mecanismo para mantener las claves en ambientes distribuidos divulgando sólo una parte de la misma ( Ku).
• Si el destino no ha divulgado su Kp el remitente puede estar seguro que nadie más puede leer y entender el mensaje
15/10/2012 Reinaldo Mayol Arnao
38
Pero…
• Seguimos sin integridad.
• Pareciera que si logramos autenticidad no podemos lograr confidencialidad.
• Ya sabemos que RSA es ineficiente para valores grandes de M.1
15/10/2012 Reinaldo Mayol Arnao
39
Funciones Resumen (Hash)
15/10/2012 Reinaldo Mayol Arnao 41
Una función hash toma una entrada de longitud variable a una salida de longitud fija (96, 128 o 160 bits)
Requisitos:
No puede deducir la entrada de la
salida.
No puede generar una salida dada
sin tener la misma entrada.
No puede encontrar dos entradas
que produzcan la misma salida.
Cualquier cambio en la entrada
cambia la salida.
Esquema del uso de las funciones hash
15/10/2012 Reinaldo Mayol Arnao 42
Usando Criptografía Simétrica
Usando Criptografía Asimétrica
K Privada Tx
¿Son iguales?
¿Son iguales? Ku Tx
¿Cómo lograr resúmenes Únicos?
• Imagine que un atacante logre conseguir 2 mensajes diferentes que den el mismo hash.
• Podría interceptar el mensaje, cambiarlo, volver a ensamblar la estructura mensaje+hash y transmitirlo.
• ¡El Rx no tendrá forma de darse cuenta de que el mensaje que ha recibido es falso !
• Si recuerda la paradoja del cumpleaños pareciera que ese es un camino adecuado.
15/10/2012 Reinaldo Mayol Arnao
43
La Paradoja del Cumpleaños
• Según la teoría matemática, si reuniéramos a 23 personas1 en una habitación existe aproximadamente un 50% de posibilidades de que 2 de ellas cumplan años el mismo día.
• Si en vez de 23 juntamos 75 la probabilidad sube al 99.9%.
15/10/2012 Reinaldo Mayol Arnao
44
2
)1(
)365
11(1
nn
P
¿Por qué la paradoja del cumpleaños es
importante?
• Simplemente porque podríamos tener 2 criptogramas iguales cuyo origen sean 2 M diferentes.
• En un momento entenderemos esto con mas detalle.
15/10/2012 Reinaldo Mayol Arnao
45
De nuevo la paradoja del cumpleaños
• Es mucho mas sencillo generar varios mensajes ( por ejemplo variaciones del mensaje fraudulento) y buscar que uno haga que: – Hash ( mensaje verdadero)=Hash ( mensaje falso)
• Por ejemplo si el hash es de 64 bits habría 2 64 posibles valores, pero bastaría generar 2 32 para que apareciera uno que cumpliese con la condición anterior.
• Entonces el secreto está en usar funciones hash que generen resúmenes suficientemente grandes.
15/10/2012 Reinaldo Mayol Arnao
46
De nuevo: el tamaño si importa
• Entonces el tamaño de la función hash es importante para la fortaleza ante ataques de cumpleaños.
• Un hash de 128 bits ( MD5) implica hacer 264 mensajes, pero hash de 160 bits implica 280 por ahora fuera de el rango posible por simple aplicación del LPC, sin embargo…
15/10/2012 Reinaldo Mayol Arnao
47
De nuevo: el tamaño si importa
• Un grupo de investigadores ha demostrado que puede “ romper el algoritmo” en 263 operaciones, incluso por debajo del umbral razonable de fuerza bruta.( 280 )
– http://www.schneier.com/blog/archives/2005/08/new_cryptanalyt.html
15/10/2012 Reinaldo Mayol Arnao
48
Un bloque de la función Hsha
15/10/2012 Reinaldo Mayol Arnao 50
A=67452301 B=EFCDAB89 C=98BADCFE D=10325476 E=C3D2E1F0
•Cada función está compuesta por 4 etapas, cada una de 20 pasos. •Los valores iniciales de A, B, C, D, E son los siguientes:
A,B,C,D Palabras del Buffer
t Paso ( 0-19
F Función F
S Rotación de k bits a la izq.
W Palabra de 32 bits derivada de la entrada del bloque
Función Hsha
15/10/2012 Reinaldo Mayol Arnao 51
A,B,C,D,E (E+ f (t,B,C,D)+S5(A)+Wt+Kt),A,S30(B),C,D
Paso t Kt FUNCIÓN f
0-19 5A827999 (B&C)+(B&D)
20-39 6ED9EBA1 B xor C xor D
40-59 8F1BBCDC (B&C)+(B&D)+(C&D)
60-79 CA62C1D6 B xor C xor D
Ec.13816
1 )( tttt WWWSW
Yq
XOR
S1
w0 w15 w16
W0 W2 W8 W13
¿Qué condiciones debe tener un buen algoritmo de hash?
• No deben existir 2 mensajes diferentes que posean igual hash.1
• Teniendo el valor del hash debe ser prohibitivo conseguir el mensaje original.
• Teniendo M debe ser fácil calcular el hash.
15/10/2012 Reinaldo Mayol Arnao
52
SHA-1 vs MD5
15/10/2012 Reinaldo Mayol Arnao 53
Criterio MD5 SHA-1
Longitud de Salida 128 b 160 b
Unidad de procesamiento 512 b 512 b
Tamaño máximo del mensaje infinito 264-1 b
Número de pasos 64 80
Endianness Big-Endian
Little-Endian
No son las únicas…
• MD5 y SHA no son las únicas funciones hash existentes, aunque si las mas utilizadas.
• Tiger y Whirlpool son ejemplos de funciones que incluso han sido señaladas como posibles sustitutas de SHA.
• Ambas funciones producen hashes mas grandes ( 512 y 192 bits respectivamente), por lo que en teoría son mas resistentes.
• Sin embargo, hay razones para sospechar que no veremos en el futuro implementaciones masivas de ambos protocolos.
15/10/2012 Reinaldo Mayol Arnao
54
Firmas Digitales
15/10/2012 Reinaldo Mayol Arnao 56 FIRMA DIGITAL
Documento Digitalmente Firmado
cifrado Resumen del mensaje cifrado con la Kp del Remitente
Hasta aquí
• Si firmamos digitalmente un documento y luego el Rx verifica la firma podrá saber: – Si el Tx es quien dice ser pues de lo contrario no
hubiese podido cifrar el hash con su Kp.
– Si el mensaje no ha sido cambiado, pues de lo contrario el hash que se trasmitió ( y que fue calculado antes de salir) no podría ser igual que el que se calcula en el receptor. 1
– Podríamos fácilmente extender la seguridad al resto del mensaje cifrándolo también( ahora con la Ku de destino)
15/10/2012 Reinaldo Mayol Arnao
57
Haciendo seguro todo el sistema
15/10/2012 Reinaldo Mayol Arnao 58
Mensaje en el Tx
Hash
Mensaje Cifrado
H
EKptx
Mensaje Cifrado
HashRx
Hash Hash
Calculado
D Ku tx
E K D K
Mensaje Plano Rx
¿Son iguales?
Mezclando ambos mundos
• Podríamos utilizar la criptografía simétrica para cifrar los mensajes con una clave K. Esto resolvería: 1- Confidencialidad 2- Eficiencia del mecanismo de cifrado.
• Utilizar criptografía asimétrica para firmar digitalmente los mensajes, al fin y al cabo el hash es un número que cumple que 0<hash<n. Con esto tenemos: 3-Integridad y 4-Autenticidad.
• PERO ¿Y LA CLAVE K ? ¿Cómo la pasamos entre un extremo y otro de la conexión?
15/10/2012 Reinaldo Mayol Arnao
59
Haciendo seguro todo el sistema, de nuevo
Reinaldo Mayol Arnao
60
Mensaje en el Tx
Hash
Mensaje Cifrado
H
EKptx E K
Mensaje Cifrado
HashRx
Hash Hash
Calculado
D Ku tx
D K
Mensaje Plano Rx
¿Son iguales?
José y Marcos intercambia de forma segura una(s) llave(s) de sesión K y con ella cifran los mensajes José Marcos
15/10/2012
Algoritmo para el intercambio de llaves: Deffie-Hellman
• J y M seleccionan un grupo multiplicativo (con inverso) p y un generador de dicho primo, ambos valores públicos.
• J genera un número aleatorio a y envía a M a mod p
• M genera un número aleatorio b y envía a J b mod p
• En el extremo de Marcos: • M calcula (a)b mod p = ab mod p y luego destruye b
• En el extremo de José: • J calcula (b)a mod p = ba mod p y luego destruye a
• El secreto compartido por J y M es el valor ab mod p=K
• Con K se cifrarán los mensajes entre José y Marcos.
15/10/2012 Reinaldo Mayol Arnao
61
¿Cuan fuerte es DH?
•Un intruso que conozca las claves públicas p y e intercepte el valor a mod p que ha enviado A y el valor b mod p que ha enviado B no podrá descubrir los valores de a, de b y menos ab mod p ...
•Salvo que se enfrente al Problema del Logaritmo Discreto (PLD) que se vuelve computacionalmente intratable para valores de p
grandes.
15/10/2012 Reinaldo Mayol Arnao
62
Todavía nos quedan cosas pendientes
• ¿Cómo hacemos para que todos tengan nuestras llaves públicas?
• ¿Cómo informamos si hemos perdido nuestra llave privada?
• ¿Cuando alguien nos envía su llave pública, que elementos tenemos para confiar el ella?
• ¿Tenemos forma de limitar el uso que se le den a las llaves ?
• ¿Si alguien se va de la empresa, como revocamos su llave?
15/10/2012 Reinaldo Mayol Arnao
63
¿Por qué?
• Existe un mecanismo criptográfico para obtener los objetivos fundamentales de la seguridad...
• Pero es necesario establecer un mecanismo para distribuir de manera segura las claves.
• No podemos tener las claves de todos
• Las claves cambian
• Hace falta que alguien certifique quien es quien
• Hace falta que alguien establezca para que se puede usar una clave
15/10/2012 Reinaldo Mayol Arnao
65
¿Qué es una PKI?
• Una PKI es una combinación de hardware y software, políticas, normas y procedimientos.
• El objetivo fundamental es brindar el soporte para la ejecución de los procedimientos criptográficos estudiados.
• Una PKI ofrece las condiciones para verificar la autenticidad de las Ku de los usuarios1 y regular su uso .
• Se basa en la existencia de Autoridades Certificadoras (CA) establecidas en una configuración jerárquica2.
15/10/2012 Reinaldo Mayol Arnao
66
¿Qué es una CA?
• Entidad encargada de emitir y revocar
certificados digitales.
• La Autoridad de Certificación es un tipo
particular de Prestador de Servicios de
Certificación que legitima ante los terceros que
confían en sus certificados la relación entre la
identidad de un usuario y su clave pública.
15/10/2012 Reinaldo Mayol Arnao
67
¿Qué contiene un certificado?
• Identificación del suscriptor nombrado en el certificado.
• El nombre, la dirección y el lugar donde realiza actividades la entidad de certificación.
• La clave pública del usuario. • La metodología para verificar la
firma digital del suscriptor impuesta en el mensaje de datos.
• El número de serie del certificado.
• Fecha de emisión y expiración del certificado.
15/10/2012 Reinaldo Mayol Arnao 70
Autoridad de Registro
• La función de las Autoridades de Registro es controlar la generación de certificados para los miembros de una entidad.
• Son las RA las que se encargan de la verificación de los datos del solicitante.
• La RA tiene un operador, que una vez verificados los datos del solicitante firma la solicitud.
• La solicitud se envía firmada a la CA, donde el operador CA emite el certificado que devuelve a la RA para que el usuario pueda descargarla.
15/10/2012 Reinaldo Mayol Arnao
72
¿Cómo se verifica un Certificado?
15/10/2012 Reinaldo Mayol Arnao 73
• El primer paso es tener la Ku ( por supuesto el Certificado) de la CA que ha emitido el certificado, de esta forma verificar la firma del certificado.
• Verificar parámetros del certificado como propiedad, caducidad, validez, etc.
• Verificar que las políticas de emisión del certificado sean válidas para el uso que se les pretende dar.
¿Por qué se puede revocar un certificado?
• La Kp está ( o se sospecha) comprometida
• El usuario ya no está certificado por esa CA
• Se sospecha que el certificado de la CA está comprometido
15/10/2012 Reinaldo Mayol Arnao
74
X. 509 v3
• Incluye una serie de extensiones adicionales para resolver deficiencias de la versión 2:
– El campo Sujeto no era adecuado para acomodar algunos nombres de usuarios y aplicaciones
– Existía la necesidad de indicar información de las Políticas de Seguridad
– Es necesario definir los usos de los certificados
– Es necesario poder definir diferentes claves usadas por un usuario.
15/10/2012 Reinaldo Mayol Arnao
76
Extensiones X509 v3
15/10/2012 Reinaldo Mayol Arnao 77
• Cada extensión tiene un campo de riesgo que define si la extensión puede ser ignorada o no.
• Las extensiones se dividen en: – Información sobre
claves y políticas – Atributos de Sujeto y
Emisor – Limitaciones de la Ruta
de Certificación
Pero …
• A pesar de que le mecanismo funciona, lo cierto es que, de cara al usuario, es un proceso complicado y al que no suelen verle utilidad.
• El propio desconocimiento por parte de los administradores del sistema hace que el sistema no sea totalmente implementado o se haga se manera incorrecta.
• Los costos asociados son altos.
• En nuestros países no hay normas claras para el uso de la certificación digital.
15/10/2012 Reinaldo Mayol Arnao
78