SSC - Segunda Unidad-Parte C

SISTEMAS DE SEGURIDAD CRÍTICA 2.4 UNA REVISION A LA SEGURIDAD Entonces la criptografía tiene alguno (o todos) de los si

Views 49 Downloads 0 File size 586KB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

SISTEMAS DE SEGURIDAD CRÍTICA

2.4 UNA REVISION A LA SEGURIDAD Entonces la criptografía tiene alguno (o todos) de los siguientes objetivos: a) Confidencialidad, privacidad o secreticidad; servicio que mantiene el contenido de la información a disposición solo de las personas autorizadas, considera desde lo físico hasta algoritmos matemáticos que hacen a la información no legible b) Integridad de los datos: servicio que impide que los datos se alteren de manera no autorizada, considera la necesidad de detectar la manipulación de los datos (inserción, eliminación y sustitución) c) Autenticación: servicio asociado a la identificación que atañe a receptor, emisor y la propia información (se deben identificar los datos del origen, el contenido, tiempo de envío y otros); por eso se define la autenticación de las entidades y la autenticación del origen de los datos, esta última provee integridad a los datos d) No-repudio: servicio que prevee que una entidad no pueda negar sus acciones, a partir de esto se implementan procedimientos para resolver disputas por parte de un tercero. Aquí se habla del no repudio del emisor y el no repudio del receptor. 2.5 TIPOS DE CIFRADO Hay que recordar la clasificación general de la criptografía, definida por: x x

Número de clave y la necesidad de compartirla Unidad de información del texto claro, tomada en el proceso de cifrado

Tipos de sistemas criptográficos Hay que recordar la estructura de un sistema simétrico:

Criptosistema simétrico 2.5.1 Cifrado por flujo Un cifrador de flujo consiste en el uso de un algoritmo que convierte el texto claro en texto cifrado, trabajando bit a bit. Se utiliza en la entrada un flujo de datos (mi) y se genera un 43 Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

flujo de clave llamado secuencia cifrante (si), la salida es una XOR bit a bit del flujo de datos y el de clave (generalmente 128 bits), al ser la función XOR reversible se tiene: Cifrado:

ci

mi † si

Descifrado:

mi

ci † si

Son una generalización del cifrado de Vernam o One-Time-Pad. La secuencia cifrante se crea mediante un algoritmo determinista de generación de números pseudoaleatorios a partir de una semilla (seed) que suele ser la clave secreta. Si esta secuencia es completamente aleatoria y se usa una vez el sistema es totalmente seguro (Shannon, 1949)

Cifrado por flujo Dentro de los algoritmos modernos para el cifrado por flujo tenemos A5 y RC4. Veamos un ejemplo de su aplicación. El algoritmo WEP (Wired Equivalent Privacy) es el sistema de cifrado incluido en el estándar IEEE 802.11 (redes inalámbricas); está basado en el algoritmo de cifrado RC4, teniendo dos variantes, una que usa clave de 64 bits (40 bits más 24 bits de vector de iniciación) y otra que usa una clave de 128 bits (104 bits y 24 bits de vector de iniciación). Fue el estándar hasta el 2003, cuando la Wi-Fi Alliance anunció la sustitución de WEP por WPA, en 2004 se ratificó el estándar 802.11i (WPA2) declarando WEP-40 y WEP-104 como inseguros, aún hoy en día se sigue utilizando.

Sistema WEP Recordando el funcionamiento de RC4: el algoritmo de cifrado RC4 se descompone en tres partes: 44 Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

9 Inicialización del vector de estado (KSA, key-scheduling algorithm), el algoritmo usa un vector S con una permutación de todos los bytes posibles (0 a 255) inicialmente ordenados, estos son desordenados a partir de la clave (40 a 256 bits) a partir de un protocolo que combina uno de los bytes de la clave y el valor actual del elemento. KSA se llama semilla (seed)

9 Generación del flujo de cifrado (PRGA, pseudo-random generation algorithm) A partir del vector de estado generado y dos variables i y j (índices de 8 bits) se genera el flujo de cifrado. En cada iteración del algoritmo se emite un byte del flujo de cifrado y se intercambian dos elementos del vector. En todo momento el estado del sistema está determinado por el valor de i y j y el vector estado. Si un atacante llegara a conocer estos valores en un momento determinado, podría descifrar todos los mensajes que se cifraran desde ese momento.

