Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
pivit — x509-Zertifikate auf PIV-fähigen YubiKeys verwalten, Schlüssel und Zertifikatsanforderungen erstellen sowie Git-Commits und Dateien signieren oder verifizieren. | Kitploit
Tools/GitHubGitHub/cashapp/pivit
KryptographieHardware-SicherheitAuthentifizierung
GitHubcashapp/pivit

pivit

x509-Zertifikate auf PIV-fähigen YubiKeys verwalten, Schlüssel und Zertifikatsanforderungen erstellen sowie Git-Commits und Dateien signieren oder verifizieren.

Repository anzeigen
100921vor 3 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

codecov

Pivit

Pivit ist ein Kommandozeilenwerkzeug zum Verwalten von x509-Zertifikaten, die auf Smartcards mit PIV-Applet-Unterstützung (Yubikey) gespeichert sind, und zum Verwenden dieser Zertifikate zum Signieren und Verifizieren von Daten.

Es ist vollständig kompatibel mit der Art und Weise, wie die git-Kommandozeile externe Programme zum Signieren und Verifizieren von Commits und Tags aufruft.

Installation

Brew

brew install pivit

Go install

go install github.com/cashapp/pivit/cmd/pivit@latest

Verwendung

Um git so einzurichten, dass pivit zum Signieren und Verifizieren von Signaturen verwendet wird, führen Sie die folgenden Befehle aus:

git config --(local|global) gpg.format x509
git config --(local|global) gpg.x509.program pivit

Yubikey-PIV zurücksetzen und initialisieren

pivit --reset

Setzt das PIV-Applet des Yubikey zurück und erstellt eine neue PIN für den Zugriff darauf.

Ein Zertifikat erzeugen

pivit --generate [--p256] [--self-sign | --no-csr] [--assume-yes] [--pin-policy] [--touch-policy]

Erzeugt ein neues Schlüsselpaar im Card-Authentication-Slot des Yubikey.
Dieser Befehl erzeugt und speichert außerdem ein x509-Zertifikat für den erzeugten Schlüssel, das von Yubico signiert ist.

Wenn die Option --p256 angegeben wird, wird das Schlüsselpaar mit der elliptischen Kurve P-256 erzeugt. Andernfalls wird die Kurve P-384 verwendet.

Fügen Sie das Flag --self-sign hinzu, um ein selbstsigniertes Zertifikat zu erzeugen; das Zertifikat wird mit dem neu erzeugten Schlüssel signiert.
Sie werden aufgefordert zu bestätigen, dass ein selbstsigniertes Zertifikat wirklich gewünscht ist, dann nach der PIN gefragt und anschließend aufgefordert, Ihren Yubikey zu berühren.
Die Ausgabe enthält am Ende 3 CERTIFICATE-Blöcke anstelle eines CERTIFICATE_REQUEST (Beispielausgabe unten).
Diese Option ist hauptsächlich für Testzwecke nützlich. Das Flag --assume-yes kann in Kombination mit der Option --self-sign verwendet werden, um deren y/n-Abfrage zu deaktivieren.

Fügen Sie das Flag --no-csr hinzu, um die Ausgabe der Zertifikatsignieranfrage zu überspringen. In diesem Fall werden Sie nicht aufgefordert, Ihren Yubikey zu berühren.
Diese Option ist nützlich, wenn der erzeugte Schlüssel nicht Teil einer bestehenden PKI sein muss.
Sie können das Zertifikat des Schlüssels dennoch mithilfe von Yubicos Zertifikat hier verifizieren.

Das Flag --pin-policy steuert, wann beim Zugriff auf den erzeugten Schlüssel zur Eingabe einer PIN aufgefordert wird.
Setzen Sie es auf einen der Werte never, once oder always (Standard ist never).

Das Flag --touch-policy steuert, wann beim Zugriff auf den erzeugten Schlüssel zum physischen Berühren der Hardware aufgefordert wird.
Setzen Sie es auf einen der Werte never, cached oder always (Standard ist always).

Die Ausgabe des Befehls sieht wie folgt aus:

Printing Yubikey device attestation certificate:
----- BEGIN CERTIFICATE -----
...
----- END CERTIFICATE -----
Printing generated key certificate:
----- BEGIN CERTIFICATE -----
...
----- END CERTIFICATE -----
Printing certificate signing request:
----- BEGIN CERTIFICATE REQUEST -----
...
----- END CERTIFICATE REQUEST-----

