| Git-crypt is a dead product with numerous unresolved issues and drawbacks. Newer versions of git cause git to crash when invoking git-crypt[0]. It doesn’t scale with users: Off-boarding a key is a commit in git. Since it is trivially easy to rewind a git repo before the revocation commit and then decrypt with the revoked key, this means you need to rotate every key under management when any revoke is performed. It provides the illusion of asymmetric key encryption, but your asymmetric key wraps a shared symmetric key used to encrypt the entire repository. This also means a user could roll the repository back before a key was revoked and steal the symmetric key used to protect the repository and then use that key to decrypt the repository any time in the future. It doesn’t scale with the number of files under management. As a result of how it’s implemented, every invocation is a separate process launch. This means every file triggers an asymmetric unwrap of the symmetric key. If you’re protecting your GPG key with hardware keyfob, decrypting the repository will take a long time. This product seemed like a cool idea for a while but it’s implementation leave much to be desired and has not stood the test of time… Password-store[1] does a better job than git-crypt for single user git based gpg encrypted password management. For multi-user git repo encryption I prefer Mozilla SOPS[2], especially when coupled with something like AWS KMS… But then you might consider stepping up to something like Hashicorp Vault[3] or Infisical[4]. [0] https://github.com/AGWA/git-crypt/issues/273 [1] https://www.passwordstore.org/ [2] https://github.com/getsops/sops [3] https://www.vaultproject.io/ [4] https://infisical.com/ |
Secrets belong in secrets stores, accessible via auditable IAM role grants.