viernes, 1 de marzo de 2013

Criptografía: la ciencia de los secretos (Parte II)

[Esta entrada es la continuación de aquella que posteé este lunes y que podéís ver aquí. Mientras que el pasado lunes hablábamos sobre cuales eran las técnicas tradicionales, esta semana toca explicar cuáles son los principios y el funcionamiento de los sistemas criptográficos actuales]


Al final el proceso de cifrado se traduce en operaciones sobre flujos de bits.


En esta entrada trabajaremos sobre un ejemplo concreto. Seguiremos el desarrollo de un escenario en el que hay tres interlocutores, cuyos nombres son Alice, Bob y Charlie. Los nombres han sido escogidos a propósito porque son los mismos que toman en los ejemplos que aparecen en libros de seguridad informática. En este caso, para no parecer un libro de texto, he preferido dotar de contexto a la situación relatada. De todas maneras, los problemas criptográficos que sufren los protagonistas son los mismos que aparecen en los textos sobre criptografía aplicada. 

Nota: este fragmento sólo pretende ser un ejemplo. No tiene como intención promover prejuicios hacia los colectivos a los que pertenece cada uno de los protagonistas. Considero que el hecho de que cada uno de los personajes disponga de un trasfondo es algo que resulta más interesante que narrar una serie de interacciones entre interlocutores.

Alice es la mujer de Charlie, un narcotraficante alojado en Miami. La vida de Alice no tiene sentido. Se ve asfixiada por su destrozado matrimonio, en el que el papel que ella interpreta es prácticamente nulo. Su marido, con suerte, la ignora, pero hay muchas noches en las que cuando vuelve a casa le insulta e incluso agrede físicamente. 

Cansada de una vida de soledad, se escabulle algunas noches fuera de casa. En uno de esos largos períodos nocturnos, conoce a Bob, un apuesto exbroker que ha decidido tomarse un respiro y se ha ido a vivir, durante un tiempo, a la costa oeste. Alice ve en Bob todo lo que Charlie pudo ser y no quiso: es amable, sabio y lo más importante, la trata como es debido. Tras una serie de encuentros inocentes, Alice y Bob intiman y el pecado se consuma. Pasado un tiempo y consciente de que las salidas nocturnas de su mujer se suceden más frecuentemente, Charlie, que es narcotraficante, pero no tonto, comienza a sospechar.

En cuanto se entera de que algo raro está pasando, Charlie le prohíbe a su mujer salir de casa. Ahora el único medio de contacto que ésta tiene con Bob es a través de Internet (no retorzamos más el asunto, todos sabemos que si Charlie fuera real esta historia acabaría aquí). De nuevo, Charlie no es idiota y tiene acceso a toda la información que sale del ordenador de su mujer, por lo que en principio, todo mensaje que intercambien Bob y Alice se podrá leer. 

El objetivo de Charlie es saber donde vive Bob y matarlo (no es un tipo complejo). Lo que Alice y Bob desean es seguir comunicándose para idear un plan que la libere de las garras del malvado Charlie. Para conseguir su objetivo, Charlie desea hacerse pasar por su mujer para forzar a quedar con Bob, momento en el que aparecerá con sus matones para terminar la historia. ¿Cómo pueden Alice y Bob comunicarse de tal manera que Charlie sea incapaz de arruinar sus planes?

Diagrama amoroso-criptográfico en el que aparecen todos los interlocutores del problema / Elaboración propia
Este ejemplo ilustra los principios de los sistemas criptográficos modernos que deben cumplirse para garantizar la seguridad en las comunicaciones:
  1. Confidencialidad. Esta propiedad garantiza que sólo el emisor y receptor del mensaje son capaces de comprender su contenido. En este caso, tanto Alice como Bob quieren que sus mensajes sean confidenciales, es decir, que Charlie sea incapaz de entender lo que se están diciendo.
  2. Autenticación y no repudio. Por autenticación se entiende que ambos interlocutores deben tener la garantía de que son aquellas personas o entidades que dicen ser. El no repudio se refiere a que el emisor, una vez enviado el mensaje, no puede negar ser el autor del mismo. En este caso la autenticación garantiza que sólo Bob puede envíar mensajes que indiquen que el remitente es Bob, así como sólo Alice puede enviar mensajes en los que indica que es ella. Ninguna de las dos partes puede rechazar que ha sido autor del mensaje.
  3. Integridad. El contenido del mensaje no puede ser modificado por un tercer individuo (un intruso) sin que los interlocutores se den cuenta. Es decir, si Charlie cambia el contenido de los mensajes, el receptor (Alice o Bob) se darían cuenta.
