====== 3.2 Konfiguration ====== Konfigurationsoptionen für die PQ-Kryptographie-Infrastruktur. ---- ===== Umgebungsvariablen ===== ^ Variable ^ Beschreibung ^ Beispiel ^ Priorität ^ | ''OPENSSL_PATH'' | Pfad zu OpenSSL-Binaries | ''C:\OpenSSL\bin'' | Hoch | | ''WVDS_CRYPTO_MODE'' | Standard-Krypto-Modus | ''Hybrid'' | Mittel | | ''WVDS_PQ_KEYSTORE'' | Pfad zum PQ-Schlüsselspeicher | ''%LOCALAPPDATA%\WvdS.Crypto\PqKeys'' | Optional | ==== Windows (PowerShell als Administrator) ==== # Permanent für alle Benutzer (Machine-Scope) [Environment]::SetEnvironmentVariable("OPENSSL_PATH", "C:\Program Files\OpenSSL\bin", "Machine") [Environment]::SetEnvironmentVariable("WVDS_CRYPTO_MODE", "Hybrid", "Machine") # Verifizieren (neue PowerShell öffnen) $env:OPENSSL_PATH $env:WVDS_CRYPTO_MODE ==== Linux ==== # Systemweit (/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 # Für aktuellen Benutzer (~/.bashrc oder ~/.profile) echo 'export OPENSSL_PATH=/usr/local/openssl/lib' >> ~/.bashrc echo 'export WVDS_CRYPTO_MODE=Hybrid' >> ~/.bashrc # Aktivieren source ~/.bashrc # Verifizieren echo $OPENSSL_PATH echo $WVDS_CRYPTO_MODE ==== macOS ==== # In ~/.zshrc (Standard-Shell auf macOS) echo 'export OPENSSL_PATH=$(brew --prefix openssl@3)/lib' >> ~/.zshrc echo 'export WVDS_CRYPTO_MODE=Hybrid' >> ~/.zshrc source ~/.zshrc ---- ===== Krypto-Modi ===== ^ Modus ^ Beschreibung ^ Verwendung ^ | ''Classic'' | Nur RSA/ECDSA | Legacy-Systeme, Rückwärtskompatibilität | | ''Hybrid'' | RSA + ML-DSA parallel | **Empfohlen** für Migration | | ''PostQuantum'' | Nur ML-DSA/ML-KEM | Neue PQ-only Systeme | **Empfehlung:** Verwenden Sie ''Hybrid'' während der Übergangsphase. Dies bietet Sicherheit auch wenn ein Algorithmus kompromittiert wird. ---- ===== PQ-Schlüsselspeicher ===== Der Windows Certificate Store unterstützt keine nativen PQ-Schlüssel. Die Bibliothek verwendet einen separaten Side-Store: **Standardpfade:** ^ OS ^ Pfad ^ | Windows | ''%LOCALAPPDATA%\WvdS.Crypto\PqKeys\'' | | Linux | ''~/.local/share/wvds-crypto/pqkeys/'' | | macOS | ''~/Library/Application Support/WvdS.Crypto/PqKeys/'' | ==== Berechtigungen prüfen ==== **Windows (PowerShell):** # Pfad ermitteln $pqKeyStore = "$env:LOCALAPPDATA\WvdS.Crypto\PqKeys" # Existenz prüfen Test-Path $pqKeyStore # Berechtigungen anzeigen Get-Acl $pqKeyStore | Format-List # Berechtigungen setzen (nur aktueller Benutzer) icacls $pqKeyStore /inheritance:r /grant:r "$env:USERNAME:(OI)(CI)F" **Linux:** # Pfad PQ_KEYSTORE=~/.local/share/wvds-crypto/pqkeys # Existenz prüfen ls -la $PQ_KEYSTORE # Berechtigungen setzen (nur Owner lesen/schreiben) chmod 700 $PQ_KEYSTORE chmod 600 $PQ_KEYSTORE/* # Verifizieren stat $PQ_KEYSTORE **Wichtig:** Der PQ-Schlüsselspeicher ist **nicht** im Windows Certificate Store Backup enthalten! Sichern Sie diesen Ordner separat. ---- ===== FIPS-Modus (OpenSSL) ===== Für FIPS 140-3 Compliance muss der OpenSSL FIPS Provider aktiviert werden. ==== FIPS Provider Status prüfen ==== # Provider auflisten openssl list -providers # Erwartete Ausgabe mit FIPS: # Providers: # default # fips ==== FIPS Provider aktivieren ==== **openssl.cnf konfigurieren:** # OpenSSL Konfigurationspfad ermitteln openssl version -d # Ausgabe: OPENSSLDIR: "/usr/local/openssl" # Konfiguration editieren sudo nano /usr/local/openssl/openssl.cnf **Erforderliche Einträge in openssl.cnf:** # Am Anfang der Datei 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 **Verifizierung:** # FIPS Status prüfen openssl list -providers | grep -i fips # FIPS-validierte Algorithmen openssl list -signature-algorithms -provider fips ---- ===== Algorithmen-Konfiguration ===== **Verfügbare ML-DSA Varianten (Signaturen):** ^ Algorithmus ^ NIST Level ^ Public Key ^ Signatur ^ Empfehlung ^ | ML-DSA-44 | Level 2 | 1,312 B | 2,420 B | Ressourcenbeschränkte Systeme | | ML-DSA-65 | Level 3 | 1,952 B | 3,309 B | **Standard (empfohlen)** | | ML-DSA-87 | Level 5 | 2,592 B | 4,627 B | Höchste Sicherheit | **Verfügbare ML-KEM Varianten (Schlüsselaustausch):** ^ Algorithmus ^ NIST Level ^ Public Key ^ Ciphertext ^ Shared Secret ^ | ML-KEM-512 | Level 1 | 800 B | 768 B | 32 B | | ML-KEM-768 | Level 3 | 1,184 B | 1,088 B | 32 B | | ML-KEM-1024 | Level 5 | 1,568 B | 1,568 B | 32 B | **Algorithmus-Support prüfen:** # Alle verfügbaren Signatur-Algorithmen openssl list -signature-algorithms # ML-DSA spezifisch openssl list -signature-algorithms | grep -i "ml-dsa" # Alle KEM-Algorithmen openssl list -kem-algorithms # ML-KEM spezifisch openssl list -kem-algorithms | grep -i "ml-kem" ---- ===== Weiterführend ===== * [[.:betrieb|Betrieb]] – Health Checks, Zertifikate via CLI * [[.:troubleshooting|Troubleshooting]] – Konfigurationsfehler * [[de:int:pqcrypt:konzepte:algorithmen|Algorithmen]] – Technische Details * [[de:int:pqcrypt:api:cryptoconfig|CryptoConfig API]] – Für Entwickler ---- //Wolfgang van der Stille @ EMSR DATA d.o.o. - Post-Quantum Cryptography Professional// {{tag>konfiguration umgebungsvariablen fips openssl}}