Jeton cryptographique de dépannage avec Gnuk

Après avoir commencé à étendre l’usage de mes clefs gpg via Yubikey à différents aspects de mon informatique, se pose la question de la résilience du système. Que faire en cas de perte, détérioration ou malfonction de l’outil qui sert à accéder à mon répertoire de mot de passe et à me connecter à mes serveurs. L’idéal reste de posséder une seconde Yubikey NFC vierge en réserve, pour pouvoir redéployer rapidement ses clefs de sécurité à partir de l’une des sauvegardes que l’on aura pris soin d’effectuer. Une autre solution consiste à détourner un matériel de son usage premier pour en faire une clé de sécurité prête à accueillir mes clés le temps d’effectuer la transition vers une nouvelle Yubikey, ou un autre support du même type.

Pour répondre à ce besoin, j’ai découvert un programme nommé Gnuk, qui permet de transformer un microcontrôleur de type STM32F103 en une clé de sécurité supportant le protocole OpenPGP card version 2. Il se trouve que ce type de processeur équipe les cartes de programmation ST-Linkv2 et qu’on trouve ces dernières pour moins de 2 euros sur Aliexpress. Afin de réaliser quelques tests, j’en ai donc commandé trois chez deux vendeurs différents et j’ai reçu l’ensemble des cartes après environ deux dizaines de jours. Il faut un minimum de deux ST-Linkv2, car l’un sera utilisé pour programmer l’autre.

Une fois en possession des ST-Linkv2, je commence donc par retirer leur boîtier métallique afin d’avoir accès à la carte. Je vérifie la version du microcontrôleur équipant les cartes: STM32F103C8T6, ça ne devrait pas poser de problème. En examinant les cartes, je constate que j’ai reçu deux modèles différents, l’un avec des pastilles métalliques, l’autre avec des trous pour l’accès au processeur. Autre point gênant que je constaterai lors de mes premiers essais de reprogrammation du processeur, l’alternance des « pins » de connexion au bout du ST-Link au boîtier rouge ne correspond pas à ce qui est inscrit sur le boîtier, attention donc en branchant les câbles, de bien vérifier directement sur le PCB à quoi correspond chaque pin.

Continuer la lecture de « Jeton cryptographique de dépannage avec Gnuk »

Nouveau format, place à la vidéo

Aujourd’hui je vous présente un nouveau format sur lequel je travaille. C’est à dire la vidéo. Avec ma première réalisation. Une présentation des règles d’un bon jeu de société. Trêve de bavardages et jugez donc par vous même.

J’aurais déjà beaucoup de remarque à me faire. Comme la nécessité d’acquérir un pied d’appareil photo pour ne pas avoir la sensation de voler au-dessus du plateau de jeu. Mais aussi l’amélioration de la bande son au milieu de la vidéo. Mon coude appuyé sur une petite chaise a produit un grain désagréable que je ne savais pas encore lisser. Voilà mes premières critiques en deux points.

N’hésiter pas à donner votre avis, bon ou mauvais. Vous pouvez aussi vous abonner à la chaine Youtube par intérêt ou simplement pour suivre ma progression, ou du moins je l’espère.

Signer un commit Git

Je continue de tester les différentes possibilités offertes par l’utilisation d’un jeu de clés gpg, cette fois dans le domaine de la gestion de code avec git. L’idée consiste à signer ses commits git afin de garantir l’identité de la personne ayant réalisée les modifications.

Première étape, récupérer l’identifiant de sa clé PGP:

gpg --list-secret-keys --keyid-format LONG

Une fois en possession de l’identifiant, on met à jour la configuration git.

git config --global user.signingkey <ID-cle>

Ce qui se traduit par l’ajout suivant dans le fichier de configuration.

[user]
signingkey = 069DXXXXXX4A5F7A

Il est ensuite nécessaire d’ajouter le résultat de la commande suivante au niveau de son serveur git. Dans le cas de Github, la configuration s’effectue sur la même page que la page de configuration des clés SSH.

gpg --armor --export <ID-cle>

Passons à la signature à proprement parler. Pour signer un tag, on utilisera l’option -s.

git tag -s v1.5 -m 'my signed 1.5 tag'

Pour signer un commit, on utilisera cette fois l’option -S.

git commit -S -m 'signed commit'

Enfin, pour éviter d’avoir à ajouter en permanence l’option -s ou -S, on pourra configurer git pour toujours signer les tags et les commits.

git config --global commit.gpgsign true
git config --global tag.gpgsign true

Étant donné qu’il est possible pour n’importe quel utilisateur de réécrire l’historique d’un dépôt git et de modifier au passage les informations de l’auteur du commit, ou plus simplement, de modifier l’auteur le temps du commit, la signature des opérations git permet de s’assurer de l’identité de la personne ayant effectué l’opération et de se prémunir contre une éventuelle tentative d’usurpation d’identité (à condition que la clé ne soit pas compromise).

pass comme gestionnaire de mot de passe

Cela fait maintenant plusieurs années que j’utilise un gestionnaire de mot de passe pour retenir à ma place les informations d’accès aux différents services que j’utilise. J’avais jusqu’à présent choisi d’utiliser Keepass, en particulier pour ces fonctions de synchroniser via WebDAV et l’existence de ses nombreuses variantes qui permettent une utilisation sur GNU/Linux, Windows, Mac et Android sans trop de difficultés. Très récemment, j’ai décidé de changer de gestionnaire et de tester pass.

Quelques mots sur pass. Le programme de base prend la forme d’une simple ligne de commande. Chaque entrée consiste en un fichier dont la première ligne contient le mot de passe. On peut ensuite stocker diverses informations sur les lignes suivantes, comme url, username, clés d’API, etc. Tous les fichiers sont chiffrés par clé gpg. Lorsqu’on accède à l’un des fichiers de mot de passe, seul ce fichier sera déchiffré et non l’ensemble de la base comme c’est en général le cas avec les autres gestionnaires. La synchronisation est assurée par git, ce qui permet de bénéficier de l’historique du dépôt qui constituera notre base de référence de mot de passe.

Continuer la lecture de « pass comme gestionnaire de mot de passe »