PDF Redes de Comunicaciones en PDF.
Subsecciones

9.1 Introducción

9.1.1 Criptología y esteganografía

La criptografía (literalmente escritura oculta) es la disciplina que se ocupa del conjunto de técnicas para cifrar y descifrar información haciendo posible el intercambio de mensajes de manera confidencial, es decir de manera que sólo puedan ser leídos por aquellos a quienes van dirigidos.

El criptoanálisis es la disciplina que se ocupa del conjunto de técnicas para descifrar mensajes en ausencia de las claves (romper el cifrado).

La criptología es la disciplina que engloba tanto la criptografía como el criptoanálisis.

La esteganografía es la disciplina que se ocupa del conjunto de técnicas que permiten el ocultamiento de mensajes dentro de otros, llamados portadores, de modo que no se perciba su existencia. En informática probablemente el sistema esteganográfico más utilizado sea el de ocultar mensajes en imágenes a nivel binario, alterando los bits de menor peso de determinados píxeles de la imagen e insertando en ellos el mensaje. Esta técnica hace indistinguible al ojo humano la imagen original de la alterada. Como además los mensajes se guardan cifrados en píxeles determinados por una clave no es posible saber si una imagen dada lleva un mensaje oculto o no.

Un ejemplo:

Dos presos, Ana y Bob, planean fugarse y para organizarlo necesitan intercambiar mensajes. La única manera de enviar mensajes es solicitándole a la guardiana Eva que haga de portadora. Si Ana le da a Eva un mensaje para Bob que dice Nos fugamos mañana a las 12 no es muy probable que la fuga tenga éxito. Ana puede utilizar la criptografía para enviar entonces el siguiente mensaje gdtrhfuwjeldikarstyivh, pero Eva sospechará que algo ocurre, aunque no sepa qué. Por último Ana puede utilizar la esteganografía para enviar un mensaje en apariencia normal que oculte el mensaje real para Bob. Este mensaje podría ser, por ejemplo, un poema acróstico50. Para mayor seguridad Ana podría enviar un mensaje cifrado oculto mediante esteganografía.
En este capítulo nos ocuparemos solo de criptografía y sistemas de seguridad relacionados en redes informáticas.

9.1.2 Criptografía simétrica

La criptografía simétrica utiliza una clave para alterar un mensaje -cifrado- de manera que sea necesaria esa misma clave para recuperar el mensaje original -descifrado-. La criptografía de clave simétrica es la más antigua, la más sencilla (y por tanto la más rápida y eficiente) y la más utilizada. Los primeros sistemas se basaban simplemente en la trasposición o sustitución de las letras del alfabeto, desde la scitala espartana (cuya clave era la vara o scitala), el atbash utilizado por los hebreos (la trasposición se hace con el alfabeto invertido) o el método atribuido a Julio César y conocido como cifrado del César (la trasposición se hace con el alfabeto movido tres posiciones, la clave sería 3)51.

Los algoritmos informáticos se basan principalmente en la trasposición de bloques52 de bits en base a claves binarias.

9.1.3 Criptografía asimétrica

La criptografía de clave pública se basa en la creación de rompecabezas matemáticos que son difíciles de resolver sin uno de los datos, pero fáciles de resolver con ese dato. El creador de las claves publica el rompecabezas (clave pública) y guarda el dato clave (clave privada). Ese rompecabezas matemático (clave pública) puede utilizarse para cifrar un número (mensaje) de manera que solo con el dato clave (clave privada) se pueda calcular el número original.

Por ejemplo es fácil multiplicar dos números primos pero es difícil factorizar el resultado. Lo mismo ocurre con el módulo de grandes números primos (DSA), los logaritmos discretos (ElGamal) o las matemáticas de las curvas elípticas. Por ejemplo si se usa la función ga mod p=s, es fácil calcular s a partir del resto de valores (g,a,p), pero es muy costoso computacionalmente calcular a a partir del resto de valores (g,p,s).

