Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Criptografía clásica.-
El cifrado de textos es una actividad que ha sido ámpliamente usada a lo largo de la historia
humana, sobre todo en el campo militar y en aquellos otros en los que es necesario enviar
mensajes con información confidencial y sensible a través de medios no seguros.
Aunque en cierta forma el sitema de jeroglíficos egipcio puede considerarse ya una forma de
criptografía (sólo podían ser entendidos por personas con conocimientos suficientes), el
primer sistema criptográfico como tal conocido de debe a Julio Cesar. Su sistema consistía en
reemplazar en el mensaje a enviar cada letra por la situada tres posiciones por delante en el
alfabeto latino. En nuestro alfabeto actual tendríamos la siguiente tabla de equivalencias:
A B C D E F G H I J K L M N Q O P Q R S T U V W X Y Z
D E F G H I J K L M N Q O P Q R S T U V W X Y Z A B C
Por lo que el mensaje "HOLA MUNDO" se transformaría en "KRQD OXPGR". Para volver al
mensaje original desde el texto cifrado tan sólo hay que coger un alfabeto e ir sustituyendo
cada letra por la que está tres posiciones antes en el msimo.
Este sistema fué innovador en su época, aunque en realidad es fácil de romper, ya en todo
sistema de trasposición simple sólo hay un número de variaciones posible igual al de letras
que formen el alfabeto (27 en este caso).
Este fué el primer sistema criptográfico conocido, y a partir de él, y a lo largo de las historia,
aparecierón otros muchos sitemas, basados en técnicas criptológicas diferentes. Entre ellos
caben destacar los sistemas monoalfabéticos (parecidos al de Julio Cesar, pero que
tansforman cada letra del alfabeto original en la correspondiente de un alfabeto
desordenado), el sistema Playfair de Ser Charles Wheastone (1854, sitema monoalfabético
de diagramas), los sistemas polialfabéticos, los de permutación, etc.
Aunque han sido muchos, y no vamos a verlos a fondo, sí hay que destacar dos sistemas
generales de ocultación, ya que juntos forman la base de muchos de los sistemas
criptográficos actuales. Son la sustitución y la permutación.
A B C D E F G H I J K L M N Q O P Q R S T U V W X Y Z
J K L M N Q O P Q R S T U V W X Y Z A B C D E F G H I
Este tipo de sustituciones se denomina monoalfabético, pero existen métodos más eficaces,
como los polialfabéticos, en los que existen varios alfabetos de cifrado, que se emplean en
rotación.
la letra 1 2 3 4 5 6 7 8 9
pasa a ser la 5 1 4 7 8 2 9 3 6
Tanto la sustitución como la trasposición son técnicas básicas para ocultar la redundancia en
un texto plano, redundancia que se transmite al texto cifrado, y que puede ser el punto de
partida para un ataque por Criptoanálisis. La redundancia es el hecho de que casi todos los
símbolos de un mensaje en lenguaje natural contienen información que se puede extraer de
los símbolos que le rodean.
Claves.-
Una solución sería escribir en un soporte cualquiera (papel, disquete, etc.) éste nuevo orden,
pero siempre queda entonces el nuevo problema de guardar el soporte, ya que si cae en
manos extrañas dará al traste con el mecanismo de ocultación.
H T M L
H O L A
M U N D
El paso siguiente será cambiar el orden de las filas, por ejemplo ordenando la palabra elegida
en orden alfabético, con lo que nuestra tabla nos queda:
H L M T
H A L O
M D N U
H H M O
L A D
M L N
Y ya sólo nos queda obtener el nuevo mensaje, leyendo las filas obtenidas:
Para desencriptar el texto cifrado habrá que realizar las operaciones anteriores en sentido
inverso.
El uso de una palabra o serie determinada como base de un sistema de cifrado posée la
ventaja de que, si el sistema es complejo, tan sólo será facil obtener el texto en claro a quién
sepa dicha palabra, además de ser fácil de recordar. Esta palabra o serie base del mecanismo
de cifrado se denomina clave de cifrado, y el número de letras que la forman se llama
longitud de la clave.
Indudablemente, cuanto más complicado sea el mecanismo de cifrado y cuanto más larga
sea la clave, más dificil será romper el sistema y obtener el mensaje original para un
extraño. Pero más complicado será también para el destinatario del mensaje cifrado realizar
las operaciones de descifrado y obtener el mensaje original, por lo que se crea el dilema
seguridad / tiempo.
Las claves de encriptación van a ser la base fundamental de los modernos sistemas
criptográficos, basados en operaciones matemáticas generalmente muy complejas.
Criptografía moderna.-
Como hemos visto en el apartado anterior, los sistemas criptográficos clásicos presentaban
una dificultad en cuanto a la relación complejidad-longitud de la clave / tiempo necesario
para encriptar y desencriptar el mensaje.
En la era moderna esta barrera clásica se rompió, debido principalmente a los siguientes
factores:
Criptografía simétrica.-
Incluye los sistemas clásicos, y se caracteriza por que en ellos se usa la misma clave para
encriptar y para desencriptar, motivo por el que se denomina simétrica.
Toda la seguridad de este sistema está basada en la llave simétrica, por lo que es misión
fundamental tanto del emisor como del receptor conocer esta clave y mantenerla en secreto.
Si la llave cae en manos de terceros, el sistema deja de ser seguro, por lo que habría que
desechar dicha llave y generar una nueva.
Para que un algoritmo de este tipo sea considerado fiable debe cumplir varios requisitos
básicos:
Los algoritmos simétricos encriptan bloques de texto del documento original, y son más
sencillos que los sistemas de clave pública, por lo que sus procesos de encriptación y
desencriptación son más rápidos.
Todos los sistemas criptográficos clásicos se pueden considerar simétricos, y los principales
algoritmos simétricos actuales son DES, IDEA yRC5. Actualemente se está llevando a cabo
un proceso de selección para establecer un sistema simétrico estándar, que se llamará AES
(Advanced Encryption Standard), que se quiere que sea el nuevo sistema que se adopte a
nivel mundial.
Las principales desventajas de los métodos simétricos son la distribución de las claves, el
peligro de que muchas personas deban conocer una misma clave y la dificultad de almacenar
y proteger muchas claves diferentes.
También llamada asimétrica, se basa en el uso de dos claves diferentes, claves que poséen
una propiedad fundamental: una clave puede desencriptar lo que la otra ha encriptado.
Generalmente una de las claves de la pareja, denominada clave privada, es usada por el
propietario para encriptar los mensajes, mientras que la otra, llamada clave pública, es
usada para desencriptar el mensaje cifrado.
Las claves pública y privada tienen características matemáticas especiales, de tal forma que
se generan siempre a la vez, por parejas, estando cada una de ellas ligada intrínsecamente a
la otra, de tal forma que si dos llaves públicas son diferentes, entonces sus llaves privadas
asociadas también lo son, y viceversa.
Mientras que la clave privada debe mantenerla en secreto su propietario, ya que es la base
de la seguridad del sistema, la clave pública es difundida ámpliamente por Internet, para que
esté al alcance del mayor número posible de personas, existiendo servidores que guardan,
administran y difunden dichas claves.
En este sistema, para enviar un documento con seguridad, el emisor (A) encripta el mismo
con la clave pública del receptor (B) y lo envía por el medio inseguro. Este documento está
totalmente protegido en su viaje, ya que sólo se puede desencriptar con la clave privada
correspondiente, conocida sólamente por B. Al llegar el mensaje cifrado a su destino, el
receptor usa su clave privada para obtener el mensaje en claro.
Una variación de este sistema se produce cuando es el emisor A el que encripta un texto con
su clave privada, enviando por el medio inseguro tanto el mensaje en claro como el cifrado.
Así, cualquier receptor B del mismo puede comprobar que el emisor a sido A, y no otro que
lo suplante, con tan sólo desencriptar el texto cifrado con la clave pública de A y comprobar
que coincide con el texto sin cifrar. Como sólo A conoce su clave privada, B puede estar
seguro de la autenticidad del emisor del mensaje. Este sistema de autentificación de
denomina firma digital, y lo estudiaremos despues con más detenimiento.
Para que un algoritmo de clave pública séa considerado seguro debe cumplir:
La principal ventaja de los sistemas de clave pública frente a los simétricos es que la clave
pública y el algoritmo de cifrado son o pueden ser de dominio públicon y que no es necesario
poner en peligro la clave privada en tránsito por los medios inseguros, ya que ésta está
siempre oculta y en poder únicamente de su propietario. Como desventaja, los sistemas de
clave pública dificultan la implementación del sistema y son mucho más lentos que los
simétricos.
El primer sistema de clave pública que apareción fué el de Diffie-Hellman, en 1976, y fué la
base para el desarrollo de los que después aparecieron, entre los que cabe destacar el RSA
(el más utilizado en la actualidad).
Los principales sistemas criptográficos, tanto de clave simétrica como pública, los veremos
con más detenimiento más adelante.
Sistemas mixtos.-
Comunicación segura.-
Varios son los aspectos que hay que manejar en el proceso de transferencia de un
documento electrónico y que definen una comunicación segura:
Como caso extremo, imagina que te conectas con el sitio web de tu banco
par ver el estado de tus cuentas y te aparece la página de entrada de claves
de acceso. Esta página tiene el logotipo del banco y un contenido textual en
el que se afirma que pertenece a tu banco, pero...¿y si es una imitación de
la página real del banco que te ha enviado un servidor pirata para hacerse
con tus claves?
Un ataque posible a este punto podría ser que una tercera persona capturara
el documento en el camino, por ejemplo los datos de un formulario de
compra en una tienda virtual, y que los modificara cambiando tu dirección
de entrega de los productos por una por él elegida. El banco te haría el
cargo de la compra a ti, pero los artículos que has comprado le llegarían al
pirata.
Firma digital.-
Dada la importancia que está adquiriendo la firma digital en los actuales sistemas de pago
electrónico y en los sistemas de autentificación, vamos a ampliar un poco su estudio.
La firma digital suele usarse en comunicaciones en las que no existe una confianza inicial
total entre los comunicantes. Se usan para autentificar mensajes, para validar compras por
Internet, para realizar transferencias de fondos bancarios y para otras transacciones de
negocios.
Tanta es la fuerza que posée éste sistema que a nivel legal la firma electrónica constituye en
la mayoría de los casos una prueba de indudable de autoría del envío de un documento
electrónico, semejante a la firma tradicional de puño y letra.
Un alegato que podría esgrimir A para negar la autoría del envío de un documento cifrado
con su clave privada sería el echo de haber perdido dicha llave o que se la hayan sustraído,
pero entonces hay que tener en cuenta que A es la única responsable del buen uso de su
llave privada, por lo que está obligado a comunicar inmediatamente a la autoridad
correspondiente cualquier circunstancia que ponga en peligro la seguridad de la misma.
Esto es análogo a lo que ocurre con las tarjetas de débito o crédito, siendo siempre en último
extremo responsable del uso indebido de las mismas el dueño de la tarjeta si no ha avisado
a tiempo a su entidad financiera o banco de la pérdida o sustración.
Funciones hash.-
Para solventar éste aspecto aparecen las funciones hash, que son unas funciones
matemáticas que realizan un resumen del documento a firmar. Su forma de operar es
comprimir el documento en un único bloque de longitud fija, bloque cuyo contenido es
ilegible y no tiene ningún sentido real. Tanto es así que por definición las funciones hash son
irreversibles, es decir, que a partir de un bloque comprimido no se puede obtener el bloque
sin comprimir, y si no es así no es una función hash. Estas funciones son además de dominio
público.
A un mensaje resumido mediante una función hash y encriptado con una llave privada es lo
que en la vida real se denomina firma digital.
Y su mecanismo es el siguiente:
1. El emisor aplica una función hash conocida al documento, con lo que obtiene
un resumen hash del mismo.
2. Encripta dicho resumen con su clave privada.
3. Envía al receptor el documento original plano y el resumen hash encriptado.
4. El receptor B aplica la función hash al resumen sin encriptar y desencripta el
resumen encriptado con la llave pública de A.
5. Si ambos coinciden está seguro de que ha sido A el que le ha enviado el
documento. Si no coinciden, está seguro de que no ha sido A o de que el
envío ha sido interceptado durante el medio de envío y modificado.
Las funciones hash y la firma digital son elementos indispensables para el establecimiento de
canales seguros de comunicación, basados en los Certificados Digitales.
Para que una función pueda considerarse como función hash debe cumplir:
- MD4, abreviatura de Message Digest 4, desarrollado por Ron Rivest, uno de los
fundadodres de RSA Data Security Inc. y padre del sistema asimétrico RSA. Aunque se
considera un sistema inseguro, es importante porque ha servido de base para la creación de
otras funciones hash. Un sistema de ataque desarrollado por Hans Dobbertin posibilita el
crear mensajes aleatorios con los mismos valores de hash (colisiones), por lo que ya no se
usa. De hecho, existe un algoritmo que encuentra una colisión en segundos.
- MD5, abreviatura de Message Digest 5, también obra de Ron Rivest, que se creó para dar
seguridad a MD4, y que ha sido ampliamente usado en diversos campos, como autenticador
de mensajes en el protocolo SSL y como firmador de mensajes en el programa de correo
PGP. Si embargo, fué reventado en 1996 por el mismo investigador que lo hizo con MD4, el
señor Dobbertin, que consiguió crear colisiones en el sistema MD5, aunque por medio de
ataques parciales. Pero lo peor es que también consiguió realizar ataques que comprometían
la no-colisión, por lo que se podían obtener mensajes con igual hash que otro determinado.
A pesar de todo esto, MD5 se sigue usando bastante en la actualidad.
- SHA-1, Secure Hash Algorithm, desarrollado como parte integrante del Secure Hash
Standar (SHS) y el Digital Signature Standar (DSS) por la Agencia de Seguridad Nacional
Norteamericana, NSA. Sus creadores afirman que la base de este sistema es similar a la de
MD4 de Rivest, y ha sido mejorado debido a ataques nunca desvelados. La versión actual se
considera segura (por lo menos hasta que se demuestre lo contrario) y es muy utilizada
algoritmo de firma, como en el programa PGP en sus nuevas claves DH/DSS (Diffie-
Hellman/Digital Signature Standar). Destacar también que en la actualidad se están
estudiando versiones de SHA con longitudes de clave de 256, 384 y 512 bits.
DES.-
Posteriormente se sacó una versión de DES implementada por hardware, que entró a formar
parte de los estándares de la ISO con el nombre de DEA.
Se basa en un sistema monoalfabético, con un algoritmo de cifrado consistente en la
aplicación sucesiva de varias permutaciones y sustituciones. Inicialmente el texto en claro a
cifrar se somete a una permutación, con bloque de entrada de 64 bits (o múltiplo de 64),
para posteriormente ser sometido a la acción de dos funciones principales, una función de
permutación con entrada de 8 bits y otra de sustitución con entrada de 5 bits, en un proceso
que consta de 16 etapas de cifrado.
En general, DES utiliza una clave simétrica de 64 bits, de los cuales 56 son usados para la
encriptación, mientras que los 8 restantes son de paridad, y se usan para la detección de
errores en el proceso.
• Es el sistema más extendido del mundo, el que más máquinas usan, el más
barato y el más probado.
• Es muy rápido y fácil de implementar.
• Desde su aparición nunca ha sido roto con un sistema práctico.
Actualmente DES ya no es estándar y fué roto en Enero de 1999 con un poder de cómputo
que efectuaba aproximadamente 250 mil millones de ensayos en un segundo.
* Triple DES.-
Como hemos visto, el sistema DES se considera en la actualidad poco práctico, debido a la
corta longitud de su clave. Para solventar este problema y continuar utilizando DES se creó el
sistema Triple DES (TDES), basado en tres iteraciones sucesivas del algoritmo DES, con lo
que se consigue una longitud de clave de 128 bits, y que es compatible con DES simple.
Este hecho se basa en que DES tiene la característica matemática de no ser un grupo, lo que
implica que si se encripta el mismo bloque dos veces con dos llaves diferentes se aumenta el
tamaño efectivo de la llave.
Para implementarlo, se toma una clave de 128 bits y se divide en 2 diferentes de 64 bits,
aplicándose el siguiente proceso al documento en claro:
Si la clave de 128 bits está formada por dos claves iguales de 64 bits (C1=C2), entonces el
sistema se comporta como un DES simple.
Trás un proceso inicial de búsqueda de compatibilidad con DES, que ha durado 3 años,
actualmente TDES usa 3 claves diferentes, lo que hace el sistema mucho más robusto, al
conseguirse longitudes de clave de 192 bits (de los cuales son efectivos 168), mientras que
el uso de DES simple no está aconsejado.
RC5.-
Permite diferentes longitudes de clave (aunque está prohibida su exportación fuera de EEUU
con longitudes superiores a 56 bits), y funciona como un generador de números aleatorios
que se suman al texto mediante una operación de tipo OR-Exclusiva.
En cuanto a su seguridad, aún es pronto para afirmar nada concluyente, aunque en 1996
una universidad francesa consiguió romper el sistema RC4 con clave de 40 bits, lo que hace
sospechar que RC5 con longitudes de clave de 56 bits no es lo suficientemente seguro.
Si queréis ver una buena demostarción de cómo RC4 realiza el proceso de cifrado en este
enlace tenéis un zip que contiene un programa en el que Don José de Jesús Angel Angel, de
la empresa Seguridata lo explica paso a paso.
IDEA.-
Sistema criptográfico simétrico, creado en 1990 por Lai y Massey, que trabaja con bloques de
texto de 64 bits, operando siempre con números de 16 bits usando operaciones como OR-
Exclusiva y suma y multiplicación de enteros.
El futuro estándar.-
El NIST de EEUU, en busca de un nuevo sistema de encriptación simétrico que reúna las
características funcionales y de seguridad necesarias, decidió convocar en 1977 un concurso
a nivel mundial, invitando a los principales desarrolladores de este tipo de sistemas a crear
un algoritmo que pueda ser tomado como estándar para los próximos años.
Este nuevo sistema de llamará AES (Advanced Encryption Standard), y el algoritmo que
utilice se denominará AEA (Advanced Encryption Algorithm).
Rijndael es un cifrador de bloque que opera con bloques y claves de longitudes variables,
que pueden ser especificadas independientemente a 128, 192 ó 256 bits. El resultado
intermedio del cifrado se denomina Estado, que puede representarse como una matriz de
bytes de cuatro filas.
A partir de ésta base se realiza una serie de bucles de cifrado, cada uno de ellos consistente
en las siguientes operaciones:
Otra buena demostración del proceso de cifrado que efectúa Rijndael lo tenéis en este
enlace, en el que de nuevo Don José de Jesús Angel Angel, de la empresa Seguridata, lo
explica estupéndamente.
Diffie-Hellman.-
Este algoritmo de encriptación de Whitfield Diffie y Martin Hellman supuso una verdadera
revolución en el campo de la criptografía, ya que fué el punto de partida para los sistema
asímétricos, basados en dos claves diferentes, la pública y la privada. Vió la luz en 1976,
surgiendo como ilustración del artículo "New directions in Cryptography".
Su importancia se debe sobre todo al hecho de ser el inicio de los sistemas asimétricos, ya
que en la práctica sólo es válido para el intercambio de claves simétricas, y con esta
funcionalidad es muy usado en los diferentes sistemas seguros implementados en Internet,
como SSL (Secure Socket Layer) y VPN (Virtual Private Network).
Para generar una clave simétrica compartida entre dos usuarios, A y B, ambos parten de un
generador de números pseudoaleatorios, que suministra un número de este tipo diferente a
cada uno, Xa y Xb. Estos son las claves privadas de A y B. Con estos números y las claves
públicas _ y q que ambos conocen, cada uno genera un número intermedio, Ya e Yb,
mediante las fórmulas:
Ya = _Xa mod q
Yb = _Xb mod q
Estos números son intercambiados entre ambos, y luego cada uno opera con el que recibe
del otro, obteniendo en el proceso el mismo número ambos:
K = Yb Xa mod q
K = Ya Xb mod q
Este número K es la clave simétrica que a partir de ese momento ambos comparten, y que
pueden usar para establecer una comunicación cifrada mediante cualquiera de los sistemas
simétricos.
Con este esquema, si se desea compartir una clave privada con otro usuario cualquiera,
basta con acceder a su Yu y enviarle la nuestra. Para facilitar este proceso se suelen publicar
las Yu de todos los usuarios interesados en un directorio de acceso común.
RSA.-
El algoritmo de clave pública RSA fué creado en 1978 por Rivest, Shamir y Adlman, y es el
sistema criptoggráfico asimétrico más conocido y usado. Estos señores se basaron en el
artículo de Diffie-Hellman sobre sistemas de llave pública, crearon su algoritmo y fundaron la
empresa RSA Data Security Inc., que es actualmente una de las más prestigiosas en el
entorno de la protección de datos.
Ahora bien, si el número considerado es un número primo (el que sólo es divisible por 1 y
por él mismo), tendremos que para factorizarlo habría que empezar por 1, 2, 3,...........
hasta llegar a él mismo, ya que por ser primo ninguno de los números anteriores es divisor
suyo. Y si el número primo es lo suficientemente grande, el proceso de factorización es
complicado y lleva mucho tiempo.
Basado en la exponenciación modular de exponente y módulo fijos, el sistema RSA crea sus
claves de la siguiente forma:
En cuanto a las longitudes de claves, el sistema RSA permite longitudes variables, siendo
aconsejable actualmente el uso de claves de no menos de 1024 bits (se han roto claves de
hasta 512 bits, aunque se necesitaron más de 5 meses y casi 300 ordenadores trabajando
juntos para hacerlo).
RSA basa su seguridad es ser una función computacionelmente segura, ya que si bien
realizar la exponenciación modular es fácil, su operación inversa, la extracción de raices de
módulo X no es factible a menos que se conozca la factorización de e, clave privada del
sistema.
RSA es el más conocido y usado de los sistemas de clave pública, y también el más rápido de
ellos. Presenta todas las ventajas de los sistemas asimétricos, incluyendo la firma digital,
aunque resulta más útil a la hora de implementar la confidencialidad el uso de sistemas
simétricos, por ser más rápidos. Se suele usar también en los sistemas mixtos para encriptar
y enviar la clave simétrica que se usará posteriormente en la comunicación cifrada.
PGP.-
El sistema PGP (Pretty Good Privacity - Intimidad Bastante Buena) fué diseñado
especialmente por Philip Zimmermann en 1991 para proporcionar una forma segura de
intercambio de correo electrónico.
Implementa tanto el cifrado del correo y ficheros como la firma digital de documentos. Para
la encriptación del documento usa una algoritmo de llave simétrica, con intercambio de clave
mediante sistema de llave pública, normalmente RSA, y para la firma digital suele utilizar la
función hash MD5. No obstante, es un sistema ámpliamente configurable, que permite al
usuario elegir entre diferentes sistemas asimétricos, funciones hash y longitudes de clave.
Para usarlo hay que comenzar generando un par de claves, una pública y otra privada,
siendo posible en ese momento la elección de la longitud de clave deseada. También hay que
fijar una clave personal, que se usará luego para proteger la llave privada de miradas
indiscretas. Las claves pública y privada las genera automáticamente el algoritmo, mientras
que la personal de protección la elige el usuario.
Una vez generadas las claves, la privada se encripta con la personal mediante un algoritmo
simétrico, siendo posteriormente necesario desencriptarla cada vez que deseemos usarla.
En cuanto a la clave pública, se deposita en un fichero especial, de tipo ASCII (sólo texto),
denominado certificado de clave, que incluye el identificador de usuario del propietario (el
nombre de esa persona y algún dato único, como su dirección de e-mail), un sello de hora
del momento en el que se generó el par de llaves y el material propio de la clave. Si queréis
ver el aspecto de una clave pública en esta ventana tenéis una de las mías.
Cuando se desea mandar un correo o fichero encriptado, PGP lo encripta usando un sistema
simétrico, generalmente IDEA o DES, usando una clave aleatoria, que posteriormente se
encripta con RSA. Se envían el documento cifrado con la clave aleatoria y ésta encriptada
con la llave RSA privada del destinatario.
Cuando éste recibe el correo y deséa desencriptarlo, su programa PGP primero descifra la
clave simétrica con su llave privada RSA, y luego descifra el documento usando la clave
desencriptada. El proceso se ilustra en el siguiente gráfico.
Normalmente el sistema PGP viene implementado mediante alguna aplicación específica, que
se instala en el computador del usuario. Esta aplicación se integra perfectamente con los
programas de correo más comunes, permitiendo al usuario el uso directo del sistema PGP,
con tan sólo pulsar los botones que aparecerán en la barra de menús de la aplicación de
correo.
Podemos obtener ésta dirigiéndonos directamente a dicha persona y pidiéndosela, pero para
facilitar esta tarea, y puesto que el objeto de las llaves públicas es ser difundidas lo más
posible, se han habilitado diferentes servidores que poséen bases de datos con las claves
públicas de los usuarios de PGP. Basta acudir a los mismos y solicitar el fichero de clave
correspondiente a la persona que nos interesa.
El uso de RSA ha hecho que la difusión y uso de PGP se haya visto sujeta a las controversias
provocadas por la necesidad de una licencia de exportación, lo que le ha costado a Phill
Zimmermann ser procesado por ello .
Si deseáis más información sobre PGP podéís acudir a los siguientes sites:
Cualquiera de nosostros sabe por propia experiencia el problema que deriva de tener que
administrar y protejer numerosas claves, necesarias para acceder e los diferentes servicios
que el trabajo en red nos ofrece.
Una persona cualquiera puede tener asignada una clave para su tarjeta de crédito, otra para
su acceso a su estación de trabajo, otra para su acceso al programa de correo, etc., etc. Y
tiene que acordarse de todas, y evitar que personas extrañas las conozcan.
Sin duda alguna los sistemas criptográficos nos ayudan sobremanera a la hora de establecer
comunicaciones privadas con otra persona, pero acarrean el problema de la administración
de claves. Además, usar una misma clave para muchas operaciones es peligroso, ya que
conforme pasa el tiempo es cada vez más probable que alguien acceda a la clave, con el
consuguiente peligro que ésto conlleva.
Tanto es así que, por ejemplo, muchos administradores de una red o sistema obligan a los
usuarios de la misma a cambiar obligatoriamente sus claves de acceso, estableciendo unas
fechas de caducidad para ellas.
Los sistemas asimétricos no representan ningún problema a la hora de cambiar las claves, ya
que la distribución de las claves públicas es abierta, con lo que en seguida podrán acceder a
las nuevas claves los usuarios interesados.
Este es el sistema que suelen seguir las entidades bancarias y muchas tiendas virtuales,
además de ser parte importante de sistemas de comunicación seguros como SSL y SET.
Aspectos de seguridad.-
Hemos visto cómo la criptografía nos proporciona medios para poder comunicarnos de forma
segura con otras personas a través de redes de todo tipo. Vamos a ver ahora hasta dónde
llega esa seguridad y qué podemos hacer para aumentarla.
En general los sistemas simétricos son, a igualdad de longitud de clave, más seguros que los
asimétricos, ya que se suelen basar en procedimientos como la trasposición y la
permutación, que son más dificiles de romper, si están bien construidos, que los sistemas
basados en funciones matemáticas.
Ahora bien, no todos los sistemas criptográficos simétricos tienen algoritmos de igual nivel
de seguridad, por lo que conviene que antes de decidirnos por implementar en nuestro
sistema de comunicaciones alguno de ellos comprobemos antes que es un sistema conocido
y de probada seguridad, rechazando criptosistemas débiles o poco ensayados.
En cuanto a la longitud de las claves, para los sistemas de clave pública como RSA la
longitud de clave recomendada es de 1024 bits. Para los sistemas simétricos las longitudes
recomendadas son:
Elección de claves.-
Las aplicaciones de encriptación pueden estar basadas bien en sistemas que permiten al
usuario elegir sus claves, bien en otros que se encargan de hacerlo ellos.
Los sitemas que permiten al usuario elegir sus claves suelen ser poco confiables, ya que para
que una clave sea fuerte ante el criptoanálisis precisa no sólo ser de un tamaño adecuado, si
no también haber sido elegida con mucho cuidado.
Es normal que las personas elijan claves basadas en su nombre, apellidos, fecha de
nacimiento, matrícula del automovil, etc. Estas, por su propia constitución, son inapropiadas,
ya que lo primero que suele hacer el que busca nuestras claves es someter el sistema a un
ataque basado en fuerza bruta (prueba con generadores de palabras, números o mezcla de
ambos), basado en la prueba de miles y miles de palabras comunes en un idioma (ataques
de diccionario) o en palabras comunes en el entorno de la persona propietaria de las mismas
(basado en asociación de ideas).
En el caso de que tengamos que elegir nosotros las claves debemos procurar mezclar en
ellas letras y números, creando una palabra o frase que no tenga ningún sentido en el
mundo real, y con la máxima extensión permitida por el algoritmo. Y debemos también
procurar escoger una clave diferente para cada algoritmo, para evitar depositar toda nuestra
seguridad en una única clave.
Por otra parte, en los sistemas en los que es la propia aplicación de seguridad la que fija las
claves hay que tener en cuenta que estas se obtienen mediante sistemas de generación de
números aleatorios, por lo que es muy importante que dichos números sean en realidad
aleatorios, para que las claves que genere para dos usuarios distintos no coincidan.
Puede parecer extraño que se produzca esta coincidencia, pero es que en realidad la mayoría
de los programas de generación lo que sacan en realidad son números pseudoaleatorios, ya
que se basan para empezar en unas series especiales llamadas semillas.
Es por tanto responsabilidad fundamental del usuario elegir software de seguridad que
contemple este aspecto a fondo.
Si las claves criptográficas son tan importantes, sería normal que las mantuvieramos
protegidas de miradas indiscretas, pero muchas veces no es así.
Como norma general, deberemos tener todas nuestras claves en un fichero especial, que
debe estar encriptado a su vez con una clave simétrica que conozcamos sólo nosotros. Para
elegir esta clave hay que tener en cuanta las recomendaciones vistas en el punto anterior.
Esta consideración debe ser especialmente aplicada en el caso de las claves privadas de
sistemas asimétricos, ya que de ellas dependerán elementos tan importantes como nuetra
firma digital. Una suplantación de nuestra personalidad mediante la firma de un documento
comprometido puede resultar una verdadera catástrofe para nosotros.
La llave privada sólo debe encontrarse desencriptada cuando está en la RAM de nuestro
ordenador, y sólo mientras está funcionando el programa de seguridad, y la forma más
segura de protegerla es firmar y abrir ficheros encriptados en una computadora aislada física
y virtualmente del mundo exterior.