Netlink消息通信机制IPSec VPN实现研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Netlink消息通信机制IPSec VPN实现研究

Netlink消息通信机制IPSec VPN实现研究   摘 要:文章分析研究Netlink机制对于Linux内核IPSec服务的支持,提出了一种基于Netlink消息通信机制的IPSec VPN实现方案。方案由内核空间IPSec服务模块和用户空间IPSEC管理软件组成,两者通过Netlink进行通信,并为IPSec VPN提供了灵活、高效的IKE协商机制和安全可靠IP数据包传输保障。   关键词:Netlink;IPSec VPN;IKE协商;用户空间;内核空间   中图分类号:TP393 文献标识码:A   1 引言   VPN即虚拟专用网,是利用开放、不安全的公用网络作为基本传输介质,通过采用隧道封装、信息加密、用户认证和访问控制等技术形成专用的虚拟链路实现对信息传输过程的安全保护,从而向用户提供类似专用网络安全性能的网络服务技术。   IPSec是Internet工程任务组IETF定义的一套安全标准,包括一系列安全协议,为IP数据包传输提供安全保障。Linux 虚拟地址空间为0到4G,划分为内核空间和用户空间两部分。内核空间包括最高的1G字节,而用户空间包括较低的3G字节。   基于Linux 的IPSec VPN由内核IPSEC服务模块和用户空间IPSec管理软件组成。内核IPSec模块在内核提供IP数据包的地址验证、数据完整性校验,数据机密性保护等业务,用户空间IPSec管理软件执行IKE密钥协商,密钥配置等业务。其中IKE密钥协商用于产生通信双方可用于加解密的工作密钥。   Netlink是Linux提供的一种消息通信机制,用于内核空间和用户空间之间的信息传输。本文提出了一种基于Netlink消息通信机制的IPSec VPN的实现方案。本方案重点是设计用户空间IPSec管理软件,实现安全策略管理配置等功能,内核模块采用Linux内核原生IPSec服务模块。   2 Netlink机制对IPSEC的支持   内核的 IPSEC 处理逻辑中包含SAD 和 SPD 两个策略数据库,其中 SAD 中包含了所有有效的用于保护通信的安全关联(SA),SPD中包含了使用的安全策略(SP)。所有数据包在进行IPSEC处理时都要查询SAD和SPD,根据查询到的策略来执行相应的安全处理。每个IP数据包的处理都需要SP和SA结合起来使用。内核在处理IP数据包时,如果应用于该IP数据包的安全策略不完整,则通过Netlink向应用层发送SAD和SPD的管理请求消息。   Linux内核空间和用户空间使用一种特殊的套接字Netlink Socket实现双向通信。Linux内核中xfrm_user.c文件实现了针对IPSec的Netlink通信模块,主要是对SAD和SPD的策略管理。xfrm.h文件中定义了14种SAD和SPD的策略管理消息类型,包括新增、删除、修改、查询SA和SP,清除所有SA、SP等。   3 IPSEC-VPN数据包处理流程   基于Netlink的IPSec VPN的IP数据包处理流程如图1所示。   IPSec管理软件初始化,读取解析网络地址配置文件,分析需要建立IPSec VPN的IP地址,端口号等信息。通过IPSec管理软件内的Netlink消息通信模块用户端(以下简称Netlink用户端)发送“新建SP”消息到内核,Netlink消息通信模块内核端(以下简称Netlink内核端)接收消息并解析出配置信息,调用内核SPD数据库管理接口将新的SP注入到SPD数据库。   在内核层,当有IP数据包到来时,判断合法性,并根据该包的目的地址、源地址、端口等信息检索SPD,根据检索到的SP对IP数据包进行安全策略处理。SPD中对于数据包的处理策略包括“应用”“绕过”“丢包”。判断安全策略的行为是“丢弃”,终止对IP数据包的外出处理,包被丢弃;如果行为是“绕过”,做透明处理,不应用安全处理。如果安全策略的行为是“应用”,则进入第三步。   根据SAD建立dst_entry链表。sk_buff是Linux操作系统网络部分的一个重要数据结构,在整个网络传输中作为数据载体。dst_entry是sk_buff中的重要组成部分,链表记录了应用于该IP数据包的路由,dst_entry中的成员函数Output指明了数据包的具体协议处理函数。内核IPSEC模块根据SP查?对应SA,如存在,则根据SA建立dst_entry链表。如果没有,则进行第四步,协商并建立SA。   内核通过Netlink内核端向应用层发送“请求SA”消息,消息包括需要协商的对端IP地址等。Netlink用户端接收到消息并解析为“请求SA”类型以后,发起IKE密钥协商,IKE成功以后,向内核发送“新建SA”消息,消息包括IP地址,SP

文档评论(0)

3471161553 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档