Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
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
1 mese 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

root@kitploit:~
# 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)

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 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

root@kitploit:~
# 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

root@kitploit:~
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

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

Esempio di Utilizzo

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

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à:

root@kitploit:~
# 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"
root@kitploit:~
# 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

root@kitploit:~
# 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

  • Macchina a stati dell'handshake TLS 1.3
  • Key schedule HKDF (RFC 8446 §7, RFC 9001 §5.1)
  • Protezione record AEAD (AES-GCM, ChaCha20-Poly1305)
  • Parsing e validazione certificati X.509
  • Verifica firme (ECDSA, RSA-PSS, Ed25519)
  • Protocollo Alert
  • Anti-replay 0-RTT
  • Interfacce di integrazione QUIC

🚧 Lavori Futuri

  • Wrapper HKDF-Expand-Label (tracciato nei vettori di test)
  • Supporto OCSP stapling e SCT
  • Validazione completa della catena di certificati
  • Suite cifrari aggiuntivi (AES-256-GCM-SHA384, AES-CCM)
  • Autenticazione post-handshake
  • Migrazione allo stdlib X.509 quando stabile

Contribuire

Quando si aggiungono funzionalità:

  1. Includere test unitari nei file sorgente
  2. Aggiungere citazioni alle sezioni RFC per tutta la logica del protocollo
  3. Aggiornare i test di integrazione se la conformità RFC viene influenzata
  4. Aggiungere test di conformità per le operazioni crittografiche
  5. Aggiornare la documentazione

Licenza

Licenza Apache-2.0 - consulta LICENSE per i dettagli.

Riferimenti

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

Realizzato con Zig 0.16.0 | TLS 1.3 | QUIC-Native | Conforme RFC

Scarica lo strumento