Logo Studenta

Slides TD IV - clases (15)

¡Este material tiene más páginas!

Vista previa del material en texto

TD4 2022TD4 2022
Escenario y actores
3
▪ Alice y Bob desean comunicarse de forma segura
▪ Trudy, con intenciones maliciosas, puede interceptar, manipular, 
eliminar o agregar mensajes
▪ Terminología conocida y frecuente en el ámbito de la seguridad
emisor
seguro
receptor
 seguro
canal
mensajes
(datos y/o control)
datos datos
BobAlice
Trudy
TD4 2022TD4 2022
Actores maliciosos
¿Qué acciones puede llevar adelante Trudy en la realidad?
■ Interceptar mensajes (sniffing)
■ Inyectar mensajes en la conexión
■ Impersonar otros actores (e.g. spoofing de direcciones en los 
paquetes)
■ Tomar control de la conexión eliminando al emisor o al receptor 
y adoptando dicho rol (hijacking)
■ Denegar servicio, prohibiendo que otros usuarios legítimos 
utilicen el servicio afectado
■ …
TD4 2022TD4 2022 5
Criptografía
TD4 2022TD4 2022
Criptografía: escenario y terminología
m: mensaje en texto plano
K
A
(m): texto cifrado (encriptado con la clave KA)
m = K
B
(K
A
(m))
texto plano texto planotexto cifrado
KA
algoritmo 
de cifrado
algoritmo de 
descifrado
Clave de 
cifrado
de Alice
Clave de 
descifrado
de Bob
KB
6
TD4 2022TD4 2022
Criptografía simétrica
texto plano texto plano
KS KS
texto cifrado
K (m)S
Alice y Bob comparten la misma clave: KS
▪ e.g., la clave es el patrón de desplazamiento en el cifrado del 
César (caso especial de cifrado por sustitución –ver siguiente 
slide)
 ¿Cómo hacen Alice y Bob para acordar una clave?
7
algoritmo 
de cifrado
algoritmo de 
descifrado
TD4 2022TD4 2022
Criptografía simétrica: DES
8
DES: Data Encryption Standard
▪ Standard de cifrado de EEUU [NIST 1993]
▪ Clave simétrica de 56 bits; toma textos planos de 64 bits
▪ Cifrado por bloques (block cipher) que opera en modo CBC (cipher 
block chaining)
▪ Seguridad de DES:
• En 1999 se logró quebrar una clave por fuerza bruta en menos 
de un día (notar que el espacio de claves es “abordable”)
• No se conocen ataques analíticos buenos
▪ Puede robustecerse el método vía 3DES: cifrar tres veces con tres 
claves diferentes
TD4 2022TD4 2022
AES: Advanced Encryption Standard
9
▪Standard del NIST (reemplazó a DES en noviembre de 2001)
▪Procesa datos en bloques de 128 bits
▪Emplea claves de 128, 192, ó 256 bits
▪Un ataque de fuerza bruta que tome 1 segundo para DES 
tomaría 149 trillones de años para AES
TD4 2022TD4 2022
Criptografía de clave pública
10
Criptografía simétrica
▪ Necesita que los interlocutores 
conozcan una clave compartida
▪ La pregunta es cómo acordar 
una –particularmente entre 
interlocutores que “no se 
conocen”
Criptografía de clave pública
▪ Adopta un enfoque muy diferente 
▪ Los interlocutores no comparten 
una clave secreta
▪ La clave de cifrado es pública 
(todos la conocen)
▪ La clave de descifrado es privada 
(sólo la conoce el receptor del 
mensaje cifrado)
TD4 2022TD4 2022
Criptografía de clave pública
11
m = K (K (m))B
+
B
-
texto plano
K (m)
B
+
texto cifradotexto plano
mensaje, m
K 
B
+ Clave pública de Bob 
Clave privada de BobK 
B
-
Esta idea provocó una revolución en la criptografía –previamente, sólo 
basada en métodos simétricos
algoritmo de 
descifrado
algoritmo 
de cifrado
TD4 2022TD4 2022
RSA: generación de claves
12
1. Elegir dos números primos p, q grandes (e.g. de 1024 bits)
2. Calcular n = pq; z = (p-1)(q-1)
3. Elegir e < n de modo tal que no posea factores comunes con z 
(e y z se dicen coprimos)
4. Elegir d de modo tal que ed-1 sea divisible por z 
 (es decir, ed mod z = 1)