Die CERTIFICATE REQUEST am Ende ist mit dem neu erzeugten privaten Schlüssel signiert, und kann verwendet werden, um ein von einer CA signiertes Zertifikat auszustellen.

Wenn Sie sich dafür entscheiden, ein eigenes Zertifikat auszustellen und zu verwenden, ist es wichtig, außerdem Folgendes zu verifizieren:

  • Das Geräteattestierungszertifikat ist von Yubico signiert.
  • Das Schlüsselzertifikat ist vom Geräteattestierungszertifikat signiert.
  • Der öffentliche Schlüssel in der Zertifikatsignieranfrage ist derselbe wie der öffentliche Schlüssel im Schlüsselzertifikat.

Parameter der Zertifikatsignieranfrage

Pivit ermöglicht es, verschiedene Attribute in der CSR über Umgebungsvariablen zu setzen.

Die folgenden Zertifikatsoptionen werden wie folgt gesetzt:

  • Subject.CommonName wird auf den Wert der Umgebungsvariable PIVIT_EMAIL gesetzt.
  • Subject.Organization wird auf den Wert der Umgebungsvariable PIVIT_ORG gesetzt.
  • Subject.OrganizationalUnit wird auf den Wert der Umgebungsvariable PIVIT_ORG_UNIT gesetzt.

Zusätzlich werden die folgenden Subject Alternative Names (SANs) in die Zertifikatsanfrage aufgenommen:

  • E-Mail-Adressen enthalten PIVIT_EMAIL
  • URIs enthalten alle URLs, die in der Umgebungsvariable PIVIT_CERT_URIS angegeben sind (URIs werden durch ein Leerzeichen getrennt)

PIV-Slot-Unterstützung

Das PIV-Modul unterstützt mehrere Slots, in denen Schlüssel und Zertifikate gespeichert werden können.
Verfügbare Slots - 9a, 9c, 9d und 9e.

  • 9e ist der „Card Authentication“-Slot.
    Dies ist der einzige Slot, der beim Signieren keinen PIN-Zugriff auf den privaten Schlüssel erfordert, was die Nutzung reibungsloser macht.
  • 9a ist der „Authentication“-Slot. Wird für Aktionen wie die Systemanmeldung verwendet.
  • 9c ist der „Digital Signature“-Slot. Wird für Dokumentsignaturen oder zum Signieren von Dateien und ausführbaren Dateien verwendet.
  • 9d ist der „Key Management“-Slot. Wird für Dinge wie das Verschlüsseln von E-Mails oder Dateien zur Gewährleistung der Vertraulichkeit verwendet.

Weitere Informationen

pivit ermöglicht die Auswahl eines Slots über das Flag -w.
Für jeden Befehl wird, wenn kein Slot angegeben ist, standardmäßig 9e verwendet.
Zum Beispiel:

  • Zertifikatserzeugung

    pivit --generate [-w slot]
    
  • Signieren

    pivit -s -u userid [-w slot]
    
  • Zertifikat ausgeben

    pivit --print [-w slot]
    

Einen Yubikey anhand der Seriennummer festlegen

Standardmäßig erwartet pivit, dass genau ein Yubikey angeschlossen ist. Wenn ein System über mehrere Kartenleser oder Yubikeys verfügt, oder um einfach sicherzustellen, dass pivit mit dem gewünschten Yubikey kommuniziert, geben Sie die Seriennummer über die Umgebungsvariable PIVIT_YK_SERIAL an.

Beispiel:

PIVIT_YK_SERIAL=13078292 pivit --print

Dies kann mit jedem Befehl verwendet werden.

Zertifikat in den Yubikey importieren

pivit --import [--first-pem] [file]

Importiert ein Zertifikat aus file.
Der angegebene Dateiname soll ein serialisiertes x509-Zertifikat enthalten, das als PEM-Block kodiert ist.

Diese Aktion fragt nach der Yubikey-PIN.

Fügen Sie --first-pem hinzu, um den ersten PEM-Block aus file zu importieren und den Rest zu ignorieren. Dies ist hilfreich, wenn Sie eine CA verwenden, die ihre ausgestellten Zertifikate als Kette oder Bündel bereitstellt, wobei das Endentitätszertifikat zuerst kommt (dies ist die Konvention).

Zertifikatinformationen ausgeben

pivit --print

Gibt das im Card-Authentication-Slot des Yubikey gespeicherte Zertifikat zusammen mit seinem Fingerabdruck aus.
Zum Beispiel:

Tool herunterladen