Aller au contenu
Korben, roi d’internet, logo bébé avec des lunettes en mode thug life

Git-crypt – Du chiffrement transparent pour Git

Si vous cherchez un moyen de chiffrer certains de vos fichiers présents sur un dépôt git, je vous invite à tester git-crypt. Ce logiciel utilise un algorithme de chiffrement AES-256 et permet de manière totalement transparente de synchroniser des fichiers tout en les protégeant des yeux indiscrets.

Attention, ce n’est pas conçu pour chiffrer tout un dépôt. Si c’est ce que vous voulez faire, il vaut peut-être mieux tout mettre dans un conteneur TrueCrypt et synchroniser ce conteneur. Mais en tout cas, dans certaines situations, cela permet de partager des dépôts en toute sécurité, avec des développeurs que vous connaissez un peu moins et en lesquels vous avez un peu moins confiance. Vous pouvez alors proposer un dépôt mixte mi-privé mi-public et protéger des infos confidentielles genre des clés ou des mots de passe qui ne doivent pas se retrouver dans la nature.

Pour installer git crypt, il faudra le compiler sous Linux (ou en mode expérimental sous Windows) et sous mac, il suffit d’utiliser homebrew comme ceci :

brew install git-crypt

Placez vous ensuite dans le dépôt qui vous intéresse et initialisez git-crypt

cd repo
git-crypt init

Cela va générer une clé de chiffrement, que vous devez absolument exporter comme ceci pour en conserver une copie et pouvoir déchiffrer vos fichiers.

git-crypt export-key ../git-crypt-key

Maintenant, imaginez que vous ayez une clé API à protéger dans votre code source ? Cette clé se trouve dans un fichier key.api.conf. Pour dire à git-crypt de s’occuper de ce fichier, il faut le spécifier dans la config .gitattributes présent dans votre dépôt. Ajoutez la ligne suivante dans .gitattribute :

key.api.conf filter=git-crypt diff=git-crypt

Vous pouvez bien sûr utiliser un nom complet de fichier ou un pattern type *.conf ou *.api.conf.

Puis commitez ce fichier sur votre dépôt git :

git add .gitattributes 
git commit -m "Dit à git-crypt de chiffrer key.api.conf"

Maintenant on va rajouter le secret dans le fichier key.api.conf :

echo "mon-secret" > key.api.conf

Pour le moment, le fichier n’est pas encore envoyé sur le git et je vous conseille de vérifier que git-crypt le prend bien en compte. Pour cela, entrez la commande suivante :

git-crypt status

Ajoutez ensuite votre fichier de conf à sécuriser sur le git comme ceci :

git add key.api.conf 
git commit -m "ajout de la clé api"

Ensuite pour voir si vraiment votre fichier est bien déchiffré en local, faites tout simplement un petit cat dessus.

cat key.api.conf 

Pour savoir si le fihier est bien chiffré côté git, il faut verrouiller votre git-crypt avec la commande :

git-crypt lock

Puis allez jetez un œil au fichier.

cat key.api.conf 

Logiquement le contenu devrait être totalement chiffré. Pour débloquer à nouveau votre dépôt local, utilisez la commande unlock en spécifiant la clé de déchiffrement.

git-crypt unlock ../git-crypt-key

Plus d’infos ici.

Article mis à jour le 12/11/2020
Article publié initialement le 22/04/2014

Que faire après le bac quand on est passionné de cybersécurité ?

Entièrement dédiée à la cybersécurité, l’école Guardia est accessible soit directement après le bac (post-bac), soit après un bac+2 ou bac+3. En rejoignant l’école Guardia, vous deviendrez développeur informatique option cybersécurité (Bac+3) ou expert en cybersécurité (Bac+5).

Cliquez ici pour en savoir plus

Lien sponsorisé


Les articles du moment