Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
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
tls — Zig-Implementierung von TLS 1.3 für QUIC, RFC 8446/9001-konform mit null externen Abhängigkeiten, mit AEAD-Schutz, X.509-Validierung und über 1000 Tests. | Kitploit
Tools/GitLabGitLab/devnw/zig/tls
NetzwerksicherheitKryptographie
GitLabdevnw/zig/tls

tls

Zig-Implementierung von TLS 1.3 für QUIC, RFC 8446/9001-konform mit null externen Abhängigkeiten, mit AEAD-Schutz, X.509-Validierung und über 1000 Tests.

Repository anzeigen
vor 1 MonatNoch 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

ztls

Eine TLS 1.3-Implementierung für QUIC, geschrieben in Zig, die strikt RFC 8446 (TLS 1.3) und RFC 9001 (QUIC-TLS) einhält.

Status

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

Hinweis zur Leistung

Das Handshake-Ziel von <2 ms wurde für Ed25519- und RSA-2048-Zertifikatskonfigurationen validiert. secp256r1 (P-256)-Workloads benötigen derzeit 2–3 ms pro Handshake aufgrund einer Einschränkung der upstream Zig stdlib (PERF-229). Siehe ADR-0002 für den vollständigen Entscheidungsdatensatz.

Funktionen

✅ RFC-konform - Implementiert TLS 1.3 (RFC 8446) und QUIC-TLS (RFC 9001) ✅ Keine Abhängigkeiten - Verwendet nur die Zig-Standardbibliothek ✅ Interop-getestet - Konformitätstests gegen BoringSSL und OpenSSL ✅ QUIC-nativ - Entwickelt für QUIC-Integration, keine traditionelle Record-Schicht ✅ Gut getestet - 551 Unit-Tests + RFC-Testvektoren + 449 Konformitätstests

Schnellstart

root@kitploit:~
# Build and test everything
make

# Or manually
zig build
zig build test

Anforderungen

  • Zig 0.16.0 oder kompatibel
  • OpenSSL-Entwicklungsbibliotheken (optional, für Konformitätstests)

Bauen

Das Projekt verwendet sowohl eine Makefile als auch build.zig für Flexibilität:

Verwendung von Make (empfohlen)

root@kitploit:~
# Build and run all tests (default)
make

# Build only
make build

# Run specific test suites
make test-unit           # Unit-Tests
make test-vectors        # RFC 8446/9001 Testvektoren
make test-conformance    # BoringSSL/OpenSSL-Konformität (erfordert libssl-dev)

# Development workflow
make dev                 # Formatierung + Prüfung + Unit-Tests
make clean               # Build-Artefakte bereinigen
make help                # Alle verfügbaren Ziele anzeigen

Mit zig build

root@kitploit:~
# Bibliothek erstellen
zig build

# Alle Tests ausführen
zig build test

# Bestimmte Test-Suites ausführen
zig build test-vectors
zig build test-conformance  # Erfordert OpenSSL-Entwicklungsbibliotheken

# Mit Optimierungen
zig build -Doptimize=ReleaseFast

Testergebnisse

root@kitploit:~
Build Summary: All steps succeeded; 1000 tests passed ✅

Umfassende Testabdeckung:

  • 551 Unit-Tests - Pro-Modul-Tests mit RFC-Unterabschnittsreferenzen (553 insgesamt, 2 übersprungen)
  • 449 Konformitätstests - BoringSSL- und OpenSSL-Paritätstests
    • Kryptografische Operationen (HKDF, AEAD, Signaturen)
    • X.509-Zertifikatsvalidierung und Kettenaufbau
    • Erweiterte X.509-Erweiterungen (OCSP, CRL, AIA, Namenseinschränkungen, Richtlinien)
    • TLS 1.3-Protokollkonformität (Erweiterungen, Handshake-Abläufe)
    • Leistungsbenchmarks (Latenz <2ms, Speicher <100KB)
    • Sicherheitstests (Fuzzing, Eingabevalidierung)
    • Post-Quantum-Algorithmus-Bereitschaft (nur Parsing)

