Outils pour utilisateurs

Outils du site


gnupg

GNUPG ou GPG

Généralités

Liens

Le principe de base

On génére une clé privé et une clé public.
La clé public peut être distribué et va permettre aux correspondants de crypter des fichiers à votre attention.
La clé privé est la seule permettant de décrypter les fichiers.
La clé privé ne doit pas être communiqué.

On a besoin que d'une seule clé privé… dans le meilleur des mondes.

Installer gpg

Si “ $ dpkg -l | grep gnupg ” ne renvoi rien:

# apt-get install gnupg

Usages simples

Générer une clé privé/public

(pour le user courant)

$ gpg --gen-key

ATTENTION: La “passphrase” permettra l'accès et l'usage de la clé privé.
Mais la passphrase complique l'usage, donc on laissera vide et gnupg ne nous demandera jamais la passphrase.

Options générales (pour la suite)

  1. -armor ⇒ permet de produire un crytage en ASCII.
  2. -batch ⇒ signaler qu'on est dans un script sans interaction possible…

On appellera par la suite “info-clef”, tout ce qui peut permettre d'identifier la clé (public et privé?) a manipuler: ce peut être un “id” (8 chiffres hexa) ou un nom ou un mail…

Lister/Modifier les clés

Lister les clés: $ gpg –list-keys
Effacer une clé: $ gpg –delete-key <info-clef>
Effacer la clé privée: $ gpg –delete-secret-key <info-clef> (est-ce une bonne idée?)
Editer une clé: $ gpg –edit-key <info-clef>

Extraire sa clé public afin de la distribuer

$ gpg --armor --export info-clef
  

Importer (ajouter a son trousseau) une clé public

$ gpg --import fichier 

Crypter un message

$ gpg --armor -r <dest> -e <fichier>

Où <dest> est ce qui permet d'identifier le destinataire (“the receiver”)… (exemple: mail@truc ou l'id (info-clé) de la clé.)

Un <fichier> 'fichier.asc' est créé.
Le message est crypté avec la clé public receveur.
Mais rien ne permet de s'assurer que l'envoyeur est le bon… pour cela il faut signer.

Signer un message

Signature simple

La signature permet de s'assurer de l'origine du message.
La signature est faite a partir de la clef privée.

En conséquence, le destinataire doit posséder la clef publique dans son trousseau pour authentifier la signature. Dans le cas contraire, la signature est simplement ignoré.

L'option –default-key permet de choisir le signataire du message.
Si –default-key est absent, c'est la clef privée par défaut qui est utilisée.

Un fichier a part

gpg --default-key <infokey_du_signataire> --armor --detach-sign fichier

fichier.asc est créé et contient la signature

Dans le fichier

gpg --default-key <infokey_du_signataire> --armor --clearsign fichier

Verifier la signature

gpg --verify fichier.asc fichier

ou

gpg --verify fichier

Cryptage et Signature

Ajouter: –sign

Exemple:

$ gpg --armor -r <infokey_du_receveur> -o fichier.asc --default-key <infokey_du_signataire> --sign -e fichier

Le receveur devrait s'assurer que la signature est celle attendue.

Le problème: la "passphrase"

Si par malheur, vous avez entré une passphrase…

La “passphrase” réclame une interaction. Lorsqu'on veut automatiser la signature, il faut que la passphrase soit desactivé _OU_ que l'on écrive la passphrase dans un fichier dont on fera lecture ainsi :

On ajoute “ –passphrase-fd 0 ” pour forcer une lecture “stdin”

Exemple:

cat passphrase.txt | gpg --armor --yes --sign --passphrase-fd 0 -r <receiver> -e <fichier>

Ce n'est pas super sécurisé !!! mais comment faire autrement ?

to be continued…

Décripter un message

gpg -o dest.txt -d fichier_crypte

Aprés les demandes de 'passphrase', 'dest.txt' contient le message en clair.

La signature est affiché, s'il y en a une…

Exercises

Transferer une clef privée

Il ne faut jamais faire ça, mais parfois il le faut.

Extraire clef privée

$ gpg --armor --export-secret-keys <infokey> >kprive.txt

Ce qui exporte la clef privée de <infokey> dans kprive.txt.
On copie:

$ scp kprive.txt <address_ip>:~/tmp/.

On importe:

$ gpg --import kprive.txt

Et voila, mais il ne faut pas faire ça ! Oh non!

Importer une clef public

Aprés que le public ait fait:

$ gpg --armor --export <infokey> >pubkey.txt

Et envoyer le fichier par un moyen quelconque… on fait alors:

$ gpg --import pubkey.txt

Mais si on en fait usage, gpg va emettre un avertissement et refusé le cryptage.
Donc je fais ça:

$ gpg --edit-key <infokey>

Et puis:

> trust

Choisir le niveau de confiance ultime… puis:

> save

Et voila.

Recuperer les clés

Copier ou recuperer les clés bruts…

On va regarder et/ou copier ce qui se trouve dans ~/.gnupg :

$ gpg --homedir <REPERTOIRE> --list-key

Etc…
On peut faire toutes les commandes classiques: exporter, importer, etc…

gnupg.txt · Dernière modification : 2009/12/09 14:11 de thierry