1第三章网络层安全协议2因特网与TCP/IP安全-1.TCP/IP协议栈•TCP/IP是一组通信协议的缩写•ISO/OSI模型及其与TCP/IP的关系3因特网与TCP/IP安全-2.互联网地址•互联网上每个接口必须有一个唯一的互联网地址(IP地址),长32bit,层次结构•32bit写成4个十进制数,点分十进制表示法4因特网与TCP/IP安全-3.协议封装•当应用程序用TCP/IP传送数据时,数据送入协议栈,通过各层,直到被当作一串比特流送入网络。5因特网与TCP/IP安全-4.IP协议6因特网与TCP/IP安全-5.TCP协议7因特网与TCP/IP安全-5.TCP协议•TCP安全缺陷-TCP连接的可靠性–初始化连接:三次握手,确保双方做好传输准备,统一序列号。SYN,SEQ=x主机BACK,SEQ=x+1,ACK=y1确认确认主机A连接请求8因特网与TCP/IP安全-5.TCP协议•TCP安全缺陷-TCP连接的可靠性9•安全缺陷-没有任何认证机制•TCP假定只要接受到的数据包含有正确的序列号就认为数据是可以接受的。一旦连接建立,服务器无法确定进入的数据包是否来自真实的机器。10IPSec协议-1概述•在发送IP数据包之前,对IP包的一些重要部分进行加密和验证计算,由接收端对这部分进行解密和验证,从而实现安全传输的目的。•IPSec实现了网络层的加密和认证,它在网络体系结构中提供了一种端到端的安全解决方案。11IPSec协议-1概述•IPSec提供三种不同的形式来保护通过公有或私有IP网络传送的私有数据。•(1)认证:通过认证可以确定所接受的数据与所发送的数据是否一致,同时可以确定申请发送者在实际上是真实的,还是伪装的发送者;•(2)数据完整性验证:通过验证,保证数据在从发送者到接收者的传送过程中没有被修改;•(3)保密:使相应的接收者能获取发送的真正内容,而无关的接收者无法获知数据的真正内容。12IPSec协议-1概述•IPSec由三个基本要素来提供以上三种保护形式–验证头(AH)–封装安全载荷(ESP)–互联网密钥管理协议(IKMP)。•认证协议头和安全加载封装是一套协议中两个不同的机制。所以,它们可以被单独使用,也可以被组合起来使用,可以满足不同的安全要求。13帧头应用数据应用数据应用数据应用数据TCP头TCP头TCP头IP头IP头应用层传输层网络层数据链路层没有IPSec的数据封装14应用层传输层网络层IPSec封装数据链路层帧头IPSec头应用数据应用数据应用数据应用数据TCP头TCP头TCP头IP头IP头应用数据TCP头IP头IPSec头IPSecn尾IPSec尾有IPSec数据封装15IPSec协议-2IPSec的安全体系结构体系结构安全封装载荷(ESP)协议(ESP)协议认证头(AH)协议认证算法加密算法解释域DOI密钥管理16•各个模块的功能是:–体系结构:覆盖了定义IPSec技术的一般性概念、安全需求、定义和机制–安全封装载荷(ESP):是插入IP数据包内的一个协议头,具有为IP数据包提供机密性、数据完整性、数据源认证和抗重传攻击等功能。–认证头(AH):是插入IP数据包内的一个协议头,具有为IP数据包提供数据完整性、数据源认证和抗重传攻击等功能。–加密算法:一组文档描述了怎样将不同的加密算法用于ESP。–认证算法:一组文档描述了怎样将不同的认证算法用于AH和ESP可选的鉴别选项。–密钥管理:描述密钥管理机制的文档。–解释域DOI:包含了其他文档需要的为了彼此间相互联系的一些值。这些值包括经过检验的加密和认证算法的标识以及操作参数,例如密钥的生存期。17IPSec协议-3IPSec服务服务类型AHESP(只加密)ESP(加密并认证)访问控制YYY无连接完整性YNY数据源的鉴别YNY拒绝重放攻击YYY保密性NYY有限的通信流保密性NYY18IPSec协议-4IPSec的工作模式1传输模式•IPSec传输模式主要对IP包的部分信息提供安全保护,即对IP数据包的上层协议数据提供安全保护。•当采用AH传输模式时,主要为IP数据包提供认证保护;而采用ESP传输模式时,主要对IP数据包的上层信息提供加密和认证双重保护。这是一种端到端的安全,IPSec在端点执行加密认证、处理,在安全通道上传输,因此主机必须配置IPSec。19首部有效载荷IP数据报传输网络首部有效载荷IP数据报20IPSec协议-4IPSec的工作模式隧道模式•IPSec隧道模式对整个IP数据包提供保护。其基本原理是构造新的IP数据包•当采用AH遂道模式时,主要为整个IP数据包提供认证保护(可变字段除外);当采用ESP遂道模式模式时,主要为整个IP数据包提供加密和认证双重保护。•这时,对IPSec的处理是在安全网关执行的,因此两端主机不必知道IPSec协议的存在。21首部有效载荷首部有效载荷首部有效载荷内部IP数据报外首部(新首部)传输网络首部有效载荷内部IP数据报内部IP数据报内部IP数据报安全网关安全网关外首部(新首部)22IPSec协议-5认证头协议(AH)•1.认证头的功能•为IP数据包提供数据完整性、数据源认证和抗重传攻击等功能。–数据完整性是通过消息认证码产生的校验值来保证的;–数据源认证是通过在数据包中包含一个将要被认证的共享秘密或密钥来保证的;–抗重传攻击是通过使用了一个经认证的序列号来实现的。23IPSec协议-5认证头协议(AH)•2.认证头格式•AH为IP数据包提供了数据完整性和认证服务。•注意AH并不提供保密性保护,因此当数据通过一个网络的时候仍然可以被看到。下一个首部载荷长度保留安全参数索引(SPI)序列号认证数据ICV(长度可变)24IPSec协议-5认证头协议(AH)•3完整性校验值的计算•ICV是消息认证码(messageauthenticationcode,MAC)的一种截断版本,它是用MAC算法计算的。•只使用前96bit。•ICV使用下面的域来计算:–在传输中不变化的IP头域,或者其值在到达使用该AH关联的端点时可以预测的IP头域。–AH首部,为了在源和目的地进行计算,必须将认证数据域置为0。–所有的上层协议数据,假定它们在传输中不变化(例如TCP报文段或隧道方式的一个内部IP分组)。25IPSec协议-5认证头协议(AH)•4.抗重放攻击–重放攻击指的是攻击者获得了认证分组的副本,并且以后将它传输到它的目的地址。收到了重复的认证IP分组可能会以某种方式中断服务或者出现其他一些意想不到的后果。序号字段是设计用来阻挡这种攻击的。–IPSec数据包专门使用了一个序列号,以及一个“滑动”的接收窗口。–因为IP是无连接、不可靠的服务,协议不能保证分组的按序交付,也不能保证所有的分组都会被交付,因此,IPSec认证文档规定接收者应该实现大小为W的接收窗口。2627–窗口最左端对应于窗口起始位置的序列号,窗口的右边界则代表目前已经收到的合法分组的最高序号。对于任何已经正确接收的(即经过了正确鉴别的)其序号处于N-W+1到N范围之间的分组,窗口的相应插槽被标记。当收到一个分组时,按照如下步骤进行进入处理:•①.如果收到的分组落在窗口之内并且是新的,就进行MAC检查。如果分组被鉴别,就对窗口的相应插槽做标记。•②.如果收到的分组落在窗口的右边并且是新的,就进行MAC检查。如果分组被鉴别,那么窗口就向前走,使得该序号成为窗口的右边界,并对窗口的相应插槽做标记。•③.如果收到的分组落在窗口的左边,或者鉴别失败,就丢弃该分组。28IPSec协议-5认证头协议(AH)•5.传输模式和遂道模式•AH服务可以以两种方式来使用:传输(transport)模式和隧道(tunnel)模式。AH的实际位置决定于使用何种模式以及AH是应用于一个IPv4还是一个IPv6数据包。29原始的IP头(任何选项)TCP数据原始的IP头(任何选项)TCP数据AH(载荷长度,SPI,序号,MAC)标准IPv4数据报传输模式下的IPv4认证范围:所有不变的域30原始的IP头(任何选项)TCP数据扩展项头(如果有)标准的IPv6数据报传输模式下的IPv6原始的IP头(任何选项)目的选项数据逐跃点、目的、路由、分段TCPAH(载荷长度,SPI,序号,MAC)认证范围:所有不变的域31原始的IP头(任何选项)TCP数据AH(载荷长度,SPI,序号,MAC)新的IP头(任何选项)隧道模式下的IPv4隧道模式下的IPv6认证范围:所有不变的域新的IP头(任何选项)扩展项头(如果有)数据扩展项头(如果有)TCPAH(载荷长度,SPI,序号,MAC)认证范围:所有不变的域32IPSec协议-6封装安全载荷协议(ESP)•1ESP功能•ESP主要支持IP数据包的机密性,它将需要保护的用户数据进行加密后再封装到新的IP数据包中。另外ESP也可提供认证服务,但与AH相比,二者的认证范围不同,ESP只认证ESP头之后的信息,比AH认证的范围要小。33IPSec协议-6封装安全载荷协议(ESP)•2.ESP格式34IPSec协议-6封装安全载荷协议(ESP)•3.加密与认证算法•ESP服务对有效载荷数据、填充、填充长度和下一个首部字段加密。下面是一些已定义的算法:l三密钥三重DESlRC5lIDEAlCASTlBlowfishl三密钥三重IDEA35IPSec协议-6封装安全载荷协议(ESP)•4.传输模式和隧道模式ESP尾TCP数据ESP头(SPI,序列号)源IP头ESP认证ESP尾TCP数据ESP头(SPI,序列号)源IP头ESP认证目的选项逐跃点、目的、路由、分段传输模式下的IPv4ESP传输模式下的IPv6ESP被加密的被加密的被认证的被认证的36•传输方式的操作总结如下:•①在源站,由ESP尾部加上整个传输级的报文段组成的数据块被加密,这个数据块的明文被其密文所代替,以形成用于传输的IP分组。如果认证选项被选中,还要加上认证。•②然后分组被路由到目的站。每个中间路由器都要检查和处理IP首部加上任何明文的IP扩展首部,但是不需要检查密文。•③目的结点检查和处理IP首部加上任何明文的IP扩展首部。然后,在ESP首部的SPI基础上目的结点对分组的其他部分进行解密以恢复明文的传输层报文段。•传输方式操作为使用它的任何应用程序提供了机密性,因此避免了在每一个单独的应用程序中实现机密性,这种方式的操作也是相当有效的,几乎没有增加IP分组的总长度。37ESP尾TCP数据ESP头(SPI,序列号)原IP头ESP认证新IP头ESP尾TCP数据ESP头(SPI,序列号)原IP头ESP认证新IP头原扩展头新扩展头隧道模式下的IPv4ESP隧道模式下的IPv6ESP被加密的被认证的被加密的被认证的38IPSec协议-7安全关联•当利用IPSec进行通信时,采用哪种认证算法、加密算法以及采用什么密钥都是事先协商好的。一旦通信双方取得一致后,在通信期间将共享这些安全参数信息来进行安全信息传输。•为了使通信双方的认证算法、加密算法保持一致,相互间建立的联系被称为安全关联(SecurityAssociation,SA)。•也就是在使用AH或ESP之前,先要从源主机到目的主机建立一条网络层的逻辑连接。•SA是构成IPSec的基础。39•安全关联是单向的,意味着每一对通信系统连接都至少需要两个安全关联。一个是从A到B,一个是从B到A。•如A需要有一个SA(out)用来处理外发数据包;一个SA(in)用来处理进入数据包。•如B需要有SB(out)和SB(in)•SA(out)和SB(in)共享一个加密参数•SA(in)和SB(out)共享一个加密参数•因此对外发和进入的SA分别需要维护一张单独的数据表40•一个SA由三个参数来惟一地标识:l安全参数索引(SPI):该比特串惟一地标识一个与某一安全协议(例如AH或者置SP)相关的安全关联。SPI位于AH和ESP头内,因此接收系统可以挑选出用于处理接收到的IP数据包的SA。l目的IP地址:该参数表明该SA的目的IP地址。端点可能会是最终用户