Descargar

Seguridad en las redes de computadores (página 2)

Enviado por Pablo Turmero


Partes: 1, 2
edu.red

Criptografía de clave simétrica Criptografía de clave simétrica Requiere emisor, receptor conozca la clave secreta compartida. P: ¿Cómo ponerse de acuerdo en la clave, especialmente si nunca se han visto?

Criptografía de clave pública Enfoque radicalmente distinto [Diffie-Hellman76, RSA78]. Emisor, receptor no comparten clave secreta. Clave de encriptación pública conocida por todos. Clave de desencriptación privada, conocida sólo por el receptor.

edu.red

Criptografía de clave pública (Gp:) Texto plano mensaje, m (Gp:) Texto cifrado (Gp:) Algoritmo de encriptación (Gp:) Algoritmo de desencriptación (Gp:) Clave pública de Roberto (Gp:) Texto plano mensaje (Gp:) K (m) (Gp:) B (Gp:) + (Gp:) K (Gp:) B (Gp:) + (Gp:) Clave privada de Roberto (Gp:) K (Gp:) B (Gp:) – (Gp:) m = K (K (m)) (Gp:) B (Gp:) + (Gp:) B (Gp:) –

edu.red

Algoritmos de encriptación de clave pública Se necesita K ( ) y K ( ), de manera que: B B . . Dada la clave pública K , debería ser imposible computar una clave privada K . B B Requisitos: (Gp:) 1

(Gp:) 2

RSA: algoritmo de Rivest, Shamir y Adleman. + – (Gp:) K (K (m)) = m (Gp:) B (Gp:) B (Gp:) – (Gp:) +

+ –

edu.red

RSA: elegir claves 1. Elegir dos números primos grandes, p y q. (por ejemplo, 1.024 bits cada uno). 2. Calcular n = pq y z = (p-1)(q-1). 3. Elegir e (con e< n) que no tenga factores comunes con z (e y z son primos relativos). 4. Encontrar un número d , tal que ed-1 sea divisible de forma exacta entre z (en otras palabras, ed mod z = 1 ). 5. La clave pública es (n,e). La clave privada es (n,d). (Gp:) K (Gp:) B (Gp:) +

(Gp:) K (Gp:) B (Gp:) –

edu.red

RSA: encriptación, desencriptación 0. Dados (n,e) y (n,d) calculados anteriormente. (Gp:) 1. Para encriptar patrón de bit , m, calcular: (Gp:) c = m mod n (Gp:) e (Gp:) (es decir, el resto cuando m se divide por n).

2. Para desencriptar el patrón de bit recibidos, c, calcular: (Gp:) m = c mod n (Gp:) d

(es decir, el resto cuando c se divide por n). d (Gp:) m = (m mod n) (Gp:) e (Gp:) mod n (Gp:) d

¡Magia! c e

edu.red

