15. Security Considerations (Sicherheitserwägungen)
Dieser Abschnitt diskutiert Sicherheitserwägungen des HTTP/1.1-Protokolls.
15.1 Personal Information (Persönliche Informationen)
HTTP-Clients haben in der Regel Zugriff auf eine große Menge persönlicher Informationen (z.B. Name des Benutzers, Standort, E-Mail-Adresse, Passwörter, Verschlüsselungsschlüssel usw.). Diese Informationen sollten sorgfältig behandelt werden, um unbeabsichtigte Offenlegung zu verhindern.
Hauptrisiken:
- User-Agent-, Referer-, From-Header können die Privatsphäre des Benutzers offenlegen
- Query-Strings in URIs können sensible Informationen enthalten
- Protokolldateien können sensible Daten aufzeichnen
15.2 Abuse of Server Log Information (Missbrauch von Server-Protokollinformationen)
Serverbetreiber sollten sich bewusst sein, dass HTTP-Protokolldateien persönliche Informationen der Benutzer enthalten und daher auf demselben Niveau wie andere sensible Informationen geschützt werden sollten.
15.3 Transfer of Sensitive Information (Übertragung sensibler Informationen)
Wie jedes allgemeine Datenübertragungsprotokoll kann HTTP den Inhalt der übertragenen Daten nicht regulieren und auch nicht im Voraus die Sensibilität einer bestimmten Anfrage bestimmen.
Empfehlungen:
- HTTPS (HTTP over TLS/SSL) zur Übertragung sensibler Informationen verwenden
- Keine sensiblen Informationen in URIs einschließen (können protokolliert werden)
- POST statt GET zur Übermittlung sensibler Formulardaten verwenden
15.4 Encoding Sensitive Information in URI's (Codierung sensibler Informationen in URIs)
Da die Quelle von URIs nicht vertrauenswürdig sein kann, müssen HTTP-Clients vorsichtig sein, wenn sie sensible Daten in URIs einschließen. Insbesondere wenn URIs Passwörter oder andere Authentifizierungsinformationen enthalten.
15.5 Location Headers and Spoofing (Location-Header und Spoofing)
Wenn ein einzelner Server mehrere Organisationen unterstützt, muss dieser Server die Werte in den Location- und Content-Location-Headern überprüfen, um sicherzustellen, dass ein Angreifer den Server nicht verwenden kann, um Antworten zu generieren, die scheinbar von einer anderen Organisation stammen.
15.6 Authentication Credentials (Authentifizierungsinformationen)
Bestehende HTTP-Clients und Benutzeragenten behalten Authentifizierungsinformationen in der Regel auf unbestimmte Zeit. HTTP/1.1 bietet keine Methode für den Ursprungsserver, den Client anzuweisen, diese zwischengespeicherten Anmeldeinformationen zu verwerfen.
Sicherheitsempfehlungen:
- Sitzungszeitlimit-Mechanismen verwenden
- Explizite Abmeldefunktion bereitstellen
- Vermeiden, Anmeldeinformationen in URIs zu übergeben
15.7 Proxies and Caching (Proxies und Caching)
HTTP-Proxies sind Zwischenhändler, die potenzielle Sicherheitsrisiken mit sich bringen können. Organisationen sollten die Datenschutz- und Sicherheitsauswirkungen des Proxy-Zugriffs berücksichtigen.
Wichtige Fragen:
- Proxies können alle übertragenen Daten sehen
- Caches können sensible Informationen speichern
- Proxy-Protokolle können Benutzeraktivitäten aufzeichnen
Cache-Sicherheitsmaßnahmen:
- Cache-Control: private verwenden, um gemeinsam genutzten Cache zu verhindern
- Cache-Control: no-store verwenden, um jegliches Caching zu verhindern
- Sicherheitskonfiguration des Caches überprüfen
15.8 DNS Spoofing (DNS-Spoofing)
HTTP-Clients verlassen sich auf DNS, um Hostnamen in IP-Adressen aufzulösen. DNS-Spoofing-Angriffe können dazu führen, dass Clients eine Verbindung zum falschen Server herstellen.
Schutzmaßnahmen:
- DNSSEC zur Verifizierung von DNS-Antworten verwenden
- HTTPS zur Sicherstellung der Server-Identität verwenden
15.9 Attacks Based On File and Path Names (Angriffe basierend auf Datei- und Pfadnamen)
Implementierungen sollten Request-URI sorgfältig behandeln, um zu verhindern, dass bösartige Clients auf Ressourcen zugreifen, die nicht über HTTP zugänglich sein sollten.
Häufige Angriffe:
- Pfadtraversierungsangriffe (
../../../etc/passwd) - Zugriff auf spezielle Dateien
- Symbolic-Link-Angriffe
Schutzmaßnahmen:
- Alle Pfade normalisieren
- Zugängliche Verzeichnisse einschränken
- Dateiberechtigungen überprüfen
Zusammenfassung
Die Sicherheit von HTTP/1.1 hängt ab von:
- Transportschicht-Sicherheit - TLS/SSL (HTTPS) verwenden
- Korrekte Implementierung - Sicherheits-Best-Practices befolgen
- Angemessene Konfiguration - Exposition sensibler Informationen begrenzen
- Benutzerbewusstsein - Benutzer schulen, Sicherheitsrisiken zu erkennen
Wichtiger Hinweis: HTTP selbst ist ein zustandsloses Protokoll und bietet keine eingebauten Sicherheitsmechanismen. Sicherheit muss durch die Verwendung von HTTPS, geeigneten Authentifizierungsmechanismen und sicheren Codierungspraktiken implementiert werden.