5. La clave pública es el par (n,e); la privada, el par (n,d)
K B
+ K B
-
TD4 2022TD4 2022
RSA: cifrado y descifrado
13
0. Dadas las claves (n,e) y (n,d),
1. Para cifrar el mensaje m (< n), calcular
c = me mod n
2. Para descifrar el patrón de bits c, calcular
c
m = cd mod n
m = (me mod n)d mod n
TD4 2022TD4 2022
RSA: ejemplo
14
■ Supongamos que tomamos p = 5 y q = 7 → n = 35 y z = 24
■ Supongamos que elegimos e = 5 (e y z son coprimos) 
■ Podemos instanciar d = 29 (→ ed-1 es divisible por z)
■ Luego,
entrada m me c = me mod n
00011001 25 9765625 30
cifrado:
c m = cd mod n
30 68630377364883 x 1029 25
cddescifrado:
TD4 2022TD4 2022
Demostrando que RSA funciona
15
▪ Para ver que el método es correcto, debemos comprobar que
cd mod n = m, con c = me mod n
▪ Necesitamos el teorema de Euler: para cualquier a coprimo con n,
 aφ(n) = 1 mod n, siendo φ(n) la función phi de Euler
▪ Vale que φ(n) = φ(pq) = (p - 1)(q - 1) = z 
▪ Luego, 
 cd mod n = (me mod n)d mod n
 = med mod n 
 = m(zk + 1) mod n
 = (mzk m) mod n
 = (mz mod n)k * m mod n
 = m mod n
ed ≡ 1 mod z
teo. Euler (si m no es coprimo con n: usar 
teorema chino del resto)
TD4 2022TD4 2022
Seguridad de RSA
16
▪ Dada una clave pública (n, e), ¿cuán difícil es computar d?
▪ Necesitamos factorizar n (i.e. encontrar sus factores primos)
•Problema computacionalmente difícil
•No existen hasta ahora algoritmos tradicionales de tiempo 
polinomial para factorizar números suficientemente grandes (a 
excepción de algoritmos cuánticos –el algoritmo de Shor)
•Los semiprimos (producto de dos primos) con factores de tamaño 
similar suelen ser los casos más complicados
TD4 2022TD4 2022
RSA en la práctica
17
▪ La exponenciación (modular) en RSA es costosa
▪ Los algoritmos simétricos (como AES) permiten encriptar 
considerablemente más rápido
▪ En la práctica, la criptografía de clave pública se utiliza para 
establecer una conexión segura y derivar una clave 
compartida de sesión para cifrar los datos posteriores con un 
método simétrico
TD4 2022TD4 2022 18
Autenticación
TD4 2022TD4 2022
Autenticación
19
Objetivo: Alice quiere demostrar su identidad ante Bob
Protocolo ap1.0: Alice dice “Soy Alice!”
“Soy Alice!”
TD4 2022TD4 2022 20
En la red, Bob no tiene 
forma de ver a Alice: 
Trudy podría declarar 
que es Alice sin que Bob 
se dé cuenta
Objetivo: Alice quiere demostrar su identidad ante Bob
Protocolo ap1.0: Alice dice “Soy Alice!”
“Soy Alice!”
Autenticación
TD4 2022TD4 2022
Autenticación: segundo intento
21
Objetivo: Alice quiere demostrar su identidad ante Bob
Protocolo ap2.0: Alice dice “Soy Alice!” en un datagrama IP 
con su propia dirección
“Soy Alice!”IP deAlice
TD4 2022TD4 2022 22
Autenticación: segundo intento
Objetivo: Alice quiere demostrar su identidad ante Bob
Protocolo ap2.0: Alice dice “Soy Alice!” en un datagrama IP 
con su propia dirección
“Soy Alice!”IP deAlice
Trudy podría generar un 
datagrama artificial 
spoofeando la dirección 
IP de Alice
TD4 2022TD4 2022 23
Autenticación: tercer intento
Objetivo: Alice quiere demostrar su identidad ante Bob
Protocolo ap3.0: Alice dice “Soy Alice!” y envía su 
contraseña para probar que es ella
“Soy Alice!”IP de Alice
contra-
seña
OK
TD4 2022TD4 2022 24
ataque de replay: 
Trudy sniffea y 
guarda el paquete de 
Alice; luego lo reenvía 
a Bob
Objetivo: Alice quiere demostrar su identidad ante Bob
Autenticación: tercer intento
Protocolo ap3.0: Alice dice “Soy Alice!” y envía su 
contraseña para probar que es ella
“Soy Alice!”IP de Alice
contra-
seña
OK
“Soy Alice!”IP de Alice
contra-
seña
OK
TD4 2022TD4 2022 25
Objetivo: Alice quiere demostrar su identidad ante Bob
Autenticación: tercer intento mejorado
Protocolo ap3.1: Alice dice “Soy Alice!” y envía su 
contraseña encriptada para probar que es ella
“Soy Alice!”IP de Alice
contr.
enc. 
OK
TD4 2022TD4 2022 26
playback attack still 
works: Trudy records 
Alice’s packet
and later plays it 
back to Bob 
Objetivo: Alice quiere demostrar su identidad ante Bob
Autenticación: tercer intento mejorado
Protocolo ap3.1: Alice dice “Soy Alice!” y envía su 
contraseña encriptada para probar que es ellasigue siendo posible 
hacer un replay del 
mensaje original de 
Alice!
“Soy Alice!”IP de Alice
contr.
enc. 
OK
“Soy Alice!”IP de Alice
contr.
enc. 
OK
TD4 2022TD4 2022 27
nonce: valor numérico utilizado una única vez (R)
“Soy Alice!”
Bob sabe que Alice está 
activa y que del otro lado 
está ella (sólo comparte la 
clave con ella)
Autenticación: cuarto intento
Objetivo: evitar ataques de replay
Protocolo ap4.0: Bob envía a Alice un nonce R; Alice debe 
devolver R cifrado con una clave compartida
KAB(R)
R
TD4 2022TD4 2022 28
El protocolo anterior emplea una clave compartida
¿Podemos lograr autenticación utilizando criptografía de clave 
pública?
ap5.0: uso de nonces y claves públicas
Autenticación: cuarto intento mejorado
“Soy Alice!”
KA
- (R)
R
¿pub key?
KA
+ 
Bob calcula
KA
+(KA
-(R)) = R
y, sabiendo que sólo 
Alice posee la clave 
privada KA
-, concluye 
que se trata de Alice
TD4 2022TD4 2022 29
Ataque man-in-the-middle: Trudy se hace pasar por Alice hacia 
Bob y viceversa
“Soy Alice!” “Soy Alice!”
R
Autenticación: fallas en ap5.0
R
KA
- (R) KT
- (R)
¿pub key?
KA
+
¿pub key?
KT
+ Bob verifica el nonce y 
autentica a Trudy
(como Alice)
Bob envía un mensaje 
m a Alice
KT
+ (m)KT
-(KT
+ (m)) = m
Trudy descifra el mensaje y 
lo reenvía a Alice cifrándolo 
con su clave pública
KA
+ (m)
Alice descifra el 
mensaje de Bob; 
nunca se enteró de 
que Trudy pudo 
leerlo
 ¿Qué salió mal?
