HTTPS (HyperText Transfer Protocol Secure) ist eine Erweiterung des
HTTP-Protokolls und bietet eine sichere Kommunikation über ein
Computernetzwerk. Es verwendet SSL/TLS (Secure Sockets Layer/Transport
Layer Security) zur Verschlüsselung der Datenübertragung, wodurch
Vertraulichkeit und Integrität der Daten gewährleistet werden.
9.1.2 SSL/TLS Handshake
Der SSL/TLS Handshake ist der Prozess, durch den ein Client und ein
Server eine sichere Verbindung herstellen. Während dieses Handshakes
werden die Verschlüsselungsparameter ausgehandelt, und beide Seiten
authentifizieren sich gegenseitig.
tls_handshake.svg
Client Hello: Der Client sendet eine Nachricht mit
den unterstützten Verschlüsselungsverfahren und einer Zufallszahl an den
Server.
Server Hello: Der Server antwortet mit dem
ausgewählten Verschlüsselungsverfahren, seinem Zertifikat und einer
eigenen Zufallszahl.
Server Key Exchange: Bei Bedarf sendet der Server
zusätzliche Schlüsselparameter.
Certificate Request: Der Server kann den Client um
ein Zertifikat bitten (für die gegenseitige Authentifizierung).
Client Certificate: Der Client sendet sein
Zertifikat (falls angefordert).
Client Key Exchange: Der Client sendet
Informationen, die zur Erstellung eines gemeinsamen Sitzungsschlüssels
benötigt werden.
Finished Messages: Beide Seiten senden
verschlüsselte Nachrichten, die die Integrität der Handshake-Nachrichten
bestätigen.
9.1.3 Proxies und
HTTPS-Kommunikation
Ein Proxy-Server, der HTTPS-Verbindungen unterstützt, muss in der
Lage sein, die SSL/TLS-Verschlüsselung zu handhaben. Es gibt zwei
Hauptarten, wie Proxies mit HTTPS umgehen können:
9.1.3.1 1. Tunneling
(CONNECT-Method)
Beim Tunneling erstellt der Proxy eine direkte, verschlüsselte
Verbindung zwischen dem Client und dem Zielserver. Der Proxy sieht nur
den Zielhost, aber nicht den Inhalt der Kommunikation.
Vorteile:
Höhere Sicherheit, da der Proxy die Inhalte nicht entschlüsseln
kann.
Weniger Rechenaufwand für den Proxy, da keine
SSL/TLS-Entschlüsselung stattfindet.
Nachteile:
Der Proxy kann keine Inhaltsfilterung oder Caching durchführen.
Eingeschränkte Möglichkeiten zur Überwachung und Analyse des
Datenverkehrs.
9.1.3.2 2. SSL Interception
(Man-in-the-Middle)
Bei der SSL Interception entschlüsselt der Proxy die
HTTPS-Verbindung, inspiziert den Inhalt und verschlüsselt die Daten dann
wieder, bevor sie an den Zielserver gesendet werden. Dies erfordert,
dass der Proxy ein eigenes SSL-Zertifikat verwendet und als
“Man-in-the-Middle” agiert.
Vorteile:
Der Proxy kann Inhaltsfilterung, Caching und andere Dienste
anbieten.
Verbesserte Überwachungs- und Kontrollmöglichkeiten.
Nachteile:
Erhöhte Komplexität und Rechenaufwand.
Potenzielle Sicherheits- und Datenschutzprobleme.
Erfordert das Vertrauen des Clients in das Zertifikat des
Proxies.
9.1.4 Zertifikatsmanagement
Für Proxies, die SSL Interception verwenden, ist das
Zertifikatsmanagement von entscheidender Bedeutung. Der Proxy muss ein
Root-Zertifikat besitzen, das auf allen Clients als vertrauenswürdig
installiert ist. Dieses Root-Zertifikat wird verwendet, um dynamisch
Zertifikate für die Zielserver zu generieren.
Erstellen und Installieren von Root-Zertifikaten
Erstellung eines eigenen Root-Zertifikats.
Verteilung und Installation des Root-Zertifikats auf allen
Client-Geräten.
Verwaltung der Zertifikate
Erneuerung und Widerruf von Zertifikaten.
Sicherstellung der Vertrauenswürdigkeit und Sicherheit der
Zertifikate.