HTTPS Checkliste
HTTPS ist eine einfache Technologie und relativ einfach zu implementieren.
Damit dies aber möglichst sicher geschieht, hier ein paar Best Practices als Checkliste.
Checkliste
Private Key und Zertifikat
2048-Bit Private Keys
Der Private Key legt den Grundstein für die Sicherheit und das Zertifikat.
Verwende hier also mindestens eine 2048 Bit Verschlüsselung.
Geheimhalten der Private Keys
Halte Deine Private Keys geheim und gebe nur einer begrenzten Anzahl von Personen Zugriff auf diese.
Folgende Richtlinien sollten ebenfalls eingehalten werden:
- Privater Schlüssel und Certificate Signing Request sollten auf einem vertrauenswürdigen Computer erstellt werden.
- Einige CAs bieten an die Schlüssel zu erstellen. Hiervon ist abzuraten.
- Wenn Zertifikate erneuert werden, sollten immer neue Schlüssel generiert werden.
Ausreichende Abdeckung von Hostnamen
Stell sicher, dass Dein Zertifikat alle benötigten Hostnamen abdeckt.
Es ist zu verhindern das durch nicht abgedeckte Hostnamen eine Zertifikatswarnung erscheint.
Zertifikat von einer vertrauenswürdigen CA
Achte bei der Auswahl eines Zertifikat Anbieters darauf,
dass Du einen zuverlässigen Partner wählst.
Verwenden von sicheren Algorithmen
Die Sicherheit hängt unter anderem von Verschlüsselungsstärke und den verwendeten Algorithmen ab.
Die meisten Zertifikate nutzen aktuell die SHA1 Hash-Funktion, welche als unsicher klassifiziert ist.
Achte darauf das mindestens die SHA2 Hash-Funktion genutzt wird.
Aber achte auf Deine User. Einige ältere Clients unterstützen die SHA2 Hash-Funktion nicht.
Serverkonfiguration
Alle nötigen Zertifikate einbinden
In vielen Fällen muss mehr als ein Zertifikat in der Serverkonfiguration hinterlegt werden.
Dein CA stellt gewöhnlich alle nötigen Zertifikate bereit.
Verwenden von sicheren Protokollen
In diesem Bereich existieren fünf Protokolle: SSL v2, SSL v3, TLS v1.0, TLS v1.1, TLS v1.2.
In der Verwendung mit HTTP(S) ist von den SSL Protokollen aufgrund von Sicherheitsproblemen abzuraten.
Die TLS Protokolle können meist ohne Probleme verwendet werden.
Verwenden von sicheren Chiffren
Folgende Dinge sollten vermieden werden:
- Anonymous Diffie-Hellman (ADH) Suiten
- NULL Chiffren Suiten
- RC4 Chiffre
- Chiffren mit weniger als 128-Bit
Unterstützen von Forward Secrecy
Forward Secrecy ist eine Protokoll-Funktion die sichere Verbindungen unabhänging vom Privaten Schlüssel zulässt.
Bei Verwendung von Algorithmen die diese Funktion nicht unterstützen,
ist es möglich den Privaten Schlüssel zu berechnen und aufgezeichnete Verbindungen zu entschlüsseln.
Absichern bekannter Lücken
Folgende bekannte Lücken sollten geschlossen werden:
- Deaktivieren von TLS Komprimierung
- Deaktivieren des RC4 Algorithmus
- Absichern der BEAST Lücke
- Deaktivieren des SSLv3 Protokolls
Anwendung
Gesamte Anwendung verschlüsseln
Achte darauf dass nicht nur die Webseite an sich verschlüsselt übertragen wird,
sondern auch alle weiteren eingebundenen Daten.
Dies betrifft auch JavaScript-, CSS- und Bilddateien.
Wichtig ist auch, dass Dateien von externen Quellen immer über HTTPS eingebunden werden.
Verwenden von HSTS
HTTP Strict Transport Security (HSTS) ist ein Mechanismus der sicherstellt,
dass die betreffende Webseite immer über HTTPS und nicht im ersten Request über HTTP aufgerufen wird.
Hierbei muss ein entsprechender HTTP Header mitgesendet werden.
Mehr zum Thema HSTS gibt es hier.
Deaktivieren des Cachings von sensiblen Inhalten
Stell sicher, dass sensible Inhalte weder server- noch clientseitig gecached werden.
Tools
Wie überprüfst Du Deine Implementierung am besten?
SSL Labs stellt hierfür ein Tool bereit.
Die Checkliste als PDF und/oder zum Ausdrucken gibt es hier: