web-dev-qa-db-ja.com

送信プロキシを使用してTLSにアップグレードすることは可能ですか

システムからレガシーテクノロジーが存在し、製品がまもなくEOLになるため、完全なアップグレード(この場合は.net、TLS 1.1/1.2をサポートしていないバージョン)を実行したくない状況を想定。ただし、一部のアウトバウンドコールでは、TLS 1.0から1.1にアップグレードする必要があります。そのような活動を可能にするプロキシ設定はありますか?

ありがとう

1
Travis Howe

TLSに組み込まれているセキュリティのため、これはプロキシの既存のTLSハンドシェイクを変更することでは実行できません。代わりに、ターゲットサーバーとプロキシ間のTLS接続と、プロキシとクライアント間の別のTLS接続を作成する必要があります。後者の接続ではサーバーから元の証明書を取得できませんが、プロキシは独自のCAによって署名された新しい証明書を作成する必要があります。すべての証明書の検証はプロキシによって行われるため、これを適切に行うには、送信プロキシを信頼する必要があります。また、新しい証明書を作成するためにプロキシが使用するCAを信頼するようにアプリケーションを構成する必要があります。

TLSはプロキシで終了および再作成されるため、エンドツーエンドの暗号化は行われません。つまり、この設定ではクライアント証明書は透過的に機能しません。つまり、正しいクライアント証明書の送信をプロキシに移動する必要があります。これをサポートするプロキシはほとんどありません。

これらの制限に耐えることができ、HTTPSトラフィックのみに関心がある場合は、これを実行できるソフトウェアがたくさんあります。優れたファイアウォールまたはセキュアゲートウェイのいずれかを使用している場合、機能はおそらくSSLの開始機能の形ですでに存在しています。それとは別に、無料の squid Webプロキシ または mitmproxy のようなテストツールを使用できます。ただし、特にテストツールは常に証明書を適切に検証するわけではないことに注意してください。また、一部のソリューションは Server Name Indication を使用してサイトを適切に処理できないため、これらの製品は今日の多くのサイトで使用できなくなります。

HTTPSトラフィックを処理するのではなく、他のプロトコル(IMAP、SMTP、SIP ...またはカスタムプロトコル)を処理することを目的としている場合、選択ははるかに少なく、独自のプロトコルを開発する必要があるかもしれません。このようなプロキシのプロトコル固有のバージョン。

2
Steffen Ullrich