LINUX

Instalar pyxmlsec – Biblioteca de seguridad XML de Python en Ubuntu

El cifrado XML y la firma digital se utilizan para la seguridad de los documentos XML. Existe implementación de cifrado XML y firma digital para diferentes lenguajes de programación. Sin embargo, la implementación del cifrado XML y la firma digital en C el lenguaje es muy completo. Es compatible con muchas funciones y se basa en la biblioteca LibXML2. PyXMLSec es la implementación de Python para las características de seguridad XML; sin embargo, todavía no admite todas las funciones. La versión actual de la biblioteca admite los siguientes estándares de seguridad XML en Python.

a) Firma XML y cifrado
b) XML canónico

Requisito previo para la biblioteca PyXMLsec

La biblioteca PyXMLSec requiere los siguientes paquetes para la instalación.

1) Python 2.2 o superior

2) LibXML

3) Biblioteca de seguridad XML

Python ya está instalado en la distribución de Ubuntu. LibXML se puede instalar escribiendo el siguiente comando en el terminal que se muestra en la Figura

$sudo apt-get install python-libxml2

Biblioteca

La biblioteca de seguridad XML se puede instalar usando el siguiente comando en la terminal. La instalación de la biblioteca XML se muestra en la siguiente instantánea.

 $sudo apt-get install libxmlsec1-dev

Paquete de desarrolloLa instalación de la biblioteca de desarrollo C se muestra en la siguiente figura.

$sudo apt-get install libxml-security-c-dev

Biblioteca XML de CLa implementación de Python de seguridad XML se instala utilizando el terminal que se muestra a continuación, que también se muestra en la figura.

$sudo apt-get install xmlsec1

biblioteca de seguridad xml

Después de la instalación de las dependencias, descargue la versión reciente de PyXMLSec (0.3.1) usando el siguiente comando en el directorio de Descargas. Figura siguiente que muestra el proceso de descarga.

 $cd Downloads

$sudo wget labs.libre-entreprise.org/frs/download.php/897/pyxmlsec-0.3.1.tar.gz

Descarga de la biblioteca PyXMLsecTenemos que compilar PyXMLSec desde el paquete fuente porque los paquetes deb (paquete binario) no están disponibles. Extrae el descargado pyxmlsec-0.3.1.tar.gz paquete usando el siguiente comando en la terminal.

$ sudo tar -xvzf pyxmlsec-0.3.1.tar.gz

Comando de alquitrán para extracciónVaya dentro del directorio extraído usando el comando cd que se muestra en la figura.

$cd pyxmlsec0.13.1

pyxmlsecUna vez dentro del directorio raíz del paquete, ejecute sudo setup.py en el terminal para la instalación de PyxmlSec. El proceso de instalación de PyXMLSec se muestra en la siguiente figura. Seleccione la opción 1 para construir PyXMLsec desde la fuente. La biblioteca PyXMLsec admite motores de cifrado OpenSSL, NSS y GnuTLS. OpenSSL es un motor de cifrado muy conocido que normalmente se instala en casi todas las distribuciones de Linux.

 $sudo ./setup.py

Construcción de PyXMLsec

Después de completar el paso de compilación, ejecute nuevamente el mismo comando y seleccione la opción 2 para la instalación de la biblioteca que se muestra a continuación.

Instalación de PyXMLsec

Ejemplo

Hay pocos ejemplos disponibles en el Sitio web de PyXMLsec en la sección de documentación. Hemos seleccionado ejemplos de firma XML (sign3.py) y verificación (verify3.py) para fines de demostración. El ejemplo de firma requiere el archivo de entrada (en nuestro caso document.xml) en formato XML, claves y certificados en formato PEM. Entonces, en primer lugar, se requiere un par de claves y un certificado autofirmado en el proceso de firma. OpenSSL es una utilidad ampliamente utilizada para la generación de certificados y pares de claves RSA. El siguiente comando genera un par de claves RSA con un tamaño de 2048 bits y se almacena en el archivo «key.pem». También almacena el certificado X509 en el archivo cer.pem.

#openssl req -x509 -newkey rsa:2048 -keyout key.pem -out cert.pem -days 365

Generación de claves y certificados

Firma XML

Después de la generación de claves y certificado, el siguiente paso es firmar el archivo de entrada. El ejemplo de firma XML toma argumentos en el siguiente formato del usuario.

#./sign.py <xml-doc> <key-file> <cert-file>

En nuestro caso, el archivo de entrada para la firma XML es document.xml y la firma del archivo resultante almacenada en output.xml archivo que se muestra a continuación.

#./sign.py document.xml key.pem cert.pem > output.xml

proceso de firma de la biblioteca PyXMLsec

Verificación XML

En este paso, el ejemplo de verificación XML toma el archivo output.xml con certificados para la verificación de firmas XML. El ejemplo de verificación XML toma argumentos en el siguiente formato del usuario.

#./verify.py <signed-file> <trusted-cert-pem-file1> [<trusted-cert-pem-file2> [...]]

En nuestro caso, el archivo de entrada para la verificación XML es output.xml y lo verifica que se muestra a continuación.

#./verify.py output.xml cert.pem

Verificación de PyXMLsec

Conclusión

Espero que hayas disfrutado de este artículo. Para agregar, PyXMLsec es una implementación de Python de seguridad XML que proporciona cifrado y firma digital para documentos XML. Es compatible con motores de cifrado de código abierto como OpenSSL, GnuTLS y NSS para algoritmos simétricos y asimétricos.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar