GnuPrivacyGuard est l'équivalent
libre de PGP (peut-on encore parler d'équivalent lorsque l'on
connait les possibilité de celui-ci par rapport à
PGP?). C'est un cryptosystème utilisant des algorithmes de
cryptographie à clé assymétriques (DSA,RSA et
elGamal) pour chiffrer du contenu.
L'emploi le plus commun de ce type
d'outil réside dans les communications par messagerie, ce
genre de protocoles n'étant pas axés sur la
sécurisation des échanges (POP, IMAP, SMTP...).
En premier lieu, la
démocratisation
de l'utilisation des mails entraîne généralement
la question suivante : Quel est l'intérêt de signer voir de chiffrer
ses mails ou ses données? A cela, je répondrai que,
exception faite des cartes postales de vacances (qui
généralement
ne contiennent qu'un nombre limité de phrases types :), nous
n'envoyons jamais du courrier sans le mettre dans une enveloppe. Il
est légitime de se dire que seul le destinataire de notre
lettre a le droit de lire son contenu et aucun des intervenants de
LaPoste. Il en est de même pour la messagerie
électronique.
Pourquoi devrait-on laisser nos messages être lisibles par tout
le monde. Lorsqu'un mail est envoyé de bout en bout d'un
réseau tel qu'Internet, tout les intermédiaire (serveur
SMTP généralement) relayent votre message écris
en clair. Une fois arrivé chez votre provider, votre mail
attend gentillement sur leur serveur...en clair. En extrapolant,
c'est un peu comme si votre bureau de poste avait toutes les lettres
de votre commune ouvertes dans ses bureaux, avant la livraison.
GPG ne sert pas uniquement a chiffrer
un mail. Il vous est possible également de prouver que le
rédacteur est bien celui qu'il prétend être. Nous
venons donc d'aborder 2 notions essentielles :
Comme évoqué
précédemment, GPG (comme OpenSSL, OpenSSH et nombre de protocoles) repose sur l'utilisation
d'algorithme à clé assymétriques. Cette
méthode
apparue en 76, à la suite de recherche par Diffie &
Hellman et fut utilisée pour palier aux problèmes
liés
a l'utilisation de clé symétriques où une seule
et même clé permettait de crypter et de décrypter
de l'information. Bien qu'étant bien plus rapide que
l'utilisation de clé assymétriques (rapport 1 à
1000...), le besoin de divulguer sa clé de chiffrement à
tout les destinataires représentait un réel
problème
de confidentialité.
Schématiquement, l'utilisation
du chiffrement par clé assymétriques se fait comme suit
:
En revanche, l'utilisation de signatures numeriques par clé assymétriques se fait comme suit :
Dans cette partie, nous allons détailler comment générer sa propre paire de clé avec gpg et comment gérer son trousseau personnel.
Pour générer sa paire de clé :
[seb@localhost seb]$ gpg --gen-key gpg (GnuPG) 1.2.1; Copyright (C) 2002 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. gpg: AVERTISSEMENT: l'utilisation de la mémoire n'est pas sûre ! gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations gpg: /home/seb/.gnupg: répertoire créé gpg: nouveau fichier de configuration `/home/seb/.gnupg/gpg.conf' créé gpg: le porte-clés `/home/seb/.gnupg/pubring.gpg` a été créé Sélectionnez le type de clé désiré: (1) DSA et ElGamal (par défaut) (2) DSA (signature seule) (5) RSA (signature seule) Votre choix ? 1
Le type de clé à
utilisé
dépend sensiblement de ce que vous voulez en faire. Sachant
que l'algorithme ElGamal est utilisé dans le mécanisme
de signature d'un message, nous choisissons la première
valeur.
Nous indiquons ensuite la taille nos
clés. La valeur par défaut est bonne. Evitez de choisir
une clé trop grande au risque de perdre beaucoup de temps
pendant le chiffrement.
La paire de clés DSA fera 1024 bits. Préparation à la génération d'une nouvelle paire de clés ELG-E. la taille minimale est 768 bits la taille par défaut est 1024 bits la taille maximale conseillée est 2048 bits Quelle taille de clé désirez-vous ? (1024)
On indique ensuite la période de validité de la clé. Sauf cas particuliers, nous n'avons pas intérêt à faire expirer notre clé.
Spécifiez combien de temps cette clé devrait être valide. 0 = la clé n'expire pas <n> = la clé expire dans n jours <n>w = la clé expire dans n semaines <n>m = la clé expire dans n mois <n>y = la clé expire dans n années La clé est valide pour ? (0)
Ensuite, pour identifier la paire de clé (notemment depuis un logiciel de messagerie), il faut lui associer un nom, un mail et un commentaire. Vous pouvez si vous le désirez posséder plusieurs clé différentes, selon le contexte. Cette identification devient donc nécessaire.
Vous avez sélectionné ce nom d'utilisateur: "Sebastien AUGEREAU (Exemple) <saugerea@etudiant.univ-mlv.fr>" Changer le (N)om, le (C)ommentaire, l'(E)-mail ou (O)K/(Q)uitter ? o Vous avez besoin d'un mot de passe pour protéger votre clé secrète. Entrez le mot de passe: Validez le mot de passe: Un grand nombre d'octets aléatoires doit être généré. Vous devriez faire autre-chose (taper au clavier, déplacer la souris, utiliser les disques) pendant la génération de nombres premiers; cela donne au générateur de nombres aléatoires une meilleure chance d'avoir assez d'entropie. .++++++++++..+++++.+++++.+++++...++++++++++++++++++++.+++++.++++++++++.++++++++++..++++++++++++++++++++.++++++++++++++++++++.++++++++++.+++++.+++++>.++++++++++^^^^ gpg: /home/seb/.gnupg/trustdb.gpg: base de confiance créée les clés publique et secrète ont été créées et signées. clé marquée comme ayant une confiance ultime. pub 1024D/02217E97 2003-11-12 Sebastien AUGEREAU (Exemple) <saugerea@etudiant.univ-mlv.fr> Empreinte de la clé = 6905 5F45 513A 180B 4401 D1D5 F98F 086E 0221 7E97 sub 1024g/B52B2DF4 2003-11-12
Notre paire de clé a
été
générée, elle est directement utilisable depuis
n'importe quel logiciel de messagerie récent (Mozilla
Enigmail, Evolution, Balsa, Outlook...).
Nous avons également
créé
un trousseau de clé (pubring). Dans ce trousseau, nous donc
allons stocker les clés publiques des personnes utilisant ce
système et les signer.
Importer la clé publique d'un ami, collègue ou de toute autre entité revient à pouvoir lui envoyer des données qu'elle sera la seule à pouvoir déchiffrer via sa clé privée.
La gestion du trousseau se fait toujours par l'outil gpg. Si nous admettons que nous avons une clé au format ascii (codée sur 7bits par utilisation de l'argument –armor à l'export) du type :
-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.2.1 (GNU/Linux) mQGiBD+yCbcRBACRxHOlVNQGLFFUtou2zIXRL9hjH9JwkUA5/AHv/lvh1AD/29Z/ Se4aYy2NG2vDEmPkFXP/oo0x0bwvk8ELkKdHwuAS+Il3S9cDQmGoMFhNS6hFhqS8 ... +Y8IbgIhfpfteACfSJWpLFNyw4bUwT1mgN/UzeWTkvMAn2bNuczM4VYsOGjnFfWt KgcQi3TT =4K2+ -----END PGP PUBLIC KEY BLOCK-----
Nous l'ajoutons à notre trousseau comme suit :
gpg –import <nom_du_fichier>
Avec <nom_du_fichier> un fichier ASCCI contenant une clé publique exportée au format ASCII.
[seb@localhost seb]$ gpg --import seb.asc gpg: AVERTISSEMENT: l'utilisation de la mémoire n'est pas sûre ! gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations gpg: clé 02217E97: clé publique "Sebastien AUGEREAU (Exemple) <saugerea@etudiant.univ-mlv.fr>" importée gpg: Quantité totale traitée: 1 gpg: importée:
Pour partager sa clé privée, l'idéal est de l'exporter au format ASCII, c'est à dire d'utiliser un encodage sur 7bits:
[seb@localhost seb]$ gpg –export -armor > seb_pubkey.asc gpg: AVERTISSEMENT: l'utilisation de la mémoire n'est pas sûre ! gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.2.1 (GNU/Linux) mQGiBD+yCbcRBACRxHOlVNQGLFFUtou2zIXRL9hjH9JwkUA5/AHv/lvh1AD/29Z/ Se4aYy2NG2vDEmPkFXP/oo0x0bwvk8ELkKdHwuAS+Il3S9cDQmGoMFhNS6hFhqS8 ... +Y8IbgIhfpfteACfSJWpLFNyw4bUwT1mgN/UzeWTkvMAn2bNuczM4VYsOGjnFfWt KgcQi3TT -----END PGP PUBLIC KEY BLOCK-----
Après avoir abordé
le
thème de la gestion de clé et d'utilisation de son
trousseau, nous allons ici détailler la notion de certificats
de révocation.
Avoir
généré une
paire de clé et l'utiliser est, comme nous venons de le voir,
relativement simple et pratique. On ne s'en passe plus jusqu'au jour
où l'impensable se produit : on perd son trousseau de clé
et ses clés personnelles, ou pire, notre clé
privée
a été compromise. Pour les clé publiques de son
trousseau, ce n'est pas si grave puisqu'un simple réenvoi de
la part de son cercle d'amis permet de les retrouver.
Pour ce qui est de sa clé
publique, ce n'est pas non plus un problème puisque
logiquement, elle a été largement diffusée. En
revanche, pour la clé privée, c'est un autre
problème
puisque la logique veut qu'on soit la seule personne à la
connaître. Et la perdre implique qu'on ne peut plus lire de
mails chiffrés avec notre clé publique.
Heureusement, il existe pour ce
genre
de situation la notion de certificat de révocation.
Pour générer un
certificat de révocation, il suffit d'utiliser la commande :
[seb@localhost seb]$ gpg --gen-revoke saugerea@etudiant.univ-mlv.fr gpg: AVERTISSEMENT: l'utilisation de la mémoire n'est pas sûre ! gpg: voir http://www.gnupg.org/fr/faq.html pour plus d'informations sec 1024D/02217E97 2003-11-12 Sebastien AUGEREAU (Exemple) <saugerea@etudiant.univ-mlv.fr> Create a revocation certificate for this key? y Please select the reason for the revocation: 0 = Aucune raison spécifiée 1 = La clé a été compromise 2 = La clé a été remplacée 3 = La clé n'est plus utilisée Q = Cancel (Probably you want to select 1 here) Votre décision ?
Evidemment, à l'issue de
la
configuration de la création de votre certificat, gpg
vérifiera que vos avez bien authorité sur le trousseau
que vous souhaitez révoquer en vous demandant la passphrase
associée.
Vous avez besoin d'un mot de passe pour déverrouiller la clé secrète pour l'utilisateur: "Sebastien AUGEREAU (Exemple) <saugerea@etudiant.univ-mlv.fr>" clé de 1024 bits DSA, ID 02217E97, créée le 2003-11-12
Puis le certificat est généré, GPG vous conseille alors de placer ce certificat en lieu sur. La raison est simple. Si une personne reussi à accéder par un quelconque moyen à votre certificat de révocation, il pourra faire croire à votre insu que votre trousseau n'est plus valide.
ASCII armored output forced. Revocation certificate created. Please move it to a medium which you can hide away; if Mallory gets access to this certificate he can use it to make your key unusable. It is smart to print this certificate and store it away, just in case your media become unreadable. But have some caution: The print system of your machine might store the data and make it available to others!
Dans cette partie, nous avons
souhaité
mettre en avant un moyen simple et ouvert de certifier les
échanges
d'informations sur des canaux non sûr tels qu'Internet.
L'utilisation de l'outil gpg est généralement faite au
niveau de l'administration de son trousseau.
La plupart des logiciels de
messageries
évolués reconnaitront automatiquement vos clé et
vous permettront d'automatiser les procédures de chiffrement
ou de signature. Enfin, le lecteur devra garder en tête que
valider l'acceptation d'une clé publique d'un ami (et de
toutes ses clé publiques) doit être fait avec
précaution
en utilisant un canal de transmission absolument sûr. Rappelez
vous que dès lors qu'un maillon de la chaine de confiance a
été compromis, toutes les personnes qui importerons vos
clés publiques seront trompées...
First | Previous | Post comment | Next | Last |