IPSec(IP Security)
该协议把密码技术应用在网络层,以向信息的发送方和接收方提供源地址验证、数据传输的完整性、存取控制、保密性等安全服务,保护通信免遭窃听、抵御网络攻击,而且更高层的应用层协议也可以直接或间接地使用这些安全服务,为其上层协议如TCP、UDP 等提供透明的安全保护服务,在 Internet 这样不安全的网络中为通信提供安全保证。
在 IPv6 中,IPSec 协议是一个必备的组成部分,被强制实施;在 IPv4 中,它是一个可选的扩展协议。
由于 Internet 等网络具有公共特性,因此在通信过程中难以确认传输媒介是安全的,所以要进行安全的通信,则通信数据必须经过加密。IPSec 协议对数据的加密以数据包而不是整个数据流为单位,这不仅非常灵活,也有助于进一步提高 IP 数据包的安全性。
IPSec 协议的基本工作原理是
发送方在发送数据前对数据实施加密,然后把密文数据发送到网络中去,开始传输。在整个传输过程中,数据都是以密文方式传输的,直到数据到达目的节点,才由接收方对密文进行解密,提取明文信息。
IPSec 协议对网络层的通信使用了加密技术,它不是加密数据包的头部和尾部信息(如源地址、目的地址、端口号、CRC 校验值等),而是对数据包中的数据进行加密。由于加密过程发生在 IP 层,因此可在不改变 HTTP 等上层应用协议的情况下进行网络协议的安全加密,为通信提供透明的安全传输服务。
IPSec 协议中使用端到端的工作模式,掌握加密、解密方法的只有数据的发送方和接收方,两者各自负责相应的数据加密、解密处理,而网络中其他节点只负责转发数据,无须支持 IPSec,从而可以实现加密通信与传输媒介无关,保证机密数据在公共网络环境下的适应性和安全性。因此,IPSec 可以应用到非常广泛的环境中,能为局域网、拨号用户、远程站点、Internet 之上的通信提供有力的保护,而且还能用来筛选特定数据流,还可以用于不同局域网之间通过互联网的安全互联。
IPSec 协议不是一个单独的协议,它包括应用于 IP 层上网络数据安全的一整套协议,主要包括 AH(Authentication Header,IP 认证头部协议)、ESP(Encapsulating Security Payload,封装安全负载协议)、IKE(Internet Key Exchange,Internet 密钥交换协议)和用于网络认证及加密的一些算法等。
AH 提供数据的完整性和认证,但不包括保密性;而 ESP 原则上只提供保密性,但也可在 ESP Header 中选择适当的算法及模式来实现数据的完整性和认证。AH 和 ESP 可分开使用也可一起使用。IKE 则提供加密算法、密钥等的协商。
1.安全关联和安全策略
安全关联(Security Association,SA)是指提供通信安全服务的发送方和接收方之间的一种单向关系。安全关联是构成 IPSec 的基础,它是进行通信的双方经协商建立起来的一种协定。安全关联可以用一个 32 位的安全参数索引(Security Parameter Index,SPI)来唯一标识,一个 SPI 值决定一个特定的 SA,它通常放在 AH 或 ESP 头中;安全关联是单向的,如果要对两台主机 A 与 B 实现双向安全,则需要两个安全关联,每个方向一个:(A,B)、(B,A)。安全关联的内容包含了 IP 数据包是否加密、认证,以及加密、认证采用的算法、密钥等相关信息。所有的 SA 记录都存放在安全关联数据库中,按散列方式存取。
安全策略(Security Policy)定义了两个 IPSec 系统之间的安全通信特征,并决定在该通信中为数据包提供的安全服务。一个 IPSec 系统的所有安全策略都存放在安全策略数据库中,根据选择符包括源地址、目的地址、协议、端口等)进行检索。安全策略通常与 SA 合作,共同作用于通信的数据包。
2.AH
AH 协议先将数据进行校验和加密,然后封装为 IP 包,从而实现无连接通信的数据完整性、数据源认证和防止重放攻击。AH 能完成除数据加密外的所有的 ESP 所能提供的功能。在认证机制上,它所覆盖的范围比 ESP 的广,包括对 IP 头中一些选项的认证。
为了应用 IPSec 协议,IP 数据包的格式要有所改变,即在 IP 头和被保护的数据之间插入一个 AH 头;
AH 头的格式,包括:下一报头、有效载荷长度、保留位、安全参数索引、序列号、认证数据。
AH 使用的典型的认证算法是一种迭代型的消息摘要算法。AH 中采用 MD5 算法,可以提供完整性服务。从前面的讲述可以知道 MD5 可以对任意长度的信息进行散列运算产生一个唯一的 128 位消息摘要。由于消息摘要是唯一的,所以对信息的任何修改都将得到另一个不同的消息摘要,因此能防止消息被篡改,从而保证了数据的完整性。AH 也可以采用SHA 算法提供更强的抗攻击能力,SHA 是在 MD5 的基础上,增加了分组处理的迭代次数和复杂性,产生一个 160 位的消息摘要。接收者在收到数据后可以通过检验数据包中的单向递增的序列号来确定数据包的合法性,防止重放攻击。
3.ESP
ESP 通过对数据包的数据进行加密来提供传输信息的保密性,从而实现了数据完整性、数据源认证、数据保密性的安全服务。ESP 是一个通用的、可扩展的安全机制,其加密认证算法主要由 SA 的相应数据项决定。接收者也可以通过在收到数据后检验数据包中的单向递增的序列号来确定数据包的合法性,防止重放攻击。
在应用中,需要在 IP 数据包的头和被保护的数据之间插入一个 ESP 头,在被保护的数据后附加一个 ESP 尾;
ESP 头的格式如图所示,包括:安全参数索引(标识用于处理数据包的安全关联)、序列号(用于防止重放攻击)、有效荷载数据。ESP 头的所有字段都是不加密的,因为在解密数据包时需要先读取头部字段。
ESP 尾的格式如图所示,包括:填充项(某些加密算法要求被加密数据的长度是密钥长度的整数倍,若受保护的数据的长度不满足这个要求,就需要在后面追加一些填充项)、填充项长度(指明填充项的长度)、下一个头部、认证数据(数据完整性的检验结果)。
ESP 在提供加密功能的同时,还可以提供认证功能。对于发出的数据包,首先进行加密处理;而对于收到的数据包,则先进行认证处理。
ESP 支持多种加密算法。DES 是 ESP 中默认的加密算法,它采用 64 位的密钥,对明文进行加密,加密、解密使用同一个密钥,该算法简单高效。此外还可以选择采用 3DES、AES、RC5、RC6、Blowfish 等算法。
4.IP 密钥交换
IKE 是一个混合协议,它使用了 Internet 安全关联和密钥管理协议(Internet SecurityAssociation and Key Management Protocol,ISAKMP)、密钥确定协议 Oakley 和描述支持匿名和快速密钥刷新的密钥交换的 SKEME 协议。IKE 除了实现通信双方的密钥交换,还使用ISAKMP 实现 IPSec 的安全关联。
ISAKMP 协议是 IKE 的核心组成部分,它定义了包括协商、建立、修改、删除安全关联的过程和数据格式。ISAKMP 的工作分为两个阶段:第一阶段,通信双方协商并建立一个安全的通道,并对该通道进行验证,为第二阶段的进一步通信提供安全服务;第二阶段,为IPSec 建立起具体的 IPSec 安全关联,用于保护通信双方的数据传输安全。在 IKE 的协商过程中,使用了 Diffie-Hellman 机制、Oakley 的密钥交换模式和 SKEME 的共享和密钥更新技术。
5.IPSec 的工作模式
IPSec 的工作模式有两种:传输模式和隧道模式。
传输模式首先将要传送的数据使用 IPSec 加密封装起来,再把相关的 IPSec 头插入 IP头和被保护的数据之间封装起来。因为 IP 头没有加密,接收端收到封装的数据包时直接处理 IP 头,然后从 IPSec 头读取 SPI 值得到相对的 SA,再利用 SA 所定的解密参数解出所加密的数据。
传输模式的 IPSec 头直接加在欲传送的数据前,由于加密的部分较少,没有额外的处理,因此比较节省带宽和 CPU 负载,通信和处理效率较高。
在传输模式中,解密者就是目的地址端的使用者。
隧道模式首先使用 SA 的相关信息将 IP 的数据包全部加密,接下来在前面加上 ESPHeader,然后把它们作为数据为它们再加上一个新的 IP 头。接收端收到 ESP 封包后,使用 ESP Header 内容中的 SPI 值提供的 SA,然后解出 ESP Header 后的装载数据,就可以取回原始的 IP 头与封包。
隧道模式可以在两个终端之间建立一个安全的隧道,经由这两个终端之间的通信均在这个隧道中进行,因此安全性较高。
两种模式的 IP 数据包的格式如图所示。
如发现本站有涉嫌抄袭侵权/违法违规等内容,请联系我们举报!一经查实,本站将立刻删除。