Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
git-crypt — Transparente Dateiverschlüsselung in git | Kitploit
Tools/GitHubGitHub/agwa/git-crypt
Authentifizierung & AutorisierungVerschlüsselungs-/EntschlüsselungstoolsDatenexfiltrationKryptographieSecret-ErkennungLieferkettensicherheit
GitHubagwa/git-crypt

git-crypt

Transparente Dateiverschlüsselung in git

Repository anzeigen
9.8k53826vor 8 JahrenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

git-crypt - transparente Dateiverschlüsselung in git

git-crypt ermöglicht die transparente Ver- und Entschlüsselung von Dateien in einem Git-Repository. Dateien, die Sie schützen möchten, werden beim Committen verschlüsselt und beim Auschecken entschlüsselt. git-crypt ermöglicht es Ihnen, ein Repository mit einer Mischung aus öffentlichen und privaten Inhalten frei zu teilen. git-crypt verhält sich anmutig degradierend, sodass Entwickler ohne den geheimen Schlüssel weiterhin ein Repository mit verschlüsselten Dateien klonen und committen können. Dies erlaubt es Ihnen, Ihr geheimes Material (wie Schlüssel oder Passwörter) im selben Repository wie Ihren Code zu speichern, ohne Ihr gesamtes Repository sperren zu müssen.

git-crypt wurde von Andrew Ayer ([email protected]) geschrieben. Weitere Informationen finden Sie unter https://www.agwa.name/projects/git-crypt.

git-crypt bauen

Siehe die Datei INSTALL.md.

git-crypt verwenden

Konfigurieren Sie ein Repository für git-crypt:

cd repo
git-crypt init

Geben Sie Dateien an, die verschlüsselt werden sollen, indem Sie eine .gitattributes-Datei erstellen:

