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

Modulo2 SeguridadSistemasInformaticos

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

Curso online: Seguridad en los

Sistemas Informáticos

Módulo 2. Conceptos básicos de criptografía y


Protocolos seguros

Autores

Florina Almenares Mendoza

Patricia Arias Cabarcos

Julio de 2014
Seguridad en los sistemas informáticos
Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 2
Índice de contenidos

Capítulo 1 ¿Qué es la criptografía? 4


1.1. Criptosistema simétrico 5
1.2. Criptosistema asimétrico 6
1.3. Criptografía cuántica 7
1.4. Criptoanálisis 8
1.5. Sistemas seguros 9
Capítulo 2 Técnicas criptográficas 10
2.1. Técnicas de sustitución 10
2.1.1. Algoritmo de César 10
2.1.2. Sustitución afín 10
2.1.3. Cifrado de Vigenére 11
2.2. Técnicas de transposición 11
2.3. Cifrado de producto 12
Capítulo 3 Criptografía de clave secreta 13
3.1. Algoritmo DES 16
3.2. Algoritmo Triple DES (TDES) 17
3.3. Algoritmo AES 18
Capítulo 4 Criptografía de clave pública 19
4.1. Algoritmo RSA 19
4.2. ElGamal & Digital Signature Standard (DSS) 20
4.3. Curvas elípticas 21
4.4. Otros criptosistemas de clave pública 21
Capítulo 5 Protocolos seguros 22
5.1. IPSec 22
5.2. SSL 24
5.2.1. Record Protocol 24
5.2.2. Handshake Protocol 25
5.2.3. Alert Protocol 26
5.2.4. Change cipher spec protocol 27
Glosario de términos 28
Bibliografia 30

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 3
CAPÍTULO 1 ¿QUÉ ES LA CRIPTOGRAFÍA?

La palabra criptografía trae sus orígenes de las palabras griegas “krypto” que significa oculto y
“graphos”, escritura. Según la definición del diccionario de la Real Academia: “arte de escribir
con clave secreta o de un modo enigmático”. Podríamos también definir la criptografía como la
disciplina que estudia las técnicas y los métodos a usar para ocultar la información contenida
en una comunicación.

Desde los orígenes de la comunicación, las personas han estado intentando proteger la
información que se consideraba importante de modo que sólo los destinatarios elegidos de la
comunicación la pudiesen entender.

Existen múltiples casos en los que es evidente la necesidad de llevar a cabo una comunicación
privada. Por ejemplo, en todo conflicto militar se presenta la necesidad de que las órdenes de
los mandos lleguen a destino sin ser interceptadas por el bando opuesto o que, si llegan a ser
interceptadas, esto no sea capaz de interpretarlas correctamente. Un cambio muy importante
en la historia de la criptografía se da precisamente durante la segunda guerra mundial, cuando
ven el nacimiento tanto la criptografía moderna como las computadoras, desde siempre
estrechamente ligadas. Fue en este conflicto donde se utilizó lo que hoy se considera el primer
computador. Internamente al proyecto ULTRA, donde entre otros científicos se encontraba
Alan Turing, fue empleado para descifrar los mensajes enviados por el ejército alemán con la
más sofisticada máquinas de codificación creada hasta entonces, ENIGMA.

Desde entonces, la criptografía ha evolucionado paralelamente al desarrollo de las


computadoras. De hecho los algoritmos a la base de la criptografía moderna se fundan en el
concepto de computacionalmente imposible de romper. Los algoritmos de cifrados emplean
claves de un elevado número de bit, de modo que el numero de claves que se puedan usar (el
denominado espacio de claves) sea muy elevado. Si por ejemplo en un algoritmo el número de
posibles claves es 2128, un ordenador capaz de ejecutar un millón de operaciones al segundo
tardaría 1024 años en probarlas todas (llevado a cabo lo que se define como un ataque de
fuerza bruta). La imposibilidad o inutilidad de realizar tales operaciones es lo que se define
imposible computacionalmente. Por supuesto existen ataques mucho más eficientes que el de
fuerza bruta que habrán de tenerse en cuenta (por ejemplo ataques basados en diccionarios o
en paradojas matemáticas como el ataque de cumpleaños).

Antes de seguir con el estudio de la criptografía son necesarias algunas definiciones de


métodos y sistemas.

 Cifrar. Transcribir en guarismos, letras o símbolos, de acuerdo con una clave, un mensaje
cuyo contenido se quiere ocultar. (RAE)
 Descifrar. Declarar lo que está escrito en cifra o en caracteres desconocidos, sirviéndose
de clave dispuesta para ello, o sin clave, por conjeturas y reglas críticas. (RAE)

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 4
 Criptosistema. Definimos un criptosistema como la quíntupla ({M, C, K, E, D}),
donde:
 M representa el conjunto de todos los mensajes sin cifrar (el texto plano o en
claro)
 C representa el conjunto de todos los posibles mensajes cifrados
 K es el espacio de claves, todas las posibles claves para cifrar (kc) o descifrar (kd)
 E representa las transformaciones de cifrado, el conjunto de funciones que se
pueden aplicar a un texto plano M para obtener un texto cifrado C
 D representa las transformaciones de descifrado, el conjunto de funciones
"inverso'' a E, que permite pasar de un elemento C a un elemento M
En cualquier criptosistema será válida la ecuación (2.1): dado un mensaje M, al aplicar la
transformación E basada en la clave kc obtenemos el texto cifrado C. Si a este se le aplica
la correcta transformación D basada en la clave kd, obtenemos nuevamente el mensaje
original M.

DKd [C  Ekc (M )]  M (2.1)

Es posible hacer una primera clasificación de los criptosistemas basada en la tipología de


cifrado que en ellos se utiliza.

1.1. Criptosistema simétrico

Los criptosistemas simétricos son también definidos como criptosistemas de clave privada.
Son aquellos donde en la ecuación (2.1) la clave para cifrar y la clave para descifrar coinciden,
k=kc=kd. Para que tal sistema sea funcional, la clave k debe estar presente tanto en el emisor
como en el receptor, por lo tanto se hace necesario un sistema para acordar y distribuir la
clave entre los participantes de la comunicación. En principio, la distribución de claves puede
resultar difícil puesto que solo se puede llevar a cabo sobre un canal seguro, lo que no es el
caso del canal de comunicación.

Como se ve en la figura 2.1.1 el algoritmo de cifrado usa la clave y el texto en claro para
producir el texto cifrado, que se envía sobre el canal inseguro. El receptor usará la misma clave
y algoritmo de descifrado para obtener el texto en claro a partir del texto cifrado. En estos
sistemas la seguridad es directamente ligada a la longitud de la clave, cuanto más larga mejor.
En los sistemas simétricos la identidad del emisor y del receptor está garantizada por el
conocimiento de la clave secreta.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 5
Mensaje Mensaje Mensaje
cifrado descifrado
original codificado original
EMISOR CANAL DESTINATARIO

Figura 2.1.1. Criptosistema simétrico o de clave privada

1.2. Criptosistema asimétrico

