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