openswan源码分析
文章平均质量分 86
sweird
知其然,并知其所以然。揭开上层重重迷雾,去了解计算机的本质,去了解操作系统的本质,解开曾经的迷惑,怀着十二分的热情,用我的一生去完成。
展开
-
基于openswan klips的IPsec实现分析(三)安全协议
基于openswan klips的IPsec VPN实现分析(三)安全协议参考rfc2402,rfc2406转载请注明出处:http://blog.csdn.net/rosetta博客格式显示有问题,只能将就了。 AH(Authentication Header)认证头和ESP(Encapsulating Security Payload)封装安全载荷是IPsec主要安全协议,当然原创 2020-06-18 15:38:22 · 2859 阅读 · 0 评论 -
基于openswan klips的IPsec实现分析(二)数据接收
基于openswan klips的IPsec VPN实现分析之数据接收转载请注明出处:http://blog.csdn.net/rosetta 接收数据解密和加密发送数据处理基本相似,无非就是逆过程。 Klips对接收数据的处理流程如下: 数据解密过程(以esp为例) ipsec_rcv() ->ipsec_rcv_decap()原创 2020-06-18 15:38:04 · 3473 阅读 · 0 评论 -
基于openswan klips的IPsec实现分析(八)内核SADB维护(2)
基于openswan klips的IPsec VPN实现分析(七)内核SADB维护2转载请注明出处:http://blog.csdn.net/rosetta内核完整的消息处理过程,以隧道模式ESP协议增加SA情况为例接收消息和发送消息的知识涉及到Linux内核了,所以不关注它是怎么收发,而是关注收到消息后对消息本身的处理过程。但为了保证代码的完整性,就把接收和发送的代码全部帖上来了原创 2020-06-18 15:40:52 · 8004 阅读 · 1 评论 -
基于openswan klips的IPsec实现分析(一)数据发送
基于openswan klips的IPsec VPN实现分析之数据发送转载请注明出处:http://blog.csdn.net/rosetta Klips是openswan自带实现IPsec功能的模块,其主要实现数据加解密、安全关联、密钥管理、身份认证等功能,并以.ko模块插入到内核中运行。 Klips对外出数据的处理流程如下: 相关函数调用过程如下:原创 2020-06-18 15:37:44 · 6683 阅读 · 0 评论 -
基于openswan klips的IPsec实现分析(十)认证算法维护
基于openswan klips的IPsec VPN实现分析(十)认证算法维护转载请注明出处:http://blog.csdn.net/rosetta 这里指的认证算法是ESP使用的,对通信过程中的信息做哈希,用来校验信息的完整性的;协商时的认证算法仅用来做哈希,哈希结果再用来做签名和验签。 相对于加密算法,认证算法会比较简单些,它也不需要像加密算法一样去构造一个结构体原创 2020-06-18 15:41:56 · 3031 阅读 · 0 评论 -
基于openswan klips的IPsec实现分析(九)加密算法维护
基于openswan klips的IPsec VPN实现分析(九)加密算法维护转载请注明出处:http://blog.csdn.net/rosetta 本节将介绍klips加密算法的维护,并介绍如何增加新加密算法的支持,下一节将讲认证算法维护和增加。 这里说的加密算法是指对称加密算法,是在通信过程中对传送的信息加解密时使用的,比如:AES,3DES,sm4等。原创 2020-06-18 15:41:31 · 3502 阅读 · 0 评论 -
基于openswan klips的IPsec实现分析(七)内核SADB维护(1)
基于openswan klips的IPsec VPN实现分析(七)内核SADB维护(1)转载请注明出处:http://blog.csdn.net/rosetta 上一节讲了应用层pluto是如何构造SADB消息发送给内核的,这节将讲内核对SADB的维护,所有SA处理函数都在指针数组msg_parsers[]中。SADB(SA Database)即SA数据库,一般听到数据库三字原创 2020-06-18 15:41:11 · 1971 阅读 · 0 评论 -
基于openswan klips的IPsec实现分析(六)应用层SADB操作
基于openswan klips的IPsec VPN实现分析(六)应用层SADB操作转载请注明出处:http://blog.csdn.net/rosetta 这里的操作是指由openswan的密钥管理守护进程pluto对于内核SADB的操作。如下来至rfc2367的密钥关联程序和PF_KEY的关系图。原创 2020-06-18 15:39:22 · 3676 阅读 · 0 评论 -
openswan发送CR证书请求负载条件
1、问题提出 在配隧道时发现两种情况: 1、配了两边的证书情况,会发送CR 负载。 2、配了一边的证书和对端的--id,不会发送。 那么代码中是怎么实现的?2、截包对比(port 500 or isakmp protocol) 如果需要发送CR负载那么首先发送的是接收方(即第四个协商包)。 发送方原创 2012-03-26 09:26:26 · 2558 阅读 · 3 评论 -
基于openswan klips的IPsec实现分析(五)应用层和内核通信(2)
基于openswan klips的IPsec VPN实现分析(五)应用层和内核通信——内核操作转载请注明出处:http://blog.csdn.net/rosetta 在数据发送一节讲过,加载模块时会执行pfkey_init()初始化与用户层通信的PF_KEY套接字,在这个函数里会把支持的协议和算法加到pfkey_supported_list[]全局数组中,并在soc原创 2020-06-18 15:39:04 · 2920 阅读 · 0 评论 -
openswan密钥文件处理过程
1,函数调用关系:main() ->call_server() ->whack_handle() ->load_preshared_secrets() ->process_secrets_file() ->process_secret_records()原创 2012-03-07 17:18:33 · 2818 阅读 · 0 评论 -
基于openswan klips的IPsec实现分析(四)应用层和内核通信(1)
基于openswan klips的IPsec VPN实现分析(四)应用层和内核通信——应用层操作转载请注明出处:http://blog.csdn.net/rosetta klips和NETKEY在内核域中运行,主要负责控制管理SA及密钥,负责注册和初始化模块,数据加密解密,SHA1、MD5算法实现等。两者与用户层通信都使用套接字socket PF_KEY。现讲解用户层pluto和kli原创 2020-06-18 15:38:41 · 4058 阅读 · 0 评论 -
基于openswan klips的IPsec实现分析(十一)NAT穿越
基于openswan klips的IPsec VPN实现分析(十一)NAT穿越转载请注明出处:http://blog.csdn.net/rosetta 本节介绍openswan klips的NAT穿越,应用层IKE协商时的NAT在以后的文章再做介绍。简介IPsec和NAT的冲突: NAT服务器对内网来的数据包,需要修改其源地址和源端口为服务器自身的地址和端口,然原创 2020-06-18 15:42:13 · 4270 阅读 · 0 评论