GNU/Linux >> Tutoriels Linux >  >> Ubuntu

Installez pyxmlsec - Python XML Security Library sur Ubuntu

Le cryptage XML et la signature numérique sont utilisés pour la sécurité des documents XML. Le cryptage XML et l'implémentation de la signature numérique existent pour différents langages de programmation. Cependant, implémentation du cryptage XML et de la signature numérique en C la langue est très complète. Il prend en charge de nombreuses fonctions et est basé sur la bibliothèque LibXML2. PyXMLSec est l'implémentation Python pour les fonctionnalités de sécurité XML, mais elle ne prend pas encore en charge toutes les fonctions. La version actuelle de la bibliothèque prend en charge les normes de sécurité XML suivantes en Python.

a) Signature et chiffrement XML
b) XML canonique

Prérequis pour la bibliothèque PyXMLsec

La bibliothèque PyXMLSec nécessite les packages suivants pour l'installation.

1) Python 2.2 ou supérieur

2) LibXML

3) Bibliothèque de sécurité XML

Python est déjà installé sur la distribution Ubuntu. LibXML peut être installé en tapant la commande suivante dans le terminal qui est montré dans la figure

$sudo apt-get install python-libxml2

La bibliothèque de sécurité XML peut être installée à l'aide de la commande suivante dans le terminal. L'installation de la bibliothèque XML est illustrée dans l'instantané suivant.

 $sudo apt-get install libxmlsec1-dev

L'installation de la bibliothèque de développement C est illustrée dans la figure suivante.

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

L'implémentation Python de la sécurité XML est installée à l'aide du terminal ci-dessous, également illustré dans la figure.

$sudo apt-get install xmlsec1

Après l'installation des dépendances, téléchargez la version récente de PyXMLSec (0.3.1) en utilisant la commande suivante dans le répertoire Téléchargements. Figure suivante montrant le processus de téléchargement.

 $cd Downloads

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

Nous devons compiler PyXMLSec à partir du package source car les packages deb (package binaire) ne sont pas disponibles. Extraire le pyxmlsec-0.3.1.tar.gz téléchargé package en utilisant la commande suivante dans le terminal.

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

Allez dans le répertoire extrait en utilisant la commande cd qui est montrée dans la figure.

$cd pyxmlsec0.13.1

Une fois dans le répertoire racine du package, exécutez sudo setup.py dans le terminal pour l'installation de PyxmlSec. Le processus d'installation de PyXMLSec est illustré dans la figure suivante. Sélectionnez l'option 1 pour la construction de PyXMLsec à partir de la source. La bibliothèque PyXMLsec prend en charge les moteurs de chiffrement OpenSSL, NSS et GnuTLS. OpenSSL est un moteur de chiffrement bien connu qui est normalement installé dans presque toutes les distributions Linux.

 $sudo ./setup.py

Une fois l'étape de construction terminée, exécutez à nouveau la même commande et sélectionnez l'option 2 pour l'installation de la bibliothèque indiquée ci-dessous.

Exemple

Quelques exemples sont disponibles sur le site Web de PyXMLsec dans la section documentation. Nous avons sélectionné des exemples de signature XML (sign3.py) et de vérification (verify3.py) à des fins de démonstration. L'exemple de signature nécessite le fichier d'entrée (dans notre cas document.xml) au format XML, les clés et les certificats au format PEM. Donc, tout d'abord, une paire de clés et un certificat auto-signé sont requis dans le processus de signature. OpenSSL est un utilitaire largement utilisé pour la paire de clés RSA et la génération de certificats. La commande suivante génère une paire de clés RSA d'une taille de 2048 bits et la stocke dans le fichier "key.pem". Il stocke également le certificat X509 dans le fichier cer.pem.

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

Signature XML

Après la génération des clés et du certificat, l'étape suivante consiste à signer le fichier d'entrée. L'exemple de signature XML prend les arguments au format suivant de l'utilisateur.

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

Dans notre cas, le fichier d'entrée pour la signature XML est document.xml et la signature de fichier résultante stockée dans output.xml fichier qui est montré ci-dessous.

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

Vérification XML

Dans cette étape, l'exemple de vérification XML utilise le fichier output.xml avec des certificats pour la vérification des signatures XML. L'exemple de vérification XML prend les arguments au format suivant de l'utilisateur.

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

Dans notre cas, le fichier d'entrée pour la vérification XML est output.xml et le vérifie qui est montré ci-dessous.

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

Conclusion

J'espère que vous avez apprécié cet article. Pour ajouter, PyXMLsec est une implémentation python de la sécurité XML qui fournit un chiffrement et une signature numérique pour les documents XML. Il prend en charge les moteurs de cryptage open source tels que OpenSSL, GnuTLS et NSS pour les algorithmes symétriques et asymétriques.


Ubuntu
  1. Comment installer Python 3 sur Ubuntu 18.04 ou 20.04

  2. Comment installer Django sur Ubuntu 18.04

  3. Comment installer le framework d'apprentissage automatique TensorFlow sur Ubuntu 20.04

  4. Comment installer Python 3.9 sur Ubuntu 18.04

  5. Comment installer Python 3.2 dans Ubuntu 13.04 ?

Installez Python 3.9 sur Ubuntu 20.04 LTS

Comment installer Python 3.11 sur Ubuntu 20.04

Comment installer Python 3.6 sur Ubuntu 16.04, Ubuntu 16.10, 17.04

Comment installer Python sur Ubuntu 20.04

Comment installer Python sur 3.9 Ubuntu 20.04

Comment installer Python sur Ubuntu 22.04