gentoo linux, java, software libre y otras hierbas
Dic, 02 2008 - 2:22 am

Cifrado de archivos usando GPG en Ubuntu

Me llama bastante la atención ver algunos usuarios de Ubuntu Linux, que teniendo la necesidad y las herramientas para cifrar sus datos confidenciales, no lo hacen por falta de conocimiento (¿?) o curiosidad. En este artículo voy explicar el proceso de cifrado de datos, usando las herramientas que vienen incluidas en Ubuntu. Partamos del hecho de saber que, cualquier archivo o carpeta en Ubuntu puede ser cifrado de tal manera que solo pueda ser descifrado usando una contraseña.

Algunas configuraciones son necesarias antes que los archivos y directorios puedan ser cifrados, y debes generar una clave GPG personal. Los archivos cifrados con el método que se describe a continuación no son particularmente “portables”, ya que no es un sistema diseñado para dejarte copiar los archivos a otra máquina y descifrarlos allí (como si lo es cuando ciframos archivos con TrueCrypt). Para hacer posible ello, tendrías que exportar tu clave, lo cual representa un riesgo de seguridad. Aún así, cómo hacer esto se explica más adelante.

Ten en mente que si sigues las instrucciones de este tip y olvidas la contraseña, perderás los archivos que has cifrado para siempre. No hay manera de crackear el sistema fácilmente—el método de cifrado usado es extremamente seguro.

Primero veamos cómo crear un par de claves y luego cómo cifrar y descrifrar archivos y carpetas.

Crear las claves

Sigue los siguientes pasos para crear las claves, lo cual es necesario antes de poder cifrar cualquier archivo (puedes saltar estos pasos si ya tienes creadas las claves para usar con cifrado de email):

  1. Haz clic en Aplicaciones —> Accesorios —> Contraseñas y claves de cifrado para iniciar la aplicación Seahorse, que es usada para administrar las claves de cifrado en Ubuntu.
  2. En la ventana que aparece, haz clic en el botón Nuevo. En el cuadro de diálogo que aparece, selecciona Clave PGP, y haz clic en el botón Continuar.
  3. En el cuadro de diálogo que aparece, llena los campos Nombre Completo y Dirección de Correo (puedes dejar el campo Comentario vacío). Para ser franco, el campo email es solamente usado cuando usamos las claves con propósitos de envío de correo cifrado; sin embargo son campos obligatorios.
  4. seahorse

  5. En el apartado Opciones avanzados de clave, puedes seleccionar un tipo diferente de cifrado, aunque la opción por defecto “DSA Elgamal y 2048 bits” es considerada bastante segura a la vez que flexible para todas las necesidades. Una vez hecho, clic en el botón Crear.
  6. Después de esto, te solicitará una contraseña. Esencialmente, esta es la contraseña que necesitarás para descifrar los archivos. Es importante que escojas una contraseña difícil de adivinar, pero a la vez fácil de recordar. La contraseña puede incluir letras, números, símbolos, y espacios.
  7. Después de esto, la clave será generada. Dependiendo en la velocidad de tu computador, esto puede tomar algunos minutos. Una vez hecho esto, cierra la aplicación Seahorse.

Cifrando/Descifrando archivos y carpetas

Una vez que el par de claves ha sido generado, cifrar y descifrar archivos es bastante simple. Solo tienes que seleccionar un archivo, hacer clic derecho y seleccionar Cifrar.

seahorse gnome

En el diálogo que aparece, selecciona la clave que has creado, y clic en OK

gpg linux

Si has seleccionado una carpeta para cifrar, te preguntará si deseas cifrar cada archivo dentro de la carpeta por separado o si deseas que se cree un archivo ZIP que luego será cifrado. La segunda opción es la mejor en la mayoría de los casos.

gpg linux seahorse

Si estás cifrando un archivo, una vez que el cifrado esté completo, deberías encontrarte con una nueva versión con la extensión .pgp. Puedes/debes entonces 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 del folder. 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 asegúrate de probar descifrando el archivo cifrado, para ver que todo va bien.

Para ello, debes hacer doble clic en el archivo .pgp, y entonces digitar 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 entonces extraer el contenido del mismo.

Descifrando archivos en otro computador

Como mencionaba en la introducción de este tip, este no es un sistema diseñado para crear archivos cifrados portables (como lo sería usando TrueCrypt). Para descifrar archivos en otro computador, necesitas exportar tu clave y luego importarlos en dicho computador. Esto representa un riesgo de seguridad. Sin embargo, algunas veces puede ser necesario descifrar archivos en otro computador. Aquí están los pasos necesarios:

  1. En el computador que creaste las claves, inicia Seahorse (Aplicaciones —> Accesorios —> Contraseñas y claves de cifrado), y entonces haz clic derecho en tu clave personal. Selecciona Propiedades desde el menú que aparece.
  2. En el cuadro de diálogo que aparece, clic en la pestaña Detalles, y clic en el botón Exportar al lado de Exportar la clave completa. Guarda 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.
  3. Copia el archivo .asc a una memoria USB, y cópialo en el segundo computador. Aún en el segundo computador, inicia Seahorse, y haz clic en el botón Importar. Navega hasta donde tienes el archivo .asc, y haz clic en Abrir. Esto importará la clave. Después de esto, cierra Seahorse. Puedes entonces hacer doble clic sobre cualquier archivo cifrado para descifrarlo.
  4. Si el otro computador no tiene Seahorse instalado—tal vez sea otra distro o una versión vieja de Ubuntu—copia la clave al escritorio, y ejecuta el siguiente comando en una terminal (asumiendo que gpg está instalado, que es muy común):
    gpg –import “/home/usuario/Desktop/archivo.asc”

    Obvio, debes reemplazar archivo.asc por el nombre del archivo de claves y usuario con tu nombre de usuario.

  5. Entonces, para descifrar un archivo, digita el siguiente comando:
    gpg nombre_de_archivo.pgp

    De nuevo, debes reemplazar nombre_de_archivo.pgp con el nombre de el archivo a descifrar. Te preguntará el password, así que escríbela. Después de esto, el archivo original será guardado en la misma carpeta donde está el archivo .pgp.

