基于IPsec的网络安全访问技术.docx
《基于IPsec的网络安全访问技术.docx》由会员分享,可在线阅读,更多相关《基于IPsec的网络安全访问技术.docx(33页珍藏版)》请在冰豆网上搜索。
基于IPsec的网络安全访问技术
基于Ipsec的网络安全访问技术
摘要
随着Internet在社会各个领域的不断推广,尤其是它在金融贸易、公司企业
和政府机关等领域的应用逐渐增多;再加上骇人听闻的“网络黑客”事件时有发
生,使得曾经被我们忽视了的“网络安全”正日益受到业界的关注和重视。
造成
Internet网络不安全局面的原因很多,网络攻击和非法入侵的手段也很多;但是
究其根本原因,都与Internet网络的信息传输方式和运行机制密切相关。
Internet网络所采用的是没有安全保障的TCP/IP协议,其以明文方式传输的信息完全可能被伪造、篡改或偷窥,信息的完整性、机密性和真实性等得不到保证。
IPSec安全协议体系的制定,弥补了现有TCP/IP协议安全性的不足;而基于IPSec的网络安全访问技术则有效地保证了IP网络的安全访问。
这正是本文讨论的焦点。
本文针对网络安全访问技术的发展趋势,对IPv6引入的IP层安全机制---IPsec的体系结构、认证机制、加密机制进行研究。
研究了IPSec网络安全体系的原理,并据此提出并归纳了基于IPSec的三种网络安全访问方案。
【关键字】
网络安全访问,Internet安全体系结构,IPsec,AH,ESP,VPN
Abstract
WiththepopularizationofInternetinmanyfields,especiallysuchasfinance,
commerce,enterpriseandgovernmentorganizations,moreandmoreapplicationof
Internethasbeenadopted.Andweoftenheardsomebadnewsabouthackersand
crackers,whohadbrokenintocomputersandsystemsagain.Sothesecurityofnetworkismoreimportantnowadays,anditisbecomingafocusofInternet.Whyis
Internetsofrangible?
Afteranalyzingmanyeventsofnetworkattacksandinvalid
intrusions,wefoundthatthefrangibilityofInternetisduetoinsecurityintransportof
IPpackets.
Asyouknow,InternetnowadaysbasesonthesuiteofTCP/IPprotocols,whichis
insecurebyitself.ForalltheIPpacketsaretransportedinplaintext,whichcouldbe
sniffedandinterceptedeasily.Inordertoprovidesecurityservicesfortrafficon
Internet,theIPSecprotocolswasofferedbyIPSecWorkingGroupinthelate1990’s.
ThesuiteofIPSeccouldbeappliedinsecurenetworkaccess,whichprovidesintegrity,dataoriginauthentication,confidentialityandothersecurityservicesfortrafficatIPlayer.
IPsec-IPlayersecuritysystemisdrawnintoIPv6.Itssystemarchitecture,authenticationarestudiedinthispaper.AfterstudyingtheSecurityarchitectureforinternet,wesuggestthreemoreeffectivemethod,securenetworkaccessbasedonIPSec.
【KeyWords】
SecureNetworkAccess,Securityarchitectureforinternet,IPsec,AH,ESP,VPN
引言
如今妇孺皆知的Internet是一个全球性的网络,它起源于20世纪60年代末
美国的ARPANET网络。
ARPANET是由美国国防部“高级研究计划署(AdvancedResearchProjectsAgency,ARPA)”领导开发的一个研究项目,其目的就是建立一个分布式的、存活力强的全国性网络系统,保证在发生战争的情况下,整个网络不会因为局部地区的打击受损而瘫痪。
最早的ARPANET主要是为了方便大学、军队和国家实验室之间的相互通信而建设的,随着网络规模的不断扩大,原来的ARPANET网络逐渐分割成两个部分:
MILNET(军队网)和ARPANET(名字未变),前者用于军事通信,后者继续作为一种科研工具使用。
到了80年代初,人们为ARPANET引入了一种通信协议标准,它就是TCP/IP
协议(实际上是一个协议族)。
因为TCP/IP能够很好地解决逻辑编址、路由选择、名字服务、错误检查和流量控制等网络互联最为棘手的问题,而且TCP/IP本身也比较简单,实现起来比较容易;所以TCP/IP协议的出现和被引用,极大地促进了ARPANET的发展,愈来愈多的学校、科研机构等接入到了原有的ARPANET网络,这是Internet的雏形。
因此,有时候人们认为Internet的最早出现应该算是在80年代初。
随着TCP/IP协议在UNIX操作系统中的实现,TCP/IP协议和UNIX系统相
互促进,结果是UNIX操作系统日益流行,TCP/IP协议得到了广泛接受。
同样,
以TCP/IP协议为基础的Internet也得到了飞速发展。
但是,经过了Internet的最
初发展阶段之后,尤其是在越来越多的商业网络接入Internet之后,人们发现
Internet存在严重的的网络安全问题。
这是因为,在Internet发展初期,网络连接的简单性、可行性、开放性和兼容性是网络设计者重点考虑的问题,而网络传输的安全性倒因为时机不成熟而遭到了忽略;更重要的是,很久以来人们认为安全性议题在网络协议栈的低层并不重要,应用安全性的责任仍交给应用层。
因此,
像这样没有IP安全协议体系作保障的Internet网络,其传输过程中的IP数据包
完全可能被伪造、篡改或偷窥,信息的完整性、机密性、真实性和信息发送者的
不可抵赖性得不到保证。
但是,随着Internet在社会生活中的逐渐渗透,Internet
应用的不断丰富,人们对Internet的依赖性将越来越大;许多个人机密信息,如
进行网络上交易的信用卡卡号和密码、个人医疗记录等,商业机密信息,如员工
考核数据、产品研究计划等都需要在Internet上传播,所有这一切都要求Internet
有一个足够安全的网络环境。
可以说,Internet网络安全性问题已经成了Internet继续发展的严重阻碍。
在意识到Internet所使用的TCP/IP协议存在严重的协议安全性之后,IETF
于1993年3月专门成立了一个IPSec工作组,负责开发和制定既适用于现有IPv4网络环境,又适用于下一代IPv6网络环境的Internet层安全机制标准,这就是下面将要重点介绍的IPSec。
Internet安全标准——IPSec
IPSec作为新一代互联网安全标准,最早是由IETF下属的IPSec工作组于成立之初的1993年正式提出的,在此之后的发展过程中,相继推出了一系列的
Drafts草案和RFC文档,如1995年8月发布的RFC1825、RFC1826、RFC1827。
最终,到1998年12月RFC2401、RFC2402、RFC2406、RFC2408、RFC2409
等系列文档的发布,标志着IPSec总体框架已经基本确定。
这对弥补现有Internet
协议安全性的不足、促进Internet网络安全性的提高具有非常重要的意义。
注:
RFC1825是关于IP安全体系结构的RFC文档,其中RFC2401是
RFC1825的替代版本。
RFC1826是关于IP验证头的RFC文档,其中RFC
2402是RFC1826的替代版本。
RFC1827是关于IP封装安全载荷的RFC文
档,其中RFC2406是RFC1827的替代版本。
至于,RFC2408、RFC2409
是有关Internet密钥交换的RFC文档。
2.1什么是IPSec?
IPSec是IETF专门为提高Internet的协议安全性而制定的IP安全标准,实
际上,它是一种协议套件(或者说协议组),可以“无缝”地为IP提供安全特性,如提供访问控制、数据源的身份验证、数据完整性检查以及机密性保证等安全机制,以及提供抗重播攻击服务(anti-replyservice)。
在IPSec工作组向IETF提交的RFC2401文档中,详细定义了IPSec的安全
体系结构,明确了IPSec的目的、原理和相关的处理过程,描述了安全联盟
(SecurityAssociations,SA)的定义、工作原理和相关处理过程。
简而言之,IPSec
通过所定义的一整套完善的安全机制,在验证头(AH)和封装安全载荷(ESP)
安全协议的支持下,为IPv4和IPv6网络环境下的IP层流量数据提供各种安全
服务。
注:
跟TCP/IP一样,IPSec实际上是一种协议套件,包含了一系列相关
的安全协议。
该套件内的每一种协议通常都统称为“IPSec”(验证头、封装
安全载荷以及Internet密钥交换等)。
2.2IPSec安全协议体系
IPSec是一个复杂的安全协议体系,它包括各种不同的IPSec组件、各组件
之间的交互过程。
下面将就组成IPSec的各个组件、各组件之间的运作机制等进
行说明。
2.2.1IPSec的体系结构
IPSec协议是IETF的IPSec工作组通过一系列的RFC文档来定义的。
归纳起来,IPSec协议主要包括:
AH(验证头)、ESP(封装安全载荷)、IKE(Internet
密钥交换)、ISAKMP/Oakley以及强制转码类型等相关组件。
这些组件之间的交
互方式如图2-1所示
图2-1IPSec协议的体系结构
事实上,IPSec协议通过以上组件的定义,给出了一个网络层的IP安全框架。
例如,它讨论了IPSec协议的语义,以及IPSec协议套件同TCP/IP协议套件之间如何进行交互沟通的问题。
ESP和AH协议文档,定义了各自的协议、载荷头的格式以及他们所提供的服务。
此外,它们还定义了安全IP数据包的处理规则。
但是,它们没有指定用来实现这些功能的具体转码方式。
其原因是:
只有证明了旧转码方式采用的算法不安全时,才需要定义新的转码方式。
这种在基本协议中不定义转码方式,把基本协议跟转码方式想分离方式,使得协议本身更加灵活。
转码方式定义了如何对数据进行转换,以确保它的安全。
其中包括算法、密
钥大小(以及它们如何演变)、转码程序以及算法专用的任何信息。
对必要的信
息来说,确保它们的唯一性显得尤其重要,只有这样才能使不同的实施方案相互
间能够操作。
让我们用为ESP定义的DES-DBC转码方式为例。
如果没有指
定“初始化矢量(InitializationVector)”的派生方式,两种实施方案最终就会以不同的方式派生出初始化矢量,而且它们将永远不能相互操作。
IKE(Internet密钥交换)和ISAKMP/Oakley,用来为IPSec协议生成密钥。
实际上,IKE的载荷格式非常一般,它可为任何一种协议商拟密钥,并不仅仅限于IPSec的密钥协商。
这是通过将IKE协商的参数同协议本身分隔开来实现的。
协商的参数被归于一个单独的文档内,名为IPSec解释域,或者IPSecDOI。
另外一个尚未成为标准的重要组件是“策略”。
策略是一个非常重要的问题,
因为它决定了应用于IP数据包的安全服务以及如何对数据包进行处理。
与策略
有关的问题分别是“表示”与“实施”。
其中,“表示”负责策略的定义、存储和获取。
IETF目前正在定义策略标准。
“实施”强调的则是策略在实际通信中的应用。
非常重要的一点是,由密钥管理协议建立的密钥必须正确地应用于通信。
同样重要的是,我们必须应用恰当的过滤器和规则。
2.2.2IPSec的实现模式
IPSec协议支持两种实现模式,即传送模式和通道模式。
如果把这两种模式
跟IPSec的两种安全协议ESP和AH想结合,总共可以产生四种不同的组合:
传
送模式中的ESP、传送模式中的AH、通道模式中的ESP和通道模式中的AH。
☆传送模式
在传送模式中,AH和ESP保护的是传送头,它们拦截从传输层到网络层的数据包,并根据具体的配置提供安全保护。
为了更加具体地了解IPSec的传送模式,我们通过一个具体的实例来说明,
如图2-2所示。
为了在主机A和主机B之间提供端到端的安全保障,我们可以
使用ESP的“传送”模式来实现IP数据包的加密;当然,如果只是想对IP数据
包的数据源进行验证,就可以使用AH的“传送”模式。
图2-2实施IPSec传送模式的主机之间的端到端通信
如果没有实施安全保护,传输层(如TCP或UDP)的数据流在通过网络层
(IP层)的时候,IP会在其上增加IP头,然后再传到数据链路层。
如果起用了IPSec传送模式进行安全保护,传输层的数据流就会流经IPSec相关组件,增加相应的ESP头或AH头,或者两者都增加,然后在此基础上,IP再为其增加相应的IP头。
如图2-3所示。
图2-3没有使用安全保护和使用了传送模式安全保护的IP数据包格式
理解IPSec的传送模式,需要注意两点。
首先,只有在要求端到端的安全保
障的时候,才使用IPSec的传送模式。
因为路由器主要通过检查网络层来作出路
由决定,而且路由器不会、也不应该改变网络层头之外的其它东西。
如果通过路
由器为IP数据包插入传送模式的IPSec头,便违反了这一规则。
其次,在同时使用AH和ESP的时候,合理的次序是很重要的。
首先应该
应用ESP,然后才应用AH。
道理很简单,如果先用AH保护传送的数据包,再
用ESP的话,由AH提供的数据完整性便只能适用于传送载荷,因为ESP头是
在以后增添的。
这并不是我们所期望的结果,因为数据的完整性应以尽可能多的
数据为基础计算出来。
☆通道模式
在更多情况下,终端主机并不支持IPSec,或者说用户嫌麻烦而不愿在终端
主机上应用IPSec。
对此,我们通常采用一个专门的设备来提供数据包的安全保
障,而且该设备并不是数据包的始发点,它只对数据包进行加密保护,并把它传
送到另一个目的地(例如采用VPN来提供安全保障)。
这种情况,我们所采用的就是IPSec的通道模式。
IPSec通道模式的典型应用如图2-4所示。
路由器(或安全网关)为自己转
发的数据包提供安全服务。
图2-4IPSec通道模式的典型应用
路由器(或安全网关)为需要提供安全服务的每个数据包重新进行封装,在
原来数据包的基础上增加了一个IPSec头(主要是ESP头,因为我们一般不使用
AH的“通道”模式)。
如图2-5所示。
图2-5IPSec通道模式下的IP数据包格式
可以看到IPSec通道模式下的IP数据包有两个IP头,一个内部头和一个外
部头。
其中,内部IP头有始发点的主机创建;而外部IP头,则由提供安全服务
的那个设备(路由器或安全网关)根据具体情况来创建。
这样经过IPSec通道模式安全处理的数据包,在到达通道的另一端时(比如
图3-4中,数据包经过安全处理后从RA到达RB),再按照要求去掉外部IP头,
然后把数据包起始点创建的数据包原原本本地传送到目的地。
这里讨论的只是IPSec通道模式的最简单情况。
其实,IPSec同时为ESP和
AH定义了通道模式,而且支持嵌套通道。
2.2.3安全联盟
安全联盟(SecurityAssociation,IPSec术语,常简称为SA)是构成IPSec
的基础。
SA是两个通信实体经协商建立起来的一种协定。
它们决定了用来保护
数据包安全的IPSec协议、转码方式、密钥以及密钥的有效存活时间等等。
任何
IPSec实施方案始终会构建一个SA数据库(SADB),由它来维护IPSec协议用来保障数据包安全的SA记录。
首先,SA是单向的,换言之,它的设计非常简化。
如果两个主机(比如A
和B)正在通过ESP进行安全通信,那么主机A就需要有一个SA,即SA(out),
用来处理外发的数据包;另外还需要有一个不同的SA,即SA(in),用来处理
进入的数据包。
主机A的SA(out)和主机B的SA(in)将共享相同的加密参
数(比如密钥)。
类似地,主机A的SA(in)和主机B的SA(out)也会共享同
样的加密参数。
由于SA是单向的,所以针对外发和进入处理使用的SA,分别
需要维护一张单独的(数据)表。
其次,SA是“与协议相关”的。
每种协议都有一个SA。
如果主机A和B
同时通过AH和ESP进行安全通信,那么每个主机都会针对每一种协议来构建
一个独立的SA。
最后,SA需要与安全策略相联系,联合使用。
策略是IPSec结构中非常重
要的一个组件。
它定义了两个实体之间的安全通信特性;定义了在什么模式下使
用什么协议;还定义了如何对待IP数据包。
所有的安全策略都保存在“安全策
略数据库(SPD)”中,SA通过与SPD的交互,来实现IP数据包的封装处理。
☆安全参数索引
安全参数索引(IPSec术语,常称SPI),是一个长度为32位的数据实体,用于独一无二地标识出接收端上的一个SA。
在IPSec中,安全场景(Context)或者SA是两个主机秘密通信的一种协定,它决定了像密钥和加密算法这样的参数。
然而,我们必须采用某种机制,让通信源指出用哪个SA来保护数据包;而对通信的目的地来说,则需指出用哪个SA来检查收到的包是否安全。
数据源用“选择符”来标识SA。
然而,目的地却不能访问到选择符内的所有字段,因为选择符内的部分字段从属于传送层。
那么,要怎样才那个解决在目的地(目标主机)上标识SA的问题呢?
解决
的办法是,随每个数据包一道,需要发送一个SPI,以便将SA独一无二地标识
出来。
目标主机再利用这个值,对接收段SADB数据库进行检索,提取出适当
的SA。
但这种做法也存在一个显而易见的问题:
由谁来保证SPI和SA之间映
射的唯一性呢?
而且对每一种协议来说,这种“唯一性”的范围是什么呢?
全局、
按源主机还是按主机上的地址呢?
事实上,要由接收端/目标主机来保证这种独
一无二的性质(唯一性)。
针对每种协议,都有必要维护一个独立的SPI域。
目
标主机可利用任何一种“连贯性”机制,来确保每个域内的唯一性。
根据IPSec
协议文档的规定,在数据包内,应独一无二地标识出一个SA。
接收端会对在发送端上作为SA一部分保存的SPI进行分配。
接收端可用它
唯一地标识出一个SA。
基于这一假定,发送端会在它发出的每个包中把它包括
进来。
假如接收端不能保证唯一性,数据包便通不过安全检查,这也许是由于使
用了无效的密钥和转码方式造成的。
发送主机根据选择符对发送SADB数据库进行检索。
检索操作的输出便是
一个SA,其中已协商好所有安全参数—包括SPI。
负责分配SPI的主机也要担
保其唯一性。
一旦SA过期,SPI便会重新使用,但要保证在每一点上〈spi,dst〉
能匹配,而且SA是一一对应的。
假如主机属于多宿主类型的(换言之,一个主
机含有多个IP接口),便需使用源地址。
假如系统上插有多张网卡,或者在同一张网卡上配置了多个IP接口(亦即主机有多个IP地址),便会出现这样的情况。
在这种情况下,索引或许会失去其唯一性,所以要用源地址(src)
来加一道保险,对此作进一步的澄清。
总结起来,SPI被当作AH和ESP头的一部分传送。
接收主机使用protocol>这个字元组来唯一地标识SA(其中,dst是IP头中的目的地址;而
protocol代表协议)。
此外,除了之外,还有可能加上一个源地址(src),来唯一标定一个SA,以节省SPI空间。
然而,这不能算是标准的一部分,而且多少要受一种具体地实施方案的制约。
☆选择符
选择符(Selector,IPSec术语)是从网络层和传输层中提取出来的一些字段,用来决定对什么样的IP数据包实施AH或ESP安全保护。
在IPSec协议文档中定义的选择符包括数据包的源地址、目的地址、协议、上层端口以及名字。
其中,源地址可以是一个通配符、一个地址范围、一个网络前缀或者一个主
机地址。
网络前缀和地址范围主要应用于通道模式,以便对适用于某安全策略的
所有主机的IP数据包实施安全保护。
而通配符,在对来自同一源主机的所有IP
数据包都采用同样安全策略地情况下,提供了极大的方便性。
目的地址也可以是一个通配符、一个地址范围、一个网络前缀或者一个主机
地址。
其中,通配符、地址范围和网络前缀适用于隐藏在安全网关后面的所有主
机。
需要注意的是,对通道模式的IPSec安全保护,外部IP头与内部IP头可以
不一样,而安全网关的策略是根据IP数据包的真正目的地址(也就是内部IP头
的目的地址)来设定的,最终也要使用这一地址对SPD进行索引。
协议是指传输层协议,不过要求传输层协议可以被访问。
因为在使用了ESP
安全保护之后,传输层协议便无法访问,此时就需要使用通配符了。
在面向会话的密钥交换时,上层端口代表了源端口和目的端口,同时也代表
了相应的应用协议。
如果端口不能访问,也需要使用通配符来代替。
名字字段,是一个用来标识与一名有效用户或者系统名称相关联的某一安全
策略,它包括DNS名、X.500区分名,以及在IPSec解释域(IPSecDOI)中定
义的其它名字类型。
注意,名字字段只有在IKE协商期间才作为一个选择符使
用,在数据包处理期间,不能使用名字字段作为选择符,因为目前还无法把一个
名字跟特定的IP地址结合在一起。
☆安全策略
安全策略决定了为一个数据包提供的安全服务。
对所有IPSec实施方案来说,
它们都会将策略保存在一个数据库中,这个数据库名为SPD(安全策略数据库)。
我们根据“选择符”