2017-02-06 4 views
1

私は、HTTPClientを使用して、機密情報を別のWindowsサーバーにソケット経由で転送するWindowsサーバーアプリケーションを開発中です。サーバーはIPSecを使用するように構成されています。だから、私はアプリケーションレベルで安全な接続をセットアップするために何もする必要はありません。しかし、私は接続がIPSecを使用しているかどうかを確認するように指示されています。接続されたソケットがIPSecを使用するかどうかを確認するにはどうすればよいですか?

接続が実際にIPSecで保護されているかどうかをプログラムで判断する方法はありますか。アプリケーションはWindows Server 2016上のC#です。この作業を行うために必要な場合は、P/InvokeベースのソリューションまたはCコードを公開しています。最終的にC#HttpClientクラスで動作する限り、

答えて

4

これはアプリケーションの関心事ではなく、実行できません。トンネルは、ネットワークスタックのアプリケーションレベルのユーザーに対して透過的です。アプリケーションで接続が暗号化されて認証されるようにするには、TLSを使用します。そうしないと、ネットワーク/システム管理者は、IPSecトラフィックだけが許可されるようにポリシーが設定されていることを確認する必要があります。

何らかの方法でOSに問い合わせることでトンネルが確実にセットアップされる方法を考えてみましょう。そして、2年後にシステムをスケールアップし、IPSecターミネーションを専用ハードウェアに移行する必要があります。おっとっと。

+0

アクティブなIPSecトンネルがあるかどうかを確認できますが、ソケットが接続されているかどうかを確認することはできません。 – galister

+0

まあ、私はあなたが多くのハッカーを追加しようとする可能性があると確信しています。私はWidowsにipsecを設定したことはありませんでしたが、Linuxでは接続のリストを取得でき、ポート番号に基づいて接続が表示されているかどうかを調べることができますが、それは間違っています。 –

+0

カプセル化されたパケットの宛先ポートではなくIPSec接続のポート。最終的には.NETエンドポイントになります。よく、右。 – galister

関連する問題