Exile on Keyboard St. - Blog sur Linux et Debian

Aller au contenu | Aller au menu | Aller à la recherche

samedi 5 janvier 2019

Révoquer une clé GPG avec un certificat de révocation

Lorsqu'on utilise GPG pour faire du chiffrement, Il est fortement conseillé de générer un certification de révocation JUSTE APRES avoir généré une clé GPG.

En effet,en cas d'oubli de la phrase secrète (passphrase) qui protège votre clé privée, ça peut arriver surtout si vous l'utilisez rarement, ou de perte de cette clé privée, le certificat de révocation est la seule façon d'indiquer que votre clé ne doit plus être utilisée pour communiquer avec vous.

Pour cela, on commence par importer le certificat de révocation:

Importer le certificat de révocation

$ gpg --import Documents/keys/My\ Revoke\ Certificate.gpg
gpg: clef EAC..... : « You <you@domain.com> » certificat de révocation importé
gpg:       Quantité totale traitée : 1
gpg: nouvelles révocations de clef : 1
gpg: 3 marginale(s) nécessaire(s), 1 complète(s) nécessaire(s),
     modèle de confiance PGP
gpg: profondeur : 0  valables :   2  signées :   0
     confiance : 0 i., 0 n.d., 0 j., 0 m., 0 t., 2 u.

Lister les clés

gpg --list-keys
/home/user/.gnupg/pubring.gpg
-----------------------------------
pub   4096R/EAC..... 2016-12-24 [révoquée : 2017-07-19]
uid                 You <you@domain.com>

pub   2048R/AB0..... 2013-11-24
...

La clé a bien été marquée comme révoquée.

Il ne nous reste plus qu'à publier sur un serveur le fait que la clé ait été révoquée.

Synchroniser la clé avec les serveurs de clés

gpg --verbose --keyserver pgp.mit.edu --send EAC.....
gpg: envoi de la clef EAC..... au serveur hkp pgp.mit.edu
 

Le serveur de clés en question informera alors les autres serveurs, de telle façon que quelques heures après la clé deviendra inutilisable.

samedi 28 juin 2014

Encrypter plusieurs fichiers avec gpg en une seule commande

La commande habituelle de chiffrement asymétrique avec gpg est la suivante:

gpg --recipient recipient@domain.com --encrypt myfile.toencrypt

A condition toutefois d'avoir importé au préalable la clé publique du destinataire du fichier encrypté (ici recipient@domain.com).

On obtient alors le fichier myfile.toencrypt.gpg.

Si maintenant, je souhaite chiffrer plusieurs images, je vais tenter la commande:

gpg --recipient recipient@domain.com --encrypt *.png
usage: gpg [options] --encrypt [filename]

pour me rendre compte que Gnu Privacy Guard n'accepte pas plusieurs fichiers avec la commande --encrypt !

Pour que gpg encrypte plusieurs fichiers en une seule fois, il faut ajouter l'option --multifile à la commande --encrypt:

gpg --recipient recipient@domain.com --multifile --encrypt *.png

On peut aussi utiliser plus simplement la commande --encrypt-files:

gpg --recipient recipient@domain.com --encrypt-files *.png

dimanche 8 juin 2014

Chiffrer un document avec gpg de manière symétrique

The GNU Privacy Guard plus connu sous le nom de gpg permet de chiffrer des documents en utilisant les algorithmes de chiffrement à clé publique.

Si un ami souhaite m'envoyer des informations sensibles, il chiffre celles-cis avec ma clé publique, et je serai le seul à pouvoir prendre connaissance du contenu envoyé parce qu'il est uniquement déchiffrable par ma clé privée, en ma seule possession.

Mais le programme de GNU permet également de chiffrer un fichier selon un procédé symétrique. Ici, plus de clé publique ni de clé privée mais uniquement un mot de passe duquel est dérivé la clé de chiffrement.

Etape 1: Encrypter en symétrique

echo "secret content" > top.secret
gpg --symmetric top.secret
cat top.secret.gpg 
��E
       ��`�+]�f�#z���,sxO?�ؘ|�h]WA��UE��

La commande gpg demande de saisir un mot de passe (et de le confirmer).

On peut aussi utiliser:

gpg -c top.secret

Attention le fichier inital n'est pas supprimé par gpg. On peut le faire avec:

shred -u top.secret

Maintenant pour déchiffrer le fichier, il suffit d'utiliser:

Etape 2: Déchiffrer de manière symétrique

gpg top.secret.gpg

qui affiche alors:

gpg: CAST5 encrypted data
Enter passphrase: 

Après saisie du mot de passe (correct !), le fichier top.secret a été recréé.

On aurait pu aussi utiliser (si l'on souhaite par exemple renommer le fichier décrypté):

gpg --output top.secret.renamed --decrypt top.secret.gpg

ou pour décrypter sur la sortie standard:

gpg --decrypt top.secret.gpg

Etape 3: Les algorithmes de chiffrement symétriques de gpg

Le chiffrement symétrique de gpg utilise par défaut l'agorithme CAST5 qui ne présente pour l'instant aucune attaque connue.

Pour connaitre la liste des algorithmes pour le chiffrement symétrique avec gpg:

gpg --version
gpg (GnuPG) 1.4.12
Copyright (C) 2012 Free Software Foundation, Inc.
License 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.
There is NO WARRANTY, to the extent permitted by law.

Home: ~/.gnupg
Supported algorithms:
Pubkey: RSA, RSA-E, RSA-S, ELG-E, DSA
Cipher: 3DES, CAST5, BLOWFISH, AES, AES192, AES256, TWOFISH, CAMELLIA128, 
        CAMELLIA192, CAMELLIA256
Hash: MD5, SHA1, RIPEMD160, SHA256, SHA384, SHA512, SHA224
Compression: Uncompressed, ZIP, ZLIB, BZIP2

Et pour changer d'algorithme, on utilise le flag --cipher-algo:

gpg --cipher-algo AES --symmetric top.secret

Lors du déchiffrement, l'algorithme n'est pas à préciser puisque gpg saura le deviner seul avec les informations inscrites dans le fichier au cours du chiffrement.