
TLS終端プロキシ(またはSSL終端プロキシ[ 1 ]、SSLオフロード[ 2 ]とも呼ばれる)は、クライアントアプリケーションとサーバーアプリケーション間の仲介役として機能するプロキシサーバーです。通信の復号化や暗号化によってTLS(またはDTLS)トンネルを終端および/または確立するために使用されます。これは、トンネルを終端せずに暗号化された(D)TLSトラフィックをクライアントとサーバー間で転送するTLSパススループロキシとは異なります。
TLS終端プロキシは、以下の目的で使用できます。
TLS終端プロキシは、3つの接続パターンを提供できます。[ 3 ]
クライアントの前にTLS暗号化プロキシを、サーバーの前にTLSオフロードプロキシを組み合わせることで、通常はTLS暗号化と認証をサポートしていないプロトコルやアプリケーションでも、(D)TLS暗号化と認証が可能になります。この2つのプロキシは、クライアントとサーバー間の信頼できないネットワークセグメント上で、安全な(D)TLSトンネルを維持します。
クライアントがすべての送信接続の中継ゲートウェイとして使用するプロキシは、通常フォワードプロキシと呼ばれ、サーバーがすべての受信接続の中継ゲートウェイとして使用するプロキシは、通常リバースプロキシと呼ばれます。侵入検知システムがすべてのクライアントトラフィックを分析できるようにするフォワードTLSブリッジングプロキシは、通常「SSLフォワードプロキシ」として販売されています。[ 4 ] [ 5 ] [ 6 ]
TLSオフロードおよびTLSブリッジングプロキシは通常、PKIXまたはDANE認証を使用してデジタル証明書でクライアントに対して自身を認証する必要があります。通常、サーバーオペレーターは、クライアントとの(D)TLSハンドシェイク中に使用する有効な証明書をリバースプロキシに提供します。しかし、フォワードプロキシオペレーターは、独自のプライベートCAを作成し、それをすべてのクライアントのトラストストアにインストールし、クライアントが接続を試みる各サーバーに対して、プライベートCAによって署名された新しい証明書をプロキシがリアルタイムで生成する必要があります。
クライアントとサーバー間のネットワークトラフィックがプロキシ経由でルーティングされる場合、プロキシは、サーバーへの接続時に自身のIPアドレスではなくクライアントのIPアドレスを使用し、クライアントへの応答時にサーバーのIPアドレスを使用することで、透過モードで動作できます。透過TLSブリッジングプロキシが有効なサーバー証明書を保有している場合、クライアントもサーバーもプロキシの存在を検出できません。サーバーのデジタル証明書の秘密鍵を侵害した攻撃者、または侵害された、もしくは強制的に発行されたPKIX CAを使用してサーバー用の新しい有効な証明書を発行できる攻撃者は、クライアントとサーバー間のTLSトラフィックを透過TLSブリッジングプロキシ経由でルーティングすることで、中間者攻撃を実行できます。これにより、攻撃者は復号化された通信(ログオン資格情報を含む)をコピーし、検出されることなく通信内容をその場で変更できるようになります。