También denominados de clave pública, son aquellos sistemas donde en la ecuación 2.1 la
clave de cifrado es distinta de la clave de descifrado, kc ≠ kd. La clave pública kp se utilizará
en la transformaciones de cifrado E mientras que la clave privada en las transformaciones de
descifrado D. En muchos casos las claves se pueden intercambiar, es decir, se puede usar la
clave privada para realizar operaciones de cifrado y la correspondiente clave pública para el
descifrado. Las dos claves cumplen con una relación matemática especial entre sí y, muy
característica importante, no se puede deducir una clave a partir de la otra, a menos de
conocer algún dato adicional. Este dato es usado en la creación de la pareja de claves y
normalmente destruido después.

En la práctica, los sistemas asimétricos presentan el inconveniente, comparados con los


sistemas simétricos, de ser extremadamente ineficientes en el cifrado de mensajes de grandes
dimensiones. Por lo tanto en sistemas reales se utiliza una combinación de ambos donde los
sistemas de criptografía asimétrica son usados para negociar o comunicar una clave que se
usará luego para cifrar el mensaje entero con un algoritmo simétrico.

Estos sistemas presentan una solución al problema de distribución de claves que caracteriza
los criptosistemas simétricos. En su implementación más popular cada participante a la
comunicación posee un par de claves distintas una privada, kP, que mantiene en secreto, y una
pública, kp, que distribuye libremente y en claro a todo posible emisor.

Así pues, si Alice quisiese enviar un mensaje a Bob (véase figura 2.1.2) pasaría al algoritmo de
cifrado el texto en plano y la clave pública de Bob kpB (que todo el mundo conoce). El mensaje
cifrado resultante sólo podrá ser descifrado por el posesor de la correspondiente clave privada
kPB, donde el único poseedor de dicha clave debería ser Bob.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 6
Figura 2.1.2. Criptosistema asimétrico o de clave pública

El cifrado de clave pública soluciona el problema de la distribución de claves, al no requerir un


canal seguro para enviar la clave pública. Se asume que existe siempre una vía por la que el
emisor del mensaje puede llegar a conocer la clave pública del destinatario y que ésta
pertenece realmente a él. En la práctica las claves se distribuyen con el apoyo de certificados
digitales, remitidos por una tercera entidad de confianza y que asocian una identidad a su
correspondiente clave pública. Aprovechando la característica de dualidad de la pareja de
claves, estos sistemas pueden ser usados para autenticación. Si un mensaje se ha cifrado con
la clave privada de Bob kPB, será descifrable por todo aquel que posea la clave pública y puesto
que podemos asumir que sólo Bob pudo generar dicho mensaje, el origen queda comprobado.

1.3. Criptografía cuántica

La criptografía cuántica es una de las nuevas teorías que han aparecido como variante de los
criptosistemas clásicos vistos en las secciones anteriores. Este tipo de criptografía difiere de la
clásica en el hecho de que los datos permanecen secretos gracias a las propiedades
fundamentales de la mecánica cuántica en lugar de la dificultad y/o complejidad
computacional no demostrada de ciertas funciones matemáticas [1]. Las primeras ideas sobre
criptografía cuántica fueron propuestas por Wiesner en los años sesenta.

Uno de los primeros avances de este tipo de criptografía es el protocolo BB84, publicado en
1984 [2], el cual ha sido propuesto para intercambio seguro de claves y posee numerosas
variantes. BB84 forma parte de la serie de protocolos denominados QKD (Quantum Key
Distribution) y se basa en el principio de incertidumbre de Heisenberg [3], cuya idea básica es
que si Alice envía qubits1 a Bob y Eve los intercepta en el camino y los observa, entonces, Eve
habrá forzado a los qubits a aparecer en un cierto estado, lo que puede ser explotado en su

1
Quantum bit, unidad básica de información en los ordenadores cuánticos.
Seguridad en los sistemas informáticos
Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 7
contra para detectar su presencia, permitiendo de esta manera conocer cuándo una
transmisión ha sido espiada.

Aún hay mucho que investigar al respecto, pero este tipo de criptografía ya ha sido utilizada
con éxito en algunos experimentos, el primero de ellos realizado por IBM en el año 2000, en el
que se empleaban cables de fibra óptica entre emisor y receptor, los cuales se encontraban a
10 kilómetros de distancia. Entre los problemas de seguridad que aún requieren ser resueltos
encontramos:

 Seguridad física. Engloba el mantenimiento de los soportes físicos de la información,


prevención de ataques o de manipulación del envío de datos, puesto que es posible
alterar los dispositivos que manejan qubits.
 Seguridad de la información. La información debe ser protegida de personas no
autorizadas.
 Autenticación y no repudio. Asegurar que el mensaje que se recibe viene realmente de
quien dice enviarlo y además que no ha sido alterado. Además de identificar al remitente,
también puede ser importante que el remitente no pueda negar la responsabilidad de
haberlo enviado, por tanto, es importante que el emisor no pueda negar su autoría sobre
él.

1.4. Criptoanálisis

El criptoanálisis consiste en comprometer la seguridad de un criptosistema. Esto se puede


hacer o bien descifrando un mensaje sin conocer la clave, o bien obteniendo la clave empleada
para cifrar algún mensaje. No se considera criptoanálisis el descubrimiento de un algoritmo
secreto de cifrado, de hecho se considera que el algoritmo de cifrado siempre es públicamente
conocido. Un ataque se basa en la naturaleza del algoritmo y adicionalmente en el
conocimiento de alguna característica especial del texto en claro.

Quizás el primero y el más simple de los métodos de criptoanálisis es lo que se define ataque
de fuerza bruta. Un ejemplo de este caso se ha aplicando el algoritmo de descifrado a un
mensaje codificado que poseemos y comprobando que el resultado tenga sentido como texto
plano. Se consideran de fuerza bruta todos los métodos que realizan una búsqueda exhaustiva
en el espacio de claves K. En algunos casos estos métodos no se consideran de criptoanálisis,
reservando este término para aquellos que explotan alguna debilidad del algoritmo. Por
supuesto el espacio de claves de cualquier criptosistema ha de mantener un espacio de claves
suficientemente grande como para hacer que este tipo de ataques sea computacionalmente
inviable. No obstante, ha de tenerse en cuenta la creciente capacidad de cómputo de los
ordenadores que puede hacer que algoritmos antes resistentes a los ataques de fuerza bruta,
se puedan romper con relativa facilidad.

Por lo general, podemos distinguir los ataques según la cantidad y el tipo de información que
el atacante posee. Por ejemplo, un atacante puede ser en grado de capturar uno o varios

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 8
mensajes en plano y sus correspondientes cifrados, o puede conocer cierto patrón que
aparece en el mensaje en claro (como es el caso de una codifica de ficheros formato
PostScript, donde todos los ficheros empiezan con el mismo patrón).

Partiendo del supuesto de que el atacante dispone de cierto número de pares de mensajes
plano-cifrado, se podrían aplicar métodos de criptoanálisis tales como el análisis diferencial y
el análisis lineal. En el primero, partiendo de pares de mensajes con diferencias mínimas
(normalmente de 1 bit), se estudian las variaciones que existen ente los mensajes cifrados
correspondientes tratando de identificar patrones comunes. El segundo emplea operaciones
XOR entre algunos bits del texto plano y algunos bits del texto cifrado, obteniendo finalmente
un único bit. Si se realiza con muchos pares de texto plano-cifrado podemos tener la
posibilidad de recuperar la clave.

1.5. Sistemas seguros

Puesto que un criptosistema seguro es tal si se demuestra resistente contra ataques de


