Zurück zur Startseite

Git bundle und SHA-256 für Code-Übertragung

Der Artikel beschreibt eine Methode zur Fixierung der Quellcode-Übertragung mit Git bundle und SHA-256. Der Prozess umfasst die Erstellung eines Repository-Dumps, die Berechnung des Hashes und die Integration in eine signierte Akte. Dies gewährleistet Nachweisbarkeit bei Streitigkeiten für Entwickler und Kunden.

Präzise Code-Fixierung: bundle + SHA-256 in Akten
Advertisement 728x90

Sichere Quellcode-Übertragung mit Git Bundle und SHA-256

Bei der Übertragung von ausschließlichen Software-Rechten wird in Verträgen oft nur formuliert, dass "das Ergebnis übergeben wurde", ohne die Inhalte zu spezifizieren. Dies birgt Risiken bei Streitigkeiten: Der Kunde könnte fehlende Funktionen behaupten, während der Entwickler das Gegenteil versichert. Git Bundle und SHA-256-Hashing lösen dieses Problem, indem sie das Repository in eine einzelne Datei mit verifizierbarer Kennung verpacken.

Erstellung eines Git Bundles: Ein vollständiges Repository-Dump

Git Bundle verpackt das gesamte Repository – Objekte, Branches, Tags, Historie – in eine einzelne Binärdatei. Dies ist ein eigenständiges Artefakt, unabhängig von externer Speicherung.

Befehl zur Erstellung:

Google AdInline article slot
# Vollständiges Backup des gesamten Repositorys (alle Branches, alle Tags)
git bundle create projekt.bundle --all

Die Datei projekt.bundle kann wie gewohnt geklont werden:

git clone projekt.bundle wiederhergestelltes-projekt

Vorteile gegenüber dem Kopieren von .git:

  • Eine einzelne Datei für Speicherung, Übertragung und Signierung.
  • Vollständige Commit-Historie, Autoren und Datumsangaben.
  • Unabhängigkeit von Git-Hosting-Diensten.

Das Bundle erfasst den Zustand zum Erstellungszeitpunkt und schließt spätere Änderungen am ursprünglichen Repository aus.

Google AdInline article slot

Prüfsumme: Ein eindeutiger Identifikator

Jede Datei kann gehasht werden, um einen unveränderlichen Fingerabdruck zu erzeugen. SHA-256 wird bevorzugt: Es ist kollisionsresistent, im Gegensatz zu MD5/SHA-1.

Befehle für Linux/macOS:

shasum -a 256 projekt.bundle

Für Windows:

Google AdInline article slot
certutil -hashfile projekt.bundle SHA256

Das Ergebnis ist eine 64-stellige Zeichenkette, z.B. a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e. Selbst die Änderung eines einzelnen Bits verändert den Hash vollständig.

Integration in rechtliche Dokumente

Im Vertrag spezifizieren:

Das Arbeitsergebnis wird als Datei projekt.bundle übergeben, Prüfsumme (SHA-256): a591a6d40bf420404a011733cfb7b190d62c65bf0bcda32b57b277d9ad9f146e

Unterschreiben Sie dies mit einer elektronischen Signatur über elektronische Dokumentenmanagementsysteme, staatliche Dienste (z.B. De-Mail mit Signaturkarte) oder eine Zertifizierungsstelle. Die Signatur sollte einen Zeitstempel und eine Visualisierung im PDF enthalten.

Die elektronische Signatur sichert nicht nur den Vertrag, sondern bindet auch den Hash ein und verknüpft so das Dokument mit dem spezifischen Bundle.

Verifizierung bei Streitigkeiten: Technische Validierung

Bei Unstimmigkeiten:

  • Ein Gutachter berechnet den SHA-256 des erhaltenen projekt.bundle.
  • Vergleicht ihn mit dem Hash aus dem Vertrag.
  • Klont das Bundle und analysiert das Repository: Commits, Dateien, Funktionen.
# Wiederherstellung zur Untersuchung
git clone projekt.bundle wiederhergestelltes-projekt
cd wiederhergestelltes-projekt
git log --oneline -10  # Letzte Commits
git show HEAD:src/main.py  # Bestimmte Datei

Wenn der Hash übereinstimmt, ist der Code authentisch. Eine Abweichung deutet auf Manipulation hin.

Automatisierung des Prozesses

Skript für den regelmäßigen Einsatz:

#!/bin/bash
REPO_NAME=projekt
git bundle create ${REPO_NAME}.bundle --all
HASH=$(shasum -a 256 ${REPO_NAME}.bundle | cut -d' ' -f1)
echo "SHA-256: $HASH"
# $HASH in den Vertrag einfügen und unterschreiben

Fügen Sie einen Schritt in CI/CD bei Releases hinzu. KI-Agenten können Verträge mit Hashes automatisch generieren.

Wichtige Punkte

  • Bundle erfasst das vollständige Git-Repository: Historie, Branches, Tags – ohne Verluste.
  • SHA-256 gewährleistet kryptografische Integrität: Kollisionen sind praktisch unmöglich.
  • Elektronische Signatur mit Hash macht den Vertrag technisch vor Gericht beweisbar.
  • Der Prozess dauert <5 Minuten: drei Befehle + Signierung.
  • Streitrisiken werden minimiert: Manipulation am Bundle ist sofort erkennbar.

— Editorial Team

Advertisement 728x90

Weiterlesen