Exile on Keyboard St. - Blog sur Linux et Debian

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

mardi 5 septembre 2017

Refaire fonctionner Enigmail avec Icedove / Thunderbird sur Debian 8.9

Depuis la dernière mise à jour du paquet Icedove sur Debian 8.9, ce dernier m'a signalé que mon Add-On Enigmail était désactivé et qu'il fallait passer désormais par un autre Add-On dont j'ai oublié le nom. Ce jour là, j'ai laché l'affaire en me disant que je regarderai cela plus tard.

Ce matin, j'ai jeté un oeil, n'ai pas trouvé d'Add-On de remplacement pour Enigmail mais par contre en suivant la procédure suivante, j'ai rétabli ma configuration Mail+Encryption:

  • Installation de Thunderbird
  • Démarrage de Thunderbird + Migration des données issues d'Icedove (se fait tout seul)
  • Installation d'Enigmail afin de le réactiver (cette possibilité n'étant pas proposée)
  • Suppression du paquet iceowl-extension

Donc, je suis passé d'Icedove à Thunderbird (comma avant sur Debian quoi !) et ça fonctionne comme avant. Enfin presque ...

Maintenant, le déchiffrement des messages ne se fait pas de manière automatique et j'ai une erreur qui dit: GnuPG a rapporté une erreur de communication avec gpg-agent (un composant de GnuPG).

Capture-Alerte_Enigmail.png

Les solutions proposées dans le billet cité n'ont malheureusement pas fonctionné chez moi.

J'ai trouvé la solution dans le billet gnome-keyring gpg2 and enigmail clash.

Le script en question a été enregistré en .gpgrc et appelé dans .bashrc. Ensuite, j'appele Thunderbird de la façon suivante:

bash -i -c '/usr/bin/thunderbird %u'

Et j'ai bien:

env| grep GPG
GPG_AGENT_INFO=/tmp/gpg-63XK4k/S.gpg-agent:3002:1

C'est donc bien le gpg-agent qui est utilisé et non le Gnome Keyring.

Avec cette façon de faire, tout fonctionne, y compris le cache sur la saisie du mot de passe de ma clé privée !

Enfin, j'ai remarqué une aberration dans la configuration par défaut de Thunderbird, le moteur de recherche par défaut est Bing, moteur de recherche d'une célèbre (plus que son moteur en tous cas !) société américaine dont je ne citerai pas le nom. Je me demande bien ce qui a pû dicter ce choix malheureux dans un logiciel open source ...

Capture-Preferences_de_Thunderbird.png

vendredi 17 février 2017

Encrypter et decrypter vos fichiers sensibles avec gpg

On utilise souvent gpg pour encrypter les mails avant envoi avec le module Enigmail installé dans Icedove ou Thunderbird.

Mais à partir du moment où on a généré une paire de clé sur sa machine, on peut très bien aussi utiliser celle-ci pour encrypter nos fichiers sensibles de la même façon que si on s'envoyait ces fichiers par mail à nous même.

Imaginons que vous n'ayez pas encore généré de clé gpg, on va donc le faire maintenant:

Etape 1: Générer une clé RSA avec gpg

debian@debian-jessie:~$ gpg --gen-key
gpg (GnuPG) 1.4.18; Copyright (C) 2014 Free Software Foundation, Inc.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.

Sélectionnez le type de clef désiré :
   (1) RSA et RSA (par défaut)
   (2) DSA et Elgamal
   (3) DSA (signature seule)
   (4) RSA (signature seule)
Quel est votre choix ? 1
les clefs RSA peuvent faire une taille comprise entre 1024 et 4096 bits.
Quelle taille de clef désirez-vous ? (2048) 1024
La taille demandée est 1024 bits
Veuillez indiquer le temps pendant lequel cette clef devrait être valable.
         0 = la clef n'expire pas
      <n>  = la clef expire dans n jours
      <n>w = la clef expire dans n semaines
      <n>m = la clef expire dans n mois
      <n>y = la clef expire dans n ans
Pendant combien de temps la clef est-elle valable ? (0) 0
La clef n'expire pas du tout
Est-ce correct ? (o/N) O

Une identité est nécessaire à la clef ; le programme la construit à partir
du nom réel, d'un commentaire et d'une adresse électronique de cette façon :
   « Heinrich Heine (le poète) <heinrichh@duesseldorf.de> »

Nom réel : GPG Test
Adresse électronique : gpg-test@debian-jessie
Commentaire : 
Vous avez sélectionné cette identité :
    « GPG Test <gpg-test@debian-jessie> »

Faut-il modifier le (N)om, le (C)ommentaire, l'(A)dresse électronique
ou (O)ui/(Q)uitter ? O
Une phrase secrète est nécessaire pour protéger votre clef secrète.

De nombreux octets aléatoires doivent être générés. 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'obtenir suffisamment d'entropie.

