首页 > 解决方案 > 如何在 C 编程中创建 IPSEC 关联和策略

问题描述

我正在用 c 语言构建一个客户端-服务器编程,然后在ESP/IPSEC.

服务器在每个新的客户端连接上,生成一个随机/唯一的 CK/IK,通过某种安全机制传输给客户端。我已经使用PF_KEY套接字编程为内核的 SPD 和 SAD 中的不同客户端创建关联和策略。但是这种机制有一些问题,一旦80,000创建关联就开始变慢,我的要求是1000,000关联进行负载测试。

我开始知道PF_KEY套接字机制是旧的、过时的和不安全的。这种机制是KLIPS。有两种机制,KLIPSNETKEY

如何在用户空间的c编程中创建IPSEC通过机制的关联?NETKEY

标签: cipsec

解决方案


我强烈建议您使用Wireguard 而不是 Ipsec,它更好,由 Linus Torvald 批准并由非常有才华的安全研究员开发。

抱歉,如果它有点偏离主题,但您看起来仍在探索。Ipsec来自 1990 年代,这些年来确实带来了很多,但 Wireguard 是在几年前从头开始的,其优点是拥有非常短(且易于审计)的代码,并且还通过最新的技术突破进行了优化.

你可以在Github上找到这个漂亮的项目,它的镜像,它主要是用 C 编码的(与原始项目一样)。

注意:Wireguard 通过 https(443 端口)加密流量,因此它还允许用户通过世界各地独裁 2.0 构建的所有类型的防火墙,因为每个人都需要访问 https。


推荐阅读