41 Einführung in GPG-Signaturen

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.

41.1 Unterschied zwischen GPG und PKI im Kontext von GitLab:

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.

41.2 Nutzung von GPG für Commit-Signaturen

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.

41.2.1 Warum Commits signieren?

41.2.2 Wie werden Commits signiert?

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.

41.3 Erstellen und Verwenden eines GPG-Schlüssels

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.

41.3.1 Schritte zur Erstellung eines GPG-Schlüssels:

  1. GPG-Schlüssel generieren:

    gpg --full-generate-key
  2. Den öffentlichen Schlüssel exportieren:

    gpg --armor --export <your-email>
  3. Ö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.

41.4 Verifikation und Anzeige von GPG-Signaturen in GitLab

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.

41.4.1 Schritte zur Verifikation:

  1. Push des signierten Commits.
  2. GitLab verifiziert die Signatur gegen den hinterlegten Public Key.
  3. Der Commit erhält ein “Verifiziert”-Label, das im Interface sichtbar ist.

Diese Verifizierung stellt sicher, dass der Commit nicht manipuliert wurde und tatsächlich vom angegebenen Autor stammt.

41.5 Best Practices für GPG-Signaturen

Um GPG-Signaturen in GitLab effizient und sicher zu nutzen, sollten einige Best Practices beachtet werden:

41.5.1 Sichere Handhabung der Schlüssel:

41.5.2 Wann sollten GPG-Signaturen verwendet werden?

GPG-Signaturen erhöhen das Vertrauen und die Nachverfolgbarkeit der eingereichten Änderungen.