より大きなアプリケーションの一部として、C#でSSLトンネルを実装する必要があります。SSLネゴシエーションの各ステップを自分で書くのではなく、それを行うためのより良い方法があるのではないかと思っていました。
作成する必要のあるコードを最小限に抑えるために使用できるライブラリや、これまたは同様のものを.NETで最も効率的に実装する方法を示すチュートリアルがあるかどうかを知っていますか?
SSlStreamがほとんどの作業を代行してくれます。
System.Net.Security.SslStream
.NETには、クラスを中心としたSSLサポートが含まれています。
SSLトンネルの意味は明確ではありません。私が正しく理解している場合は、ローカルサーバー(他のアプリケーションが接続する)として機能するクライアント側ソフトウェアが必要です。このソフトウェアは、SSLを使用してサーバー側ソフトウェアに接続します。サーバー側ソフトウェアはSSLからデータを取り出します。トンネルし、それらをさらにルーティングします。この場合、クライアント側とサーバー側のSSL/TLSコンポーネントが必要になります。このタスクにはSecureBlackboxを使用できます。SecureBlackboxは、SSL / TLSプロトコルの包括的なサポートを提供し、接続と証明書の管理を完全に制御します。
プレーンなSSLチャネルではなく、ある種の暗号化プロキシが必要な場合があります。この場合、必要なプロキシの種類(SOCKSプロキシまたはHTTP CONNECTプロキシ)を正確に決定し、クライアント側で実装する必要があります。このようなプロキシの利点の1つは、実際の接続アドレス(つまり、クライアントが移動したい場所)をリモートサーバーに転送でき、そのリモートサーバーが接続を実行することです。これはより柔軟なアプローチですが、SOCKSまたはHTTP CONNECTの要求の解析と応答の生成に関連するものを実装するには、いくつかの(最小限の)コーディングが必要になります。