Nothing Special   »   [go: up one dir, main page]

SSC - Segunda Unidad-Parte C

Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 19

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 Número de clave y la necesidad de compartirla


x 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 P-
t-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 Si el tamaño de bloque aumenta, habrá mayor seguridad, pero menor rapidez


9 Si el tamaño de clave aumenta, habrá mayor seguridad, pero menor rapidez
9 Si el número de rondas aumenta, habrá mayor seguridad
9 Si la complejidad de las subclaves aumenta, habrá mayor dificultad en el criptoanálisis
9 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 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.
x 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 r bits más significativos de O j
3. c j mj † t j
4. I j 1 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 r bits más significativos de O j
3. m j cj † tj
4. I j 1 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 r bits más significativos de O j
3. c 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
o:
4. I j 1 Oj
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) Unidireccionalidad: conocido un resumen h(M), debe ser computacionalmente


imposible encontrar M a partir de dicho resumen.
b) 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<m.
c) Facilidad de cálculo: debe ser fácil computar h(M) a partir de un mensaje M.
d) Difusión: el resumen h(M) debe ser una función compleja de todos los bits del
mensaje M, si se modificara un bit del mensaje M, el hash h(M) debería cambiar
aproximadamente en la mitad de sus bits
e) Colusión simple o resistencia débil a las colisiones (CRHF: STRONG ONE WAY
HASH FUNCTION): conocido M, será computacionalmente imposible encontrar
otro M’ distinto tal que h(M) = h(M’).
f) Resistencia a la preimagen (ONE WAY HASH FUNCION): para prácticamente
cualquier entrada es computacionalmente irrealizable encontrar un x (desconocido)
tal que h(x)=y (conocido)
g) Resistencia a la segunda preimagen (OWHF: WEAK ONE WAY HASH
FUNCTION): dados x y su correspondiente y=h(x), es computacionalmente
irrealizable encontrar otro x’ distinto a x tal que y’=h(x’)=y
h) No correlación: los bits de entrada y los bits de salida no deben estar correlacionados.
También es deseable que los cambios en cada bit de entrada afecta a cada bit de
salida.
i) Resistencia a la casi colisión: debe ser difícil obtener dos entradas (x, x’) para las
cuales sus imágenes (y, y’) difieran solamente en unos pocos bits.
j) Resistencia a las preimágenes parciales: debe ser igual de difícil recuperar una parte
de la preimágen de un hash que recuperar la totalidad. (Además si se conoce una
parte de la preimágen debe ser difícil obtener el resto de ella a partir del hash, o sea
si se desconocen t bits de la preimágen, debe tomar en promedio 2t-1 operaciones
hashing hasta descubrirlos)

2.6.1 Aplicaciones de las funciones hash

a) Autenticación de mensajes

Servicio usado para verificar la integridad del mensaje y que haya sido enviado por quien
dice, asegurando que el contenido no se haya modificado, borrado o rechazado, los mensajes
así autenticados se denominan message digest. Hay diferentes formas de proveer
autenticación de mensajes.

x El mensaje y el código hash concatenados son encriptados usando encriptación simétrica,


como sólo emisor y receptor conocen la clave, este esquema provee autenticación y
confidencialidad.

56
Mgter. Lucy Delgado Barra
SISTEMAS DE SEGURIDAD CRÍTICA

x Solo el código hash code es encriptado de manera simétrica, esto reduce el


procesamiento y se usa cuando la confidencialidad no es requerida.

x Se puede usar la función hash para la autenticación, pero no se implementa encriptación.


La técnica asume que ambas partes comparten un valor secreto, pero como este no se
envía, un intruso no puede modificar un mensaje interceptado

x Se puede añadir confidencialidad al método anterior encriptando el mensaje más el


código hash

La selección del tipo de esquema a usar se hace considerando que

x El software de encriptación es lento, aun cuando el tamaño del mensaje sea pequeño.
x El costo del hardware de encriptación puede ser prohibitivo, aun cuando se use para DES
chips de bajo costo, el costo se incrementa en función al número de nodos en la red
x El hardware para encriptación está optimizado para tamaños de datos muy grandes, si
esto no es así una gran proporción del tiempo se usará en operaciones de inicialización e
invocación.
x Los algoritmos de encriptación generan costos adicionales por licencias de uso

Una de las funciones hash más usadas es el message authentication code (MAC) o keyed
hash function, la que es usada entre dos nodos que establecen una clave secreta compartida
57
Mgter. Lucy Delgado Barra
SISTEMAS DE SEGURIDAD CRÍTICA

para el intercambio de información. MAC toma la clave secreta y un bloque de datos para
producir un valor hash el que se transmite con el mensaje protegido; si la integridad de este
necesita validarse, la función MAC se aplica al mensaje y se compara con el valor MAC
almacenado. Un ataque que altera el mensaje no podrá alterar la MAC sino conoce la clave
secreta, los algoritmos MAC sueles ser más eficientes que los algoritmos de encriptación al
generar bloques de longitud fija

b) Firmas digitales

Funciona de manera semejante a MAC, el valor hash del mensaje y la clave privada del
usuario son encriptados, el que conoce la clave pública del usuario podrá verificar su
identidad

