Noticias
Gira hacia el 2026: únete a la Rueda de la Fortuna de Año Nuevo

EL AÑO NUEVO
RUEDA DE LA FORTUNA

¡Toca el botón y gana un premio garantizado ahora mismo!

Al registrarte te estás registrando para recibir correos electrónicos.
RF
De marzo de 21 2024
Actualizado el 29 de junio de 2025

Creación de una firma digital con GPG: guía paso a paso para la firma segura de datos

Linux Seguridad

Con el auge de los sistemas de información, prácticamente todos los procesos organizacionales, ya sean de RR. HH., contabilidad o gestión documental, han migrado a formatos digitales. Esta transición ha facilitado el almacenamiento, la transmisión, la modificación y el procesamiento eficiente de grandes cantidades de datos. Sin embargo, también ha introducido nuevos riesgos: la información se ha vuelto vulnerable a amenazas que afectan a sus principios fundamentales de integridad, disponibilidad y confidencialidad. Para salvaguardar estas propiedades fundamentales, se necesitaba una solución fiable, algo similar a un sello o firma digital que garantice la seguridad de los datos.

Esta solución se materializó en la tecnología de firma digital electrónica (EDS). La EDS utiliza algoritmos criptográficos y terceros de confianza para verificar de forma segura la autenticidad e integridad de los mensajes transmitidos, proporcionando un mecanismo robusto para proteger las comunicaciones digitales de la manipulación y la falsificación.

¿Qué es una firma GPG?

La firma GPG es una analogía de una firma humana normal en documentos. No se trata de una imagen ni de una firma gráfica, sino de una secuencia de cadenas generada mediante una función hash unidireccional y un proceso de cifrado mediante un algoritmo criptográfico.

La entrada a un criptosistema, o a un programa que permite realizar transformaciones criptográficas, es información que necesita ser firmada. El archivo o secuencia de cadenas a firmar pasa por una función matemática unidireccional o función hash que convierte los datos en una secuencia sin sentido, pero única para el texto o archivo dado. Es decir, si se cambia un solo carácter, la función tendrá un significado diferente. El algoritmo de cifrado asimétrico es el responsable de la confidencialidad.

Instalación y configuración de GPG

Tomemos como ejemplo el proceso de creación de una firma para un archivo o mensaje, de modo que el destinatario pueda estar seguro de la integridad, autenticidad y, en algunas configuraciones, confidencialidad de los datos transmitidos. En primer lugar, vamos a actualizar los paquetes en la máquina para que todas las dependencias estén actualizadas y no haya problemas en la conexión.

apt update && apt upgrade -y

De forma predeterminada, las distribuciones ya incluyen la solución del paquete gnupg, que permite realizar conversiones criptográficas. Sin embargo, si su dispositivo no lo tiene, especifique un administrador de paquetes y un comando:

  • apto para Debian/Ubuntu;
  • yum/dnf para Fedora/RedHat.
apt install gnupg -y
Installation
Captura de pantalla №1 — Instalación

Antes de iniciar una máquina de prueba, que podemos hacer en Serverspace plataforma en la nube que ayudará a facilitar la implementación; también puede omitir este paso si tiene una servidor en la nube. Para crear el nodo necesitamos encontrar la plataforma en la nube en el menú de la izquierda que puede elegir según sus requisitos. Nosotros elegimos vStack or VMware plataforma y haga clic en el botón Crear servidor.

Create machine
Captura de pantalla №2: Crear máquina

Llevará algún tiempo implementar la capacidad del servidor. Después de eso podrás conectarte de cualquiera de las formas que más te convengan. Volvamos a nuestra terminal con la utilidad ya instalada, para familiarizarnos con la sintaxis escribiremos los comandos:

gpg -h
Help command
Captura de pantalla №3— Comando de ayuda

Como vemos, la lista de opciones es bastante extensa. Por lo tanto, centrémonos en las principales opciones y funciones del comando, que pueden ser necesarias durante la realización de acciones básicas.

¿Cómo creo claves GPG?

Para firmar un mensaje, se debe generar un par de claves utilizando un algoritmo de cifrado asimétrico:

gpg --full-generate-key --expert

Utilice gpg con --clave-generada-completa y --experto opciones para una configuración más detallada de claves y usuarios. Seleccionando el algoritmo de cifrado RSA, longitud de clave 2048 y configurando el ID de usuario, nos aseguraremos de que las claves hayan sido creadas. De forma predeterminada, se almacena en un llavero o base de datos de llaveros, que se cifra con la clave del usuario. En consecuencia, la autenticidad del mensaje y los archivos depende de la longitud de la clave y la contraseña del usuario durante la transmisión y el almacenamiento. Por lo tanto, es necesario establecer una contraseña compleja, preferiblemente de 14 caracteres.

Veamos los pares de claves creados, para público -k, para privado -K:

gpg -k
Показать ключи
Captura de pantalla №4: Mostrar claves

Para que el destinatario pueda verificar la firma es necesario exportar y luego importar las claves públicas al destinatario:

gpg -a -u Koldek --export > keys.asc
Export keys
Captura de pantalla №5: claves de exportación

