Cours GPG

Cours GPG

-

Documents
12 pages
Lire
Le téléchargement nécessite un accès à la bibliothèque YouScribe
Tout savoir sur nos offres

Description

Association pour la promotion des LOgiciels LIbres de St-E tienneHttp://w ww.alolise.org – c ontact@alolise.orgExplication de l'utilisation de la c ryptographie par g pgAuteur : Jérôme Avond – je rome.avond@la poste.netContrat d e licence Creative common s V2.0 d e CommentCaMarche Paternité - Pas d 'Utilisation Commercia le - Partage d es Con ditions Initiales à l'I dentique 2 .0 FranceVous êtes libre :• de reproduire, distribuer et communiquer cette création au public • de modifier cette création Selon le s condition s suivantes :Paternité. Vous dev ez citer le nom de l'auteur original et inclure la mention de bas de page faisant référ ence à la prése nte licence et comportant un li en hyperte xte vers http://ww w.commentca marche.net .Pas d'u tilisation commerciale. Vou s n'avez pas le droit d'utiliser cette création à des fi ns commerciales.Partage des C onditions Initiales à l'Identique. Si vous modifiez, transformez ou adaptez cette création, vous n'avez le droit de distribuer la création qui en ré sulte que sous u n contrat identique à celui-ci.• A chaq ue réutilisation ou distribution, vous devez fair e appar aître clairement aux autres les conditions contractuelles de mise à disposition de c ette création. • Chacune de c es conditions peut être l evée si vous obtenez l'autorisation du titulaire des droits. Ce qui précèd e n'aff ecte en rien vos d roits en tant q u'utilisateur (exceptions au droit d 'auteur : copie s réservée s à l'usage ...

Sujets

Informations