El código hash es protegido usando encriptación asimétrica con la clave privada del
emisor, la autenticación reside en que sólo el emisor habrá producido el código hash
encriptado

Si también se desea confidencialidad además de la firma digital, el mensaje y el código


hash de la clave privada serán encriptados usando una clave secreta en forma simétrica

c) Otras aplicaciones

Las funciones hash se suelen utilizar también para

x Crear password para proteger archivos


x Para detectar intrusiones
x Para detectar virus
x Como generador de funciones y números pseudoaleatorios
x Confirmación de conocimiento (ACK)
x Obtención de claves aleatorias
x Almacenamiento seguro de contraseñas
x Autenticación mutua en protocolos de enlace remoto

58
Mgter. Lucy Delgado Barra
SISTEMAS DE SEGURIDAD CRÍTICA

x Autenticación de sistemas

2.6.2 Clasificación de las funciones hash

La siguiente es la clasificación más simple para las funciones hash

Entonces:

2.6.3 Funciones hash más comunes

MD5: Ron Rivest 1992. Mejoras al MD4 y MD2 (1990), es más lento, pero con mayor
nivel de seguridad. Resumen de 128 bits. Es una función hash de 128 bits. Como todas
las funciones hash, toma unos determinados tamaños a la entrada, y salen con una
longitud fija (128bits). El algoritmo MD5 no sirve para cifrar un mensaje. La
información original no se puede recuperar, ya que está específicamente diseñado para
que a partir de una huella hash no se pueda recuperar la información. Actualmente esta
función hash no es segura utilizarla, nunca se debe usar

SHA-1: Del NIST, National Institute of Standards and Technology, 1994. Similar a
MD5 pero con resumen de 160 bits. Existen otras nuevas propuestas conocidas como
SHA-256 y SHA-512. Es parecido al famoso MD5, pero tiene un bloque de 160bits en
lugar de los 128bits del MD5. La función de compresión es más compleja que la función
de MD5, por tanto, SHA-1 es más lento que MD5 porque el número de pasos son de 80
(64 en MD5) y porque tiene mayor longitud que MD5 (160bits contra 128bits). SHA-1

59
Mgter. Lucy Delgado Barra
SISTEMAS DE SEGURIDAD CRÍTICA

es más robusto y seguro que MD5, pero ya se han encontrado colisiones, por tanto,
actualmente esta función hash no es segura utilizarla, nunca se debe usar.

SHA-2: las principales diferencias con SHA-1 radica en en su diseño y que los rangos
de salida han sido incrementados. Dentro de SHA-2 encontramos varios tipos, el SHA-
224, SHA-256, SHA-384 y SHA-512. El más seguro, es el que mayor salida de bits
tiene, el SHA-512, que tiene 80 rondas (pasos), como el SHA-1 pero se diferencia de
éste en:

o Tamaño de salida 512 por los 160 de SHA-1.


o Tamaño del bloque, tamaño de la palabra y tamaño interno que es el doble que
SHA-1.
o Como ocurre con todos los cifrados y hash, cuanto más seguro, más lento su
procesamiento y uso, debemos encontrar un equilibrio entre seguridad y velocidad.

RIPEMD: Comunidad Europea, RACE, 1992. Resumen de 160 bits.


N-Hash: Nippon Telephone and Telegraph, 1990. Resumen: 128 bits.
Snefru: Ralph Merkle, 1990. Resúmenes entre 128 y 256 bits. Ha sido criptoanalizado
y es lento.
Tiger: Ross Anderson, Eli Biham, 1996. Resúmenes de hasta 192 bits. Optimizado para
máquinas de 64 bits (Alpha).
Panama: John Daemen, Craig Clapp, 1998. Resúmenes de 256 bits de longitud. Trabaja
en modo función hash o como cifrador de flujo.
Haval: Yuliang Zheng, Josef Pieprzyk y Jennifer Seberry, 1992. Admite 15
configuraciones diferentes. Hasta 256 bits.

2.6.4 Ataques a funciones hash

• Ataque del cumpleaños


• Ataque de seudo-colisiones y funciones de compresión
• Ataques encadenados
• Ataques al motor de encriptación
• Ataques de colisiones diferenciales (Chabaud-Joux)

http://www.fileformat.info/tool/hash.htm
Algunos protocolos que usan los algoritmos antes citados son:
60
Mgter. Lucy Delgado Barra
SISTEMAS DE SEGURIDAD CRÍTICA

x DSS (Digital Signature Standard) con el algoritmo DSA ("Digital Signature


Algorithm")
x PGP (Pretty Good Privacy) para cifrado y firmas digitales en Internet
x GPG (GnuPG Privacy Guard), una implementación de OpenPGP para el cifrado y
firmas digitales
x SSH (Secure Shell) protocolo para acceso remoto a un servidor
x SSL (Secure Socket Layer) protocolo de seguridad para la transmisión de datos entre
servidor y usuario web, ahora un estándar del IETF
x TLS (Transport Layer Security) protocolo de seguridad en redes para la transmisión
de datos

Trabajo de investigación formativa 7


Investigar según asignación las funciones hash y el tipo de ataque asignado, haciendo
énfasis en la algoritmia y las aplicaciones en el primer caso y la algoritmia en el segundo

61
Mgter. Lucy Delgado Barra

También podría gustarte