- GPG2
- Configuración del contenedor PKCS#11 en Ubuntu
- Configuración de GPG2
- Instalación del paquete Gnupg-pkcs11-scd (versión 0.11.0)
- Crear el directorio Gnupg y las variables de entorno
- Crear los archivos de configuración
- Iniciar el agente GPG
- Recuperar e importar las claves y certificados en GPG2
- Firma y verificación GPG2
- Pasos adicionales para la firma y verificación de Debian
- Pasos adicionales para la firma y verificación de RPM
- Conclusión
Imagina descargar una aplicación y sentirte bien porque cuenta con un sello digital de aprobación de un desarrollador confiable. Este sello significa que el software es legítimo y no ha sido alterado por nadie con malas intenciones. Para los desarrolladores, es una excelente manera de generar confianza y demostrar que se toman la seguridad en serio. Para los usuarios, ofrece la seguridad de que la aplicación no dañará sus dispositivos. Este proceso de añadir un sello o firma digital a una aplicación se conoce como firma de código.
Ahora, comprendamos cómo el contenedor PKCS11 de Encryption Consulting puede ayudarlo a lograr la firma GPG2, Debian y RPM con mayor velocidad y mejor eficiencia.
NOTAPara realizar firmas de Debian y RPM, aún necesitará configurar y configurar GPG en su máquina.
GPG2
GPG2, o GNU Privacy Guard 2, es una implementación gratuita y de código abierto del estándar OpenPGP, diseñada para proporcionar potentes capacidades de cifrado y firma. Disponible en plataformas como Ubuntu, permite a los usuarios cifrar datos y comunicaciones, garantizando la confidencialidad y permitiendo también la verificación de la autenticidad mediante firmas digitales.
Al implementar la firma GPG2 con el Wrapper PKCS11 de Encryption Consulting en Ubuntu, puede garantizar la autenticidad e integridad de sus activos digitales, mitigando los riesgos asociados con el acceso no autorizado o la manipulación.
Configuración del contenedor PKCS#11 en Ubuntu
Requisitos previos
Antes de analizar el proceso de firma mediante GPG2 y nuestro Wrapper PKCS11 en una máquina Linux (Ubuntu), asegúrese de que lo siguiente esté listo:
- Versión de Ubuntu: Versión de Ubuntu 22.04 o posterior (el entorno probado es Ubuntu 24.02)
Ahora, debemos iniciar sesión como usuario root antes de continuar con la firma GPG2.
sudo su

Para configurar PKCS#11 Wrapper, necesitará ejecutar los siguientes comandos e instalar algunas dependencias y paquetes en su máquina Ubuntu:
- sudo apt-get install curl
- sudo apt-get install liblog4cxx12
Instalación del contenedor PKCS#11 de EC
Paso 1: Ir a CE Versión 3.02 de CodeSign Secure Herramientas de firma sección y descargue el Wrapper PKCS#11 para Ubuntu.

Paso 2: Después de eso, genere un certificado de autenticación P12 desde el Configuración del sistema > Usuario > Generar certificado de autenticación desplegable.

