Windows上的LAN流量加密

时间:2014-04-08 05:09:20

标签: windows security networking encryption network-programming

我正在开展一个研究项目,需要创建一个软件来加密Windows计算机之间的LAN流量。因此,我需要捕获,加密和重新发送所有出站流量,并捕获和解密所有入站流量。 目前我看到两种方法: 1)IP over UDP。我需要加密IP数据包并通过UDP链接发送,接收和解密。 2)加密IP数据包的有效负载并在另一端解密。

我实际上不知道如何做得更好,从哪里开始。所有建议/示例都会有所帮助。

1 个答案:

答案 0 :(得分:2)

如果您真的只需要加密流量,只需安装“手动键控”的IPSec SA即可。见instructions at MSDN

话虽如此,加密是 easy 部分。认证同行和关键协议是困难的部分。

密码学很难做到,所以你绝对不希望发明一个可能不安全的轮子,而是选择同行评审的标准解决方案,例如Internet Key Exchange协议。有一个(不幸的是已停止)internet draft最小的IKE实现。

请注意,使用IKEv2作为任何应用程序的密钥协商/身份验证协议是完全可以的 - 不仅仅是针对ESP。但是如果你需要封装所有IP,隧道模式下的Encapsulating Security Payload是你的朋友,这里的幸运之处在于任何操作系统符合IPv6 必须实现它,所以使用ESP实际上只是将密钥材料安装到OS内核的IP堆栈。

如果您需要代码示例,我在Python中创建了minimal proof-of-concept level implementation of an initiating end IKEv2对等项。可以在these IETF proceedings slides

中找到执行相同操作的Perl实现