Cifrando archivos en Linux con GPG

GPG (GNU Privacy Guard) nace de OpenPGP (el proyecto libre de Pretty Good Privacy), podemos encontrarlo en las diferentes versiones de Linux, en el caso de no tenerlo instalado, simplemente hacemos una búsqueda en Google y listo.

Todos tenemos algún fichero al que no queremos que otras personas tengan acceso, por ejemplo, supongamos que somos un directivo de una empresa y tenemos un fichero en nuestro ordenador de las próximas estrategias comerciales, ¿Y si la competencia tuviera acceso a ese archivo?

Este ejemplo es algo rebuscado, pero ejemplifica de manera correcta lo que se persigue con esta entrada.

Con GPG podremos cifrar ficheros, tanto con cifrado simétrico como asimétrico, y firmarlos, es decir, se estaría especificando que ese fichero pertenece a quien dice ser.

Bueno, no voy a entrar en cómo funcionan los diferentes tipos de cifrado especificados anteriormente, así que pasamos directamente al lio.

Bien, si continuamos con el símil anterior, poseemos un fichero llamado ‘estrategiascomerciales.txt’, vamos a llevar a cabo un cifrado simétrico.

gpg --symmetric estrategiascomerciales.txt

Nos pedirá la clave con la que queremos cifrar y a continuación se creará un archivo llamado ‘estrategiascomerciales.txt.gpg’, si intentamos abrirlo con cualquier editor de texto comprobamos que no es posible leer el contenido.

Para descifrarlo, simplemente tecleamos:

gpg --decrypt -o estrategiascomerciales.txt estrategiascomerciales.txt.gpg

Ahora nos pedirá la clave para descifrar y listo.

Quizás nos aparezca un mensaje en el cual se especifica que la integridad del archivo no está garantizada, se debe a que no está firmado, es decir, no hemos generado el par de claves publica/privada.

Ahora, vamos a ver cómo cifrarlo de manera asimétrica, para entender un poco el propósito de este cifrado, veamos un ejemplo:

Supongamos que el directivo antes mencionado quiere enviar el archivo a otro colega de trabajo, podría enviarlo con un cifrado simétrico, pero también debería enviar la clave para descifrarla, que puede ser interceptada por el canal que se utilice para ello, así, nuestro directivo cifrará el documento con la clave pública de su colega, y este, al llegar el fichero a su destino, lo descifrará con su clave privada (se supone que nadie más tiene acceso a esa clave privada ;))

Bien, dicho esto, lo primero que debemos hacer es generar un par de claves:

gpg --gen-key

Una vez tecleada la instrucción, seguimos los pasos por los que nos lleva gpg, para al final conseguir nuestro par de claves.

Vamos ahora a cifrar el fichero:

gpg --encrypt -r direccion@emailasociadoalaclave.com estrategiascomerciales.txt

Ahora para descifrar:

gpg --decrypt -o estrategiascomerciales.txt olakase

donde -o especifica el fichero de salida y ‘olakase’ es el nombre del fichero cifrado en la anterior instrucción.

Respecto a lo que el manejo de claves se refiere, donde se encuentran, como firmar un fichero de otra persona, subir nuestra clave pública a un servidor… no entra dentro del propósito del post, se puede encontrar información en los buscadores.

Una vez visto esto, quizás sea pesado cifrar una gran cantidad de ficheros, pero siempre podríamos generarnos un script para ese propósito.

Espero que haya sido de ayuda.

HackSaludos!

Fuente: Hardening de servidores GNU/Linux

Acerca de Darkvidhck

Estudiante de ingeniería informática, haciendo mis pinitos como desarrollador web, programador, gamer y Linuxero. Aficionado a la seguridad. Eterno viciado al conocimiento.
Esta entrada fue publicada en Linux en general, Seguridad y etiquetada , , , , . Guarda el enlace permanente.

2 respuestas a Cifrando archivos en Linux con GPG

  1. Hola, muy interesante, hace tiempo escribí sobre un plugin para Vim que permite cifrar y descifrar directamente los archivos sin necesidad de usar los comandos GPG, quizá te resulte útil: http://elbauldelprogramador.com/opensource/seguridad/editar-y-crear-archivos-cifrados-con-gpg-en-vim/

    Saludos

Deja un comentario