我的应用程序在TCPIP连接方面同时是客户端和服务器。
Client1(externl)--- A --->我的应用--- B --->服务器1(外部)
连接A和B主要使用CAsyncSocket完成,但也使用CSocket(超过1 A且超过1 B)。
我的任务是将SSL添加到A和B中。我们必须摆脱stunnel的安全要求 - 管理员可以操纵隧道或监听隧道和我的应用程序之间的连接。不要问,但这是要求和想法为什么必须在我的应用程序中完成而不是使用stunnel。
目前,SSL是使用外部SSL隧道(stunnel)实现的。
Client1(externl)--- A ---> STUNNEL1 --->我的应用---> STUNNEL2 --- B - >服务器1(外部)
使用例如向A和B添加SSL openssl API是很多脏工作。太多了。
所以我想..在我的应用程序中创建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中互相使用,以便管理员无法捕获流量?
答案 0 :(得分:0)
此CodeProject文章似乎回答了这个问题: http://www.codeproject.com/Articles/3855/CAsyncSocketEx-Replacement-for-CAsyncSocket-with-p