Was ist HTTPS?

Durch TLS geschütztes HTTP. Es verschlüsselt den Austausch, erkennt Manipulationen und authentifiziert den Server mit einem Serverzertifikat. URLs beginnen mit https://, und die Standardportnummer ist 443. Anfragen und Antworten haben dieselbe Form wie bei HTTP, darunter liegt eine TLS-Schicht.

Japanische Bezeichnung: HTTPS

„HTTPS“ kommt in 12 Übungsfragen aus 6 Themen vor, z. B. Grundlagen der Computernetzwerke, Grundlagen der Webtechnologien, Grundlagen der Informationssicherheit.

Fachgebiet: Grundlagen der Webtechnologien

Wie eine Verbindung aufgebaut wird

Der Browser baut zuerst eine TCP-Verbindung zum Server auf (bei HTTP/3 QUIC) und führt dann einen TLS-Handshake durch. Der Browser sendet die unterstützten Cipher Suites, einen Wert für den Schlüsselaustausch und den Namen des gewünschten Servers (SNI), und der Server antwortet mit seinem Zertifikat und seinem eigenen Wert für den Schlüsselaustausch. Mit einem Schlüsselaustausch wie ECDHE leiten beide für jede Verbindung einen neuen gemeinsamen Schlüssel ab, und der Browser prüft das Zertifikat des Servers. Die folgenden HTTP-Anfragen und -Antworten werden mit symmetrischer Verschlüsselung wie AES-GCM verschlüsselt und gegen Manipulation geschützt. Mit TLS 1.3 benötigt der Handshake einen Umlauf.

Den Server anhand seines Zertifikats prüfen

Ein Serverzertifikat ist ein Domainname mit öffentlichem Schlüssel, für den eine Zertifizierungsstelle (CA) mit einer digitalen Signatur bürgt. Der Browser prüft, ob das Zertifikat über eine Signaturkette zu einer vertrauenswürdigen Root-Zertifizierungsstelle führt, ob es gültig ist, ob es zum Hostnamen in der URL passt und ob es nicht widerrufen wurde. Das verhindert Man-in-the-Middle-Angriffe, bei denen jemand die Verbindung abfängt und sich als der echte Server ausgibt. Schlägt die Prüfung fehl, zeigt der Browser eine Warnung an und bricht die Verbindung ab.

Was es schützt und was nicht

HTTPS schützt Seiteninhalte, Pfad und Query der URL, Header und Cookies vor Abhören und Manipulation unterwegs. Die IP-Adresse des Servers sowie Menge und Zeitpunkt des Verkehrs bleiben sichtbar, und der Domainname lässt sich oft aus DNS-Abfragen oder der SNI erkennen. HTTPS schützt außerdem nur den Kanal; es zeigt nicht, dass der Betreiber der Website vertrauenswürdig ist, denn auch gefälschte Websites können Zertifikate erhalten und HTTPS verwenden. Eingesetzt wird es zusammen mit HSTS, das eine Herabstufung auf HTTP verhindert, und dem Cookie-Attribut Secure, mit dem Cookies nur über HTTPS gesendet werden.

Jetzt üben: Fragen zu HTTPS

In einem Kubernetes-Cluster sollen HTTPS-Anfragen, die für einen Hostnamen eintreffen, an den Service api gehen, wenn der Pfad mit /api beginnt, und sonst an den Service web. Welche Ressource eignet sich, um diese Verteilungsregel festzulegen?

  1. AIngress
  2. BReplicaSet
  3. CEin Service mit type: ClusterIP
Antwort und Erläuterung anzeigen

Antwort: A. Ingress

Ein Ingress ist eine Ressource, die Regeln festlegt, nach denen HTTP- und HTTPS-Anfragen von außerhalb des Clusters je nach Hostname und URL-Pfad auf Services verteilt werden; auch die TLS-Terminierung lässt sich dort konfigurieren. Tatsächlich entgegengenommen und verteilt werden die Anfragen von einem im Cluster installierten Ingress-Controller (der als Reverse Proxy arbeitet). Ein Service mit type: ClusterIP ist ein Endpunkt, der nur innerhalb des Clusters erreichbar ist, und kann nicht nach Pfaden verteilen. Ein ReplicaSet hält die Zahl der Pods und hat mit der Verteilung von Verkehr nichts zu tun.

Ein Client baut zu einem Webserver mit einer Umlaufzeit (RTT) von 100 ms eine neue HTTPS-Verbindung auf (TLS 1.3 über TCP). Wie lange dauert es ungefähr, bis die Antwort auf die erste Anfrage einzutreffen beginnt? Die DNS-Namensauflösung ist bereits erledigt; Verarbeitungszeit des Servers und Übertragungszeit der Daten werden vernachlässigt.

  1. AEtwa 100 ms
  2. BEtwa 300 ms
  3. CEtwa 200 ms
Antwort und Erläuterung anzeigen

Antwort: B. Etwa 300 ms

