Introduction pratique à GNU Privacy Guard sur Windows

  • Technologie : OpenPGP, GnuPG
  • Thème : Cryptographie, Sécurité
  • Plate-forme abordée : Windows
  • Auteur : André Loconte
  • Licence : Creative Commons BY-NC-SA
  • Publication : 16/4/2009
  • Mise à jour : 12/12/2009

Partagez cet article : Twitter, Facebook, Del.icio.us, Stumble Upon, Reddit

En bref

Le logiciel GNU Privacy Guard (GnuPG ou GPG) permet de transmettre des messages chiffrés et/ou signés afin de garantir la confidentialité d'un document dans le premier cas, son authenticité dans le second. GPG est disponible sur de nombreuses plateformes.

Cet article à pour but de détailler l'utilisation de GPG sous Windows et tend ainsi à combler l'absence quasi totale de documentation en français à ce sujet.

Je partirai du principe que vous n'utiliserez pas de surcouche graphique telle que WinPT ou GPGShell. Cela vous permettra d'une part, d'avoir une connaissance de fond et non de forme, d'autre part, de toujours bénéficier d'une version à jour de GPG (le délai est parfois long avant que les éditeurs de GUIs mettent leur logiciel à jour).

Je vous expliquerai les commandes essentielles de GnuPG afin de vous initier au principe de fonctionnement et à la syntaxe de ces dernières. Vous n'aurez dès lors aucune peine à vous y retrouver dans la liste complète des commandes reprises dans la documentation officielle.

1. Historique

À l'origine de GnuPG, il y a PGP (Pretty Good Privacy). PGP est un logiciel de cryptographie hybride développé par Philip Zimmermann et rendu publique en 1991. La diffusion de son programme lui vaudra de s'attirer les foudres du gouvernement américain voyant d'un mauvais œil un logiciel de cryptographie d'une telle puissance circuler librement.

Persuadé de l'utilité de PGP pour la communauté et de la nécessité d'un standard portant sur ce nouvel outil, Zimmermann proposa à l'IETF (organisme chargé de la promotion des standards liés au Web) la création d'un standard nommé OpenPGP.

Le standard fût accepté, OpenPGP était né.

Le rôle d'un standard est de déterminer des normes, des règles à suivre pour garantir une cohérence dans l'évolution d'une technologie. Un standard permet également à chacun de pouvoir développer son propre programme compatible avec cette technologie sans contrepartie financière.

C'est ainsi que coexistent plusieurs logiciels basés sur OpenPGP dont les principaux sont :

  • PGP : logiciel payant (car utilisant des algorithmes propriétaires comme AES) édité par la PGP Corporation, Philip Zimmermann y exerce la fonction de de conseiller spécial et consultant.
  • GnuPG : logiciel gratuit édité par la Free Software Foundation (trad. "Fondation pour le logiciel libre").

If privacy is outlawed, only outlaws will have privacy
Si l'intimité est mise hors la loi, seuls les hors-la-loi auront une intimité.
- P. Zimmermann

2. Télécharger et installer GnuPG

2.1. Télécharger GnuPG

Gnu Private Guard est disponible gratuitement sur le site officiel http://www.gnupg.org/index.fr.html.

Rendez-vous dans la rubrique "Téléchargement", sous le titre "Binaries" trouvez le lien relatif à Windows (version compilée pour MS-Windows).

ou

Télécharez directement GnuPG 1.4.9
Format : Windows - EXE
Poids : 2 Mo

2.2. Installer GnuPG

Le fichier que vous avez obtenu est une archive auto-extractible, cette partie de l'installation est on ne peut plus simple, lancez l'exécutable et suivez les instructions.

La partie la plus délicate de l'installation va consister à faire en sorte que Windows trouve le programme quand vous taperez une commande dans la console. Cette opération n'est pas particulièrement complexe mais requerra toute votre attention afin de prévenir une instabilité de votre système.

C:\Program Files\GNU\GnuPG est le répertoire d'installation par défaut de GPG, si vous avez choisi de personnaliser le répertoire d'installation, prenez soin de spécifier le bon répertoire. Par exemple, sur le screenshot ci-desous j'ai personnalisé le répertoire d'installation et je n'ai donc pas entré C:\Program Files\GNU\GnuPG mais C:\Program Files\GnuPG.

Installation détaillée de GnuPG pour Windows NT/2000/XP

Screenshot Windows XP
Screenshot Windows XP

Faites "Clic droit" sur le "Poste de travail", sélectionnez "Propriétés";
(1) Cliquez sur l'onglet "Avancé", (2) cliquez sur "Variables d'environnement";
Dans la liste déroulante, (3) sélectionnez "Path", (4) cliquez sur "Modifier";
Dans le champ "Valeur de la variable", (5) à la fin de la ligne, ajoutez le code suivant :

;C:\Program Files\GNU\GnuPG

Ok. Ok. Ok.

Dernière étape, redémarrez votre machine.

Installation détaillée de GnuPG pour Windows Vista

Screenshot Windows Vista
Screenshot Windows Vista

