-
Chiffrement / déchiffrement asymétrique avec GnuPG
Après avoir vu comment chiffrer ses mails avec enigmail et chiffrer / déchiffrer un fichier avec GnuPG avec un chiffrement symétrique ( mot de passe ), nous allons voir comment chiffrer des fichiers / dossiers avec un chiffrement asymétrique ( clé publique / clé privée )....
Tutoriel réalisé sur Xubuntu 14.04.1 avec gpg (GnuPG) 1.4.16
Commandes et options essentielles GnuPG
Pour commencer, je vais générer une paire de clés avec la commande :
gpg --gen-key
Il va vous être alors demandé de choisir :
- Le type de clé souhaité
- La longueur de la clé
- La durée de validité de la clé
Il faudra également entrer quelques informations sur l'utilisateur afin d'associer la clé crée avec une personne physique ( ce qui sera important si vous souhaitez signer une clé...)
- Nom
- Adresse email
- Commentaire ( facultatif )
Enfin, vous devrez choisir le mot de passe qui servira à chiffrer votre clé privée.
PS : choisissez un mot de passe complexe mais facile à mémoriser pour vous.
Si vous oubliez votre mot de passe, vous ne pourrez plus utiliser vos clés.
(cliquer sur l'image pour l'agrandir)
La génération des clés doit se faire de manière aléatoire.
Cette génération se fait par l'intermédiaire d'actions que vous effectuerez sur votre ordinateur pendant la génération des clés ( frappe au clavier, mouvement de souris, navigation sur le web...)
Ces actions auront pour but de créer des bits aléatoires et plus ces bits aléatoires seront nombreux, plus la clé sera robuste.
Une fois la génération des clés terminée je peux voir :
- L'identifiant de ma clé publique sur 8 caractères avec sa date de création et sa taille.
- L'empreinte de la clé se terminant par les 8 derniers caractères de l'identifiant.
- L'utilisateur associé a la clé avec son adresse mail.
- La partie sub correspond à une sous-clé pouvant également servir à chiffrer ( utilisation des sous-clés OpenPGP ).
L'élément qui m’intéressera un peu plus loin dans le tutoriel est l'identifiant de ma clé publique.
(cliquer sur l'image pour l'agrandir)
Les clés publiques et privées sont situées dans le répertoire caché .gnupg situé dans votre répertoire personnel.
- pubring.gpg : clés publiques
- secring.gpg : clé privée
- random_seed : fichier utilisé pour générer des nombres aléatoires lors de la création des clés.
- trustdb.gpg : base de données de confiance.
Vous comprendrez qu'il est important de ne pas perdre pubring.gpg et secring.gpg et qu'il faudra effectuer des sauvegardes de ces éléments.
(cliquer sur l'image pour l'agrandir)
Pour visualiser la liste des clés publiques, utilisez la commande :
gpg --list-key
Pour visualiser la liste des clés privées, utilisez la commande :
gpg --list-secret-keys
(cliquer sur l'image pour l'agrandir)
Après la création d'une paire de clés, il est préférable de générer un certificat de révocation.
Ce certificat permettra d'annuler la validité de la clé privée en cas de problème ( sécurité compromise, perte du mot de passe...).
Pour créer ce certificat, j'utilise la commande :
gpg --output nom_certificat_révocation.asc --gen-revoke [uid]
Le mot de passe de votre clé vous sera demandé pendant la création du certificat.
(cliquer sur l'image pour l'agrandir)
Si vous souhaitez utiliser votre certificat pour révoquer votre clé, utilisez la commande :
gpg --import votre_certificat_révocation.asc
(cliquer sur l'image pour l'agrandir)
Si vous souhaitez exporter votre clé publique afin de la partager, utilisez la commande :
gpg --armor --export [uid] > nom_souhaité.asc
Voici à quoi ressemble ma clé publique....
(cliquer sur l'image pour l'agrandir)
Si vous souhaitez importer une clé publique, utilisez la commande :
gpg --import nom_fichier.asc
Ainsi vous pourrez chiffrer des fichiers / dossiers avec les clés publiques de vos amis, éléments qu'ils ne pourront déchiffrer qu'avec leur clé privée...
(cliquer sur l'image pour l'agrandir)
II est possible de déterminer un niveau de confiance d'une clé.
Le niveau de confiance va permettre de certifier que la clé appartient bien à la bonne personne....
Pour cela, il faut d'abord éditer la clé que l'on souhaite signer :
gpg --edit-key [uid]
Ensuite a signature va se dérouler en deux parties :
trust afin d'indiquer votre niveau de confiance en la personne.
sign afin d'indiquer comment la vérification de l'identité a été faite.
(cliquer sur l'image pour l'agrandir)
Dans cette seconde partie, nous allons voir comment chiffrer / déchiffrer des données avec les clés....
Afin de n'avoir à saisir qu'une seule fois la passphrase d'accès à ma clé privée GnuPG, le démon gpg-agent est démarré.
(cliquer sur l'image pour l'agrandir)
En mode chiffrement / déchiffrement symétrique, j'utilise les commandes suivantes :
Chiffrement fichiers : gpg --symmetric --cipher-algo aes256 -o [fichier sorti] [fichier lu]
--symmetric : un mot de passe sera demandé pour le chiffrement.
--cipher-algo aes256 : algorithme de chiffrement avec lequel le fichier sera chiffré.
-o [fichier sorti] : définit le nom du fichier à la sortie.
Déchiffrement fichiers : gpg -d -o [fichier sorti] [fichier lu]
-d : indique qu'il faut déchiffrer
-o [fichier sorti] : définit le nom du fichier à la sortie.
Le mot de passe utilisé pour le chiffrement vous sera demandé pour le déchiffrement.
(cliquer sur l'image pour l'agrandir)
Chiffrement dossiers : tar czf -[dossier lu] | gpg --symmetric --cipher-algo aes256 -o [dossier sorti]
tar czf : on crée une archive tar.gz du dossier
Le pipe | : va permettre de rediriger la sortie de la 1ère commande vers la seconde.
--symmetric : un mot de passe sera demandé pour le chiffrement.
--cipher-algo aes256 : algorithme de chiffrement avec lequel le fichier sera chiffré.
-o [dossier sorti] : définit le nom du fichier à la sortie.
Déchiffrement dossiers : gpg -d [dossier lu] | tar xzf -
-d : indique qu'il faut déchiffrer.
Le pipe | : va permettre de rediriger la sortie de la 1ère commande vers la seconde.
tar xzf - : on extrait le dossier de l'archive
Le mot de passe utilisé pour le chiffrement vous sera demandé pour le déchiffrement.
(cliquer sur l'image pour l'agrandir)
En mode chiffrement / déchiffrement asymétrique, j'utilise les commandes suivantes :
Chiffrement fichiers : gpg -e -r [uid] -o [fichier sorti] [fichier lu]
-e : indique qu'il faut chiffrer
-r : spécifie l'identifiant de la clé avec lequel le fichier doit être chiffré ( 8 caractères )
-o [fichier sorti] : définit le nom du fichier à la sortie.
Déchiffrement fichiers : gpg -d -r [uid] -o [fichier sorti] [fichier lu]
-d : indique qu'il faut déchiffrer
-r : spécifie l'identifiant de la clé avec lequel le fichier doit être déchiffré ( 8 caractères )
-o [fichier sorti] : définit le nom du fichier à la sortie.
(cliquer sur l'image pour l'agrandir)
Chiffrement dossiers : tar czf - [dossier lu] | gpg -e -r [uid] -o [dossier sorti]
tar czf : on crée une archive tar.gz du dossier
Le pipe | : va permettre de rediriger la sortie de la 1ère commande vers la seconde.
-e : indique qu'il faut chiffrer
-r : spécifie l'identifiant de la clé avec lequel le fichier doit être chiffré ( 8 caractères )
-o [dossier sorti] : définit le nom du fichier à la sortie.
Déchiffrement dossiers : gpg -d -r [uid] [dossier lu] | tar xzf -
-d : indique qu'il faut déchiffrer
-r : spécifie l'identifiant de la clé avec lequel le fichier doit être déchiffré ( 8 caractères )
Le pipe | : va permettre de rediriger la sortie de la 1ère commande vers la seconde.
tar xzf - : on extrait le dossier de l'archive
(cliquer sur l'image pour l'agrandir)
Conclusion :
Vous en savez un peu plus sur le chiffrement asymétrique avec GnuPG.
Je n'ai pas expliqué certaines options auquel cas ce tutoriel aurait bien été plus long, mais je vous incite à lire les 3 liens que j'ai mis en début d'article....
N'hésitez pas à me faire part de vos commentaires....
Tags : cle, fichier, chiffrement, gpg, dossier, symétrique, asymétrique
-
Commentaires
Bonjour Nico
Merci pour votre commentaire...
En effet, beaucoup de tutoriels traitent uniquement du chiffrement des fichiers avec GPG et pour la partie chiffrement des dossiers, je me suis basé comme très souvent sur les pages de man et mes quelques connaissances....
Ajouter un commentaire
Quand on cherche des tutoriels sur le chiffrement des fichiers avec GPG, beaucoup parlent du chiffrement des fichiers mais rarement du chiffrement des dossiers comme vous l'avez si bien fait dans votre tutoriel...
Merci pour le partage !!!