Publié par
Ajouté le 24 septembre 2011
Nombre de lectures 49
Langue Français
Signaler un problème
Association pour la promotion des LOgiciels LIbres de St-Etienne Http://www.alolise.org – contact@alolise.org
Explication de l'utilisation de la cryptographie par gpg
Auteur : Jérôme Avond – jerome.avond@laposte.net
Contrat de licence Creative commons V2.0 de CommentCaMarche Paternité - Pas d'Utilisation Commerciale - Partage des Conditions Initiales à l'Identique 2.0 France
Vous êtes libre :
de reproduire, distribuer et communiquer cette création au public de modifier cette création Selon les conditions suivantes :
Paternité. Vous devez citer le nom de l'auteur original et inclure la mention de bas de page faisant référence à la présente licence et comportant un lien hypertexte vers http://www.commentcamarche.net.
Pas d'utilisation commerciale. Vous n'avez pas le droit d'utiliser cette création à des fins commerciales.
Partage des Conditions Initiales à l'Identique. Si vous modifiez, transformez ou adaptez cette création, vous n'avez le droit de distribuer la création qui en résulte que sous un contrat identique à celui-ci. A chaque réutilisation ou distribution, vous devez faire apparaître clairement aux autres les conditions contractuelles de mise à disposition de cette création. Chacune de ces conditions peut être levée si vous obtenez l'autorisation du titulaire des droits.
Ce qui précède n'affecte en rien vos droits en tant qu'utilisateur (exceptions au droit d'auteur : copies réservées à l'usage privé du copiste, courtes citations, parodie...)
L'ensemble des elements graphique de cette documentation sont issus d'Open Clip Art
Sommaire
I - GPG? 1 - - GNU Privacy Guard........................................................................................................................................
3
3
II - Fonctionnement général des logiciels de cryptographie asymétrique.3 1 - - En bref............................................................................................................................................................. 3 2 - - Quel est l'intérêt ?.......................................................................................................................................... 3 3 - - Comment ça marche ?.................................................................................................................................. 4 4 - - Mais comment est ce possible?................................................................................................................... 5
III - Moi aussi e veux savoir le faire.5 1 - - La première opération consiste à installer le logiciel libre gpg............................................................... 5 2 - - La complétion bash....................................................................................................................................... 5 3 - - Bon c'est bon là on se lance?....................................................................................................................... 6
IV - Révoquer sa clé sur le serveur de clé :
11
1 - - Charger le certificat de révocation............................................................................................................ 11 2 - - Supprimer les clefs...................................................................................................................................... 11
V - Conclusions
VI - Annexe
12
12
I
GPG?
1 - GNU PrivacyGuard C'est le logiciel libre remplaçant le logiciel PGP (Pretty Good Privacy), qui n'était qu'en partie libre, mais gratuit. Les deux logiciels sont compatible puisqu'ils utilisent tout deux le même format OpenPGP.
« PGP donne aux gens le pouvoir de prendre en main leur intimité. Il y a un besoin social croissant pour cela. C'est pourquoi je l'ai créé.(...) Si l'intimité est mise hors la loi, seuls les hors-la-loi auront une intimité. Les agences de renseignement ont accès à une bonne technologie cryptographie. De même les trafiquants d'armes et de drogue. Mais les gens ordinaires et les organisations politiques de base n'avaient pour la plupart pas eu accès à ces technologies cryptographies de «qualité militaire» abordable, jusqu'à présent. »
PhilipZimmermann,créateurde PGP.
II
Fonctionnementgénéraldes logiciels de cryptographieasymétrique.
La cryptographie asymétrique est aussi appelée « cryptographie à clé publique ».
1 -
En bref
Chacun crée une paire de clé asymétrique, ce sont deux suites de caractères qui permettent de crypter un message, mais ces deux clefs sont en lien :
La clef publique permet de crypter un message que seule la clé privée peut décrypter.
La clef privée peut émettre une signature qui ne peut être authentifiée que par la clef publique.
2 -
Quelest l'intérêt?
Et bien du moment que personne n'a accès à ma clef privée, alors ma clef publique permet à n'importe qui de m'envoyer un message crypté que je serais le seul à pouvoir décrypter.
Et du moment que personne n'a accès à ma clef privée, alors ma clef publique permet à chaque personne qui fait confiance à cette clef de vérifier que j'ai bien signé un message.
3 -
Commentça marche?
Imaginons que je veuille recevoir des messages et que je dispose d'un grand stock de coffres fort qui s'ouvrent tous avec la même clef unique qui est autour de mon cou.
Pour recevoir mes messages privés j'envoie mes coffres (gratuitement...pensez internet) partout dans le monde avec mon nom dessus et mon adresse.
Je suis donc le seul à pouvoir ouvrir
le coffre grâce à ma clef.
Il faut bien comprendre cela :
Le fait de créer une paire de clef ne me permet que de recevoir des cryptés pas d'en envoyer!!!
Ainsi chacun peut mettre un message dans ce coffre le refermer et me l'envoyer (gratuitement... pensez email...)
Pour envoyer des emails cryptés il faut que mon correspondant ait créé une paire de clef !
4 -
Mais commentest ce possible?
Le cryptage à clé publique utilise le système mathématique RSA (Rivest Shamir Adleman), le nom provient des initiales des noms des trois mathématiciens qui conçusses (hé oui!) cet algorithme.
Le principe est basé sur la difficulté de factoriser un nombre en nombres premiers, et que la fonction puissance est non réversible (si si souvenez vous de vos cours de terminale...). C'est assez complexe à comprendre, mais si le cœur vous en dit voici quelques sites expliquant le principe :
http://villemin.gerard.free.fr/Crypto/RSA.htm#rsa
http://fr.wikipedia.org/wiki/Rivest_Shamir_Adleman
III
Moi aussi je veuxsavoirle faire.
1 -
La premièreopérationconsisteà installerle logiciel libregpg.
Plusieurs solutions s'offre à vous:
La compilation pure et dure des familles à l'ancienne, a partir des sources disponibles à cet adresse :
http://www.gnupg.org/(fr)/download/index.html L'utilisation d'un paquet pré compilé pour votre distribution (apt-get install, emerge, urpmi).
Pour les consommateurs de microsoft©, et d'apple©, des binaires sont disponibles à cette adresse:
Mac :http://macgpg.sourceforge.net/
Win :ftp://ftp.gnupg.org/gcrypt/binary/
Note: Nous ne décrirons ici que l'utilisation sous GNU/linux et en mode ligne de commande. De nombreux sites traitent de l'utilisation de gpg sous windows ou sous mac.
Win :http://www.glump.net/dokuwiki/gpg/gpg_intro
Mac :http://sourceforge.net/docman/display_doc.php?docid=6216&group_id=20789
Ensuite un élément très important et très utile dans le cas de l'utilisation de gpg,
2 -
La complétionbash.
D'abord vérifiez que vous avez le fichier /etc/bash_completion.
Ensuite ouvrez le fichier .bashrc dans votre répertoire personnel, avec votre éditeur de texte préféré. Enfin ajoutez cette ligne à la fin du fichier [ -f /etc/bash_completion ] && source /etc/bash_completion
A présent lorsque vous entrez une commande, non seulement l'auto completion « de base » fonctionne, c'est à dire pour le premier terme de la commande, mais également pour les options de la commande.
exemple: user$ apt-g[TAB] user$ apt-get
user$ apt-get in[TAB]
user$ apt-get install abiw[TAB]
abiword abiword-gnome abiword-plugins
abiword-common abiword-gtk abiword-plugins-gnome
abiword-doc abiword-help
Sans l'activation de bash_completion, seul les deux premières lignes auraient fonctionné.
Cette fonction sera très utile car le logiciel gpg possède de très nombreuses options.
3 -
Bon c'est bonlà on se lance?
Après vous, donc:
a -
Note : N'oubliez pas d'utiliser la touche tabulation [TAB] pour gagner du temps
Avanttoutcréersa pairede clé.
Pour pouvoir faire parti du réseau de confiance des utilisateurs de gpg (enfin de pgp, enfin de RSA, enfin...) il vous faut : une clé privée :
que vous ne diffuserez jamais à personne!
dont vous garderez un doublesur une disquette ou sur un cdrom!
dont vous retiendrezle mot de passe, par une astuce. une clé publique :
que vous diffuserez sur un serveur de clé
que vous inscrirez sur vos cartes de visite
que vous transmettrez à tous vos contacts
que vous afficherez sur votre site web etc...
Vous procéderez comme suit pour créer (on dit générer) votre paire de clé: $ gpg –-gen-key
Les clefs peuvent être générées à l’aide de trois types d'algorithme selon le fonctionnement suivant :  1) DSA et Elgamal créeront automatiquement deux paires de clefs, une première paire
 DSA pour la signature et une secondaire paire Elgamal pour le chiffrement.
 2) Les choix <2> (DSA) et <5> (RSA) créeront seulement une paire de clefs de
 signature, respectivement DSA ou RSA-S. L’ajout d’une seconde paire de clefs pour
 le chiffrement sera alors nécessaire.