Se dice que un algoritmo de clave pública es reversible si se puede utilizar tanto la clave privada como la pública para cifrar y siempre es necesaria la clave contraria para descifrar.

La Criptografía de Curva Elíptica (ECC: Elliptic Curve Cryptography) es una variante de la criptografía asimétrica basada en las matemáticas de las curvas elípticas. Sus autores argumentan que la CCE puede ser más rápida y usar claves más cortas que los métodos anteriores al tiempo que proporcionan un nivel de seguridad equivalente.

9.1.4 Firma de mensajes

Los algoritmos de firma aportan autenticación, integridad y no-repudio a la comunicación.

El sistema básico para firmar un fichero, un mensaje o un resumen es mediante su cifrado con una clave, de forma que solo podrá entenderse descifrándolo de nuevo. El hecho de que pueda descifrarse con la clave establecida garantiza su integridad (si se hubiese alterado una vez cifrado no se podría descifrar) y su autenticidad (ha sido cifrado con la clave -firma- correcta).

Para firmar un mensaje o un fichero se genera un resumen y se cifra únicamente el resumen, por varios motivos:

A cambio se introduce un nuevo punto de fallo (el algoritmo de resumen, que puede ser sensible a colisiones).

Además los protocolos de firma agregan mecanismos de estampado de tiempo, lo que aporta no-repudio a la comunicación, es decir el emisor no puede negar que es quién ha creado el mensaje si la clave no había sido comprometida con anterioridad.

Por tanto los protocolos de firma se componen de un algoritmo de cifrado de clave pública, un algoritmo de resumen y mecanismos de estampado de tiempo. En vez de algoritmos de clave asimétrica se pueden utilizar un algoritmo de clave simétrica con clave pre-compartida para realizar el cifrado.

Cuando se firman mensajes de comunicación dentro de un protocolo seguro, las firmas generadas se conocen como código de autenticación de mensaje(MAC o kHMAC keyed-Hash Message Authentication Code).

9.1.5 Comunicación segura

Cuando dos partes desean comunicarse de manera segura han de enviar sus mensajes cifrados, lo que permite garantizar la confidencialidad de la comunicación, es decir que solo quienes dispongan de la clave podrán entender el mensaje.

Además han de utilizarse técnicas de firmado para garantizar la integridad y autenticidad del mensaje.

Estas tres garantías (Autenticidad, Confidencialidad e Integridad) definen una comunicación segura.

Por tanto para establecer una comunicación segura las dos partes establecen una negociación en la que acuerdan el uso de un algoritmo de cifrado simétrico -son los más rápidos-, una clave para el algoritmo -que puede ir variando con el tiempo- y un sistema de firmado (mediante claves asimétricas o clave simétrica pre-compartida que también tendrán que acordar). Una vez realizada la negociación y establecidos los parámetros de una comunicación segura se dice que se ha establecido una asociación de seguridad (SA: Security Association).

Si ambas partes de la comunicación utilizan algoritmos asimétricos reversibles y disponen de la clave pública de la otra parte pueden realizar la negociación de manera segura usando un medio inseguro. Para ello el remitente debe firmar sus mensajes con su clave privada y utilizar la clave pública del destinatario para cifrar los mensajes que le envía.

Esto permite que:

9.1.6 PKI (Public Key Infraestructure) y Redes de confianza (Web of Trust)

Si las partes no tienen conocimiento previo del otro no pueden simplemente solicitar a la otra parte su clave pública, ya que ésta podría ser alterada o intercambiada (ver más adelante el problema del hombre-en-medio). Para obtener las claves públicas de manera segura pueden utilizar una infraestructura de clave pública (PKI: Public Key Infrastructure). Estas infraestructuras se basan en la existencia de entidades certificadoras de claves públicas. Estas entidades emiten certificados que contienen el periodo de validez del certificado, datos del solicitante (datos de identificación y su clave pública) y están firmados por la entidad certificadora mediante la clave privada de la entidad. El principal formato de certificados utilizado es X.509, un estándar de ITU-T.

