IPsec实现原理分析
文章平均质量分 86
先分析基于openswan klips的IPsec内核实现,包括数据加解密过程,IPsec 安全协议ESP/AH,应用层和内核层通信,应用层和内核层对SADB操作维护,加密算法和认证算法维护使用等;再分析应用层pluto的实现。最终把IPsec的真谛完全剖析透彻。
sweird
知其然,并知其所以然。揭开上层重重迷雾,去了解计算机的本质,去了解操作系统的本质,解开曾经的迷惑,怀着十二分的热情,用我的一生去完成。
展开
-
使用源码搭建IPV6 IPsec隧道
本文档的Copyleft归rosetta所有,使用GPL发布,可以自由拷贝、转载,转载时请保持文档的完整性。原文地址:http://blog.csdn.net/rosetta Openswan是Linux下IPsec的最佳实现方式,我之前使用的版本是openswan-2.4.7,它最大的缺点是不支持IPV6,现在国家大力扶持IPV6项目,下一代互联网IPV6全面普及已近在原创 2020-06-16 15:41:04 · 7454 阅读 · 2 评论 -
基于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 · 4294 阅读 · 0 评论 -
基于openswan klips的IPsec实现分析(十)认证算法维护
基于openswan klips的IPsec VPN实现分析(十)认证算法维护转载请注明出处:http://blog.csdn.net/rosetta 这里指的认证算法是ESP使用的,对通信过程中的信息做哈希,用来校验信息的完整性的;协商时的认证算法仅用来做哈希,哈希结果再用来做签名和验签。 相对于加密算法,认证算法会比较简单些,它也不需要像加密算法一样去构造一个结构体原创 2020-06-18 15:41:56 · 3061 阅读 · 0 评论 -
基于openswan klips的IPsec实现分析(九)加密算法维护
基于openswan klips的IPsec VPN实现分析(九)加密算法维护转载请注明出处:http://blog.csdn.net/rosetta 本节将介绍klips加密算法的维护,并介绍如何增加新加密算法的支持,下一节将讲认证算法维护和增加。 这里说的加密算法是指对称加密算法,是在通信过程中对传送的信息加解密时使用的,比如:AES,3DES,sm4等。原创 2020-06-18 15:41:31 · 3542 阅读 · 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 · 8036 阅读 · 1 评论 -
基于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 · 1987 阅读 · 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 · 3724 阅读 · 0 评论 -
基于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 · 2943 阅读 · 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 · 4115 阅读 · 0 评论 -
基于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 · 2879 阅读 · 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 · 3501 阅读 · 0 评论 -
基于openswan klips的IPsec实现分析(一)数据发送
基于openswan klips的IPsec VPN实现分析之数据发送转载请注明出处:http://blog.csdn.net/rosetta Klips是openswan自带实现IPsec功能的模块,其主要实现数据加解密、安全关联、密钥管理、身份认证等功能,并以.ko模块插入到内核中运行。 Klips对外出数据的处理流程如下: 相关函数调用过程如下:原创 2020-06-18 15:37:44 · 6713 阅读 · 0 评论