0

TCPIP接続に関して、クライアントとサーバーの両方であるアプリがあります。

Client1(externl) ---A ---> My App ---B ---> Server1(external)

接続 A と B はほとんど CAsyncSocket で行われますが、CSocket も使用されます (1 つ以上の A と 1 つ以上の B があります)。

私の仕事は、SSL を A と B に追加することです。セキュリティ要件のために stunnel を取り除く必要があります。管理者はトンネルを操作したり、トンネルと My App 間の接続をリッスンしたりできます。質問しないでください。これは、stunnel ではなく My App でこれを行う必要がある理由とアイデアです。

現在、SSL は外部 SSL トンネル (stunnel) で実装されています。

Client1(外部) ---A---> STUNNEL1 ---> My App ---> STUNNEL2 ---B--> Server1(外部)

たとえばopenssl APIを使用してAとBにSSLを追加することは、多くの汚い仕事です。過度に。

だから私は思った..私のアプリ内にSSLトンネル(代わりにstunnel)を作成することはどういうわけか可能ですか?そして、既存のソケットをトンネルに接続させますが、Windows 管理者がアプリとトンネルの間のトラフィックをリッスンできないようにしますか?

NOW is:

My app now:
Listens 192.168.1.1:5000
Listens 192.168.1.1:5001

Connects to 192.168.1.2:9000
Connects to 192.168.1.2:9001

New schema:
Listens 127.0.0.1:15000
Listens 127.0.0.1:15001
ThreadTunnel listens 192.168.1.1:5000 (forwards to  127.0.0.1:15000)
ThreadTunnel listens 192.168.1.1:5001 (forwards to  127.0.0.1:15001)

Connects to 127.0.0.1:19000
Connects to 127.0.0.1:19001
ThreadTunnel listens 192.168.1.1:19000 (forwards to  192.168.1.2:9000 )
ThreadTunnel listens 192.168.1.1:19001 (forwards to  192.168.1.2:9001 )

This schema would be ideal but problem is that admin could listen traffic between

127.0.0.1:15000  <-> 192.168.1.1:5000  
or 127.0.0.1:19000 <-> 192.168.1.1:19000 

管理者がトラフィックをキャプチャできないように、CSocket/CAsyncSocket と OpenSSL を同じ .exe で相互に処理する方法はありますか?

4

1 に答える 1

0

この CodeProject の記事は、まさにこの質問に答えているようです: http://www.codeproject.com/Articles/3855/CAsyncSocketEx-Replacement-for-CAsyncSocket-with-p

于 2013-02-22T20:58:04.297 に答える