forked from eclipse-opensovd/opensovd
-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Description
Beschreibung
Die SOVD-Spezifikation (ISO 17978-1) fordert HTTPS-Unterstuetzung. Das Requirement req~sovd-api-http-server ist als draft markiert und enthaelt den TODO: Maybe connection establishment/encryption also needs to be done through HSM?. Aktuell startet der Webserver nur HTTP (ohne TLS).
Betroffene Dateien
cda-sovd/src/lib.rs—launch_webserver()Funktioncda-main/— Konfiguration und Startupcda-plugin-security/— Security Plugin Interfacesopensovd-cda.toml— Konfigurationsdatei
Implementierungs-Tasks
- TLS-Konfiguration in
opensovd-cda.tomldefinierentls.enabled(bool)tls.cert_path(Pfad zum Zertifikat)tls.key_path(Pfad zum Private Key)tls.ca_path(Optional: CA Bundle fuer mTLS)tls.min_version(TLS 1.2 oder 1.3)
-
axum-servermitrustlsodernative-tlsBackend integrieren -
launch_webserver()um TLS-Modus erweitern - Zertifikat-Rotation ohne Server-Neustart (File-Watcher)
- mTLS (Mutual TLS) als optionale Konfiguration
- HSM-Plugin Interface fuer Zertifikat/Key-Zugriff (Trait)
- Redirect HTTP -> HTTPS (optional)
- Konfigurierbare Cipher Suites
Unit Tests (Pflicht)
- Test: Server startet mit gueltigem TLS-Zertifikat
- Test: Server verweigert Start bei ungueltigem Zertifikat
- Test: Server verweigert Start bei fehlendem Key
- Test: TLS 1.2 Verbindung erfolgreich
- Test: TLS 1.3 Verbindung erfolgreich
- Test: TLS < 1.2 wird abgelehnt (wenn min_version = 1.2)
- Test: mTLS mit Client-Zertifikat erfolgreich
- Test: mTLS ohne Client-Zertifikat -> Verbindung abgelehnt
- Test: HTTP-Modus funktioniert weiterhin (Backward Compatibility)
- Test: Config-Parsing fuer alle TLS-Parameter
CrossCheck & Constraints
- Pruefung gegen ISO 17978-1 HTTPS Requirements
- Pruefung gegen OWASP TLS Best Practices
- Constraint: Mindestens TLS 1.2 (TLS 1.0/1.1 verboten)
- Constraint: Private Key Dateiberechtigungen pruefen (0600)
- Constraint: Zertifikat-Ablauf pruefen und warnen (30 Tage vorher)
- Constraint: Self-signed Zertifikate nur im Dev-Modus erlauben
- Regressionstests: HTTP-Modus unveraendert
Security Audit
- Private Key darf nicht im Log erscheinen
- Private Key darf nicht ueber API abrufbar sein
- Cipher Suite Audit: Nur sichere Cipher erlauben (kein RC4, DES, etc.)
- Certificate Pinning Option evaluieren
- HSTS Header setzen wenn HTTPS aktiv
- Key-Material im Speicher nach Verwendung nullen (zeroize)
- HSM Interface: Key darf Trusted Execution Environment nie verlassen
- Penetration Test Szenario: Man-in-the-Middle bei fehlkonfiguriertem TLS
Zeitschaetzung
| Aufwand | |
|---|---|
| Konventioneller Entwickler | 3 PT |
| KI-Agent | 1 PT |
Reactions are currently unavailable