Git-Dateiverschlüsselung zur Unterstützung von datei-/ordnerbasierten Berechtigungen zum Schutz des Quellcodes vor Diebstahl

Ich verwende git und habe folgendes Problem:
In der Firma, in der ich arbeite, wollen wir den Quellcode vor Diebstahl schützen.

Zum Beispiel, wenn ein Entwickler geht und den Quellcode eines Projekts mitnimmt.

Um dies zu verhindern, bin ich zu dem Schluss gekommen, dass die Verschlüsselung des Quellcodes die beste Wahl ist, wie es git-crypt tut. Aber git-crypt funktioniert nicht:

  • Wenn ich den GPG-Schlüssel eines Benutzers hinzufüge, kann er alle Dateien entschlüsseln, und die Schutzmaßnahme wäre wertlos.

Die Dateien des Entwicklers sollten lokal und nur aus der Ferne entschlüsselt werden. (Auf diese Weise muss der Entwickler die Dateien nicht immer verschlüsseln, pushen, entschlüsseln).

Ich habe versucht, git-crypt in Python neu zu programmieren (wegen Cross-Plattform), scheiterte dann aber an den Git-Attributen/Flecken, sauberen Filtertreibern.

Kennen Sie eine Möglichkeit oder eine Anwendung, die mein Problem löst?


Ich berücksichtige Keybase in dieser Antwort nicht , da es das gesamte Repository verschlüsselt. Und alle Personen, die ich dem Repo hinzufügen werde, haben die volle Berechtigung für alle Dateien.

Können Sie erklären, warum die Keybase-App aus der anderen Frage für Sie nicht funktioniert?
Denn Keybase verschlüsselt das komplette Repository. Und alle Personen, die ich zum Repo hinzufügen werde, haben die Berechtigung für alle Dateien abgeschlossen!
Cross-gepostet bei Devops .
Ich verstehe Ihr Problem nicht und glaube, dass es im Kern kein technisches Problem ist, sodass Sie keine technische Lösung dafür finden werden. Wenn ein Entwickler an dem Code arbeitet, hat er offensichtlich die Klartextversion davon, um daran zu arbeiten. Also kann er es stehlen, wenn er will. Die Tatsache, dass es im Repository verschlüsselt werden könnte, ist wertlos. Wenn Sie über andere Teile des Quellcodes sprechen, die dieser Entwickler nicht berühren sollte, dann besteht das Problem eher darin, korrekte separate Git-Repositories zu haben und den Zugriff darauf entsprechend zu filtern.
Ich verstehe nicht "Die Dateien des Entwicklers sollten lokal und nur remote entschlüsselt werden."
@PatrickMevzek Wenn du das als Antwort gepostet hättest, hätte ich dafür gestimmt

Antworten (1)

Die Verschlüsselung des Git-Repositorys soll Dateien vor dem Diebstahl durch Dritte schützen (z. B. wenn sie auf externen Servern wie GitHub oder S3 Bucket gehostet werden oder indem Keybase verwendet wird ), nicht vor den Entwicklern, die an dem Projekt arbeiten.

Sie können Git-Submodule oder nur verschiedene Repositorys verwenden und dann jedem Repository unterschiedliche Berechtigungen erteilen, sodass Entwickler keinen Zugriff auf das gesamte Projekt haben.

Andernfalls, wenn Sie überhaupt keinen Zugriff auf die Dateien gewähren möchten, erstellen Sie einen SOAP/REST-Dienst für die Client-Server-Kommunikation, um nur die erforderlichen Informationen bei Bedarf bereitzustellen. Die meisten Unternehmen implementieren mehrere Schichten von API-Diensten, um ihre sensiblen Daten vor Hacking oder Diebstahl zu schützen.