GnuPG, el software libre de cifrado y firma digital

Deja de tener tus datos desprotegidos


En criptografía, el cifrado es el proceso de codificación de la información. En este proceso convierte la representación original de la información, conocida como texto plano, en una forma alternativa conocida como texto cifrado. Gracias a GnuPG podemos cifrar nuestros archivos y documentos de forma sencilla para proteger la información que se encuentra en ellos haciendo uso del cifrado por claves.

Los dos tipos que existen de cifrado según sus claves son: simétrico y asimétrico.

Cifrado simétrico

En el esquema de clave simétrica, las claves de cifrado y descifrado son las mismas (Una contraseña). En caso de usar la criptografía para el envío de mensajes con información sensible, ambas partes deben de disponer de la misma clave para lograr una comunicación segura. Este método es más sencillo de implementar y usar, más rápido, consume menos recursos y es bueno para manejar y transferir grandes cantidades de datos. No obstante, tiene una gran desventaja y es que si se pierde una clave, los datos cifrados quedan en riesgo y que la clave debe compartirse de manera segura con la otra parte. Algunos de los protocolos que usa el cifrado simétrico son AES, DES, 3DES y RC5.

Cifrado de archivos

Gracias a GnuPG podremos cifrar archivos de forma muy sencilla e intuitiva. Accediendo a la terminal (cmd), ejecutaremos el comando gpg -c <nombre_del_archivo>. Si queremos tener un cifrado algo más seguro, podemos usar el siguiente comando gpg --s2k-mode 3 --s2k-count 65011712 --s2k-digest-algo SHA512 --s2k-cipher-algo AES256 -c <nombre_del_archivo>

  • --s2k-mode n: Selecciona como se alternan las frases de la contraseña para el cifrado simétrico. Si n es 0, se usará una frase de contraseña simple (no se recomienda), un 3 (valor predeterminado), itera todo el proceso varias veces, especificadas por --s2k-count
  • --s2k-count n: Especifica cuantas veces se repite la manipulación de frases de contraseña. El valor puede oscilar entre 1024 y 65011712.
  • --s2k-digest-algo: Utiliza el nombre como el algoritmo de resumen utilizado para manipular las frases de contraseña para el cifrado simetrico. El valor predeterminado es SHA-1.
  • --s2k-cipher-algo: Utiliza el nombre como algoritmo de cifrado para el cifrado simétrico con una frase de contrasñea si --personal-cipher-preferences y --cipher-algo no se dan. El valor por defecto es AES-128.
  • -c o --symmetric: Cifra con un cifrado simetrico utilizando una frase de contraseña.

Symmetric Encryption

Descifrado de archivos cifrados

Una vez tenemos un archivo cifrado que queremos descifrar para poder ver el contenido en su interior, usaremos el comando gpg -o <nombre_del_archivo_final> -d <nombre_del_archivo_cifrado>. Si lo deseamos, aunque no es recomendable, podemos usar el parámetro --passphrase para pasarle la contraseña de la clave al tiempo de usar el comando gpg --passphrase <Contrasñea> -o <nombre_del_archivo_final> -d <nombre_del_archivo_cifrado>.

Symmetric decryption

Cifrado Asimétrico

En el caso del cifrado asimétrico, se hacen uso de dos claves, la pública y la privada. Ambas claves están conectadas entre si, pues la clave pública es la que se encarga del cifrado y la privada del descifrado. El destinatario genera ambas claves y comunica la clave pública al emisor para que pueda cifrarlo. Esto hace que el mensaje solo pueda ser descifrado por la clave privada del destinatario, quien tiene la pareja de la clave que cifró el mensaje.

Otra de las ventajas que presenta el cifrado asimétrico, es la firma digital, y se dá cuando el emisor cifra con su clave privada el mensaje, haciendo que cualquiera con su clave pública pueda descifrarlo, pero logrando identificar al propietario del mensaje.

La ventaja que presenta el cifrado asimétrico es que los datos solo pueden ser descifrados por el propietario de la clave privada, pareja de la clave pública que cifró el mensaje; si la clave pública se pierde o es robada, los datos no quedan comprometidos; Ofrece autenticación y no repudio, además de confidencialidad.

