Opzioni di configurazione per l'infrastruttura crittografica PQ.
| 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 |
# 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
# 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
# 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 | 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.
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/ |
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.
Per la conformita FIPS 140-3 deve essere attivato l'OpenSSL FIPS Provider.
# Elencare provider openssl list -providers # Output atteso con FIPS: # Providers: # default # fips
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
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"
Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional