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.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
hsm — Zig Hardware Security Module Bibliothek für PIV-, CAC- und YubiKey-Token über PC/SC. Unterstützt Zertifikate, PIN-Verwaltung, Signieren und Entschlüsselung. | Kitploit
Tools/GitLabGitLab/devnw/zig/hsm
Verschlüsselungs-/EntschlüsselungstoolsKryptographieHardware-SicherheitAuthentifizierung
GitLabdevnw/zig/hsm

hsm

Zig Hardware Security Module Bibliothek für PIV-, CAC- und YubiKey-Token über PC/SC. Unterstützt Zertifikate, PIN-Verwaltung, Signieren und Entschlüsselung.

Repository anzeigen
16vor 19 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

zhsm

Eine Hardware Security Module (HSM)-Bibliothek für Zig mit PC/SC-Zugriff auf PIV-, CAC- und YubiKey-Token.

Status

AspektInfo
API-StabilitätEntwicklung
Zig-Version0.16.0
PlattformenLinux, macOS, Windows
LizenzMIT

Funktionen

  • PIV-Unterstützung (NIST SP 800-73-4)

    • Zertifikatsabruf (Slots 9A, 9C, 9D, 9E)
    • PIN-Verifikation, Änderung und Entsperrung
    • ECDSA P-256/P-384-Signierung
    • RSA 2048/3072/4096-Signierung
    • RSA-Entschlüsselung
  • CAC-Unterstützung (Common Access Card)

    • Moderne PIV-kompatible CACs (vollständige Operationen)
    • Legacy-CAC-PKI-Applet-Erkennung (nur Applet-Auswahl)
  • YubiKey-Unterstützung

    • PIV-Applet-Operationen
    • ATR-basierte Erkennung
    • Optionale Verwaltungsbefehle
  • Sicherheit

    • Keine Geheimnisse in Logs (geschwärzter Debug-Modus)
    • Nullsetzung sensibler Puffer
    • Strikte TLV-Parsing mit Tiefen-/Längenbegrenzungen
    • Strenge Fehlertypen (kein anyerror)
    • Sitzungsgebundene PIN-Verifikation (ATR-basierte Kartentauscherkennung)
  • Parallele Operationen (über thread_pool)

    • Batch-Signierung über mehrere Slots
    • Batch-Entschlüsselung über mehrere Schlüssel
    • Parallele Token-Erkennung über mehrere Leser
    • Paralleler Zertifikatsabruf über mehrere Slots
    • Automatischer sequenzieller Fallback unterhalb des Schwellenwerts (< 2 Elemente)
    • Standardmäßig aktiviert (-Denable_tp=true); deaktivieren mit -Denable_tp=false

Voraussetzungen

  • Zig 0.16.0 oder kompatibel
  • PC/SC-Bibliothek:
    • Linux: libpcsclite-dev (Debian/Ubuntu) oder pcsc-lite-devel (Fedora)
    • macOS: Integriertes PCSC.framework
    • Windows: Integrierte Winscard.dll

PC/SC unter Linux installieren

# Debian/Ubuntu
sudo apt-get install libpcsclite-dev pcscd

# Fedora/RHEL
sudo dnf install pcsc-lite-devel pcsc-lite

# PC/SC-Daemon starten
sudo systemctl start pcscd
sudo systemctl enable pcscd

Bauen

# Unit-Tests bauen und ausführen
make

# Oder direkt mit Zig
zig build test

# Simulator-Integrationstests ausführen
zig build test -Dintegration_sim=true

# Beispiele bauen (PC/SC-Bibliothek muss installiert sein)
zig build examples -Dlink_pcsc=true

Bauoptionen

OptionStandardBeschreibungSicherheitsauswirkung
integration_simfalseSimulator-Integrationstests ausführenKeine
hsm_hilfalseHardware-in-Loop-Tests ausführen (echter Token erforderlich)Keine
link_pcscfalsePC/SC-Bibliothek für Beispiele linkenKeine
include_simulatorDebug: true
Release: false
PIV-Simulator mit Testschlüsseln einbindenCWE-321: Testschlüssel in Produktion
allow_pcsc_env_overridefalseSICHERHEITSRISIKO: Umgebungsvariable HSM_PCSC_LIB_PATH erlaubenCWE-427: Laden nicht vertrauenswürdiger Bibliotheken
fipsfalseSicherheitskryptografie über den gelinkten FIPS-140-3-Provider leiten (kein Overhead, wenn ausgeschaltet)Keine, wenn ausgeschaltet
openssl_path(nicht gesetzt)OpenSSL-Installationspräfix für nicht-standardmäßige Installationen (z. B. /usr/local/ssl)Keine

FIPS-140-3 / PQC-Modus