Algunas de las desventajas que presenta son: Es más lento que el cifrado simétrico, consume más recursos, si se pierde la clave privada, no hay forma de recuperarla.

Crear la pareja de claves

El primer paso de todos, será generar nuestra pareja de claves pública y privada. Para ello, haremos uso del comando gpg --full-generate-key.

1. Empezaremos por indicarle que tipo de clave queremos, en nuestro caso elegiremos "RSA and RSA". Como podemos observar en la captura, podemos seleccionar también DSA o RSA para solo realizar firmas.

Select RSA

2. El segundo paso será indicarle la longitud de bits entre 1024 y 4096. Para una mayor seguridad, hemos seleccionado la longitud máxima que pueden tener, 4096.

Select bits long

3. A continuación nos pedirá si queremos que la clave expire y cuando queremos que expire, pudiendole indicarle desde dias, semanas, meses hasta años.

Select Key expire

4. Siguiendo con el proceso, deberemos pasarle una serie de información que nos ayudará a identificar las claves, así como nuestro nombre, correo electrónico y, adicionalmente, un comentario que nos ayude a saber los motivos con el que fue creada la clave. Es importante destacar que lo que realmente identifica la clave es el correo electrónico.

Key UID

5. Por último, nos solicitará que le pasemos la contraseña de nuestra clave privada, la que usaremos para descifrar los archivos cifrados con nuestra clave pública, firmar documentos, etc.

Give passphrase

Exportar la clave pública

Para enviar la clave pública a otra persona, deberemos usar gpg -o <clave_publiga.gpg> --export <correo@electrónico.com>. Eso nos generará el arcivo de la clave pública listo para ser enviado.

Export public

Copias de seguridad de la clave privada

Como bien dijimos anteriormente, la clave privada es la que debemos proteger. Si alguien nos la roba, significaría que podría firmar documentos bajo nuestro nombre, descifrar archivos que se suponen que solo deberíamos recibir nosotros, y si la perdemos significaría no poder recuperar los datos de los archivos cifrados. Por ello, hacer copias de seguridad de la clave privada y guardarla de forma local, en algún dispositivo que tengamos custodiado a buen recaudo, sería una buena práctica (como un dispositivo USB protegido con contraseña). El comando que nos ayudará a exportar la clave privada es gpg --output <nombre_del_archivo> --export-secret-keys <correo@electrónico.com>.

Export secret key

Copia de seguridad de relaciones de confianza

Si quieres realizar una copia de las relaciones de confianza, bastará con usar gpg --export-ownertrust > <nombre_del_archivo>

Export ownertrust

Importar las claves y relaciones de confianza

Para importar cada una de las copias que hemos hecho, bastará hacerlo con el parámetro --import.

  1. gpg --import <nombre_archivo> (Pública/Privada) 
  2. gpg --import-ownertrust < <nombre_del_archivo> (Relaciones de confianza).

Import all keys

Cifrar con clave pública

Utilizaremos el parámetro --encrypt para cifrar con nuestra clave pública. gpg -o <archivo_cifrado> --encrypt --recipient <correo@electrónico.com> <archivo_a_cifrar>.

  • --encrypt: Cifra los datos de una o más claves públicas
  • --recipient: Nombre de identificación del usuario (correo).Si esta la opción o la de --hidden-recipient no están, GnuPG pregunta por el identificador de usuario a menos que el parámetro --default-recipient esté configurado.

Asymmetric decryption

Descifrar archivos

Por último veremos como descifrar un archivo cifrado. Recordemos que para ello debemos tener la clave privada que pertenezca a la pareja de la clave pública que cifró el documento. Los comandos que podemos usar son:

  • gpg -o <archivo_sin_cifrar> --decrypt <archivo_cifrado>
  • gpg --passphrase <contraseña> -o <archivo_sin_cifrar> --decrypt <archivo_cifrado>
  • gpg --pinentry-mode=loopback --passphrase <contraseña> --output <archivo_descifrado> --decrypt <archivo_cifrado>

