Table of Contents

Signer numériquement ses documents OpenOffice.org 2.0

openoffice crypto

par julien - dec. 2005

Tout content que j'étais de découvrir la nouvelle version d'Open Office, je me suis mis a fouinner dedans. Et en bon fan de sécu, quelle fût ma surprise en voyant cette fonctionnalité du menu “Fichier”:

Forcément, ça intrigue !!! Alors je me suis mis en quête d'un moyen de faire fonctionner la signature numérique.

Premiérement, il me fallait un certificat. Jusque là, et comme il est expliqué dans le hack sur Kopete/GnuPG, j'utilisais une paire de clé RSA. Mais OOo2 veux un véritable certificat x.509 pour fonctionner. Je ne vais pas rentrer dans les détails de fonctionnement des certificats, pour plus d'infos voir le dossier: SSL & les PKI (dans la section “Dossiers”)

Je l'ai donc généré via l'autorité de Resgate Security Department (http://www.cacert.org/ en fournit gratuitement aussi). En possession de mon certificat au format PEM et de ma clé privée, j'ai cherché à les importer dans OOo2.

Créer un fichier au format PKCS#12

Les logiciels de gestion des certificats (mozilla, firefox, le gestionnaire de KDE, kmail, etc…) ont besoin de la paire “clé privée/certificat public signé” pour fonctionner. C'est logique, si vous importer votre certificat public mais que vous n'importez pas votre clé privée, le logiciel ne peut rien déchiffrer.

PKCS#12 est un format créé pour répondre aux besoin de stocker dans un même fichier un certificat et sa clé privée, le tout protégé par une clé d'enveloppe (ca fait donc 2 clés, une pour l'enveloppe et une pour la clé privée). Donc, en possession de mes deux fichiers “switcher.key” et “switcher.pem”, j'ai généré une enveloppe PKCS#12 comme suis:

switcher@zerhuel:~$ openssl pkcs12 -export -in switcher.pem -inkey switcher.key -certfile switcher.pem -name "Switcher" -caname "Resgate Security Department" -out switcher-cert.p12
Enter pass phrase for switcher-key: ********
Enter Export Password: ********
Verifying - Enter Export Password: *******
switcher@zerhuel:~$ ls
switcher.pem    switcher.key   switcher-cert.p12

Mettre a disposition de OOo2

En toute logique, je me suis dit que j'aller pouvoir importer ce certificat dans le menu d'OOo2… QUE NENI !!! OOo2 n'a pas de base de données de gestion des certificats ! En fait, il recherche dans les bases d'autres logiciels… Illogique, certes, mais au moins ca évite d'avoir 40.000 bdd qui stocke la clé privée du certificat. Chez moi, ca en fait 2: celle de KDE et celle de Mozilla.

OOo2 va justement chercher dans la base de données de mozilla si un certificat est présent. Si il n'y en a pas, il cherche dans celle de Thunderbird (mais la j'ai pas testé). Par contre, il ne vérifie pas la bdd de KDE… dommage ! Bref, importez votre certificat dans Mozilla ou Thunderbird (bug de OOo2, ca ne marche pas avec firefox…) comme suis:

fenetre 1: Editions > Preferences > Privacy & Security > Certificates > Manage Certificates… fenêtre 2: Import > “aller chercher le certificat” > “taper le mot de passe de securité mozilla” > “taper le mot de passe de l'enveloppe PKCS#12”

On valide tout ca et on sort.

Importer dans OOo2

Maintenant, quand on vas dans le menu “Signatures Numériques” de OOo2, puis dans la section “Ajouter”, le système demande automatiquement un mot de passe.

Saisissez le mot de passe de votre enveloppe PKCS#12 et vous verrez votre certificat apparaitre dans la liste de ceux disponibles. A partir de là, c'est tout bon. Vous pouvez afficher les détails de votre certificat, naviguer dedans et signer vos fichiers avec.

Un petit test, sélectionnez votre certificat, validez et fermez le fichier. Puis, rouvrez le et… MIRACLE ! Ca marche :D

Rien d'autre à ajouter, peut être que dans les prochaines versions de OOo ils corrigeront le bug avec firefox. On peut même espérer une BDD de gestion des certificats dédiée un jour…

~~DISCUSSION~~