GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Instale pyxmlsec - Biblioteca de seguridad Python XML en Ubuntu

El cifrado XML y la firma digital se utilizan para la seguridad de los documentos XML. El cifrado XML y la implementación de la firma digital existen 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. Admite muchas funciones y se basa en la biblioteca LibXML2. PyXMLSec es la implementación de Python para funciones de seguridad XML; sin embargo, aún no es compatible con todas las funciones. La versión actual de la biblioteca es compatible con los siguientes estándares de seguridad XML en Python.

a) Firma y cifrado XML
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 la terminal que se muestra en la Figura

$sudo apt-get install python-libxml2

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

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

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

La implementación de Python de la 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

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. La siguiente figura muestra el proceso de descarga.

 $cd Downloads

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

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

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

Vaya al directorio extraído usando el comando cd que se muestra en la figura.

$cd pyxmlsec0.13.1

Una vez dentro del directorio raíz del paquete, ejecute sudo setup.py en la 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 es compatible con los motores criptográficos OpenSSL, NSS y GnuTLS. OpenSSL es un motor criptográfico bien conocido que normalmente se instala en casi todas las distribuciones de Linux.

 $sudo ./setup.py

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

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 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

Firma XML

Después de la generación de claves y certificados, 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

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

Conclusión

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


Ubuntu
  1. Cómo instalar Python 3 en Ubuntu 18.04 o 20.04

  2. Cómo instalar Django en Ubuntu 18.04

  3. Cómo instalar el marco de aprendizaje automático TensorFlow en Ubuntu 20.04

  4. Cómo instalar Python 3.9 en Ubuntu 18.04

  5. ¿Cómo instalar Python 3.2 en Ubuntu 13.04?

Instale Python 3.9 en Ubuntu 20.04 LTS

Cómo instalar Python 3.11 en Ubuntu 20.04

Cómo instalar Python 3.6 en Ubuntu 16.04, Ubuntu 16.10, 17.04

Cómo instalar Python en Ubuntu 20.04

Cómo instalar Python en 3.9 Ubuntu 20.04

Cómo instalar Python en Ubuntu 22.04