El parámetro --passphrase hará que no haga falta pasarle la contraseña manualmente (no recomendado, útil para automatización de copias de seguridad). El parámetro --pinentry-mode=loopback es porque, en Windows, es posible que aún poniendo el parámetro --passphrase, el programa nos solicite que le introduzcamos la contraseña (Algunos usuarios han reportado dicho error con la respectiva solución: --pinentry-mode=loopback).

Asymmetric decryiption

 
by Alex Garcia Date: 25-07-2023 GPG GnuPG Criptografía Ciberseguridad Cifrar archivos Seguridad Gratuito Software Libre Backups visitas : 843  
 

Alex Garcia

Apasionado por el mundo de la informática aprendiendo cada día más. Fui finalista del CyberCamp del 2019 en el equipo de SJO. Me gustan los videojuegos y en mis ratos libres también escribo breves relatos e historias.

 
 
 

Artículos relacionados

Google Dorking: descubriendo el potencial oculto de los motores de búsqueda

En la era digital actual, los motores de búsqueda se han convertido en una herramienta esencial para encontrar información en línea. La mayoría de las personas están familiarizadas con el uso…

HIJACKING o secuestro de sesión: qué es y cómo protegerse

Nadie quiere que le roben sus preciadas cookies. Y no, no estamos hablando de que alguien se cuele en su cocina y vacíe el delicioso contenido de tu tarro de…

6 mejores navegadores alternativos centrados en la privacidad en 2021

En el artículo de hoy echamos un vistazo a los navegadores privados gratuitos que son relevantes en 2021. Compararemos sus ventajas y desventajas, especificaciones, etc. Entremos el tema. ¿Qué son los navegadores…

Google Dorks Como Encontrar Datos Interesantes y Buscar Como Un Hacker

¿Van juntas las palabras Google y Hacking? Bueno, si usted pensó que vamos a aprender cómo utilizar el hack en Google, usted podría estar equivocado. Pero podemos Usar el motor de…

Las vulnerabilidades del software - una guía para novatos

¿Qué son las vulnerabilidades del software? El número de dispositivos conectados a Internet crece cada día. Y entre esos dispositivos no sólo encontramos ordenadores y móviles inteligentes, sino también un número…

La vulnerabilidad de BleedingTooth y otros riesgos de seguridad del Bluetooth

¿Has oído hablar alguna vez de BleedingTooth? Y no nos referimos a la seta de aspecto realmente perturbador que se llama así y que es totalmente real (lo comprobamos dos veces),…

Cómo los hackers comprueban si su sitio web es pirateable

Memento mori es la expresión latina usada para referirse al hecho de que todos somos mortales. Según la tradición, esta frase se susurraba a los triunfantes comandantes militares romanos en…

Cloudflare, que es y para que sirve

CloudFlare protege, acelera y optimiza sitios web, es un sistema gratuito que actúa como un proxy (intermediario) entre los visitantes del sitio web y el servidor, osea que opera una…

Hacer copias de seguridad en la nube con PHP y la API de copy.com

  Copy.com es un servicio de almacenamiento en la nube, muy parecido a Dropbox, que brinda la posibilidad a que las personas que se inscriben puedan recibir inmediatamente 15GB de espacio…

Hacking ético para diagnosticar la seguridad de una web: 15 herramientas

Las pruebas de intrusión, conocidas como "Análisis de Penetración" o "Hacking Ético", son actualmente una práctica habitual para conocer el nivel de seguridad que tiene una web. Dichas pruebas se encargan…

Los ciberdelincuentes juegan con los perfiles corporativos en Twitter

En los últimos meses, los hackers se han atacado los perfiles de Twitter de grandes empresas como Burger King, Jeep y Twitter. Los ataques tratan de difundir información falsa a través de las mismas…

El software pirata en las empresas y seguridad informática

En España el 44% del software utilizado en las empresas es ilegal. Así lo certifica la BSA (Business Software Alliance) en esta infografía en la que enseña el panorama actual de la…

Clicky