criptoanálisis, hay que diferenciar entre distintos niveles de tal seguridad:

 Incondicional, si un criptosistema es seguro frente ataques con tiempo y recursos


ilimitados. Se trata de una seguridad puramente teórica puesto que todo algoritmo
matemático tiene una solución, si tenemos tiempo ilimitado para calcularla. Existen
estudios basados en la aplicación de principios de la mecánica cuántica que se proponen
conseguir este nivel de seguridad basándose en el asunción de que para romper un
algoritmo de cifrado cuántico abría que romper las reglas de la física.
 Computacional, si un sistema es seguro frente a ataques con tiempo y recursos limitados.
Es el tipo de seguridad que implementan los sistemas hoy en día. Se basa en la
observación de que la información a proteger posee un "tiempo de vida'' después del cual
pierde todo valor. Es pues suficiente que un sistema garantice que el tiempo necesario a
romperlo (encontrar la clave de cifrado) es mayor que el tiempo de vida de la
información. Puesto que ésta es una variable que depende de los recursos a disposición
del atacante ha de tenerse en cuenta el coste del esfuerzo de criptoanálisis necesario para
hacerse con la información. Si, en términos generales, la información es más valiosa que
el esfuerzo, puede que el sistema no sea seguro.
 Probable, si no se ha demostrado que un sistema sea inseguro.
 Condicional, si un sistema se puede considerar seguro mientras no se tengan recursos
suficientes para atacarlo.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 9
CAPÍTULO 2 TÉCNICAS CRIPTOGRÁFICAS

Se pueden consideran métodos de criptografía clásica todos los sistemas de cifrado anteriores
a la segunda guerra mundial, donde se identifica la transición a la criptografía moderna con el
uso del primer ordenador contra la maquina ENIGMA. Todos los algoritmos clásicos son
simétricos puesto que la criptografía asimétrica nació a mediados de os años 70. Los sistemas
aquí estudiados nos permitirán examinar los principio de los sistemas de cifrado simétrico
usados hoy en día. El principal problema que esos algoritmos presentaban se basaba en el
hecho de trabajar directamente con el lenguaje humano. Este tipo de mensaje posee una
elevada redundancia intrínseca en cualquier mensaje facilita el análisis.

2.1. Técnicas de sustitución

Podemos identificar dentro de lo que son las técnicas de sustitución los métodos de cifrado
mono-alfabético, donde se establece una correspondencia unívoca entre todos los símbolos
del alfabeto utilizado para la construcción del mensaje. En la operación de cifrado cada
símbolo es sustituido por otro correspondiente uno a uno.

2.1.1. Algoritmo de César

Este algoritmo toma su nombre de Julio César, que lo usaba para enviar mensajes secretos ya
en la antigua Roma. Es uno de los algoritmos criptográficos más simple y consiste en sumar
una constante (típicamente 3) al número correspondiente a la posición de cada letra en el
alfabeto. De esta forma la letra A se corresponde a la letra D. Si consideramos un alfabeto de
26 letras, en forma matemática podemos representar el algoritmo de César como:

C = (M+3) mod 26 (2.2)

2.1.2. Sustitución afín

Representa la generalización del algoritmo César. En este caso $a$ y $b$ representan la clave y
son dos números naturales inferiores a $n$, número de elementos del alfabeto.

C = (aM+b) mod n (2.3)

Es importante para los algoritmos de sustitución mono-alfabética que el mcd(a,n) sea igual
a 1. De este modo, se evita que distintos símbolos del texto plano correspondan al mismo
símbolo en el texto cifrado. También existen métodos de cifrado por sustitución denominados

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 10
polialfabéticos en los que la sustitución aplicada a cada carácter varía en función de la posición
de éste dentro del texto plano.

2.1.3. Cifrado de Vigenére

En el algoritmo conocido como de Vigenére, se obtiene el mensaje cifrado a partir del texto
plano y una clave. La clave es una secuencia de símbolos del mismo alfabeto del mensaje y de
longitud d. A cada elemento del mensaje original se suma el correspondiente elemento de la
clave para obtener el texto cifrado de acuerdo con la ecuación (2.4). Un ejemplo es
representado en la tabla 2.1. Es importante notar que en este algoritmo un mismo símbolo del
mensaje original no se corresponde siempre al mismo símbolo en el mensaje cifrado.

C = (Mi + Ki mod d) m (2.4)

Mensaje: m e n s a j e

Clave: c l a v e c l

Cifrado: o p n n e l p

Tabla 2.1: Ejemplo de cifrado de Vigenére

2.2. Técnicas de transposición

En un cifrado por transposición los símbolos que componen el mensaje no cambian pero si
cambia el orden de aparición en el mensaje. Un posible ejemplo de transposición sería escribir
el texto colocando cada letra en una de las n columnas de una tabla. El mensaje cifrado
resultante sería el contenido de las columnas, en el orden elegido, de arriba a abajo. En este
caso la clave sería compuesta por el número de columnas y el orden de lectura de las mismas.
Por ejemplo, queremos cifrar el texto "Este es un mensaje cifrado'' con n=7 columnas y en el
orden {3, 4, 1, 5, 2, 7, 6}. La tabla obtenida sería la reportada en la Tabla 2.2.

1 2 3 4 5 6 7
E s t e e s
u n m e n
s a j e c i
f r a d o

Tabla 2.2: Ejemplo de cifrado por transposición

por lo tanto, el resultado del cifrado será el mensaje "tnjae edE sf m osuarsni eec''.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 11
El principio a la base de las técnicas de sustitución sería en teoría suficiente para crear
algoritmos de cifrado fuertes. Si establecimos una tabla de sustitución completamente
diferente por cada clave con todos los textos planos posibles tendremos un sistema
extremadamente seguro.

Se observa que para un alfabeto de n símbolos ordenados existen n! formas de cambiar su


orden y formar así una clave de sustitución. En este caso la clave seria la secuencia ordenada
de símbolos elegida y se estaría realizando un algoritmo de sustitución aleatoria.

En el algoritmo "One-time pad" por ejemplo se genera una clave aleatoria de la misma
longitud del texto plano, el texto cifrado será el resultado de la operación de XOR símbolo a
símbolo entre texto plano y clave.

En la práctica estas soluciones suponen considerables problemas de memoria o de distribución


de claves. En el caso de la sustitución aleatoria por ejemplo si consideramos un alfabeto
formato de 2n símbolos, donde n=64 es el número de bit que forma un símbolo, la clave
resultante sería del orden de nx2n=1021 bits. La solución práctica a este tipo de problemas son
los cifradores de producto que intercalan sustituciones simples y transposiciones para crear
algoritmos de cifrado más fuertes y menos costosos.

2.3. Cifrado de producto

La gran mayoría de los algoritmos de cifrado simétrico modernos se basan en los conceptos de
confusión y difusión propios de la teoría de Shannon que combinados originan los
denominados cifrados de producto.

La confusión trata de ocultar la relación entre el texto plano y el texto cifrado. Esta relación
existe y se da a partir de la clave k empleada, puesto que si no existiera no sería posible
recuperar el texto original desde el mensaje cifrado. El mecanismo más simple para obtener
confusión es la sustitución.

La difusión diluye la redundancia del texto plano repartiéndola a lo largo de todo el texto
cifrado. El mecanismo más elemental para obtener difusión es la transposición.

