GPG (pour GNU Privacy Guard) est un logiciel d'outils cryptographiques permettant de signer numériquement, s'authentifier, chiffrer (et déchiffrer), générer des clés etc...
GPG est un outil polyvalent dans la lutte car il permet de sécuriser le contenu d'une discussion même à travers un canal publique. Il permets aussi de prouver qu'un communiqué émmane bien de vous et non d'un.e usurpateur.ice.
Nous allons voir au travers de ce tutoriel, comment générer une paire de clés qui permettront de faire ce que l'on appelle de la cryptographie asymétrique.
Et oui, on entre dans l'air des ordinateurs, et ceux-ci sont très puissant à casser certains codes. Vous connaissez surement le chiffrement de César qui consiste à "faire tourner" les lettres. On appelle ceci un algorithme. L'algorithme de César à besoin d'une clé qui corresponds à combien de lettres vous devez décaler.
Le chiffrement de César est dit symétrique. Cela veut dire que la clé pour chiffrer est la même qui est nécéssaire pour déchiffrer un message.
Cependant, cet algorithme est très facile à casser par analyse statistique. Ici nous allons nous intéresser a un algotithme beaucoup plus sécurisé: le RSA. Le RSA est un algorithme dit asymétrique: la clé de ciffrement est différente de la clé de déchiffrement, et une clé ne peut pas être utilisée pour effectuer le travail de l'autre.
Prennont un exemple concret: Alice et Bob. Alice et Bob veulent s'envoyer un message, sans qu'une personne tierce ne puisse la lire. Alice est la première à envoyer un message: elle chiffre son message avec la clé publique de Bob, une clé que tout le monde peut posséder. Cependant, personne à part Bob ne peut lire le message d'Alice. Et oui! Comme Bob est le seul détenteur de la clé privée, seul Bob peut alors lire le message de Alice, bien que tout le monde ai accès à la clé qui a été utilisée pour verrouiller le message.
Une des failles de ce système repose sur le stockage de la clé privée. En effet, si la clé privée venait à être publiée par mégarde par Bob, tout le monde qui a enregistré les messages chiffrés d'Alice peut les lire en clair! Il faut donc trouver une solution pour sécuriser cette clé privée.
D'ailleurs ce guide est inspiré du très bon drduh/YubiKey-Guide qui porte sur la configuration d'une telle Yubi Key.
Ce tutoriel est à destinée des utilisateur.ice.s de Linux. Si vous avez une distribution de Linux "simple", gpg devrait être installé de base sur votre ordinateur (il l'est sur Tails par exemple). Sinon, vous devriez savoir comment faire ;) (ou bien demandez de l'aide sur p0wder). Enfin, ce tutoriel détaille une procédure qui n'est pas particulièrement sécurisée. La faire sur un ordinateur compromis c'est compromettre cette clé. Nous recommandons l'usage d'un second ordinateur, complètement débranché d'internet comme figure sur drduh/YubiKey-Guide mais Tails très bien aussi.
Une clé peut être signée digitalement par une autre clé. Elle devient alors une sous-clé de celle ci. Nous allons créer 4 clés. Une clé maitraîsse, et trois sous-clés: une pour l'authentification, une pour la signature et une pour le chiffrement. On pourraît créer une seule clé qui ferait tout mais globalement, ca serait moins sécurisé.
On va commencer par prendre un bout de papier et y noter un mot de passe. On peut s'aider de générateurs comme openssl ou bitwarden. La clé devrait faire minimum 10-20 caractères et comprendre lettres, chiffres et caractères spéciaux. Une fois que cela est fait, on va créer la clé maîtresse:
GPG va ensuite vous demander de renseigner votre identité. Vous êtes bien enendu libre de mettre ce que vous souhaitez:
Félicitations! Vous avez créé votre clé :D. Notez précieusement l'ID de cette clé. Sur les dernière lignes, vous devriez lire "pub rsa4096/0x" avec 16 lettres en majuscules et chiffres. C'est votre ID de clé désormais.
Dans cette étape, on va venir rajouter des sous-clés à la toute nouvelle clé qu'on vient de faire. Pour cela:
Suivez ensuite ces opérations:
Vous pouvez taper la commande suivante afin de vérifier vos clés:
Vous pouvez maintenant passer à l'utilisation de GPG