您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业财务 > IPSecVPN系统以及Freeswan在实现中的应用
IPSecVPN系统以及Freeswan在实现中的应用摘要:虚拟专用网(VPN)被定义为通过一个公用网络(通常是因特网)建立一个临时的、安全的连接,是一条穿过混乱的公用网络的安全、稳定的隧道。虚拟专用网是对企业内部网的扩展。虚拟专用网可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。虚拟专用网可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。IPSec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AuthenticationHeader(AH)、封装安全载荷协议EncapsulatingSecurityPayload(ESP)、密钥管理协议InternetKeyExchange(IKE)和用于网络认证及加密的一些算法等。IPSec规定了如何在对等层之间选择安全协议、确定安全算法和密钥交换,向上提供了访问控制、数据源认证、数据加密等网络安全服务。IPSec是实现VPN的主要方式之一,本文主要讨论如何IPSecVPN的基础知识以及如何通过Freeswan来实现它。1、引言VPN即虚拟专用网(VirtualPrivateNetwork),可以把它理解成是虚拟出来的企业内部专线。它通过对网络数据的封包和加密传输在连接在Internet上的位于不同地方的两个或多个企业内部网之间建立一条专有、临时的、安全的连接的通讯线路,从而实现在公网上传输私有数据、达到私有网络的安全级别,就好比是架设了一条专线一样,但是它并不需要真正的去铺设光缆之类的物理线路。通常,VPN是对企业内部网的扩展,通过它可以帮助远程用户、公司分支机构、商业伙伴及供应商同公司的内部网建立可信的安全连接,并保证数据的安全传输。VPN可用于不断增长的移动用户的全球因特网接入,以实现安全连接;可用于实现企业网站之间安全通信的虚拟专用线路,用于经济有效地连接到商业伙伴和用户的安全外联网虚拟专用网。VPN通过公众IP网络建立了私有数据传输通道,将远程的分支办公室、商业伙伴、移动办公人员等连接起来。减轻了企业的远程访问费用负担,节省电话费用开支,并且提供了安全的端到端的数据通讯。用户连接VPN的形式:常规的直接拨号连接与虚拟专网连接的异同点在于在前一种情形中,PPP(点对点协议)数据包流是通过专用线路传输的。在VPN中,PPP数据包流是由一个LAN上的路由器发出,通过共享IP网络上的隧道进行传输,再到达另一个LAN上的路由器。这两者的关键不同点是隧道代替了实实在在的专用线路。隧道好比是在WAN中拉出一根串行通信电缆。那么,如何形成VPN隧道呢?建立隧道有两种主要的方式:客户启动(Client-Initiated)或客户透明(Client-Transparent)。客户启动要求客户和隧道服务器(或网关)都安装隧道软件。后者通常都安装在公司中心站上。通过客户软件初始化隧道,隧道服务器中止隧道,ISP可以不必支持隧道。客户和隧道服务器只需建立隧道,并使用用户ID和口令或用数字许可证鉴权。一旦隧道建立,就可以进行通信了,如同ISP没有参与连接一样。另一方面,如果希望隧道对客户透明,ISP的POPs就必须具有允许使用隧道的接入服务器以及可能需要的路由器。客户首先拨号进入服务器,服务器必须能识别这一连接要与某一特定的远程点建立隧道,然后服务器与隧道服务器建立隧道,通常使用用户ID和口令进行鉴权。这样客户端就通过隧道与隧道服务器建立了直接对话。尽管这一方针不要求客户有专门软件,但客户只能拨号进入正确配置的访问服务器。目前,用于企业内部自建VPN的主要有两种技术——IPSecVPN和SSLVPN,IPSecVPN和SSLVPN主要解决的是基于互联网的远程接入和互联,虽然在技术上来说,它们也可以部署在其它的网络上(如专线),但那样就失去了其应用的灵活性,它们更适用于商业客户等对价格特别敏感的客户。但针对IPSecVPN和SSLVPN两种技术,目前业内存在着较多争议。虽然目前企业应用最广泛的是IPSecVPN,然而InforneticsResearch研究表明,在未来的几年中IPSec的市场份额将下降,而SSLVPN将逐渐上升。用户在考虑采用哪种技术时经常会遇到两难的选择,即安全性与使用便利的冲突。而事实上没有哪一种技术是完美的,只有用户明确了自己的需求,才能选择到适合自己的解决方案。IPSecVPN比较适合中小企业,其拥有较多的分支机构,并通过VPN隧道进行站点之间的连接,交换大容量的数据。企业有一定的规模,并且在IT建设、管理和维护方面拥有一定经验的员工。企业的数据比较敏感,要求安全级别较高。企业员工不能随便通过任意一台电脑就访问企业内部信息,移动办公员工的笔记本或电脑要配置防火墙和杀毒软件。而SSLVPN更适合那些需要很强灵活性的企业,员工需要在不同地点都可以轻易的访问公司内部资源,并可能通过各种移动终端或设备。企业的IT维护水平较低,员工对IT技术了解甚少,并且IT方面的投资不多。2、IPSec的原理以及IPsecVPN的实现2.1IPSec的工作原理设计IPSec是为了给IPv4和IPv6数据报提供高质量的、可互操作的、基于密码学的安全性。IPSec通过使用两种通信安全协议来达到这些目标:认证头(AH)和封装安全载荷(ESP),以及像Internet密钥交换(IKE)协议这样的密钥管理过程和协议来达到这些目标。IPAH协议提供数据源认证,无连接的完整性,以及一个可选的抗重放服务。ESP协议提供数据保密性,有限的数据流保密性,数据源认证,无连接的完整性,以及抗重放服务。对于AH和ESP,都有两种操作模式:传输模式和隧道模式。IKE协议用于协商AH和ESP协议所使用的密钥算法,并将算法所需的必备密钥放在合适的位置。IPSec所使用的协议被设计成与算法无关的。算法的选择在安全策略数据库(SPD)中指定。可供选择的密码算法取决于IPSec的实现;然而,为了保证全球因特网上的互操作性,IPSec规定了一组标准的默认算法。IPSec允许系统或网络的用户和管理员控制安全服务提供的粒度。例如,一个组织的安全策略可能规定来自特定子网的数据流应该用AH和ESP保护,并且应该用带有3个不同密钥的3DES算法来加密。另一方面,策略可能规定来自另一个站点的数据流应该只用ESP保护,并且应该对数据流提供AES(高级加密标准)加密。通过使用安全关联(SA),IPSec能够区分对不通数据流提供的安全服务。2.2IPSec的实现方式IPSEC提供四种不同的形式来保护通过公有或私有IP网络来传送的私有数据:安全关联(SecurityAssociations,简称SA)报头认证(Authenticationonly(AuthenticationHeader,简称AH))IP封装安全载荷(EncryptionandauthenticationknownasEncapsulatingSecurityPayload,简称ESP)密匙管理(Keymanagement)1、安全关联SecurityAssociation(SA)IPSec中的一个基本概念是安全关联(SA),安全关联包含验证或者加密的密钥和算法。它是单向连接,为保护两个主机或者两个安全网关之间的双向通信需要建立两个安全关联。安全关联提供的安全服务是通过AH和ESP两个安全协议中的一个来实现的。如果要在同一个通信流中使用AH和ESP两个安全协议,那么需要创建两个(或者更多)的安全关联来保护该通信流。一个安全关联需要通三个参数进行识别,它由安全参数索引(AH/ESP报头的一个字段)、目的IP地址和安全协议(AH或者ESP)三者的组合唯一标识。表6列出AH和ESP报头在传送模式和隧道模式下的区别。表1AH和ESP报头在传送模式和隧道模式下的区别2、报头验证AuthenticationHeader(AH)认证协议头(AH)是在所有数据包头加入一个密码。AH通过一个只有密匙持有人才知道的数字签名来对用户进行认证。这个签名是数据包通过特别的算法得出的独特结果;AH还能维持数据的完整性,因为在传输过程中无论多小的变化被加载,数据包头的数字签名都能把它检测出来。IPv6的验证主要由验证报头(AH)来完成。验证报头是IPv6的一个安全扩展报头,它为IP数据包提供完整性和数据来源验证,防止反重放攻击,避免IP欺骗攻击。⑴验证报头的格式,如图1所示。图1验证报头的格式(IPSecurityAuthenticationHeader)验证报头的格式包括以下内容:下一报头字段(NextHeader):确定跟在验证报头后面的有效载荷的类型(如TCP)有效载荷长度(Payloadlength):验证报头的长度。安全参数索引(SecurityParameterIndex):用来确定安全关联的安全参数索引。验证数据字段(SequenceNumber):一个变长字段,它包含完整性检查值(ICV,IntegrityCheckValue),用来提供验证和数据完整性。保留字段(Reserved):(16位)供以后使用⑵验证数据(AuthenticationData)验证数据,它包含完整性检查值(ICV),用来提供验证和数据完整性。用来计算ICV的算法由安全关联指定。ICV是在这种情况下计算的,即IP报头字段在传递过程中保持未变,验证报头带有的验证数据置0,IP数据包为有效载荷。有些字段在传递的过程中可能改变,包括最大跳数、业务类别和流标签等。IP数据包的接收者使用验证算法和安全关联中确定的密钥对验证报头重新计算ICV。如果ICV一样,接收者知道数据通过验证并且没有被更改过。验证数据包工作过程,如图2所示。图2验证数据包工作过程⑶防止重放攻击(PreventReplyAttack)重放攻击是一种获得加密数据包,然后发送设定的目的地。收到复制加密数据包后,可能而而面临破解及其它一引起意想不到的后果。序列号计数器可阻止此类攻击,当发送者和接收者之间的通信状态建立的时候,序列号被置0。当发送者或者接收者传送数据的时候,它随后被加1。如果接收者发觉一个IP数据包具有复制的序列号字段,它将被丢弃,这是为了提供反重放的保护。该字段是强制使用的,即使接收者没有选择反重放服务它也会出现在特定的安全关联中。验证报头带有的验证数据置0,IP数据包为有效载荷。3、封装安全有效载荷数据(EncapsulatingSecurityPayload)安全加载封装(ESP)通过对数据包的全部数据和加载内容进行全加密来严格保证传输信息的机密性,这样可以避免其他用户通过监听来打开信息交换的内容,因为只有受信任的用户拥有密匙打开内容。ESP也能提供认证和维持数据的完整性。ESP用来为封装的有效载荷提供机密性、数据完整性验证。AH和ESP两种报文头可以根据应用的需要单独使用,也可以结合使用,结合使用时,ESP应该在AH的保护下。⑴封装安全有效载荷数据包格式,如图3所示。图3封装安全有效载荷数据包格式封装安全有效载荷数据包含以下字段:SPI字段(SecurityParameterIndex(SPI)):确定安全关联的安全参数索引序列号字段(SequenceNumber:):用来提供反重放保护,跟验证报头中描述的一样有效载荷数据(PayloadData):存放加密数据填充字段(Padding:Extrabytes):加密算法需要的任何填充字节填充长度(Padlength):包含填充长度字段的字节数下一报头(NextHeader):描述有效载荷数据字段包含的数据类型有效载荷数据(AuthenticationData):用ICV加密算法加密的所有数据(非加密数据区)⑵ESP计算(ESPComputation)在IPv6中,加密是由ESP扩展报头来实现的。ESP用来为封装的有效载荷提供机密性、数据来源验证、无连接完整性、反重放服务和有限的业务流机密
本文标题:IPSecVPN系统以及Freeswan在实现中的应用
链接地址:https://www.777doc.com/doc-2877709 .html