Insgesamt: 1000 Tests zur Sicherstellung von RFC-Konformität, kryptografischer Parität und Produktionsbereitschaft

Projektstruktur

root@kitploit:~
src/
├── lib.zig               # Main library entry point
├── tls13/                # TLS 1.3 handshake state machine (modularized)
├── tls13_full.zig        # Full TLS 1.3 message parsing
├── key_schedule.zig      # HKDF-based key derivation
├── record.zig            # Record layer & AEAD operations
├── x509.zig              # Certificate parsing & validation
├── sig.zig               # Signature verification
├── asn1.zig              # ASN.1 DER decoder
├── alert.zig             # TLS alert protocol
├── entropy.zig           # Fail-closed RNG helper (SEC-074)
├── zero_rtt.zig          # 0-RTT support
└── quic_*.zig            # QUIC integration interfaces

tests/
├── rfc8446_vectors.zig        # RFC test vectors
├── boringssl_conformance.zig  # BoringSSL parity tests
└── openssl_conformance.zig    # OpenSSL conformance tests

Verwendungsbeispiel

root@kitploit:~
const std = @import("std");
const tls = @import("ztls");

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

    // Configure TLS context
    const config = tls.Config{
        .allocator = gpa.allocator(),
        .role = .client,
        .supported_cipher_suites = &.{.TLS_AES_128_GCM_SHA256},
        .supported_groups = &.{.x25519},
        .alpn_protocols = &.{"h3"},
    };

    // Set up callbacks
    const callbacks = tls.Callbacks{
        .on_secret_available = mySecretCallback,
        .on_handshake_complete = myHandshakeCallback,
    };

    // Initialize TLS context
    var ctx = try tls.Context.init(config, callbacks);
    defer ctx.deinit();

    // Process incoming CRYPTO frames from QUIC
    try ctx.processCrypto(crypto_data);
}

Architektur

Entwurfsprinzipien

  1. INTEROP FIRST - Erkennt und unterstützt automatisch standardmäßige TLS 1.3-Formate für Kompatibilität mit realen QUIC-Implementierungen (quic-go, quinn, msquic)
  2. RFC-gesteuerte Entwicklung - Jeder Implementierungsblock zitiert den relevanten RFC-Abschnitt
  3. Keine externen Abhängigkeiten - Verwendet nur Zig stdlib-Primitive

Schlüsselkomponenten

  • Key Schedule - HKDF-basierte Schlüsselableitung mit std.crypto.kdf.hkdf
  • AEAD-Schutz - AES-128-GCM, AES-256-GCM, ChaCha20-Poly1305
  • Zertifikatsvalidierung - X.509-Parsing mit SNI-Abgleich und Gültigkeitsprüfungen
  • Signaturverifikation - ECDSA (P-256, P-384), RSA-PSS, Ed25519

Konformitätstests

Das Projekt umfasst umfassende Konformitätstests, um die Kompatibilität mit branchenüblichen TLS-Implementierungen sicherzustellen:

BoringSSL-Konformität

  • HKDF-Extract- und HKDF-Expand-Parität
  • QUIC-Initial-Secret-Ableitung (RFC 9001)
  • AEAD-Chiffre-Kompatibilität
  • Alert-Code-Zuordnung

OpenSSL 3.x-Konformität

  • EVP-API-Kompatibilität
  • Verfügbarkeit von Cipher Suites
  • Hashfunktionsparität
  • Schlüsselaktualisierungsverfahren

Um Konformitätstests auszuführen:

root@kitploit:~
# OpenSSL-Entwicklungsbibliotheken zuerst installieren
make install-deps  # Erkennt Ihr Betriebssystem automatisch

# Konformitätstests ausführen
make test-conformance

Beobachtbarkeit