Los cifradores modernos aplican una serie de iteraciones para conseguir ambos efectos. De
este modo, se consigue que la dependencia del texto cifrado la clave y el texto plano sea muy
complicada y que además se haya el denominado efecto avalancha: la variación de un solo bit
en el texto plano conlleva una variación del 50% del texto cifrado. Un ejemplo clásico de
cifrado producto es el LUCIFER, que posteriormente evolucionó al DES, que está compuesto de
sucesivos cifrados de sustitución y transposición.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 12
CAPÍTULO 3 CRIPTOGRAFÍA DE CLAVE SECRETA

La criptografía dicha de clave secreta compone un criptosistema de tipo simétrico, es decir, la


clave utilizada en la fase de cifrado será la misma que la utilizada en la fase de descifrado. Esto
plantea el bien conocido problema de distribución de clave: puesto que la seguridad de los
algoritmos se basa en la privacidad de la clave esta debe de ser transmitida sobre canales que
sean seguros. Si obviamos a estos inconvenientes los algoritmos simétricos se demuestran
extremadamente eficientes en el cifrado de grandes cantidades de datos por lo que son
ampliamente utilizados. En el marco de estos sistemas la simple posesión de la clave necesaria
a descifrar los datos representa una autenticación valida de la pareja de la comunicación.

En la moderna criptografía de clave secreta se pueden reconocer dos modelos fundamentales


de cifrado: el cifrado en flujo y el cifrado en bloque.

Los algoritmos de cifrado en flujo cifran el mensaje carácter a carácter, byte a byte o bit a bit, a
medida que se van generando. Los algoritmos de cifrado en bloque actúan sobre bloques de
caracteres y sólo cifran cada bloque una vez se ha generado.

En los ejemplos anteriores, los algoritmos de mono-alfabéticos y polialfabéticos serían


cifradores en flujo, pues cada carácter puede ser cifrado antes de generar el siguiente. Los
cifradores de transposición, sin embargo, serían cifradores en bloque, pues actúan sobre
bloques completos de caracteres.

Los cifradores en bloque son mucho más fáciles de realizar que los cifradores en flujo pero si el
tamaño de datos a cifrar es diferente al tamaño del bloque se necesita introducir mecanismos
adicionales de funcionamiento.

Si el tamaño de los datos es inferior al tamaño del bloque habrá que introducir padding
(relleno) hasta obtener el tamaño exacto del bloque, de otra manera el cifrador tendría que
esperar a recibir más datos hasta llegar al tamaño de bloque. La introducción de padding lleva
a una mayor redundancia del texto cifrado puesto que debe tener un tamaño conocido para
poder ser eliminado en recepción. Además disminuye la eficiencia del cifrado al disminuir la
relación texto plano texto cifrado.

Por ejemplo en la especificación PKCS#5 (RFC2630, sección 6.3) se especifica el mecanismo de


padding tal que al texto plano se añaden tantos octetos como sean necesarios, conteniendo
cada octeto añadido la representación binaria del número de octetos añadidos. Es cierto que
toda técnica de padding puede conllevar problemas: ¿cómo actuar si el texto plano no
necesita padding y contiene un patrón de padding? En el caso por ejemplo de que el texto
plano termine con el octeto "00000001'', este pude ser interpretado en recepción como un
octeto de padding. En este caso la única solución sería portar el último octeto a un nuevo

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 13
bloque de datos, generando uno nuevo (con el padding necesario) en el caso de que no haya
más datos a cifrar.

Si el tamaño de datos a cifrar es mayor que el tamaño de bloque (caso más frecuente), el
cifrador puede operar en los que se definen modos de operación. Existen cuatro diferentes
modos de operación (Figura 2.3.1):

 Electronic CodeBook (ECB). Cada bloque de texto se cifra por separado, usando la misma
clave. Trabaja bien en canales de transmisión con interferencia, la alteración de algún bit
sólo corromperá el bloque en que se encuentre. No permite detectar cuando se han
insertado o eliminado porciones de un mensaje. Puede introducir patrones detectables en
el texto cifrado. El error de recepción de un bit afecta solo al bloque propio del bit.
 Cipher Block Chainning (CBC). Los bloques del criptograma se relacionan entre ellos
mediante funciones XOR. El texto en claro pasa primero un XOR con el valor cifrado del
bloque previo ($x$ bits), el resultado se cifra posteriormente usando la clave. Para el
primer bloque se utilizan valores conocidos, dichos vector de inicialización. La mayoría de
las implantaciones del DES utilizan el modo CBC. Soluciona el problema de la introducción
de patrones del modo ECB, en este modo bloques de texto iguales resultarán en bloques
cifrados distintos. El error de recepción de un bit se propaga a un bloque adicional.
 Cipher FeedBack (CFB). La salida se retroalimenta al mecanismo. Después de cada bloque
se cifra, parte de él se recorre (con shift) dentro de un registro de x bits. El contenido de
este registro se cifra con el valor de la clave usando el modo ECB, y esta salida se
transforma con un XOR usando la cadena de datos para producir el resultado del cifrado.
Resulta útil para la transmisión de flujos continuos. El error en la recepción de un bit se
propagaría a un bloque de x bit. El sistema es en grado de auto-sincronizarse frente a
modificaciones o pérdidas de bloques, puesto que si se produce un error, éste no se
propaga a toda la secuencia, sino que se vuelve a sincronizar de forma automática, a
partir del segundo bloque consecutivo que llegue de forma correcta.
 Output FeedBack (OFB). Igual que el CFB, se realiza una operación de XOR entre
caracteres o bits aislados del texto y las salidas del algoritmo. Pero éste utiliza como
entradas sus propias salidas, por lo tanto no depende del texto, es un generador de
números aleatorios. Resulta útil para la transmisión de flujos continuos en medios
ruidosos, ya que el error de un bit en recepción no se propaga a más datos. El sistema no
se recuperará frente a la pérdida de un bloque.
Es interesante notar como en el modo OFB el módulo de cifrado y el módulo de descifrado son
perfectamente idénticos por lo tanto un mismo dispositivo puede ser utilizado bien con un
propósito o bien con el otro. En los modos CFB y OFB no se necesita en realidad de una función
de descifrado puesto que solo se usa la de cifrado en la transformación del valor de registro.

Sobre los modos de operación podemos concluir que: a) ECB es el más simple y rápido, pero
también el más vulnerable. No se recomienda para cifrar mensajes; b) CBC es el mejor para
cifrar archivos, ideal para aplicaciones basadas en software (como bases de datos); c) CFB es el
modo "de rigor" para cifrar flujos de datos transmitidos, cuando cada carácter ha de ser
tratado individualmente, como los enlaces entre servidor y terminal. Suele usarse en sistemas
de alta velocidad donde no se puede permitir ninguna propagación de errores y d) OFB es muy
bueno en situaciones donde pueda haber errores, ya que no los propaga.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 14
Figura 2.3.1. Esquema de funcionamiento de los principales modos de cifrado simétrico

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 15
3.1. Algoritmo DES

DES (Data Encryption Standard, estándar de cifrado de datos) es un algoritmo desarrollado


originalmente por IBM a requerimiento del NBS (National Bureau of Standards, Oficina
Nacional de Estandarización, en la actualidad denominado NIST, National Institute of
Standards and Technology, Instituto Nacional de Estandarización y Tecnología) de EE.UU. y
posteriormente modificado y adoptado por el gobierno de EE.UU. en 1977 como estándar de
cifrado de todas las informaciones sensibles no clasificadas. Posteriormente, en 1980, el NIST
estandarizó los diferentes modos de operación del algoritmo. Es el más estudiado y utilizado
de los algoritmos de clave simétrica.

