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.

Zum Tool

Die Checkliste als PDF und/oder zum Ausdrucken gibt es hier:

HTTPS Best Practices – Checkliste