Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
tls — Implementazione in Zig di TLS 1.3 per QUIC, conforme a RFC 8446/9001 con zero dipendenze esterne, dotata di protezione AEAD, validazione X.509 e oltre 1000 test. | Kitploit
Strumenti/GitLabGitLab/devnw/zig/tls
Sicurezza di ReteCrittografia
GitLabdevnw/zig/tls

tls

Implementazione in Zig di TLS 1.3 per QUIC, conforme a RFC 8446/9001 con zero dipendenze esterne, dotata di protezione AEAD, validazione X.509 e oltre 1000 test.

Vedi Repository
2217 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

ztls

Un'implementazione TLS 1.3 per QUIC scritta in Zig, che aderisce rigorosamente a RFC 8446 (TLS 1.3) e RFC 9001 (QUIC-TLS).

Stato

AspettoInfo
Stabilità APIProduction
Versione Zig0.16.0
PiattaformeLinux, macOS, Windows

Nota sulle prestazioni

L'obiettivo di handshake <2 ms è validato su configurazioni di certificati Ed25519 e RSA-2048. I carichi di lavoro secp256r1 (P-256) attualmente richiedono 2–3 ms per handshake a causa di una limitazione a monte della stdlib di Zig (PERF-229). Consulta ADR-0002 per il record decisionale completo.

Funzionalità

✅ Conforme RFC - Implementa TLS 1.3 (RFC 8446) e QUIC-TLS (RFC 9001) ✅ Zero Dipendenze - Utilizza solo la libreria standard di Zig ✅ Testato per Interoperabilità - Test di conformità contro BoringSSL e OpenSSL ✅ Nativo per QUIC - Progettato per l'integrazione QUIC, nessun livello record tradizionale ✅ Ben Testato - 551 test unitari + vettori di test RFC + 449 test di conformità

Avvio Rapido

# Build and test everything
make

# Or manually
zig build
zig build test

Requisiti

  • Zig 0.16.0 o compatibile
  • Librerie di sviluppo OpenSSL (opzionali, per test di conformità)

Compilazione

Il progetto utilizza sia un Makefile che build.zig per flessibilità:

Usare Make (Consigliato)

# 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 test vectors
make test-conformance    # BoringSSL/OpenSSL conformance (requires libssl-dev)

# Development workflow
make dev                 # Format + check + unit tests
make clean               # Clean build artifacts
make help                # Show all available targets

Usare zig build

# Build the library
zig build

# Run all tests
zig build test

# Run specific test suites
zig build test-vectors
zig build test-conformance  # Requires OpenSSL dev libraries

# With optimizations
zig build -Doptimize=ReleaseFast

Risultati dei Test

Build Summary: All steps succeeded; 1000 tests passed ✅

Copertura completa dei test:

  • 551 test unitari - Test per modulo con riferimenti alle sottosezioni RFC (553 totali, 2 saltati)
  • 449 test di conformità - Test di parità con BoringSSL e OpenSSL
    • Operazioni crittografiche (HKDF, AEAD, firme)
    • Validazione dei certificati X.509 e costruzione della catena
    • Estensioni X.509 avanzate (OCSP, CRL, AIA, vincoli sui nomi, politiche)
    • Conformità al protocollo TLS 1.3 (estensioni, flussi di handshake)
    • Benchmark delle prestazioni (latenza <2ms, memoria <100KB)
    • Test di sicurezza (fuzzing, validazione input)
    • Prontezza per algoritmi post-quantum (solo parsing)

Totale: 1000 test che garantiscono conformità RFC, parità crittografica e prontezza per la produzione

Struttura del Progetto

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

Esempio di Utilizzo

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);
}

Architettura

Principi di Progettazione

  1. INTEROP FIRST - Rileva e supporta automaticamente i formati standard TLS 1.3 per la compatibilità con implementazioni QUIC reali (quic-go, quinn, msquic)
  2. Sviluppo guidato da RFC - Ogni blocco di implementazione cita la sezione RFC pertinente
  3. Zero Dipendenze Esterne - Utilizza solo primitive della stdlib di Zig

Componenti Chiave

  • Key Schedule - Derivazione delle chiavi basata su HKDF usando std.crypto.kdf.hkdf
  • Protezione AEAD - AES-128-GCM, AES-256-GCM, ChaCha20-Poly1305
  • Validazione dei Certificati - Parsing X.509 con corrispondenza SNI e controlli di validità
  • Verifica delle Firme - ECDSA (P-256, P-384), RSA-PSS, Ed25519

Test di Conformità

Il progetto include test di conformità completi per garantire la compatibilità con le implementazioni TLS standard del settore:

Conformità BoringSSL

  • Parità HKDF-Extract e HKDF-Expand
  • Derivazione del segreto iniziale QUIC (RFC 9001)
  • Compatibilità cifrari AEAD
  • Mappatura dei codici di alert

Conformità OpenSSL 3.x

  • Compatibilità API EVP
  • Disponibilità suite cifrari
  • Parità funzioni hash
  • Procedure di aggiornamento chiave

Per eseguire i test di conformità:

# Install OpenSSL development libraries first
make install-deps  # Auto-detects your OS

# Run conformance tests
make test-conformance

Osservabilità

ztls è dotato di un punto di osservabilità OpenTelemetry opzionale. Quando il flag di build -Dwith_otel=true è impostato, la libreria emette esattamente uno span per handshake TLS (nome span: "TLS handshake") con i seguenti attributi di convenzione semantica allegati al completamento:

  • tls.role -- "client" o "server"
  • tls.protocol.version -- "1.3" (sempre per ztls)
  • tls.cipher_suite -- il cifrario negoziato (es. TLS_AES_128_GCM_SHA256)
  • network.protocol.name -- "tls"
# Default build: no otel symbols, zero overhead.
zig build test

# Enabled build: one span per handshake, exported via the OTLP
# defaults (http://localhost:4318) or whatever OTEL_* env vars
# specify.
zig build test -Dwith_otel=true

Il punto di osservabilità è controllato da una dipendenza lazy, quindi il pacchetto otel viene recuperato solo quando il flag è attivo. Il codice di entry-point dell'applicazione che vuole installare un TracerProvider deve chiamare ztls.observability_init.Otel.init e poi installGlobals(); consulta la ricetta di integrazione otel a monte (otel/docs/integration/RECIPE.md) per il bootstrap completo dell'applicazione host.

Documentazione

  • BUILD_SYSTEM.md - Documentazione dettagliata del sistema di build
  • CONFORMANCE_TESTS.md - Documentazione dei test di compatibilità BoringSSL/OpenSSL
  • CLAUDE.md - Panoramica del progetto e contesto di assistenza AI
  • Riferimenti RFC - Tutto il codice include citazioni alle sezioni RFC

Sviluppo

# Quick development iteration
make dev

# Format code
make fmt
# or
zig fmt src/ tests/

# Check syntax
make check

# Clean build
make clean build

Stato dell'Implementazione

✅ Completato

Scarica lo strumento