Éditeur de texte Atom : comment chiffrer ou signer simplement un document via GPG

Éditeur de texte Atom : comment chiffrer ou signer simplement un document via GPG

Avec un Gist en bonus

Avatar de l'auteur

David Legrand

Publié dansLogiciel

17/08/2017
24
Éditeur de texte Atom : comment chiffrer ou signer simplement un document via GPG

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 :

Atom-gpgAtom-gpg

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.

24
Avatar de l'auteur

Écrit par David Legrand

Tiens, en parlant de ça :

Carte graphique AMD GeForce

Cartes graphiques : 30 ans d’évolution des GPU

Ha… la bonne époque d’un CF de 4870 X2 !

18:10 Hard 12

Google lance son opération de communications Gemini pour rivaliser avec OpenAI

Preprint not PR-print

17:31 IA 5
Ecran bleu de Windows

Linux : le composant systemd se dote d’un écran bleu de la mort

LoL Micro$oft

16:33 Soft 25

Sommaire de l'article

Introduction

Le chiffrement/signature d'un texte en quelques clics

Une première correction...

... avant un changement plus en profondeur

Carte graphique AMD GeForce

Cartes graphiques : 30 ans d’évolution des GPU

Hard 12

Google lance son opération de communications Gemini pour rivaliser avec OpenAI

IA 5
Ecran bleu de Windows

Linux : le composant systemd se dote d’un écran bleu de la mort

Soft 25
Une petite fille en train d'apprendre à programmer et hacker logiciels et appareils électroniques

Un roman graphique explique les logiciels libres aux enfants

SoftSociété 17
Nouveautés pour Messenger

Meta lance (enfin) le chiffrement de bout en bout de Messenger, entre autres

Socials 5

#LeBrief : cloud européen, OSIRIS-REx a frôlée la catastrophe, CPU AMD Ryzen 8040

Windows en 2024 : beaucoup d’IA, mais pas forcément un « 12 »

Soft 18
Einstein avec des qubits en arrière plan

Informatique quantique, qubits : avez-vous les bases ?

HardScience 9
Notifications iPhone

Surveillance des notifications : un sénateur américain demande la fin du secret

DroitSécu 15

En ligne, les promos foireuses restent d’actualité

DroitWeb 19

#LeBrief : modalité des amendes RGPD, cyberattaque agricole, hallucinations d’Amazon Q, 25 ans d’ISS

Logo Twitch

Citant des « coûts prohibitifs », Twitch quitte la Corée du Sud

ÉcoWeb 29
Formation aux cryptomonnaies par Binance à Pôle Emploi

Binance fait son marketing pendant des formations sur la blockchain destinées aux chômeurs

Éco 10
Consommation électrique du CERN

L’empreinte écologique CERN en 2022 : 1 215 GWh, 184 173 teqCO₂, 3 234 Ml…

Science 6
station électrique pour voitures

Voitures électriques : dans la jungle, terrible jungle, des bornes de recharge publiques

Société 75

#LeBrief : intelligence artificielle à tous les étages, fichier biométrique EURODAC

KDE Plasma 6

KDE Plasma 6 a sa première bêta, le tour des nouveautés

Soft 13
Un homme noir regarde la caméra. Sur son visage, des traits blancs suggèrent un traitement algorithmique.

AI Act et reconnaissance faciale : la France interpelée par 45 eurodéputés

DroitSociété 4
Api

La CNIL préconise l’utilisation des API pour le partage de données personnelles entre organismes

SécuSociété 3
Fouet de l’Arcep avec de la fibre

Orange sanctionnée sur la fibre : l’argumentaire de l’opérateur démonté par l’Arcep

DroitWeb 23
Bombes

Israël – Hamas : comment l’IA intensifie les attaques contre Gaza

IA 22

#LeBrief : bande-annonce GTA VI, guerre électronique, Spotify licencie massivement

Poing Dev

Le poing Dev – Round 7

Next 102
Logo de Gaia-X sour la forme d’un arbre, avec la légende : infrastructure de données en forme de réseau

Gaia-X « vit toujours » et « arrive à des étapes très concrètes »

WebSécu 6

Trois consoles portables en quelques semaines

Hard 37
Une tasse estampillée "Keep calm and carry on teaching"

Cyberrésilience : les compromis (provisoires) du trilogue européen

DroitSécu 3

#LeBrief : fuite de tests ADN 23andMe, le milliard pour Android Messages, il y a 30 ans Hubble voyait clair

next n'a pas de brief le week-end

Le Brief ne travaille pas le week-end.
C'est dur, mais c'est comme ça.
Allez donc dans une forêt lointaine,
Éloignez-vous de ce clavier pour une fois !

Commentaires (24)


ColinMaudry Abonné
Le 17/08/2017 à 15h23

Ouh pitaing, un Gist avec du CoffeeScript fraîchement moulu dedans. Le site se radicalise <img data-src=" />

