Bits y Qubits, El camino de la criptografía - Parte I

Siglos atrás, cuando empezaron a conformarse sociedades grandes y complejas en donde existían intereses particulares que no debían ser conocidos, se recurría a la utilización de métodos de comunicación que garantizaran el  secreto o confidencialidad de la información a compartir. Por ejemplo Julio César utilizaba un sistema de cifrado1 (de sustitución monoalfabética) para comunicarse con sus fuerzas militares dentro y fuera de Roma, diseño que mucho más tarde fue mejorado en el siglo XIX por Blaise de Vigenère a quien se le atribuyó el desarrollo de un cifrador de sustitución polialfabética2 mucho más elaborado, en el cual se empleó por primera vez el uso de una clave compartida (tal como en la actualidad).

Hasta el siglo XIX las sustituciones y transposiciones constituían las técnicas más comunes para ocultar mensajes a compartir,  mismas que eran confiables hasta que alguien lograba descubrir su funcionamiento (o algoritmo). Actualmente en cambio, se aplican las matemáticas como base fundamental de la criptografía, aportando un nivel de seguridad evidentemente mucho más elevado en donde los algoritmos incluso son conocidos por el público. De hecho el alemán Auguste Kerckhoffs3, planteó un principio en el que argumenta que “la fortaleza de un cifrador está en la fortaleza de su llave y no en cuán secreto sea su algoritmo”, valiosa lección que fue comprobada con sangre por sus compatriotas derrotados en la segunda guerra mundial, que se comunicaban con máquinas que cifraban las comunicaciones (como la Enigma4) cuyo diseño era evidentemente secreto, mecanismo que fue realmente efectivo hasta que el inglés Alan Turing5 (quien sentó las bases de la computación moderna) logró descifrar sus transmisiones en uno de los casos de criptoanálisis más memorables, evidenciando que el esfuerzo de mantener secreto un algoritmo de cifrado es inútil y que la seguridad del mismo recae directamente en la dificultad para descifrar su clave.

Siguiendo el principio de Kerckhoffs un gran número de diseños de cifradores actuales son abiertos y utilizan claves tan fuertes que podría tardarse años (cientos o miles) intentando descifrarlas con la capacidad de cómputo actual, aspecto que será revaluado al final del documento.

Teniendo ahora una somera visión del camino de la criptografía hasta nuestros días, es importante mencionar de forma muy breve algunas de sus aplicaciones.

Table

Bases de Datos

Los motores de bases de datos incluyen algoritmos criptográficos dentro de  su abanico de funciones, cuya implementación en sistemas de información es muy recomendable, evitando codificarlos o reusar código fuente de terceros.

Comunicaciones en Internet

TLS v1.2 es un protocolo derivado de SSL que provee comunicaciones seguras a través de la Internet, previniendo eavesdropping, tampering o message forgery. Una gran ventaja del protocolo es su capacidad de encapsular datos de capa de aplicación, ofreciendo transparencia en el desarrollo e implementación de aplicaciones, así como servir de plataforma de seguridad para protocolos (de capa superior) como HTTP, SMTP, NNTP o SIP.
TLS ofrece confidencialidad mediante criptografía simétrica, cifrando los datos con diferentes llaves para cada conexión, integridad utilizando funciones de hashing y autenticación mediante el uso de algoritmos de llave
pública.

Autenticación: Kerberos

Protocolo de autenticación que permite validar identidades de participantes durante un intercambio de mensajes, fue desarrollado por el MIT con base en el paper de Needmham y Schroeder de1978.

Su funcionamiento requiere un servidor central contra el cual los usuarios deben autenticarse primero, conocido como Key Distribution Center (KDC). Una vez se ha validado su identidad, se le entrega al usuario un ticket de sesión que utilizará para autenticarse contra los demás servidores que “confían” plenamente en el KDC y sólo aceptan solicitudes de cualquier usuario que se identifique con un ticket de sesión, mismo que  podrá ser reutilizado en diferentes servidores hasta que termine su tiempo de expiración. Kerberos constituye uno de los mecanismos más seguros de autenticación además de proveer una solución robusta de single sign-on.

La última versión, Kerberos 5, permite utilizar una gran cantidad de algoritmos criptográficos simétricos, asimétricos y de hashing, que implementa mayoritariamente de forma híbrida (por ejemplo 3DES-CBC-SHA1).

GnuPG

Herramienta de línea de comandos que implementa el protocolo OpenPGP (que a su vez usa PGP 5 como base), que permite ofrecer confidencialidad, administración de llaves, autenticación y firmas  digitales, mediante la  combinación del uso de criptografía simétrica y de llave pública.

P2P: MSE

