700 likes | 838 Views
第 6 章 IP 的安全. 6.1 IP 安全概述 6.2 IP 安全体系结构 6.3 实例: Windows 2000 对于 IPSec 的支持. 6.1 IP 安全概述. 6.1.1 IP 数据报的头格式. 1 版本域 :表示数据报相对应的 IP 协议是多少 , 目前是 4( 代表 IPv4, 但 IPv6 也许要替代 IPv4 了 )
E N D
第6章 IP的安全 6.1 IP安全概述 6.2 IP安全体系结构 6.3 实例:Windows 2000对于IPSec的支持
6.1 IP安全概述 • 6.1.1 IP数据报的头格式
1 版本域:表示数据报相对应的IP协议是多少,目前是4(代表IPv4,但IPv6也许要替代IPv4了) • 2 首部长度:4位,IP协议包头的长度,指明IPv4协议包头长度的字节数包含多少个32位。由于IPv4的包头可能包含可变数量的可选项,所以这个字段可以用来确定IPv4数据报中数据部分的偏移位置。IPv4包头的最小长度是20个字节,因此IHL这个字段的最小值用十进制表示就是5 (5x4 = 20字节)。就是说,它表示的是包头的总字节数是4字节的倍数。 • 3 服务类型:定义IP协议包的处理方法,它包含如下子字段 • 过程字段:3位,设置了数据包的重要性,取值越大数据越重 要,取值范围为:0(正常)~ 7(网络控制) • 延迟字段:1位,取值:0(正常)、1(期特低的延迟) • 流量字段:1位,取值:0(正常)、1(期特高的流量) • 可靠性字段:1位,取值:0(正常)、1(期特高的可靠性) • 成本字段:1位,取值:0(正常)、1(期特最小成本) • 未使用:1位
4 总长度域:IP包的总长,以字节为单位 • 5 标识域:是源机赋予数据报的标识符,以便目的机进行分片的重组工作; • 6 标志:是一个3位的控制字段,包含: • 保留位(2):1位 • 不分段位(1):1位,取值:0(允许数据报分段) 1(数据报不能分段) • 更多段位(0):1位,取值:0(数据包后面没有包,该包为最后的包)、1(数据包后面有更多的包) • 7 段偏移量:当数据分组时,它和更多段位(MF, More fragments)进行连接,帮助目的主机将分段的包组合。偏移量是以8个字节为单位的;
8 TTL:表示数据包在网络上生存多久,每通过一个路由器该值减一,为0时将被路由器丢弃。 • 9 协议:8位,这个字段定义了IP数据报的数据部分使用的协议类型。常用的协议及其十进制数值包括ICMP(1)、TCP(6)、UDP(17)。 • 10 校验和:16位,是IPv4数据报包头的校验和。 • 11 源IP地址:为发送方的IP地址4字节,0x0a0x080x7a0xfe对应IP地址10.8.122.254 • 12 目的地址:接收方IP地址 • 13 选项域:该字段长度可变,主要用于控制和测试。
6.1.2 IP安全面临的威胁 • 利用IP协议和IP协议处理程序的漏洞,黑客可以发起攻击。IP安全面临严重的威胁。下面我们来简要分析一下几种常见的IP攻击。 • 1.网络监听 • 网络监听是一种常用的被动式网络攻击方法,它只监听数据流,而不修改数据包。它能帮助入侵者轻易地获得用其他方法很难获得的信息,包括用户账号、口令、敏感数据、IP地址、路由信息等,从而破坏了信息的保密性。网络监听可以在网络上的任何位置实施,在主机上实施比较容易,当主机处于监听模式下时,同一条物理信道上传输的所有信息都可以被接收到。网络监听奏效的根源在于所有的IP数据报是以明文形式传输信息的。
2.拒绝服务攻击 • 拒绝服务攻击破坏信息的可用性。它使得被访问实体拒绝正常的服务请求。下面两种攻击都是典型的拒绝服务攻击。 • (1)Smurf攻击 • Smurf攻击利用多数服务器中具有的同时向许多计算机广播请求的功能。攻击者伪造一个合法的IP地址(攻击目标的IP地址),然后由网络上所有的服务器广播请求,该请求要求所有的主机向该IP地址做出回答。由于这些数据包表面上看是来自于已知地址的合法请求,因此网络中的所有主机向这个地址做出回答,回答淹没了这台合法的机器,造成拒绝服务。
(2)SYN洪水 • 主机的TCP连接的数目是有限制的。当主机上的TCP连接(包括已经建立和正在建立的连接)达到最大值后,主机不再接收连接请求。攻击者利用TCP处理程序的这个特点,进行SYN洪水攻击。攻击者首先用伪造的IP地址向目标主机发出多个连接(SYN)请求,目标主机则会发送确认信息(ACK),并等待回答。由于伪造的IP地址(该IP目前不在使用中)不属于任何实际的机器,因此不会有回答,从而使连接保持开放,占用了连接数,阻塞了合法的数据流。
3.源路由篡改 • 这是一种数据劫持攻击,破坏信息的可控性。在这种攻击中,攻击者篡改路由表表项(通常在边缘路由器上),使发送到某一站点的数据流改向传送到另一个站点上(在这个站点上信息可以被截获),或者什么地方都不发送。
4.IP欺骗 • IP欺骗是利用了主机之间的正常信任关系来发动的,实现非授权访问。IP欺骗的攻击过程如下: • (1)首先选定目标主机,并且找到被目标主机信任的主机; • (2)其次黑掉这台被信任的主机,使之丧失工作能力。采样目标主机发出的TCP序列号,猜测出它的数据序列号。 • (3)然后伪装成被信任的主机,建立起与目标主机基于地址验证的应用连接。如果成功,黑客可是使用一种简单的命令放置一个系统后门,以进行非授权操作。
5.IP劫持攻击 • IP劫持是一种主动攻击方式。可破坏信息的完整性和可控性。所谓IP劫持是指,当用户连接远程机器的时候,攻击者接管用户的连线如同经过攻击者中转一样,能任意对连线交换的数据进行修改,冒充合法用户给服务器发送非法命令,或冒充服务器给用户返回虚假信息。
6.1.3 IP安全的解决方案 • IP协议无法对网络上传输的数据提供完整性和机密性保密,无法对通信双方身份进行认证。这些安全问题之所以会出现,根本原因在于IP协议没有采用安全机制。IETF成立了IP安全协议工作组,提出了一系列的安全协议,构成了一个安全体系,全称为IP Security Protocol,简称IPSec。
6.2 IP安全体系结构 • 6.2.1 IPSec概述 • 1. IPSec的组成 • IPSec是指IETF以RFC形式公布的一组安全协议集,属于IP级的安全保护协议。其基本目的就是把安全机制引入IP协议,通过使用现代密码学方法支持机密性和认证性服务,使用户能有选择地使用这些服务,并期望获得期望中的安全性。
根据RFC2401,IPSec的安全结构包含以下4个基本部分:根据RFC2401,IPSec的安全结构包含以下4个基本部分: • ①安全协议:AH和ESP • ②安全联盟(SA) • ③密钥交换 • ④认证和加密算法
2. IPSec的功能 • IPSec是IPv6必须支持的功能,对于IPv4来说,是一个建议的可选服务。IPSec将加密技术、消息摘要技术、身份认证技术等几种安全技术结合在一起,形成比较完整的安全体系结构。 • IPSec提供的安全功能有: • (1)访问控制 • 访问控制防止未经授权对资源进行访问。 IPSec中,需要进行访问控制的资源通常指主机中的数据和计算能力、安全网关内的本地网及其带宽。 IPSec使用身份认证机制进行访问控制。
(2)数据源认证和无连接认证 • 数据源认证对数据来源所声明的身份进行验证。无连接完整性服务对单份数据包是否被修改进行检查,而对数据包的到达顺序不作要求。 IPSec使用消息鉴别机制实现数据源认证服务和无连接性服务。 • (3)抗重放 • 亦称为部分序号完整性服务,是指防止攻击者截取和复制IP包,然后再发送到目的地。 IPSec根据IPSec头中的序号字段,使用滑动窗口原理,实现抗重放服务。 • (4)机密性和有限传输流量的机密性 • 相应的接收者能获取发送的真正内容,而无意获取数据的接收者无法获知数据的真正内容。有限传输流量的机密性服务能够防止通信的外部属性(源地址、目的地址、消息长度和通信频率等)的泄露,从而使攻击者无法对网络流量进行分析,推导其中的传输频率、通信者身份、数据包大小、数据流标识符等信息。
IPSec采用了AH和ESP两个协议提供传输安全。IP AH提供无连接完整性、数据源认证和可选的抗重放服务。ESP协议可提供机密性和受限传输流机密性,还可提供无连接完整性、数据源认证和抗重放服务。这些协议可单独使用或组合使用,以提供所希望的安全服务。 • IPSec的安全服务有IP层提供,所以能被更高层的协议所利用(如:TCP、UDP、ICMP、BGP等),应用程序不需要更改就可使用IPSec提供的服务。 IPSec提供的安全服务对于终端用户来说也是透明的,终端用户无须接收安全方面的专门培训就可使用。
6.2.2 安全关联(Security Association, SA) • 1.SA的定义 • SA是一个单向的逻辑连接。它实质上是一组参数的集合,是通信双方对参数的协商。 • SA为逻辑连接上传输的数据提供安全保护。因为SA是单向的,所以如果通信双方要建立双向安全通信,需要建立两个SA。
SA由三个参数唯一确定: • Security Parameters Index(SPI):安全变量索引。分配给这个SA的一个位串并且只有本地有效。SPI在AH和ESP报头中出现,以使得接收系统选择SA并在其下处理一个收到的报文。 • IP目的地址:目前,只允许单点传送地址;这是该SA的目标终点的地址,它可以是一个最终用户系统或一个网络系统如防火墙或路由器。 • 安全协议标识符:表明是AH还是ESP的SA
安全关联-SA 用于通信对等方之间对某些要素的一种协定,如: • IPSec协议 • 协议的操作模式:传输、隧道 • 密码算法 • 密钥 • 用于保护数据流的密钥的生存期
安全关联-SA • 通过像IKE这样的密钥管理协议在通信对等方之间协商而生成 • 当一个SA协商完成后,两个对等方都在其安全关联数据库(SAD)中存储该SA参数 • SA具有一定的生存期,当过期时,要么中止该SA,要么用新的SA替换 • 终止的SA将从SAD中删除
SA1 SA2 SA3 …… SAn 安全关联-SA
SA1 SA2 SA3 …… SAn • 安全参数索引 • 32位整数,唯一标识SA • 1-255被IANA保留将来使用 • 0被保留用于本地实现 安全关联-SA
SA1 SA2 SA3 …… SAn • 输出处理SA的目的IP地址 • 输入处理SA的源IP地址 安全关联-SA
SA1 SA2 SA3 …… SAn • AH • ESP 安全关联-SA
SA1 SA2 SA3 …… SAn • 32位整数,刚开始通常为0 • 每次用SA来保护一个包时增1 • 用于生成AH或ESP头中的序列号域 • 在溢出之前,SA会重新进行协商 安全关联-SA
SA1 SA2 SA3 …… SAn • 用于外出包处理 • 标识序列号计数器的溢出时,一个SA是否 仍可以用来处理其余的包 安全关联-SA
SA1 SA2 SA3 …… SAn 安全关联-SA • 使用一个32位计数器和位图确定一个输入的 AH或ESP数据包是否是一个重放包
SA1 SA2 SA3 …… SAn 安全关联-SA • AH认证密码算法和所需要的密钥
SA1 SA2 SA3 …… SAn 安全关联-SA • ESP认证密码算法和所需要的密钥
SA1 SA2 SA3 …… SAn 安全关联-SA • ESP加密算法,密钥,初始化向量(IV)和IV模式 • IV模式:ECB,CBC,CFB,OFB
SA1 SA2 SA3 …… SAn 安全关联-SA • 传输模式 • 隧道模式 • 通配模式:暗示可用于传输隧道模式
SA1 SA2 SA3 …… SAn 安全关联-SA • 路径最大传输单元 • 是可测量和可变化的 • 它是IP数据报经过一个特定的从源主机到 目的主机的网络路由而无需分段的IP数据 包的最大长度
SA1 SA2 SA3 …… SAn 安全关联-SA • 包含一个时间间隔 • 外加一个当该SA过期时是被替代还是终止 • 采用软和硬的存活时间:软存活时间用于在 SA会到期之前通知内核,便于在硬存活时间 到来之前内核能及时协商新的SA
3.SA的两个数据库 • 要实现IPSec,必须维护两个数据库:安全策略数据库和安全关联数据库。 • (1)安全策略数据库(Security Policy Database, SPD) • 安全策略数据库定义提供给IP数据报的服务,以及这些服务的提供方式。所有IP数据报的输入和输出(包括IPSec传输和非IPSec传输)的处理都必须咨询SPD。 • 对于输出的数据报,必须先查阅SPD,以决定提供给它的安全服务。对于输入的数据报,也要检索SPD,判断为其提供的安全保护是否和策略规定的安全保护相符。
(2)安全关联数据库( Security Association Database, SAD) • 安全关联数据库为输入和输出的数据报维持一个活动的SA列表。SAD中存放现行的SA条目。 • SA的管理可以由管理员手工操作,也可以通过IKE来进行。IKE可以自动建立SA并动态维护SA。 对数据报的处理需要访问SPD和SAD两个数据库。为了提高访问效率,SPD的每条记录都有指向SAD相应记录的指针,反之亦然。
输出 SPD SAD 处理输出的数据报,必须先查询SPD,获得指向SAD中相应记录的指针,再在SAD中查询进行处理所需的参数。如果SA在SPD未建立,则使用IKE进行协商,建立SPD和SAD间的指针。 输出数据报处理
输入 SPD SAD 处理输入的数据报,则需先查询SAD,对IPSec数据报进行还原,再根据SAD中指向SPD的指针,查找相应的数据,验证该数据报应用的策略与SPD中规定的是否相符。 输入数据报处理
6.2.3 AH协议(Authentication Header) • AH协议是IPSec协议集的重要协议之一,IP AH为IP数据报提供无连接完整性、数据源认证和抗重放攻击。AH采用的是数字签名和验证原理,将数据报通过消息摘要算法,计算摘要值。如果数据报中有稍微的改变,摘要值就会改变,因此能够保证数据报的完整性。数据源认证是通过在数据包中包含一个通信双方共享的密钥来保证的。抗重放攻击是通过在AH中使用一个序列号来实现的。
Next Header(下一个报头): 用来定义紧跟AH头之后的下一个头的类型。该域的取值是选自IANA定义的IP协议号集合。 • Payload Length(有效载荷长度):以32比特为单位的AH的长度减 2。 • Reserved(保留):保留为今后使用,发送时该域必须置全零。因为保留字段的值要参与认证值计算。
Security Parameters Index (SPI,安全参数索引): 它与IP目的地址和安全协议(AH)这三元组为该数据报唯一地指定它所用的SA。 • 1~255的SPI值由IANA保留,以便将来使用。这些值不会被IANA分配出去,IANA会在RFC中公布这些SPI值的指定用途。SPI 值为 0是保留给本地的特定实现使用的,不允许在线路上发送。 • 例如,当IPSec实现要求它的密钥管理试题建立新SA,但SA仍然没有建立时,密钥管理实现可以使用SPI的0值表示“没有安全关联存在”。
Sequence Number(序列号):该域有32位,是一个无符号的单调递增的计数器,不允许重复,唯一地标识了每一个发送数据包,为安全关联提供反重播保护。接收端校验序列号为该字段值的数据包是否已经被接收过,若是,则拒收该数据包。 • Authentication Data(AD,认证数据):该域长度可变,但必须是32bit的整数倍。 包含完整性检查值和填充值(保证AH头的长度是32bit(IPv4)或者64bit(IPv6)的整数倍)。接收端接收数据包后,首先执行hash计算,再与发送端所计算的该字段值比较,若两者相等,表示数据完整,若在传输过程中数据遭修改,两个计算结果不一致,则丢弃该数据包。
2.AH的模式 • (1)传输模式 • 传输模式只对上层协议数据和选择的IP头字段提供认证保护,切仅适用于主机与主机之间的安全通信。采用传输模式,IP数据报的封装模式如图所示: 在应用中,AH可以采用两种模式:传输模式和隧道模式。
采用传输模式的IP数据报,AH头插在原IP头之后,封装后的IP头仍然是原IP头,但是IP头中的协议字段由原来的值变为51,表示IP头后紧跟AH头。而AH的下一个字段则记录原IP头中协议字段的值,表示AH头之后是上层协议头。采用传输模式的IP数据报,AH头插在原IP头之后,封装后的IP头仍然是原IP头,但是IP头中的协议字段由原来的值变为51,表示IP头后紧跟AH头。而AH的下一个字段则记录原IP头中协议字段的值,表示AH头之后是上层协议头。 • 采用传输模式,AH在主机上实现,这样虽能够减轻安全网关的通信负担,但是无法实现对端用户的透明服务。
(2)隧道模式 • 隧道模式对整个IP数据项提供认证保护。适用于主机和安全网关之间、安全网关和安全网关之间的安全通信。只要通信一方是安全网关,就必须采用隧道模式。采用隧道模式时,AH在安全网关实现。 • 采用隧道模式的IP数据报,AH头放置在原IP头之前,然后在AH头之前再添加一个新的IP头。IP数据报的封装模式如图:
采用隧道模式的优点有:安全网关所保护的子网内的所有用户都可以透明地享受安全网关提供的安全保护;子网内可以使用私有IP地址,节省成本,而且还能保护子网内部的拓扑结构。但是隧道模式也存在缺点:AH在安全网关实现,增加了网关的负载,容易形成通信瓶颈。采用隧道模式的优点有:安全网关所保护的子网内的所有用户都可以透明地享受安全网关提供的安全保护;子网内可以使用私有IP地址,节省成本,而且还能保护子网内部的拓扑结构。但是隧道模式也存在缺点:AH在安全网关实现,增加了网关的负载,容易形成通信瓶颈。