Il n'y a pas suffisamment d'octets aléatoires disponibles. Veuillez faire
autre chose pour que le système d'exploitation puisse rassembler plus
d'entropie (287 octets supplémentaires sont nécessaires).
.+++++
+++++
De nombreux octets aléatoires doivent être générés. 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'obtenir suffisamment d'entropie.
.....+++++
.+++++
gpg: clef B92948DE marquée de confiance ultime.
les clefs publique et secrète ont été créées et signées.

gpg: vérification de la base de confiance
gpg: 3 marginale(s) nécessaire(s), 1 complète(s) nécessaire(s),
     modèle de confiance PGP
gpg: profondeur : 0  valables :   1  signées :   0
     confiance : 0 i., 0 n.d., 0 j., 0 m., 0 t., 1 u.
pub   1024R/B92948DE 2017-02-12
 Empreinte de la clef = C5F3 6E3A 69D8 7A63 434F  43BF 4768 0256 B929 48DE
uid                  GPG Test <gpg-test@debian-jessie>
sub   1024R/7F8FD1CF 2017-02-12

Afin que la génération de la clé ne soit pas trop longue, on a utilisé une longueur de clé de 1024 bits. Et hormis l'adresse e-mail, le nom réel et la passphrase de la clé privée, on a conservé les valeurs par défaut.

Vérifions la clé générée

Etape 2: Lister les clés gpg

debian@debian-jessie:~$ gpg --list-keys --armor
/home/debian/.gnupg/pubring.gpg
-------------------------------
pub   1024R/B92948DE 2017-02-12
uid                  GPG Test <gpg-test@debian-jessie>
sub   1024R/7F8FD1CF 2017-02-12

Voilà, nous somme prêt à encrypter un fichier.

Etape 3: Encrypter un fichier avec gpg

Voici les données que nous allons encrypter:

debian@debian-jessie:~$ cat secret_file.txt
This file contains sensitive data that we do not want to disclose.

That's why we will encrypt it with gpg asymetric encryption.

La commande à utiliser est toute simple. Il faut préciser:

  • la clé publique à utiliser pour encrypter, ce qui se fait en donnant l'adresse e-mail de celle-ci,
  • le fichier à encrypter
debian@debian-jessie:~$ gpg --recipient gpg-test@debian-jessie --encrypt secret_file.txt 
debian@debian-jessie:~$ ls secret_file.txt*
secret_file.txt  secret_file.txt.gpg

Le fichier initial secret_file.txt a été encrypté dans un fichier secret_file.txt.gpg.

Attention: Le fichier initial secret_file.txt n'est pas supprimé par gpg, c'est à vous de le faire explicitement !!!

Maintenant si on souhaite que le fichier encrypté s'appele autrement, par exemple safe_file.ext pour tromper l'ennemi:

debian@debian-jessie:~$ gpg --recipient gpg-test@debian-jessie --output safe_file.ext --encrypt secret_file.txt 

Cela se fait avec le flag --output qu'il faut placer avant le flag --encrypt.

Etape 4: Décrypter un fichier encrypté avec gpg

Maintenant, nous allons décrypter le fichier précédemment encrypté de la façon suivante:

debian@debian-jessie:~$ gpg --recipient gpg-test@debian-jessie --decrypt safe_file.ext 

Une phrase secrète est nécessaire pour déverrouiller la clef secrète de
l'utilisateur : « GPG Test <gpg-test@debian-jessie> »
clef RSA de 1024 bits, identifiant 7F8FD1CF, créée le 2017-02-12 (identifiant de clef principale B92948DE)

gpg: chiffré avec une clef RSA de 1024 bits, identifiant 7F8FD1CF, créée le 2017-02-12
      « GPG Test <gpg-test@debian-jessie> »
This file contains sensitive data that we do not want to disclose.

That's why we will encrypt it with gpg asymetric encryption.

On utilise maintenant le flag --decrypt, gpg nous demande la passphrase de la clé privée nécessaire à la décryption, et le contenu décrypté s'affiche sur la sortie standard.

Si l'on souhaite que le contenu décrypté soit enregistré dans le fichier output.txt, on utilise le flag --output comme suit:

debian@debian-jessie:~$ gpg --recipient gpg-test@debian-jessie --output output.txt --decrypt safe_file.ext 

Une phrase secrète est nécessaire pour déverrouiller la clef secrète de
l'utilisateur : « GPG Test <gpg-test@debian-jessie> »
clef RSA de 1024 bits, identifiant 7F8FD1CF, créée le 2017-02-12 (identifiant de clef principale B92948DE)

gpg: chiffré avec une clef RSA de 1024 bits, identifiant 7F8FD1CF, créée le 2017-02-12
      « GPG Test <gpg-test@debian-jessie> »

Vérifions le fichier décrypté:

debian@debian-jessie:~$ cat output.txt 
This file contains sensitive data that we do not want to disclose.

That's why we will encrypt it with gpg asymetric encryption.

Voilà, ce billet est un peu long. J'espère qu'il démystifie quelque peu l'utilisation de gpg pour ceux qui ne l'utilisent pas habituellement.