10 TLS-Interception und TLS-Termination

10.1 Einleitung

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

10.2.3 Funktionsweise

  1. Initiale Verbindung: Der Client stellt eine Verbindung zum Proxy-Server her und fordert eine HTTPS-Verbindung an.
  2. 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).
  3. Entschlüsselung: Der Proxy-Server entschlüsselt den eingehenden Datenverkehr, inspiziert den Inhalt und führt Sicherheitsprüfungen durch.
  4. Erneute Verschlüsselung: Nach der Inspektion wird der Datenverkehr erneut verschlüsselt und an den Zielserver weitergeleitet.

10.2.4 Herausforderungen

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

10.3.3 Funktionsweise

  1. TLS-Handschlag: Der Proxy-Server führt den TLS-Handschlag mit dem Client durch und stellt eine sichere Verbindung her.
  2. Entschlüsselung: Der Proxy-Server entschlüsselt den eingehenden Datenverkehr.
  3. 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

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

10.5.2 Anforderungen an das Zertifikat

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.