Le 3 avril 2014 j’ai fais une petit présentation de GPG au cours de la session de cocoaheads.
La majorité des slides est reproduite ici.
GPG
(ou comment mettre la NSA en difficulté)
Présentation en deux parties
- Première partie : théorie
- Seconde partie : pratique
Première partie
Qu’est-ce que GPG ?
- GnuPG (GNU Privacy Guard)
- Implémentation libre de PGP (Pretty Good Privacy)
- Chiffrement par clef asymétrique
- Chiffrement point à point
Les versions de GPG
Il existe deux versions qui évoluent en parallèle.
- GnuPG 1.4.16
- GnuPG 2.0.22
La version 2.0 ajoute le fonctionnement sur carte à puce. La clef privée est stockée sur une telle carte et est protégée par le code PIN de celle-ci.
Vocabulaire
En résumé, les mots “crypter” et “cryptage” n’existent pas.
Principe de fonctionnement
- Chacun possède 2 clefs :
- clef privée qui doit rester privée (et sauvegardée) ;
- clef publique, qui doit être diffusée (réseau de serveur de clefs publiques).
Quatre opérations de base
- Signer un message, un fichier ;
- chiffrer un message, un fichier ;
- vérifier la signature d’un message, d’un fichier ;
- déchiffrer un message, un fichier.
Signer un message, un fichier
Avec ma clef privée je peux signer un message ou un texte assurant mon/mes correspondant(s) que j’en suis bien l’auteur.
Chiffer un message, un fichier
Avec la clef publique du destinataire, je vais chiffrer un message ou un fichier. Seul le destinataire avec sa clef privée sera capable d’en déchiffrer le contenu.
Vérifier la signature d’un message, d’un fichier
En ayant la clef publique (récupérée d’un serveur) de l’expéditeur du message, je peux m’assurer qu’il en est bien l’auteur.
Déchiffer un message, un fichier
L’expéditeur ayant utilisé ma clef publique, je suis le seul à pouvoir le déchiffrer avec ma clef privée.
Le réseau de confiance
Rien ne me garantit que alice@exemple.com est bien Alice, du pays des merveilles.
Pour éviter ce problème, les clefs publiques sont signées par notre clef privée après que l’on a vérifié l’identité de la personne à l’aide d’une ou deux pièces d’identité officielle (carte d’identité, passeport, permis de conduite, etc.)
Comment ça marche ?
- Alice et Bob signent mutuellement leurs clefs ;
- Alice et Bob ont une confiance ultime dans la clef de l’autre.
- Christian et Alice ont également une confiance ultime l’un envers l’autre ;
- Christian peut avoir une confiance marginale envers la clef de Bob.
- Christian accorde sa confiance ultime à Daniel et de Étienne (et la réciproque s’applique) ;
- Daniel et Étienne accordent une confiance ultime à Bob ;
- Christian peut alors avoir une confiance complète dans la clef de Bob.
On a donc 4 niveaux de confiance :
- 0 → pas confiance (je ne connais pas cette personne) ;
- 1 → confiance marginale (je la connais sans l’avoir rencontrée) ;
- 2 → confiance complète (j’ai rencontré plusieurs fois cette personne) ;
- 3 → confiance ultime (j’ai vérifié l’identité de cette personne et la concordance avec sa clef).
Fin de la première partie
Seconde partie
Où nous allons passer des slides à la démo constamment.
Travaux pratiques
On télécharge GPGSuite sur le site de (GPGTools)(https://gpgtools.org) et on installe.
Génération d’une paire de clefs
- Nous choisissons une clef RSA/RSA d’une longueur d’au moins 4096 bits (on garde un multiple de 8, 8192 est une valeur admissible par exemple) ;
- on donne une passe phrase pour notre paire de clef (attention, nous allons avoir besoin de nous en souvenir de temps en temps) ;
- on décoche l’expiration de la clef (notre clef n’expire jamais).
En ligne de commande
|
|
La paire de clefs apparait dans GPG Keychain Access
- sec/pub indique que nous avons une clef privée (sec) et une clef publique (pub).
En ligne de commande
|
|
Génération d’un certificat de révocation
S’il arrive un malheur à notre clef, il est PRIMORDIAL pour notre sécurité et celle de notre réseau de confiance, de pouvoir dire que cette clef n’est plus valide.
On génère tout de suite un certificat de révocation que l’on conserve, sur un média sécurisé (en plusieurs exemplaires s’il le faut).
La génération de ce certificat se fait dans le menu Clef → Générer certificat de révocation.
Mieux vaut avoir ce certificat sur soit en cas de perte du portable.
En ligne de commande
|
|
Maintenant, on jure et on crache
Je veux que vous juriez sur ce que vous avez de plus cher que dès ce soir en rentrant vous allez sauvegarder sur un média sécurisé (un CD avec un dmg chiffré par exemple) le répertoire .gnupg qui se trouve dans votre répertoire de départ et le certificat de révocation.
Envoi sur un serveur de clef
Nous pouvons maintenant envoyer notre clef sur un serveur de clef. Menu Clef → Envoyer à un serveur de clef.
En ligne de commande
$ gpg keyserver subkeys.pgp.net send EC35F55F
Récupérer les clefs des copains
Nous allons récupérer les clefs des copains. Commençons par la mienne, jacques@foucry.net, ID EC35F55F.
Dès à présent vous pouvez m’envoyer un message signé avec votre clef privée, voire chiffé avec ma clef publique.
En ligne de commande
|
|
Mais vous n’avez pas confiance en ma clef.
En ligne de commande
|
|
Mise à jour des clefs
Le menu Clef → Mettre à jour serveur de clés met bien à jour ma clef et on peut voir qui a signé ma clef.
En ligne de commande
|
|
Maintenant, à vous de jouer
Signez les clefs de vos voisins, faites signer vos clefs, étendez le réseau de confiance, il est temps de rendre la surveillance plus coûteuse et donc moins aisée.
Une chiffro fête
Lors d’une chiffro fête, on vient avec sa (ses) pièce(s) d’identité et des empreintes de notre clef :
- Nom : Jacques Foucry
- Identifiant : jacques@foucry.net
- Short ID : EC35F55F
- Empreinte : 5DDB D0BD B373 ED3A 0348 5F6B 6471 A4FF EC35 F55F
Avez-vous remarqué que le short ID ce sont les 8 derniers caractères de l’empreinte ?
En ligne de commande
|
|
J’obtiens les informations nécessaires
On échange nos empreintes, on vérifie les identités, et de retour à la maison, on signe toutes les clefs dont nous avons les empreintes ET vérifié l’identité du porteur.
À propos de Phil Zimmerman
Il est actuellement partie prenante dans le projet blackphone.
Pour aller plus loin
- Le site de GPG ;
- le site de GPGTools ;
- GPG sur une carte à puce ;
- plein de truc de sécurité dont les smartcard.
Le dernier mot
Cette petite conf est dédiée à Chelsea Elizabeth Manning (née Bradley Manning), à Edward Snowden, à Julian Assange et à tous les lanceurs d’alertes qui nous ouvrent les yeux sur les pratiques plus que douteuse de NOS GOUVERNEMENTS.