El cifrado de datos como medida de seguridad

Anuncio
El cifrado de datos como medida de seguridad
Los dos lugares de Internet donde es más probable ver en acción a los mecanismos de cifrado son
los dos métodos más extendidos de comunicación, es decir, el correo electrónico y el trafico web.
Para gestionar la transferencia de datos a través de la web, Netscape lanzó el SSE, o Capa de
Conectores Seguros (Secure Socket Layer) del que hemos tratado brevemente al hablar del
protocolo http. El correo electrónico se suele proteger mediante el sistema PGP (Pretty Good
Privacy), creado por Phil Zimmermann. Independientemente de la técnica de codificación
empleada, existe un método común de «negociación» (handshaking) para intercambiar la
información necesaria para decodificar los datos.
Para que los datos se almacenen de forma no legible, deben ser modificados de alguna forma.
Obviamente, si se utiliza el mismo método de cifrado de los datos en todos los clientes de red, la
idea de cifrado pierde sentido. Si se aplica el mismo algoritmo siempre, cualquiera puede cifrar o
descifrar cualquier dato. Para hacer que los datos sean seguros, los sistemas de cifrado hacen uso de
una clave, que a veces se genera aleatoriamente y otras veces es seleccionada por el usuario. Esta
clave Se utiliza entonces como parte del proceso decifrado y los datos cifrados son, como
consecuencia, únicos para esa clave en particular. Si se cifran exactamente los mismos datos pero
con otra clave, el archivo de datos resultante será completamente distinto. Para poder recuperar los
datos en su forma original, el receptor debe conocer la clave. Este sistema de claves es la base de la
mayoría de las técnicas de cifrado utilizadas en la actualidad.
Si medita en lo que acabamos de decir, podrá ver que existe un pequeño problema: en concreto, que
el receptor necesita conocer la clave que fue utilizada para cifrar los datos. Si se están distribuyendo
los datos a través de la red, podría pensarse en distribuir la clave junto con los datos. ¡Ve cuál es el
problema? La clave, que es‘ el elemento necesario para recuperar la información original, no está
cifrada. Si se la envía junto con los datos cifrados, cualquiera podría potencialmente leer el archivo
y emplear la clave para descifrarlo. No parece un mecanismo muy, seguro. Debido a esto,
necesitamos analizar el concepto de claves públicas y claves privadas.
La idea funciona, básicamente, de esta forma: la clave pública y la clave privada están relacionadas
entre sí, pero no pueden ser usadas para deducir la clave pública a partir de la privada, o viceversa.
Esta pareja de claves es generada automáticamente por el software, y ambas juegan un importante
papel en el proceso de cifrado. La clave privada es exactamente lo que su nombre sugiere: privada.
Esta clave se conserva en nuestra computadora, no compartiéndola con nadie más; si llegase a ser
conocida, nuestros datos ya no estarían a salvo. La clave pública, por el contrario, es la que se
distribuye al resto del mundo. La mayoría de las personas que utilizan PGP incluyen su clave
pública en la firma de sus mensajes. Esta clave puede publicarse en cualquier sitio: en una página
web, en los mensajes de correo, etc.; dicha clave no contiene ninguna información que pueda ser
empleada para descifrar los datos. Ahora, con las dos claves, el proceso de cifrado de datos
funciona de la siguiente forma:
•
•
Si alguien quiere enviarnos un documento privado, dicha persona conoce nuestra clave pública.
Entonces, ejecuta su programa de cifrado y le proporciona el archivo que quiere cifrar y nuestra
clave pública. El archivo resultante será seguro. De hecho, la persona que ha cifrado el archivo
no es capaz de descifrarlo. Esa persona nos enviará el archivo por correo electrónico.
Para poder ver el archivo, una vez recibido, utilizamos nuestra clave privada para descifrar los
datos. El proceso de cifrado funciona codificando los datos con nuestra clave pública de un
modo tal que sólo son descifrables mediante nuestra clave privada.
•
Si queremos responder al mensaje, tendremos que repetir el mismo proceso, pero esta vez
utilizando la clave pública de nuestro interlocutor como clave de cifrado.
Al separar las dos claves, de forma que la clave original utilizada para cifrar no pueda emplearse
para descifrar los datos, podemos transmitir datos cifrados y claves a través de la red, sin tener que
preocuparnos de que las claves sean interceptadas Cada persona que necesite transmitir datos utiliza
su clave privada y, para cifrar los datos salientes, las claves públicas de las personas con las que
tenga que comunicarse.
Existen muchos métodos distintos de realizar el cifrado de los datos transferidos, pero el sistema de
clave pública/privada y sus variaciones es el mecanismo que proporciona soporte a dichos métodos.
En SSL, las claves se generan y se intercambian durante una fase de negociación y autenticación.
No existe interacción, desde el punto de vista del usuario, en términos de generación de claves
públicas y ‘privadas. Todo esto tiene lugar de manera transparente y no es algo de lo que se deba
preocupar la persona situada delante de la computadora. En el caso de PGP, las claves son
necesarias para más de una conexión y son, por tanto, visibles y accesibles para el usuario.
Eso es todo con respecto a las claves?
Efectivamente, eso no es todo. De hecho, existe una gran variedad de métodos distintos para
transferir y utilizar claves. La descripción sobre claves públicas/privadas debe considerarse como
una exposición de muy alto nivel de los mecanismos mediante los que funcionan las
comunicaciones seguras. SSL por ejemplo dispone de diferentes niveles de negociación en los que
la computadora host realiza una serie de intercambios de claves para verificar que el cliente es quien
dice ser, y lo mismo vale para éste. El número de claves utilizadas no tiene por qué limitarse a dos.
En PGP, hay dos claves, pero la clave privada se emplea en la practica para cifrar una tercera clave
de sesión, que es la que en realidad se usa para codificar el cuerpo principal de la información.
El generar las claves es una cosa, pero el cifrar los datos es algo completamente distinto. El propio
proceso de cifrado puede llevarse a cabo (y normalmente así sucede) de muchas formas distintas. El
objetivo de cualquier esquema de cifrado es encontrar un método para enviar los datos tal que
resulte muy difícil, y requiera una cantidad excesiva de potencia de proceso, que alguien intente
obtener la clave para decodificar el mensaje. En la actualidad se emplean muchas técnicas de
cifrado distintas, como DES, que fue originalmente desarrollado por el gobierno americano, y RSA,
que se emplea en los exploradores web, en PEP y en otros sistemas criptológicos. En lugar de
intentar explicar con mis propias palabras cómo funcionan estos estándares de cifrado, he aquí un
resumen de la lista de preguntas más frecuentes sobre RSA, albergada en: http:// www.rsa.com/
Lo que sigue a continuación tiene un alto nivel matemático y se proporciona, simplemente para que
el lector se haga una idea de la cantidad de trabajo que ha llevado desarrollar las técnicas existentes
de cifrado, Estas técnicas son bastante más complejas que el viejo mecanismo de sustituir una letra
por otra. Obtenido de la lista de preguntas más frecuentes sobre RSA
¿Qué es RSA?
RSA es un sistema criptográfico de clave pública que permite realizar tanto operaciones de cifrado
como de firma digital (autenticación). RSA fue desarrollado en 1977 por Ron Rivest, Adi Shamir y
Leonard Adleman [RSA78] el nombre de RSA proviene de la primera letra del apellido de cada uno
de sus inventores.
RSA funciona de la forma siguiente: tómense dos números primos muy grandes, p y q, y calcúlese
su producto n=pq; n se denomina el módulo Elíjase un número, e, menor que n y que sea
relativamente primo a (p-1) (q-l), lo que quiere decir que e y (p-1) (q-l) no tienen factores comunes,
salvo el 1. Encuéntrese otro número d tal que (ed-1) sea divisible por (p-1) (q-l). Los valores e y d
se denominan exponentes público y privado, respectivamente. La clave pública es la pareja (n, e); la
clave privada es la pareja (n, d). Los factores p y q pueden conservarse con la clave privada o
descartarse.
Es muy difícil obtener la clave privada d a partir de la clave pública (n, e). Sin embargo, si se
pudieran calcular los factores p y q de n, podría obtenerse perfectamente la clave privada d Por
tanto, la seguridad de RSA se basa en el presupuesto de que el realizar la factorización de n es
difícil, Si se descubriera un método sencillo de factorización, RSA sería «roto».
He aquí como utilizar RSA para realizar operaciones de cifrado y de firma digital (en la práctica, la
utilización es ligeramente distinta).
Cifrado RSA
Supongamos que Alice quiere enviar un mensaje m a Bob, Alice crea el texto cifrado c realizando la
operación de exponenciación : c=me mod n, donde e y n son la clave pública de Bob. Alice envía c
a Bob. Para descifrar, Bob también realiza una operación de exponenciación: m=cd mod n; la
relación entre e y d garantiza que Bob recuperará m correctamente. Puesto que sólo Bob conoce d,
sólo él puede descifrar este mensaje.
Firma digital RSA
Supongamos que Alice quiere enviar un mensaje m a Bob de modo que éste tenga la seguridad de
que el mensaje es autentico, no ha sido manipulado y proviene, efectivamente de Alice. Alice crea
una firma digital s realizando la operación de exponenciación s=md mod n, donde d y n son la clave
privada de Alice. Alice envía m y s a Bob. Para verificar la firma, Bob realiza una operación de
exponenciación y comprueba que el resultado es el mensaje m: m=se mod n, donde e y n son la
clave pública de Alice De esta forma, el cifrado y la autenticación tienen lugar sin compartir las
claves privadas: cada persona utiliza sólo su propia clave privada o la clave pública de otra persona.
Cualquiera puede enviar un mensaje cifrado o verificar un mensaje firmado, pero sólo alguien que
esté en posesión de la clave privada correcta puede descifrar o firmar un mensaje.
Que es una autoridad de Certificación?
Una autoridad de certificación (CA, Certifying Authority) es una entidad que emite a los usuarios
firmas digitales y es responsable de verificar que dichas firmas siguen siendo válidas. El obtener un
identificador de una autoridad de certificación tranquiliza a las personas que se comunican con
nosotros, porque dicha identidad certifica que realmente somos quienes decimos ser. Uno de los
mayores proveedores de identificaciones digitales es Verisign. Puede visitar su página web si desea
obtener más información; la dirección es http: / /www verisign. com.
Afortunadamente para todos nosotros, el software que utiliza las técnicas de cifrado, como RSA, es
mucho más sencillo de utilizar que de entender la propia técnica de cifrado. Veamos ahora algunos
paquetes software PGP que podemos emplear para cifrar nuestros datos. Estos paquetes están
disponibles para Windows, Mac OS y UNIX, y son completamente gratuitos, de modo que, en sólo
unos minutos, podrá generar su propia pareja de claves pública y privada y unirse a los miles de
personas que ya se comunican de manera segura. El mayor problema actual es que hay múltiples
paquetes PGP disponibles. Puede descargarse un buen paquete para Mac OS y Windows 95/NT
desde: http://www.nai.com/products/security/pgpfreeware.asp
Pueden encontrarse versiones MS-DOS y UNIX en: http://web.mit.edu/network/pgp.html
Descargue los archivos apropiados para su sistema operativo, descomprima la utilidad y vea lo
simple que es, en la practica, cifrar la información en nuestra computadora. Las versiones Mac OS y
Windows del software PGPFreeware son prácticamente idénticas, dejando aparte las diferencias en
cuanto a interfaz de usuario dictadas por ambos sistemas operativos. Dada la similitud, no tiene
sentido mostrar la misma configuración para ambos sistemas. En lugar de ello, resaltaremos las
diferencias que puedan aparecer.
Utilización de PGPFreeware en Mac OS y Windows
La aplicación PGPFreeware instala dos utilidades diferentes en el sistema: la aplicación PGPKey y
el programa PGPTools. Este último se emplea para cifrar y firmar archivos, mientras que PGPKey
mantiene una lista de claves de las personas con las que se desea contactar. Lo primero que aparece
al ejecutar el programa PGPKey es el asistente de generación de claves, mostrado en la Figura 4.
Con él podrá empezar a funcionar muy rápidamente con su propia clave PGP En primer lugar, es
necesario introducir el nombre completo, y dirección de correo electrónico, que serán almacenados
con la clave PGP La dirección de correo electrónico permite al software PGP integrarse con e l
programa de correo electrónico utilizado. A continuación, seleccione el tamaño de las claves que
desea utilizar, como muestra la Figura 5. Cuanto más grande sea la clave, más seguros estarán los
datos, aunque más tiempo se tardará en realizar el proceso de cifrado. El valor predeterminado del
tamaño de clave es de 2.048 bits, lo que, de acuerdo con mi experiencia, es bastante rápido en
cualquier computadora Pentium o PowerPC. El utilizar tamaños grandes de clave en un 486
requiere un poco de paciencia. Si quiere establecer una fecha de caducidad para su clave, puede
hacerlo en el siguiente cuadro de diálogo, mostrado en la Figura 6, Después de que la clave
caduque, no podrá cifrar ningún otro archivo. Si quiere, puede cambiar de una clave a otra
ocasionalmente por razones de seguridad, pero hay pocos motivos para hacer esto.
Como nivel adicional de seguridad, el software solo le permitirá firmar documentos si ha
seleccionado una contraseña para dicha operación. Este paso, mostrado en la Figura 7, evita que
otras personas usurpen su identidad y firmen documentos seguros utilizando su clave.
FIGURA 4.
El asistente de generación de claves de PGP simplifica el proceso de cifrado
FIGURA 5
El siguiente paso consiste en seleccionar el tamaño de clave que quiera utilizarse.
FIGURA 6.
Puede seleccionar una fecha de caducidad en este cuadro de diálogo.
FIGURA 7
Para firmar documentos, es necesario suministrar una frase de contraseña
Por último, el software necesita generar un número aleatorio, que utilizara para generar la clave.
Para ello, le pedirá que mueva el ratón por la pantalla, escriba caracteres aleatorios en el teclado, o
ambas cosas, como muestra la Figura 8. El programa utilizará estas acciones para generar un
número aleatorio y, a partir de él, la clave.
FIGURA 8
Al realizar movimientos aleatorios con el ratón o pulsaciones aleatorias de PGP a que genere un
número aleatorio. teclas, se ayuda al programa PGP a que genere un número aleatorio
Finalmente, el programa PGP generará la clave. Dependiendo de la velocidad de la computadora,
esta operación puede requerir algunos minutos. Una vez completada, se tiene la opción de enviar la
clave a un servidor de claves. Esta es una característica muy conveniente de este paquete software
en particular, porque el servidor de claves mantiene una base de datos de todas las claves
registradas. Si quiere enviar un archivo a alguien, pero no conoce su clave, puede buscarla en el
servidor.
Si prefiere no hacer pública su clave pública, desmarque la opción Send my key to root server now,
mostrada en la Figura 9.
FIGURA 9
Si no quiere hacer pública su clave pública, asegúrese de desmarcar esta casilla de verificación
Ahora dispone de su propia clave PGP que debe aparecer en la ventana PGPKeys, como muestra la
Figura 10. Esta ventana presenta toda la información acerca de las claves almacenadas en el
sistema: el tamaño de la clave, el nivel de «confianza» concedido a una clave determinada, la fecha
de caducidad, etc. Explore esta ventana a voluntad; puede expandir las claves individuales para
mostrar más información acerca de la clave y de su propietario.
FIGURA10
Ahora dispone de su propia clave PGP
Utilizando la barra de herramientas situada en la parte superior de la ventana Utilizando la barra de
herramientas situada en la parte superior de la ventana PGPKeys, puede borrar claves, volver a
ejecutar el asistente de generación de claves PGPKeys, puede borrar claves, volver a ejecutar el
asistente de generación de claves, exportar e importar archivos de clave y, lo más importante,
buscar las claves ves, exportar e importar archivos de clave y, lo más importante, buscar las claves
correspondientes a otros usuarios. Pulse el icono de lupa para acceder al cuadro de diálogo de
búsqueda, mostrado en la Figura 11.
Puede buscar a un usuario concreto en un servidor de claves introduciendo su identificación de
usuario (probablemente, un nombre de usuario obtenido a partir de una dirección de correo
electrónico) y pulsando el botón Search. Por ejemplo, si usted quisiera buscar al autor de estas
líneas, bastaría con que escribiera jray en el campo de búsqueda y ordenara iniciar ésta. El sistema
le devolvería varios jray, uno de los cuales debería ser [email protected]. Si quiere añadirme a
su lista de claves almacenadas, basta con que arrastre mi nombre desde la ventana de resultados de
la búsqueda a la ventana de claves. Con esto podrá cifrar documentos y enviarlos.
FIGURA 11
PGPKeys permite buscar una clave determinada.
¿Cuál es la manera de cifrar una información?. Existen dos formas distintas. La mas sencilla es
utilizar el programa PGPTools incluido en el paquete de software PGP PGPTools, mostrado en la
Figura 12, proporciona distintas utilidades; en concreto, permite cifrar y descifrar datos.
FIGURA 12
El programa PGPTools es el que permite realizar el cifrado de los datos basándose en la clave.
También podrá ver que hay opciones para firmar los datos. El realizar esta operación añade nuestra
firma al archivo cifrado. También se incluyen dos utilidades de borrado, que pueden emplearse para
eliminar archivos de forma permanente del disco fijo. PGPTools puede también activarse
arrastrando los archivos que se quiera cifrar o descifrar hasta los iconos de la barra de herramientas
de PGPTools. También puede utilizarse este programa seleccionando los archivos con los que se
quiera trabajar y luego pulsando con el botón derecho del ratón (O, en el Macintosh, presionando la
tecla Control y pulsando) para que aparezca un menú contextual PGP, que ofrece las mismas
opciones que la barra de herramientas. Esta, sin embargo, es la forma lenta de hacer las cosas. Si el
lector es como yo, querrá disponer de la posibilidad de escribir un mensaje y codificarlo con PGP
de manera instantánea, sin tener que preocuparse de andar pulsando aquí y allá y realizando una
serie de acciones. No se preocupe; también puede hacerse eso con PGPFreeware. Cuando el
software PGP se instala, se integra con el programa de correo electrónico que esté utilizándose en la
máquina. Esto permite utilizar PGP fácil y rápidamente, sin necesidad de andar cambiando a otros
programas.
Utilización de Outlook Express y PGP en el Macintosh
Supongamos, por ejemplo, que esta utilizando Outlook Express como cliente de correo electrónico
en un Macintosh. La instalación de PGP proporciona rutinas de cifrado a este cliente. La Figura 13
muestra la ventana de programa de Outlook Express.
Observe el icono de menú que representa un «candado», situado en el centro de la barra de menú
principal.
Para cifrar un mensaje que vaya a enviarse, basta con escribir el mensaje y, al terminar, asegurarse
de que el cursor se encuentre al final del mensaje de texto. A continuación, es necesario elegir la
opción Encrypt (cifrar) o Encrypt and Sign (cifrar y firmar) en el menú indicado por el candado.
Para poder cifrar el mensaje, será necesario indicar quiénes son los receptores que van a tener que
decodificarlo. Aparecerá el cuadro de diálogo PGP Recipients, en el que pueden arrastrarse los
nombres apropiados desde el panel superior al inferior, como ilustra la Figura 14.
FIGURA 13
Después de instalar PGP puede cifrarse el correo electrónico en el programa cliente que se esté
utilizando.
FIGURA 14
Seleccione los destinatarios que podrán decodificar el mensaje, utilizando este cuadro de diálogo.
Una vez termine, pulse OK y el mensaje será codificado En unos cuantos segundos, el mensaje
saliente será reescrito como mensaje codificado PGP y enviado de la forma normal. La Figura 15
muestra un ejemplo de un mensaje codificado. Como puede ver, el mensaje de correo electrónico ha
sido convertido en una cadena de caracteres sin sentido. El proceso de decodificación de un mensaje
PGP entrante funciona de forma similar. Basta con seleccionar el mensaje codificado y luego la
opción Decrypt/Verify (descifrar/verificar) en el menú de PGP El programa pedirá la contraseña
que permite desbloquear la clave privada, con la que el software puede decodificar el mensaje.
Figura 15
Después de la codificacion el mensaje ya no es legible para los ojos humanos.
Utilización de PGP con Outlook Express en Windows La utilización de PGP con Outlook
Express en la plataforma Windows cambia un poco con respecto a la de Macintosh, para mejor. El
software PGP instala un menú PGP en Outlook. En dicho menú, puede seleccionarse la opción
Preferences (preferencias) y pulsarse la ficha Email donde, como muestra la Figura 16, puede
instruirse al software PGP para que codifique y decodifique automáticamente los mensajes enviados
y recibidos se requiere intervención del usuario!
Figura 16
En Windows, PGP añade un cuadro de diálogo a Outlook express que permite el cifrado y
descifrado automáticos.
Este nivel de integración con el software que necesita ser seguro es muy cómodo. Hace de PGP una
utilidad que puede emplearse de manera regular, en lugar de algo que haya que extraer de algún
directorio oculto y desempolvar, cada vez que se necesita enviar algo de modo seguro. Recuerde
que también puede usar PGP para cifrar documentos locales en su computadora. El programa no
esta limitado a su uso con el correo electrónico, aunque es ciertamente un excelente compañero de
las transmisiones electrónicas.
Utilización de la versión UNIX de PGP en Linux
Desafortunadamente, debido a la gran variedad de máquinas UNIX disponibles y a las diferentes
interfaces, no cabe esperar una interfaz atractiva como las disponibles en las computadoras Mac OS
y Windows. En lugar de ello, es necesario controlar Linux PGP mediante líneas de órdenes, aunque
el programa sigue ejecutando la tarea requerida. Una vez descargado y descomprimido el archivo
PGP desde el MIT, ejecute el script de instalación, pgpinst, que instalará los archivos ejecutable
PGP en su sistema.
Descargar