Como casi todos los algoritmos de cifrado convencional, también DES tiene una estructura
basada en la descrita por Horst Feistel (IBM, 1973). El cifrado de Feistel consiste en realizar dos
o más operaciones básicas de cifrado (rondas) en secuencia de modo que el resultado final sea
criptográficamente más fuerte que los cifrados componentes. Las operaciones básicas serán
por supuesto sustitución y permutación. En una red de Feistel se recorta un bloque de texto
plano en dos, la transformación de ronda se aplica a una de las dos mitades, y el resultado es
combinado con la otra mitad con una operación de XOR. Las dos mitades se invierten entonces
para la aplicación de la ronda siguiente.

En el algoritmo DES cifra bloques de 64 bits de texto plano mediante permutación y


sustitución. Usando una clave de 64 bits, de los que 8 son de paridad reduciendo en realidad el
tamaño de clave a 56 bits, produce un bloque de 64 bits cifrados. El algoritmo se divide en 19
diferentes etapas. La primera etapa es una transposición, una permutación inicial (IP) del texto
plano de 64 bits, independientemente de la clave. La última etapa es otra transposición (IP-1),
exactamente la inversa de la primera. La penúltima etapa intercambia los 32 bits de la
izquierda y los 32 de la derecha. Las 16 etapas restantes son una Red de Feistel de 16 rondas.
En cada una de las 16 rondas se emplea un valor, Ki, obtenido a partir de la clave de 56 bits
por permutación y rotación que será distinto en cada iteración. En la figura 2.3.2 se reporta el
esquema de funcionamiento del algoritmo.

La transformación de la red de Feistel se compone de una permutación de expansión (E), que


convierte el bloque correspondiente de 32 bits en uno de 48. Después realiza un operación
XOR con el valor Ki, también de 48 bits, aplica ocho tablas de sustitución de 6*4 bits (toman 6
bits en entrada y producen una salida de 4 bits), y efectúa una nueva permutación (P).

La operación de descifrado se realiza aplicando el mismo algoritmo empleando las Ki en


orden inverso.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 16
Figura 2.3.2. Esquema de implementación del cifrado DES
[©http://desytdes.tripod.com/pagina2.html]

3.2. Algoritmo Triple DES (TDES)

Consiste en aplicar tres veces el algoritmo DES con diferentes claves al mensaje original. La
primera y la ultima aplicaciones directas del algoritmo DES mientras que en la intermedia se
aplica DES invertido. Esto es posible puesto que DES no representa una estructura de grupo. Se
dice que un cifrado tiene estructura de grupo si haciendo dos cifrados encadenados con dos
claves k1 y k2, es posible encontrar una clave k3 que realiza la transformación equivalente. Se
utiliza una clave de 128 bits (16 de paridad y 112 de clave), se aplican 64 bits a los dos DES y
otros 64 bits al DES inverso (ANTIDES) que se realiza entre los otros dos. El descifrado se
obtendrá aplicando dos operaciones de DES inverso y una, la intermedia, con DES directo.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 17
Con tres algoritmos se podría aplicar tres claves distintas, pero no se realiza de este modo para
que se compatible con el DES. Si la clave de 128 está formada por dos claves iguales de 64 el
sistema se comporta como un DES simple.

3.3. Algoritmo AES

También conocido como Rijndael, es un esquema de cifrado por bloques adoptado como
estándar de cifrado por el gobierno de los Estados Unidos. Se transformó en un estándar
efectivo en 2002. AES no utiliza una red de Feistel como el algoritmo DES, en cambio su
funcionamiento es basado en el concepto de "substitution permutation network". AES toma
bloques de 128 bits de texto plano y utiliza claves de 128, 192 o 256 bits. Internamente las
operaciones del algoritmo AES se realizan sobre un array de bytes bidimensional llamado
estado, se definen cuatro tipos distintos: a) SubBytes, sustitución no lineal de los bytes del
bloque de acuerdo a una tabla de búsqueda; b) ShiftRows, rotación cíclica de las filas del
estado; c) MixColumns, cada columna del estado sube una transformación lineal; d)
AddRoundKey, los bytes componentes el estado son combinados con los correspondientes
bytes de la iteración de clave calculada para la ronda corriente. En la figura 2.3.3 se pueden
visualizar estos tipos.

Figura 2.3.3. Operaciones constituyentes las rondas del protocolo AES [© Wikipedia]

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 18
CAPÍTULO 4 CRIPTOGRAFÍA DE CLAVE PÚBLICA

La criptografía denominada de clave pública compone un criptosistema de tipo asimétrico, es


decir, la clave utilizada en la fase de cifrado será distinta de la utilizada en la fase de
descifrado. La clave pública kp se utilizará en la transformaciones de cifrado, mientras que la
clave privada en las transformaciones de descifrado. Diffie y Hellman, propusieron una forma
para hacer esto, sin embargo no se popularizó hasta la publicación del método de Rivest
Shamir y Adleman, RSA en 1978, cuando toma forma la criptografía asimétrica. Su
funcionamiento está basado en la imposibilidad computacional de factorizar números enteros
grandes. La longitud de las claves suele ser significativamente mayor de la de las clave usada
en cifrados simétricos, por ejemplo una longitud normal puede ser de 1024 o 2048 bits. Con
los cifrados asimétricos se pueden proporcionar dos distintos tipos de servicio:

 Confidencialidad. La primera aplicación de los algoritmos asimétricos es el cifrado de la


información sin tener que transmitir la clave usada para la codificación. Esto permite
prescindir de la necesidad de un canal seguro para hacer llegar la clave de descifrado al
destinatario del mensaje. Supongamos de que A quiera enviar un mensaje a B, para ello A
solicita a B su clave pública. A genera entonces el mensaje cifrado con la clave pública de
B, una vez hecho esto solo quien posea la correspondiente clave privada podrá descifrar
el mensaje.
 Autenticación. La segunda aplicación de los algoritmos asimétricos es la de autenticación
de mensajes, apoyándose en la funciones de hash (resumen) se ha derivado el concepto
de firma digital. Una firma digital suele ser mucho más pequeña que el mensaje original y
es muy difícil encontrar otro mensaje que tenga la misma firma (propiedad de las
funciones de hash). Se basa en la propiedad de invertibilidad de la pareja de claves en
posesión de cada usuario. En el caso de que un usuario A quiera certificar la autenticidad
del mensaje que ha emitido, entonces generará un resumen de dicho mensaje y lo cifrará
con la clave privada que sólo él posee. A entonces envía el mensaje junto con el resumen
cifrado creando una firma digital. El receptor B, para comprobar la autenticidad del
mensaje, procede a descifrar el resumen recibido con la clave pública de A y calcula a su
vez un resumen del mensaje recibido. Si el resultado de las dos operaciones coincide
entonces el mensaje será autentico puesto que el único que posee la clave para codificar
es precisamente A.

4.1. Algoritmo RSA

