Die Veröffentlichung des Projekts gittuf 0.4 ist verfĂŒgbar, das ein hierarchisches System zur Verifizierung von Inhalten in Git-Repositories entwickelt, um Risiken bei einer Kompromittierung einzelner Entwickler, die Zugriff auf das Repository haben, zu minimieren. Gittuf bietet eine zusĂ€tzliche Sicherheitsebene fĂŒr Git und ein Set von Tools zur Verwaltung der SchlĂŒssel aller Entwickler, die Zugriff auf das Repository haben, sowie zur Regelung des Zugriffs auf Branches, Tags und einzelne Dateien. Der Code des Projekts ist in Go geschrieben und steht unter der Apache 2.0 Lizenz. Das Projekt befindet sich in aktiver Entwicklung und hat die QualitĂ€t einer Alpha-Version, die fĂŒr Experimente geeignet ist, aber derzeit noch nicht fĂŒr den produktiven Einsatz bereit ist.
Informationen und Artefakte, die eine zusĂ€tzliche Verifizierung der vorgenommenen Ănderungen ermöglichen, werden in einem spezifischen Git-Objektspeicher in einem eigenen Namensraum fĂŒr gittuf gespeichert, was die RĂŒckwĂ€rtskompatibilitĂ€t mit vorhandenen Tools und Diensten, einschlieĂlich GitHub und GitLab, gewĂ€hrleistet. Bei der Verwendung von Tools ohne UnterstĂŒtzung fĂŒr gittuf bleibt das Repository vollstĂ€ndig zugĂ€nglich, jedoch ist die Möglichkeit zur erweiterten Verifizierung seiner IntegritĂ€t eingeschrĂ€nkt. Die Architektur von gittuf basiert auf bewĂ€hrten Elementen des TUF (The Update Framework), das zum Schutz der Update-Prozesse in Projekten wie Docker, Fuchsia, AGL (Automotive Grade Linux) und PyPI eingesetzt wird.
Das Verifizierungsmodell in gittuf basiert auf der Anwendung eines hierarchischen Systems zur Verteilung von Vertrauen. Der Vertrauenswurzel (root of trust) gehört dem Besitzer des Repositories, der SchlĂŒssel fĂŒr die Mitwirkenden erzeugen und Regeln festlegen kann, nach denen die erstellten SchlĂŒssel verwendet werden dĂŒrfen. Gittuf ermöglicht es, flexible, granulare Regeln zu erstellen, die die Berechtigungen jedes Entwicklers und den Bereich des Repositories definieren, in dem er Ănderungen vornehmen kann. Zum Beispiel kann ein Entwickler autorisiert werden, Tags zu erstellen, Ănderungen in bestimmten Branches vorzunehmen oder nur einzelne Dateien im Repository zu Ă€ndern.
Entwickler und die von ihnen vorgenommenen Ănderungen werden durch SchlĂŒssel und digitale Signaturen identifiziert. Gittuf ermöglicht das Generieren neuer SchlĂŒssel, die sichere Verbreitung von SchlĂŒsseln, die regelmĂ€Ăige Rotation von SchlĂŒsseln, den Widerruf kompromittierter SchlĂŒssel, das Management von Zugriffskontrolllisten (ACL) sowie von NamensrĂ€umen in Git-Repositorys. Gittuf fĂŒhrt auch das FĂŒhren eines Referenzlogs aller Ănderungen (RSL - Reference State Log) durch, dessen IntegritĂ€t und Schutz vor nachtrĂ€glicher Manipulation durch eine baumartige Struktur, den Merkle-Baum, gewĂ€hrleistet werden. Jeder Zweig verifiziert alle darunter liegenden Zweige und Knoten dank baumartiger Hashing-Techniken (Durch den End-Hash kann der Benutzer die Richtigkeit der gesamten Historie der Operationen sowie die Korrektheit der frĂŒheren ZustĂ€nde ĂŒberprĂŒfen).
Zur Verifizierung digitaler Signaturen von Commits und Tags erstellt und verteilt der Repository-Besitzer öffentliche SchlĂŒssel, die direkt mit dem Repository assoziiert sind. Um dem Missbrauch von Ănderungen entgegenzuwirken, die nach dem Zugriff auf die SchlĂŒssel, um digitale Signaturen bestimmter Entwickler zu erstellen, durch Angreifer vorgenommen wurden, werden Widerrufs- und Austauschmechanismen fĂŒr SchlĂŒssel eingesetzt. SchlĂŒssel haben eine begrenzte Lebensdauer und erfordern regelmĂ€Ăige Aktualisierungen, um zu verhindern, dass alte SchlĂŒssel fĂŒr die Erstellung von Signaturen verwendet werden.
Quelle: opennet.ru