Para que una parte otorgue validez a un certificado de nuevo necesita conocer la clave pública de la entidad certificadora persistiendo el problema original. Por ello en última instancia las entidades certificadoras distribuyen su clave pública lo máximo posible mediante medios fiables, incluso en la propia instalación de los sistemas operativos y aplicaciones, por medio de certificados autofirmados. Además las entidades certificadoras deben certificarse unas a otras y crear listados de revocación de claves (para anular la validez de claves certificadas en su periodo de validez por haber quedado comprometidas).

Si no se dispone de PKI las partes deben acordar una clave para el algoritmo de cifrado simétrico sin llegar a comunicársela y sin que un tercero a la escucha pueda deducirla ya que entonces tendría capacidad para entender toda la comunicación. Este problema se conoce como intercambio de claves aunque, como se ha dicho, en realidad lo que se hace no es intercambiar una clave sino acordar una clave entre las partes.

Alternativamente las redes de confianza se basan en que cada usuario firme las claves públicas de usuarios de su entera confianza, que a su vez firman las claves públicas de otros exponencialmente, creando una red de claves públicas de confianza. Para obtener redes amplias y de calidad los usuarios deben conseguir que muchos terceros firmen su clave pública y, esto es muy importante, firmar solo la clave pública de terceros de confianza.

9.1.7 Intercambio Diffie-Hellman

El principal esquema teórico para acordar claves se conoce como intercambio Diffie-Hellman53 (DH). Este esquema se basa, igual que la criptografía de clave pública en funciones cuya reversible es difícil de calcular.

Su funcionamiento se puede ver en el siguiente ejemplo con la función ga mod p=s:

Un extremo Ana quiere acordar una clave con Bob por un canal en el que escucha Eva.

Ana informa a Bob (y a Eva) de que va a utilizar g=5 y p=23. En la práctica g suele ser 2 o 5, pero p debe ser un número primo de al menos 300 dígitos.

Entonces Ana elige un número aleatorio a=6 (en la práctica a debe ser un número de al menos 100 dígitos), calcula 56 mod 23=8 y envía a Bob (y a Eva) el resultado (8).

Bob elige un número aleatorio b=15 (que como el número aleatorio a de Ana debe ser en la práctica de al menos 100 dígitos), calcula 515 mod 23=19 y envía a Ana (y a Eva) el resultado (19).

Con estos datos Ana calcula que la clave acordada con Bob es 196 mod 23=2. Bob calcula que la clave acordada con Ana es 815 mod 23=2. Nótese que solo Ana conoce a y solo Bob conoce b pero ambos calculan el mismo valor para la clave s=2.

Eva para conocer la clave acordada s sin conocer ni a ni b debería resolver el sistema de ecuaciones

  • 5a mod 23=8
  • 5b mod 23=19
  • 19a mod 23=8b mod 23=s
lo cual, con las restricciones dadas para los valores de p, a y b, actualmente es irresoluble computacionalmente.

9.1.8 El problema del hombre en medio

El esquema DH solo se ocupa de acordar una clave, pero no de autenticar a los extremos, por lo que es atacable mediante un esquema de hombre-en-medio (man-in-the-middle). Para realizar este ataque, el atacante debe conseguir interceptar la comunicación haciendo de intermediario, es decir debe conseguir que los mensajes que las partes envían lleguen al intermediario y no al destinatario original y después reenviarles los mensaje, sustituyendo la comunicación directa por una indirecta. Para que las partes no noten la interferencia el intruso finge ser en cada momento el remitente original.

Siguiendo el ejemplo anterior:

