Seguridad
Transcripción
Seguridad
c 2005 GSyC 1 Seguridad Redes de Área Local c 2005 GSyC 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. Redes de Área Local: Seguridad 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”. c 2005 GSyC Redes de Área Local: Seguridad Problemas (cont.) 4 Criptologı́a Passive intruder just listens Plaintext, P Active intruder can alter messages Intruder Decryption method, D Encryption method, E Plaintext, P Ciphertext, C = EK(P) Encryption key, K Decryption key, K Criptologı́a = criptografı́a (inventar códigos) + criptoanálisis (atacarlos) c 2005 GSyC Redes de Área Local: Seguridad 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. c 2005 GSyC Redes de Área Local: Seguridad 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: c 2005 GSyC Sólo texto cifrado. El mismo texto crifrado y en claro. La capacidad de cifrar lo que quiera. Redes de Área Local: Seguridad c 2005 GSyC 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 a r s o m y s w i s s l t b a n k a c c o u n o t s i x t w Plaintext pleasetransferonemilliondollarsto myswissbankaccountsixtwotwo Ciphertext AFLLSKSOSELAWAIATOOSSCTCLNMOMANT ESILYNTWRNNTSOWDPAEDOBUOERIRICXB t w o a b c d Redes de Área Local: Seguridad c 2005 GSyC 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. Redes de Área Local: Seguridad c 2005 GSyC 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. Redes de Área Local: Seguridad c 2005 GSyC Problemas (cont.) 10 Métodos modernos: Criptografı́a de clave secreta El proceso se hace con ordenadores: sustituciones y transposiciones más complejas. S-box (a) Product cipher Encoder: 8 to 3 Decoder: 3 to 8 P-box (b) P1 S1 S5 S9 S2 S6 S10 S3 S4 P2 S7 S8 P3 S11 P4 S12 (c) Redes de Área Local: Seguridad c 2005 GSyC 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 56-Bit key Iteration 1 Iteration 2 L i-1 ⊕ f(Ri -1, Ki) Iteration 16 32-Bit swap Inverse transposition 64-Bit ciphertext (a) 32 bits Li 32 bits Ri (b) Redes de Área Local: Seguridad 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). P c 2005 GSyC K1 K2 K1 E D E C (a) C K1 K2 K1 D E D P (b) Clave de 112 bits. Seguro (por ahora). Redes de Área Local: Seguridad AES: Advanced Encryption Standard 13 AES: Advanced Encryption Standard NIST convoca concurso para sucesor de DES: c 2005 GSyC Algoritmo de cifrado de bloque simétrico. Completamente público. Claves de 128, 192 y 256 bits. Bueno para implementaciones hw y sw. Redes de Área Local: Seguridad c 2005 GSyC 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. Redes de Área Local: Seguridad c 2005 GSyC AES: Advanced Encryption Standard (cont.) 15 Implementación 128/128 Redes de Área Local: Seguridad c 2005 GSyC 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. Redes de Área Local: Seguridad AES: Advanced Encryption Standard (cont.) 17 Variables 128-Bit plaintext state c 2005 GSyC rk[0] 128-Bit encryption key rk[1] rk[2] rk[3] rk[4] rk[5] rk[6] rk[7] rk[8] rk[9] rk[10] Round keys Redes de Área Local: Seguridad 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 (28 ). 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. c 2005 GSyC Redes de Área Local: Seguridad 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 A d a m s , L e s l B l a c k , R o b i n C o l l i n s , D a v i s , Bytes Position i e K i m B o b b i e 16 Bonus C l e r k $ B o s s $ 5 0 0 , 0 0 0 M a n a g e r $ 1 0 0 , 0 0 0 J a n i $ t o r 8 1 0 5 8 AES tiene el mismo problema. c 2005 GSyC Redes de Área Local: Seguridad c 2005 GSyC 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. IV P0 P1 P2 P3 C0 C1 C2 C3 + + + + Key D D D D Key E C0 E E C2 C1 (a) E C3 Encryption box IV Decryption box + P0 + + P1 P2 + P3 Exclusive OR (b) Redes de Área Local: Seguridad c 2005 GSyC 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 C2 C3 C4 C5 C6 C7 C8 C9 C2 C3 C4 C5 C6 C7 C8 C9 Key E Encryption box Key C10 E Select leftmost byte P10 + Encryption box C10 Select leftmost byte C10 C10 + P10 Exclusive OR (a) (b) Redes de Área Local: Seguridad c 2005 GSyC AES: Advanced Encryption Standard (cont.) 22 Métodos de cifrado Stream Cipher Mode: IV IV Encryption box Key E Encryption box Key E Keystream + Plaintext Keystream Ciphertext + Ciphertext (a) Plaintext (b) Counter Mode: IV IV+2 IV+1 IV+3 Key E Key E Key E Key E P0 + P1 + P2 + P3 + C0 C1 C2 Encryption box C3 Redes de Área Local: Seguridad AES: Advanced Encryption Standard (cont.) 23 Otros algoritmos de clave secreta Hay muchos otros algoritmos propuestos. Resumen: c 2005 GSyC Redes de Área Local: Seguridad c 2005 GSyC 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 EA . Bob puede enviar mensajes cifrados EA (P ) a Alice. Redes de Área Local: Seguridad c 2005 GSyC Criptografı́a de clave pública (cont.) 25 RSA De Rivest, Shamir y Adleman. Supone que factorizar números muy grandes es muy costoso en tiempo. Generación de claves: • Elije dos primos muy grandes p y q (> 10100 ). • 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. Redes de Área Local: Seguridad 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) Symbolic Numeric c 2005 GSyC S U Z A N N E 19 21 26 01 14 14 05 Ciphertext (C) P3 P3 (mod 33) 6859 9261 17576 1 2744 2744 125 28 21 20 1 5 5 26 Sender's computation After decryption C7 C7 (mod 33) 13492928512 1801088541 1280000000 1 78125 78125 8031810176 Symbo 19 21 26 01 14 14 05 Receiver's computation Redes de Área Local: Seguridad S U Z A N N E c 2005 GSyC 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. Redes de Área Local: Seguridad c 2005 GSyC Ejemplo de RSA (cont.) 28 Autenticación Sirve para verificar la identidad del interlocutor. Si ambos interlocutores comparten una clave secreta KAB se usa un sistema de desafı́o-respuesta: Se elije un valor aleatorio grande que se debe devolver cifrado con KAB . Alice 2 3 RB KAB (RB) 4 5 A Bob 1 RA KAB (RA) Redes de Área Local: Seguridad c 2005 GSyC 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 n, g, gx mod n 2 gy mod n Alice computes (gy mod n)x mod n = gxy mod n Bob Alice 1 Bob computes (gx mod n)y mod n = gxy mod n Redes de Área Local: Seguridad Ejemplo de RSA (cont.) 30 Intercambio de claves Diffie-Hellman Puede sufrir el ataque “man-in-the-middle”: Alice picks x c 2005 GSyC 3 gz mod n 2 n, g, gz mod n 4 Bob n, g, gx mod n Trudy 1 Alice Bob picks y Trudy picks z gy mod n Redes de Área Local: Seguridad c 2005 GSyC 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: Directory eE B m E ve e is Gi r . 1 He 2. B A EB (A, RA) EA (RA, RB, KS) 7 Bob Alice 3 6 4. G iv 5. H e me ere E is E A KS (RB) Redes de Área Local: Seguridad c 2005 GSyC 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: Transmission line Alice's computer P Bob's public key, EB Alice's private key, DA DA(P) Bob's computer Alice's public key, EA Bob's private key, DB EB (DA(P)) P DA(P) Redes de Área Local: Seguridad c 2005 GSyC 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 M D(P ). • Dado M D(P ) es imposible calcular P . • No se pueden generar 2 mensajes P y P 0 : M D(P ) = M D(P 0 ). (El resumen debe tener al menos 128 bits) P, DA (MD (P)) Bob Alice Firma digital con resumen: Redes de Área Local: Seguridad c 2005 GSyC 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. Redes de Área Local: Seguridad c 2005 GSyC 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, 232 mensajes bastan. Para MD5 o SHA-1 hacen falta varios siglos (264 y 280 ). Redes de Área Local: Seguridad 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 ET Trudy Bob 3. ET(Message) 4. EB(Message) Necesitamos una forma más segura de obtener las claves. c 2005 GSyC Redes de Área Local: Seguridad c 2005 GSyC 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. Redes de Área Local: Seguridad c 2005 GSyC Gestión de claves públicas (cont.) 38 Certificados Solución al problema de la distribución de claves. Redes de Área Local: Seguridad c 2005 GSyC Gestión de claves públicas (cont.) 39 Certificados X.509 Normalizados por ITU y adoptados por IETF. Redes de Área Local: Seguridad c 2005 GSyC 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. . . RA 2 is approved. Its public key is 47383AE349. . . Root's signature Root's signature RA 1 RA 2 CA 5 is approved. Its public key is 6384AF863B. . . RA 2's signature CA 1 CA 2 (a) CA 3 CA 4 CA 5 CA 5 is approved. Its public key is 6384AF863B. . . RA 2's signature (b) Redes de Área Local: Seguridad c 2005 GSyC 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. Redes de Área Local: Seguridad c 2005 GSyC 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. Redes de Área Local: Seguridad c 2005 GSyC 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. Redes de Área Local: Seguridad c 2005 GSyC 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) Redes de Área Local: Seguridad 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) c 2005 GSyC New IP header ESP header Old IP header TCP header Payload + padding Authentication (HMAC) Encrypted Redes de Área Local: Seguridad c 2005 GSyC 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 Leased line Office 2 Office 1 Firewall Internet Office 2 Tunnel Office 3 Office 3 (a) (b) Redes de Área Local: Seguridad c 2005 GSyC 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. Redes de Área Local: Seguridad Pretty Good Privacy (PGP) (cont.) 48 Pretty Good Privacy (PGP) Bob's public RSA key, EB KM : One-time message key for IDEA : Concatenation KM Alice's private RSA key, DA P MD5 RSA P1 Zip P1.Z IDEA RSA ASCII text to Base the network 64 P1 compressed Original plaintext message from Alice c 2005 GSyC Concatenation of P and the signed hash of P Concatenation of P1.Z encrypted with IDEA and KM encrypted with EB Redes de Área Local: Seguridad c 2005 GSyC 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. Redes de Área Local: Seguridad c 2005 GSyC Secure Sockets Layer (SSL) (cont.) 50 Niveles SSL Redes de Área Local: Seguridad Secure Sockets Layer (SSL) (cont.) 51 Establecimiento de conexión SSL 1 SSL version, Preferences, RA 2 SSL version, Choices, RB 3 X.509 certificate chain c 2005 GSyC Server done 5 EB (Premaster key) 6 Bob Alice 4 Change cipher 7 8 Finished Change cipher 9 Finished Redes de Área Local: Seguridad Secure Sockets Layer (SSL) (cont.) 52 Transmisión con SSL Message from browser Fragmentation Compression Part 1 Part 2 Message authentication code MAC added Encryption Header added c 2005 GSyC Redes de Área Local: Seguridad 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. c 2005 GSyC 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. Redes de Área Local: Seguridad c 2005 GSyC 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 Redes de Área Local: Seguridad