TD4 2022TD4 2022 30
Integridad
TD4 2022TD4 2022
Firmas digitales
31
Mecanismo criptográfico análogo a las firmas de puño y letra
▪ El emisor firma digitalmente un documento de su autoría
▪ Verificable y no falsificable: el receptor puede probar que sólo el emisor 
del documento produjo la firma que lo acompaña
Algoritmo de 
cifrado de 
clave pública
Clave privada 
de Emma, KE
-
Mensaje m (Emma)
Lucio:
Tomemos firmas digitales 
en el parcial. Acá te dejo el 
link al ejercicio.
Emma
Lucio:
Tomemos firmas 
digitales en el parcial. 
Acá te dejo el link al 
ejercicio.
Emma
KE
-(m) 
m, KE
-(m) 
▪ Esquema básico: firmar el mensaje m cifrándolo con la clave privada K 
-
TD4 2022TD4 2022 32
Luego, Lucio verifica que:
▪ Emma firmó m
▪ Ninguna otra persona firmó m
▪ Emma firmó m y no otro mensaje m’ (integridad)
No repudio:
■ Lucio puede demostrar que fue Emma quien firmó el mensaje m
▪ Supongamos que Lucio recibe el mensaje m con firma KB
-(m)
▪ Lucio verifica la firma aplicando la clave pública KB
+ de Emma a la firma 
digital y asegurando que KB
+(KB
-(m) ) = m
▪ Si esto vale, quienquiera que haya firmado m debe haber empleado la 
clave privada de Emma
-
Firmas digitales
TD4 2022TD4 2022
Resúmenes de mensajes (digests)
33
Algunas propiedades de las funciones de hash criptográficas:
▪ No son inyectivas (“muchos a uno”)
▪ Produce una salida (digest) de longitud fija (e.g. 256 bits)
▪ Dado un digest x, es computacionalmente inviable encontrar un m tal 
que H(m) = x (i.e. resistente a la preimagen)
mensaje 
largo m
función 
de hash H H(m)
Es computacionalmente costoso cifrar mensajes largos con criptografía de 
clave pública
Objetivo: obtener resúmenes de nuestros mensajes que sean de longitud 
fija y fáciles de computar
▪ Para calcular estos digests de mensajes, utilizamos funciones de hash 
criptográficas:
TD4 2022TD4 2022
Ejemplo (malo): checksum de Internet
34
El algoritmo de checksum de Internet posee algunas de estas 
propiedades:
▪ Genera digests de longitud fija (16 bits)
▪ Es “muchos a uno”
…pero, dado un mensaje con cierto digest, es fácil encontrar otro 
mensaje con el mismo digest (no es resistente a colisiones)
I O U 1
0 0 . 9
9 B O B
49 4F 55 31
30 30 2E 39
39 42 D2 42
mensaje en hexa
B2 C1 D2 AC
I O U 9
0 0 . 1
9 B O B
49 4F 55 39
30 30 2E 31
39 42 D2 42
mensaje en hexa
B2 C1 D2 AC
mensajes distintos,
mismo checksum
TD4 2022TD4 2022
Algunas funciones de hash populares
35
▪ MD5 (RFC 1321) 
• Calcula digests de 128 bits en un proceso de cuatro rounds
• Si bien es vulnerable, continúa en uso (por ejemplo para verificar 
integridad en las transferencias de archivos)
• En 2013 se descubrió un ataque para generar colisiones de MD5 
que corre en menos de un segundo en una computadora estándar
▪ SHA-1 es otra popular (también vulnerable)
• Estandarizada en EEUU por el NIST
• Produce digests de 160 bits
• SHA-2 y SHA-3 (sus sucesoras) se consideran seguras al día de 
hoy
TD4 2022TD4 2022
Firma digital: digest firmado
36
+
Bob envía el mensaje con su firma digital:
mensaje 
largo m
función 
de hash H H(m)
Alice valida la firma y la 
integridad del mensaje firmado:
H(m) H(m)
mensaje 
largo m
clave 
privada 
de Bob KB
- 
KB
-(H(m))
digest
cifrado
firma digital 
(descifrado)
¿iguales?
firma digital 
(cifrado)
función 
de hash H
clave 
pública 
de Bob KB
+ 
KB
-(H(m))
digest
cifrado
TD4 2022TD4 2022
Retomando el protocolo ap5.0
37
▪ Para corregir el protocolo ap5.0, necesitamos certificar 
las claves públicas
▪ Si Bob pudiera comprobar que la clave pública de Alice 
es auténtica, el ataque man-in-the-middle de Trudy no 
tendría efecto
¿pub key? ¿pub key?
Bob comprueba que la clave 
no está debidamente 
certificada y descarta la 
comunicación
. . . . . .
KA
+ KT
+
TD4 2022TD4 2022
Autoridades de Certificación (CAs)
38
▪ Las autoridades de certificación (CAs) vinculan una clave pública 
con una entidad (persona física, sitio web, router, etc.)
▪ Cuando una entidad E desea certificar su clave pública, la CA 
debe verificar la identidad del solicitante
• La CA genera un certificado vinculando la identidad de E con su 
clave pública
• Dicho certificado está firmado digitalmente por la CA
certificado para
la clave pública de Bob
(firmado por la CA)
firma 
digital 
(cifrado)
clave 
pública 
de Bob KB
+ 
Datos de la 
identidad de 
Bob
clave 
privada 
de la CA KCA
- 
TD4 2022TD4 2022
Autoridades de Certificación (CAs)
39
▪ Cuando Alice quiere utilizar la clave pública de Bob,
■ Obtiene el certificado de Bob
■ Utiliza la clave pública de la CA para validar el certificado
■ Extrae del certificado la clave pública de Bob
firma digital 
(descifrado)
clave 
pública 
de BobKB
+ 
clave 
pública 
de la CA KCA
+ 
certificado
de Bob
TD4 2022TD4 2022
Certificados en Internet
40
▪ En los protocolos de Internet, los certificados de clave pública siguen el 
estándar X.509 de la ITU (International Telecommunication Union)
■ Describe el formato de los certificados y el mecanismo de autenticación 
para utilizarlos
■ Incluye datos de identidad de la entidad dueña del certificado, el período 
de validez del mismo, los algoritmos criptográficos utilizados y la firma 
digital de la CA, entre otros campos
▪ Dos tipos de certificados: certificado de CA y certificado de entidad final
■ Los certificados de CA se pueden usar para firmar otros certificados
■ Al certificado al comienzo de la cadena de certificación se lo conoce 
como certificado root
▪ Los navegadores suelen traer una lista de certificados root de las CAs 
más importantes (e.g. IdenTrust, DigiCert, Let’s Encrypt, etc.)
▪ Los servidores web envían la cadena completa de certificados 
intermedios para que los navegadores puedan realizar las validaciones 
correspondientes

Continuar navegando