Seguridad

Cifrar y descifrar archivos en Linux con gpg

GnuPG (o gpg) es un software que permite cifrar y firmar datos y comunicaciones, así como archivos.

Viene incluido en Linux por defecto y hoy vamos a ver una introducción a su uso para cifrar y descifrar archivos con una contraseña dada por nosotros.

También vamos a ver cómo eliminar los archivos originales con srm o secure remove.

La página oficial de GNU Privacy Guard es gnupg.org.

Cifrar un archivo con gpg

Comencemos cifrando un archivo de texto, aunque gpg puede hacer más cosas y cifrar otro tipo de archivos como imágenes, vídeos, etcétera (pues al final todos son ficheros, sin importar el tipo o extensión).

Para cifrar un archivo llamamos al binario gpg pasándole la opción -c e indicando adelante el nombre del archivo.

La sintaxis es:

gpg -c nombre_de_archivo

Para probar este ejemplo vamos a crear un archivo de ejemplo

1 – Crear archivo para probar

Creamos el archivo escribiendo con echo, después miramos su contenido con cat y finalmente lo ciframos con:

gpg -c mensaje.txt

Dependiendo de nuestro sistema, se pedirá la frase de paso o passphrase, que es la contraseña para descrifrarlo.

En mi caso aparece una ventana  (en otros casos podría pedírtelo directamente en la terminal):

2 – Encriptar archivo con GPG

Diferencia entre archivo cifrado y original

Al invocar a gpg se habrá creado otro archivo que tiene el mismo nombre que el original pero con la extensión gpg.

Podemos ver la diferencia listando el contenido de ambos:

3 – Diferencia entre archivo cifrado y archivo original

Aunque parecen datos “raros” en realidad es el archivo encriptado.

Nota: no porque sean caracteres raros significa que un archivo esté encriptado. Por ejemplo, si abres un documento PDF como texto, verás algo similar, pues no es que los datos estén encriptados, sino que no se pueden reconocer como texto.

Eliminar archivo original con srm

¿De qué sirve cifrar el archivo si no lo eliminamos? y otra cosa, ¿de qué sirve eliminarlo si se puede recuperar, probablemente?

Después de cifrar el archivo vamos a eliminarlo de manera segura con srm cuyo manual puedes ver aquí.

Su uso es:

srm archivo

También elimina carpetas y tiene otras opciones, la que me gusta es la -v para que sea verboso. No veremos esas opciones por el momento, pero ahí dejo el enlace al manual.

Nota: srm sirve para eliminar cualquier archivo, no importa si lo cifras o no.

Vamos a eliminar el archivo de forma segura:

4 – Eliminar archivo original con srm

Ahora solo queda el archivo cifrado. Ese archivo lo podemos dejar ahí y enviarlo por medios inseguros.

Descifrar archivo con gpg

Ahora veamos el proceso inverso, y es obtener el archivo original que anteriormente ciframos con gpg. Para ello, la sintaxis es:

gpg -d archivo

Nota: si al descrifrar no te pide la clave, no te preocupes, es porque la está “recordando” por un período de tiempo; si reinicias la PC esto cambiará. Es como cuando usas sudo y se guardan los privilegios por unos minutos.

Cuando lo invoquemos se nos pedirá la passphrase, y en caso de que sí, se imprimirá el resultado.

Si no queremos que se imprima, simplemente redirigimos la salida como en la imagen a continuación:

5 – Descifrar archivo con gpg

Cuando invocamos a:

gpg -d mensaje.txt.gpg

La salida se muestra en la terminal. Y si queremos redirigirlo entonces invocamos:

gpg -d mensaje.txt.gpg > mensaje.txt

Lo mismo es para otros archivos.

Conclusión

No olvides elegir contraseñas seguras siempre, en cualquier momento, incluso al cifrar archivos.

Recuerda que se pueden cifrar otros tipos de archivos como vídeos, imágenes, código fuente, binarios, etcétera.

Para terminar, aquí dejo el archivo cifrado para que pruebes descifrándolo, la contraseña es hunter2.

Estoy aquí para ayudarte 🤝💻


Estoy aquí para ayudarte en todo lo que necesites. Si requieres alguna modificación en lo presentado en este post, deseas asistencia con tu tarea, proyecto o precisas desarrollar un software a medida, no dudes en contactarme. Estoy comprometido a brindarte el apoyo necesario para que logres tus objetivos. Mi correo es parzibyte(arroba)gmail.com, estoy como@parzibyte en Telegram o en mi página de contacto

No te pierdas ninguno de mis posts 🚀🔔

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

Entradas recientes

Servidor HTTP en Android con Flutter

El día de hoy te mostraré cómo crear un servidor HTTP (servidor web) en Android…

4 días hace

Imprimir automáticamente todos los PDF de una carpeta

En este post te voy a enseñar a designar una carpeta para imprimir todos los…

5 días hace

Guía para imprimir en plugin versión 1 desde Android

En este artículo te voy a enseñar la guía para imprimir en una impresora térmica…

1 semana hace

Añadir tasa de cambio en sistema de información

Hoy te voy a mostrar un ejemplo de programación para agregar un módulo de tasa…

2 semanas hace

Comprobar validez de licencia de plugin ESC POS

Los usuarios del plugin para impresoras térmicas pueden contratar licencias, y en ocasiones me han…

2 semanas hace

Imprimir euro € en impresora térmica

Hoy voy a enseñarte cómo imprimir el € en una impresora térmica. Vamos a ver…

4 semanas hace

Esta web usa cookies.