Ejemplo RSA Roberto elige p=5, q=7. Entonces n=35, z=24. e=5 (entonces e, z primo relativo). d=29 (entonces ed-1 es divisible de forma exacta entre z. (Gp:) letra (Gp:) m (Gp:) m (Gp:) e (Gp:) c = m mod n (Gp:) e (Gp:) l (Gp:) 12 (Gp:) 1524832 (Gp:) 17 (Gp:) c (Gp:) m = c mod n (Gp:) d (Gp:) 17 (Gp:) 481968572106750915091411825223071697 (Gp:) 12 (Gp:) c (Gp:) d (Gp:) letra (Gp:) l (Gp:) Encriptación: (Gp:) Desencriptación:

edu.red

RSA: ¿por qué es (Gp:) m = (m mod n) (Gp:) e (Gp:) mod n (Gp:) d

(Gp:) (m mod n) (Gp:) e (Gp:) mod n = m mod n (Gp:) d (Gp:) ed

Resultado útil de la teoría de los números: si p,q primo y n = pq, entonces: (Gp:) x mod n = x mod n (Gp:) y (Gp:) y mod (p-1)(q-1)

(Gp:) = m mod n (Gp:) ed mod (p-1)(q-1)

(Gp:) = m mod n (Gp:) 1

(Gp:) = m

(usando la teoría de los números el resultado es el anterior) (si elegimos ed para que sea divisible entre (p-1)(q-1) con resto 1) ?

edu.red

RSA: otra propiedad importante La siguiente propiedad va a ser muy útil más adelante: (Gp:) K (K (m)) = m (Gp:) B (Gp:) B (Gp:) – (Gp:) + (Gp:) K (K (m)) (Gp:) B (Gp:) B (Gp:) + (Gp:) – (Gp:) =

Usar primero clave pública, seguida de clave privada Usar primero clave privada, seguida de clave pública ¡El resultado es el mismo!

edu.red

Autenticación Objetivo: Roberto quiere que Alicia le “demuestre” su identidad. Protocolo pa1.0: Alicia dice “Soy Alicia”. (Gp:) ¿Escenario de fallo? (Gp:) “Soy Alicia”

edu.red

Autenticación Objetivo: Roberto quiere que Alicia le “demuestre” su identidad. Protocol pa1.0: Alicia dice “Soy Alicia”. (Gp:) En una red, Roberto no puede “ver” a Alicia, entonces Gertrudis simplemente dice que ella es Alicia. (Gp:) “Soy Alicia”

edu.red

Autenticación: otro intento Protocolo pa2.0: Alicia dice “Soy Alicia” en un paquete IP que contiene su dirección IP origen. (Gp:) ¿Escenario de fallo? (Gp:) “Soy Alicia” (Gp:) Dirección IP de Alicia

edu.red

Autenticación: otro intento Protocol pa2.0: Alicia dice “Soy Alicia” en un paquete IP que contiene su dirección IP.

(Gp:) Gertrudis puede crear un paquete “falso” de la dirección de Alicia (Gp:) “Soy Alicia” (Gp:) Dirección IP de Alicia

edu.red

Autenticación: otro intento Protocolo pa3.0: Alicia dice “Soy Alicia” y envía su contraseña secreta para “demostrarlo”. . (Gp:) ¿Escenario de fallo? (Gp:) “Soy Alicia” (Gp:) Dirección IP de Alicia (Gp:) Contraseña De Alicia (Gp:) OK (Gp:) Dirección IP de Alicia

edu.red

Autenticación: otro intento Protocolo pa3.0: Alicia dice “Soy Alicia” y envía su contraseña secreta para demostrarlo. (Gp:) Ataque de reproducción: Gertrudis graba el paquete de Alicia y más tarde se lo reproduce a Roberto. (Gp:) “Soy Alicia” (Gp:) Dirección IP de Alicia (Gp:) Contraseña de Alicia (Gp:) OK (Gp:) Dirección IP de Alicia (Gp:) “Soy Alicia” (Gp:) Dirección IP de Alicia (Gp:) Password de Alicia

edu.red

Autenticación: otro intento más Protocolo pa3.1: Alicia dice “Soy Alicia” y envía su contraseña secreta encriptada para demostrarlo. (Gp:) ¿Escenario de fallo? (Gp:) “Soy Alicia” (Gp:) Dirección IP de Alicia (Gp:) Contraseña encriptada (Gp:) OK (Gp:) Dirección IP de Alicia

edu.red

Autenticación: otro intento Protocolo pa3.1: Alicia dice “Soy Alicia” y envía su contraseña secreta encriptada para demostrarlo. (Gp:) ¡Grabar y reproducir sigue funcionando! (Gp:) “Soy Alicia” (Gp:) Dirección IP de Alicia (Gp:) Contraseña encriptada (Gp:) OK (Gp:) Dirección IP de Alicia (Gp:) “Soy Alicia” (Gp:) Dirección IP de Alicia (Gp:) Contraseña encriptada

edu.red

Autenticación: otro intento más Objetivo: evitar ataque de reproducción. Núnico: número (R) utilizado una única vez durante su periodo de vida. pa4.0: para probar a Alicia “en directo”, Roberto le envía un núnico, R. Alicia debe devolver R, encriptado con una clave secreta compartida. (Gp:) ¿Fallos, inconvenientes? (Gp:) “Soy Alicia” (Gp:) R (Gp:) K (R) (Gp:) A-B (Gp:) Alicia está en directo, y sólo Alicia conoce la clave para encriptar el núnico, así que ¡ella tiene que ser Alicia!

edu.red

Autenticación: pa5.0 pa4.0 requiere una clave simétrica compartida. ¿La podemos autenticar usando técnicas de clave pública? pa5.0: usa un núnico, criptografía de clave pública. (Gp:) “Soy Alicia” (Gp:) R (Gp:) Roberto calcula

(Gp:) K (R) (Gp:) A (Gp:) – (Gp:) “Envíame tu clave pública” (Gp:) K (Gp:) A (Gp:) + (Gp:) (K (R)) = R (Gp:) A (Gp:) – (Gp:) K (Gp:) A (Gp:) + (Gp:) y sabe que sólo Alicia puede tener la clave privada que encripta a R, esto es: (Gp:) (K (R)) = R (Gp:) A (Gp:) – (Gp:) K (Gp:) A (Gp:) +

edu.red

pa5.0: agujero de seguridad Ataque de hombre (mujer) interpuesto: Gertrudis actúa como Alicia (para Roberto) y como Roberto (para Alicia). (Gp:) Soy Alicia (Gp:) Soy Alicia (Gp:) R (Gp:) T (Gp:) K (R) (Gp:) – (Gp:) Envíame tu clave pública (Gp:) T (Gp:) K (Gp:) + (Gp:) A (Gp:) K (R) (Gp:) – (Gp:) Envíame tu clave pública (Gp:) A (Gp:) K (Gp:) + (Gp:) T (Gp:) K (m) (Gp:) + (Gp:) T (Gp:) m = K (K (m)) (Gp:) + (Gp:) T (Gp:) – (Gp:) Gertrudis consigue (Gp:) envía m a Alicia encriptado con la clave pública de Alicia. (Gp:) A (Gp:) K (m) (Gp:) + (Gp:) A (Gp:) m = K (K (m)) (Gp:) + (Gp:) A (Gp:) – (Gp:) R

edu.red

pa5.0: agujero de seguridad Ataque de hombre (mujer) interpuesto: Gertrudis actúa como Alicia (para Roberto) y como Roberto (para Alicia). Difícil de detectar: Roberto recibe todo lo que Alicia le envía, y viceversa. ¡El problema es que Gertrudis también recibe los mensajes!

edu.red

Firma digital Técnica criptográfica análoga a las firmas hechas a mano. Emisor (Roberto) firma digitalmente un documento y establece que es su propietario/creador. Verificable, no falsificable: destinatario (Alicia) puede demostrarle a alguien que Roberto, y no otra persona (incluida Alicia), ha firmado el documento.

edu.red

Firma Digital Firma digital simple para mensaje m Roberto firma m encriptándolo con su clave privada KB, creando un mensaje “firmado”, KB(m). (Gp:) – (Gp:) –

Querida Alicia Como te echo de menos. ¡Pienso en ti todo el día!…(bla bla bla) Roberto Mensaje de Roberto, m Algoritmo de encriptación de clave pública Clave privada de Roberto (Gp:) K (Gp:) B (Gp:) –

Mensaje de Roberto, m, firmado (encriptado) con su clave privada (Gp:) K (Gp:) B (Gp:) –

(m)

edu.red

Firma digital Supongamos que Alicia recibe el mensaje m, con firma digital KB(m). Alicia verifica m firmado por Roberto aplicando la clave pública de Roberto KB a KB(m) y comprueba que KB(KB(m) ) = m. Si KB(KB(m) ) = m, cualquiera que haya firmado m debe haber usado la clave privada de Roberto.

(Gp:) + (Gp:) + (Gp:) – (Gp:) – (Gp:) – (Gp:) – (Gp:) +

Entonces Alicia verifica que: Roberto ha firmado m. Nadie más ha firmado m. Roberto ha firmado m y no m’. No repudiación: Alicia puede tomar m, y la firma KB(m) para juzgar y comprobar que Roberto ha firmado m. –

edu.red

Resumir el mensaje Computacionalmente caro encriptar con clave pública mensajes largos. Objetivo: longitud fija, fácil de computar la “huella dactilar”. Aplicar función de dispersión H a m, obtener resumen del mensaje de tamaño fijo, H(m). Propiedades de la función de dispersión: Muchos a uno. Produce resumen de mensaje de tamaño fijo (huella dactilar). Dado resumen de mensaje x, computacionalmente inviable hallar m para que x = H(m).

(Gp:) Mensaje largo m (Gp:) H: función de dispersión (Gp:) H(m)

edu.red

Suma de comprobación de Internet: funciones de dispersión con criptografía pobre Suma de comprobación de Internet tiene algunas propiedades de la función de dispersión: Produce resúmenes de mensaje de longitud fija (suma de 16 bits). Es muchos a uno.

Pero dado el mensaje con valor de dispersión dado, es fácil encontrar otro mensaje con el mismo valor de dispersión: (Gp:) I O U 1 0 0 . 9 9 B O B (Gp:) 49 4F 55 31 30 30 2E 39 39 42 D2 42 (Gp:) Mensaje (Gp:) Representación ASCII (Gp:) B2 C1 D2 AC (Gp:) I O U 9 0 0 . 1 9 B O B (Gp:) 49 4F 55 39 30 30 2E 31 39 42 D2 42 (Gp:) Mensaje (Gp:) B2 C1 D2 AC (Gp:) ¡diferentes mensajes pero sumas de comprobación idénticas! (Gp:) Representación ASCII

edu.red

Roberto envía mensaje firmado digitalmente: Alicia verifica la firma y la integridad del mensaje firmado digitalmente: Firma digital = resumen del mensaje firmado (Gp:) Mensaje largo m (Gp:) H: función de dispersión (Gp:) H(m) (Gp:) Firma digital (encriptada) (Gp:) Clave privada de Roberto (Gp:) K (Gp:) B (Gp:) – (Gp:) + (Gp:) KB(H(m)) (Gp:) – (Gp:) Resumen del mensaje firmado (Gp:) KB(H(m)) (Gp:) – (Gp:) Mensaje extenso (Gp:) H(m) (Gp:) Firma digital (desencrip) (Gp:) H(m) (Gp:) Clave pública de Roberto (Gp:) K (Gp:) B (Gp:) + (Gp:) igual ? (Gp:) H: función de dispersión (Gp:) Resumen del mensaje firmado

edu.red

Algoritmos para la función de dispersión MD5 función de dispersión ampliamente utilizada (RFC 1321): Calcula un resumen de mensaje de 128 bits en un proceso de cuatro pasos. Cadena x arbitraria 128-bit, parece difícil construir mensaje m cuya dispersión MD5 sea igual a x. También se utiliza SHA-1: Estándar de EE.UU. [NIST, FIPS PUB 180-1]. Resumen de mensaje de 160 bits.

edu.red

Intermediario de confianza Problema de clave simétrica: ¿Cómo pueden dos entidades establecer clave secreta compartida a través de la red? Solución: Centro de distribución de claves (KDC) actúa como intermediario entre las entidades. Problema de clave pública: Cuando Alicia obtiene la clave pública de Roberto (de un sitio web, correo electrónico, disquete), ¿cómo puede saber que es la clave pública de Roberto y no la de Gertrudis? Solución: Autoridad de certificación de confianza (CA).

edu.red

Centro de distribución de claves (KDC) Alicia, Roberto necesita una clave simétrica compartida. KDC: servidor comparte diferentes claves secretas con cada usuario registrado (muchos usuarios). Alicia, Roberto conoce sus claves simétricas, KA-KDC KB-KDC , para comunicarse con KDC. (Gp:) KB-KDC (Gp:) KX-KDC (Gp:) KY-KDC (Gp:) KZ-KDC (Gp:) KP-KDC (Gp:) KB-KDC (Gp:) KA-KDC (Gp:) KA-KDC (Gp:) KP-KDC (Gp:) KDC

edu.red

Alicia y Roberto se comunican: utilizan R1 como clave de sesión para la encriptación simétrica compartida. P: ¿Cómo permite el KDC a Roberto que Alicia determine la clave simétrica compartida para comunicarse entre sí? (Gp:) Alicia conoce R1 (Gp:) Roberto conoce cómo usar R1 para comunicarse con Alicia (Gp:) KDC genera R1 (Gp:) KB-KDC(A,R1) (Gp:) KA-KDC(A,B) (Gp:) KA-KDC(R1, KB-KDC(A,R1) )

Centro de distribución de claves (KDC)

edu.red

Autoridades de certificación Autoridad de certificación(CA): vincula clave pública a una entidad particular, E. E (persona, router) registra su clave pública con CA: E proporciona “prueba de identidad” a CA. CA crea certificado que vincula a E a su clave pública. Certificado que contiene la clave pública de E firmada digitalmente por CA. CA dice “Esta el la clave pública de E”. (Gp:) Clave pública de Roberto (Gp:) K (Gp:) B (Gp:) + (Gp:) Información de identificación de Roberto

(Gp:) Firma digital (encript.) (Gp:) Clave privada de la CA (Gp:) K (Gp:) CA (Gp:) – (Gp:) K (Gp:) B (Gp:) + (Gp:) Certificado de la clave pública de Roberto, firmada por la CA

edu.red

Autoridades de certificación Cuando Alicia quiere la clave pública de Roberto: Obtiene el certificado de Roberto (de Roberto o de cualquiera). Aplica la clave pública CA al certificado de Roberto, obtiene la clave pública de Roberto. (Gp:) Clave pública de Roberto (Gp:) K (Gp:) B (Gp:) + (Gp:) Firma digital (desencript.) (Gp:) Clave pública de la CA (Gp:) K (Gp:) CA (Gp:) + (Gp:) K (Gp:) B (Gp:) +

edu.red

Un certificado contiene: Número de serie (único para el emisor). Información sobre el propietario del certificado, incluyendo el algoritmo y el valor de la clave (no mostrado). Información sobre el emisor del certificado. Periodo de validez. Firma digital del emisor.

Partes: 1, 2
 Página anterior Volver al principio del trabajoPágina siguiente