Cliquez sur "Démarrer", faites "Clic droit" sur "Ordinateur", sélectionnez "Propriétés";
(1) Dans la colone de gauche, sélectionnez "Paramètres système avancés";
(2) Cliquez sur "Variables d'environnement";
Dans la liste déroulante, (3) sélectionnez "Path", (4) cliquez sur "Modifier";
Dans le champ "Valeur de la variable", (5) à la fin de la ligne, ajoutez le code suivant :

;C:\Program Files\GNU\GnuPG

Ok. Ok. Ok.

Rendez-vous dans le répertoire dans lequel vous avez installez GnuPG (par défaut C:\Program Files\GNU\GnuPG);
Faites "Clic droit" sur le fichier "gpg.exe", sélectionnez "Propriétés";
Cliquez sur l'onglet "Compatibilité", cochez la case "Exécuter ce programme en mode de compatibilité pour :";
Dans la liste, sélectionnez "Windows XP (Service Pack 2)".

Ok.

Dernière étape, redémarrez votre machine.

2.3. Vérifier l'installation

Lancer l'invite de commande : faites "Démarrer > Tous les programmes > Accessoires > Invite de commande" ou pour les plus geek faites : raccourci clavier "Windows + R", entrez cmd dans la boîte de dialogue, Ok.

Dans l'invite de commande entrez :

gpg --version

Si tout s'est bien déroulé, vous devriez avoir quelque chose comme ceci :

gpg (GnuPG) 1.4.9
Copyright (C) 2008 Free Software Foundation, Inc.
Licence GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
Ther is NO WARRANTY, to the extent permitted by law.

Home: C:/Documents and Settings/AndreL/Application Data/gnupg
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512
Compression: Uncompressed, ZIP, ZLIB, BZIP2

3. Créer votre paire de clés personnelle

Le principe de fonctionnement de PGP repose sur l'utilisation de deux clés complémentaires, c'est la raison pour laquelle on parle de "paire de clés".

3.1. Rôle de la paire de clés

Action Clé publique Clé privée
Diffusion de la clé oui non
Signer un document non oui
Vérifier une signature oui non
Crypter un document oui non
Décrypter un document non oui

Vous l'aurez compris, clé privée et clé publique sont indissociables de part leur complémentarité.

3.2. Au sujet de la sécurité de votre clé privée

La clé publique étant par définition visible et accessible à tous, c'est à la clé privée que nous allons accorder une attention particulière.
La clé privée est l'élement critique du système de sécurisation PGP, si une personne mal intentionnée venait à mettre la main sur la votre, il lui serait alors enfantin de substituer votre identité en signant des documents en votre nom ou, de décrypter vos documents sensibles.

C'est la raison pour laquelle, lorsque nous créerons notre paire de clés, GnuPG nous proposera de sécuriser notre clé privée à l'aide d'une "passphrase" (mot de passe). Bien que l'attribution de cette "passphrase" ne soit pas obligatoire, elle est vivement conseillée.

Certains vous conseilleront d'utiliser des générateurs de mot de passe afin d'obtenir une "passphrase" suffisamment robuste, pour ma part je préfère définir des critères de robustesse. Les conseils suivants sont valables tant pour GPG que pour les différents services auxquels vous souscrivez sur Internet en général.

Bonnes pratiques pour la création d'un mot de passe

Un mot de passe est robuste quand (cette liste n'est pas exhaustive mais constitue une base indispensable) :

  • il est composé de plus de 10 caractères
  • il comporte des majuscules et des minuscules
  • il comporte des chiffres
  • il comporte des caractères spéciaux
  • il n'est mentionné nulle part (votre tête est le meilleur des coffres-forts)
  • il n'est pas une suite logique d'informations (date de naissance, nom, animal de compagnie, ..)
  • il n'est pas présent dans un dictionnaire (quelle que soit la langue)
  • il n'est pas lié à la disposition du clavier (azerty, 0123456, poiuy,..)
  • il est spécifique à un service
  • ..

Quelques exemples de bons mots de passe :

H%`g_J*74>|N
[m;(''MF@:&d3A4J
H.A7g*('!|'A

Le but est que vous construisez un moyen mnémotechnique personnel vous permettant de mémoriser des mots de passe rendus complexes par l'application des règles énumérées ci-dessus.

À titre indicatif, voici les durées nécessaires au cassage d'un mot de passe d'après le nombre de caractère différent utilisable (dans notre cas 96) et utilisé (je vous en conseille 10, les prévisions de l'auteur s'arrêtent à 8) : étude concernant la robustesse des mots de passe réalisée par Ivan Lucas.

3.3 Générer votre paire de clés

Lancer l'invite de commande.
Entrez :

gpg --gen-key

GPG vous retourne un menu permettant de déterminer le type de paire de clés que vous souhaitez générer.
Choisissez la valeur par défaut "DSA and ElGamal".

Note de service
Cet article n'est pas terminé, il sera complété dès que j'aurai à nouveau quelques minutes à consacrer à sa rédaction ;)

Tweet ! Tweet !

↑ aller au sommaire