====== 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 ===== * [[.:betrieb|Operazioni]] – Health Check, certificati via CLI * [[.:troubleshooting|Troubleshooting]] – Errori di configurazione * [[..:konzepte:algorithmen|Algoritmi]] – Dettagli tecnici * [[..:api:cryptoconfig|CryptoConfig API]] – Per sviluppatori ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional// {{tag>konfiguration umgebungsvariablen fips openssl}}