Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
git-crypt — Crittografia trasparente dei file in git | Kitploit
Strumenti/GitHubGitHub/agwa/git-crypt
Autenticazione e AutorizzazioneStrumenti di Crittografia/DecrittografiaEsfiltrazione DatiCrittografiaRilevamento SegretiSicurezza della Supply Chain
GitHubagwa/git-crypt

git-crypt

Crittografia trasparente dei file in git

Vedi Repository
9.8k53811 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Sito web

git-crypt - crittografia trasparente dei file in git

git-crypt abilita la crittografia e decrittografia trasparente dei file in un repository git. I file che scegli di proteggere vengono crittografati quando vengono committati e decrittografati quando vengono estratti. git-crypt ti permette di condividere liberamente un repository contenente una miscela di contenuti pubblici e privati. git-crypt degrada in modo elegante, quindi gli sviluppatori senza la chiave segreta possono comunque clonare e committare in un repository con file crittografati. Questo ti permette di archiviare il tuo materiale segreto (come chiavi o password) nello stesso repository del tuo codice, senza dover bloccare l'intero repository.

git-crypt è stato scritto da Andrew Ayer ([email protected]). Per maggiori informazioni, visita https://www.agwa.name/projects/git-crypt.

Compilare git-crypt

Vedi il file INSTALL.md.

Usare git-crypt

Configurare un repository per usare git-crypt:

root@kitploit:~
cd repo
git-crypt init

Specifica i file da crittografare creando un file .gitattributes:

