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