我需要加密和解密两台计算机之间的所有网络数据包。例如,使用WinDivert,我们可以捕获,修改和重新注入数据包。我只看到两种方式:
我不确定他们的可行性。
如果您有任何建议或示例,这将非常有用。
答案 0 :(得分:0)
加密并非易事。这可能是一个非常复杂的项目,具体取决于您的想法。
在数据包捕获和重新注入方面,两种“方式”都是可行的。方式1.如果您对加密IP标头不感兴趣,那么这是一个好主意,而如果您想加密整个数据包,WAY 2非常有用。
对于WAY 2.,您需要注意不要创建循环。例如。 WinDivert重新捕获加密数据包。这取决于你的过滤字符串是什么。
对于WAY 1和2.,另一个问题是加密通常会增加数据包的大小。对于WAY 2.,您还要添加IP / UDP标头,从而进一步增加大小。问题是原始捕获的数据包可能已经是最大MTU大小,因此不能增加大小。这些解决方案非常重要,无论是数据包碎片还是注入PMTU ICMP消息。
我不确定我是否理解您的具体问题:WinDivert会将数据包捕获到缓冲区中,您可以对此缓冲区执行任何操作。这包括加密(使用任何方法),重新注入或将其发送到套接字等。