root@kitploit:~
secretfile filter=git-crypt diff=git-crypt
*.key filter=git-crypt diff=git-crypt
secretdir/** filter=git-crypt diff=git-crypt

Come un file .gitignore, può corrispondere a wildcard e dovrebbe essere committato nel repository. Vedi sotto per maggiori informazioni su .gitattributes. Assicurati di non crittografare accidentalmente il file .gitattributes stesso (o altri file git come .gitignore o .gitmodules). Assicurati che le tue regole .gitattributes siano in atto prima di aggiungere file sensibili, altrimenti quei file non verranno crittografati!

Condividi il repository con altri (o con te stesso) usando GPG:

root@kitploit:~
git-crypt add-gpg-user USER_ID

USER_ID può essere un ID chiave, un'impronta completa, un indirizzo email o qualsiasi altra cosa che identifichi univocamente una chiave pubblica per GPG (vedi "HOW TO SPECIFY A USER ID" nella pagina man di gpg). Nota: git-crypt add-gpg-user aggiungerà e committerà un file di chiave crittografato con GPG nella directory .git-crypt della radice del tuo repository.

In alternativa, puoi esportare una chiave segreta simmetrica, che devi trasmettere in modo sicuro ai collaboratori (GPG non è richiesto e nessun file viene aggiunto al tuo repository):

root@kitploit:~
git-crypt export-key /path/to/key

Dopo aver clonato un repository con file crittografati, sblocca con GPG:

root@kitploit:~
git-crypt unlock

O con una chiave simmetrica:

root@kitploit:~
git-crypt unlock /path/to/key

Questo è tutto ciò che devi fare: dopo che git-crypt è configurato (con git-crypt init o git-crypt unlock), puoi usare git normalmente: la crittografia e la decrittografia avvengono in modo trasparente.

Stato attuale

L'ultima versione di git-crypt è 0.8.0, rilasciata il 2025-09-23. git-crypt mira a essere privo di bug e affidabile, nel senso che non dovrebbe crashare, malfunzionare o esporre i tuoi dati riservati. Tuttavia, non ha ancora raggiunto la maturità, il che significa che non è così documentato, ricco di funzionalità o facile da usare come dovrebbe essere. Inoltre, potrebbero esserci modifiche retroincompatibili introdotte prima della versione 1.0.

Sicurezza

git-crypt è più sicuro di altri sistemi di crittografia trasparente di git. git-crypt crittografa i file usando AES-256 in modalità CTR con un IV sintetico derivato dall'HMAC SHA-1 del file. Questa modalità di funzionamento è dimostrabilmente semanticamente sicura contro attacchi a testo in chiaro scelto deterministico. Ciò significa che, sebbene la crittografia sia deterministica (il che è richiesto affinché git possa distinguere quando un file è cambiato o no), non perde alcuna informazione oltre al fatto che due file siano identici o meno. Altre proposte per la crittografia trasparente di git usano ECB o CBC con un IV fisso. Questi sistemi non sono semanticamente sicuri e perdono informazioni.

Limitazioni

git-crypt si basa sui filtri di git, che non sono stati progettati pensando alla crittografia. Pertanto, git-crypt non è lo strumento migliore per crittografare la maggior parte o tutti i file in un repository. Dove git-crypt brilla davvero è quando la maggior parte del tuo repository è pubblica, ma hai alcuni file (forse chiavi private chiamate *.key, o un file con credenziali API) che devi crittografare. Per crittografare un intero repository, considera l'uso di un sistema come git-remote-gcrypt invece. (Nota: non si intende alcuna approvazione della sicurezza di git-remote-gcrypt.)

git-crypt non crittografa i nomi dei file, i messaggi di commit, i target dei symlink, i gitlinks o altri metadati.

git-crypt non nasconde quando un file cambia o non cambia, la lunghezza di un file o il fatto che due file siano identici (vedi la sezione "Sicurezza" sopra).

git-crypt non supporta la revoca dell'accesso a un repository crittografato che era stato precedentemente concesso. Questo vale sia per la modalità multi-utente GPG (non esiste un comando del-gpg-user per complementare add-gpg-user) sia per la modalità a chiave simmetrica (non è supportata la rotazione della chiave). Questo perché è un problema intrinsecamente complesso nel contesto dei dati storici. Ad esempio, anche se una chiave è stata ruotata a un certo punto nella storia, un utente che possiede la chiave precedente può ancora accedere alla cronologia precedente del repository. Questo problema è discusso più in dettaglio in https://github.com/AGWA/git-crypt/issues/47.

I file crittografati con git-crypt non sono comprimibili. Anche il più piccolo cambiamento a un file crittografato richiede che git memorizzi l'intero file cambiato, invece di un semplice delta.

Sebbene git-crypt protegga i singoli contenuti dei file con un HMAC SHA-1, git-crypt non può essere usato in modo sicuro a meno che l'intero repository non sia protetto da manomissioni (un aggressore che può mutare il tuo repository può alterare il tuo file .gitattributes per disabilitare la crittografia). Se necessario, usa funzionalità di git come i tag firmati invece di fare affidamento solo su git-crypt per l'integrità.

I file crittografati con git-crypt non possono essere applicati con git-apply, a meno che la patch stessa non sia crittografata. Per generare una patch crittografata, usa git diff --no-textconv --binary. In alternativa, puoi applicare una patch in chiaro al di fuori di git usando il comando patch.

git-crypt non funziona in modo affidabile con alcune GUI di terze parti di git, come Atlassian SourceTree e GitHub per Mac. I file potrebbero rimanere in uno stato non crittografato.

File Gitattributes

Il file .gitattributes è documentato nella pagina man gitattributes(5). Il formato del pattern dei file è lo stesso usato da .gitignore, come documentato nella pagina man gitignore(5), con l'eccezione che specificare semplicemente una directory (ad es. /dir/) non è sufficiente per crittografare tutti i file al suo interno.

Nota anche che il pattern dir/* non corrisponde ai file nelle sottodirectory di dir/. Per crittografare un intero sottoalbero dir/, usa dir/**:

root@kitploit:~
dir/** filter=git-crypt diff=git-crypt

Il file .gitattributes non deve essere crittografato, quindi assicurati che i wildcard non lo corrispondano accidentalmente. Se necessario, puoi escludere .gitattributes dalla crittografia in questo modo:

root@kitploit:~
.gitattributes !filter !diff
Scarica lo strumento