Zuerst braucht der TCP-Drei-Wege-Handschlag einen Umlauf (der Client kann seine erste TLS-Nachricht zusammen mit dem letzten ACK senden). Dann braucht der Handshake von TLS 1.3 einen Umlauf und anschließend die HTTP-Anfrage mit Antwort einen weiteren, zusammen drei Umläufe: 3 × 100 = 300 ms. Mit TLS 1.2 braucht der Schlüsselaustausch zwei Umläufe, insgesamt also vier Umläufe bzw. 400 ms. Diese Wartezeit hängt von der Zahl der RTTs ab, die durch die Entfernung bestimmt sind; mehr Bandbreite verkürzt sie daher nicht. QUIC, das HTTP/3 verwendet, fasst den Transport- und den kryptografischen Handshake zu einem Umlauf zusammen und bietet bei erneuten Verbindungen außerdem die Möglichkeit, schon im ersten Umlauf Daten zu senden (0-RTT).

Häufige Fragen

Was ist der Unterschied zwischen HTTP und HTTPS?

HTTPS verschlüsselt den HTTP-Austausch mit TLS und ergänzt Manipulationserkennung und Serverauthentifizierung. Anfragen und Antworten haben dieselbe Form; die Standardports sind 80 für HTTP und 443 für HTTPS. Bei reinem HTTP können Geräte unterwegs den Inhalt lesen oder verändern.

Ist eine Website sicher, nur weil sie HTTPS verwendet?

HTTPS stellt sicher, dass der Verkehr unterwegs nicht mitgelesen oder verändert wird und dass man mit einem Server für diesen Domainnamen verbunden ist. Es garantiert nicht, dass die Website selbst echt oder harmlos ist. Auch Phishing-Websites können HTTPS verwenden, daher sollte man den Domainnamen sorgfältig prüfen.

Verwendet HTTPS Public-Key- oder symmetrische Verschlüsselung?

Beides, für unterschiedliche Aufgaben. Der Handshake nutzt Public-Key-Verfahren für den Schlüsselaustausch und die zertifikatsbasierte Authentifizierung, die eigentlichen Daten werden mit den dort erzeugten Schlüsseln schnell symmetrisch verschlüsselt.

„HTTPS“ in den Erläuterungen

Fragen mit „HTTPS“ (12)

  1. In einem Kubernetes-Cluster sollen HTTPS-Anfragen, die für einen Hostnamen eintreffen, an den Service api gehen, wenn der Pfad mit /api beginnt, und sonst an den Service web. Welche Ressource eignet sich, um diese Verteilungsregel festzulegen?
  2. Ein Client baut zu einem Webserver mit einer Umlaufzeit (RTT) von 100 ms eine neue HTTPS-Verbindung auf (TLS 1.3 über TCP). Wie lange dauert es ungefähr, bis die Antwort auf die erste Anfrage einzutreffen beginnt? Die DNS-Namensauflösung ist bereits erledigt; Verarbeitungszeit des Servers und Übertragungszeit der Daten werden vernachlässigt.
  3. Was wird durch HTTPS (durch TLS geschütztes HTTP) geschützt?
  4. Hinter einem Router mit NAPT (externe globale Adresse 198.51.100.7) verbindet sich Endgerät A (192.168.1.10) mit Quellport 50000 zum Port 443 des Webservers 203.0.113.5. Der Router übersetzt die Quelle in Port 61000 von 198.51.100.7. An welches Ziel schickt der Webserver seine Antwortpakete?
  5. Welche Zuordnung von Protokollen zu den Standard-Portnummern ihrer Server ist richtig?
  6. Welche Aussage über das durch den obigen Header gesetzte Cookie ist richtig?
  7. Welche Aussage über einen Service Worker ist richtig?
  8. Welche Aussage über einen Reverse Proxy ist richtig?
  9. Eine Webanwendung für ein Forum hatte eine Schwachstelle, durch die Skripte in von Nutzern geposteten Texten in den Browsern anderer Besucher ausgeführt wurden. Welche Kombination aus Name dieser Schwachstelle und grundlegender Gegenmaßnahme ist richtig?
  10. Verwendet eine Webanwendung vor und nach der Anmeldung weiterhin dieselbe Sitzungs-ID, kann ein Angreifer den Nutzer dazu bringen, eine vom Angreifer vorbereitete Sitzungs-ID zu verwenden, und sich nach der Anmeldung des Nutzers mit dieser ID als dieser ausgeben. Was ist die angemessenste Gegenmaßnahme gegen diesen Angriff?
  11. Es gelte 1 GiB = 2³⁰ Byte und 1 EiB = 2⁶⁰ Byte. Eine Blockchiffre mit 64 Bit Blocklänge (etwa 3DES) wird im CBC-Modus verwendet, um mit einem einzigen Schlüssel große Datenmengen zu verschlüsseln. Die Geheimtextblöcke werden als zufällige 64-Bit-Werte betrachtet. Welcher Richtwert für die Datenmenge ist richtig, ab der die Wahrscheinlichkeit, dass nach dem Geburtstagsparadoxon ein Paar gleicher Geheimtextblöcke auftritt, nicht mehr vernachlässigbar ist?
  12. Welche Aussage beschreibt eine WAF (Web Application Firewall) richtig?

Verwandte Begriffe

HTTP (Hypertext Transfer Protocol) URL (Uniform Resource Locator) TLS (Transport Layer Security) Cookie (HTTP-Cookie) IP-Adresse Cross-Site-Scripting (XSS) Reverse Proxy DNS (Domain Name System) Portnummer Kubernetes

Zur Glossarübersicht