viernes, 3 de abril de 2009

SEGURIDAD: Cifrado de datos

El cifrado de la información es una herramienta imprescindible para la seguridad informática, que ha demostrado su utilidad desde hace miles de años. Cuando un sistema es comprometido, y se sospecha que los datos importantes han podido ser "espiados", la única esperanza consiste en que esos datos hayan sido cifrados previamente. Así, aunque se produzca el desastre y el ladrón haya accedido a la información, no podrá hacer uso de ella sin la clave correspondiente, y esta clave, no es como las que usamos normalmente. Gracias a ciertas propiedades matemáticas, dar con una clave de este tipo podría tomar más tiempo que la edad actual de la Tierra en segundos.

Porque para el cifrado "serio" de la información, se usa la llamada "criptografía asimétrica". Este tipo de cifrado se basa en la existencia de dos claves. Una es privada y otra pública. Sí, aunque parezca extraño, es una clave pública, que debe estar disponible para todo el mundo. Desde que se descubrieron ciertas propiedades de las potencias de los números primos, la criptografía no ha vuelto a ser la misma. Y es que estas dos claves, la pública y la privada, no son más que una serie de números "complementarios" y altísimos con unas propiedades muy interesantes. Lo que una clave puede "cifrar" la otra, y sólo la otra, puede "descifrar".

La criptografía es la herramienta más poderosa para proporcionar muchos servicios de seguridad de los que hemos hablado. Resulta la más adecuada además para los sistemas informáticos. A grandes rasgos, la criptografía es una rama de las matemáticas que se ocupa del proceso de cifrado (que no encriptar, esa no es la palabra correcta) de la información. El cifrado de datos es una técnica que permite transformar cierta información en una serie de datos ininteligibles o "datos cifrados" a veces con capacidad de recuperación (los datos pueden ser "descifrados") y a veces sin esta posibilidad. Cifrar unos datos sin capacidad de vuelta atrás tiene muchas utilidades. Por ejemplo, se usa en el almacenamiento de contraseñas. En vez de guardar las contraseñas de, por ejemplo, los usuarios de una web de correo en su base de datos (algo que sería un riesgo) se almacena la clave cifrada de forma especial que no permite recuperarla aunque se diera a conocer esta base de datos con contraseñas cifradas. Cuando alguien ingresa en la web y necesita validar su contraseña, lo que se hace en tiempo real es cifrar la contraseña introducida de la misma manera y comparar el resultado. Si ambas claves son iguales cifradas de la misma manera, es que son la misma clave y el usuario podrá pasar. Esta técnica de validación también es empleada en los "verdaderos" sistemas operativos multiusuario como Unix o Linux.

Veamos algunas definiciones:

Criptografía: ciencia que estudia cómo mantener la seguridad en los mensajes.



Criptoanálisis: ciencia que estudia cómo romper los textos cifrados. Resulta imprescindible para mantener la eficacia de la criptografía. Si no se prueban los algoritmos de cifrado, no se puede saber si son seguros o no. Deben ser comprobados por expertos y puestos a prueba por potentes máquinas y ordenadores capaces de probar millones de combinaciones por segundo.

Criptología: Es la combinación de criptografía y criptoanálisis.

Algoritmo criptográfico es la función utilizada para cifrar y descifrar. Tanto las operaciones de cifrado como descifrado utilizan una clave, que, como digo más arriba, puede ser distinta para cifrar y descifrar según el algoritmo que utilicemos.

La seguridad de estos algoritmos reside en mantener secreta las claves o la clave. El algoritmo, sin embargo, puede ser publicado y analizado, es más, debe serlo para poder comparar y elegir el mejor. Los sistemas de cifrado más eficaces se basan en algoritmos especificados públicamente, que todo el mundo sabe cómo funcionan. Estos algoritmos son los que se encargan de gestionar las claves para que los datos no puedan ser descifrados, aún sabiendo lo pasos exactos que se han dado para cifrarlos.

Criptosistema se compone del algoritmo, el teto en claro, el texto cifrado y las claves. El atacante normalmente intentará reunir estos elementos para intentar restituir el mensaje original.

Protocolo es la forma de comunicarse entre sistemas que usan comunicaciones cifradas. Un protocolo es una convención, una manera de hacer las cosas establecida y que proporciona un orden exacto a la comunicación. En la criptografía, un protocolo son los pasos que las máquinas dan para hacerse saber entre ellas que quieren comunicar cierta información, que la información viajará cifrada y qué espera de su receptor.

Actualmente, debido a la eficacia de los sistemas criptográficos, los atacantes suelen buscar agujeros de seguridad en los protocolos. En el momento de intercambio de claves públicas, por ejemplo, o en el momento de envío de claves privadas (que a su vez también suelen viajar cifradas). Es en estos puntos donde los expertos buscan las rendijas para robar información. También suele ser habitual la suplantación de identidad. Enviar mensajes basura que se hacen pasar por quienes no son, y así confundir al remitente y hacer que devuelva cierta información útil. A los ataques en los que se estudian las vulnerabilidades de protocolo, se les suele llamar "man in the middle", o hombre en el medio, debido a que el atacante debe poder interceptar la información entre dos personas (o, mejor dicho, entre el software de esas dos personas) para poder realizar un ataque con éxito.

La criptografía es un mundo apasionante que intentaré aclarar en sucesivos artículos, si bien sobre el tema, por amplio y complejo, nunca se conoce lo suficiente, al menos sabremos un poco más de la necesidad de proteger la información y de cómo las máquinas se ayudan de las matemáticas para garantizar nuestra intimidad.

No hay comentarios:

Publicar un comentario