中小企业基于IPSec的VPN安全方案的设计与实施Word文件下载.docx
《中小企业基于IPSec的VPN安全方案的设计与实施Word文件下载.docx》由会员分享,可在线阅读,更多相关《中小企业基于IPSec的VPN安全方案的设计与实施Word文件下载.docx(63页珍藏版)》请在冰豆网上搜索。
Keywords:
IPSec(InternetProtocolSecurity);
VPN(VirtualPrivateNetwork);
IKE(InternetKeyExchange);
AH(AuthenticationHeader);
ESP(EncapsulatingSecurityPayload)
1.引言
在互联网发展迅速的今天,尤其是电子商务的发展,使互联网的传输速率越来越高,接入费用日益降低,从而越来越多的企业使用互联网作为企业内联网的传输平台。
当敏感数据在不安全的共享通道中传输时,安全通信就变得越来越重要[1]。
传统的安全互联是基于固定的专线的连接方式,由于价格比较高昂,而Internet的速率现已可以媲美专线,所以专线已经难以适应需求。
在这种需求下,虚拟专用网技术产生了。
它可以让地理位置不同的两个内网通过互联网相连通信,但是如果不采取任何安全保护,数据很容易会被监听、篡改和伪造,将会给企业带来很大的损失。
因为互联网是一个建立在TCP/IP协议上的开放交换网络,但是一开始设计时并没有考虑到传输的安全性,导致现在互联网的安全性很低。
互联网传输上的数据包基本都是使用明文传输的,很容易就会被不法之徒窃听,篡改或伪造。
IETFIPSec工作组于1998年,制定了一系列基于密码学的开放的网络安全协议,总称IPSec(InternetProtocolSecurity,Internet协议安全),这个体系结构可有效地保护IP数据报文的安全[2]。
IPSec有它独特的优势,而且在互联网传输中占据着十分重要的地位。
IPSes协议是现在的网络安全开发中使用的最广泛的一种协议。
它可以为IPv4和IPv6提供较强的安全保护。
IPSec体系结构是在RFC2401中定义的,它为IP数据流提供安全服务。
安全服务的IPSec组件包括:
安全协议,安全关联,密钥管理机制,验证和加密算法。
其中安全协议IPSec提供了两种,都能为IPSec对等体之间传输的IP数据流提供安全服务,它们分别是验证头报头AH和封装安全有效负载ESP。
验证头报头AH是一个分组报头,它能够提供消息的完整性,完成来源验证和可选的重放防范。
封装安全有效负载ESP是通过分组报头和报尾来提供消息的完整性,数据的来源验证,确保数据的保密性,重放防范和流量保密性[3]。
安全协议的主要作用就是来实现IPSec完整性,保密性,来源认证和重放防范,是IPSec的主体。
IPSec体系架构位于网络层,负责IP数据包的保护和认证。
这些IP包在相关的IPSec设备(对等)之间传输,IPSec并不限定于某类特别的密钥技术,以及特别的加密或认证或安全算法[4]。
IPSecVPN的提供了端到端通信的安全,保证了信息在传输过程中的安全性。
还有非常重要的一点,基于IPSecVPN的网络可以应用在一些有分支机构或者分店的行业,只要有互联网的地方,出差的员工就可以使用ADSL拨号上网登录企业内网访问内网资源,上传资料到内网,使用企业内部邮箱。
同时,IPSec体系架构有其显而易见的高效性,它消除了数据在公网上传输的不安全性,对数据进行了加密和防修改保护,还对数据源进行了认证,但是如果没有专门的硬件设备,将其架设在普通的电脑或者出口路由器防火墙上,势必会给这些设备原本的性能带来影响,因为每一个出站包都需要加密签名,每个如站包都必须认证解密。
但我相信,随着设备技术的逐步完善,这个问题早晚必将克服[3]。
2.VPN概述和比较
2.1VPN产生背景
随着网络技术的快速发展,尤其是电子商务的快速发展,使得越来越多的企业使用企业内部局域网来实现打印机和文件管理共享、应用软件共享、日程管理、电子邮件等功能。
企业发展壮大后,又需要在各地建立分支机构,此时企业迫切需要一种技术来解决总公司与分支机构之间实现内网资源互通。
另外,企业壮大后,外出出差人员也日益增多,也急需访问公司内部资源和及时回传一些数据。
2.2传统的解决方案
以前需要实现总部与分支机构的内网互通都是使用运营商提供的专线的方式,这种方式由于建设成本需要投入的人力物力较高,管理又很困难,中小企业很难负担得起。
后来运营商又使用虚电路ATM和帧中继的方式提供类专线的解决方案,但是由于虚电路需要专用的设备介质,部署比较复杂,对于网络建设花费的成本还是比较高昂,而且速度很不尽人意。
2.3VPN的产生
传统的解决方案虽然存在各种问题,但是还是给企业总部与分支机构通信带来了极大的便利,给企业带来了效益。
但是专线花费实在过于昂贵,中小企业急切需要一种技术来实现基于公共的Internet来让企业总部与分支机构互联和在外出差人员通过公共Internet连入企业内网,虚拟专用网VPN(VirtualPrivateNetwork)技术由此产生。
2.4VPN定义
虚拟专用网VPN(VirtualPrivateNetwork),是在公共的Internet上建立一条临时的虚拟隧道仿真专线来实现企业内网通信或者是移动出差人员访问企业内网[6]。
VPN技术不依赖专用的物理线路,也不改变现有网络的结构,只要有Internet的地方就可以访问公司内网,极大程度的提高了运营商网络的利用率,降低了内网互通的开销,有很高的可管理性,部署也不用像专线那样复杂,部署时间也就很短。
2.5VPN基本原理
VPN的实现基本原理就是利用了隧道技术。
隧道技术就是将数据包封装在隧道协议中,然后在公共的Internet上进行透明传输,使用隧道桢头进行路由。
隧道技术可以使用两种不同的协议,比如公司内网使用的是IPX协议,但是现在目前公共的Internet上使用的基本都是IP协议,使用隧道技术,就可以完美解决这个问题,使两个使用IPX协议的总部和分支机构,可以通过公共的Internet实现互通。
2.6VPN的主要分类
按照网络层次区分VPN是使用最多的区分方式,按照网络层次就是按照OSI网络模型的层次来区分VPN,可以分为链路层VPN和网络层VPN。
链路层VPN是先把网络协议封装到点到点协议中去,然后再把整个数据包封装到各VPN隧道协议中去[7]。
最后封装完的数据包使用链路层协议进行传输。
主要的链路层,也就OSI网络模型第二层的VPN有:
PPTPVPN,L2TPVPN,MPLSVPN。
网络层VPN是先把网络协议直接装入VPN的隧道协议中,最后封装完的数据包依靠网络层协议进行传输。
主要的网络层,也就OSI网络模型第三层的VPN有:
IPSecVPN,GREVPN,BGPMPLSVPN。
2.7VPN技术比较
PPTP是一种基于PPP协议的点对点VPN协议,常用于IP网络,只能在两个端点间建立唯一隧道,而且不支持隧道验证,一般用于远程拨号接入企业内网。
L2TP和PPTP类似,也是一种基于PPP协议的点对点VPN协议,但其不仅可以应用于IP网络,还可以应用于一些虚电路网络ATM,帧中继等。
而且L2TP还支持在两个端点之间建立多条隧道,还可以对隧道进行验证。
GRE是一种常用的封装协议,它允许一种网络协议封装另一种网络协议,比如现在IPV6还没有普及,有些企业使用IPV6,但是公共网络Internet使用的是IPV4这样会导致企业的数据无法路由,使用GRE协议,在企业出口路由器部署后,就可以将IPV6封装在IPV4内进行路由,给企业提供了极大的方便。
MPLS是一种基于标签的VPN技术,MPLS有二层VPN技术和三层VPN技术,基于ATM或者帧中继的MPLS就是二层VPN技术,基于LDP协议或者BGP协议的MPLS就是三层VPN技术,三层MPLS技术相对于路由协议转发速度更快,使用标签来进行转发。
SSL是一种基于WEB的VPN技术,可以对数据进行加密和完整性验证,一般都需要使用浏览器来实现,相对比较方便不需要安装客户端,我们使用的支付宝就是使用SSL技术来传输的。
IPSec是一种加密的VPN技术,它不仅可以对数据加密,对发送源进行验证,还可以对数据完整性进行验证。
区别于SSL技术,IPSec提供的是两个端点之间的安全传输,而不是基于浏览器的,在企业中应用更为常见,IPSec技术还可以与传统的VPN技术相结合,来弥补传统VPN技术的安全性。
3.数据安全基础
3.1数据在Internet上传输的主要威胁
数据在公共的Internet上传输,数据安全完全得不到保障,你根本不知道这个数据到底是不是真的是那个人发送给你的,在我们生活中常见的就是QQ号码被盗后,盗号者使用后来问好友借钱。
还有就是现在黑客技术已经遍布在我们的生活中,随便使用一个黑客软件就可以通过抓包等操作,就可以在发送和接收方毫无察觉的情况下,查看数据。
更恶劣的还有,截取发送方的数据包,进行更改后发送给接收方。
同时,在电子商务越来越红火的今天,必须有一个安全受到能保证交易或者操作不被否认,对相关操作留有证据,也就是不可抵抗赖性。
[8]
3.2数据加解密
数据明文在公共的Inernet上传输,存在被截取窥看的危险,通过把数据进行加减乘除进行某种算法先进行处理后,使其变成一段不可读的乱码,那么就算黑客截取到,也看不到数据,接收方收到数据后,再按照约定的算法对数据进行解密操作,就又可以恢复数据原来的明文。
数据从明文进行加减乘除某种算法后成为密文,这种过程叫做加密。
接收方收到数据后,再按照约定的算法恢复数据为明文,这种过程叫做解密。
按照加密算法的工作原理,可以将加密算法分为对称加密算法和非对称加密算法。
3.3对称加密算法
对称加密算法,顾名思义就是发送方和接收方在数据传输之前交换计算确定密钥,然后使用相同的密钥进行加密和解密。
每对发送和接收方都有专属的密钥对,这样密钥的需求量就相对很大,这种算法要求交换密钥的环境是相对安全的,对称密钥算法执行效率相对于非对称密钥算法要高很多,一般用在数据传输量比较大的场合。
常用的对称密钥算法有DES,AES,3DES,RC4等。
3.4非对称加密算法
非对称加密算法,也可以称为公开密钥算法。
接收方和发送方都有一个私有密钥和一个公开密钥。
私有密钥不对外发布,公开密钥对外发布。
两个密钥没有直接关联,不能通过私钥计算出公钥,也不能通过公钥计算出密钥。
一般都是在发送数据前先获取对方的公钥,然后发送方要发送数据之前,使用接收方的公钥进行加密,接受方收到以后使用自己的私钥进行解密。
非对称加密算法,不会像对称加密算法一样需要大量的密钥,对于发送方也只需要知道接收方的公钥和自己的私钥即可。
但是由于使用不同的密钥进行加密和解密,算法就相对比较复杂,对于数据量比较大的场合,计算会占用较多的时间,极大的加大了数据传输延迟。
常用的非对称加密算法有DH和RSA。
3.5组合加解密技术
使用对称加密算法相对于非对称加密算法会比较不安全,使用非对称加密算法对于对称加密算法计算会比较慢。
在这种需求下,出现了组合加解密技术。
组合加解密算法,顾名思义就是将非对称加密算法和对称加密算法组合在一起使用。
组合加解密算法,其实就是使用对称加密算法对数据进行加解密,然后将对称密钥使用非对称算法进行加解密。
也就是说发送方先与接收方计算确定一个对称密钥和发送方获取接收方的公钥,将数据使用对称密钥进行加密,再将对称密钥使用接收方的公钥进行加密。
接收方收到数据和加密的公钥后,先使用自己的私钥将加密了的对称密钥解密,再用解密了的对称密钥去解密数据,这样既可以增加安全性,又可以加快加密解密速度。
3.6数据完整性
3.6.1摘要算法
虽然加密算法解决了数据被截取后黑客无法窥看的问题,但是并不能保证接收到的数据是没有被更改的原版的数据,为了保证数据在接收方收到的数据是没有进过更改的原版数据,我们就需要使用摘要算法。
摘要算法顾名思义就是使用一种算法对数据进行计算,得到一个固定长度的数值,可以称之为原来数据的内容摘要。
摘要算法是单向的,只要数据被更改后,就不可能得到和原数据一摸一样的摘要,由于单向性也不能伪造一个摘要。
在对数据进行摘要算法后,会将数据与摘要一起发送给接收方。
接收方在收到数据后,将数据重新进行摘要算法,如果与发送过来的摘要不同则说明数据被更改了。
3.6.2数字签名
光使用摘要算法,不能保证黑客截取了数据和摘要,更改数据再计算出摘要后发送给接收方。
这时就出现了数字签名,数字签名就好像我们生活中的签名或者说是敲印章,对于自己身份的证明。
数字签名的实现过程就是发送方先将数据进行摘要算法,然后将这个摘要的值使用发送方自己的私钥进行加密[9],再将数据和这个加密了的摘要值一起发送给接收方,完成整个签名的过程。
接收方收到数据和加密了的摘要值以后,使用发送方的公钥来解密加密了的摘要值也就是数字签名,并将数据计算摘要值与该值比较后来确定数据的完整性,如果相同则检验通过。
这样做了以后,黑客不可能同时知道发送方的公钥和摘要算法,增加了安全性。
3.6.3数字证书
在数字签名中使用到了公钥,在非对称加密中也使用到了公钥,发送方使用接收方公钥进行加密,接收方如何安全的将自己的公钥传输给发送方呢?
发送方收到后又怎样来确定这个是不是真的是接收方的公钥呢?
现实生活中,我们可以使用身份证来证明自己的身份,而身份证之所以可信是因为它是派出所发放的。
派出所是一个权威机构,是政府单位。
那么我们同样可以在网络世界建立一个体系,设立一个权威机构来发布电子身份证标识各个主机的身份,这就是数字证书。
数字证书就是相当于电子身份证,它将公钥和身份绑定起来,由一个权威的第三方机构对绑定后的数据签名,来确定数据的可靠性。
数字证书包括以下几个主要的字段:
发送方的公钥,发送方的机器名,证书的颁发单位,证书的号码,证书颁发方的数字签名,证书的有效期限等等。
可以用来验证身份,也可以用来加密数据。
数字证书必须向权威机构申请,申请成功后颁发机构将私钥颁发给申请者,公钥写入到数字证书中。
4.IPSec体系结构
4.1IPSec产生背景
虚拟专用网VPN技术,仅仅解决了企业内网的通信问题,当敏感数据在不安全的共享通道Internet中传输时,安全通信就变得越来越重要[10]。
在黑客技术横行的今天,越来越多企业开始关心数据的安全性,一些商业机密不能被竞争对手所知道。
数据在Internet传输,很容易被更改,窥看。
传统的VPN技术只能解决企业总部内网与分支机构互联互通,并不能防止数据被更改,窥看。
IPSec体系结构的提出,从根本上解决了VPN在公共Internet上传输时的安全问题。
4.2IPSec概述
IP协议设计的时候没有考虑太多的安全性问题,而目前IP协议又成为了全世界使用最广的协议,IETF在RFC2401中提出了IP安全体系结构,也就是我们现在所说的IPSec(IPSecurity),来弥补IP协议在安全性方面的不足。
IPSec也不是一个单一的协议,它是由一系列的安全协议标准一起组成的。
IPSec是设计在网络层上的,可以对通信两端节点提供多对安全隧道保护。
IPSec体系结构可以自己协商选择安全协议,确定两端使用的算法和两端安全服务需要的密钥。
IPSec可以为数据提供保密性,数据完全性,数据源验证,抗重播,访问控制等一系列功能。
由于IPSec在网络层上实现,所以基于传输层的TCP,UDP的应用都可以被IPSec所保护。
IPSec不局限于任何一个单独的协议和特定的算法,最新的技术协议和算法都可以引入到IPSec体系机构中,扩展性很好。
IPSec可以在路由器上实现,也可以在主机上实现,也可以在防火墙上实现,更可以使用专用的VPN硬件实现。
根据不同的需求,可以制定不同的方案,灵活多变[11]。
IPSec其协议体系由于过于复杂,部署不是这么方便,由于加密和计算摘要等会耗费大量的系统硬件资源,计算时间也给传输带来了延迟,目前还支持不了组播,只能应用于PPP协议,所以还是有比较多的局限性的。
4.3IPSec关键概念
4.3.1安全关联
安全关联(SecurityAssociations)是为了让同一数据流,也就是相同源和目的IP的数据数据包获取单向的相同的安全服务。
可以是基于AH协议或者基于ESP协议的,创建单向的安全关联,也就是发送方向接收方创建单向的安全服务关联源和目的地址。
但是如果是同一数据流同时使用AH协议和ESP协议的话,则需要建立双向的安全关联。
4.3.2安全关联数据库
安全关联数据库(SecurityAssociationsDatabase)是用来存放与安全关联相关联的的所有的状态数据。
4.3.3安全参数索引
安全参数索引(SecurityhParametersIndex)是一个被依附在AH或者是ESP报头中的32bit的数值字段,其用途是在接收端识别数据流到安全关联的绑定关系。
4.3.4安全策略数据库
安全策略数据库(SecurityPolicyDatabase)是决定数据包会使用哪种安全服务及如何获得服务的数据结构。
4.3.5安全关联注意事项
一个安全关联是由一个安全参数索引,IP目的地址和AH或者ESP的安全协议标示符组成的一个32比特的数值。
安全关联可以是手动配置的,也可以是由IKE自动协商的。
手动配置安全关联是用户在需要配置IPSec的两端手动配置一些参数,在匹配协商通过后即建立安全关联。
IKE自动协商安全关联,所有操作都由IKE协议成为维护,使用两端的安全策略数据库匹配协商,建立安全关联不需要用户干预协商。
手工配置安全关联时,需要手工去指定安全参数索引的值,不同的安全关联也必须使用不同的安全参数索引。
如果使用IKE自动配置安全参数索引就会随机生成,也就不存在两个安全参数索引会相同的情况[12]。
4.4IPSec出入站包处理流程
4.4.1出站包处理流程
图41
如图41所示,数据包出站要从某个配置了IPSec的路由器接口转发之前,需要经过3个步骤。
首先要先查找对应的安全策略数据库。
会有丢弃,旁路安全服务或者是提供安全服务这样三种操作。
如果是找到对应的安全策略,就执行第三个提供安全服务的操作。
系统再从安全关联数据库中去查找相应的IPSec安全关联。
如果找到相对应的IPSec安全关联,就使用此安全关联的参数对数据包提供安全服务后再进行相应的转发。
如果找不到响应的IPSec安全关联,此时就需要系统为其创建一个新的IPSec安全关联。
系统再继续查找IKE安全关联数据库,来查找一个适用的IKE安全关联来为IPSec安全关联提供相应的安全服务。
如果可以查找到IKE安全关联,则使用这个IKE安全关联去协商IPSec安全关联,如果没有找到则系统需要为其创建一个IKE安全关联进行协商IPSec安全关联。
4.4.2入站包处理流程
图42
如图42所示,数据包入站在到达某个配置了IPSec接口之前,首先需要判定目的地址是否是本地地址,如果目的地址不是本地地址,则继续转发。
如果是本地地址,再进行相应的IPSec匹配。
如果此数据包不是被IPSec保护的,则提交上层处理,如果是被IPSec保护的,则进行以下步骤。
首先系统会提取此数据包相应的安全参数索引,IP地址和协议类型等信息,查找相应的IPSec安全关联。
再根据安全关联的协议标示符,选择合适的协议AH或者ESP协议对原数据包进行解封装,得到原始的IP数据包。
根据原始IP数据包,再对目的地址进行判定处理,进行转发或者转交上层处理操作。
4.5IPSec工作模式
IPSec协议有两个安全协议,这两个安全协议又分别有两种工作模式。
分别是隧道模式和传输模式。
4.5.1隧道模式
隧道模式是直接建立在两个安全网关之间的,数据包在这两个安全网关直接传输都可以受到IPSec的保护[13]。
如图43所示,整个IP数据包都会被用来计算AH或者ESP头后再进行数据加密,再将处理后的数据包加上AH或者ESP头再封装到新的IP数据包中。
隧道模式中,加解密和安全协商是由安全网关来完成的,对于主机来说这些操作是透明的。
安全网关可以是路由器,防火墙或者专用的VPN设备。
图43
4.5.2传输模式
传输模式是在两台主机之间建立的,数据包从发送到接收的所有路径都受到保护。
如图44所示,传输模式提供的是终端到终端的安全隧道,加解密和安全协商都是由主机来完成的,网络设备只是将报文按照正常流程进行转发。
图44
4.6IPSec安全协议
IPSec安全协议有两个主要协议,分别是AH(AuthenticationHeader)认证头协议和ESP(EncapsulateSecurityPayload)封装安全载荷协议。
4.6.1AH