Ir al contenido

Próximamente estarán disponibles los certificados de 47 días. ¿Todo listo?

Actúa ahora →

Firmar archivos XML con la herramienta XMLSec usando la biblioteca PKCS#11

Firmar archivos xml con la herramienta xmlsec

Según un pronóstico quinquenal de IDC Global DataSphere (2024-2028), se prevé que la cantidad de datos creados, distribuidos, capturados y consumidos alcance los 175 zettabytes (ZB) para 2025. Para comprenderlo mejor, 1 ZB equivale a un billón de gigabytes (GB). La mayoría de estos datos no están estructurados y necesitan algo que les dé significado. Aquí es donde entran en juego los archivos XML.

El Lenguaje de Marcado Extensible (XML) es un lenguaje de marcado que establece reglas y organiza cualquier dato. También indica cómo almacenar y transportar los datos a través de Internet. XML utiliza símbolos o etiquetas de marcado que los navegadores y las aplicaciones de procesamiento de datos modernos utilizan para procesar dicha información.

Firma XML

Los archivos XML se utilizan en grandes cantidades, lo que los convierte en parte integral de nuestras aplicaciones y tecnología web. Pero ¿debería confiar en cualquier archivo XML? ¿Cómo puede confiar en su autenticidad? Necesita una prueba digital o firma para autenticar y verificar su fuente. 

La firma XML le permite adjuntar sus credenciales digitales, lo que permitirá al receptor confiar plenamente en el contenido del archivo. Para simplificar este proceso, Consultoría de cifrado le proporciona PKCS # 11 Wrapper, que es una biblioteca de software que proporciona una interfaz Java para interactuar con dispositivos compatibles con PKCS#11 como Módulos de seguridad de hardware (HSM), tarjetas inteligentes o cualquier bóveda de claves. 

Junto con PKCS#11 Wrapper, utilizaremos la herramienta XMLSec, una herramienta de línea de comandos para firmar, verificar, cifrado, y descifrar Documentos XML.

Configuración del contenedor PKCS#11 en Ubuntu

Requisitos previos

Antes de analizar el proceso de firma XML mediante la herramienta XMLSec y nuestro contenedor 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)  
  • Dependencias: Instalar liblog4cxx12 y curl. 

Para instalar las dependencias, ejecute los siguientes comandos

  • 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.01 de CodeSign SecureHerramientas de firma sección y descargue el Wrapper PKCS#11 para Ubuntu.  

Descargue PKCS#11 de Codesign Secure

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.

Generar certificados P12

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. 

Editar archivos de configuración en Ubuntu

Instalación de la herramienta XMLSec

Paso 1: Instale la última versión de XMLSec Tool (xmlsectool-3.0.0-bin.zip) usando esto .  

Descargar la última versión de XMLsec

Paso 2: Puede extraer el archivo zip en un directorio de su elección. 

Extraer XMLsec comprimido

Descargue e instale Java en su máquina Ubuntu.

