TLS-Interception und TLS-Termination sind zwei wichtige Techniken,
die in der Netzwerksicherheit verwendet werden, um den Datenverkehr zu
kontrollieren und zu sichern. Diese Techniken spielen eine entscheidende
Rolle bei der Verwaltung verschlüsselter Verbindungen in Proxy-Servern
wie Squid oder Apache.
10.2 TLS-Interception (SSL
Bumping)
10.2.1 Definition
TLS-Interception, auch als SSL Bumping bekannt, ist eine Methode, bei
der ein Proxy-Server den verschlüsselten Datenverkehr zwischen Client
und Server abfängt, entschlüsselt, inspiziert und dann erneut
verschlüsselt, bevor er an das ursprüngliche Ziel weitergeleitet
wird.
10.2.2 Anwendung
Überwachung und Filterung: Ermöglicht die
Inspektion von HTTPS-Datenverkehr, um Bedrohungen wie Malware,
Datenlecks oder unerwünschte Inhalte zu erkennen und zu blockieren.
Zugriffskontrolle: Durch die Überprüfung des
Inhalts können Regeln und Richtlinien durchgesetzt werden, die den
Zugriff auf bestimmte Websites oder Inhalte einschränken.
10.2.3 Funktionsweise
Initiale Verbindung: Der Client stellt eine
Verbindung zum Proxy-Server her und fordert eine HTTPS-Verbindung
an.
Zertifikat-Aushandlung: Der Proxy-Server stellt ein
eigenes Zertifikat aus, das an den Client gesendet wird. Der Client
akzeptiert das Zertifikat (vorausgesetzt, es wurde zuvor als
vertrauenswürdig konfiguriert).
Entschlüsselung: Der Proxy-Server entschlüsselt den
eingehenden Datenverkehr, inspiziert den Inhalt und führt
Sicherheitsprüfungen durch.
Erneute Verschlüsselung: Nach der Inspektion wird
der Datenverkehr erneut verschlüsselt und an den Zielserver
weitergeleitet.
10.2.4 Herausforderungen
Zertifikatsmanagement: Der Proxy-Server muss über
ein vertrauenswürdiges Zertifikat verfügen, das von den Clients
akzeptiert wird.
Datenschutz: Die Entschlüsselung und Inspektion von
Datenverkehr kann Datenschutzbedenken aufwerfen, da vertrauliche
Informationen sichtbar werden.
10.3 TLS-Termination
10.3.1 Definition
TLS-Termination bezeichnet den Prozess, bei dem die
TLS-Verschlüsselung am Proxy-Server endet. Der Proxy entschlüsselt den
eingehenden Datenverkehr und leitet ihn in unverschlüsselter Form an die
Backend-Server weiter.
10.3.2 Anwendung
Lastverteilung: In Load-Balancing-Umgebungen wird
die TLS-Terminierung oft verwendet, um die Belastung durch die
Verschlüsselung und Entschlüsselung von den Backend-Servern zu
nehmen.
Performance: Durch die Entlastung der
Backend-Server kann die Gesamtleistung des Systems verbessert
werden.
10.3.3 Funktionsweise
TLS-Handschlag: Der Proxy-Server führt den
TLS-Handschlag mit dem Client durch und stellt eine sichere Verbindung
her.
Entschlüsselung: Der Proxy-Server entschlüsselt den
eingehenden Datenverkehr.
Weiterleitung: Der entschlüsselte Datenverkehr wird
in unverschlüsselter Form an die Backend-Server weitergeleitet, die dann
die Anfrage bearbeiten und die Antwort zurücksenden.
10.3.4 Herausforderungen
Sicherheit: Der interne Datenverkehr zwischen dem
Proxy-Server und den Backend-Servern ist unverschlüsselt, was ein
potenzielles Sicherheitsrisiko darstellen kann.
Komplexität: Die Einrichtung und Verwaltung von
TLS-Zertifikaten auf dem Proxy-Server erfordert zusätzlichen
Aufwand.
10.4 Beispielkonfiguration für
Squid
10.4.1 TLS-Interception (SSL
Bumping)
# Beispielkonfiguration für Squid
http_port 3128 ssl-bump cert=/etc/squid/ssl_cert/myCA.pem key=/etc/squid/ssl_cert/myCA.key
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all
10.4.2 TLS-Termination
# Beispielkonfiguration für Apache
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile "/etc/ssl/certs/server.crt"
SSLCertificateKeyFile "/etc/ssl/private/server.key"
ProxyPreserveHost On
ProxyPass / http://backendserver/
ProxyPassReverse / http://backendserver/
</VirtualHost>
TLS-Interception und TLS-Termination sind leistungsstarke Techniken
zur Verwaltung verschlüsselter Verbindungen in modernen Netzwerken.
Während die TLS-Interception eine detaillierte Inspektion und Filterung
des Datenverkehrs ermöglicht, bietet die TLS-Termination eine effiziente
Möglichkeit, die Last der Verschlüsselung und Entschlüsselung von
Backend-Servern zu entlasten. Beide Techniken erfordern jedoch
sorgfältige Planung und Implementierung, um die Sicherheit und den
Datenschutz zu gewährleisten.
10.5 Apache TLS
Damit ein Squid-Proxy oder ein Apache-Proxy verschlüsselten
HTTPS-Datenverkehr inspizieren und cachen kann, ist es notwendig, dass
der Proxy über ein Serverzertifikat verfügt, das vom Client anerkannt
wird. Dies ermöglicht die Entschlüsselung des Datenverkehrs
(TLS-Interception) und die Weiterverarbeitung der Daten. Hier sind die
wesentlichen Schritte und Gründe, warum dies notwendig ist:
10.5.1 TLS-Interception und
-Terminierung
TLS-Interception (SSL Bumping): Der Proxy-Server
muss ein vertrauenswürdiges Zertifikat verwenden, um den
HTTPS-Datenverkehr abzufangen und zu entschlüsseln. Das bedeutet, dass
der Proxy ein Zertifikat an den Client ausstellt, das als
vertrauenswürdig eingestuft wird. Der Client akzeptiert das Zertifikat
und stellt die verschlüsselte Verbindung zum Proxy her. Der Proxy
entschlüsselt dann die Daten, inspiziert sie und verschlüsselt sie
erneut, bevor er sie an den Zielserver weiterleitet.
TLS-Termination: Der Proxy-Server stellt eine
sichere Verbindung zum Client her und entschlüsselt den eingehenden
Datenverkehr. Der entschlüsselte Datenverkehr wird dann in
unverschlüsselter Form an die Backend-Server weitergeleitet. Dies
reduziert die Last auf den Backend-Servern und ermöglicht dem Proxy, den
Datenverkehr zu inspizieren und zu cachen.
10.5.2 Anforderungen an das
Zertifikat
Vertrauenswürdigkeit: Das vom Proxy verwendete
Zertifikat muss von den Clients als vertrauenswürdig eingestuft werden.
Dies kann durch die Verwendung eines Zertifikats erreicht werden, das
von einer vertrauenswürdigen Zertifizierungsstelle (CA) ausgestellt
wurde, oder durch die manuelle Installation eines selbstsignierten
Zertifikats auf den Clients.
Installation und Verwaltung: Die Verwaltung und
Verteilung des Zertifikats ist ein entscheidender Aspekt. In
Unternehmensnetzwerken kann dies durch zentrale Verwaltungstools oder
Gruppenrichtlinien erfolgen.
10.5.3 Beispielkonfiguration für
Squid
10.5.3.1 TLS-Interception (SSL
Bumping)
# Beispielkonfiguration für Squid
http_port 3128 ssl-bump cert=/etc/squid/ssl_cert/myCA.pem key=/etc/squid/ssl_cert/myCA.key
acl step1 at_step SslBump1
ssl_bump peek step1
ssl_bump bump all
Diese Konfiguration zeigt, wie ein Squid-Proxy so eingerichtet wird,
dass er SSL-Verbindungen abfangen und entschlüsseln kann, indem er ein
eigenes Zertifikat verwendet.
10.5.4 Beispielkonfiguration für
Apache
10.5.4.1 TLS-Termination
# Beispielkonfiguration für Apache
<VirtualHost *:443>
SSLEngine on
SSLCertificateFile "/etc/ssl/certs/server.crt"
SSLCertificateKeyFile "/etc/ssl/private/server.key"
ProxyPreserveHost On
ProxyPass / http://backendserver/
ProxyPassReverse / http://backendserver/
</VirtualHost>
Diese Konfiguration zeigt, wie ein Apache-Proxy so eingerichtet wird,
dass er TLS-Verbindungen terminiert und den Datenverkehr entschlüsselt
weiterleitet.