Si Eva en vez de solo escuchar quisiera hacer un ataque tipo hombre-en-medio, lo que haría es establecer una comunicación con Ana fingiendo ser Bob y establecer otra comunicación con Bob fingiendo ser Ana. Usando el esquema Diffie-Hellman acordaría una clave con Ana y otra con Bob. Después desencriptaría los mensajes enviados por Ana con la clave acordada con ella y los volvería a encriptar con la clave acordada por Bob para enviárselos a él. De la misma manera desencriptaría los mensajes enviados por Bob con la clave acordada con él y los volvería a encriptar con la clave acordada por Ana para enviárselos a ella.
En medio de una comunicación con claves asimétricas:

Si Eva quiere hacer un ataque tipo hombre-en-medio en una comunicación con claves asimétricas entre Ana y Bob, lo que haría es enviar a Ana su clave pública -una generada al efecto- como si fuese la de Bob y enviar a Bob otra clave pública -generada al efecto- como si fuese la de Ana. De nuevo establecería una comunicación segura con Ana y otra con Bob, reenviando los mensajes interceptados tras descifrarlos y volverlos a cifrar y firmar.

Como hemos visto, este ataque no es posible si previamente Ana y Bob conocen las claves públicas de la otra parte o si Ana y Bob verifican las claves públicas que reciben mediante certificados de una entidad que previamente hayan reconocido.

Este ataque de hombre-en-medio permite no solo conocer la información intercambiada sino también alterarla enviando al destinatario mensajes o ficheros totalmente diferentes de los enviados por el remitente original.

El uso de PKI con claves públicas certificadas por las partes hace innecesario el esquema DH. Pero ¿qué ocurre cuando un cliente sin certificado quiere comunicarse de manera segura con un servidor con certificado? Es decir ¿y si solo una de las partes usa PKI para certificar su autenticidad?

En estos casos se utiliza el intercambio DH y el servidor firma todos sus mensajes. Esto hace que el hombre-en-medio pueda alterar los mensajes solo en una dirección (cliente sin certificar 3#3 servidor). Haciéndolo podría engañar al servidor pero no al cliente, con lo que la comunicación cliente-servidor no se establecería. Si no se altera ningún mensaje, como hemos visto, cliente y servidor podrán acordar una clave sin que ningún tercero sea capaz de averiguarla.



Notas al pie

...'ostico50
Un acróstico es una composición poética en el que las letras iniciales, medias o finales de cada verso, leídas en sentido vertical, forman un vocablo o una locución. El acróstico más conocido de la lengua española está constituido por los versos que conforman el Prólogo de La Celestina (Fernando de Rojas, 1497), en cuyas octavas se puede leer: El bachiller Fernando de Rojas acabó la comedia de Calisto y Melibea y fue nacido en la Puebla de Montalván.
... 3)51
Otro sistema de claves, por ejemplo JULIOCESAR (sin letras repetidas) nos daría el alfabeto de sustitución JULIOCESARBDFGHKMNÑPQTUVWXYZ
... bloques52
CBC (Cipher-Block Chaining) es el modo más utilizado de cifrado por bloques en contraposición al más simple y antiguo ECB (Electronic CodeBook). Su principal inconveniente es que el cifrado y descifrado es secuencial y no puede paralelizarse, mientras que en ECB el mensaje se divide en bloques que se cifran separadamente.
... Diffie-Hellman53
El esquema fue publicado por Whitfield Diffie y Martin Hellman en 1976.
2009-05
 
Creative Commons License 2009-05 Güimi (http://guimi.net)
Está permitido copiar, distribuir y/o modificar los documentos bajo los términos de la licencia
"Reconocimiento-Compartir bajo la misma licencia 3.0 España" de Creative Commons.
Puede ver una copia de esta licencia completa.

Redes de Comunicaciones, LAN, WAN, ISO OSI, IP, Ethernet, IEEE 802.11, Wi-Fi, PDH, RDSI, Frame-Relay, xDSL, CATV, VPN, H.323, SIP, Multimedia