En bref pour faire simple choisissez DSA et Elgamal.
Note : DSA et Elgamal sont deux autres algorithmes de chiffrement asymétriques.
Plus d'informations sur wikipédia:
http://fr.wikipedia.org/wiki/Digital_Signature_Algorithm
http://fr.wikipedia.org/wiki/Cryptosyst%C3%A8me_de_ElGamal
Ensuite on vous demande la longueur de votre clé de chiffrement Elgamal : Pour l'instant choisissez par défaut 2048bits. Plus la clé est longue plus elle est sur mais plus le temps de chiffrement est long, à vous de voir.
Ensuite on vous demande la « durée de vie » de votre paire de clé, c'est relativement simple à comprendre on verra plus loin pourquoi. On demande une confirmation après votre choix.
Puis on passe à l'identification de la paire de clé, en gros qui êtes vous.
On tape ses noms prénoms,
puis on tape son adresse email,
puis un commentaire pour repérer la clé parmi les autres qui ont le même nom et la même adresse.
on confirme.
Et là ça devient intéressant, votre clé privée va être chiffrée pour améliorer la sécurité.
Une clé privée n'est rien d'autre qu'un fichier texte dans le répertoire .gnupg de votre répertoire personnel, elle peut donc être facilement récupérée, par négligence ou par un pirate. Le fait de chiffrer la clé privée la rend illisible et inexploitable sans votre mot de passe.C'est donc le mot de passe qui sera le maillon le plus faible de la sécurité de vos clés.
Comment choisir son mot de passe:
Pas un mot du dictionnaire.
Pas une formule célèbre (abracadabra, « sésame ouvre toi », turlututu etc...)
Pas une suite de lettre toute en minuscule ou toute en majuscule
L'idéal : Une suite de lettres, majuscule ET minuscule, de chiffres et des signes de ponctuation qui ne veulent rien dire en l'état.
Á éviter, les accents et les signes propres au français (il est possible que vous ayez à taper votre mot de passe sur un clavier qwerty, ou serbe ou hindou). On évite aussi l'euro.
Exemple: Je prend une phrase que je retiendrais facilement:
« Ubuntu, c'est la meilleur version de Debian que je connaisse. » Je garde chaque première lettre et je mets en majuscules les mots de plus de 3 lettres et en minuscules les autres. Je conserve les chiffres et la ponctuation. Mon mot de passe : U,c'elMV2DqjC. Je garde les dernières lettres je mets en majuscules les voyelles et je garde les chiffres et la ponctuation. Mon mot de passe : U,c'tArn2nEEE.
Ces mots de passe ne sont pas inviolables mais ils demandent à l'agresseur de les attaquer en force brute,
pas en parcourant un dictionnaire de mot. Donc j'ai 14 symboles pris parmi 26 lettre min + 26 lettre maj + 10 chiffres + ~10 symboles de ponctuation = 72 symboles 14 24 Soit 72x72x72x...= 72 = 100 x 10 combinaisons possibles,
Imaginons qu'on tombe sur un malfaisant qui veut absolument notre clef privée. Il connaît le nombre de symboles (il est fort :) il a un gros ordinateur et il peut tenter 100 tentatives et test par secondes. Une année compte 365x24x60x60 = 31536000 secondes il peut donc faire 3 millions de tentatives en une année. 15 12 Il lui faut donc 31x10 années (soit 31x10 siècles ... ) avec un ordinateur qui tourne non stop pour trouver le mot de passe. Je lui souhaite bien du plaisir... :)
Une fois le mot de passe tapé, votre clé se génère, il faut profiter de ce moment pour taper au clavier n'importe quoi faire bouger et cliquer sur la souris pour donner de l'aléatoire (de l'entropie) au générateur de nombres aléatoires.
Différentes informations s'affichent:
gpg: clé B53DE99B marquée comme ayant une confiance ultime.
les clés publique et secrète ont été créées et signées.
La procédure est terminée.
gpg: vérifier la base de confiance
gpg: 3 marginale(s) nécessaires, 1 complète(s) nécessaires, modèle
de confiance classic
gpg: profondeur: 0 valide: 3 signé: 3
confiance: 0-. 0g. 0n. 0m. 0f. 3u
gpg: profondeur: 1 valide: 3 signé: 0
confiance: 0-. 0g. 0n. 0m. 3f. 0u
Des indices de confiances sur votre clé
pub 1024D/B53DE99B 2006-09-25
 Empreinte de la clé = D8C0 48BA 82D7 1D76 119C 7874 9362 8CA6 B53D E99B
uid dlfklg (cle bidon) <ldkgj@dfg.com>
sub 2048g/46801306 2006-09-25
Ceci est relativement important, on voitl'identifiant de la clé publique (PUB)qui indique:
1024
La taillede la clé
D
son typeici DSA
/
L'empreinte de la clef (une sorte de md5sum de la clef)
UID pour User Identity on retrouve les informations entrées
B53DE99B
l'identifiantde la clé
2006-09-25
datede création
et enfinSUB la clé privée de cryptageidem que pour la clé publique:
2048
taille
b -
g
type(ici Elgamal)
Premièrechose à faireaprès la création
Créer un certificat de révocation!
/
46801306
identifiant
2006-09-25
datede créat
Hé oui mieux vaut le faire tout de suite, tant qu'on y est, au cas ou un jour votre clé ne soit plus valable, que vous ne l'utilisiez plus ou bien ou bien ...
Relativement facile à faire:
$ gpg --gen-revoke maclé --output certificat
On vous demande :
Une confirmation de la demande de révocation
Une raison pour la révocation (compromission ou inutilisation)
Une description de la révocation
Une confirmation de la description
Le mot de passe That's done!
Vous avez un beau certificat dans le fichier certificat.
c -
Note : ceci ne sert absolument a rien si vous ne l'avez pas envoyer sur un serveur de clé. Mais pour une clé utilisable et pratique la deuxième chose à faire est d'exporter la clé publique sur un serveur de clé.
Attention! Ce certificat n'a pas sa place dans votre ordinateur, une personne malveillante (un maraudeur ou un vilain) peut grâce à ce fichier rendre votre clé inexploitable. Veuillez donc copier ce fichier sur un cdrom, ou une disquette, la tenir à l'écart, et supprimer le fichier de votre disque dur!!!
Etmaintenant? On partage?
Á présent vous pouvez partager votre «brand new key pair» avec le monde entier.
Votre clé public est visible:
$ gpg –-list-keys
Vous la voyez avec toutes les informations décrites plus haut.
Mais vous pouvez aussi la voir entièrement:
$ gpg --armor --exportjerome.avond@free.fr ou bien $ gpg --armor --export c95fbd13 ou bien
$ gpg --armor --export Jérôme AVOND
-----BEGIN PGP PUBLIC KEY BLOCK-----
Version: GnuPG v1.4.2.2 (GNU/Linux)
mQGiBEQVbXwRBACJECmOku4G1ggOPNmPGcWHZHzGCA1rRDCPPjNyEDYuSQmD1W6S
qo93c0bKBS5bSu5/0EBl78xT+mhwsaLkIHIEA+ajbpV/+XX/JDvxN3EdHLIVYbwb
ZvTmjHMKoSk3HFwaUjId81KbLos56Kr/UBT7l/yeqnjZceAtVR7IF/MZvwCgkeSk
H9eikc8GZYR8HYPbD+jFzCMD/ia1O9NwcSBn24zMvMnN6Rg4cczSWNxSFXqnH2oN
FFcCzev5CiTRD9qrT8sHEpGAsG8oQ6b4c10XS0x2XTNvx4h5iLHP4LLMW1tgG9bO
(...)
THjlcSq+d9WkXKIAn2OpinkQwyU9HUxJ1O9IVFrQp2Lu =ZlTi -----END PGP PUBLIC KEY BLOCK-----
Note: La commande--exportécrit la clef publique en caractères codés sur 8 bits, ce qui peut poser quelques problèmes pour l'envoyer par email ou pour l'afficher. L'option--armorou-apermet d'obtenir une clef publique en caractères codés sur 7 bits (c'est beaucoup plus lisible).
Note: On voit que le type d'identifiant pour décrire la clé n'est pas important ce peut aussi bien être le nom, l'email, ou encore l'identifiant numérique.
Voilà ma clé public, vous pouvez l'imprimer et la donner à vos contacts pour qu'ils la recopient à la main dans leur trousseau (si si c'est possible complètement idiot mais possible), ou l'envoyer dans un fichier avec la commande :
$ gpg --armor --export Jérôme AVOND --output cle_jerome
Et ensuite la donner à vos contacts en inscrivant le fichier sur un média (cd, disquette, clé USB, etc...).
Mais le plus simple est de l'envoyer sur un serveur de clé.
d -
Les serveursde clés.
L'idée c'est d'envoyer tout ces signes sur un serveur de clés, et de ne garder que les identifiants de la clé, que l'on donne à ces contacts, que l'on met sur son site web etc... en précisant sur quel serveur bien sûr.
note : La plupart des serveurs de clés publiques se synchronisent entre eux, mais pas tous veuillez donc toujours préciser lequel vous utilisez.
Pour effectuer cette action, veuillez au préalable vous renseignez sur les serveurs de clés disponibles, les plus utilisés etc...
En voici une liste non exhaustive:
pgp.mit.edu keyserver.veridis.com
pks.sourceforge.net
keyring.debian.org
keyserver.cryptnet.net
http://www.rossde.com/PGP/pgp_keyserv.html#pubserv
Serveur de clés du MIT
Serveur de clés veridis
Serveur de clés sourceforge
Serveur de clés debian
Serveur de clés cryptnet
Une liste plus ou moins à jour
Ensuite nous allons exporter en utilisant les options de gpg: $ gpg --keyserver pgp.mit.edu --send-keys C95FBD13 gpg: envoi de la clé C95FBD13 au serveur hkp pgp.mit.edu
Note : attention à l'ordre des options, l'option principale de la commande doit toujours être à la fin de la commande.
voilà ça y est votre clé est accessible depuis le monde entier!
Vous pouvez donc envoyer des emails signés, et recevoir des emails cryptés, c'est tout!
Pour envoyer des emails crypté et recevoir des emails signé il faut que vous ayez la clef public de votre correspondant.Révoquer sa clé sur le serveur de clé :
IV
Révoquersa clé sur le serveurde clé :
Si vous ne vous servez plus de vos clé pour une raison ou une autre
(compromise par quelqu'un qui possède votre clé privée, vous avez perdu votre mot de passe, etc),
vous devez impérativement prévenir le serveur de clé de cette révocation !
1 -
Chargerle certificatde révocation
Pour se faire, munissez vous du fichier de révocation que vous avez créé plus haut, et importez le
dans votre porte-clé via la commande
$ gpg –import certificat_revok
Vérifiez que votre trousseau de clé a bien enregistré la révocation en listant vos clés : $ gpg –list-keys
Votre clé doit maintenant être marquée comme [révoquée]
Vous pouvez donc là ré-envoyer sur le serveur de clé pour mettre a jour ce dernier : $ gpg --keyserver pgp.mit.edu --send-keys macle
Voilà, votre clé est révoquée, et donc inutilisable.
2 -
Supprimerles clefs
Vous pouvez donc supprimer vos clés publique et privée de votre trousseau.
Pour se faire : supprimez d'abord la clé secrète : $ gpg –delete-secret-keys macle
puis la ou les clés publiques rattachées : $ gpg –delete-keys macle
V
Conclusions