Lo que resta de la entrada será dedicado a ver cómo dos de los paradigmas de cifrado pueden contribuir a establecer comunicaciones seguras. Por desgracia, dejaremos a un lado cómo se verifica la integridad de un mensaje. Esta faceta de la criptografía es muy importante, pero si nos restringimos al problema visto en el ejemplo, no juega un papel tan importante como el resto de propiedades.

Criptografía simétrica

Un algoritmo es de cifrado simétrico cuando la clave empleada para el cifrado y descifrado es la misma. Las dos técnicas que veíamos en la entrada anterior empleaban la misma clave tanto para convertir el texto plano en texto cifrado, como para el proceso inverso. Recordemos que mientras que el valor de k en el cifrado César constituía una clave muy sencilla, si había una clave hecha y derecha en el cifrado Vignère. Como vimos en la entrada anterior, en torno a estos mecanismos de cifrado surgieron técnicas que permitían conocer el mensaje cifrado sin tener la necesidad de conocer la clave. Esto es un suceso recurrente en la criptografía. Aparece una técnica nueva, pasa el tiempo y queda obsoleta. 


Este tipo de algoritmos se encuentran muy avanzados, tanto en lo rápido que el proceso de (des)cifrado se lleva a cabo, como en lo difícil que resulta recuperar el mensaje original si se desconoce la clave. El esquema general que siguen comienza con la división del mensaje en fragmentos de igual tamaño. Sobre estos fragmentos efectúan el cifrado, el cual consiste en aplicar una serie de operaciones que son muy sencillas de aplicar si se sabe la clave, pero que si se desconociese resultaría un trabajo enorme. Estas operaciones se basan en el concepto de función dificilmente invertible, es decir una función matemática que es fácil de aplicar en un sentido pero difícil de aplicar en el otro. Por ejemplo, la exponenciación al cuadrado es sencilla de aplicar, todos sabemos calcular rápidamente el cuadrado de cualquier número. Sin embargo, ¿a que no es tan sencillo calcular la raíz cuadrada de un número?

Uno de los primeros  algoritmos de cifrado simétrico modernos fue DES. Se encuentra en desuso (ya no se considera seguro), pero sí se sigue empleando 3DES, que consiste en la aplicación sobre un mismo texto del algoritmo DES, pero 3 veces, empleando para ello 3 claves diferentes. En la actualidad el algoritmo más empleado es AES, el cual se considera un estándar de facto en lo que se refiere al cifrado simétrico de mensajes.

Retomemos el problema del ejemplo anterior. Si Alice y Bob desean emplear AES para cifrar los mensajes que intercambian, ambos necesitarán emplear una clave para cifrar el contenido de sus mensajes. El problema es que Charlie siempre está fisgoneando todo lo que Alice envía. Si Alice le envía a Bob la clave que ambos deben emplear, Charlie la conseguirá y será capaz de emplearla para descifrar el contenido de futuros mensajes, por lo que podrá saber todo lo que su mujer está diciendo a su amante (y viceversa).

¿Existe alguna manera de transmitir un mensaje a través de un medio no seguro, de tal manera que ese mensaje solo pueda ser descifrado por el receptor? La respuesta es afirmativa y parte del hecho de que tal vez sea interesante emplear claves distintas para el cifrado y descifrado. La solución consiste en emplear sistemas criptográficos de clave pública.

Criptografía de clave pública

Los sistemas de este tipo asumen que cada una de las entidades dispone de dos claves, una pública y otra privada. Lo interesante de este esquema es que la clave pública es conocida por todos, mientras que la clave privada sólo la conoce su dueño.

Estas claves se generan de tal manera que si Alice cifra un mensaje con la clave pública de Bob, sólo este último puede descifrar el mensaje. Para ello descifrará el mensaje recibido con su clave privada. El proceso en el otro sentido también es posible, Bob puede cifrar con la clave pública de Alice un mensaje, de tal manera que ella, con su clave privada, es la única capaz de descifrarla. Ahora sí se cumple la propiedad de confidencialidad, ya que es posible obtener el mensaje original cifrado en primer lugar con la clave pública y descifrando posteriormente con la clave privada. Alice y Bob pueden comunicarse sin que Charlie sepa lo que se están diciendo. 