Ten en cuenta que debes asegurarte 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 el computador donde creaste la clave tiene una fecha errónea, podría darte bastante problemas la creación y uso de la clave.

Fuente de la imagen del candado

26 Comentarios | deja el tuyo

8 enlaces entrantes

18 Comentarios en “Cifrado de archivos usando GPG en Ubuntu”

  1. DiZo dice:

    Me ha parecido un artículo muy útil, la verdad que nunca me paré a pensar lo sumamente sencillo que podía ser el cifrado de archivos en Linux, pero la verdad es que sí que lo es.

    Ojalá para una próxima vez, puedas realizar otro artículo, pero para un sistema de cifrado portable, no estaría nada mal.

    Saludos y enhorabuena por el artículo.

  2. Cristian dice:

    Ya hay un articulo para cifrado de datos portable:

    http://casidiablo.net/archivos-seguros-linux/

    Un saludo.

  3. Datzerox dice:

    Buen aporte y muy util.

    Salu2!

  4. Tenía la duda sobre la diferencia entre PGP y GPG, pues en el post mencionas ambos términos. Entonces, buscando en la wikipedia encontré la descripción de ambos, y me resolvió la duda. Como referencia, aquí dejo los enlaces.
    PGP: http://en.wikipedia.org/wiki/Pretty_Good_Privacy
    GPG: http://en.wikipedia.org/wiki/GNU_Privacy_Guard
    ¡Muy buen artículo! Bien detallado y explicado de forma clara y sencilla.

  5. Guillermo Rojas dice:

    Excelente artículo, realmente útil.

  6. Linux Inicio dice:

    Muy buen articulo! Muy claro e interesante.

  7. Julian dice:

    Gracias por el Articulo, pero me surge la duda siguiente:
    Dices que esta cifrado es válido para la maquina con la que se crea, pero,¿que ocurre si se formatea el equipo ?

  8. Cristian dice:

    Hola Julian.

    En el caso en el que tengas que formatear el equipo, debes importar las claves y guardarlas (como se explica en el tutorial). Posteriormente las importas en el nuevo sistema.

    Un saludo.

  9. He estado usando Seahorse en Ubuntu casi a diario y es fantástico. Pero me topé con algo: ¿Cómo encriptar/desencriptar mis archivos en Windows? Si, lo sé, no es un artículo sobre Windows, pero a veces es necesario para transferir archivos y poder desencriptarlos en otra máquina que sólo tenga Windows.

    He verificado varias alternativas para Windows pero ninguna termina por convencerme, ¿Alguna idea o sugerencia?

  10. Cristian dice:

    Lo siento Gregorio, no conozco mucho sobre el tema de cifrado en Windows. O bueno, quizás quieras usar TrueCrypt:

    http://casidiablo.net/archivos-seguros-linux/#3

    Un saludo.

  11. Hola Cristian. En el caso de TrueCrypt, no se basa en GPG, que es lo que quisiera bajo Windows. Y mira que utilizo TrueCrypt a diario, pero el chiste es manejar GPG en Windows.

    Luego de una ardua investigación por la web, me encontré con una solución interesante: Cryptophane (su web es http://cryptophane.org/); utiliza GnuPG (GPG), lo cual es lo importante en este caso.

    Otra opción, sólo para cifrado de texto (no para archivos binarios) es GPG4USB (su web es http://gpg4usb.cpunk.de/); es portable y muy intuitivo… pero de nuevo, es sólo para cifrar textos.

    Por último, otra buena opción que es similar a Cryptophane es GPG4Win (su web es http://www.gpg4win.org/), particularmente en su versión 1.9 Beta, pues incluye Kleopatra, un gestor tipo Seahorse pero para KDE (y si, funciona en Windows).

    Ojalá esta información sea útil para todos. ¡Saludos!

  12. Cristian dice:

    De seguro le servirá a más de uno. Gracias por compartirlo aquí.

    Un saludo.

  13. Leocente dice:

    hola mira te hago una pregunta?? sigo todos los pasos que decis pero al intentar cifrar un archivo o carpeta pulsando el boton derecho no me aparece la opcion cifrar… sabes porque puede ser??? desde ya gracias

  14. Leocente dice:

    si estoy usando Ubuntu 9.10… no entiendo porque no puedo!! intente varias veces pero no se. de echo borre las clave que habia creado e intente con otras pero tampoco!

  15. alberto dice:

    A mí me pasa lo mismo…. he mirado todos los paquetes etc y no hay manera no consigo utilizar mis claves ni abrir un fichero cifrado anterior…. me dice textualmente: “No existe una aplicación instalada para los archivos cabecera de mensaje cifrado PGP/MIME”

    Saludos

¡Déjanos tu comentario!