ztls wird mit einer opt-in OpenTelemetry-Naht ausgeliefert. Wenn die Build-Flag -Dwith_otel=true gesetzt ist, emittiert die Bibliothek genau einen Span pro TLS-Handshake (Span-Name: "TLS handshake") mit den folgenden semantischen Konventionsattributen, die bei Abschluss angehängt werden:

  • tls.role -- "client" oder "server"
  • tls.protocol.version -- "1.3" (immer für ztls)
  • tls.cipher_suite -- der ausgehandelte Cipher (z.B. TLS_AES_128_GCM_SHA256)
  • network.protocol.name -- "tls"
root@kitploit:~
# Standard-Build: keine otel-Symbole, kein Overhead.
zig build test

# Aktivierter Build: ein Span pro Handshake, exportiert über die OTLP
# Standardeinstellungen (http://localhost:4318) oder beliebige OTEL_* Umgebungsvariablen
# angeben.
zig build test -Dwith_otel=true

Die Naht wird durch eine Lazy-Abhängigkeit abgeschirmt, sodass das otel-Paket nur abgerufen wird, wenn die Flagge gesetzt ist. Anwendungs-Einstiegspunktcode, der einen TracerProvider installieren möchte, sollte ztls.observability_init.Otel.init und dann installGlobals() aufrufen; konsultieren Sie das Upstream-otel-Integrationsrezept (otel/docs/integration/RECIPE.md) für das vollständige Host-Anwendungs-Bootstrap.

Dokumentation

  • BUILD_SYSTEM.md - Detaillierte Dokumentation des Build-Systems
  • CONFORMANCE_TESTS.md - Dokumentation der BoringSSL/OpenSSL-Kompatibilitätstests
  • CLAUDE.md - Projektübersicht und KI-Assistenzkontext
  • RFC-Referenzen - Der gesamte Code enthält RFC-Abschnittszitate

Entwicklung

root@kitploit:~
# Schnelle Entwicklungsiteration
make dev

# Code formatieren
make fmt
# oder
zig fmt src/ tests/

# Syntax prüfen
make check

# Sauberer Build
make clean build

Implementierungsstatus

✅ Abgeschlossen

  • TLS 1.3-Handshake-Zustandsmaschine
  • HKDF-Schlüsselplan (RFC 8446 §7, RFC 9001 §5.1)
  • AEAD-Record-Schutz (AES-GCM, ChaCha20-Poly1305)
  • X.509-Zertifikatsparsing und -validierung
  • Signaturverifikation (ECDSA, RSA-PSS, Ed25519)
  • Alert-Protokoll
  • 0-RTT-Anti-Replay
  • QUIC-Integrationsschnittstellen

🚧 Zukünftige Arbeiten

  • HKDF-Expand-Label-Wrapper (in Testvektoren verfolgt)
  • OCSP-Stapling und SCT-Unterstützung
  • Vollständige Zertifikatskettenvalidierung
  • Zusätzliche Cipher Suites (AES-256-GCM-SHA384, AES-CCM)
  • Post-Handshake-Authentifizierung
  • Migration zu stdlib X.509, sobald stabil

Mitwirken

Beim Hinzufügen von Funktionen:

  1. Fügen Sie Unit-Tests in Quelldateien ein
  2. Fügen Sie RFC-Abschnittszitate zur gesamten Protokolllogik hinzu
  3. Aktualisieren Sie Integrationstests, wenn die RFC-Konformität betroffen ist
  4. Fügen Sie Konformitätstests für kryptografische Operationen hinzu
  5. Aktualisieren Sie die Dokumentation

Lizenz

Apache-2.0-Lizenz - siehe LICENSE für Details.

Referenzen

  • RFC 8446 - TLS 1.3
  • RFC 9001 - QUIC-Transport-TLS
  • RFC 9369 - QUIC Version 2
  • RFC 5280 - X.509-Zertifikate
  • RFC 7301 - ALPN

Erstellt mit Zig 0.16.0 | TLS 1.3 | QUIC-nativ | RFC-konform

Tool herunterladen