Este enfoque aporta confidencialidad al proceso de comunicación, pero no garantiza la autenticación, es decir, no asegura a Bob que el mensaje recibido por parte de Alice proviene de ella. El motivo es sencillo, cualquiera (en especial, Charlie) es capaz de cifrar con la clave pública de Bob, por lo que no hay garantía de que la autora del mensaje cifrado sea Bob. El malvado Charlie puede enviarle un mensaje cifrado a Bob, haciéndose pasar por su mujer, de tal manera que éste se confíe y sea lanzado al mar metido en un saco.

El proceso mediante el cual se introduce esta información que garantiza la identidad del emisor es conocido como firma digital.  Para conseguir autenticación es necesario que Alice emplee su clave privada y cifre con ella el mensaje (si, es al revés que cuando se quería obtener confidencialidad). Una vez Bob recibe el mensaje, éste lo descifra empleando la clave pública de Alice para obtener el mensaje original. Lo interesante de este enfoque es que sólo Alice pudo cifrar ese mensaje, (también puede decirse firmar, porque cualquiera puede descifrarlo, al contrario que en el caso anterior) ya que sólo es posible descifrar un mensaje cifrado con la clave pública de un individuo, sí este lo ha cifrado previamente con su clave privada. Es importante también mencionar que ambos enfoques no son excluyentes. Es decir, puede cifrarse primero el mensaje con la clave pública del destinatario y después firmarlo con la clave privada. De esta manera se consigue confidencialidad y autenticación. Alice sabrá que sólo Bob ha podido enviarle el mensaje y además, sólo ella puede leer su contenido.

El hecho más importante es que las claves (pública y privada) se han generado de tal manera que sea imposible muy complicado recuperar la privada a partir de la pública. Debido a que el proceso de generación de claves se merece una entrada por sí solo, basta con decir que son creadas a partir de dos números primos enormes. Conseguir la clave privada a partir de la pública requeriría ser capaz de descomponer un número enorme (de miles de cifras) en sus factores primos. Hecho que a día de hoy, incluso con granjas de ordenadores trabajando, es una tarea enormemente costosa.


OrigenDestinoObjetivoAcción del emisor Acción del receptor
AliceBobConfidencialidadCifrar con la clave pública de Bob.Descifrar con la clave privada de Bob.
BobAliceConfidencialidadCifrar con la clave pública de Alice.Descifrar con la clave privada de Alice.
AliceBobAutenticaciónCifrar con la clave privada de AliceDescifrar con la clave pública de Alice
BobAliceAutenticaciónCifrar con la clave privada de Bob.Descifrar con la clave pública de Bob.
Resumen de las acciones a tomar por el receptor y emisor. Nótese que se pueden combinar ambos objetivos simplemente aplicando ambas acciones.

Hasta ahora todo han sido ventajas. La criptografía de clave pública nos aporta casi todo lo que Alice y Bob necesitan para comunicarse sin que Charlie se entere. Entonces, ¿qué sentido tiene criptografía simétrica? La respuesta es clara: es cuestión de eficiencia. Las operaciones de cifrado y descifrado, cuando se emplea un sistema asimétrico, son extremadamente lentas. Se estima que algoritmos de cifrado simétrico como  DES o AES pueden ser varios órdenes de magnitud más rápidos que sus homólogos asimétricos.

Por este motivo, a la hora de comunicarnos nosotros a través de Internet no se emplean estos sistemas durante todo el proceso, sino que se combinan ambos paradigmas. Para ello, en una primera etapa se establece una clave de sesión, la cual se empleará para cifrar y descifrar empleando un algoritmo simétrico. Esta clave es cifrada con la clave pública del destinatario, el cual la recibe y lleva a cabo el descifrado con su propia clave privada. Ahora ambas partes conocen esta clave de sesión, la cual será empleada para cifrar el resto de mensajes, esta vez mediante algoritmos simétricos.

Parece ser que al final Bob y Alice con tanta "tontería" de clave pública y privada terminarán fugándose juntos. Mientras, el pobre Charlie, paseará solo por las playas de Miami, preguntándose qué arruinó su matrimonio.

Pepe "Puertas de Acero" Pérez

No hay comentarios:

Publicar un comentario

Comparte este post

Related Posts Plugin for WordPress, Blogger...