1 Seguridad 2005 GSyC Redes de Área Local
Problemas 2 Problemas Privacidad o secreto. Mantener la información fuera de las manos de usuarios no autorizados. Autenticación. Determinar de la identidad del interlocutor. No repudio. Poder demostrar quien es el autor de un mensaje. Control de integridad. Garantizar que un mensaje no ha sido modificado.
Problemas (cont.) 3 Soluciones Nivel físico: Proteger el cable de escuchas. Nivel de enlace: Cifrar al enviar y descifrar al recibir. Qué hacen los encaminadores? Nivel de red: IPsec, cifrado en IPv6. Cortafuegos. Nivel de transporte: Cifrado de conexiones. SSL. Soluciones de privacidad, pero no de autenticación o no repudio: nivel de aplicación. Los fallos de seguridad no suelen ser técnicos. Ver libro de Ross Anderson Security Engineering.
Problemas (cont.) 4 Criptología Passive intruder just listens Intruder Active intruder can alter messages Plaintext, P Encryption method, E Decryption method, D Plaintext, P Encryption key, K Ciphertext, C = E K (P) Decryption key, K Criptología = criptografía (inventar códigos) + criptoanálisis (atacarlos)
Problemas (cont.) 5 Potencia del intruso El intruso puede: Puede escuchar mensajes. Puede modificar mensajes. Puede replicar mensajes. Puede borrar mensajes. Principio de Kerckhoff: Los algoritmos deben ser públicos; sólo las claves son secretas.
Problemas (cont.) 6 Criptoanálisis La longitud de las claves es fundamental. Dependerá de los recursos que cueste probar todas las combinaciones (para ataques de fuerza bruta). Un criptoanalista puede disponer de: Sólo texto cifrado. El mismo texto crifrado y en claro. La capacidad de cifrar lo que quiera.
Problemas (cont.) 7 Métodos clásicos Sustitución. Cada letra se sustituye por otra, según una tabla. Se puede atacar usando combinaciones y frecuencias de aparición ( El escarabajo de oro, Edgar Allan Poe). Transposición. Se reordenan las letras del mensaje. Se puede atacar buscando palabras. M E G A B U C K 7 4 5 1 2 8 3 6 p l e a s e t r a n s f e r o n e m i l l i o n d o l l a r s t o m y s w i s s b a n k a c c o u n t s i x t w o t w o a b c d Plaintext pleasetransferonemilliondollarsto myswissbankaccountsixtwotwo Ciphertext AFLLSKSOSELAWAIATOOSSCTCLNMOMANT ESILYNTWRNNTSOWDPAEDOBUOERIRICXB
Problemas (cont.) 8 Plantillas de un solo uso. Cada bit del mensaje se enmascara (x-or) con un bit de una plantilla aleatoria (la clave). Seguridad perfecta. Clave larga. Tráfico limitado por el tamaño de la plantilla. Se pueden usar generadores de (pseudo)aleatorios, donde la clave es la semilla, pero son más débiles. Otra opción es usar criptografía cuántica.
Problemas (cont.) 9 Principios criptográficos Los mensajes cifrados deben incluir redundancia. Esto evita que una modificación de los mismos resulte en otro mensaje válido. Mejor si no es relleno predecible. El necesario controlar la frescura de los mensajes recibidos, para evitar ataques con mensajes antiguos. Se puede marcar cada mensaje con el sello de tiempo y darle un periodo de validez.
Problemas (cont.) 10 Métodos modernos: Criptografía de clave secreta El proceso se hace con ordenadores: sustituciones y transposiciones más complejas. P-box S-box Product cipher Decoder: 3 to 8 Encoder: 8 to 3 S 1 S 5 S 9 S 2 P 1 P 2 P 3 P 4 S 3 S 6 S 10 S 7 S 11 S 4 S 8 S 12 (a) (b) (c)
Problemas (cont.) 11 Data Encryption Standard (DES) Adoptado por el gobierno USA en 1977. Cifra bloques de 64 bits con claves de 56 bits. 64-Bit plaintext L i-1 R i-1 Initial transposition Iteration 1 56-Bit key Iteration 2 Iteration 16 L i-1 f(r i-1, K i ) 32-Bit swap Inverse transposition 64-Bit ciphertext (a) 32 bits L i (b) 32 bits R i
Problemas (cont.) 12 Triple DES DES no es seguro. Claves muy pequeñas. Alternativa: Aplicar DES varias veces. Hay ataques para 2 veces. Solución: Triple DES (1979, IS8732). K 1 K 2 K 1 K 1 K 2 K 1 P E D E C C D E D P (a) (b) Clave de 112 bits. Seguro (por ahora).
AES: Advanced Encryption Standard 13 AES: Advanced Encryption Standard NIST convoca concurso para sucesor de DES: Algoritmo de cifrado de bloque simétrico. Completamente público. Claves de 128, 192 y 256 bits. Bueno para implementaciones hw y sw.
AES: Advanced Encryption Standard (cont.) 14 Rijndael Se convierte en 2001 en estándar del gobierno de los EEUU. Diseñado por Joan Daemen y Vincent Rijmen (belgas). Bloques y claves de 128 a 256 bits, de 32 en 32. AES: bloques de 128 y claves de 128, 192 y 256.
AES: Advanced Encryption Standard (cont.) 15 Implementación 128/128
AES: Advanced Encryption Standard (cont.) 16 Implementación 10 a 14 rondas de sustitución y permutaciones. Operaciones sobre octetos. Bloques se gestionan como matrices, almacenado inicialmente en una variable state por columnas. Inicialmente se expande la clave a varias matrices. Se hace xor de state con primera matriz.
AES: Advanced Encryption Standard (cont.) 17 Variables 128-Bit plaintext 128-Bit encryption key state rk[0] rk[1] rk[2] rk[3] rk[4] rk[5] rk[6] rk[7] rk[8] rk[9] rk[10] Round keys
AES: Advanced Encryption Standard (cont.) 18 Una ronda Sustitución de state octeto a octeto. Una sola caja-s. Rotación a izquierdas de la iésima fila i 1 posiciones. Cada columna se multiplica por una matriz constante en el campo de Galois GF(2 8 ). Se puede hacer de manera eficiente. Se hace la xor con la matriz correspondiente de la clave expandida. Para descifrar se calcula a la inversa o se usan tablas distintas. Muy seguro y rápido: 700 Mbps.
AES: Advanced Encryption Standard (cont.) 19 Métodos de cifrado (ECB) DES se pueden usar dividiendo el mensaje en bloques de 64 bits y cifrando por separado: sustitución de caracteres de 8 octetos. Esta forma de funcionar (Electronic Code Book Mode) es muy débil. Name Position Bonus Bytes A d a m s, L e s l i e C l e r k $ 1 0 B l a c k, R o b i n B o s s $ 5 0 0, 0 0 0 C o l l i n s, K i m M a n a g e r $ 1 0 0, 0 0 0 D a v i s, B o b b i e J a n i t o r $ 5 AES tiene el mismo problema. 16 8 8
AES: Advanced Encryption Standard (cont.) 20 Métodos de cifrado (CBC) Solución: Cipher Block Chaining (CBC): Cada bloque se hace la x-or antes de cifrarlo con el bloque cifrado anterior. Para el primer bloque hay un vector inicial (IV), que es parte de la clave. P 0 P 1 P 2 P 3 C 0 C 1 C 2 C 3 IV + + + + Key D D D D Key E E E E Encryption box IV + + + + Decryption box C 0 C 1 C 2 C 3 P 0 P 1 P 2 P 3 Exclusive OR (a) (b)
AES: Advanced Encryption Standard (cont.) 21 Métodos de cifrado Para cifrar carácter a carácter se usa el Cipher Feedback Mode: Registro de 64 bits cargado con los caracteres cifrados. Tras cifrar el registro, el x-or del octeto de mayor peso y el nuevo carácter es enviado como carácter cifrado 64-bit shift register 64-bit shift register C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 C 2 C 3 C 4 C 5 C 6 C 7 C 8 C 9 Key E Encryption box Encryption Key E C box 10 C 10 Select leftmost byte Select leftmost byte + P 10 C 10 Exclusive OR (a) + C 10 P 10 (b)
AES: Advanced Encryption Standard (cont.) 22 Métodos de cifrado Stream Cipher Mode: IV IV Encryption box Encryption box Key E Key E Keystream Keystream Plaintext + Ciphertext Ciphertext + Plaintext (a) (b) Counter Mode: IV IV+1 IV+2 IV+3 Key E Key E Key E Key E Encryption box P 0 + P 1 + P 2 + P 3 + C 0 C 1 C 2 C 3
AES: Advanced Encryption Standard (cont.) 23 Otros algoritmos de clave secreta Hay muchos otros algoritmos propuestos. Resumen:
Criptografía de clave pública 24 Criptografía de clave pública Con claves secretas hay problemas de distribución de claves. En 1976 Diffie y Hellman proponen criptografía de clave pública: Clave de cifrado o pública E y de descifrado o privada D distintas. D(E(P)) = P Muy dificil romper el sistema (p.e. obtener D) teniendo E. Alice hace pública su clave E A. Bob puede enviar mensajes cifrados E A (P) a Alice.
Criptografía de clave pública (cont.) 25 De Rivest, Shamir y Adleman. RSA Supone que factorizar números muy grandes es muy costoso en tiempo. Generación de claves: Elije dos primos muy grandes p y q (> 10 100 ). Computa n = pq y z = (p 1)(q 1). Encuentra un número d primo respecto a z. Encuentra un número e tal que ed = 1 mod z. (e, n) es la clave pública y (d, n) la privada. Para cifrar 0 P < n: C = P e mod n. Para descifrar: P = C d mod n.
Ejemplo de RSA 26 Ejemplo de RSA Para p = 3, q = 11, n = 33 y z = 20. Si d = 7 (sin factores comunes con z) entonces 7e = 1(mod 20) y e = 3. Plaintext (P) Ciphertext (C) After decryption Symbolic Numeric P 3 C 7 P 3 (mod 33) C 7 (mod 33) Symbo S U Z A N N E 19 21 26 01 14 14 05 6859 9261 17576 1 2744 2744 125 28 21 20 1 5 5 26 13492928512 1801088541 1280000000 1 78125 78125 8031810176 19 21 26 01 14 14 05 S U Z A N N E Sender's computation Receiver's computation
Ejemplo de RSA (cont.) 27 RSA La forma más evidente de romper RSA es factorizar n. Para n de 200 dígitos llevaría varios millones de años (con los algoritmos y ordenadores actuales). Hay más algoritmos de clave publica propuestos: Rabin, El-Gamal. Estos usan la dificultad de calcular logaritmos discretos. Los algoritmos de clave pública son mucho más lentos que los de clave secreta (100 a 1000 veces). Por eso se suelen usar sólo para el intercambio de claves de sesión.
Ejemplo de RSA (cont.) 28 Autenticación Sirve para verificar la identidad del interlocutor. Si ambos interlocutores comparten una clave secreta K AB se usa un sistema de desafío-respuesta: Se elije un valor aleatorio grande que se debe devolver cifrado con K AB. 2 1 A R B Alice 3 KAB (R B ) 4 R A 5 K AB (R A ) Bob
Ejemplo de RSA (cont.) 29 Intercambio de claves Diffie-Hellman Sirve para Que A y B tengan una misma clave. Se basa en la dificultad de calcular logaritmos discretos. A y B acuerdan dos primos grandes n y g, que pueden hacerse públicos. A elije un número x y B otro y. La clave común va a ser g xy mod n. Alice picks x Bob picks y 1 n, g, g x mod n Alice 2 g y mod n Bob Alice computes (g y mod n) x mod n = g xy mod n Bob computes (g x mod n) y mod n = g xy mod n
Ejemplo de RSA (cont.) 30 Intercambio de claves Diffie-Hellman Puede sufrir el ataque man-in-the-middle : Alice picks x 1 n, g, g x mod n Trudy picks z Bob picks y Alice 3 g z mod n Trudy 2 n, g, g z mod n Bob 4 g y mod n
Ejemplo de RSA (cont.) 31 Autenticación con clave pública Si A y B conocen sus respectivas claves publicas. Se usa desafío-respuesta: 1. Give me E B 2. Here is E B Directory 3 EB (A, R A ) 4. Give me E A 5. Here is E A Alice 6 EA (R A, R B, K S ) 7 K S (R B ) Bob
Ejemplo de RSA (cont.) 32 Firmas digitales Se puede usar criptografía de clave pública, si el algoritmo cumple que E(D(P)) = P (RSA). Firmar es cifrar con la clave privada: Alice's computer Transmission line Bob's computer P Alice's private key, D A Bob's public key, E B Bob's private key, D B Alice's public key, E A P D A (P) E B (D A (P)) D A (P)
Ejemplo de RSA (cont.) 33 Resúmenes Funciones hash M D de un sentido, que generan resúmenes (digest o hash): Dado P es fácil calcular MD(P). Dado MD(P) es imposible calcular P. No se pueden generar 2 mensajes P y P : MD(P) = MD(P ). (El resumen debe tener al menos 128 bits) Firma digital con resumen: Alice P, D A (MD (P)) Bob
Ejemplo de RSA (cont.) 34 Resúmenes Funciones resumen más populares: MD5 y SHA-1. MD5 genera resúmenes de 128 bits y SHA-1 de 160. Se han detectado debilidades en MD5. Recientemente se han detectado debilidades en SHA-1.
Resúmenes y el ataque del cumpleaños 35 Resúmenes y el ataque del cumpleaños Los resúmenes deben ser largos. Función de n objetos en k valores, la probabilidad de condidencia es alta si n > k. Para encontrar dos resúmenes de 64 bits, 2 32 mensajes bastan. Para MD5 o SHA-1 hacen falta varios siglos (2 64 y 2 80 ).
Gestión de claves públicas 36 Gestión de claves públicas No basta con dejar la clave pública en una página web (por ejemplo): 1. GET Bob's home page Alice 2. Fake home page with E T 3. E T (Message) Trudy 4. E B (Message) Bob Necesitamos una forma más segura de obtener las claves.
Gestión de claves públicas (cont.) 37 Certificados Forma de distribuir claves públicas. Es un documento firmado por una autoridad de certificación bien conocida que informa de la clave pública de una entidad. Se generaliza en un posible árbol de autoridades de certificación, en el certificado cada una certifica la clave pública de la siguiente.
Gestión de claves públicas (cont.) 38 Certificados Solución al problema de la distribución de claves.
Gestión de claves públicas (cont.) 39 Certificados X.509 Normalizados por ITU y adoptados por IETF.
Gestión de claves públicas (cont.) 40 PKI: Public Key Infrastructure Árbol de autoridades de certificación. Padres certifican a hijos. Root RA 2 is approved. Its public key is 47383AE349... Root's signature RA 2 is approved. Its public key is 47383AE349... Root's signature RA 1 CA 1 CA 2 RA 2 CA 3 CA 4 CA 5 CA 5 is approved. Its public key is 6384AF863B... RA 2's signature CA 5 is approved. Its public key is 6384AF863B... RA 2's signature (a) (b)
Gestión de claves públicas (cont.) 41 PKI: Public Key Infrastructure Cada autoridad certifica a autoridades de nivel inferior. La clave pública de la raíz está grabada en el navegador. Suele haber varias raices (anclas de confianza o trust anchors). Al enviar un certificado se pueden enviar todos los certificados hasta la raíz: cadena de confianza o camino de certificación. Certificados se pueden incluir en un servicio de directorio. Las autoridades emiten listas de certificados revocados.
IPsec 42 IPsec Extensión de IP para introducir seguridad a nivel de red. Permite el uso de múltiples servicios, algoritmos (simétricos) y granularidades. Proporciona privacidad, integridad de datos y protección para ataques de reuso de paquetes. Es orientado a conexión unidireccional: asociación de seguridad (SA). ISAKMP (Internet Security Association and Key Management Protocol) sirve para acordar las claves del SA.
IPsec (cont.) 43 Modos IPsec Modo transporte: Se inserta una cabecera IPsec después de la IP. Modo túnel: El paquete entero se encapsula en el cuerpo de un nuevo paquete IP. El destinatario de este paquete puede no ser el final (firewall). Permite agrupar conexiones.
IPsec (cont.) 44 Cabecera de autenticación Authentication Header (AH). Proporciona integridad (datos y parte de las cabeceras) y no reuso. Authenticated IP header AH TCP header Payload + padding 32 Bits Next header Payload len (Reserved) Security parameters index Sequence number Authentication data (HMAC)
IPsec (cont.) 45 Cabecera de cifrado Encapsulation Security Payload (ESP). Authenticated (a) IP header ESP header TCP header Payload + padding Authentication (HMAC) Encrypted Authenticated (b) New IP header ESP header Old IP header TCP header Payload + padding Authentication (HMAC) Encrypted
Redes Privadas Virtuales (VPN) 46 Redes Privadas Virtuales (VPN) Alternativa a enlaces alquilados. Usa Intenet e IPsec modo túnel entre firewalls para tener una red privada. Office 1 Office 2 Office 1 Leased line Firewall Internet Office 2 Tunnel Office 3 (a) Office 3 (b)
Pretty Good Privacy (PGP) 47 Pretty Good Privacy (PGP) Phil Zimmermann lo construyó para envío de correo con privacidad, autenticación, firma digital y compresión. Usa IDEA, RSA, MD5 y comresión Ziv-Lempel. Las claves se guardan en llaveros y se obtienen de servidores públicos o certificados.
Pretty Good Privacy (PGP) (cont.) 48 Pretty Good Privacy (PGP) K M : One-time message key for IDEA : Concatenation Bob's public RSA key, E B Alice's private RSA key, D A K M RSA P P1 P1.Z MD5 RSA Zip IDEA Base 64 ASCII text to the network P1 compressed Original plaintext message from Alice Concatenation of P and the signed hash of P Concatenation of P1.Z encrypted with IDEA and K M encrypted with E B
Secure Sockets Layer (SSL) 49 Secure Sockets Layer (SSL) Introducido por Netscape en 1995. Es una capa de transporte segura entre sockets que proporciona: Negociación de parámetros. Autenticación mutua. Privacidad. Protección de integridad. HTTPS es HTTP sobre SSL.
Secure Sockets Layer (SSL) (cont.) 50 Niveles SSL
Secure Sockets Layer (SSL) (cont.) 51 Establecimiento de conexión SSL 1 SSL version, Preferences, R A 2 SSL version, Choices, R B 3 4 X.509 certificate chain Server done Alice 5 E B (Premaster key) Bob 6 Change cipher 7 Finished 8 Change cipher 9 Finished
Secure Sockets Layer (SSL) (cont.) 52 Transmisión con SSL Message from browser Fragmentation Part 1 Part 2 Compression Message authentication code MAC added Encryption Header added
Secure Sockets Layer (SSL) (cont.) 53 Cortafuegos Organizaciones no quieren que información sensible salga de sus redes y que nada peligroso (viruses o gusanos) entren. Un cortafuegos es el único punto de acceso entre la red de una organización y el resto del mundo. Todo el tráfico (de entrado o salida) es inspeccionado y filtrado. Conceptualmente: dos encaminadores conectados con una pasarela. Cada encaminador filtra un sentido de tráfico, y deja pasar sólo el tráfico que cumple ciertos criterios (bloquear tráfico de/a ciertas direcciones, sólo permitir tráfico de/a ciertas direcciones, bloquear tráfico de/a ciertos puertos). La pasarela puede realizar una inspección más en detalle a nivel de aplicación: P.ej. Buscar ciertas palabras en los mensajes de correo.
Secure Sockets Layer (SSL) (cont.) 54 Referencias A.S. Tanenbaum, Computer Networks, 4th Ed., Prentice Hall, 2003. http://csrc.nist.gov/encryption/aes http://www.eskimo.com/~weidai/scan-mirror http://www.ccsr.cam.ac.uk/projects/aes