RSA toma su nombre de los de sus tres inventores: Ron Rivest, Adi Shamir y Leonard Adleman.
Sus pares de claves son duales, por lo que sirve tanto para autenticar como para cifrar. RSA se
basa en la dificultad para factorizar números grandes. Las claves pública y privada se calculan a
partir de número que se obtiene como producto de dos primos grandes. El atacante deberá
resolver un problema de factorización computacionalmente imposible para recuperar un texto
plano a partir de un texto cifrado y de la clave pública.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 19
Para generar un par de claves escogeremos en primer lugar dos números primos grande p y q
y se calcula el producto n = p.q.

Se elegirá ahora un número e primo relativo con (p-1)(q-1). (e, n) será la clave
pública. Nótese que e debe tener una inversa módulo (p-1)(q-1), por lo que existirá un
número d tal que: de = 1 mod (p-1)(q-1). (d,n) será la clave privada.

La inversa d puede calcularse fácilmente empleando el algoritmo Extendido de Euclides pero


resultará prácticamente imposible si desconocemos los factores de n.

La codificación se efectuará: c=me mod n mientras que la descodificación será: m=cd mod
n.

4.2. ElGamal & Digital Signature Standard (DSS)

Tanto ElGamal como DSS son criptosistemas basados en el problema de logaritmos discretos.
ElGamal consta tanto de algoritmos de firma como de cifrado, mientras que DSS únicamente
ofrece un mecanismo de firma avalado por el gobierno de los Estados Unidos.

El algoritmo de cifrado utilizado en ElGamal es similar en la naturaleza al protocolo de acuerdo


de claves Diffie-Hellman2, ya que genera un secreto compartido y lo utiliza como un relleno
único para cifrar un bloque de datos. Por ejemplo:

2
El protocolo de acuerdo de clave Diffie-Hellman fue desarrollado por Diffie y Hellman en 1976 [4]. El
protocolo permite a dos usuarios intercambiar una clave secreta sobre un medio inseguro sin ningún
secreto previo. Para esto utiliza dos parámetros: p y g, ambos públicos y pueden ser usados por todos
los usuarios en el sistema. p es un número primo y g (llamado un generador) es un entero menor que p,
el cual es capaz de generar cada elemento desde 1 hasta p-1 cuando es multiplicado por sí mismo un
cierto número de veces, módulo del primo p.

Por ejemplo, Alice y Bob desean acordar una clave secreta compartida: primero, Alice genera un valor
privado aleatorio, a y Bob genera otro, b. Ellos obtienen sus valores públicos usando los parámetros p y
g y sus números privados. La clave pública de Alice es ga mod p y la de Bob gb mod p. Ellos
intercambian sus valores públicos, de modo que Alice calcula kab=(gb)a mod p y Bob calcula
kba=(ga)b mod p. Como kab=kba=k, Alice y Bob tienen ahora un secreto compartido k.

Este intercambio de clave es vulnerable a un ataque de man-in-the-middle: un oponente, Carol, podría


interceptar la clave pública de Alice y enviar su propia clave pública a Bob. Cuando Bob transmite su
clave pública, Carol la sustituye por su propia clave pública y la envía a Alice. Así, Carol y Alice acuerdan
una clave compartida y Carol y Bob acuerdan otra clave compartida. De esta forma Carol puede
descifrar cualquier mensaje enviado entre Alice y Bob. Esto ocurre porque no hay autenticación de los
participantes. Por tanto, una posible solución es el uso de firmas digitales o el uso de Diffie-Hellman
efímero.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 20
Alice tiene una clave privada a y una pública y, donde y = ga mod p. Bob desea enviar un
mensaje m a Alice, entonces Bob genera un número aleatorio k menor que p y calcula: yb =
gk mod p y c = m xor yk. Bob envía (yb, c) a Alice. Alice descifra el mensaje calculando
m = (yba mod p) xor c.

El algoritmo de firma es similar al de cifrado en cuanto que la clave pública y la privada tienen
la misma forma, pero el cifrado no es lo mismo que la verificación de firma, ni el descifrado lo
mismo que la creación de la firma como ocurre en RSA.

ElGamal es el predecesor de DSS. DSS define el algoritmo DSA (Digital Signature Algorithm),
1994, siendo similar al algoritmo utilizado por ElGamal para firma. La generación de la firma es
más rápida que la verificación, mientras que en RSA es justo lo contrario.

4.3. Curvas elípticas

Los criptosistemas de curvas elípticas son otra forma de implementar los métodos de
logaritmos discretos, en los cuales la multiplicación modular se sustituye por la operación de
suma de curva elíptica. Una curva elíptica utilizada en criptografía es básicamente un conjunto
de puntos que satisfacen la ecuación y2 = x3 + ax + b cuando se los considera dentro de
un campo finito de características p (donde p debe ser mayor que 3). Una ecuación
ligeramente diferente se necesita para el caso de características pequeñas, p=2 y p=3.

Los puntos en una curva elíptica pueden ser agregados conjuntamente y forman una
estructura denominada grupo.

Las curvas elípticas están basadas en la dificultad de factorizar, como ocurre con RSA. Por
tanto, la principal ventaja que presenta recae sobre el tamaño de la clave requerida, que es
menor para ofrecer el mismo nivel de seguridad que RSA. Lo mismo ocurre con la firma digital
producida. Esto hace que compita con criptosistemas tales como RSA y DSS, aunque no sean
muy utilizadas en la práctica.

4.4. Otros criptosistemas de clave pública

LUC [5] es un criptosistema de clave pública, para cifrado, que utiliza un grupo especial basado
en la secuencia de LUCAS (relacionado a las Sucesiones de Fibonacci) como su bloque de
construcción básico. Puede implementar todos los algoritmos basados en logaritmos discretos.
Los algoritmos de clave pública basados en la aritmética de LUC son llamados LUCDIF (LUC
Diffie-Hellman), LUCELG (LUC ElGamal), y LUCDSA (LUC DSA).

El cifrado de mensajes se calcula iterando la recurrencia, en lugar de utilizar exponenciación


como en RSA y Diffie-Hellman. Actualmente parece haber pocas razones para utilizar estos
criptosistemas puesto que ofrecen pocos beneficios respecto a las curvas elípticas o XTR.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 21
XTR [6] ha sido desarrollado por Arjen Lenstra y Eric Verheul. XTR es similar a LUC ya que
utiliza un grupo multiplicativo específico de un campo finito particular (de hecho Fp6) como su
grupo.

Sin embargo, XTR necesita aproximadamente solo 1/3 de los bits para las firmas y mensajes
cifrados. Esto es obtenido utilizando una representación específica rastreada de los elementos
de ese grupo, y realizando todos los cálculos utilizando esta representación. Todos los
algoritmos de clave pública podrían ser implementados con las ideas de XTR.

De acuerdo a Lenstra and Verheul el algoritmo es eficiente y podría ser un buen substituto de
las curvas elípticas, DSS y aún de RSA. Tiene la ventaja sobre las curvas elípticas de que está
basado esencialmente en el mismo problema de logaritmo discreto como el DSS, lo cual puede
ayudar a los criptógrafos a aceptarlo.

CAPÍTULO 5 PROTOCOLOS SEGUROS

En las distintas capas del modelo TCP/IP se pueden establecer diferentes controles de
seguridad atendiendo al tipo de los datos y a los problemas de seguridad a solucionar, se han
diseñado una serie de protocolos en los distintos niveles, que integran algunos de los
mecanismos de seguridad ampliamente conocidos y utilizados para solventar dichos
problemas.

5.1. IPSec