Para ver la clave, ingrese el comando:

cat keys.asc

Ahora hay dos opciones para la distribución de datos: debido a la amenaza de suplantación de clave pública, en la transmisión inicial debemos trabajar a través de intermediarios o confiar en la clave fuente. Considere el modelo Web-of-Trust, que implica confiar en fuentes basadas en las calificaciones de los usuarios. Colocamos nuestra clave en nuestro sitio o en el de WoT y la distribuimos a petición de los usuarios.

Asegúrese de verificar los valores hash después de recibir la clave y descargarla: ¡deben coincidir!

En el esquema con el centro de certificación, necesitamos registrar nuestra clave pública y obtener un certificado, que contendrá un nuevo EDS del centro de certificación. Si el usuario confía en la CA, la firma se descifra y se verifica en consecuencia.

Una vez que tengas la clave, debes importarla con el comando:

gpg --import key.asc
Import keys
Captura de pantalla №6: Importar claves

Después de importar, vemos el número y el nombre de la clave, que también podemos verificar para la autenticación:

Si intentamos verificar un mensaje de prueba, recibiremos una advertencia sobre el origen desconocido de la clave. Para verificar que las claves sean confiables, se utiliza una base de datos o gpg confiable para almacenar una lista de claves y su nivel de confianza.

Untrusted keys
Captura de pantalla №7: claves que no son de confianza

Escribamos el nivel de confianza manualmente cambiando los parámetros clave con el comando:

gpg --edit-key Koldek

Y luego seleccione el elemento que desea editar - confianza:

Modification of trust level
Captura de pantalla №8: Modificación del nivel de confianza

Para confiar plenamente en la clave, debe seleccionar el elemento 5, pero antes de eso, verifique los valores hash y los datos de la clave. Y confirma tu elección:

Trust for keys
Captura de pantalla №9: Confianza en las claves

En la parte inferior vemos una nota que indica que la clave de confianza cambiará después de reiniciar la utilidad, lo cual haremos.

¿Cómo puedo crear y verificar una firma GPG?

¡Volvamos a la máquina anterior donde generamos las claves y firmamos el primer mensaje!

Hay tres opciones sobre cómo firmar un mensaje:

  • crear una firma en blanco en el propio mensaje;
  • crear una firma separada en un archivo;
  • crear una firma en un archivo combinado con texto.

La primera forma es un archivo en el que el mensaje en sí y la firma están separados, no se requiere ningún medio especial para leer el archivo. Solo para confirmar la firma. Escribamos el comando:

gpg -a -u Kolded --clear-sign target.txt
Clear sign
Captura de pantalla №10: señal clara

Después de firmar, transfiera el archivo de cualquier manera conveniente y verifique el mensaje en el archivo que ya está del lado del destinatario:

gpg --verify target.txt.asc
Verification of clear sign
Captura de pantalla №11: Verificación de señal clara

Como puede ver, ahora no aparecen advertencias ni errores y se establece la fecha de firma del mensaje. Sin embargo, sin un servidor de hora, es posible falsificar estos valores, ya que se almacenan en los metadatos del archivo y no se verifican como el mensaje en sí.

El siguiente método, un archivo independiente con la firma, lo que puede resultar útil para paquetes de software cuando no es necesario modificarlos con una firma. Todo lo que necesita hacer es descargar un archivo independiente para la verificación:

gpg -a -u Koldek -b target.txt > target.txt.asc

Para mayor claridad, verifiquemos inmediatamente su autenticidad con un comando:

gpg --verify target.txt.asc
Detached sign
Captura de pantalla №12: letrero separado

Tenga en cuenta que ahora necesitamos transferir el mensaje en sí y su firma a la máquina, preferiblemente en la misma carpeta.

Pero, ¿cómo garantizar al mismo tiempo la confidencialidad, integridad y autenticidad de la firma transmitida? ¡Basta con cifrarla después de crearla! Esto garantizará la confidencialidad de nuestro mensaje, archivo o documento. Para ello, escribamos el comando:

gpg -a -u Koldek -r Raider -se target.txt
Tenga en cuenta que el parámetro -u es responsable de qué clave firmar, y -r es responsable de qué clave pública cifrar el mensaje.

Se generará un archivo en el que ya estará integrado el mensaje y la firma, ahora debes verificarlo y descifrarlo con el comando:

gpg -d target.txt.asc
Encrypt and sign
Captura de pantalla n.º 13: cifrar y firmar

En la creación de firmas digitales mediante GPG vemos una potente herramienta para garantizar la seguridad y la confianza en el intercambio de información. Este proceso garantiza la integridad de los datos y confirma la autoría, abriendo nuevas posibilidades para la mensajería segura y el intercambio de archivos en el mundo digital.

Votar:
5 de 5
Calificación promedio: 5
Calificado por: 2
1101 CT Ámsterdam Países Bajos, Herikerbergweg 292
+31 20 262-58-98
700 300
ITGLOBAL.COM NL
700 300

También le podría interesar...

Utilizamos cookies para hacer que su experiencia en el Serverspace mejor. Al continuar navegando en nuestro sitio web, usted acepta nuestros
Uso de Cookies y Política de privacidad.