• chevron_right

      C’est pas l’Age qui compte, c’est le chiffrement

      news.movim.eu / Korben · Tuesday, 21 February, 2023 - 08:00 · 2 minutes

    Aujourd’hui, j’aimerais vous présenter un outil de chiffrement simple d’utilisation, sécurisé avec des clés « explicites » et sans configuration.

    Son nom c’est Age et il est également disponible sous la forme d’une lib Go.

    Pour l’installer sous macOS :

    brew install age

    Pour l’installer sous Ubuntu :

    apt install age

    Pour l’installer sous Windows :

    scoop bucket add extras; scoop install age

    Des binaires pour Windows, Linux, macOS et FreeBSD sont également disponibles sur la page Github. Pour générer une nouvelle clé de chiffrement, vous pouvez procéder comme ceci :

    age-keygen -o key.txt

    Celle-ci sera stockée dans key.txt. Ensuite, vous pourrez l’utiliser pour chiffrer un fichier comme ceci :

    age --encrypt -i key.txt -o fichier.age fichier.txt

    Ou directement avec la clé avec le paramètre -r . Dans l’exemple ci-dessous, je vous montre également qu’on peut chiffrer des fichiers qui seraient le résultat d’une commande (ici une création d’archive tar) :

    tar cvz ~/data | age -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p > data.tar.gz.age

    Et pour déchiffrer ce fichier :

    age --decrypt -i key.txt fichier.age > fichier.txt

    Et vous pouvez également spécifier plusieurs clés pour tous vos destinataires.

    age -o example.jpg.age -r age1ql3z7hjy54pw3hyww5ayyfg7zqgvc7w3j2elw8zmrj2kg5sfn9aqmcac8p \
        -r age1lggyhqrw2nlhcxprm67z43rta597azn8gknawjehu9d9dl0jq3yqqvfafg example.jpg

    Vous pouvez également demander la création d’une phrase de passe avec le paramètre -p.

    age -p fichier.txt > fichier.txt.age

    L’outil vous demandera alors de saisir une phrase de passe ou la générera pour vous.

    Vous l’aurez compris, pas de clé privée. Juste une grosse clé (publique) qui sert à la fois pour le chiffrement et le déchiffrement. Rassurez-vous, age prend également en charge le chiffrement à partir de clés publiques SSH ssh-rsa et ssh-ed25519, et le déchiffrement se fait avec la clé privée correspondante. Pour chiffrer :

    age -R ~/.ssh/id_ed25519.pub exemple.jpg > exemple.jpg.age

    Pour déchiffrer :

    age -d -i ~/.ssh/id_ed25519 exemple.jpg.age > exemple.jpg

    Attention cela dit, la prise en charge des clés SSH utilise une cryptographie plus complexe et incorpore une balise de clé publique dans le fichier chiffré, ce qui permet de suivre les fichiers chiffrés avec cette clé spécifique.

    Et si ça vous intéresse, une implémentation en Rust est également disponible ici.

    De plus, il existe un plugin pour ceux qui veulent utiliser leur Yubikey avec ce truc 🙂

    À découvrir ici.