Demain on aura un package NPM à déployer sur un serveur Linux distant.


David_L Abonné
Le 17/08/2017 à 15h27

Non, mais y’a du C# dans le pipe <img data-src=" />


127.0.0.1
Le 17/08/2017 à 15h30

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.


David_L Abonné
Le 17/08/2017 à 15h31

Oui comme dit dans le papier la fonctionnalité de base concerne uniquement ce qui est sélectionné.


127.0.0.1
Le 17/08/2017 à 15h32

Merci… <img data-src=" />


boogieplayer
Le 17/08/2017 à 15h45






David_L a écrit :

Non, mais y’a du C# dans le pipe <img data-src=" />



Ceci n’est pas un | <img data-src=" />



Zerdligham Abonné
Le 17/08/2017 à 15h58

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?


Ricard
Le 17/08/2017 à 15h59

Ha yes… Je viens d’installer le package dans SublimeText. Je connaissais pas <img data-src=" />


127.0.0.1
Le 17/08/2017 à 16h13

Une partie de mon quotidien… <img data-src=" />


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


David_L Abonné
Le 17/08/2017 à 16h39

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 <img data-src=" />


David_L Abonné
Le 17/08/2017 à 16h40

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


Ricard
Le 17/08/2017 à 16h44






David_L a écrit :

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


Ca signe bien, mais ça chiffre pô.<img data-src=" />
Sitôt installé, sitôt supprimé.



David_L Abonné
Le 17/08/2017 à 16h51
Ricard
Le 17/08/2017 à 16h54






David_L a écrit :

https://github.com/dmitrievav/sublime_gpg/issues

<img data-src=" />


Merci mais full Linux chez moi.<img data-src=" />

Du coup, je télécharge Atom.<img data-src=" />



David_L Abonné
Le 17/08/2017 à 19h19

Je te disais juste de déclarer le bug rencontré :p


Ricard
Le 17/08/2017 à 19h36






David_L a écrit :

Je te disais juste de déclarer le bug rencontré :p


Ha ok.<img data-src=" />



Nozalys Abonné
Le 18/08/2017 à 07h25

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” &gt; 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.


ort Abonné
Le 18/08/2017 à 08h06

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 :




  • que plein de web developper se mettent à faire des applications “natives” en utilisant Electron comme ils feraient une app web, ce qui donne des trucs dégueulasse à l’usage

  • et surtout la platform electron nécessite un hardware costaud, même pour un simple éditeur, et avec une carte graphique pas trop à la ramasse car sans acceleration matériel c’est effroyablement lent (quand ça se lance) ; et par exemple nous au boulot, comme dans beaucoup d’endroit, les postes de travail n’ont qu’une solution graphique intégré au processeur, ce qui est trop léger. Je ne parle même pas de lancer les dites application en bureau distant (serveur X)…


127.0.0.1
Le 18/08/2017 à 08h34

Marrant, c’était une des news d’hier sur /.

In Defense of the Popular Framework Electron

<img data-src=" />


Nozalys Abonné
Le 18/08/2017 à 08h54

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) ?






127.0.0.1 a écrit :

Marrant, c’était une des news d’hier sur /.

In Defense of the Popular Framework Electron

<img data-src=" />


Visiblement ce dév semble ravi de cette solution, tant mieux pour lui. Néanmoins toutes les applications que j’ai utilisé par le passé, basées sur Chromium et node.js (avec ou sans Electron, j’en sais rien) m’ont toujours laissé un goût de travail bâclé. C’est peut-être la force d’Electron, mais je n’en saurais rien ^^



CryoGen Abonné
Le 18/08/2017 à 09h09

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.


Nozalys Abonné
Le 18/08/2017 à 09h44

C’est plutôt un IDE type eclipse du coup ?


CryoGen Abonné
Le 18/08/2017 à 09h50

Peut-être pas à ce point là mais pas loin oui.


Zerdligham Abonné
Le 22/08/2017 à 14h00






127.0.0.1 a écrit :

Une partie de mon quotidien… <img data-src=" />


Merci, mais… je ne comprends pas plus l’intérêt que suite à la lecture de l’article.
Dans ce contexte, c’est qui qui signe? toi en tant qu’ajouteur du bloc sensible? l’auteur du code d’origine?
Comment tu t’aperçois si quelqu’un l’a modifié? un robot qui parse le texte et qui vérifie la cohérence des signatures ? dans ce cas il se passe quoi si l’autre retire aussi les morceaux liés à PGP, et que ça redevient du code ‘normal’?
Pourquoi ne pas gérer l’intégrité ces moreaux de code sensibles via les droits d’édition ?



David_L a écrit :

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 <img data-src=" />


Merci, ça je vois bien, c’est vraiment sur la signature partielle que j’ai du mal à comprendre.
(perso, si j’avais l’usage de la signature, je chercherais plutôt un outil avec intégration au clic droit de l’explorateur, ça me semble être le plus simple pour un usage léger)