Mit -Dfips=true wird jede sicherheitsrelevante kryptografische Primitive über einen gelinkten, validierten OpenSSL 3.x FIPS-Provider via der crypto_backend-Naht geleitet, und der Simulator erhält Post-Quantum-PIV-Token- Operationen (ML-DSA-65-Signierung, ML-KEM-768-Verkapselung/Entkapselung), die nur im FIPS-Modus verfügbar sind. Das Flag ist standardmäßig ausgeschaltet, ohne Overhead; die fips-Abhängigkeit wird nur unter -Dfips=true aufgelöst.

# Standard-Build — std.crypto-Backend, kein OpenSSL-Link
zig build test

# FIPS-Build — OpenSSL FIPS-Provider (zuerst `make deps` aus fips ausführen)
OPENSSL_CONF=/usr/local/ssl/ssl/openssl.cnf \
  zig build test -Dfips=true -Dopenssl_path=/usr/local/ssl

# Beide Modi auf einmal
make test-dual

Siehe docs/FIPS.md für das Naht-Design, die FIPS-Ausnahmerichtlinie und die PQC-Token-Operationen.

Sicherheitshinweis: Die Option allow_pcsc_env_override ist standardmäßig deaktiviert, um bösartige Bibliotheksinjektionsangriffe zu verhindern (CWE-427). Nur für Entwicklung/Tests aktivieren:

# Produktions-Build (sicher, Umgebungsvariable wird ignoriert)
zig build

# Entwicklungs-Build (erlaubt HSM_PCSC_LIB_PATH)
zig build -Dallow_pcsc_env_override=true

Wenn aktiviert, werden Bibliotheken vor dem Laden validiert:

  • Müssen absolute Pfade sein
  • Dürfen nicht weltweit beschreibbar sein
  • Warnt bei gruppenbeschreibbaren Dateien

Schnellstart

const std = @import("std");
const hsm = @import("hsm");

pub fn main() !void {
    var gpa = std.heap.GeneralPurposeAllocator(.{}){};
    defer _ = gpa.deinit();
    const allocator = gpa.allocator();

    // Verfügbare Token auflisten
    const tokens = try hsm.listTokens(allocator, false);
    defer {
        for (tokens) |*t| t.deinit();
        allocator.free(tokens);
    }

    if (tokens.len == 0) {
        std.debug.print("Keine Token gefunden\n", .{});
        return;
    }

    // Ersten Token öffnen
    var token = try hsm.openToken(allocator, tokens[0].id, .{});
    defer token.close();

    // PIN verifizieren
    try token.verifyPin("123456");

    // Zertifikat lesen
    const cert = try token.getCertificate(.authentication);
    defer allocator.free(cert);
    std.debug.print("Zertifikat: {} Bytes\n", .{cert.len});

    // Digest signieren
    var digest: [32]u8 = undefined;
    std.crypto.hash.sha2.Sha256.hash("Hallo, PIV!", &digest, .{});

    const signature = try token.sign(.authentication, .ecdsa_p256, &digest);
    defer allocator.free(signature);
    std.debug.print("Signatur: {} Bytes\n", .{signature.len});
}

API-Übersicht

Typen

TypBeschreibung
TokenKindToken-Typ: .piv, .cac, .yubikey, .unknown
TokenInfoMetadaten eines erkannten Tokens
TokenOffener Token-Handle für Operationen
SlotSchlüsselslot: .authentication (9A), .signature (9C), .key_management (9D), .card_auth (9E)
AlgorithmKrypto-Algorithmus: .ecdsa_p256, .ecdsa_p384, .rsa2048_pkcs1v15, etc.
CapabilitiesFlags für Token-Fähigkeiten
PcscScopePC/SC-Kontextbereich: .user (Standard), .system

Funktionen

FunktionBeschreibung
listTokens(allocator, use_sim)Verfügbare Token auflisten
openToken(allocator, id, opts)Token per ID öffnen
token.reconnect()Neu verbinden und Authentifizierungszustand zurücksetzen
token.verifyPin(pin)PIN verifizieren
token.changePin(old, new)PIN ändern
token.unblockPin(puk, new_pin)PIN mit PUK entsperren
token.getCertificate(slot)DER-kodiertes Zertifikat abrufen
token.sign(slot, alg, digest)Digest signieren
token.decrypt(slot, alg, ciphertext)Daten entschlüsseln
token.capabilities()Token-Fähigkeiten abrufen
token.close()Token-Verbindung schließen

Fehler

Alle Operationen geben Fehler von HsmError zurück:

  • PC/SC: PcscUnavailable, ReaderGone, CardRemoved, Timeout
  • PIN: PinIncorrect, PinLocked, PinLengthInvalid
  • Fähigkeit: NotSupported, SlotNotFound, AlgorithmNotSupported
  • Daten: InvalidTlv, CertificateNotFound, InvalidDigestLength
  • Sicherheit: SecurityConditionNotSatisfied, AuthenticationFailed

Paralleles Operationsmodul

Tool herunterladen