El Message Stream Encryption (MSE) es un protocolo de cifrado utilizado en gran parte de la red torrent (y otros protocolos P2P), que sirve de envoltura a los flujos de datos y los protege de ser detectados como tráfico torrent, evitando así su filtrado por parte de terceros (como ISPs). De igual forma se consideró durante su diseño que MSE ofreciera protección en contra de eavesdroping y ataques man-in-the-middle.
MSE utiliza Diffie-Hellman para acordar la llave secreta, SHA-1 como función de hashing y RC4 para cifrar la comunicación debido a su
seguridad y velocidad (razón por la cual fue elegido en lugar de AES). Es importante aclarar que el objetivo del protocolo es “aleatorizar” el flujo de datos sin garantizar su integridad o la autenticación de los peers.

Wi-Fi

Tres diferentes protocolos permiten a un usuario conectarse a una red inalámbrica: WEP, WPA y WPA2.
A pesar de ser el más utilizado, WEP presenta vulnerabilidades serias debido principalmente a una deficiente alimentación del cifrador RC4. Fue
tan grave este error que se decidió generar un nuevo protocolo de comunicaciones wi-fi que reemplazara a WEP, así apareció WPA que utiliza
de una forma más adecuada a RC4 e incluye dos nuevos protocolos: TKIP (Temporal Key Integrity Protocol), que genera llaves diferentes para cada
sesión de usuario, y EAP (Extensible Authentication Protocol) que permite autenticar clientes de forma segura utilizando un servidor tipo RADIUS,
características que solucionan gran parte de los problemas de WEP. Sin embargo el protocolo wi-fi más seguro es WPA2, que incluye las
características de WPA y reemplaza a RC4 por AES, incrementando así en mayor medida la seguridad de la conexión.

Celular: GSM-EDGE-GPRS

La transmisión de voz vía GSM o EDGE desde el handset del usuario hasta la antena de la estación es cifrada mediante el algoritmo A5/3, mientras que GPRS utilliza GEA3. Ambos son cifradores de flujos que utilizan el cifrador de bloque Kasumi en modo OFB (output feedback) que les sirve como generador pseudoaleatorio.

Mensajería Instantánea

La mensajería instantánea es una actividad convertida en costumbre para un gran número de internautas, que desconocen que la mayoría de clientes de
IM que utilizan transmiten todas sus conversaciones en texto claro, de hecho usuarios poco experimentados comparten información sensible por
este medio de comunicación sin saber los riesgos que están corriendo.
Existe una comparación de diferentes características de clientes de mensajería instantánea en wikipedia:
http://en.wikipedia.org/wiki/Comparison_of_instant_messaging_clients

Evidentemente la criptografía se encuentra presente en algunas de nuestras actividades diarias, y poco (o nada) sabemos acerca de qué tipo de  algoritmos criptográficos se utilizan en cada una de ellas, imposibilitándonos entender qué tan seguros o vulnerables nos encontramos. Así como en los cuadros anteriores, existen muchas más aplicaciones de la criptografía, como transmisión de televisión (y su respectiva restricción de canales premium),
transmisión de señales satelitales, telefonía celular, creación de contraseñas, e-commerce, comunicaciones militares, bluetooth, VPN, etc. Es importante conocer cómo las aplicaciones o dispositivos con que interactuamos cotidianamente transmiten nuestra información, no sólo qué algoritmos implementan, sino también el tamaño de las claves que utilizan, porque según el principio de Kerckhoffs, en la fortaleza de la llave reside realmente la seguridad de la información transmitida.

El número de bits de la llave o del hash, dependiendo del caso, es un tema realmente crítico en criptografía que debe ser evaluado cuidadosamente por el profesional encargado de seguridad, afortunadamente existen recomendaciones útiles como apoyo técnico en este sentido que pueden ser consultadas en www.keylength.com.

Para terminar de hablar de criptografía moderna, el siguiente cuadro sugiere los algoritmos recomendables a implementar en las soluciones tecnológicas de la actualidad.

Hasta aquí llega la primera parte de este articulo, en la segunda edición hablaremos sobre la criptografía cuántica, espero que les gustara este articulo y me lo hagan saber con sus comentarios.

Otras partes del Articulo:

Este articulo fue escrito por Anaxmon para La Comunidad DragonJAR, tú también puedes enviar tus artículos para publicarlos en la comunidad, como ya lo hicieron Axiacamus, Eduardo Restrepo,, Epsilon, 4v4t4r, Cortex, Cronopio, D7n0s4ur70, Laura JAR y SamuraiBlanco; Solo tienes que enviar tu articulo a dragon(arroba)dragonjar.org.

Go up