9 Mezcla del texto con el flujo de cifrado. A cada K resultado del algoritmo anterior se le hace la operación XOR con un byte del texto plano para obtener el texto cifrado y se envía por el canal. La debilidad del algoritmo es que, si se utiliza la misma semilla para cifrar dos mensajes diferentes, el problema de obtener la clave a partir de los dos textos cifrados sería trivial. En un intento de evitar esto, en WEP se incluyó un vector de iniciación de 24 bits que se modifica regularmente y se concatena a la contraseña para generar la semilla. Una segunda debilidad es que en la comunicación el atacante podría modificar cualquier bit a su antojo. Aun así, la debilidad esta en este vector de iniciación, el tamaño del vector de iniciación es constante (24 bits), esto nos da un número limitado de vectores (224=16,777,216). El problema es que la cantidad de tramas que pasan a través de un punto de acceso son muy grandes (por la velocidad de transmisión) y es fácil encontrar dos mensajes con el mismo vector. Se puede aumentar el tamaño de la clave, pero esto solo incrementará el tiempo necesario para romper el cifrado.

45 Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

Otros sistemas que usan RC4 son: WPA(Wi-Fi Protectes Access), BitTorrent, Microsoft Pt-P Encryption, SSL (Secure Socket Layer), SSH, Skype 2.5.2 Cifrado por bloque El texto en claro se cifra dividiéndolo en secuencias de bits o bloques de tamaño fijo, tamaño que puede estar entre 64 y 256 bits. Hoy en día se espera que se evite el cifrar los bloques individual e independientemente, sino encadenados, lo que quiere decir que el cifrado de cada bloque dependa del resultado obtenido al cifrar todos los bloques que lo preceden. La forma en que se gestionan estos pedazos o bloques de mensaje, se denomina modo de cifrado. Los cifradores de bloque trabajan con clave simétrica sobre grupos de bits de una determinada longitud fija (bloques). El cifrador de bloque toma en la entrada un bloque de texto plano y produce un bloque de texto cifrado de igual longitud. Esta transformación de texto plano a cifrado se controla mediante una clave secreta. Para el camino inverso (texto cifrado a texto plano) se opera de la misma manera. Los cifradores de bloques tienen un inconveniente, hay ciertas aplicaciones que no pueden hacer uso de esta utilidad por estar formadas por un flujo constante de bits. Tenemos por ejemplo un enlace de radio, telefonía, etc. Para estas aplicaciones surgen los cifradores de flujo. Todo algoritmo trabajando por bloques responde a la siguiente estructura

Cifrado por bloques • • • •

Transformación inicial: que aleatoriza los datos de entrada y puede añadir complejidad a los datos. Vueltas de cifrado: es una función no lineal aplicada sobre los datos y la clave, puede incluir una sola operación muy compleja o en la sucesión de varias transformaciones simples. Transformación final: la que sirve para que las operaciones de cifrado y descifrado sean simétricas. Algoritmo de expansión de clave: convierte la clave de usuario en un conjunto de subclaves que pueden estar constituidas por varios cientos de bits en total, es recomendable que: o este algoritmo sea unidireccional 46

Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

o conocer una subclave no debe permitir deducir las demás Un buen algoritmo debe cumplir las siguientes propiedades: •

• • • • •

Confusión: un pequeño cambio en la clave debería producir un cambio del 50% del texto cifrado resultante y que un atacante haciendo una búsqueda exhaustiva de claves no recibirá ninguna señal de que está acercándose a la clave correcta. Se obtiene a partir de las cajas S-Box Difusión: un pequeño cambio en el texto en claro debería producir un cambio del 50% del texto cifrado resultante. Se obtiene a partir de las cajas P-Box o tablas de permutación Completitud: cada bit del texto cifrado dependerá de cada bit de la clave y el atacante no podrá obtener partes válidas de la clave mediante ataques de “divide y vencerás” Uso de rondas para aumentar la confusión y difusión Uso de funciones XOR para la mezcla entre claves y mensajes Expansión de claves si el tamaño de clave y mensaje es diferente

Se cumplen además las siguientes relaciones: 9 9 9 9 9

