SSIS Encryption PGP

 

Dans le cadre d’un projet de publication, d’intégration et de réconciliation de transaction je suis intervenu sur la mise en place d’un système d’encryption de fichier XML.

L’environnement dispose de SSIS+ 1.6 de la société Cozyroc. L’outil offre une bibliothèque de tâches SSIS permettant entre autres la simplification des taches suivantes :

  • Compression et décompression : Zip, GZip, bzip2, Unix, tar
  • Transfert de fichiers via le protocole SFTP
  • Envoi d’email avancé (SMTP, IMAP, POP3, Exchange)
  • Support de Microsoft Excel en 64 bits
  • Chiffrement à clé publique privée (OpenPGP), le sujet de l’article 😉

Voir la liste complète : http://www.cozyroc.com/products

 

Open PGP

Le format OpenPGP est le standard de cryptographie issu de PGP (Pretty Good Privacy), créé par Phil Zimmermann en 1991.

Lorsque vous envoyez un document crypté, le destinataire ne connaît en général pas le mot de passe pour le décrypter. Si vous lui envoyez le mot de passe, celui-ci peut être intercepté et votre cryptage devient inutile.

PGP génère une clé publique qui permet à vos correspondants de crypter des messages que vous seul (avec votre clé privée) pourrez décrypter.

public_key_encryption

L’histoire de PGP est intéressante : http://openpgp.vie-privee.org/histoire.htm

 

WinPT

Ce logiciel offre une interface graphique et un gestionnaire de clé pour GnuPG, l’alternative libre à PGP.

Télécharger

Après l’avoir installé, vous devez créer une nouvelle clé :

WinPT_Key

A la fin de la génération, enregistrer pubring.gpg (la clé publique) et secring.gpg (la clé privée).

 

SSIS OpenPGP Task

Nous avons les clés publique et privée nous pouvons désormais encrypter puis décrypter des fichiers depuis SSIS !

Vérifier la présence de la tache OpenPGP dans les taches de flux de contrôle, si elle n’est pas présente, ajoutez-la:

OpenPGP Task

La tache peut effectuer les actions suivantes :

  • Encrypter un fichier
  • Décrypter un fichier
  • Crée une signature de fichier
  • Vérifer une signature de fichier

Le paramétrage de la tache est intuitif :

CozyRoc_OpenPGP

Il est préférable de rendre les paramètres variables, pas comme dans mon exemple 😉

Pour l’encryption, la clé (cryptée) de la Public Key est à spécifier. Pour la retrouver dans WinPT : Gestionnaire de clés, Edit, Sub Key :
WinPT_subkey

Le paramétrage de la décryption est similaire, il vous sera en plus demandé le mot de passe de la clé privée.

Vous pouvez télécharger deux exemples d’utilisation réalisés par la société Cozyroc : Stream sans stockage et Encryption en mémoire.

 

Performances

Afin d’analyser les performances et les éventuelles dégradations sur le traitement des transactions dues a l’encryption et la décryption, j’ai effectué quelque testes :

OpenPGP_Analysis

Les résultats sur 6 fichiers de différentes tailles :
OpenPGP_Test

 

Comments are closed.