====== 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}}