À propos du projet
git-crypt est un outil en ligne de commande qui permet le chiffrement et le déchiffrement transparents des fichiers dans un dépôt git. Les fichiers désignés pour la protection sont automatiquement chiffrés lors du commit et déchiffrés lors du checkout, permettant aux équipes de partager des dépôts contenant un mélange de contenu public et privé sans verrouiller l'ensemble du dépôt.
Les fonctionnalités clés incluent :
- Chiffrement et déchiffrement transparents via les filtres git, permettant aux utilisateurs de travailler avec git normalement après la configuration initiale
- AES-256 en mode CTR avec un IV synthétique dérivé du HMAC SHA-1 du fichier, offrant une sécurité sémantique sous attaque à texte clair choisi déterministe
- Partage de clés basé sur GPG pour la collaboration multi-utilisateurs, où les clés publiques sont ajoutées via git-crypt add-gpg-user
- Export de clé symétrique pour une distribution sécurisée des clés sans nécessiter GPG
- Dégradation gracieuse, afin que les développeurs sans la clé secrète puissent toujours cloner et commiter dans le dépôt
La configuration se fait via un fichier .gitattributes qui spécifie quels fichiers ou motifs doivent être chiffrés. Le format des motifs est similaire à .gitignore, supportant les jokers et les motifs de répertoires. Le fichier .gitattributes lui-même ne doit pas être chiffré, et les règles doivent être en place avant d'ajouter des fichiers sensibles.
Considérations de sécurité : git-crypt est plus sécurisé que d'autres systèmes de chiffrement git transparents qui utilisent ECB ou CBC avec un IV fixe. Cependant, il ne chiffre pas les noms de fichiers, les messages de commit, les cibles de liens symboliques ou d'autres métadonnées. Il ne cache pas quand un fichier change, la longueur d'un fichier, ou le fait que deux fichiers sont identiques. Il ne supporte pas non plus la révocation de l'accès à un dépôt chiffré précédemment accordé, car cela est intrinsèquement complexe dans le contexte des données historiques.
Les limitations incluent : il n'est pas adapté pour chiffrer la plupart ou tous les fichiers d'un dépôt (mieux adapté pour le chiffrement sélectif de quelques fichiers sensibles comme les clés privées ou les identifiants API), les fichiers chiffrés ne sont pas compressibles, donc même de petites modifications nécessitent de stocker l'intégralité du fichier, et il peut ne pas fonctionner de manière fiable avec certains GUI git tiers comme Atlassian SourceTree et GitHub pour Mac. Les fichiers chiffrés avec git-crypt ne peuvent pas être patchés avec git-apply à moins que le patch lui-même soit chiffré.
La dernière version est 0.8.0, publiée le 2025-09-23. Le projet vise à être sans bugs et fiable mais n'a pas encore atteint sa pleine maturité, et des changements incompatibles avec les versions précédentes peuvent être introduits avant la version 1.0.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.