secretfile filter=git-crypt diff=git-crypt
*.key filter=git-crypt diff=git-crypt
secretdir/** filter=git-crypt diff=git-crypt

Wie eine .gitignore-Datei kann sie Platzhalter enthalten und sollte in das Repository eingecheckt werden. Siehe unten für weitere Informationen zu .gitattributes. Stellen Sie sicher, dass Sie nicht versehentlich die .gitattributes-Datei selbst (oder andere Git-Dateien wie .gitignore oder .gitmodules) verschlüsseln. Stellen Sie sicher, dass Ihre .gitattributes-Regeln vor dem Hinzufügen sensibler Dateien vorhanden sind, da diese sonst nicht verschlüsselt werden!

Teilen Sie das Repository mit anderen (oder mit sich selbst) per GPG:

git-crypt add-gpg-user USER_ID

USER_ID kann eine Schlüssel-ID, ein vollständiger Fingerabdruck, eine E-Mail-Adresse oder alles andere sein, das einen öffentlichen Schlüssel für GPG eindeutig identifiziert (siehe "WIE MAN EINE BENUTZER-ID ANGIBT" in der gpg-Manpage). Hinweis: git-crypt add-gpg-user fügt eine GPG-verschlüsselte Schlüsseldatei im .git-crypt-Verzeichnis im Stammverzeichnis Ihres Repositorys hinzu und committet sie.

Alternativ können Sie einen symmetrischen geheimen Schlüssel exportieren, den Sie sicher an Mitarbeiter übermitteln müssen (GPG ist nicht erforderlich, und es werden keine Dateien zu Ihrem Repository hinzugefügt):

git-crypt export-key /pfad/zum/schlüssel

Nach dem Klonen eines Repositorys mit verschlüsselten Dateien entsperren Sie es mit GPG:

git-crypt unlock

Oder mit einem symmetrischen Schlüssel:

git-crypt unlock /pfad/zum/schlüssel

Das ist alles, was Sie tun müssen – nachdem git-crypt eingerichtet ist (entweder mit git-crypt init oder git-crypt unlock), können Sie Git normal verwenden – Verschlüsselung und Entschlüsselung erfolgen transparent.

Aktueller Status

Die neueste Version von git-crypt ist 0.8.0, veröffentlicht am 23.09.2025. git-crypt zielt darauf ab, fehlerfrei und zuverlässig zu sein, d.h. es sollte nicht abstürzen, fehlfunktionieren oder Ihre vertraulichen Daten offenlegen. Es hat jedoch noch keine Reife erreicht, d.h. es ist nicht so dokumentiert, funktionsreich oder benutzerfreundlich, wie es sein sollte. Zudem können vor Version 1.0 noch rückwärtsinkompatible Änderungen eingeführt werden.

Sicherheit

git-crypt ist sicherer als andere transparente Git-Verschlüsselungssysteme. git-crypt verschlüsselt Dateien mit AES-256 im CTR-Modus mit einem synthetischen IV, der aus dem SHA-1-HMAC der Datei abgeleitet wird. Diese Betriebsart ist nachweislich semantisch sicher unter deterministischen Chosen-Plaintext-Angriffen. Das bedeutet, dass die Verschlüsselung zwar deterministisch ist (was erforderlich ist, damit Git erkennen kann, ob sich eine Datei geändert hat oder nicht), aber keine Informationen preisgibt, außer ob zwei Dateien identisch sind oder nicht. Andere Vorschläge für transparente Git-Verschlüsselung verwenden ECB oder CBC mit einem festen IV. Diese Systeme sind nicht semantisch sicher und geben Informationen preis.

Einschränkungen

git-crypt basiert auf Git-Filtern, die nicht für die Verschlüsselung konzipiert wurden. Daher ist git-crypt nicht das beste Werkzeug, um die meisten oder alle Dateien in einem Repository zu verschlüsseln. Seine Stärke liegt darin, wenn der Großteil Ihres Repositorys öffentlich ist, Sie aber einige Dateien (z.B. private Schlüssel mit dem Namen *.key oder eine Datei mit API-Anmeldedaten) verschlüsseln müssen. Für die Verschlüsselung eines gesamten Repositorys sollten Sie stattdessen ein System wie git-remote-gcrypt in Betracht ziehen. (Hinweis: Es wird keine Befürwortung der Sicherheit von git-remote-gcrypt ausgesprochen.)

git-crypt verschlüsselt keine Dateinamen, Commit-Nachrichten, Symlink-Ziele, Gitlinks oder andere Metadaten.

git-crypt verbirgt nicht, ob sich eine Datei ändert oder nicht, die Länge einer Datei oder die Tatsache, dass zwei Dateien identisch sind (siehe Abschnitt "Sicherheit" oben).

git-crypt unterstützt nicht das Widerrufen des Zugriffs auf ein verschlüsseltes Repository, der zuvor gewährt wurde. Dies gilt sowohl für den Mehrbenutzer-GPG-Modus (es gibt keinen Befehl del-gpg-user als Gegenstück zu add-gpg-user) als auch für den symmetrischen Schlüsselmodus (es gibt keine Unterstützung für den Schlüsselwechsel). Dies liegt daran, dass es sich im Kontext historischer Daten um ein inhärent komplexes Problem handelt. Beispielsweise kann ein Benutzer mit dem vorherigen Schlüssel auch dann noch auf die vorherige Repository-Historie zugreifen, wenn der Schlüssel zu einem bestimmten Zeitpunkt gewechselt wurde. Dieses Problem wird ausführlicher unter https://github.com/AGWA/git-crypt/issues/47 diskutiert.

Mit git-crypt verschlüsselte Dateien sind nicht komprimierbar. Selbst die kleinste Änderung an einer verschlüsselten Datei erfordert, dass Git die gesamte geänderte Datei speichert, anstatt nur eines Deltas.

Obwohl git-crypt einzelne Dateiinhalte mit einem SHA-1-HMAC schützt, kann git-crypt nicht sicher verwendet werden, es sei denn, das gesamte Repository ist vor Manipulation geschützt (ein Angreifer, der Ihr Repository verändern kann, kann Ihre .gitattributes-Datei ändern, um die Verschlüsselung zu deaktivieren). Verwenden Sie bei Bedarf Git-Funktionen wie signierte Tags, anstatt sich nur auf git-crypt für die Integrität zu verlassen.

Mit git-crypt verschlüsselte Dateien können nicht mit git-apply gepatcht werden, es sei denn, der Patch selbst ist verschlüsselt. Um einen verschlüsselten Patch zu erstellen, verwenden Sie git diff --no-textconv --binary. Alternativ können Sie einen Klartext-Patch außerhalb von Git mit dem Befehl patch anwenden.

git-crypt funktioniert nicht zuverlässig mit einigen Drittanbieter-Git-GUIs wie Atlassian SourceTree und GitHub for Mac. Dateien könnten in einem unverschlüsselten Zustand zurückbleiben.

Gitattributes-Datei

Die .gitattributes-Datei wird in der gitattributes(5)-Manpage dokumentiert. Das Dateimusterformat ist das gleiche wie das von .gitignore, dokumentiert in der gitignore(5)-Manpage, mit der Ausnahme, dass die Angabe nur eines Verzeichnisses (z.B. /dir/) nicht ausreicht, um alle darunterliegenden Dateien zu verschlüsseln.

Beachten Sie auch, dass das Muster dir/* nicht mit Dateien unter Unterverzeichnissen von dir/ übereinstimmt. Um einen gesamten Unterbaum dir/ zu verschlüsseln, verwenden Sie dir/**:

dir/** filter=git-crypt diff=git-crypt
Tool herunterladen