Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ WinDivert-需要加密和解密网络数据包_C++_Sockets_Networking_Encryption - Fatal编程技术网

C++ WinDivert-需要加密和解密网络数据包

C++ WinDivert-需要加密和解密网络数据包,c++,sockets,networking,encryption,C++,Sockets,Networking,Encryption,我需要加密和解密两台计算机之间的所有网络数据包。例如,使用WinDivert,我们可以捕获、修改和重新注入数据包。我只看到两种方式: 方法:捕获出站数据包,加密有效负载并重新注入数据包->捕获入站数据包,解密有效负载并重新注入数据包。 方法:捕获出站数据包,加密数据包并通过套接字发送->通过套接字接收数据包,解密数据包并重新注入。 我不确定他们的可行性 是否可以对有效负载进行加密? 如何通过套接字发送WinDivert数据包? 如果您有任何建议或示例,它将非常有用。加密是非常重要的。这可能是一个

我需要加密和解密两台计算机之间的所有网络数据包。例如,使用WinDivert,我们可以捕获、修改和重新注入数据包。我只看到两种方式:

方法:捕获出站数据包,加密有效负载并重新注入数据包->捕获入站数据包,解密有效负载并重新注入数据包。 方法:捕获出站数据包,加密数据包并通过套接字发送->通过套接字接收数据包,解密数据包并重新注入。 我不确定他们的可行性

是否可以对有效负载进行加密? 如何通过套接字发送WinDivert数据包?
如果您有任何建议或示例,它将非常有用。

加密是非常重要的。这可能是一个非常复杂的项目,具体取决于您的想法

在包捕获和重注入方面,这两种方法都是可行的。路1。如果您对加密IP头不感兴趣,这是一个好主意,而方法2。如果要加密整个数据包,则此选项非常有用

对于方法2,您需要小心不要创建循环。例如,WinDivert重新捕获加密的数据包。这取决于过滤器字符串是什么

双向1。另一个问题是加密通常会增加数据包的大小。对于方式2,您还添加了一个IP/UDP报头,进一步增加了大小。问题是原始捕获的数据包可能已经是最大MTU大小,因此无法增加大小。这些解决方案非常重要,要么是数据包碎片化,要么是注入PMTU ICMP消息


我不确定我是否理解您的具体问题:WinDivert将数据包捕获到缓冲区中,您可以对该缓冲区执行任何您喜欢的操作。这包括使用任何方法对其进行加密、重新注入或将其发送到套接字等。

听起来您需要计算机之间的VPN。除非您计划自己编写一个,否则您可能会得到更好的答案。