计算机网络安全基础-第10章.ppt
《计算机网络安全基础-第10章.ppt》由会员分享,可在线阅读,更多相关《计算机网络安全基础-第10章.ppt(100页珍藏版)》请在三一办公上搜索。
1、第10章 IPSec,10.1 IPSec安全体系结构10.2 IPSec安全协议AH10.3 IPSec安全协议ESP10.4 ISAKMP协议10.5 IKE协议10.6 本章小结习题,IPSec(IP Security)是一种由IETF设计的端到端的确保IP层通信安全的机制。IPSec不是一个单独的协议,而是一组协议,这一点对于我们认识IPSec是很重要的。IPSec协议的定义文件包括了12个RFC文件和几十个Internet草案,已经成为工业标准的网络安全协议。,10.1 IPSec安全体系结构 10.1.1 IPSec的概念,IPSec是随着IPv6的制定而产生的,鉴于IPv4的应用
2、仍然很广泛,所以后来在IPSec的制定中也增加了对IPv4的支持。IPSec在IPv6中是必须支持的,而在IPv4中是可选的。本章中提到IP协议时是指IPv4协议。IP协议在当初设计时并没有过多地考虑安全问题,而只是为了能够使网络方便地进行互联互通,因此IP协议从本质上就是不安全的。仅仅依靠IP头部的校验和字段无法保证IP包的安全,修改IP包并重新正确计算校验和是很容易的。如果不采取安全措施,IP通信会暴露在多种威胁之下,下面举几个简单的例子。,(1)窃听一般情况下IP通信是明文形式的,第三方可以很容易地窃听到IP数据包并提取出其中的应用层数据。“窃听”虽然不破坏数据,却造成了通信内容外泄,甚
3、至危及敏感数据的安全。(2)篡改攻击者可以在通信线路上非法窃取到IP数据包,修改其内容并重新计算校验和,数据包的接收方一般不可能察觉出来。作为网络通信用户,即使并非所有的通信数据都是高度机密的,也不想看到数据在传输过程中有任何差错。,(3)IP欺骗在一台机器上可以假冒另外一台机器向接收方发包。接收方无法判断收到的数据包是否真的来自该IP包中所声称的源IP地址。(4)重放攻击法搜集特定的IP包,进行一定的处理,然后再一一重新发送,欺骗接收方主机。,IP协议之所以如此不安全,就是因为IP协议没有采取任何安全措施,既没有对数据包的内容进行完整性验证,又没有进行加密。如今,IPSec协议可以为IP网络
4、通信提供透明的安全服务,保护TCP/IP通信免遭窃听和篡改,保证数据的完整性和机密性,有效抵御网络攻击,同时保持易用性。表10-1列出了与IPSec相关的RFC,如果想进一步了解IPSec的某些内容,请参考相关的网址。,表 101 定义IPSec协议族的各RFC,IPSec具有以下功能:(1)作为一个隧道协议实现了VPN通信IPSec作为第三层的隧道协议,可以在IP层上创建一个安全的隧道,使两个异地的私有网络连接起来,或者使公网上的计算机可以访问远程的企业私有网络。这主要是通过隧道模式实现的,有关传输模式和隧道模式参见小节。,10.1.2 IPSec的功能,(2)保证数据来源可靠在IPSec通
5、信之前双方要先用IKE认证对方身份并协商密钥,只有IKE协商成功之后才能通信。由于第三方不可能知道验证和加密的算法以及相关密钥,因此无法冒充发送方,即使冒充,也会被接收方检测出来。(3)保证数据完整性IPSec通过验证算法功能保证数据从发送方到接收方的传送过程中的任何数据篡改和丢失都可以被检测。(4)保证数据机密性IPSec通过加密算法使只有真正的接收方才能获取真正的发送内容,而他人无法获知数据的真正内容。,IPSec众多的RFC通过如图10.1所示的关系图组织在一起。,10.1.3 IPSec体系结构图,图10.1 IPSec体系结构,从图10.1中可以看出,IPSec包含了3个最重要的协议
6、:AH、ESP和IKE。(1)AH为IP数据包提供如下3种服务:无连接的数据完整性验证、数据源身份认证和防重放攻击。数据完整性验证通过哈希函数(如MD5)产生的校验来保证;数据源身份认证通过在计算验证码时加入一个共享密钥来实现;AH报头中的序列号可以防止重放攻击。,(2)ESP除了为IP数据包提供AH已有的3种服务外,还提供另外两种服务:数据包加密、数据流加密。加密是ESP的基本功能,而数据源身份认证、数据完整性验证以及防重放攻击都是可选的。数据包加密是指对一个IP包进行加密,可以是对整个IP包,也可以只加密IP包的载荷部分,一般用于客户端计算机;数据流加密一般用于支持IPSec的路由器,源端
7、路由器并不关心IP包的内容,对整个IP包进行加密后传输,目的端路由器将该包解密后将原始包继续转发。AH和ESP可以单独使用,也可以嵌套使用。通过这些组合方式,可以在两台主机、两台安全网关(防火墙和路由器),或者主机与安全网关之间使用。,(3)IKE协议负责密钥管理,定义了通信实体间进行身份认证、协商加密算法以及生成共享的会话密钥的方法。IKE将密钥协商的结果保留在安全联盟(SA)中,供AH和ESP以后通信时使用。最后,解释域(DOI)为使用IKE进行协商SA的协议统一分配标识符。共享一个DOI的协议从一个共同的命名空间中选择安全协议和变换、共享密码以及交换协议的标识符等,DOI将IPSec的这
8、些RFC文档联系到一起。,1.安全联盟(SA)理解SA这一概念对于理解IPSec是至关重要的。AH和ESP两个协议都使用SA来保护通信,而IKE的主要功能就是在通信双方协商SA。SA(Security Association,安全联盟)是两个IPSec实体(主机、安全网关)之间经过协商建立起来的一种协定,内容包括采用何种IPSec协议(AH还是ESP)、运行模式(传输模式还是隧道模式)、验证算法、加密算法、加密密钥、密钥生存期、抗重放窗口、计数器等,从而决定了保护什么、如何保护以及谁来保护。可以说SA是构成IPSec的基础。,10.1.4 安全联盟和安全联盟数据库,SA是单向的,进入(inbo
9、und)SA负责处理接收到的数据包,外出(outbound)SA负责处理要发送的数据包。因此每个通信方必须要有两种SA,一个进入SA,一个外出SA,这两个SA构成了一个SA束(SA Bundle)。SA的管理包括创建和删除,有以下两种管理方式。(1)手工管理:SA的内容由管理员手工指定、手工维护。但是,手工维护容易出错,而且手工建立的SA没有生存周期限制,一旦建立了,就不会过期,除非手工删除,因此有安全隐患。,(2)IKE自动管理:一般来说,SA的自动建立和动态维护是通过IKE进行的。利用IKE创建和删除SA,不需要管理员手工维护,而且SA有生命期。如果安全策略要求建立安全、保密的连接,但又不
10、存在与该连接相应的SA,IPSec的内核会立刻启动IKE来协商SA。每个SA由三元组SPI,源/目的IP地址,IPSec协议惟一标识,这3项含义如下:SPI(Security Parameter Index,安全参数索引)是32位的安全参数索引,标识同一个目的地的SA。源/目的IP地址:表示对方IP地址,对于外出数据包,指目的IP地址;对于进入IP包,指源IP地址。IPSec协议:采用AH或ESP。,2.安全联盟数据库(SAD)SAD(Security Association Database,安全联盟数据库)并不是通常意义上的“数据库”,而是将所有的SA以某种数据结构集中存储的一个列表。对于
11、外出的流量,如果需要使用IPSec处理,然而相应的SA不存在,则IPSec将启动IKE来协商出一个SA,并存储到SAD中。对于进入的流量,如果需要进行IPSec处理,IPSec将从IP包中得到三元组,并利用这个三元组在SAD中查找一个SA。,SAD中每一个SA除了上面的三元组之外,还包括下面这些内容。(1)本方序号计数器:32位,用于产生AH或ESP头的序号字段,仅用于外出数据包。SA刚建立时,该字段值设置为0,每次用SA保护完一个数据包时,就把序列号的值递增1,对方利用这个字段来检测重放攻击。通常在这个字段溢出之前,SA会重新进行协商。(2)对方序号溢出标志:标识序号计数器是否溢出。如果溢出
12、,则产生一个审计事件,并禁止用SA继续发送数据包。,(3)抗重放窗口:32位计数器,用于决定进入的AH或ESP数据包是否为重发的。仅用于进入数据包,如接收方不选择抗重放服务(如手工设置SA时),则不用抗重放窗口。(4)AH验证算法、密钥等。(5)ESP加密算法、密钥、IV(Initial Vector)模式、IV等。如不选择加密,该字段为空。(6)ESP验证算法、密钥等。如不选择验证,该字段为空。,(7)SA的生存期:表示SA能够存在的最长时间。生存期的衡量可以用时间也可以用传输的字节数,或将二者同时使用,优先采用先到期者。SA过期之后应建立一个新的SA或终止通信。(8)运行模式:是传输模式还
13、是隧道模式。(9)PMTU:所考察的路径的MTU及其TTL变量。,SP(Security Policy,安全策略)指示对IP数据包提供何种保护,并以何种方式实施保护。SP主要根据源IP地址、目的IP地址、入数据还是出数据等来标识。IPSec还定义了用户能以何种粒度来设定自己的安全策略,由“选择符”来控制粒度的大小,不仅可以控制到IP地址,还可以控制到传输层协议或者TCP/UDP端口等。SPD(Security Policy Database,安全策略数据库)也不是通常意义上的“数据库”,而是将所有的SP以某种数据结构集中存储的列表。,10.1.5 安全策略和安全策略数据库,当要将IP包发送出去
14、时,或者接收到IP包时,首先要查找SPD来决定如何进行处理。存在3种可能的处理方式:丢弃、不用IPSec和使用IPSec。(1)丢弃:流量不能离开主机或者发送到应用程序,也不能进行转发。(2)不用IPSec:对流量作为普通流量处理,不需要额外的IPSec保护。(3)使用IPSec:对流量应用IPSec保护,此时这条安全策略要指向一个SA。对于外出流量,如果该SA尚不存在,则启动IKE进行协商,把协商的结果连接到该安全策略上。,IPSec有两种运行模式:传输模式(Transport Mode)和隧道模式(Tunnel Mode)。AH和ESP都支持这两种模式,因此有4种可能的组合:传输模式的AH
15、、隧道模式的AH、传输模式的ESP和隧道模式的ESP。,10.1.6 IPSec运行模式,1.IPSec传输模式传输模式要保护的内容是IP包的载荷,可能是TCP/UDP等传输层协议,也可能是ICMP协议,还可能是AH或者ESP协议(在嵌套的情况下)。传输模式为上层协议提供安全保护。通常情况下,传输模式只用于两台主机之间的安全通信。正常情况下,传输层数据包在IP中被添加一个IP头部构成IP包。启用IPSec之后,IPSec会在传输层数据前面增加AH或者ESP或者二者同时增加,构成一个AH数据包或者ESP数据包,然后再添加IP头部组成新的IP包。,以TCP协议为例,应用IPSec之后包的格式有下面
16、3种可能(阴影表示新增的部分)。应用AH:IPAHTCP应用ESP:IPESPTCP应用AH和ESP:IPAHESPTCP,2.IPSec隧道模式隧道模式保护的内容是整个原始IP包,隧道模式为IP协议提供安全保护。通常情况下,只要IPSec双方有一方是安全网关或路由器,就必须使用隧道模式。如果路由器要为自己转发的数据包提供IPSec安全服务,就要使用隧道模式。路由器主要依靠检查IP头部来做出路由决定,不会也不应该修改IP头部以外的其他内容。如果路由器对要转发的包插入传送模式的AH或ESP头部,便违反了路由器的规则。,路由器将需要进行IPSec保护的原始IP包看作一个整体,将这个IP包作为要保护
17、的内容,前面添加AH或者ESP头部,然后再添加新的IP头部,组成新的IP包之后再转发出去。以ESP为例,示意如下。应用ESP:IPESPIP+TCPIPSec隧道模式的数据包有两个IP头:内部头和外部头。内部头由路由器背后的主机创建,外部头由提供IPSec的设备(可能是主机,也可能是路由器)创建。隧道模式下,通信终点由受保护的内部IP头指定,而IPSec终点则由外部IP头指定。如IPSec终点为安全网关,则该网关会还原出内部IP包,再转发到最终目的地。,AH(Authentication Header,验证头部协议)由RFC2402定义,是用于增强IP层安全的一个IPSec协议,该协议可以提供
18、无连接的数据完整性、数据来源验证和抗重放攻击服务。,10.2 IPSec安全协议AH 10.2.1 AH概述,AH协议对IP层的数据使用密码学中的验证算法,从而使得对IP包的修改可以被检测出来。具体地说,这个验证算法是密码学中的MAC(Message Authentication Codes,报文验证码)算法,MAC算法将一段给定的任意长度的报文和一个密钥作为输入,产生一个固定长度的输出报文,称为报文摘要或者指纹。MAC算法与HASH算法非常相似,区别在于MAC算法需要一个密钥(key),而HASH算法不需要。实际上,MAC算法一般是由HASH算法演变而来,也就是将输入报文和密钥结合在一起然后
19、应用HASH算法。这种MAC算法称为HMAC,例如HMACMD5、HMACSHA1、HMACRIPEMD160。,通过HMAC算法可以检测出对IP包的任何修改,不仅包括对IP包的源/目的IP地址的修改,还包括对IP包载荷的修改,从而保证了IP包内容的完整性和IP包来源的可靠性。为了使通信双方能产生相同的报文摘要,通信双方必须采用相同的HMAC算法和密钥。对同一段报文使用不同的密钥来产生相同的报文摘要是不可能的。因此,只有采用相同的HMAC算法并共享密钥的通信双方才能产生相同的验证数据。不同的IPSec系统,其可用的HMAC算法也可能不同,但是有两个算法是所有IPSec都必须实现的:HMAC-M
20、D5和HMAC-SHA1。,AH协议和TCP、UDP协议一样,是被IP协议封装的协议之一。一个IP包的载荷是否是AH协议,由IP协议头部中的协议字段判断,正如TCP协议是6,UDP协议是17一样,AH协议是51。如果一个IP包封装的是AH协议,在IP包头(包括选项字段)后面紧跟的就是AH协议头部,格式如图10.2所示。AH头部格式包括以下内容。,10.2.2 AH头部格式,图10.2 AH头部,(1)下一个头(Next Header)最开始的8位,表示紧跟在AH头部的下一个载荷的类型,也就是紧跟在AH头部后面数据的协议。在传输模式下,该字段是处于保护中的传输层协议的值,比如6(TCP)、17(
21、UDP)或者50(ESP)。在隧道模式下,AH所保护的是整个IP包,该值是4,表示IP-in-IP协议。(2)载荷长度(Payload Length)接下来的8位,其值是以32位(4字节)为单位的整个AH数据(包括头部和变长的认证数据)的长度再减2。(3)保留(reserved)16位,作为保留用,实现中应全部设置为0。,(4)SPI(Security Parameter Index,安全参数索引)SPI是一个32位整数,与源/目的IP地址、IPSec协议一起组成的三元组可以为该IP包惟一地确定一个SA。1,255保留为将来使用,0保留本地的特定实现使用。因此,可用的SPI值为256,232-
22、1。(5)序列号(Sequence Number)序列号是一个32位整数,作为一个单调递增的计数器,为每个AH包赋予一个序号。当通信双方建立SA时,计数器初始化为0。SA是单向的,每发送一个包,外出SA的计数器增1;每接收一个包,进入SA的计数器增1。该字段可以用于抵抗重放攻击。,(6)验证数据(Authentication Data)可变长部分,包含了验证数据,也就是HMAC算法的结果,称为ICV(Integrity Check Value,完整性校验值)。该字段必须为32位的整数倍,如果ICV不是32位的整数倍,必须进行填充,用于生成ICV的算法由SA指定。,AH有两种运行模式:传输模式和
23、隧道模式。1.AH运输模式在传输模式中,AH插入到IP头部(包括IP选项字段)之后,传输层协议(如TCP、UDP)或者其他IPSec协议之前。以TCP数据为例,图10.3表示了AH在传输模式中的位置。,10.2.3 AH运行模式,图10.3 AH传输模式,从图10.3可以看出,被AH验证的区域是整个IP包(可变字段除外,有关可变字段参见小节),包括IP包头部,因此源IP地址、目的IP地址是不能修改的,否则会被检测出来。然而,如果该包在传送的过程中经过NAT(Network Address Translation,网络地址转换)网关,其源/目的IP地址将被改变,将造成到达目的地址后的完整性验证失
24、败。因此,AH在传输模式下和NAT是冲突的,不能同时使用,或者可以说AH不能穿越NAT。,2.AH隧道模式在隧道模式中,AH插入到原始IP头部字段之前,然后在AH之前再增加一个新的IP头部。以TCP为例,图10.4表示了AH在隧道模式中的位置。,图10.4 AH隧道模式,隧道模式下,AH验证的范围也是整个IP包,因此上面讨论的AH和NAT的冲突在隧道模式下也存在。在隧道模式中,AH可以单独使用,也可以和ESP一起嵌套使用。,在应用AH进行处理时,相应的SA应该已经建立,因此AH所用到的HMAC算法和密钥已经确定。从上面的传输模式和隧道模式可以看出,AH协议验证的范围包括整个IP包,验证过程概括
25、如下:在发送方,整个IP包和验证密钥被作为输入,经过HMAC算法计算后得到的结果被填充到AH头部的“验证数据”字段中;在接收方,整个IP包和验证算法所用的密钥也被作为输入,经过HMAC算法计算的结果和AH头部的“验证数据”字段进行比较,如果一致,说明该IP包数据没有被篡改,内容是真实可信的。,10.2.4 数据完整性检查,在应用HMAC算法时,有一些因素需要考虑。在IP字段中,有一些是可变的,而且在传输过程中被修改也是合理的,不能说明该数据包是被非法篡改的。这些字段在计算HMAC时被临时用0填充,具本包括如下。ToS(Type of Service):8位的服务类型字段指出了延时、吞吐量和可靠
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 网络安全 基础 10

链接地址:https://www.31ppt.com/p-6606808.html