Inhaltsverzeichnis
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
- Operazioni – Health Check, certificati via CLI
- Troubleshooting – Errori di configurazione
- Algoritmi – Dettagli tecnici
- CryptoConfig API – Per sviluppatori
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional