3.2 Configurazione

Opzioni di configurazione per l'infrastruttura crittografica PQ.


Variabili d'ambiente

Variabile Descrizione Esempio Priorita
OPENSSL_PATH Percorso ai binari OpenSSL C:\OpenSSL\bin Alta
WVDS_CRYPTO_MODE Modalita crittografica predefinita Hybrid Media
WVDS_PQ_KEYSTORE Percorso allo storage chiavi PQ %LOCALAPPDATA%\WvdS.Crypto\PqKeys Opzionale

Windows (PowerShell come amministratore)

# Permanente per tutti gli utenti (Machine-Scope)
[Environment]::SetEnvironmentVariable("OPENSSL_PATH", "C:\Program Files\OpenSSL\bin", "Machine")
[Environment]::SetEnvironmentVariable("WVDS_CRYPTO_MODE", "Hybrid", "Machine")
 
# Verificare (aprire nuova PowerShell)
$env:OPENSSL_PATH
$env:WVDS_CRYPTO_MODE

Linux

# A livello di sistema (/etc/profile.d/)
sudo tee /etc/profile.d/wvds-crypto.sh << 'EOF'
export OPENSSL_PATH=/usr/local/openssl/lib
export WVDS_CRYPTO_MODE=Hybrid
EOF
 
# Per l'utente corrente (~/.bashrc o ~/.profile)
echo 'export OPENSSL_PATH=/usr/local/openssl/lib' >> ~/.bashrc
echo 'export WVDS_CRYPTO_MODE=Hybrid' >> ~/.bashrc
 
# Attivare
source ~/.bashrc
 
# Verificare
echo $OPENSSL_PATH
echo $WVDS_CRYPTO_MODE

macOS

# In ~/.zshrc (shell predefinita su macOS)
echo 'export OPENSSL_PATH=$(brew --prefix openssl@3)/lib' >> ~/.zshrc
echo 'export WVDS_CRYPTO_MODE=Hybrid' >> ~/.zshrc
 
source ~/.zshrc

Modalita crittografiche

Modalita Descrizione Utilizzo
Classic Solo RSA/ECDSA Sistemi legacy, retrocompatibilita
Hybrid RSA + ML-DSA in parallelo Raccomandato per la migrazione
PostQuantum Solo ML-DSA/ML-KEM Nuovi sistemi solo PQ

Raccomandazione: Utilizzare Hybrid durante la fase di transizione. Questo offre sicurezza anche se un algoritmo viene compromesso.


Storage chiavi PQ

Il Windows Certificate Store non supporta chiavi PQ native. La libreria utilizza un Side-Store separato:

Percorsi predefiniti:

OS Percorso
Windows %LOCALAPPDATA%\WvdS.Crypto\PqKeys\
Linux ~/.local/share/wvds-crypto/pqkeys/
macOS ~/Library/Application Support/WvdS.Crypto/PqKeys/

Verificare i permessi

Windows (PowerShell):

# Determinare percorso
$pqKeyStore = "$env:LOCALAPPDATA\WvdS.Crypto\PqKeys"
 
# Verificare esistenza
Test-Path $pqKeyStore
 
# Mostrare permessi
Get-Acl $pqKeyStore | Format-List
 
# Impostare permessi (solo utente corrente)
icacls $pqKeyStore /inheritance:r /grant:r "$env:USERNAME:(OI)(CI)F"

Linux:

# Percorso
PQ_KEYSTORE=~/.local/share/wvds-crypto/pqkeys
 
# Verificare esistenza
ls -la $PQ_KEYSTORE
 
# Impostare permessi (solo proprietario lettura/scrittura)
chmod 700 $PQ_KEYSTORE
chmod 600 $PQ_KEYSTORE/*
 
# Verificare
stat $PQ_KEYSTORE

Importante: Lo storage chiavi PQ non e incluso nel backup del Windows Certificate Store! Eseguire il backup di questa cartella separatamente.


Modalita FIPS (OpenSSL)

Per la conformita FIPS 140-3 deve essere attivato l'OpenSSL FIPS Provider.

Verificare stato FIPS Provider

# Elencare provider
openssl list -providers
 
# Output atteso con FIPS:
# Providers:
#   default
#   fips

Attivare FIPS Provider

Configurare openssl.cnf:

# Determinare percorso configurazione OpenSSL
openssl version -d
# Output: OPENSSLDIR: "/usr/local/openssl"
 
# Modificare configurazione
sudo nano /usr/local/openssl/openssl.cnf

Voci richieste in openssl.cnf:

# All'inizio del file
openssl_conf = openssl_init
 
[openssl_init]
providers = provider_sect
 
[provider_sect]
fips = fips_sect
base = base_sect
default = default_sect
 
[fips_sect]
activate = 1
 
[base_sect]
activate = 1
 
[default_sect]
activate = 1

Verifica:

# Verificare stato FIPS
openssl list -providers | grep -i fips
 
# Algoritmi validati FIPS
openssl list -signature-algorithms -provider fips

Configurazione algoritmi

Varianti ML-DSA disponibili (firme):

Algoritmo Livello NIST Chiave pubblica Firma Raccomandazione
ML-DSA-44 Livello 2 1.312 B 2.420 B Sistemi con risorse limitate
ML-DSA-65 Livello 3 1.952 B 3.309 B Standard (raccomandato)
ML-DSA-87 Livello 5 2.592 B 4.627 B Massima sicurezza

Varianti ML-KEM disponibili (scambio chiavi):

Algoritmo Livello NIST Chiave pubblica Ciphertext Shared Secret
ML-KEM-512 Livello 1 800 B 768 B 32 B
ML-KEM-768 Livello 3 1.184 B 1.088 B 32 B
ML-KEM-1024 Livello 5 1.568 B 1.568 B 32 B

Verificare supporto algoritmi:

# Tutti gli algoritmi di firma disponibili
openssl list -signature-algorithms
 
# ML-DSA specifico
openssl list -signature-algorithms | grep -i "ml-dsa"
 
# Tutti gli algoritmi KEM
openssl list -kem-algorithms
 
# ML-KEM specifico
openssl list -kem-algorithms | grep -i "ml-kem"

Approfondimenti


Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional

Zuletzt geändert: il 30/01/2026 alle 08:57