Si el tamaño de bloque aumenta, habrá mayor seguridad, pero menor rapidez Si el tamaño de clave aumenta, habrá mayor seguridad, pero menor rapidez Si el número de rondas aumenta, habrá mayor seguridad Si la complejidad de las subclaves aumenta, habrá mayor dificultad en el criptoanálisis Si la complejidad de la función de ronda aumenta, habrá mayor dificultad en el criptoanálisis

Para la explicación de estos modos debemos considerar: sea el alfabeto de del bloque a cifrar Σ y que la longitud del bloque es n, el algoritmo de cifrado es (. , que el algoritmo de descifrado es DK, cada bloque de texto plano es mj y cada bloque de texto cifrado HVFM

a) Modo ECB. ELECTRONIC CODEBOOK MODE En este caso, el texto plano se descompone en bloques de longitud n. Si es necesario, al texto plano se le añade un suplemento para conseguir que su longitud sea divisible por Q. En este modo, cada bloque de longitud Q es cifrado de forma independiente al resto de bloques: el texto cifrado es una secuencia de los bloques cifrados. Y el descifrado se realiza aplicando el algoritmo inverso a cada bloque del criptograma, también de forma independiente al resto de criptogramas. Este modo se emplea para el envío de valores sencillos. Pero es un modo que tiene ciertas debilidades: x x

Cuando se usa este modo, a cada bloque de texto plano le corresponde igual bloque de texto cifrado. Es así posible reconocer algunos patrones del texto plano en el texto cifrado. Eso facilita un ataque estadístico. Un atacante puede sustituir algunos bloques del texto cifrado con otros bloques cifrados que hayan sido cifrados con la misma clave. Esta manipulación es difícil de detectar en el receptor. ECB no se usa para el cifrado de textos planos largos. Se puede incrementar la seguridad de este modo de cifra es que cada bloque de texto a cifrar esté formado por un determinado número de caracteres del texto plano y otros hasta Q lo ocupen caracteres aleatorios. 47

Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

Modo ECB Entre las ventajas de este método destaca la posibilidad de romper el mensaje en bloques y cifrarlos en paralelo o el acceso aleatorio a diferentes bloques. b) Modo CBC. CIPHERBLOCK CHAINING MODE. En este modo, la entrada al algoritmo de cifrado es el resultado de la operación XOR entre el actual bloque de texto plano a cifrar y el bloque de texto cifrado precedente. Se emplea la misma clave en cada bloque.

Modo CBC Para descifrar, cada bloque cifrado es procesado por el algoritmo de descifrado, y el resultado es sometido a la operación XOR con el bloque cifrado precedente, para obtener así el bloque de texto plano. Como no se dispone de un texto cifrado con el que combinar el primer bloque, se usa un vector de inicialización IV (número aleatorio que puede ser públicamente 48 Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

conocido). El uso del vector de inicialización es importante, pues de no usarlo, podría ser susceptible de ataques de diccionario, ya que dos mensajes idénticos tendrían la misma codificación. También es necesario que el IV sea aleatorio y no un número secuencial o predecible.

El vector IV debe ser conocido por ambas partes: tanto por el emisor que cifra como por el receptor que descifra. Para obtener máxima seguridad, el vector IV puede protegerse como si de una clave se tratara. Esto puede hacerse enviado el emisor al receptor el valor de IV cifrado con el modo ECB. Es conveniente actuar así, porque existen ataques que se basan en el conocimiento del vector IV. El modo CBC evita los problemas de ECB. En este modo, el cifrado de cada bloque no sólo depende de la clave, sino también del bloque previo. Así, bloques iguales, quedan cifrados de forma diferente. El receptor puede darse cuenta de que le han cambiado el texto cifrado porque no obtiene nada en la manipulación del descifrado. En caso de que se produzca un error en la transmisión de un bloque cifrado (por ejemplo, cj) entonces pierde sentido el bloque descifrado a partir de este cj y se pierde mj y mj+1, pero el bloque mj+2 al depender de cj+1 y cj+2 puede recuperarse y los bloques siguientes, por lo que este modo es apropiado para cifrar mensajes de longitud bastante grande. ECB ha sido estandarizado por el NIST (U.S. National Institute for Standards and Technology). Entre las desventajas de este modo de cifrado destaca la necesidad de realizar el cifrado de forma secuencial (no puede ser paralelizado). También hay que tener en cuenta la posibilidad de realizar ataques de reenvío de un mensaje entero (o parcial). c) Modo CTR: COUNTER MODE Mientras que ECB y CBC son modos basados en bloques, CTR simula un cifrado de flujo, se usa un cifrado de bloque para producir un flujo pseudo aleatorio (keystream), que se combina con el texto plano mediante XOR dando lugar al cifrado. Para generar el keystream se cifra un contador combinado con un número aleatorio (nonce) mediante ECB y se va incrementando. El valor del contador puede ser públicamente conocido, aunque es preferible guardarlo en secreto. Es necesario que el valor de nonce+contador lo conozcan ambos lados de la comunicación.

