La encriptación o cifrado de archivos, textos, etc. es una
herramienta que todos los usuarios de Linux deberíamos conocer y que,
lamentablemente, pocos conocen y utilizan a diario. Esto es
especialmente llamativo si tenemos en cuenta la reputación que tiene
Linux como "sistema operativo seguro"; esta es una herramienta más
que Linux pone al alcance de tu mano para mejorar tu seguridad. ¿Por qué
no la usás? ¿Por ignorancia? Bueno, este post viene a llenar ese
"hueco". El método más sencillo para encriptar información es utilizando GNU Privacy Guard (GPG). Este mini how-to describe su instalación y manejo en Ubuntu de pies a cabeza. Me llevó casi 2 días escribirlo, así que espero que les sea de utilidad. |
Cómo funciona GPG
GPG utiliza un sistema híbrido que combina encriptación simétrica y asimétrica.La encriptación asimétrica trabaja siempre con un par de claves. Una de ellas será tu clave "pública" y la otra tu clave "privada". Como bien lo indica su nombre, la clave pública se la podés dar a aquellas personas a las que les querés mandar mensajes encriptados y no hay ningún peligro si una persona ajena la ve, es más, suelen publicarse en servidores públicos para facilitar su acceso; la clave privada, en cambio, debe ser secreta y no tenés que compartirla con nadie. Lo más bello de todo esto es que, como veremos a continuación, ambas claves son creadas directamente por GPG en base a tus datos personales. El último paso es "sellar" esas dos claves a través de una "passphrase". Así que, al final, la única contraseña que vas a tener que acordarte es tu "passphrase".
Pasando en limpio, gracias a la encriptación asimétrica, si el remitente usa la clave pública del destinatario para cifrar el mensaje, una vez cifrado, sólo la clave privada del destinatario podrá descifrar este mensaje, ya que es el único que la conoce. Por tanto, se logra la confidencialidad del envío del mensaje: nadie salvo el destinatario puede descifrarlo. Si el propietario del par de claves usa su clave privada para cifrar el mensaje, cualquiera puede descifrarlo utilizando su clave pública. En este caso se consigue por tanto la identificación y autentificación del remitente, ya que se sabe que sólo pudo haber sido él quien empleó su clave privada (salvo que alguien se la hubiese podido robar).
Un último comentario que me parece interesante mencionar es que los sistemas de cifrado asimétricos se inventaron con el fin de evitar por completo el problema del intercambio de claves de los sistemas de cifrado simétricos. Con las claves públicas no es necesario que el remitente y el destinatario se pongan de acuerdo en la clave a emplear. Todo lo que se requiere es que, antes de iniciar la comunicación secreta, el remitente consiga una copia de la clave pública del destinatario. Es más, esa misma clave pública puede ser usada por cualquiera que desee comunicarse con su propietario.
¿Qué tan seguro es GPG?
El algoritmo utilizado por GPG es DSA/ElGamal, ya que es "libre" y no recaen sobre él patentes "privativas".Respecto de la longitud de la clave, depende de los requerimientos del usuario. Es necesario balancear entre la seguridad y la optimización de los procesos. Cuanto mayor sea una clave, menor será el riesgo de que el mensaje sea descodificado si es interceptado, pero también aumentará el tiempo que empleará para el cálculo de los procesos. El tamaño mínimo que requiere GnuPG es de 768 bits, aunque mucha gente opina que debería ser de 2048 (que es el máximo con GnuPG en este momento). Cuando la seguridad es una prioridad más alta que el tiempo, la opción es elegir el tamaño de clave más grande que se permita.
Instalando GPG en Ubuntu
Ubuntu ya viene "de fábrica" con GPG y una interfaz gráfica para GPG llamada Seahorse. Para acceder a Seahorse sólo tenemos que ir a Aplicaciones > Accesorios > Contraseñas y claves de cifrado.Antes de eso, les recomiendo abrir un terminal y escribir:
sudo aptitude install seahorse-plugins sudo killall nautilus
Esto lo que hace es permitirnos integrar GPG a Nautilus. De ahora en más, si hacemos clic derecho en un archivo, veremos que aparecen dos opciones más: "Encriptar" y "Firmar". Más abajo veremos cómo utilizar estas nuevas herramientas.
Crear las claves
Antes de comenzar a encriptar mensajes y archivos, como vimos, es necesario crear primero nuestras claves asimétricas y nuestro "passphrase". Para ello vamos a Aplicaciones > Accesorios > Contraseñas y claves de cifrado. Una vez allí vamos a Archivo > Nuevo > Clave PGP.El sistema nos pedirá a continuación que introduzcamos nuestro nombre, dirección de correo electrónico y un comentario. Éste último es opcional, mientras que los dos primeros son obligatorios. La dirección de correo electrónico que se escoja debería ser una válida, ya que ésta será usada para firmar el identificador de usuario. Si esta dirección se modifica en algún modo, la firma no corresponderá. Las claves serán generadas en base a estos datos.
En el apartado Opciones avanzadas de clave, podés seleccionar un tipo diferente de cifrado. La recomendada es “DSA Elgamal de 768 bits” pero te recomiendo que la cambies a "DSA Elgamal de 2048 bits" ya que es considerada lo suficientemente segura y flexible. La fecha de caducidad es la fecha en la que la clave dejará de ser útil para realizar cifrado u operaciones de firma. 6 meses es un tiempo razonable para ello. Vas a tener que cambiar la fecha de caducidad o generar una nueva clave o subclave después de que pase este lapso de tiempo.
El último paso consiste en introducir una contraseña. Nótese la diferencia entre los términos anglosajones para la palabra «contraseña»: el término "password" indica una "palabra de paso", mientras que el término "passphrase" indica una "frase de paso". Por tanto esta contraseña se debe componer de más de una palabra. Para que una contraseña sea efectiva (segura), deberá:
ser larga;
combinar mayúsculas, minúsculas y números;
contener carácteres especiales (no alfanuméricos);
ser difícil de adivinar. Por lo tanto, que no sean nombres, fechas significativas, números de teléfono, números de documentos, ...
En general, para crear una contraseña fuerte es aconsejable intercalar maYúsCUlas con mInúsCulas, números, otros carácteres no alfanuméricos, etc. Al escoger las palabras y frases debemos evitar aquellas palabras demasiado obvias, o fechas significativas, y nunca usar citas de libros o frases famosas. Dicho esto, debemos asegurarnos de que la contraseña que elijamos sea lo suficientemente difícil para que no pueda ser traspasada por un «ataque de fuerza bruta», ni siquiera por un «ataque de diccionario», pero lo suficientemente fácil como para que la recordemos. Si olvidáramos una contraseña nuestra clave quedaría totalmente inutilizada, y los criptogramas con ella cifrados, indescifrables. Ante esta posibilidad se recomienda crear siempre certificados de revocación junto con las claves.
Una vez introducidos todos los datos requeridos, empieza el proceso de generación de las claves, que tarda un tiempo considerable dependiendo del tamaño de éstas y la velocidad de tu compu. Durante este proceso el programa recoge datos aleatorios que usará para generar las claves. Una vez terminado, cerrá Seahorse.
Servidores de claves públicas
Publicar mis claves públicasLos servidores de claves públicas son utilizados para distribuir, precisamente, las claves públicas. De ese modo, es muy fácil buscar a alguien (por su nombre o correo electrónico) en la base de datos y encontrar sus claves públicas para enviarle mensajes encriptados (que sólo él/ella podrá descifrar).
Para "subir" tus claves públicas a estos servidores, sólo tenés que abrir Seahorse, seleccionar tu clave e ir a Remota > Sincronizar y publicar claves. Aparecerá una alerta avisándonos que esto provocará la publicación de las claves públicas seleccionadas.
Obtener las claves públicas de mis amigos
Abrí Seahorse y andá al menú Remota > Buscar claves remotas. Ingresá el nombre o el correo electrónico de la persona que buscás. Luego, seleccioná la clave correspondiente. Cuando termines vas a ver que la nueva clave se agregó a la pestaña "Otras claves".
(Des)Cifrando archivos y carpetas
Una vez que el par de claves ha sido generado, cifrar y descifrar archivos es bastante simple. Solo tenés que seleccionar un archivo, hacer clic derecho y seleccionar "Cifrar".En el diálogo que aparece, seleccioná la clave que creaste anteriormente, y clic en OK.
Si seleccionaste una carpeta para cifrar, te va a preguntar si querés cifrar cada archivo dentro de la carpeta por separado o si preferís que se cree un archivo ZIP que luego será cifrado. La segunda opción es la mejor en la mayoría de los casos.
Si estás cifrando un archivo, una vez que el cifrado esté completo, deberías crearse un archivo del mismo nombre pero con la extensión .pgp. Una vez terminado el proceso, podés borrar el archivo viejo. Si cifraste una carpeta, deberías encontrar dos nuevos archivos: la versión cifrada con la extensión .pgp y un archivo .zip con la versión original de la carpeta. Tanto el ZIP como la carpeta original, pueden ser borrados después del cifrado.
Por razones de seguridad, las versiones no cifradas de los archivos deben ser eliminados permanentemente, en vez de simplemente enviarlos a la papelera de reciclaje. Pero antes asegurate de probar descifrando el archivo cifrado, para ver que todo va bien.
Para ello, sólo tenés que hacer doble clic en el archivo .pgp e ingresar la contraseña cuando te la pida. El archivo original reaparecerá entonces. En caso de ser una carpeta, el archivo .zip aparecerá, y deberás luego extraer el contenido del mismo.
Descifrando archivos en mi otra compu
Este no es un sistema diseñado para crear archivos cifrados portables (como TrueCrypt). Para descifrar tus propios archivos en otra compu, tenés que exportar tu clave y luego importarla en la segunda compu. Esto representa un riesgo de seguridad. Sin embargo, algunas veces puede ser necesario realizar esta tarea (por ejemplo, si tenés una PC y una notebook y querés tener un único par de claves GPG y no una para cada compu como si se tratase de "identidades" diferentes). Así que, aquí van los pasos a seguir en ese caso:En la compu en la que creaste las claves, iniciá Seahorse (Aplicaciones > Accesorios > Contraseñas y claves de cifrado), y hacé clic derecho en tu clave personal y seleccioná "Propiedades".
En el cuadro de diálogo que aparece, clic en la pestaña "Detalles", y luego en el botón "Exportar" al lado de "Exportar la clave completa". Guardá el archivo en el escritorio. Encontrarás que un nuevo archivo ha sido creado con la extensión .asc. Son tus claves en texto plano.
Copiá el archivo .asc a una memoria USB, y de ahí a la segunda compu. Ahora en esa compu iniciá Seahorse y hacé clic en el botón "Importar". Navegá hasta donde guardaste el archivo .asc, y hacé clic en "Abrir". Esto importará la clave. Cerrá Seahorse y hacé doble clic sobre cualquier archivo cifrado con tu clave para descifrarlo. Te va a preguntar el "passphrase", así que escribilo. Después de esto, el archivo original se guardará en la misma carpeta donde está el archivo .pgp.
Por último, tené en cuenta que la hora y fecha de los computadores donde crees/importes/exportes las claves debe ser correcta. Por varias razones técnicas, Seahorse y el comando gpg no pueden importar una clave si la hora y fecha en el PC es menor que la fecha en la que aparece creada. Por supuesto, esto significa que si la compu donde creaste la clave tiene una fecha errónea, podría darte bastante problemas la creación y uso de la clave.
Cifrar texto
Existe un complemento de Gedit para cifrar el texto seleccionado. Para habilitarlo, andá a Editar > Preferencias > Complementos. Elegí "Cifrado de texto". Una vez habilitado el plug-in, se habilitarán las opciones en Editar > Cifrar/Descifrar/Firmar.GPG y Firefox
Existe un plug-in para Firefox (FireGPG) que brinda una interfaz gráfica integrada para aplicar operaciones de GPG (incluyendo (des)cifrado, firma y verificación de firma) sobre cualquier texto en una página web.FireGPG también permite trabajar con webmails (Gmail, etc.), aunque en el momento en que yo lo probé la integración con Gmail estaba "rota". Para ver una lista completa de webmails con los que trabaja FireGPG: http://getfiregpg.org/s/webmails
Bajar FireGPG: http://getfiregpg.org/stable/firegpg.xpi
Acelerando un poco el proceso de cifrado...
Para (des)cifrar información utilizando siempre una misma "identidad", te recomiendo que vayas a Sistema > Preferencias > Cifrado y depósitos de claves. Luego accedé a la pestaña "Cifrado", y donde dice "Clave predeterminada" seleccioná la clave que siempre vas a utilizar para (des)cifrar información. Si sos curioso, te recomiendo que también le pegues una mirada a la pestaña "Frase de paso PGP" para tunear al máximo tu GPG.Firmar y Verificar
Muchas veces, uno no quiere mandar un mail cifrado, pero sí quiere que el destinatario tenga la certeza de que fui yo quien lo mandó. Para eso, se utilizan las firmas digitales. Todo lo que hace falta hacer es verificar el mail utilizando GPG y la clave pública del emisor.Para encriptar un mail, como vimos, se utiliza un par de claves. Una de ellas es secreta y la otra pública. En el caso de la firma digital, todas las personas que reciban un mail firmado por mi podrán comprobar que ese mail fue escrito por mi y que el mail no fue alterado maliciosamente en el camino, utilizando mi clave pública, ya que yo lo firmé utilizando mi clave privada.
Por ese motivo, uno de los grandes problemas de la encriptación es, precisamente, que el emisor tiene que estar bien seguro que la clave o, en el caso de la firma digital, que ésta perteneza realmente a la persona que dice ser la dueña de la firma. Después de todo, yo puedo afirmar que soy "Monica Lewinsky" y poner su nombre en mi firma digital. Para resolver este problema, existe la firma de las claves públicas. Así, cuando alguien firma mi clave pública, está confirmando que esa clave me pertenece. En otras palabras, están dando fe de que esa clave es mía. La firma mutua de claves conforma, al decir de Robert De Niro, una: "web of trust" o "red de confianza". Para más información sobre el tema les recomiendo visitar http://www.rubin.ch/pgp/weboftrust.
Para firmar una clave en tu depósito de claves:
1) Seleccioná la clave que querés firmar de las pestañas Claves confiadas u Otras claves reunidas,
2) Elijí Firmar en la barra de herramientas o Archivo > Firmar,
3) Seleccioná con qué minuciosidad comprobaste la clave,
4) Indicá si la firma debería ser local a tu depósito de claves y si tu firma puede revocarse,
5) Hacé clic en Firmar.
GPG y Thunderbird
Existe un plug-in para Thunderbird y Seamonkey llamado Enigmail que te permite escribir y recibir mensajes firmados y/o encriptados utilizando GPG.La primera vez que corras este plug-in aparecerán una serie de formularios que deberás completar. También incluye guías que explican cómo utilizar GPG.
Para más información sobre GPG les recomiendo leer:
- GNUPG Mini Como: http://www.dewinter.com/gnupg_howto/spanish/index.html
- La ayuda que viene en Ubuntu del manual de contraseñas y claves de cifrado. Abrir Seahorse > Ayuda > Índice.
- http://aplawrence.com/Basics/gpg.html
- http://commons.oreilly.com/wiki/index.php/Ubuntu_Hacks/Security#Encrypt_Your_Email_and_Important_Files
- http://casidiablo.net/encriptar-datos-con-gpg-ubuntu/
- http://ubuntuforums.org/showthread.php?t=680292
Fuente: usemoslinux
No hay comentarios:
Publicar un comentario