GPG (GNU Privacy Guard) ist ein kryptografisches System, das asymmetrische Verschlüsselung nutzt, um Inhalte digital zu signieren und zu verifizieren. Bei GitLab kommen GPG-Signaturen zum Einsatz, um sicherzustellen, dass Commits und Tags von dem angegebenen Autor stammen und unterwegs nicht manipuliert wurden.
Während PKI in GitLab hauptsächlich für die Authentifizierung (z. B. SSH-Zugriff) verwendet wird, dient GPG der Verifizierung von Daten. Es ermöglicht Entwicklern, ihre Commits und Tags kryptografisch zu signieren, sodass GitLab bestätigen kann, dass diese nicht manipuliert wurden.
GPG-Signaturen bieten somit eine zusätzliche Sicherheitsschicht im Entwicklungsprozess, die sich auf die Integrität und Echtheit der eingereichten Änderungen konzentriert, ohne direkten Einfluss auf den Zugang zu GitLab zu nehmen.
GPG-Signaturen bieten eine Möglichkeit, die Integrität von Commits und Tags in GitLab sicherzustellen. Durch das Signieren eines Commits garantiert der Autor, dass die Änderungen tatsächlich von ihm stammen und auf dem Weg nicht manipuliert wurden.
Entwickler können ihren GPG-Schlüssel verwenden, um ihre Commits lokal zu signieren. Sobald der Commit zu GitLab gepusht wird, verifiziert GitLab automatisch die Signatur und zeigt den Status im Interface an.
Um Commits in GitLab zu signieren, musst du zunächst einen GPG-Schlüssel erstellen und diesen in deinem GitLab-Profil hinterlegen. Der GPG-Schlüssel besteht aus einem öffentlichen und einem privaten Teil, wobei der öffentliche Schlüssel bei GitLab registriert wird.
GPG-Schlüssel generieren:
gpg --full-generate-key
Den öffentlichen Schlüssel exportieren:
gpg --armor --export <your-email>
Öffentlichen Schlüssel in GitLab unter den GPG-Schlüsseleinstellungen hochladen.
Nach der Verknüpfung deines GPG-Schlüssels kannst du Commits
signieren, indem du dem Git-Commit-Befehl das -S
Flag
hinzufügst:
git commit -S -m "Your signed commit message"
Dadurch wird der Commit mit deinem privaten GPG-Schlüssel signiert und kann von GitLab verifiziert werden.
GitLab überprüft automatisch GPG-Signaturen, sobald ein signierter Commit gepusht wird. Wenn GitLab die Signatur erfolgreich verifizieren kann und der Public Key mit dem hinterlegten GPG-Schlüssel übereinstimmt, wird der Commit als “verifiziert” markiert.
Diese Verifizierung stellt sicher, dass der Commit nicht manipuliert wurde und tatsächlich vom angegebenen Autor stammt.
Um GPG-Signaturen in GitLab effizient und sicher zu nutzen, sollten einige Best Practices beachtet werden:
GPG-Signaturen erhöhen das Vertrauen und die Nachverfolgbarkeit der eingereichten Änderungen.