Paso 1: Descargue Amazon Corretto 17 Java  (Puede consultar otras versiones de Java compatibles con la herramienta XMLSec  aquí.

wget -O – https://apt.corretto.aws/corretto.key | sudo gpg –dearmor -o /usr/share/keyrings/corretto-keyring.gpg && \ echo “deb [signed-by=/usr/share/keyrings/corretto-keyring.gpg] https://apt.corretto.aws stable main” | sudo tee /etc/apt/sources.list.d/corretto.list

Paso 2: Instalar el paquete Java

sudo apt-get update; sudo apt-get install -y java-17-amazon-corretto-jdk 

Paso 3: Compruebe si Java se ha instalado correctamente o no 

java -version

Comprobar la versión de Java

Agregar Java a la variable de entorno 

Paso 1: Establezca Amazon Corretto 17 Java como la versión activa 

alternativas de actualización –config java

establecer correcto17 java

Paso 2: Agregue la variable “JAVA_HOME” en el archivo ~/.bashrc 

echo “exportar JAVA_HOME=/usr/lib/jvm/java-17-amazon-corretto” >> ~/.bashrc

Agregar variable de inicio de Java

Paso 3: Verifique el archivo ~/.bashrc 

cola -3 ~/.bashrc 

Comprobar el archivo BashRc

Paso 4: Recargar las variables de entorno 

fuente ~ / .bashrc 

Recargar variables de entorno

Paso 5: Verificar el valor de la variable JAVA_HOME 

echo $ JAVA_HOME 

Comprobar la variable de inicio de Java

Firma 

Paso 1: Cambie el directorio de trabajo de la terminal a la carpeta que contiene su archivo “ec_pkcs11client.ini”.

Cambiar directorio de trabajo

Paso 2: Ejecute el comando de firma desde este directorio. 

–sign –pkcs11Config –keyAlias –keyPassword NINGUNO –inFile –archivo de salida 

A continuación se proporciona un comando de muestra:

../xmlsectool-3.0.0-bin/xmlsectool-3.0.0/xmlsectool.sh –sign –pkcs11Config pkcs11properties.cfg –keyAlias ​​DemoCertificate –keyPassword NINGUNO –inFile ../xmlSample.xml –outFile ../out-xmlSample.xml 

Verificación 

Ejecute el comando de verificación

–verificarFirma –pkcs11Config –keyAlias –keyPassword NINGUNO –inFile 

A continuación se proporciona un comando de muestra: 

../xmlsectool-3.0.0-bin/xmlsectool-3.0.0/xmlsectool.sh –verifySignature –pkcs11Config pkcs11properties.cfg –keyAlias ​​gpg2 –keyPassword NINGUNO –inFile ../out-sample.xml 

Solución de firma de código empresarial

Obtenga una solución para todas sus necesidades criptográficas de firma de código de software con nuestra solución de firma de código.

Configuración del contenedor PKCS#11 en MacOS

Requisitos previos 

Antes de analizar el proceso de firma XML mediante la herramienta XMLSec y nuestro contenedor PKCS#11 en una máquina MacOS, asegúrese de que lo siguiente esté listo: 

  • Versión de macOS: Versión MacOS 13 (Ventura) o posterior (el entorno probado es MacOS 15.1 Sequoia)  
  • Dependencias: Instalar liblog4cxx y curl.  

Para instalar las dependencias, ejecute los siguientes comandos 

  • brew install log4cxx 
  • brew install curl 

Instalación del contenedor PKCS#11 de EC

Paso 1: Ir a CE Versión 3.01 de CodeSign SecureHerramientas de firma sección y descargue el Wrapper PKCS#11 para Mac.  

Descargar PKCS#11 para Mac

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. 

Generar certificados P12

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

Editar archivo de configuración

Instalación de la herramienta XMLSec

Paso 1: Descargue la última versión de la herramienta XMLSec (xmlsectool-3.0.0-bin.zip) usando este .  

Instalar la herramienta XMLsec

Necesitará este archivo de shell para realizar la firma XML

Archivo XMLsectool.sh después de la descarga

Descargue e instale Java en su máquina MacOS.

Paso 1: Descargue Amazon Corretto 17 Java (Puede consultar otras versiones de Java compatibles con la herramienta XMLSec aquí ). 

Puede usar este este enlace para descargar el archivo .pkg para el entorno MacOS 

Paso 2: Instalar el paquete Java 

Comience la instalación utilizando el archivo descargado. 

Instalar XMLsectool

Paso 3: Compruebe si Java se ha instalado correctamente o no 

java -version 

Comprobar la versión de Java

Agregar Java a la variable de entorno 

Paso 1: Obtenga la ruta de instalación completa de Amazon Corretto 17 Java 

/usr/libexec/inicio_java -verboso 

Obtenga la ruta de instalación completa para Corretto 17

Paso 2: Agregue la variable “JAVA_HOME” en el archivo ~/.zshrc 

echo 'export JAVA_HOME="/Library/Java/JavaVirtualMachines/amazon-corretto-17.jdk/Contents/Home"' >> ~/.zshrc 

Agregar variable de inicio de Java

Paso 3: Recargar las variables de entorno 

fuente ~/.zshrc 

Recargar variable de entorno

Paso 4: Verificar el valor de la variable JAVA_HOME 

echo $ JAVA_HOME 

Comprobar la variable de inicio de Java

Firma

Paso 1: Cambie el directorio de trabajo de la terminal a la carpeta que contiene su archivo “ec_pkcs11client.ini”. 

Cambiar el directorio de trabajo

Paso 2: Ejecute el comando de firma desde este directorio. 

–sign –pkcs11Config –keyAlias –keyPassword NINGUNO –inFile –archivo de salida 

A continuación se proporciona un comando de muestra: 

../xmlsectool-3.0.0/xmlsectool.sh –sign –pkcs11Config pkcs11properties.cfg –keyAlias ​​DemoCertificate –keyPassword NINGUNO –inFile ../xmlSample.xml –outFile ../SignedSample.xml 

Verificación 

Ejecute el comando de verificación

–verificarFirma –pkcs11Config –keyAlias –keyPassword NINGUNO –inFile 

A continuación se proporciona un comando de muestra: 

../xmlsectool-3.0.0/xmlsectool.sh –verifySignature –pkcs11Config pkcs11properties.cfg –keyAlias ​​gpg2 –keyPassword NINGUNO –inFile ../Signedsample.xml 

Solución de firma de código empresarial

Obtenga una solución para todas sus necesidades criptográficas de firma de código de software con nuestra solución de firma de código.

Conclusión 

Con el aumento de los datos no estructurados, los documentos XML firma Es la necesidad del momento. La integración perfecta de nuestro Wrapper PKCS#11 y la herramienta XMLSec ofrece una solución flexible y eficiente para la firma de documentos XML.  

Utilizando Encryption Consulting CodeSign seguro Con esta solución, puede generar y aumentar la confianza de sus clientes. Ofrece funciones como hash del lado del cliente, acceso basado en roles y gestión de aplicaciones para proteger sus datos. Le permite integrar diversas herramientas DevOps. CI / CD Canalizaciones para firma de código automatizada y sin contacto.