El protocolo "IP Security" permite establecer comunicaciones seguras a través de Internet,


independientemente de la aplicación o el protocolo de alto nivel utilizado [7].

Se ha diseñado para trabajar en dos distintos modos de funcionamiento. El modo transporte


es utilizado para comunicaciones entre ordenadores de la misma red. Todos los ordenadores
de la red deben tener instalado IPSEC. En este modo IPSec no protege completamente las
cabeceras IP de los paquetes. El modo túnel es utilizado principalmente para construir redes
privadas virtuales (VPN) mediante la comunicación entre pasarelas de seguridad (por ejemplo
routers incorporando IPSEC) o entre una pasarela y un ordenador, aunque también se puede
emplear para una conexión entre dos ordenadores. En este modo IPSEC se aplica al nivel IP,
anteponiendo una segunda cabecera IP autenticando y/o cifrando todo el paquete IP, incluidas
las cabeceras IP originales.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 22
IPSec incorpora los siguientes mecanismos:

La cabecera de autenticación, AH (Authentication Header), proporciona integridad y


autenticación del origen, mediante el uso de MAC (calculado con algoritmos MD5, SHA-1,
3DES, Sistemas de clave asimétrica, etc.) y opcionalmente protección contra reproducción
mediante un contador secuencial de paquetes.

Los datos seguros encapsulados, ESP (Encapsulating Security Payload), proporciona un


conjunto de servicios de seguridad, que pueden seleccionarse o no:

 Confidencialidad (cifrado) que es opcional.


 Autenticación e integridad van unidas, y son opcionales.
 Protección contra reproducción, opcionalmente seleccionada exclusivamente por el
receptor. El estándar obliga al emisor a incrementar el contador secuencial, pero el
receptor puede ignorarlo.
 Confidencialidad parcial del flujo de datos, sólo se puede usar en modo túnel y es más
efectiva cuando se usa IPSEC para comunicar dos pasarelas de seguridad, ya que en ese
caso el agrupamiento del tráfico desde / hacia múltiples ordenadores enmascara las
parejas origen-destino individuales.

Ambos mecanismos, AH y ESP, están basados en el concepto de asociación de seguridad, SA


(Security Association), y pueden ser utilizados conjuntamente o de forma independiente. Una
SA es la definición de las condiciones de seguridad utilizadas en una conexión unidireccional
entre dos puntos por lo que una normal conexión requiere por lo menos dos SA. Además una
SA sólo puede estar asociada a un protocolo de seguridad (AH o ESP) por lo que, si se quieren
usar ambos, hay que definir más de una SA para esa conexión. Entre los parámetros definidos
por una SA podemos encontrar, entre otros, el vector de inicialización utilizado en el cifrado
simétrico (para proporcionar confidencialidad), longitud y periodo de validez de las claves o el
nivel de seguridad de los datos a proteger.

Antes de poder empezar a transmitir información, el protocolo ISAKMP debe llevar a cabo un
intercambio inicial de material criptográfico, autenticación, etc. estableciendo una SA especial
(ISAKMP SA) que protegerá a su vez los posteriores datos criptográficos necesarios para las
demás SAs. ISAKMP establece un marco para estos intercambios de claves y autenticación,
pero no incluye ninguno en particular. Uno de los posibles protocolos a utilizar para
automatizar el intercambio de claves del protocolo ISAKMP es IKE. El protocolo IKE se divide en
dos fases distintas, en la primera se establecen los materiales de cifrado necesarios a la
creación de las SA. En particular existen tres grupos de material de cifrado, dos grupos
distintos para autenticación y cifrado de la ISAKMP SA más un tercero que se utilizará para
derivar las claves a usar en las sucesivas SAs. Es en la segunda fase del protocolo IKE donde se
negocian finalmente las SAs necesarias a la conexión. Sólo se necesita una fase 1 para
múltiples fases 2, en una fase 2 se pueden negociar simultáneamente varias SAs.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 23
5.2. SSL

El protocolo Secure Sockets Layer es un protocolo de seguridad [8], desarrollado por


Netscape, que proporciona privacidad de comunicaciones sobre Internet. Permite que las
aplicaciones cliente/servidor comuniquen de una forma diseñada para evitar intrusiones, robo
o falsificación del mensaje. El objetivo principal del Protocolo SSL es proporcionar privacidad y
fiabilidad entre dos aplicaciones que comunican entre sí. Se sitúa por encima del protocolo de
transporte, típicamente TCP. SSL proporciona una solución de cifrado mixta entre asimétrico y
simétrico. Esto permite alcanzar una buena eficiencia en el uso de los recursos puesto que los
algoritmos asimétricos son notablemente costosos. Al situarse por encima de TCP, SSL ofrece
un marco de seguridad que puede proteger los datos de cualquier aplicación que vaya sobre el
nivel de transporte. De este modo se puede alcanzar el objetivo de ocultar las complejidades
de la criptografía a los usuarios y a los desarrolladores.

Las conexiones SSL ofrecen tres servicios de seguridad:

 Confidencialidad, toda la información se transmite cifrada mediante un algoritmo


simétrico (DES-CBC, Triple-DES-CBC, RC2 o RC4).
 Autenticidad, se puede realizar la autenticación de cada uno de los pares de la
comunicación, utilizando cifrado asimétrico (RSA o DSS). Es basada en certificados
digitales X.509v3, para SSLv3.
 Integridad, se incluye un código de autenticación de mensaje (MAC), que permite
comprobar el origen y la integridad de los datos (MD5 o SHA-1).

Además SSL permite realizar compresión de los datos. Puesto que los datos cifrados no pueden
comprimirse porque la buena encriptación elimina de forma efectiva todas las repeticiones o
similitudes SSL permite comprimir los datos antes de realizar el cifrado.

Cuando se inicia la comunicación entre un servidor y un cliente, el primer paso es negociar los
algoritmos criptográficos que se van a utilizar. Una vez establecidos los parámetros, todos los
intercambios de información entre el cliente y el servidor se realizan cifrados.

El protocolo SSL es un protocolo estructurado, es decir es un protocolo que se compone de


otros protocolos. Los protocolos internos a SSL se organizan en dos capas, la capa de nivel
inferior, SSL Record, se utiliza para el encapsulamiento y transporte de los protocolos
superiores.

5.2.1. Record Protocol

El Record Protocol recibe bloques no vacíos de datos (SSL Plaintext Record) que él no
interpreta y con los que efectúa las siguientes operaciones:

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 24
14
 Fragmentación en bloques de un máximo de 2 bytes. En este empaquetamiento no se
respetan los límites de los mensajes procedentes de los otros niveles, es decir, diferentes
mensajes con el mismo Content Type pueden ser agrupados en un único bloque SSL
Plaintext Record.
 Compresión y descompresión de registros, convirtiendo el SSL Plaintext Record en una
estructura SSL Compressed Structure y viceversa, usando el algoritmo de compresión
activo. Dentro de la estructura, la parte correspondiente a los datos inicialmente recibidos
y ahora comprimidos es el SSL Compressed Fragment.
 Protección de la carga útil, usando los protocolos de cifrado y hash definidos en el
protocolo handshake, se transforman las estructuras SSL Compressed en estructuras SSL
Ciphertext y viceversa en recepción.

La capa de nivel superior, SSL Message se compone de tres protocolos que se apoyan sobre el
nivel inferior y no aprovechan las características.