Encriptación: 49 Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

Desencriptación:

Modo CTR Entre las ventajas de CTR destaca la posibilidad de precalcular el keystream (y/o trabajar en paralelo), el acceso aleatorio al keystream o que revela poquísima información sobre la clave. Como desventajas hay que tener en cuenta que reutilizar un contador en la misma clave puede acabar con la seguridad del sistema, pues se generará de nuevo el mismo keystream. Modificar bits en el texto plano es muy sencillo, pues modificando un bit del cifrado se modificará el bit del texto plano correspondiente (Bit-flipping attacks). Por lo que es adecuado usar este modo de cifrado junto con una verificación de la integridad del mensaje.

d) Modo CFB (CIPHER FEEDBACK MODE) CFB ha sido estandarizado por el NIST (U.S. National Institute for Standards and Technology) y es muy similar a OFB. CBC es un modo válido para cifrar mensajes largos, pero en aplicaciones de tiempo real se encuentran problemas de eficiencia, debido a que las funciones de cifrado y descifrado se utilizan secuencialmente y no simultáneamente. Además, cuanto más computacionalmente complejo sea el proceso de cifrado y descifrado, más tiempo pasa entre el cifrado y el descifrado. En el caso del modo CFB, la función de cifrado no se usa directamente para cifrar bloques de texto plano, sino para generar una secuencia de bloques de clave (keystream). El texto plano se cifra sumándole módulo 2 el bloque de clave (XOR entre el bloque de texto plano y el bloque de clave generada).

50 Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

Para producir el keystream cifra el último bloque de cifrado, en lugar del último bloque del keystrem como hace OFB. Necesitamos un vector de inicialización IV є [0,1]n y un entero positivo 1 d r d n (suele ser 8 para n=64), tal que cada bloque de texto plano se dividiría en u n / r subbloques). Para cifrar los mensajes claros m1 , m2 ,..., mu : I1

IV

Para 1 d j d u hacer: 1. O j

Ek ( I j )

2. Hacer la cadena t j 3. c j 4. I j 1

r bits más significativos de O j

mj † t j 2r I j  c j mod 2n se concatenan n - r bits de I j con r bits de c j

Para descifrar I1 IV Para 1 d j d u hacer: 1. O j Dk ( I j ) 2. Hacer la cadena t j 3. m j 4. I j 1

r bits más significativos de O j

cj † tj 2r I j  c j mod 2n se concatenan n - r bits de I j con r bits de c j

Este algoritmo es eficiento porque el receptor y el emisor pueden callcular simultáneamente la cadena ti tan pronto se haya calculada ci. Con este modo logramos que la transmisión sea más rápida, pero hay que aplicar con mucha mayor frecuencia el algoritmo de cifrado y de descifrado. El valor de r es un valor que depende de las velocidades de computación y de transmisión. En este modo de transmisión un error en un sub-bloque estropea la labor de descifrado mientras que ese tramo forma parte del vector ti , pero luego de haber descifrado r subbloques el error se perderá y los resultados serán correctos

51 Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

Modo CFB En CFB el cifrado no puede ser paralelizado, pero el descifrado si, es preferible usar CTR. e) Modo OFB (OUTPUT FEEDBACK MODE) OFB ha sido estandarizado por el NIST (U.S. National Institute for Standards and Technology). Como CFB usa un bloque para cifrar de longitud n y lo divide en en u=n/r subbloques con 1 ≤ r ≤ n, y un vector de inicialización IV. En este caso el keystream se genera cifrando el anterior keystream, dando lugar al siguiente bloque. El primer bloque de keystream se crea cifrando un vector de inicialización IV. El cifrado: I1

