La Criptografía

CortafuegosSeguridad

Este artículo de Fernando de la Cuadra, de Panda Software, nos ilustra sobre el complejo mundo de la encriptación de documento.

La palabra “Criptografía” viene del griego “Kryptos”, escondido y “Graphos”, escritura. Es decir, cuando hablamos de Criptografía estamos hablando de “Escritura escondida”. Se trata de escribir algo de manera que otra persona que quiera leer lo que hemos escrito no pueda entenderlo a no ser que conozca cómo se ha escondido.

Los sistemas criptográficos están teniendo un gran auge últimamente ante el miedo de que una transmisión en Internet pueda ser interceptada y algún desaprensivo pueda enterarse de alguna información que no debería. Y no estamos hablando de un correo electrónico en el que organizamos las vacaciones con los amigos, nos referimos a, por ejemplo, una transacción comercial de cientos de miles de euros o una información sobre determinados temas empresariales que podría hacer las delicias de un competidor.

Desde la Antigüedad todas las civilizaciones han desarrollado sistemas de criptografía para que las comunicaciones no fueran públicas. Incluso hoy en día muchas personas utilizan lenguajes específicos para que solamente los iniciados en ellos puedan comprender la conversación como, por ejemplo, las jergas utilizadas en ambientes carcelarios. A veces los informáticos también parece que hablemos en clave…

Hay muchos sistemas para camuflar lo que escribimos. Quizá el más fácil sea la trasposición del texto. Consiste en cambiar cada letra del texto por otra distinta. Por ejemplo, si escribo boujwjsvt, solamente las personas que supieran que he puesto la letra siguiente del alfabeto para escribir la palabra antivirus podrían entender la palabra.

Evidentemente los sistemas criptográficos actuales van mucho más allá de un sistema como el de transposición, fácil de descubrir en unos cuantos intentos. Incluso si en lugar de trasponer un determinado número de espacios elegimos aleatoriamente las letras a sustituir, también bastaría con un ordenador que tuviera un simple corrector ortográfico para, en unos cuantos intentos, descubrir el significado de un mensaje.

La importancia de los números primos

Una de las tareas que más tiempo ocupa a los grandes sistemas de ordenadores es el cálculo de números primos cada vez mayores. Su objetivo es poder obtener un número que sirva para cifrar mensajes y que luego sea muy complicado descifrarlos.

Vamos a ver cómo se podría cifrar un mensaje en función de un número primo. Cada letra en un mensaje tiene un número asociado que nunca varía. El número está establecido por el código denominado “American Standard Code for Information Interchange” (ASCII). El conjunto de caracteres ASCII define cada carácter con un número que va desde el 0 al 255. Por ejemplo, la letra “A” mayúscula tiene el código 65, la “z” minúscula tiene el código 122, etc. Cualquier texto escrito en un ordenador se puede trasladar a notación ASCII. Por ejemplo, en código ASCII la palabra “antivirus” es:

97 110 116 105 118 105 114 117 115

Así tenemos una cadena de números (que es como realmente se transmite la información digitalmente) que podríamos multiplicar por un número que sea la multiplicación de dos números primos. Si elegimos, por ejemplo, 14 (multiplicando 2 y 7), la cadena de números nos quedaría así:

1358 1540 1624 1470 1652 1470 1596 1638 1610

La persona que quiera leer lo que pone, primero deberá averiguar cuál es el número que hemos utilizado para cifrar la información. Y para ello deberá adivinar cuáles son los dos factores que hemos utilizado para cifrar la información. Evidentemente, en este ejemplo es muy fácil, 14 es 7 por 2, no hace falta ninguna titulación en matemáticas más allá de la obtenida cuando estábamos en primaria.

Sin embargo, si utilizamos números muy grandes, el problema se complica. Por ejemplo, si utilizamos el número 2.591.372.723, su descomposición en dos factores primos ya no es tan inmediata. A pesar de eso, en muy poco tiempo veríamos que es el producto de 97.453 y 26.591.

La longitud de estos números (lo que se llama el “tamaño de la clave”) es primordial para que un cifrado sea más o menos efectivo. En el primer ejemplo, si pasamos a notación binaria el número 14 veríamos que se escribe 1110, un número de 4 bits. El segundo ejemplo, 2.591.372.723, se escribe en binario como 10011010011101010011010110110011, 32 bits. Y en los sistemas de cifrado actuales una clave de menos de 400 ó 500 bits se considera ridícula. Lo más normal es utilizar, como poco, ¡¡¡1.024 bits de longitud de clave!!!

Ventajas y problemas del cifrado

Mandar un correo electrónico cifrado aporta indudables ventajas tanto al emisor como al receptor del mensaje. La confidencialidad está prácticamente asegurada, nadie que no conozca las claves con las que se ha enviado el correo electrónico podrá enterarse de qué es lo que hay en el correo. Así podremos mandar todo tipo de información con la tranquilidad de que estará a salvo de teóricas intercepciones de la comunicación.

Pero… ¿qué es una intercepción de la comunicación? En principio todos pensamos que es un hacker, o un espía de la competencia, o cualquier otro elemento de esa calaña que quiere inmiscuirse en las conversaciones ajenas. Entre todos los que quieren echar un vistazo hay uno que lo hace con muy buena fe y grandes dosis de ganas de defendernos… ¡el antivirus!

Un antivirus siempre va a intentar inmiscuirse en la comunicación por correo electrónico. Tiene que abrir el mensaje y mirar qué es lo que hay dentro, no con afán de espionaje sobre el contenido del mensaje, sino en busca de un virus. Si el mensaje lo hemos cifrado, la misión del antivirus puede fracasar.

En la estructura empresarial actual se tiende a instalar antivirus en los puntos de conexión de las redes a Internet: firewalls, proxys, etc. Es el sitio más lógico, ya que por allí van a entrar casi el 90 por ciento de los virus. Pero si el virus viene en un mensaje de correo electrónico cifrado, ese maravilloso antivirus que está en el firewall va a fracasar en su misión: al estar el contenido del mensaje cifrado, no va a poder detectar el virus que pueda contener el mensaje.

De otra manera, los usuarios que recibieran correos cifrados podrían verse envueltos, inconscientemente en una infección. Si el emisor ha cifrado el mensaje, también ha cifrado el virus. Nadie, ni siquiera el antivirus más potente podría descifrar el mensaje para su análisis. Simplemente buscaría un virus en un montón de caracteres y símbolos que al ser incomprensibles ocultarían al virus de una manera tan eficaz como ocultan el texto. Por ello, la protección en las estaciones de trabajo debe ser tan fuerte como la perimetral, ya que es en la estación de trabajo donde el mensaje se descifrará y aparecerá el virus.

En definitiva, nadie duda de que los sistemas de cifrado son una herramienta que aumenta la seguridad de las comunicaciones, pero tienen su reverso tenebroso: ocultan virus a los antivirus perimetrales que no estén preparados. La única solución para evitar que los virus cifrados entren en la empresa, debe ser una protección perimétrica efectiva que bloquee los elementos cifrados no autorizados antes de que puedan alcanzar los servidores y las estaciones de trabajo de la empresa.

Lea también :