Éditeur de texte Atom : comment chiffrer ou signer simplement un document via GPG
Avec un Gist en bonus
Le 17 août 2017 à 14h57
5 min
Logiciel
Logiciel
Si GPG permet de chiffrer simplement un fichier, ce n'est pas toujours aussi simple lorsqu'il s'agit de faire de même avec un morceau de texte... Ce qui peut pourtant s'avérer pratique pour protéger du contenu sensible dans un document. Heureusement, un package pour Atom permet de le faire. Nous en avons profité pour l'améliorer un peu.
GnuPG est un outil qui permet de chiffrer ou de signer simplement tout type de contenu. S'il est souvent évoqué dans le cadre de la gestion des emails du fait de sa nature asymétrique, il permet bien plus.
Il est ainsi très utilisé pour la distribution de fichiers avec signature par les développeurs, dans les différentes distributions Linux pour le déploiement de paquets, etc. Existant depuis près de 20 ans, il a beaucoup évolué depuis et dispose d'un écosystème assez complet.
Ainsi, on le retrouve intégré de manière native ou via des plugins à de nombreux outils où il permet d'ajouter une couche de chiffrement qui peut parfois s'avérer utile. C'est notamment le cas dans des éditeurs de texte, pour permettre aux développeurs de protéger facilement certaines données ou de partager simplement un texte chiffré/signé depuis une application qu'ils ont toujours sous la main.
C'est notamment le cas de Vim ou encore de SublimeText 3. Pour notre article du jour, nous avons décidé de nous attarder sur l'intégration à Atom, développé par les équipes de GitHub.
Le chiffrement/signature d'un texte en quelques clics
Celui-ci est pensé comme un outil simple, multi-plateforme et open source. Il permet d'éditer un simple texte aussi bien qu'un document en Markdown ou bien du code dans de nombreux langages. Il se veut surtout « hackable » et propose pour cela à n'importe qui de le compléter via des packages.
C'est par ce biais que l'on peut rajouter un module permettant de gérer GPG. Son installation est simple puisqu'il suffit de se rendre dans la section Install des paramètres (CTRL+,) et de chercher atom-gpg. La procédure ne prend que quelques secondes, et l'on pourra ensuite directement accéder aux paramètres du module :
Dans la partie Settings, deux champs permettent de préciser l'emplacement de GPG et du trousseau de clés. Si votre installation est classique, inutile de les remplir. Vous devrez ensuite préciser la liste des destinataires, soit via une liste écrite, soit via un fichier.
Ici, de premières subtilités émergent. Dans le premier cas, il faut indiquer un ou plusieurs destinataires à travers leur email ou l'ID de leur clé, séparés par une virgule. Si vous optez plutôt pour un fichier, il est possible de ne pas préciser de chemin précis. Dans ce cas, le module ira chercher le fichier dans le répertoire principal du projet en cours. Pratique si vous voulez adapter l'utilisation de l'extension à différents cas.
La section suivante, Keybindings, détaille les raccourcis claviers qui sont mis en place par défaut, mais comme nous allons le voir, ceux-ci peuvent poser problème et nécessitent une modification.
Quoi qu'il en soit, une fois un ou plusieurs destinataires entrés, ainsi que les éventuels paramètres nécessaires pour que le module puisse accéder à GPG et votre trousseau de clés, vous pouvez commencer à éditer un texte à chiffrer ou à signer.
Pour cela, on crée un nouveau fichier (CTRL+N) dans lequel vous pouvez taper ce que bon vous semble. Sélectionnez du texte, effectuez un clic droit et sélectionnez GPG Encrypt. Le tour est joué, le texte sélectionné est chiffré. Vous pouvez faire de même pour la signature ou le déchiffrement (mais il faudra disposer de la clef privée associée).
Une première correction...
Par défaut, ces opérations peuvent être effectuées avec la combinaison des touches CTRL+MAJ+E, D ou S. Mais comme vous pourrez facilement le vérifier, le second choix est déjà occupé par la fonction de déduplication de texte. Un problème qui peut simplement être corrigé.
Pour cela, il faut indiquer à Atom quelle fonction est prioritaire. Bien entendu, vous pouvez aussi décider de modifier la combinaison de touches de l'une ou l'autre des fonctionnalités (File>Settings>Keybindings). Mais E, D et S sont assez proches et facilement accessibles, ce qui nous convient plutôt bien pour l'usage visé.
Il faut donc éditer le fichier keymap.cson
qui est accessible via le menu File>Keymap afin de lui ajouter deux lignes de code permettant d'indiquer quelle commande effectuer de manière prioritaire :
'.editor':
'ctrl-shift-d':'atom-gpg:decrypt-selections'
... avant un changement plus en profondeur
Et si nous allions un peu plus loin ? En effet, il est possible d'utiliser les raccourcis non pas de manière identique aux fonctions accessibles depuis un clic droit, mais de manière complémentaire. Ainsi, ces combinaisons de touches pourraient être exploitées pour sélectionner automatiquement tout le texte du document et le (dé)chiffrer/signer entièrement.
Cette fois encore, il faudra éditer le fichier de keymap afin d'attribuer de nouvelles fonctions à nos touches, mais aussi le script d'initialisation d'Atom afin de les déclarer. Celui-ci prend le nom d'init.coffee
et se base sur CoffeeScript. Il est accessible via le menu File>Keymap.
Nous sommes ainsi arrivés au résultat suivant résumé dans un Gist :
Il vous suffit de rajouter ces lignes aux deux fichiers concernés, puis de les enregistrer et de relancer Atom. Vous aurez alors le fonctionnement recherché : un clic droit pour (dé)chiffrer/signer la sélection et les raccourcis CTRL+MAJ+E, D, ou S pour l'intégralité du document.
Le 17 août 2017 à 14h57
Éditeur de texte Atom : comment chiffrer ou signer simplement un document via GPG
-
Le chiffrement/signature d'un texte en quelques clics
-
Une première correction...
-
... avant un changement plus en profondeur
Commentaires (24)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 17/08/2017 à 15h23
#1
Ouh pitaing, un Gist avec du CoffeeScript fraîchement moulu dedans. Le site se radicalise " />
Demain on aura un package NPM à déployer sur un serveur Linux distant.
Le 17/08/2017 à 15h27
#2
Non, mais y’a du C# dans le pipe " />
Le 17/08/2017 à 15h30
#3
J’ai lu que ca fait le chiffrement d’une sélection.
Est-ce qu’on peut aussi signer une sélection ? Ca serait utile pour vérifier qu’une partie du code est authentique, par exemple un copier/coller d’un code provenant d’une source de confiance.
Le 17/08/2017 à 15h31
#4
Oui comme dit dans le papier la fonctionnalité de base concerne uniquement ce qui est sélectionné.
Le 17/08/2017 à 15h32
#5
Merci… " />
Le 17/08/2017 à 15h45
#6
Le 17/08/2017 à 15h58
#7
Il me semble en pratique bien plus simple de chiffrer/signer un fichier entier
Éventuellement signer un diff (si on veut authentifier le travail de chacun sur un fichier commun)
Mais chiffrer / signer un morceau de fichier, je ne vois pas l’usage.
Quelqu’un aurait des exemples pratiques?
Le 17/08/2017 à 15h59
#8
Ha yes… Je viens d’installer le package dans SublimeText. Je connaissais pas " />
Le 17/08/2017 à 16h13
#9
Une partie de mon quotidien… " />
some code
some other code
// Official Linear congruential generator from Rosetta Code
// Don’t touch that part or I kill you !!!!
//—–BEGIN PGP SIGNED MESSAGE—–
define rand() {
randseed = (randseed * 214013 + 2531011) % 2147483648
return randseed / 65536
}
//—–BEGIN PGP SIGNATURE—–
// iQwUzJwqexTEQLPACePnPE8VKKc…
//—–END PGP SIGNATURE—–
some code
some other code
Le 17/08/2017 à 16h39
#10
Tu peux aussi vouloir chiffrer / signer un fichier entier mais chercher à le faire directement depuis un éditeur du genre que tu as sous la main, sans avoir à taper une ligne de commande ou à sortie une GUI du genre de GPA/Kleopatra " />
Le 17/08/2017 à 16h40
#11
La dernière fois que j’ai testé elle n’était pas grandiose, mais je n’ai pas creusé outre mesure. Après ça a le mérite d’exister, d’où la mention :p
Le 17/08/2017 à 16h44
#12
Le 17/08/2017 à 16h51
#13
https://github.com/dmitrievav/sublime_gpg/issues
" />
Le 17/08/2017 à 16h54
#14
Le 17/08/2017 à 19h19
#15
Je te disais juste de déclarer le bug rencontré :p
Le 17/08/2017 à 19h36
#16
Le 18/08/2017 à 07h25
#17
Je ne connaissait pas Atom. Je suis allé sur le site avec l’objectif de le télécharger pour découvrir et essayer. Là j’ai vu ceci : “A hackable text editor for the 21st Century” et ceci : “Atom is a text editor that’s modern, approachable, yet hackable to the core”. Je me suis dit “chouette c’est super, je fonce”.
Mais là, j’ai vu ceci : “Download Windows 64-bit Installer” > AtomSetup-x64.exe (163 Mo).
Non, sérieusement, non. Ya un moment il faut des limites quand même. Soit c’est un éditeur de texte, et c’en est clairement pathétique, soit ça fait aussi le café moulu et torréfié, et dans ce cas les fonctionnalités devraient être indiquées dans la description.
Le 18/08/2017 à 08h06
#18
Le problème d’Atom, tout comme malheureusent de plus en plus d’app qui se veulent modernes en cross-platform, c’est que c’est basé sur Electron, un framework qui permet de faire des app en simple html/css/js. C’est donc un package qui embarque un navigateur internet (Chromium), un serveur NodeJS, et tout le bordel associé.
Du coup ça donne effectivement des applications énormes pour pas grand chose. Mais le pire c’est surtout :
Le 18/08/2017 à 08h34
#19
Marrant, c’était une des news d’hier sur /.
In Defense of the Popular Framework Electron
" />
Le 18/08/2017 à 08h54
#20
Merci pour cette explication.
Je comprends mieux le poids de l’application du coup. Mais cela confirme mon choix : il est hors de question que j’utilise ce genre de solution.
Question à ceux qui l’utilisent (Atom) : ça se lance vite ou pas ? Depuis un HDD ou SSD (la précision est importante) ?
Le 18/08/2017 à 09h09
#21
Bien moins vite que Notepad++ en tout cas.
Mais Atom est bien plus complexe qu’un “text editor”… on est plus niveau IDE tout de même.
M’enfin je me rend compte que je ne l’utilise pas ou plus au final.
Le 18/08/2017 à 09h44
#22
C’est plutôt un IDE type eclipse du coup ?
Le 18/08/2017 à 09h50
#23
Peut-être pas à ce point là mais pas loin oui.
Le 22/08/2017 à 14h00
#24