5.2.2. Handshake Protocol

Handshake Protocol es el encargado de la etapa previa a la conexión, negociando el esquema


de seguridad, la autenticación de los participantes y las claves de sesión antes de comenzar la
transmisión de información propiamente dicha Figura 2.5.1. Inicialmente, un cliente que desea
conectarse a un servidor usando SSL, desconoce los tipos de algoritmos que utiliza el servidor y
viceversa. Para acordar los parámetros que se van a usar en la conexión se utiliza este
protocolo, que siempre empieza a iniciativa del cliente enviando un mensaje ClientHello
al servidor. En este mensaje el cliente anuncia al servidor los métodos y algoritmos de cifrado
(CipherSuite) y los métodos de compresión soportados, ordenados según la preferencia
del cliente. Además se envían también un identificador de sesión, una secuencia aleatoria y la
versión más alta del protocolo conocida.

Figura 2.5.1. Flujo de mensajes del protocolo de Handshake [(c)RFC6101]

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 25
El servidor debe responder con un mensaje ServerHello, para establecer la conexión. El
mensaje del servidor lleva los mismos campos del mensaje del cliente pero los relativos a la
CipherSuite y al método de compresión solo contienen el método elegido por el servidor
entre uno de los valores de la lista enviada por el cliente. Si se ha solicitado autenticación del
servidor, inmediatamente después del mensaje ServerHello el servidor envía un mensaje
ServerCertificate, que incluye una lista de certificados, empezando por el del servidor
y terminando por el certificado de la autoridad raíz. Una vez el servidor se haya autenticado
puede pedir un certificado al cliente. EL envío de un mensaje de ServerHelloDone finaliza
el envío del servidor. Si el servidor ha solicitado el certificado de cliente, éste responderá con
un mensaje ClientCertificate con una estructura similar a la del
ServerCertificate.

Después, con un formato que dependerá del entorno de cifrado elegido, el cliente envía el
mensaje ClientKeyExchange.

Si el cliente tiene certificado y éste tiene capacidad de firma, el cliente envía el mensaje
CertificateVerify, que es un hash firmado que incluye el master secret (secreto desde
el cual se derivan todas las clave usadas en la sesión) y todos los mensajes de handshake
enviados hasta este momento.

En este momento el cliente envía un mensaje, que no pertenece al protocolo handshake,


denominado ChangeCipherSpecs, que solamente contiene un 1 y sirve para indicar que, a
partir de aquí, todos los mensajes se van a enviar con los algoritmos y claves recién definidas.

El primer mensaje enviado por el cliente con estas nuevas condiciones es el mensaje
Finished, que contiene un hash firmado de todos los mensajes de handshake enviados
hasta el momento (incluido el mensaje CertificateVerify si existe, pero no el
ChangeCipherSpecs, pues no pertenece al protocolo handshake). El cliente no necesita
respuesta y ya puede empezar a enviar datos.

El servidor envía así mismo sus mensajes de ChangeCipherSpecs y Finished, lo que


finaliza el procedimiento de handshake y el servidor también puede empezar a enviar datos.

5.2.3. Alert Protocol

Alert protocol proporciona mensajes de alerta que contienen la gravedad del mensaje y una
descripción de la alerta. Estos son cifrados y comprimidos, al igual que los otros mensajes, tal
como se especifique en el estado de la conexión actual.

Los mensajes de alerta pueden tener dos niveles: warning y fatal, y la descripción de la
alerta puede ser close_notify, handshake_failure, no_certificate,
bad_certificate, etc. Un mensaje de aviso con un nivel "fatal" resulta en la
terminación inmediata de la conexión, invalidando el identificador de la sesión especificado.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 26
5.2.4. Change cipher spec protocol

Es el protocolo encargado de señalizar los cambios de estrategias de cifrado. Tiene un único


tipo de mensaje, el cual se cifra y comprime con el actual CipherSpec.

El mensaje puede ser enviado tanto por el cliente como el servidor para notificar a la parte
receptora que los registros siguientes serán protegidos por el CipherSpec y claves re-
negociados.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 27
GLOSARIO DE TÉRMINOS

Criptosistema o sistema criptográfico se puede definir como un sistema que toma


información, legible, inteligible para convertirla en información no legible, ininteligible, o no
entendible.

También se pude definir como una colección de transformaciones de texto claro en texto
cifrado y viceversa, en la que la transformación o transformaciones que se han de utilizar son
seleccionadas por claves. Las transformaciones son definidas normalmente por un algoritmo
matemático.

Operación XOR, también llamada Exclusive OR, es un tipo de operación lógica binaria. Las
combinaciones posibles y el resultado de aplicar XOR son las siguientes:

0 XOR 0 = 0

0 XOR 1 = 1

1 XOR 0 = 1

1 XOR 1 = 0

Esta operación se suele utilizar en cifrado, combinando el texto a cifrar con una clave binaria y
aplicando XOR para obtener el texto final. Si sobre el texto cifrado se aplica de nuevo XOR
utilizando la clave, se vuelve a obtener el texto plano original.

Red Privada Virtual (o VPN, Virtual Private Network), es una tecnología de red que permite
extender de forma segura una red local sobre una red pública, como Internet. Permite que el
ordenador en la red envíe y reciba datos sobre redes compartidas o públicas como si fuera una
red privada con la funcionalidad, seguridad y políticas de gestión de una red privada. Para ello,
se suele establecer una conexión virtual punto a punto dedicada y cifrada, tal como se ver en
la Figura 2.6.1.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 28
Figura 2.6.1. Red Privada Virtual

Transposición se refiere a la alteración en el orden de los símbolos que componen un mensaje.


Es enmascarar las representaciones caligráficas de una lengua, de forma discreta por ejemplo
por un método de conversión algorítmico que permite el paso inverso del texto.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 29
BIBLIOGRAFIA

[1] Michael A. Nielsen and Isaac L. Chuang, "Quantum Computation and Quantum
Information", Cambridge University Press, 2000.

[2] C.H. Bennett and G. Brassard, "Quantum cryptography: public key distribution and coin
tossing", Proceedings of IEEE International Conference on Computers, Systems and Signal
Processing, IEEE press., pp. 175-179. 1984.

[3] A. Galindo and P. Pascual, "Mecánica Cuántica", Madrid: Alhambra, 1978.

[4] W. Diffie and M.E. Hellman, "New directions in cryptography", IEEE Transactions on
Information Theory, IT-22: 644-654, 1976.

[5] J. Zhengtao, H. Yanhua and W. Yumin, " A new public-key encryption scheme based on
LUCas sequence", Journal of Electronics, vol. 22 (5): 490-497, 2005. Disponible en:
http://dx.doi.org/10.1007/BF03037006

[6] A. K. Lenstra and E. R. Verheul, "The XTR public key system", Springer-Verlag, pp. 1-19,
2000.

[7] S. Kent and K. Seo, "Security Architecture for the Internet Protocol", IETF RFC 4301,
December 2005.

[8] A. Freier, P. Karlton and P. Kocher, "The Secure Sockets Layer (SSL) Protocol Version 3.0",
IETF RFC 6101, August 2011.

[9] A. G. Konheim, "Computer Security and Cryptography", Wiley-Interscience, 2007.

Seguridad en los sistemas informáticos


Módulo 2. Conceptos básicos sobre criptografía y protocolos seguros Página 30

También podría gustarte