IV

Para 1 d j d u hacer: 1. O j

Ek ( I j )

2. Hacer la cadena t j 3. c j

r bits más significativos de O j

mj † t j

4. I j 1

2r I j  t j mod 2n se concatenan n - r bits de I j con r bits de t j

4. I j 1

Oj

o:

El descifrado cambia el paso 4. por mj =cj † tj

52 Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

Modo OFB OFB comparte muchas de las características de CTR, pero CTR es más eficiente, OFB se usa bastante poco. En OFB se pueden precalcular los keystream (aunque no se puede realizar en paralelo) y a diferencia de CTR no da problemas al ser usado con cifrados de bloque de 64 bits. Además, como en el caso de CTR, revela muy poca información sobre la clave. Una ventaja del modo OFB es que no se transmiten los errores de transmisión en un bit: si ocurre un error en un bit esto afecta sólo en este subbloque. La desventaja del modo OFB es que vuelve a ser vulnerable a ataques por modificación de la cadena del mensaje.

2.5.3 Cifrado múltiple Es común los sistemas en cascada:





a) c

E ( m)

Ek2 Ek1 (m)

b) c

E ( m)

Ek3 Ek2 Ek1 (m)





Donde las claves pueden ser iguales o los algoritmos pueden ser los mismos, diferentes o hasta inversos

53 Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

2.5.4 Cifradores producto y cifradores Feistel Un cifrador producto es aquel que combina dos o más transformaciones de forma tal que el resultado del cifrado es más seguro que los componentes individuales. Un cifrador Feistel es aquel cifrador que itera secuencialmente una serie de funciones, donde cada iteración recibe el nombre de función ronda (con al menos tres rondas y un número par), donde en cada iteración se utilizan redes de sustitución-permutación y se utiliza en cada una de ellas una subclave que ha sido derivada de la clave general del cifrador. Estos cifradores se parametrizan a partir del número de rondas r, el tamaño de bloque n, el tamaño k de la clave K de la que se derivan las r subclaves Ki.

Redes SP (sustitución-permutación) Trabajo de Investigación 6 1. Para los siguientes cifradores Feistel: DES, IDEA, BLOWFISH, SAFER consigne el resumen de: 1. Estructura (parámetros de la función de cifrado Feistel) 2. Algoritmo de cifrado 3. Algoritmo de generación de claves 2.6 FUNCIONES HASH Una función hash criptográfica, es un conjunto de algoritmos usados para generar claves o llaves que representen de manera unívoca a un documento o conjunto de datos. Es una operación matemática que se realiza sobre un conjunto de datos de cualquier longitud, y la salida es una huella digital, de tamaño fijo e independiente de la dimensión del documento original.

54 Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

dE es la clave privada del emisor que firmará h(M). En el lado del receptor se descifra la rúbrica r usando la clave pública del emisor eE, al mensaje claro M (de longitudes variables), obtenido después de aplicar el algoritmo de descifrado si también viniera cifrado, se le aplica la misma función hash que en la emisión, si el resultado el igual a h(M) se asume que la firma es auténtica y se acepta el mensaje. La seguridad depende básicamente de la longitud del resumen h(M)

Como la función hash tiene un número de bits finito, existe la posibilidad de que existan huellas digitales iguales para mensajes diferentes. Sin embargo, las funciones hash son ampliamente usados en aplicaciones de seguridad y protocolos de Internet protocolos. Las funciones hash usadas en criptografía deben cumplir los siguientes requisitos de seguridad: 9 Imposibilidad de obtener el texto original a partir de la huella digital. 55 Mgter. Lucy Delgado Barra

SISTEMAS DE SEGURIDAD CRÍTICA

9 Imposibilidad de encontrar un conjunto de datos diferentes que tengan la misma huella digital 9 Poder transformar un texto de longitud variable en una huella de tamaño fijo 9 Facilidad de empleo e implementación. Las funciones hash usadas en criptografía deben tener las siguientes propiedades: a) b) c) d)

e)

f)

g)

h)

i) j)

2.6.1

Unidireccionalidad: conocido un resumen h(M), debe ser computacionalmente imposible encontrar M a partir de dicho resumen. Compresión: a partir de un mensaje de longitud m, el resumen h(M) debe tener una longitud fija n. Lo normal es que n