Le calepin du geek
Geek : Personne s’intéressant à des domaines pointus, avec une once de créativité.

Ceci est un site perso, dans le pur esprit web 1.0, compilant des notes diverses sur des thèmes d’intérêt. (Informatique, programmation, voyage à vélo, réflexions)

GPG portable : chiffrer le presse-papier en un clic

Tutoriel : Comment créer une installation portable de GPG (en console) et faire un batch pour chiffrer en un clic le contenu du presse-papier sous windows.

Article mis en ligne le 13 août 2019
par aldoniel
Imprimer cet article logo imprimer

 Intro théorique

 Pourquoi ?

  • Utiliser GPG occasionnellement en console est plus fiable et assez rapide, d’autant que ces dernières années les GUI sous windows étaient à mon goût vraiment médiocres dans ce qui se fait d’officiel.
    • par plus fiable, il faut noter depuis EFAIL que l’implémentation des solution d’intégration de GPG/PGP est très délicate comme dans tout système complexe, et source de graves vulnérabilités car le code n’est pas trop audité d’un point de vue de sécurité (sauf par la NSA & Co. sans doute). Ainsi, l’intégration dans le client courriel, voir la GUI pourrait encore casser le chiffrage à l’avenir...
    • installation très légère (dans une archive l’installation pèse 2,5 Mo)
  • les versions portables toutes faites sont soit obsolètes, soit (et) sans aucun garantie de propreté, donc autant le faire soi-même.
  • L’idée en théorie de chiffrer le presse-papier directement est d’éviter de laisser trop de fichiers en clair sur le PC utilisé.
    • La philosophie de GPG est cependant qu’il ne devrait jamais être utilisé sur un « PC non sûr » (donc jamais en fait...)
    • Virtuellement, pour moi, un PC sûr c’est une machine à écrire mécanique ou à la limite un PC hors-réseau (dit Air-gap), tout le reste est plein de failles ou de mouchards en pratique... Alors disons que bien que ce soit contre la philo de base, c’est mieux que rien sur un PC a priori propre. Même Signal sur son téléphone c’est moyen vu que les agences peuvent le rooter comme n’importe quel PC en pratique.

 Non mais pourquoi en pratique ! ?

  • à quoi ça sert en pratique... question la plus délicate. Globalement à rien vu que GPG étant intrinsèquement très compliqué à comprendre et utiliser, ainsi que très mal implémenté graphiquement sous Windows, personne n’a vraiment réussi à s’en servir de manière durable. D’ailleurs, comme toutes les GAFA et gouvernements ont intérêt à ce que la vie privée n’existe pas, aucun webmail de Monsieur-Madame-tout-le-monde ne l’implémente.
  • D’ailleurs le courriel en tant que tel est en train de mourir comme moyen de communication au profit de Whatsapp et consorts.
  • Disons que je m’en sers pour envoyer des courriels chiffrés vers des adresses protonmail (qui elles implémentent une comatibilité GPG native et transparente) depuis une adresse pro en webmail d’intranet sur des PC pro partagés où je ne suis que de passage et où je n’ai pas d’accès internet direct, dans un bâtiment où les réseaux cellulaires sont quasi-bloqués. Voilà. Licorne.
PNG - 5.5 ko
Tree of knowledge
Upon your approach, the tree opens its eyes indelight. Ahh, an adventurer ! I will be happy to teach you a little of what I have learned over the ages. (Heroes 2 of Might and Magic, © NWC)

 Créer une installation portable, en pratique

  • aller sur https://gnupg.org/download/index.html
  • choisir « Simple installer for the current GnuPG » ( quelque chose comme https://gnupg.org/ftp/gcrypt/binary/gnupg-w32-2.2.17_20190709.exe )
  • Installer.
    • on peut vérifier la signature avec une ancienne version de GPG si on veut...
  • On peut lire dans la doc
    • « To install GnuPG as a portable application under Windows, create an empty file named gpgconf.ctl in the same directory as the tool gpgconf.exe. »
    • en français : créer un fichier vide gpgconf.ctl dans le répertoire de gpgconf.exe.
    • c’est à dire, sur un PC normal 64 bits, dans C:\Program Files (x86)\gnupg\bin
    • Sauf que ce répertoire étant verrouillé avec droits admin, je vous propose de copier tout le répertoire gnupg sur le support de destination (ou le bureau) avant de continuer pour se faciliter la vie.
    • cela fait, on peut déjà désinstaller gpg
    • ouvrir une commande dans gnupg\bin
    • créer le fichier vide
      • Il existe une commande en console si on veut : copy NUL gpgconf.ctl
      • si on veut limiter au possible la console, on peut aussi créer un fichier vide dans notepad et l’enregistrer dans gnupg\bin sous le bon nom.

 Importer sa clé publique

  • exporter sa clé publique (pas la privée, évidemment).
    • sur protonmail, on peut obtenir la clé publique de n’importe quel abonné via leur serveur de clés en http, c’est vraiment simple.
    • il faut juste construire l’url du type https://api.protonmail.ch/pks/lookup?op=get&search=user@protonmail.com (en mettant la bonne adresse courriel à la fin...) et l’ouvrir dans le navigateur pour obtenir la clé.
    • appelons la "pubkey.asc et copions-la dans /bin par simplicité"
  • tester gpg
  • ouvrir une console dans le répertoire de gpg.exe (votre installation\bin )
    • gpg -?
    • normalement ça affiche gpg (GnuPG) 2.2.17 ou supérieur. Si ça affiche gpg (GnuPG) 1.4.9, c’est l’ancienne version qui ne marchera pas (téléchargement erroné de l’ancienne version).
  • importer
    • gpg --import pubkey.asc

Normalement ça revoie un truc du genre :

ça renvoie quelque chose comme :

  • taper trust, entrée et 5 (confiance ultime), entrée, puis quit, entrée.

 usage (chiffrer)

 Usage en console

  • gpg -e -a -r user@mail.com text.txt
    • pour chiffrer un fichier
  • notons que si on ne veut pas saisir user@mail.com car trop long on peut juste écrire une partie de l’adresse via * + une partie de l’adresse , ex : *use ici.
  • echo du texte | gpg -e -a -r user@mail.com |clip
    • permet de saisir directement "du texte" dans la console de le chiffrer et de le mettre dans le presse papier.

 Usage automatisé par batch, sans console

  • Cette commande permet de saisir son texte dans un éditeur (en texte simple comme notepad++), de le mettre dans le presse papier puis de le chiffrer et de remettre le résultat dans le presse papier. powershell -sta "add-type -as System.Windows.Forms; [windows.forms.clipboa=rd]::GetText()" | gpg -e -a -r user@mail.com |clip

Au final, on a juste à se créer un fichier .bat dans l’installation de gpg (portable) dans le répertoire racine de /bin du type

Testé avec succès sous windows 10, windows 7 .

A télécharger

Pas de documents à télécharger pour cet article


Site réalisé sous SPIP
avec le squelette ESCAL-V3
Version : 3.70.61