Modulo2 SeguridadSistemasInformaticos
Modulo2 SeguridadSistemasInformaticos
Modulo2 SeguridadSistemasInformaticos
Sistemas Informáticos
Autores
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
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.
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)
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.
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.
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.
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:
1.4. Criptoanálisis
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
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.
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.
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.
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:
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.
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
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.
Mensaje: m e n s a j e
Clave: c l a v e c l
Cifrado: o p n n e l p
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
por lo tanto, el resultado del cifrado será el mensaje "tnjae edE sf m osuarsni eec''.
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.
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.
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.
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.
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.
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.
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.
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]
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.
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 codificación se efectuará: c=me mod n mientras que la descodificación será: m=cd mod
n.
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.
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.
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.
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.
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).
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.
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
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.
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 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:
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.
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.
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.
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.
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.
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.
[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.
[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.