ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:451.45KB ,
资源ID:4889511      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4889511.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(IPSec协议在Linux平台上的实现技术综述报告.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

IPSec协议在Linux平台上的实现技术综述报告.docx

1、IPSec协议在Linux平台上的实现技术综述报告题目名称:IPSec协议在Linux平台上的实现技术综述报告目 录一、问题背景概述 11.1背景 11.2 IPSec协议概述 11.3基本工作原理 1二、协议分析说明分析 22.1协议规范概述 22.2需解决的问题 32.3重点和难点 3三、实现条件及系统解决方案 43.1系统实现条件 / 环境配置说明 43.2系统解决方案 53.3环境配置说明 6四、实验方案设计及实现 64.1实验方案设计说明 64.2实验步骤 / 实现过程说明 7五、方案分析评估 145.1和其他备选方案的分析比较 145.2方案评估分析 14六、课题结论 156.1本

2、课题的不足之处和可以改进之处 156.2技术前景展望 / 下一步的工作 15七、总结和体会.16附录A参考文献 16一、 问题背景概述1.1 背景Internet缺乏安全性是不争的事实,人们试图通过设计各种基于TCP/IP网络层次结构的安全协议来增强IP网络的安全性。例如,基于应用层的PGPPEMS/MIME(多功能网际扩充协议),基于传输层的SSL(安全套接层)/TLS(传输层安全) 。 IPSec是基于网络层的安全协议。IPSec相对于其它协议的优点,在于它是在TCP/IP协议的关键,实现安全机制从而有效保障了高层各协议的安全性减少了在TCP/IP网络上部署安全的复杂性。目前对于IPSec

3、协议有多种实现,例如Windows2000以上的Windows系列操作系统都提供对IPSec的支持。Linux的2.4版本本身虽不具备IPSec功能,但是Free swan等开源项目使得Linux的2.4版本可以支持IPSec Linux的2.6版本,目前已经内嵌了IPSec的功能。KAME(项目)等开源项目提供针对各种BSD(Unix的衍生系统)版本的IPSec实现方案, Motorola Ca vi um以及Hi fn AMCC都提供IPSec的ASIC/FPGA(数字芯片)实现方案。OpenSWan是Linux下IPsec的最佳实现方式,其功能强大,最大程度地保证了数据传输中的安全性、完

4、整性问题。OpenSWan支持2.0、2.2、2.4以及2.6内核,可以运行在不同的系统平台下,包括X86、X86_64、IA64、MIPS(是衡量处理器的性能的)以及ARM(处理器)。OpenSWan是开源项目FreeS/WAN停止开发后的后继分支项目,由三个主要组件构成:1. 配置工具(ipsec命令脚本) 2. Key管理工具(pluto) 3. 内核组件(KLIPS/26sec)。1.2 IPSec 协议概述IPSec是一系列基于IP网络(包括Intranet、Extranet和Internet)的,由IETF(互联网工程任务组)正式定制的开放性IP安全标准,是虚拟专网的基础,已经相当

5、成熟可靠。IPSec可以保证局域网、专用或公用的广域网及Internet上信息传输的安全。为了在IP网络上获得安全通信的保障,业界很早就有对Internet的安全协议进行标准化的想法,并提出了大量的方案。例如,作为安全数据网络系统(SDNS)la01的一部分,安全协议3号(Security Protocol 3,SP3)就是美国国家安全局以及标准技术协会制定的安全标准:网络层安全协议(Network Layer Security Protocol,NLSP)是由国际标准化组织为无连接网络协(Connectionless Network Protocol,CD心)制定的安全协议;集成化 NLSP

6、 是美国国家科技研究所提出的包括口和CLNP在内的统一安全体制。虽然这些提案的差异性较大,但本质上均采用了口封装技术,将加密的敏感信息通过Internet进行传输。当数据包到达通信对端时,外层的IP报头被拆开,报文被解密,然后送达目的地。IP安全(IPSec),是一个标准框架,它在两个对等体设备之间的网络层上提供了下面这些安全特性:(1)数据的机密性;(2)数据的完整性:(3)数据验证;(4)抗回放检测;(5)对等体验证。一种对IPSec常见的误解是,认为他只是为数据流提供安全服务的协议。实际上,IPSec是IETF IPSec工作组定义的一套安全协议。其基本架构和框架如下:(1)安全协议:认

7、证报头(AH)和封装安全载荷(ESP);(2)密钥管理:ISAKMP、SKEME;(3)算法:用于加密和身份验证。IPSec在设备和网络之间提供了网络层的保护,并且因为它是一个开放的标准,所以通常用于IPv4和IPv6的网络。IPv4可选支持IPSec,IPv6必须支持IPSec(这也是所谓的“IPv6比IPv4更安全”的根本原因)。1.3 基本工作原理IP协议本身不具备集成任何安全特性,在传输过程中很容易伪造口包的地址、修改,其内容、重播以前的包,以及拦截并查看包的内容。因此,在Internet上传递IP数据包可能会遇到如身份欺骗、数据的完整性破坏、数据的隐私性破坏等安全威胁。然而,IPSe

8、c可以有效地保护口数据包的安全,主要采取的保护形式为:数据源验证、无连接数据的完整性验证、数据内容的机密性、抗重播保护等。例如:可以使用AH(认证报头)或ESP(封装安全载荷)协议进行身份认证的保护;可以使用AH或ESP协议进行数据完整性的保护:可以使用ESP协议对数据进行加密,提供隐私保护。使用IPSec协议133I中的AH协议和ESP协议,可以对P数据包或上层协议(如UDP和TCP)进行保护。其中,AH可以认证数据的起源地、保障数据的完整性以及防止相同数据包的重播。ESP除具有AH的所有能力之外,还可以选为数据流提供机密性保障。IPSec采用安全关联SA的方案来将安全服务密钥与要保护的通信

9、数据联系起来,它还定义了用户能以多大的粒度来设置自己的安全策略。SA驻留在安全关联数据库(Security Association Database,SAD)内。具体安全策略由安全策略数据库(Security Policy Database,SPD)加以维护。结合SAD和SPDt341数据库信息,IPSec的工作流程如下。(1)对于外出数据包IPSec协议首先要查询SPD,确定为数据包应使用的安全策略。如果检索到的数据策略是需要对该数据包应用IPSec,则再查询SAD,确定是否存在有效的SA。若存在有效的SA,则取出相应的参数,将数据包进行加密、验证,添加IPSec头和IP头等,然后发送;若尚

10、未建立SA,则启动IKE协商,协商成功后则将数据包Linux环境下于IPSec的VPN关键技术研究封包发送,不成功则丢弃数据包并记录出错信息;若存在SA但无效,则将信息通告IKE(互联网密钥交换协议),请求协商新的SA,协商成功后则将数据包封包发送,不成功则丢弃数据包并记录出错信息。(2)对于进入数据包IPSec协议首先查询SAD(安全关联数据库),如得到有效的SA,则对数据包进行还原,在查询SPD(安全策略数据库),验证为该数据包提供的安全保护是否与策略配置的相符。若相符,则将数据包还原后交由上层协议或转发;若不相符,则将数据包丢弃并记录出错信息。IPSec对输入输出数据包处理的流程如图所示

11、。上层下达递交上层图1 IPSec 处理流程图二、协议分析说明分析2.1协议规范概述IPSec是IETF(互联网工程任务组)提出的IP安全标准,它在IP层上对数据包进行安全处理提供数据源验证无连接数据完整性、数据机密性、抗重播和有限的业务流机密性等安全服务。各种应用程序完全可以享用IP层提供的安全服务和密钥管理,而不必设计和实现自己的安全机制。因此减少了密钥协商的开销,也降低了产生安全漏洞的可能性。IPSec可连续或递归应用在路由器防火墙主机和通信链路上,配置实现端到端 、安全虚拟专用网络(VPN)Road Warrior 和安全隧道技术。IPSec协议由核心协议和支撑模块组成。核心协议包括A

12、H(验证头)与ESP(封装安全载荷)。支撑部分包括加密算法、HASH算法、安全策略、安全关联、IKE密钥交换机制。从全局的角度理解和把握IPSec的作用、实施,这里首先简要介绍一下IPSec体系的概貌。IPSec是一种协议套件。主要包括以下组件:(1)AH(认证头):AH是一种IPSec协议,用于为IP提供无连接的完整性、数据源认证和可选的、有限的抗重放服务。(2)ESP(封装安全载荷):ESP也是一种IPSec协议,ESP除了具有AH 的所有能力之外,还可选择保障数据的机密性,以及为数据源提供有限的流量保密性。(3)IKE(Internet密钥交换):因为IPSec 协议中的这些安全服务需要

13、使用共享密钥(在认证完整性和加密服务中都使用了密钥)。因此必须要有一种独立的机制来进行密钥管理。标准要求实现人工和自动两种密钥管理方式,并指定了一种基于公钥体制的自动密钥管理方式IKE。(4)管理配置应用:一般来讲 会根据通信对象的不同采取不同的安全保护措施这在IPSec中称为 “安全策略” 系统安全策略的配置和管理是IPSec实施中极其重要的,同样也是最基础的一环。(5)转码方式:转码方式定义了如何对数据进行转换以确保它的安全。其中包括算法密钥太小、转码程序以及算法专用的任何信息。对这些信息来说,确保它们的唯一性显得尤其重要。只有这样才能使不同的实施方案实现彼此问的互操作。其中,AH和ESP

14、协议支持两种不同的应用模式:传输模式和隧道模式。而且这两个协议可以组合使用,从而满足不同用户对安全性的不同要求。虽然IPSec是一个十分复杂的系统,但当这些机制被正确实现并进行布 署时,它们不会对没有采取这些安全机制来保护通讯流量的用户主机和其它me met构件产生不良影响。这些机制也被设计成独立于算法的机制,这种模块化的方法使得用户可选择不同的算法而不会影响其它部分的实现。但应注意的是,AH或ESP所提供的安全保障完全依赖于它们采用的加密认证算法。为保证不同实施方案在整个Internet范围内的互操作性,标准定义了一系列需要强制实行的加密算法。2.2需解决的问题(1)建立统一的策略描述格式,

15、让各类安全策略之间能够进行协商和交换;(2)如何检测策略之间是否出现冲突;(3)如何配置和集中管理策略。2.3重点和难点由于各种设备的多样性和复杂性,目前还没有一个统一的描述格式,导致策略的协商、交换、冲突检测都很难进行,并且现在的冲突检测、策略协商算法复杂,效率不高。现在提出的策略管理方法,通常是对策略服务器模型的研究,为网络内部的所有资源提供不同级别的保护。但在实际应用中,还存在着很多问题,比如基于策略的管理实体间的认证、以及采用安全策略系统的高成本问题等。随着IP网络变得无处不在,人们将语音、视频和数据网融合到单个基础设施,即基于IP的网络,然而不同类型的数据流对网络的服务等级要求不同,

16、为了能让IP网络根据不同数据流提供不同的服务,可以根据5种协议属性将分组分成流。这5种协议属性也被称为5元组:源IP地址、目的口地址、IP协议、源端口和目标端口。虽然对于未加密的数据流,前面描述的5元组对m分类很容易,但IPSec报头会隐藏原始P分组报头的信息,给分组带了了挑战。另外,构建IPSec VPN来提供语音服务对企业来说日益重要。VOIP带来了独特的挑战,使IPSec更为复杂。目前,对很多企业来说,使用IP多播的应用也变得很重要,多播应用通常依赖于单播路由选择协议和多播路由选择协议。然而当前的IPSec标准不支持IPSec隧道上的多播,这也影响了IPSec的应用。除了以上提到的问题,

17、IPSec在实际应用中还存在着其他局限,如IPSec对负载均衡的支持、动态口下IPSec VPN的实现等。这些问题还有待于进一步的研究和解决。三、实现条件及系统解决方案3.1系统实现条件 / 环境配置说明3.1.1 IPSec实现地点IPSec在主机上实施可以提供端到端的安全性,实现所有的IPSec安全模式(传输模式和隧道模式)。IPSec模块的主要功能是对进出VS的数据包提供安全服务。可细化为以下几个方面:当IPSec实现于路由器防火墙时, 能够对其保护的子网之间流动的所有数据提供安全保护。而且通过身份认证。可以禁止非授权用户进入私用网络。许多公司都利用这一点允许员工在互联网上通过远程通信建

18、立VPN或内联网。而在此之前能通过拨号方式来实现(直接通过调制解调器拨号进入公司内网)。3.1.2 IPSec实现组件无论IPSec在“哪里”实现,在具体实施时一般都会实现下几个组件:(1) IPSec基本协议:这些组件实施了ESP和AH ,它用于处理IP头与SPD和SADB进行交互,以便决定为数据包提供哪些安全保障,并解决分段和PMTU(路径最大传输单元)之类的网络层问题。(2)SPDB:SPDB(安全策略数据库)是一个重要组件,因为它对数据包采用的安全保障起决定作用。外出包和进入包的处理都要查阅这个SPDB。对外出包处理来说,IPSec通过检索SPDB来判断这个包是否需要安全保护。对进入包

19、来说,IPSec通过检索SPDB来判断为这些包提供的安全保护是否策略配置的安全保护相符。(3)SADB:SADB(安全关联数据库)为进入和外出包处理维持一十活动的SA(安全关联)列表 外出SA用来保障外出包的安全,进入SA用来处理带有IPSec头的进入包。(4)IKE:一般说来,Internet密钥交换(IKE)是一个用户级的处理,除了在嵌入式操作系统以外。 典型情况下,对于运行嵌入式操作系统的路由器来说,用户空间和内核空间没有什么区别IKE负责建立安全通信的节点之间的SA。(5 )策略和管理:这些是对策略和SA进行管理的应用。3.2系统解决方案本文中的IPSec实现是以模块的形式实现的,在配

20、置IPSec VPN之前首先需要加载IPSec内核模块。当完成IPSec模块的加载后,接着进行IPSec系统的初始化,然后再根据网络的实际需要制定安全策略,系统开始自动协商安全关联,从而配置有IPSec的主机或其他设备间可以进行安全通信。 IPSec系统初始化主要是向内核登记几个proc文件(proc文件系统是一种在用户态检测内核状态的机制,不仅可以获得内核状态而且可以修改),以便于向内核空间查询安全联盟和虚接口的状况等。初始化主要包括以下几个部分:安全策略数据库和安全关联数据库初始化,虚接口注册,加密算法和认证算法的初始化等。添加IPSec安全策略一般由管理员完成,策略主要包括地址、目的地址

21、、安全协议等参数。由于SA具有方向性,因此对于通信的设备之间需要建立进出两个方向的SA 。 IPSec系统在发送数据包和接收数据包的处理上是不同的,以下两小节分别介绍数据包发送流程和数据包接收流程。3.2.1 数据包发送流程应用层发送的数据,经过TCPIP处理后加上TCP头和IP头,然后经过IP层的发送队列,发送到IPSec虚接口,对数据包的安全策略和安全关联的查询,判断是否需要进行安全处理,如果需要则转发给AH(认证报头)ESP(封装安全载荷)处理模块进行认证和加密,然后发送到IP发送队列,如果不需要则直接发送到IP发送队列。3.2.2 数据包接收流程数据包接收处理流程如下图所示。物理层网络

22、接口接收到的数据,经过链路层处理后去掉以太网帧头,然后经过P协议栈处理完后,判断出下一个协议头是AHESP还是TCP(传输控制协议)UDP(用户数据包协议),如果是AHESP,则由AHES模块进行加密和认证处理。然后发送到虚接口,再由虚接口发送给IP层的接收队列,如果是TCPUDP协议头,则直接发送给TCPUDP协议栈处理,最后发送给应用层接收数据。3.3 环境配置说明Linux下的IPSec VPN实验的网络拓扑如图:具体配置说明如下:主机名 网卡eth0网卡eth1 用途Server A 172.20.3.X 172.22.3.X 实验台A,网关Server B172.21.3.Y 172

23、.22.3.Y 实验台B,网关Client A 172.20.1.X A客户机Client B 172.21.1.Y B客户机四、实验方案设计及实现4.1实验方案设计说明4.1.1 方案简述该文讨论的IPSec实现在网关上,实现后系统作为安全周关运行。在此,着重IPSec 实现部分内容的讨论采用Linux作为网关的操作系统平台。在设计方案中,利用开放源码的Linux操作系统,对其内核主要是TCPIP协议栈部分,进行部分重构和安全扩充,使其支持基本的IPSec协议,对协议中要求的一些计算量较大的部分加密解密处理部分交给高速DSP处理器实现,以提高整个网关的性能,同时,对于密钥交换部分,将采用IK

24、E手工配置两种方式。4.2 IPSec模块IPSec模块的主要功能是对进出VS的数据包提供安全服务可细化为以下几个方面:(1)查询安全策略数据库:通过配置每十VS上的SPD,可对不同流量采取不同的安全措施。所以VS在每次收到一个外出进人数据包时,都必须要查询系统的SPD数据库,然后根据查询结果采取相应的处理措施。(2)IKE模块交换信息:IPSec模块与IKE模块关系紧密。IKE模块的主要功能是为IPSec模块协商用于保护通信流量的SA IPSec模块可据SPD的查询结果主动向IKE模块提出建立SA的请求,当IKE完成协商后将协商好的SA传递给IPSec 模块;或者IKE模块接受来自其他VS的

25、建立SA的请求并将协商好的SA传递给IPSec模块。(3 )管理SAD和SPD:所谓管理SAD、SPD主要是指SAD、SPD数据库的初始化。建立和维护SA与SPD条目之间的对应关系,及检测SA是否仍然有效。(4)实现IP安全协议AH、ESP:依照AH、ESP相关RFC文档实现AH、ESP协议,对需要进行IPSec处理的lP包,根据SA实现AH、ESP头的构造处理。(5)管理密码函数库:提供的可选加密算法数量比较多而无法全部写入DSP板时, 可能需要将一些不太常用的加密实现写在硬盘上在系统初时存入主机内存当需要时再由主机内存调入DSP内存执行。(6)DSP硬件交换信息:IPSec模块直接负责与D

26、SP硬件的交互。这包括IPSec 通知DSP加密解密数据 及从DSP接收加密解密的数据。(7)资源保留模块:是对系统资源的直接管理,它保留特定的系统资源为VS专用,而不让操作系统进行动态管理。如固定内存区域保留给DSP以及多任务调度等处理,在系统中以模块形式加载。4.2.1 功能模块之间的关系安全网关的总体框架及各功能模块之间的关系:(1)安全策略库存放了由用户或系统管理员所制定的策略,策略将决定通信的双方是否采用IPSec处理,以及决定采用何种IPSec协议、模式、算法和嵌套需求。(2)安全关联库由一系列安全关联项组成。安全关联是两个通信实体经过协商建立起来的一种协定。它们决定了用来保护数据

27、包安全所需的各种参数:序号计数器;抗重放窗口;AH 验证算法及其密钥:ESP 加密、认证算法、密钥;安全关联的生存期:IPSec协议模式。(3)算法库存放了多种可选的认证和加密算法,这些算法包括IPSec本身所支持的通用算法和经国家主管部门批准的专用密码算法。在处理时可以通过安全关联中的算法项来指明所需要使用的算法。(4)面向应用的接口提供了管理安全策略库,以及配置网关,处理日志、统计、审计信息的接口。用户或系统管理员可通过配置服务器配置安全关联数据库(SAD)和安全策略库(SPD),还可以进行手工注入安全关联或者启动IKE动态协商安全关联。以及对日志、统计、配置、审计信息的提取和处理。4.2

28、.2 IP报文的接收、转发和发送处理IPSec安全网关对IP报文的接收、转发和发送处理的整个过程:当安全网关的网卡接收到数据报时,通过中断触发内核的中断处理程序,将网卡接收的数据报传送到内核空间,然后再通过IP层,预处理程序将数据报转换为IP包。此时,将利用内核的Net filter机制提供的HOOK点PRE_ROUTING,将IP包传送到IPSec进入策略处理模块。该模块将决定哪些包可以进入安全网关,哪些包需要丢弃。对于允许进入网关的IP包,将送到路由处理模块。路由处理根据IP头 决定IP包是发送到本机还是继续转发。 对于发送到本机的IP包,首先经过内核对IP包的处理,如:分片重组、选项处理

29、等等。然后,利用HOOK点LOCAL_IN,将重组的IP包传送到IPSec进入处理模块。IPSec进入处理模块将对IPSec包和非IPSec包进行区分,对于发往本机的非IPSec包将直接传送到传输层处理模块;对于IPSec包将进行认证或解密等IPSec处理,并剥去IPSec头。处理完后,将重新组装成IP包发回到IP层预处理模块中。这样该IP包将重新通过路由来决定发往何处。对于转发的IP包,首先进行转发处理,如:决定下一跳、减少TTL,对某些特殊情况发送ICMP包。然后,利用HOOK点IP_FORWARD,将IP包传送到外出IPSec外出处理模块。IPSec处理将根据策略区分IPSec包、非IP

30、Sec包以及包发往何处。对于IPSec包将丢弃。对于发往内部网的非IPSec包,直接将包传送给发送处理模块,发往内部网。对于发往外部网的IP包,将根据策略进行认证或加密等IPSec处理,最后将处理过的IP包传送到发送处理模块。 对于从安全网关传输层发送的报文,首先进行本地的IP包处理,生成IP包。然后对IP包进行路由,决定IP包的出口。路由之后将利用HOOK点LOCAL_OUTPUT,将IP包传送到IPSec外出处理模块。IPSec外出处理将根据策略决定哪些包需要进行IPSec处理。对于不需要处理的IP包,直接传送到发送处理模块。对于需要进行IPSec处理的IP包,将根据策略进行认证或加密等I

31、PSec处理,然后将IPSec包重新发回到路由处理模块,再决定IPSec包将发往何处。当再次经过HOOK点时,IPSec外出处理将通过策略将处理过的IP包 直接传送到发送处理模块。发送处理模块将进行分片等处理,最后将包发送到网卡。4.3 实验步骤 / 实现过程说明4.3.1 实验原理IPSec是一种加密的标准。IPSec通过使用基于密码学的保护服务、安全协议和动态密钥管理。 OpenSwan是Linux下IPSec的最佳实现方式,其功能强大,最大程度地保证了数据传输中的安全性、完整性问题。OpenSwan支持2.0、2.2、2.4以及2.6内核,可以运行在不同的系统平台下,包括X86、X86_64、IA64、MIPS以及ARM。 OpenSwan是开源项目Frees/WAN停止开发后的后继分支项目,由三个主要组件构成: 配置工具(IPSec命令脚本); Key管理工具(Pluto); 内核组件(KLIPS/26sec)。4.3.2 实验步骤一、 环境配置根据实验环境配置客户端和

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1