~~NOTOC~~ {{wvds:title>Architettura}} ===== Architettura di Sistema ===== ==== Architettura a Due Daemon ==== Il WvdS Crypto Service consiste in due daemon indipendenti su L4Re: Sistema L4Re +---------------------------------------------------------------------+ | | | +------------------+ +------------------+ +--------------+ | | | crypto_service | | est_service | | OEM Gateway | | | | | | | | | | | | * AES-256-GCM | | * Protocollo EST| | * Il tuo cod.| | | | * ML-DSA Sign | | * Richiesta cert| | * Dati sens. | | | | * ML-KEM KeyGen | | * Rinnovo cert. | | * Business | | | +--------+---------+ +--------+---------+ +------+-------+ | | | | | | | +------------------------+----------------------+ | | Memoria Condivisa IPC | | | +---------------------------------------------------------------------+ === crypto_service === | Funzione | Operazioni crittografiche | | Protocollo | Richiesta/Risposta via memoria condivisa | | Libreria | OpenSSL 3.6 con FIPS Provider | Il crypto_service esegue tutte le operazioni crittografiche: * AES-256-GCM Encrypt/Decrypt * ML-DSA Sign/Verify * ML-KEM KeyGen/Encaps/Decaps === est_service === | Funzione | Gestione certificati | | Protocollo | EST (Enrollment over Secure Transport) | | RFC | RFC 7030 | L'est_service gestisce: * Richiesta iniziale certificato (Enrollment) * Rinnovo certificato (Re-Enrollment) * Recupero certificato CA ---- ==== Comunicazione via Memoria Condivisa ==== La comunicazione tra OEM Gateway e Crypto Service usa la memoria condivisa: OEM Gateway crypto_service | | | 1. Richiesta in memoria condivisa | +------------------------------------->| | | | 2. Segnale (IPC) | +------------------------------------->| | | | 3. Elaborazione | | | | 4. Risposta in memoria condivisa | |<-------------------------------------+ | | | 5. Segnale (IPC) | |<-------------------------------------+ **Vantaggi:** * Nessun overhead kernel per trasferimento dati * Zero-copy per payload grandi * Massime prestazioni **Limitazioni:** * Payload massimo: 64 KB * Elaborazione sincrona (una richiesta alla volta) ---- ==== Contenuto della Consegna ==== wvds-crypto-svc-0.2.0-oem-delivery.tar.gz | +-- bin/ | +-- aarch64/ | +-- wvds_crypto_service # DAEMON PRONTO (L4Re Task) | +-- lib/ | +-- aarch64/ # ARM64 Target (L4Re) | | +-- libl4re_crypto_service.so # Crypto Service Library | | +-- libcrypto.so.3 # OpenSSL 3.6 | | +-- libssl.so.3 # OpenSSL 3.6 | | +-- fips.so # FIPS Provider | | +-- fipsmodule.cnf # Configurazione FIPS | +-- x86_64/ # x86_64 (per test locali) | +-- [stessi file] | +-- include/ | +-- wvds_crypto.h # Header C per funzioni helper | +-- certs/ # Certificati di test | +-- root_ca.pem / .der | +-- service_cert.pem / .der | +-- client_cert.pem / .der | +-- scripts/ | +-- extract_certs.py # Tool per certificati | +-- install.sh # Script di installazione +-- README_OEM.md # Quick Start +-- WvdS_KB_OEM.md # Knowledge Base ---- ==== Archiviazione Chiavi ==== Il Crypto Service supporta varie opzioni di archiviazione chiavi: | Opzione | Sicurezza | Configurazione | | File | Base | Chiavi nel filesystem (cifrate) | | TPM | Alta | Chiavi nel Trusted Platform Module | | HSM | Massima | Chiavi nell'Hardware Security Module | La configurazione avviene via ''config.json'' (vedi [[.:installation|Installazione]]). ---- ==== Confini di Sicurezza ==== +---------------------------------------------------------------+ | L4Re Microkernel | +---------------------------------------------------------------+ | | | | | | | +--+--+ +---+---+ +---+---+ +---+---+ | | | Sigma0 | | Moe | | Crypto | | OEM | | | | (Root) | | (Mem) | | Service| | Gateway| | | +--------+ +-------+ +--------+ +--------+ | | | | | | +--------------+ | | Memoria condivisa | | (solo questi due) | +---------------------------------------------------------------+ **Isolamento:** * Ogni task ha il proprio spazio di indirizzamento * Crypto Service raggiungibile solo via IPC definito * Kernel impone controllo accessi basato su capability ---- [[.:start|< Torna alla panoramica]]