Paso 3: Vaya a su sistema cliente Ubuntu y edite los archivos de configuración (ec_PKCS#11client.ini y PKCS#11propiedades.cfg) descargado en el contenedor PKCS#11.

Paso 4: Agregue la variable de entorno para la biblioteca cliente pkcs11
Ejecute el siguiente comando para abrir el archivo bashrc
nano ~ / .bashrc

Ahora agregue la variable EC_INI_FILE_PATH con la ruta del .ini al final del archivo bashrc, como:
exportar RUTA_DEL_ARCHIVO_EC_INI=/home/aryan/pkcs11-client/ec_pkcs11client.ini

Presione Ctrl+X, luego ingrese Y y luego presione Enter para guardar.
Paso 5: Recargar las variables de entorno
fuente ~ / .bashrc

Paso 6: Compruebe si la variable se ha configurado correctamente
eco $ RUTA_DEL_ARCHIVO_EC_INI

NOTA: Si no puede ver la ubicación del archivo desde los comandos echo, abra una nueva terminal e inténtelo nuevamente.
Configuración de GPG2
GPG2 se destaca como una herramienta vital para las organizaciones que buscan proteger sus datos y comunicaciones al tiempo que aumentan la eficacia operativa en una máquina Ubuntu.
Instalación del paquete Gnupg (versión 2.5.4)
Paso 1: Verificar la versión predeterminada de gnupg en su máquina Ubuntu.
política de sudo apt-cache GnuPG

Si la versión 2.5.4 está presente en su sistema, puede ejecutar el siguiente comando e ir a la siguiente sección:
sudo apt install gnupg
Como esta versión no está presente, deberá realizar los siguientes pasos:
Paso 2: Instale las herramientas de compilación y dependencias necesarias para el paquete gnupg.
sudo apt install build-essential bzip2 libassuan-dev libgcrypt20-dev libgpg-error-dev libksba-dev libnpth0-dev

Paso 3: Descargue la versión 2.5.4 de gnupg usando el siguiente comando
wget https://www.gnupg.org/ftp/gcrypt/gnupg/gnupg-2.5.4.tar.bz2

Paso 4: Extraer el archivo
tar -xjvf gnupg-2.5.4.tar.bz2

Paso 5: Vaya al directorio gnupg-2.5.4 recién creado
cd gnupg-2.5.4

Paso 6: Ejecute el archivo de configuración
. / Configure

Si esta versión de GnuPG requiere algunas bibliotecas compartidas más nuevas que haya instalado, la salida del comando configure se lo indicará, como se muestra en la imagen a continuación:

La salida anterior del comando configure nos indica que necesitamos compilar e instalar la última versión de las bibliotecas libgpg-error, libgcrypt y libassuan.
Paso 7: Instalar las dependencias adicionales para GPG2
1. Instale el error de libgpg versión del enlace proporcionado como salida del comando de configuración
wget https://gnupg.org/ftp/gcrypt/ggpgrt/libgpg-error-1.51.tar.bz2

Extraer el archivo
tar xf libgpg-error-1.51.tar.bz2

Vaya al directorio libgpg-error-1.51 recién creado
cd libgpg-error-1.51/

Ejecute el archivo de configuración
. / Configure


Ejecute el comando make
“piensen de nuevo sobre los incrementos de precio”

Instalar el paquete
sudo make install

Actualice la caché del enlazador dinámico del sistema utilizando el siguiente comando:
sudo ldconfig

Retroceda un directorio (../gnupg-2.5.4) para instalar otras bibliotecas
discos compactos ..

2. Instale el librería versión del enlace proporcionado como salida del comando de configuración
wget https://gnupg.org/ftp/gcrypt/libgcrypt/libgcrypt-1.11.0.tar.bz2

Extraer el archivo
tar xf libgcrypt-1.11.0.tar.bz2

Vaya al directorio libgcrypt-1.11.0 recién creado
cd libgcrypt-1.11.0/

Ejecute el archivo de configuración
. / Configure


Ejecute el comando make
“piensen de nuevo sobre los incrementos de precio”

Instalar el paquete
sudo make install

Actualice la caché del enlazador dinámico del sistema utilizando el siguiente comando:
sudo ldconfig

Retroceda un directorio (../gnupg-2.5.4) para instalar otras bibliotecas
discos compactos ..

3. Instalar libanés versión del enlace proporcionado como salida del comando de configuración
wget https://gnupg.org/ftp/gcrypt/libassuan/libassuan-3.0.0.tar.bz2

Extraer el archivo
tar xf libassuan-3.0.0.tar.bz2

Vaya al directorio recién creado libassuan-3.0.0
cd libassuan-3.0.0/

Ejecute el archivo de configuración
. / Configure


Ejecute el comando make
“piensen de nuevo sobre los incrementos de precio”

Instalar el paquete
sudo make install

Actualice la caché del enlazador dinámico del sistema utilizando el siguiente comando:
sudo ldconfig

Después de instalar todas las bibliotecas según lo indicado por el resultado del comando de configuración original de GnuPG, vuelva al directorio de lanzamiento de GnuPG.
discos compactos ..

Paso 8: Ejecute el archivo de configuración desde el directorio gnupg-2.5.4
. / Configure

Compruebe la salida del comando anterior

Paso 7: Repita el proceso de instalación para las dependencias adicionales restantes para GPG2.
1. Instale la versión libksba desde el enlace proporcionado como salida del comando de configuración
wget https://gnupg.org/ftp/gcrypt/libksba/libksba-1.6.3.tar.bz2

Extraer el archivo
tar xf libksba-1.6.3.tar.bz2

Vaya al directorio libksba-1.6.3 recién creado
cd libksba-1.6.3/

Ejecute el archivo de configuración
. / Configure


Ejecute el comando make
“piensen de nuevo sobre los incrementos de precio”

Instalar el paquete
sudo make install

Actualice la caché del enlazador dinámico del sistema utilizando el siguiente comando:
sudo ldconfig

Retroceder un directorio (../gnupg-2.5.4)
discos compactos ..

Paso 9: Ejecute nuevamente el archivo de configuración desde el directorio gnupg-2.5.4
. / Configure

Compruebe la salida del comando anterior

Como no hay ningún error de la versión del paquete, podemos avanzar con la instalación.
Paso 10: Ejecute el comando make
“piensen de nuevo sobre los incrementos de precio”

Paso 11: Instalar el paquete
sudo make install

Paso 12: Comprueba si gpg se ha instalado correctamente o no
gpg –versión

Paso 13: Compruebe si gpg-agent se ha instalado correctamente o no
agente gpg –versión

Instalación del paquete Gnupg-pkcs11-scd (versión 0.11.0)
Paso 1: Comprueba la versión predeterminada de gnupg-pkcs11-scd en tu máquina Ubuntu
política de caché de sudo apt gnupg-pkcs11-scd

Si la versión requerida, 0.11.0, está instalada en su máquina, ejecute el siguiente comando:
sudo apt install gnupg-pkcs11-scd
De lo contrario, deberá realizar los siguientes pasos:
Paso 2: Instale las herramientas de compilación y las dependencias necesarias para el paquete gnupg-pkcs11-scd.
sudo apt install libpcsclite-dev libssl-dev pkg-config libpkcs11-helper1-dev

Paso 3: Descargue el paquete requerido
wget https://github.com/alonbl/gnupg-pkcs11-scd/releases/download/gnupg-pkcs11-scd-0.11.0/gnupg-pkcs11-scd-0.11.0.tar.bz2

Paso 4: Extraer el archivo
tar xf gnupg-pkcs11-scd-0.11.0.tar.bz2

Paso 5: Vaya al directorio gnupg-pkcs11-scd-0.11.0 recién creado
cd ./gnupg-pkcs11-scd-0.11.0/

Paso 6: Ejecute el archivo de configuración
. / Configure

Compruebe la salida del comando anterior

Como no hay ningún error de versión del paquete, podemos continuar con la instalación.
Paso 7: Ejecute el comando make
“piensen de nuevo sobre los incrementos de precio”

Paso 8: Instalar el paquete
sudo make install

Paso 9: Actualice la caché del enlazador dinámico del sistema utilizando el siguiente comando:
sudo ldconfig

Paso 10: Compruebe si gnupg-pkcs11-scd se ha instalado correctamente o no
gnupg-pkcs11-scd –versión

Crear el directorio Gnupg y las variables de entorno
Paso 1: Comprueba si el directorio /root/.gnupg existe o no en tu sistema
ls -ld /root/.gnupg

En caso contrario, utilice el siguiente comando para crear el directorio.
mkdir /root/.gnupg

Paso 2: Agregue las variables de entorno para el Agente GPG y el directorio de sockets Gnupg-pkcs11.
Abra el archivo bashrc usando el siguiente comando
nano ~ / .bashrc

Pegue los siguientes comandos según la ubicación de los archivos en su sistema, al final del archivo, como:
exportar GPG_AGENT_INFO=/root/.gnupg
exportar GNUPG_PKCS11_SOCKETDIR=/root/.gnupg/

Presione Ctrl+X, luego ingrese Y y luego presione Enter para guardar.
Paso 3: Recargar el archivo bashrc
fuente ~ / .bashrc

Paso 4: Para comprobar estas variables, ejecute:
eco $GPG_AGENT_INFO
eco $GNUPG_PKCS11_SOCKETDIR

Si no puede ver la ubicación del archivo desde los comandos echo, abra una nueva terminal e inténtelo nuevamente.
Crear los archivos de configuración
1. Crear un gnupg-pkcs11-scd.conf archivo en el directorio /root/.gnupg
Ejecute el siguiente comando para crear/editar el archivo
nano /root/.gnupg/gnupg-pkcs11-scd.conf

Modifique y configure el archivo según el siguiente comando y las ubicaciones de los archivos de su sistema:
verboso
depurar todo
proveedores ec
biblioteca-ec-del-proveedor /home/aryan/pkcs11-client/ec_pkcs11client.so

Presione Ctrl+X, luego ingrese Y y luego presione Enter para guardar.
2. Crear un gpg-agente.conf archivo en el directorio /root/.gnupg
Ejecute el siguiente comando para crear/editar el archivo
nano /root/.gnupg/gpg-agent.co

Modifique y configure el archivo según el siguiente comando y las ubicaciones de los archivos de su sistema:
verboso
depurar todo
archivo de registro /tmp/gpg-agent.log
programa scdaemon /usr/local/bin/gnupg-pkcs11-scd
programa-pinentry /usr/bin/pinentry

Presione Ctrl+X, luego ingrese Y y luego presione Enter para guardar.
3. Crear un gpg.conf archivo en el directorio /root/.gnupg
Ejecute el siguiente comando para crear/editar el archivo
nano /root/.gnupg/gpg.conf

Modifique y configure el archivo según el siguiente comando y las ubicaciones de los archivos de su sistema:
agente de uso
#archivo de registro /tmp/gpg.log
NOTA: puede descomentar la línea (eliminando el símbolo #) para generar un archivo gpg.log

Presione Ctrl+X, luego ingrese Y y luego presione Enter para guardar.
4. Crear un pkcs11-scd.conf archivo en el directorio /root/.gnupg
Ejecute el siguiente comando para crear/editar el archivo
nano /root/.gnupg/pkcs11-scd.conf

Modifique y configure el archivo según el siguiente comando y las ubicaciones de los archivos de su sistema:
módulo /home/aryan/pkcs11-client/ec_pkcs11client.so

Presione Ctrl+X, luego ingrese Y y luego presione Enter para guardar.
5. Crear un scdaemon.conf archivo en el directorio /root/.gnupg
Ejecute el siguiente comando para crear/editar el archivo
nano /root/.gnupg/scdaemon.conf

Agregue el siguiente comando a este archivo
deshabilitar-ccid

Presione Ctrl+X, luego ingrese Y y luego presione Enter para guardar.
Iniciar el agente GPG
Paso 1: Para comprobar si gpg-agent se está ejecutando en su máquina Ubuntu
ps -aef | grep gpg

Si algún agente ya está en ejecución, deberá matar esa instancia e iniciar una nueva.
Paso 2: Para matar una instancia del agente, use el siguiente comando con los cambios en el número PID (número después del usuario “root” en la imagen de arriba) según su máquina
matar -9 134028

matar -9 136706

Paso 3: Iniciar un nuevo agente gpg
sudo gpg-agent –verbose –debug-level advanced –daemon

Paso 4: Verifique nuevamente que solo se esté ejecutando un agente gpg en su máquina Ubuntu
ps -aef | grep gpg

Recuperar e importar las claves y certificados en GPG2
Paso 1: Recargar el agente
agente de conexión gpg << EOF
> AGENTE DE RECARGA
> EOF

Paso 2: Recuperar el estado de la tarjeta:
gpg –debug-all –card-status

Paso 3: Obtenga los nombres amigables y certificados clave
agente de conexión gpg << EOF
> SCD APRENDE
> EOF

Paso 4: Copiar el ID CLAVE AMIGABLE requerido
Puede comparar el CKA_ID respectivo de la clave que desea utilizar para firmar desde el portal CodeSign Secure y copiar el Id. KEY FRIENDLY.

Paso 5: Importar clave a GPG 2
gpg –expert –generación-de-clave-completa

Este comando le solicitará varias entradas para importar y configurar correctamente los permisos para la clave en su máquina.
Primero, le pedirá que seleccione un número de la lista. Deberá ingresar 13, ya que la clave ya se creó en el portal CodeSign Secure.

Luego tendrás que ingresar el ID CLAVE AMIGABLE que tomaste en los pasos anteriores.

Se le pedirá que confirme los permisos para esta clave. Escriba "Q".

Ahora deberá configurar la fecha de caducidad de la clave en su sistema. La opción predeterminada es "La clave no caduca".

Finalmente, se le solicitará que ingrese los datos de identificación de la clave para facilitar el acceso al sistema. Proporcione el nombre y la dirección de correo electrónico de la clave y confirme la configuración ingresando "O".

Su clave se importará exitosamente a GPG2 y ahora podrá usarse para firmar.

NOTA: Ahora tienes GPG2 configurado e instalado en tu máquina.
Para realizar la firma GPG2, vaya a la sección (Firma y verificación GPG2)
Para realizar la firma de Debian, vaya a la sección (Pasos adicionales para la firma y verificación de Debian)
Para realizar la firma RPM, vaya a la sección (Pasos adicionales para la firma y verificación de RPM)
Firma y verificación GPG2
Paso 1: Enumere todas las claves disponibles para la firma GPG2
gpg –lista-de-claves

Paso 2: Copie el ID de la clave pública correspondiente a la clave que desea utilizar para firmar.

Paso 3: Busque el archivo que firmará utilizando la clave que acabamos de importar en GPG2.

Paso 4: Ejecutar el comando de firma
gpg –sign –clave predeterminada
A continuación se proporciona un comando de muestra.
gpg –sign –default-key 8A361E0C157B120C20595E738311968FA5629A34 /home/aryan/pkcs11-client/testfile

Se ha generado con éxito un archivo de firma (testfile.gpg).
Paso 5: Ejecute el comando de verificación
gpg –verificar
A continuación se proporciona un comando de muestra.
gpg –verificar /home/aryan/pkcs11-client/testfile.gpg

Pasos adicionales para la firma y verificación de Debian
La firma de Debian se basa en claves GPG2 (GNU Privacy Guard), por lo que antes de continuar, deberá instalar y configurar GPG2 en su sistema.
Paso 1: Enumere todas las claves disponibles para la firma GPG2
gpg –lista-de-claves

Paso 2: Copie el ID de la clave pública correspondiente a la clave que desea utilizar para firmar.

Paso 3: Mencione el ID de la clave pública en el archivo gpg.conf que creamos anteriormente.
Abra gpg.conf usando el siguiente comando:
nano /root/.gnupg/gpg.conf

Este debería ser el contenido dentro de este archivo.

Ahora, agregue la ID de clave pública respectiva como clave predeterminada al final del archivo, como:
default-key 8A361E0C157B120C20595E738311968FA5629A34

Presione Ctrl+X, luego ingrese Y y luego presione Enter para guardar.
Paso 4: Instale la utilidad de paquetes Debian usando el siguiente comando
sudo apt-cache política dpkg-sig

Si lo anterior arroja un error o devuelve una salida vacía, consulte los pasos a continuación para descargar e instalar el paquete dpkg-sig
1. Descargue el paquete dpkg-sig
wget https://old-releases.ubuntu.com/ubuntu/pool/universe/d/dpkg-sig/dpkg-sig_0.13.1+nmu2ubuntu1_all.deb

2. Instalar el paquete
sudo apt install ./dpkg-sig_0.13.1+nmu8~noble_all.deb

3. Compruebe si dpkg-sig se ha instalado correctamente en su sistema
dpkg-sig

Paso 5: Localice el archivo Debian que necesita firmar utilizando la clave que había configurado en el archivo gpg.conf como la “clave predeterminada”.

Paso 6: Ejecutar el comando de firma
dpkg-sig – generador de señales
A continuación se proporciona un comando de muestra:
dpkg-sig –generador de firmas /home/aryan/pkcs11-client/testsample.deb

Pasos adicionales para la firma y verificación de RPM
Paso 1: Instale el paquete rpm en su máquina
sudo apt install rpm

Paso 2: Compruebe si rpm se ha instalado correctamente
rpm –versión

Paso 3: Instalar el paquete gnupg2
sudo apt install gnupg2

Paso 4: Compruebe si gpg2 se ha instalado correctamente
gpg2 –versión

Paso 5: Enumere todas las claves disponibles para la firma GPG2
gpg –lista-de-claves

Paso 6: Copie el nombre de UID de la clave pública establecida para la clave que desea utilizar para firmar.

Paso 7: Exporte la clave respectiva a un archivo con el nombre de uid de la clave pública según su configuración, como:
gpg –export -a “Prueba1” > ~/RPM-GPG-KEY

Paso 8: Importar este archivo a RPM
rpm –import ~/RPM-GPG-KEY

Paso 9: Cree un archivo .rpmmacros que le indicará al paquete RPM qué clave GPG utilizar para firmar.
nano ~/.rpmmacros

Modifique los ~/.rpmmacrors con las ubicaciones de los archivos según las rutas configuradas en su máquina Ubuntu y el nombre de UID de clave pública requerido que obtuvimos del Paso 5 en esta sección
%_gpg_name Prueba1
%_firma gpg
%_gpg_path /root/.gnupg/
%__gpgbin /usr/bin/gpg2
%__gpg_check_password_cmd /bin/verdadero

Presione Ctrl+X, luego ingrese Y y luego presione Enter para guardar.
Paso 10: Localice el archivo RPM que necesita firmar usando la clave que acabamos de importar a RPM.

Paso 11: Ejecutar el comando de firma
rpm –verbose –addsign
A continuación se proporciona un comando de muestra:
rpm –verbose –addsign /home/aryan/pkcs11-client/RPMsample.rpm

Paso 12: Ejecute el comando de verificación
rpm –verbose –checksig
A continuación se proporciona un comando de muestra:
rpm –verbose –checksig /home/aryan/pkcs11-client/RPMsample.rpm
Conclusión
La configuración PKCS#11 de Encryption Consulting para la firma GPG2, Debian y RPM en Ubuntu facilita y protege el uso de esta potente herramienta por parte de las organizaciones. Además, gracias a las funciones mejoradas de gestión de claves y seguridad de nuestra solución de firma de código, CodeSign seguroLos usuarios pueden proteger con confianza sus datos confidenciales, lo que lo convierte en un gran activo para organizaciones de todos los tamaños.
CodeSign Secure mejora esta integración al ofrecer funciones como Módulo de seguridad de hardware (HSM) Soporte, registros de auditoría detallados y cumplimiento de las mejores prácticas de seguridad para garantizar el cumplimiento normativo y la rendición de cuentas, proteger las claves de firma y mantener la confianza. En conjunto, estas herramientas ofrecen una solución integral que optimiza los procesos de firma, aumenta la eficiencia operativa y refuerza la seguridad de las organizaciones y los usuarios.
- GPG2
- Configuración del contenedor PKCS#11 en Ubuntu
- Configuración de GPG2
- Instalación del paquete Gnupg-pkcs11-scd (versión 0.11.0)
- Crear el directorio Gnupg y las variables de entorno
- Crear los archivos de configuración
- Iniciar el agente GPG
- Recuperar e importar las claves y certificados en GPG2
- Firma y verificación GPG2
- Pasos adicionales para la firma y verificación de Debian
- Pasos adicionales para la firma y verificación de RPM
- Conclusión
