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.

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.

lundi 30 janvier 2017

Le Tor Browser Launcher ne fonctionne plus sur Debian ?

La dernière fois que j'ai utilisé le Tor Browser sur Debian, installé avec le paquet torbrowser-launcher, tout fonctionnait parfaitement.

Mais depuis, lors du lancement, le Tor Browser veut télécharger la dernière version du bundle et à la fin ce processus échoue en disant que la signature du fichier téléchargé est incorrecte:

Capture-Tor_Browser.png

J'ai essayé plusieurs fois et j'ai toujours le même message: "SIGNATURE VERIFICATION FAILED".

Dans la configuration du Tor Browser, on peut spécifier si le téléchargement s'effectue avec Tor ou non.

Capture-Tor_Browser_Launcher_Settings.png

Mais que la mise à jour soit faites par Tor ou non ne change rien au problème.

J'aimerai bien pouvoir utiliser ma version 6.0.8 bien qu'elle soit obsolète mais cela semble interdit ... C'est dommage, je le trouvais très commode ce paquet torbrowser-launcher pour utiliser Tor :-(

Je vais donc creuser la piste qui consiste à forcer l'utilisation de la version actuelle ou essayer d'utiliser les autres miroirs mais je pense qu'il y a une régression dans le code de vérification de la somme de contrôle du fichier.

Enfin, désinstaller complètement le paquet et le ré-installer n'a rien donné non plus.

- page 1 de 4