Introducción
al cifrado
:: Criptografía general
::
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.