TLS termination proxy explained

A TLS termination proxy (or SSL termination proxy,[1] or SSL offloading[2]) is a proxy server that acts as an intermediary point between client and server applications, and is used to terminate and/or establish TLS (or DTLS) tunnels by decrypting and/or encrypting communications. This is different from TLS pass-through proxies that forward encrypted (D)TLS traffic between clients and servers without terminating the tunnel.

Uses

TLS termination proxies can be used to:

Types

TLS termination proxies can provide three connectivity patterns:[3]

Combining a TLS Encrypting proxy in front of a client with a TLS Offloading proxy in front of a server, can allow (D)TLS encryption and authentication for protocols and applications that don't otherwise support it, with two proxies maintaining a secure (D)TLS tunnel over untrusted network segments between client and server.

A proxy used by clients as an intermediary gateway for all outbound connections is typically called a Forward proxy, while a proxy used by servers as an intermediary gateway for all inbound connections is typically called a Reverse proxy. Forward TLS bridging proxies that allow intrusion detection system to analyse all client traffic are typically marketed as "SSL Forward Proxy".[4] [5] [6]

TLS Offloading and TLS Bridging proxies typically need to authenticate themselves to clients with a digital certificate using either PKIX or DANE authentication. Usually the server operator supplies to its reverse proxy a valid certificate for use during (D)TLS handshake with clients. A forward proxy operator, however would need to create their own private CA, install it into the trust store of all clients and have the proxy generate a new certificate signed by the private CA in real time for each server that a client tries to connect to.

When network traffic between client and server is routed via a proxy, it can operate in transparent mode by using the client's IP address instead of its own when connecting to the server and using the server's IP address when responding to the client. If a Transparent TLS Bridging Proxy has a valid server certificate, neither client nor server would be able to detect the proxy presence. An adversary that has compromised the private key of the server's digital certificate or is able to use a compromised/coerced PKIX CAs to issue a new valid certificate for the server, could perform a man-in-the-middle attack by routing TLS traffic between client and server through a Transparent TLS Bridging Proxy and would have the ability to copy decrypted communications, including logon credentials, and modify content of communications on the fly without being detected.

Notes and References

  1. Web site: What is SSL Termination? . live . https://web.archive.org/web/20240608073948/https://www.f5.com/glossary/ssl-termination . 2024-06-08 . 2024-06-08 . F5 Networks . en-US.
  2. Web site: Setup IIS with URL Rewrite as a reverse proxy . 25 August 2016 . Microsoft . 8 June 2024 . 15 August 2022 . https://web.archive.org/web/20220815002534/https://docs.microsoft.com/fr-fr/archive/blogs/friis/setup-iis-with-url-rewrite-as-a-reverse-proxy-for-real-world-apps . live .
  3. Web site: Infrastructure Layouts Involving TLS . HAProxy Technologies .
  4. Web site: 2023-10-16 . SSL Forward Proxy Overview . live . https://web.archive.org/web/20240608073611/https://www.juniper.net/documentation/us/en/software/nm-apps23.1/junos-space-security-director/topics/concept/junos-space-ssl-forward-proxy-overview.html . 2024-06-08 . 2024-06-08 . Juniper Networks.
  5. Web site: SSL Forward Proxy . Palo Alto Networks . 2017-11-24 . 2017-12-01 . https://web.archive.org/web/20171201081116/https://www.paloaltonetworks.com/documentation/71/pan-os/pan-os/decryption/ssl-forward-proxy . dead .
  6. Web site: Overview: SSL forward proxy client and server authentication . F5 Networks . 2017-11-24 . 2024-06-08 . https://web.archive.org/web/20240608073110/https://techdocs.f5.com/kb/en-us/products/big-ip_ltm/manuals/product/bigip-ssl-administration-11-6-0/13.html . live .