Hypertext Transfer Protocol Secure
topic kurze Beschreibung
Beschreibung
HTTPS (Hypertext Transfer Protocol Secure) | ||
---|---|---|
Familie: | Internetprotokolle | |
Einsatzgebiet: | Port: | 443/TCP |
Standards: | RFC 2818 (HTTP Over TLS, 2000) |
Hypertext Transfer Protocol Secure (HTTPS, für „sicheres Hypertext-Übertragungsprotokoll“) ist ein Kommunikationsprotokoll im World Wide Web, mit dem Daten abhörsicher übertragen werden können.
- Es stellt eine Transportverschlüsselung dar.
HTTPS wurde von Netscape entwickelt und zusammen mit SSL 1.0 erstmals 1994 mit deren Browser veröffentlicht.
Technisch definiert wurde es als URI-Schema, eine zusätzliche Schicht zwischen HTTP und TCP.
Nutzen
HTTPS wird zur Herstellung von Vertraulichkeit und Integrität in der Kommunikation zwischen Webserver und Webbrowser (Client) im World Wide Web verwendet.
- Dies wird unter anderem durch Kryptografie und Authentifizierung erreicht.
Ohne Kryptografie sind Daten, die über das Internet übertragen werden, für jeden, der Zugang zum entsprechenden Netz hat, als Klartext lesbar.
- Mit der zunehmenden Verbreitung von offenen (d. h. unverschlüsselten) WLANs nimmt die Bedeutung von HTTPS zu, weil damit die Inhalte unabhängig vom Netz verschlüsselt werden können.
Die Authentifizierung dient dazu, dass beide Seiten der Verbindung beim Aufbau der Kommunikation die Identität des Verbindungspartners überprüfen können.
- Dadurch sollen Man-in-the-Middle-Angriffe und teilweise auch Phishing verhindert werden.
Technik
Syntaktisch ist HTTPS identisch mit dem Schema für HTTP, die zusätzliche Kryptografie der Daten geschieht mittels SSL/TLS: Unter Verwendung des SSL-Handshake-Protokolls findet zunächst eine geschützte Identifikation und Authentifizierung der Kommunikationspartner statt.
- Anschließend wird mit Hilfe asymmetrischer Kryptografie oder des Diffie-Hellman-Schlüsselaustauschs ein gemeinsamer symmetrischer Sitzungsschlüssel ausgetauscht.
- Dieser wird schließlich zur Kryptografie der Nutzdaten verwendet.
Der Standard-Port für HTTPS-Verbindungen ist 443.
Neben den Server-Zertifikaten können auch signierte Client-Zertifikate nach X.509.3 erstellt werden.
- Das ermöglicht eine Authentifizierung der Clients gegenüber dem Server, wird jedoch selten eingesetzt.
Eine ältere Protokollvariante von HTTPS war S-HTTP.
Client-Verarbeitung
Mit der Entwicklung von HTTPS durch Netscape wurde das Protokoll und die anwenderseitige Client-Software schon früh in Webbrowser integriert.
- Damit ist meist keine weitere Installation gesonderter Software notwendig.
Eine HTTPS-Verbindung wird durch eine https-URL angewählt und durch das SSL-Logo angezeigt.
- Dies wird bei allen geläufigen Browsern als kleines Schloss-Symbol in der Adresszeile dargestellt.
Varianten der HTTPS-Anwahl
Die Entscheidung, ob eine sichere HTTPS- statt einer HTTP-Verbindung genutzt wird, kann unterschiedlich erfolgen:
- Serverseitig wird ausschließlich HTTPS zugelassen, wie meist bei Online-Banking; teils wird dabei eine angewählte http-Adresse automatisch auf https weitergeleitet.
- Der Login wird über HTTPS erzwungen, dann wird ein HTTP-Cookie im Browser gesetzt und, um Rechenzeit zu sparen, der weitere Dienst unverschlüsselt abgewickelt; z. B.
- bei eBay.
- Clientseitig durch HSTS: Wenn der Server nur HTTPS zulässt (wie oben beschrieben), kann der Browser dies speichern und stellt zukünftig immer eine Verbindung über HTTPS her.
- Steht der Server zusätzlich auf der HSTS Preload Liste, stellt der Browser auch beim ersten Besuch schon direkt eine HTTPS-Verbindung her.
- Clientseitige Eingabe der HTTPS-Variante oder Browser-Plug-in (z. B.
- für Firefox und Chrome „HTTPS Everywhere“), welches http-Anfragen durch https-Anfragen ersetzt, bei Diensten, die beide Varianten unterstützen.
- Seit 2020 (Version 83) kann Firefox so eingestellt werden, dass es nur HTTPS verwendet. Falls eine Website nur über das unsichere HTTP erreicht werden kann, erfolgt der Zugriff erst nach expliziter Zustimmung durch den Nutzenden.
Gemäß der ursprünglichen Auslegung soll der Client-Browser nach Anwahl der HTTPS-Adresse dem Anwender zuerst das Zertifikat anzeigen.
- Dieser entscheidet nun, ob er dem Zertifikat für diese Sitzung vertraut, es evtl.
- auch permanent speichert, gegebenenfalls nach Prüfung über die angegebenen Links.
- Andernfalls wird die HTTPS-Verbindung nicht hergestellt („Diese Seite verlassen“ bei Firefox bzw. „Klicken Sie hier um diese Seite zu verlassen.“ beim Internet Explorer).
Vorinstallierte Zertifikate
Um diese für Unkundige eventuell irritierende Abfrage zu vermeiden, wurde mit der Zeit eine Reihe von Root-Zertifikaten von den Browserherstellern akzeptiert, die schon bei der Installation eingetragen werden.
- Webseiten, die entsprechende Zertifikate haben, werden dann, ebenso wie davon abgeleitete Unter-Zertifikate, bei Aufruf ohne Nachfrage akzeptiert.
- Ob ein Root-Zertifikat dem Browser bekannt ist, hängt von der Browser-Version ab; zudem wird die Liste der Zertifikate teils auch online im Rahmen der Systemaktualisierung auf den neuesten Stand gebracht, so bei Microsoft Windows.
Mit dem Internet Explorer 7 hat Microsoft, kurz danach auch Mozilla mit dem Firefox 3, die Warnung bei nicht eingetragenen Zertifikaten verschärft: Erschien vorher nur ein Pop-up „Sicherheitshinweis“, das nach Name, Quelle und Laufzeit des Zertifikats differenzierte, so wird nun der Inhalt der Webseite ausgeblendet und eine Warnung angezeigt, mit der Empfehlung, die Seite nicht zu benutzen.
- Um diese sehen zu können, muss der Anwender dann explizit eine „Ausnahme hinzufügen“.
- Ein nicht im Browser eingetragenes Zertifikat wird damit für Massenanwendungen zunehmend untauglich.
Die Frage, welche Zertifikate in die Browser aufgenommen werden, hat in der Open-Source-Community fallweise zu längeren Diskussionen geführt, so zwischen CAcert, einem Anbieter kostenloser Zertifikate, und der Mozilla Foundation, siehe CAcert (Vertrauenswürdigkeit).
Ende 2015 ging Let’s Encrypt online, gegründet u. a. von Mozilla und der Electronic Frontier Foundation.
- Hier werden kostenlose Zertifikate für jedermann angeboten mit dem Ziel, die Verbreitung von HTTPS insgesamt zu fördern.
- Für die Installation und laufende Aktualisierung der Zertifikate ist jedoch eine eigene Software auf dem Server notwendig.
Server-Betrieb
Als Software zum Betrieb eines HTTPS-fähigen Webservers wird eine SSL-Bibliothek wie OpenSSL benötigt.
- Diese wird häufig bereits mitgeliefert oder kann als Modul installiert werden.
- Der HTTPS-Service wird üblicherweise auf Port 443 bereitgestellt.
Zertifikat
Das digitale Zertifikat für SSL, das die Authentifizierung ermöglicht, ist vom Server bereitzustellen: Ein Binärdokument, das im Allgemeinen von einer – selbst wiederum zertifizierten – Zertifizierungsstelle (CA von ) ausgestellt wird, das den Server und die Domain eindeutig identifiziert.
- Bei der Beantragung werden dazu etwa die Adressdaten und der Firmenname des Antragstellers geprüft.
In gängigen Browsern eingetragene Zertifikate werden typischerweise zu Preisen zwischen 15 und 600 € pro Jahr angeboten, wobei fallweise weitere Dienste, Siegel oder Versicherungen enthalten sind.
- Eine Reihe von Zertifizierungsstellen gibt kostenlos Zertifikate aus.
- Die etwa von