目录
一、IPSEC安全体系结构 (4)
1.1 ESP协议 (5)
1.2 AH协议 (7)
1.3 DOI (9)
1.4 IKE ........................................错误!未定义书签。0
二、IPSec运行模式 (12)
2.1.1传输模式 (12)
2.1.2隧道模式 ..................................错误!未定义书签。3
2.2 SA安全模式 .................................错误!未定义书签。4
三、IPSec的实施...................................错误!未定义书签。4
3.1在主机实施 ..................................错误!未定义书签。4
3.2在路由器中实施 (15)
3.3 IPSec的处理流程.............................错误!未定义书签。6
四、Windows中的IPsec配置和使用实现。...............错误!未定义书签。7
4.1 Windows中的IPsec策略.......................错误!未定义书签。8
4.2 在Windows上使用内置IPsec策略...............错误!未定义书签。8
五、参考文献 (21)
Windows平台中IPSec的设计与实现
一、IPSec安全体系结构
IPSec(IP Security)是一种由IETF设计的端到端的确保IP层通信安全的机制。
IPSec 协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议Authentication Header (AH)、封装安全载荷协议Encapsulating Security Payload(ESP)、密钥管理协议Internet Key Exchange (IKE)和用于网络认证及加密的一些算法等。这些协议用于提供数据认证、数据完整性和加密性三种保护形式。AH和ESP都可以提供认证服务,但AH提供的认证服务要强于ESP。而IKE主要是对密钥进行交换管理,对算法、协议和密钥3个方面进行协商。IPSec 规定了如何在对等层之间选择安全协议、确定安全算法和密钥交换,向上提供了访问控制、数据源认证、数据加密等网络安全服务。IPSec在IPv6中是必须支持的,而在IPv4中是可选的。
IPSec协议可以为IP网络通信提供透明的安全服务,保护TCP/IP 通信免遭窃听和篡改,保证数据的完整性和机密性,有效抵御网络攻击,同时保持易用性。
IPSec体系结构图:
1.1ESP(EncapsulatedSecurityPayload) 协议
它提供IP层加密保证和验证数据源以对付网络上的监听。因为AH虽然可以保护通信免受窜改, 但并不对数据进行变形转换, 数据对于黑客而言仍然是清晰的。为了有效地保证数据传输安全, 在IPv6 中有另外一个报头ESP,进一步提供数据保密性并防止窜改。
ESP(Encapsulating Security Payload,封装安全载荷):RFC2406。ESP 协议除了可以提供无连接的完整性、数据来源验证和抗重放攻击服务之外,还提供数据包加密和数据流加密服务。
与AH相比,ESP验证的数据范围要小一些。ESP协议规定了所有IPSec系统必须实现的验证算法:HMAC-MD5、HMAC-SHA1、NULL。
ESP的加密采用的是对称密钥加密算法。不同的IPSec实现,其加密算法也有所不同。为了保证互操作性,ESP协议规定了所有IPSec
系统都必须实现的加密算法:DES-CBC、NULL。ESP协议规定加密和认证不能同时为NULL。即加密和认证必须至少选其一。
(1)SPI:32位
与目的IP地址、协议一起组成的三元组可以为该IP包唯一地确定一个SA。
(2)序列号(Sequence Number):32位
单调递增的计数器,为每个ESP包赋予一个序号。通信双方建立SA时,计数器初始化为0。SA是单向的,每发送一个包,外出SA 的计数器增1;每接收一个包,进入SA的计数器增1。
该字段可以用于抵抗重放攻击。
(3)载荷数据(Payload Data):变长
包含了实际的载荷数据。不管SA是否需要加密,该字段总是必需的。如果采用了加密,该部分就是加密后的密文;如果没有加密,该部分就是明文。
如果采用的加密算法需要一个IV(Initial V ector,初始向量),IV 也是在本字段中传输的。该加密算法的规范必须能够指明IV的长度
以及在本字段中的位置。对于强制实施的DES-CBC来说,IV是该字段当中第一个8位组。本字段的长度必须是8位的整数倍。
(4)填充(Padding)
填充字段包含了填充位。
(5)填充长度(Pad Length):8位
以字节为单位指示了填充字段的长度,其范围为[0,255]。
(6)下一个头(Next Header):8位
指明了封装在载荷中的数据类型,例如6表示TCP数据,4表示IP-in-IP。
(7)验证数据(Authentication Data):变长
只有选择了验证服务时才会有该字段,包含了验证的结果。
1.2AH(AuthenticationHeader) 协议
它用来向IP通信提供数据完整性和身份验证,同时可以提供抗
重播服务。
在IPv6 中协议采用AH 后, 因为在主机端设置了一个基于算法独立交换的秘密钥匙, 非法潜入的现象可得到有效防止, 秘密钥匙由客户和服务商共同设置。在传送每个数据包时,IPv6 认证根据这个秘密钥匙和数据包产生一个检验项。在数据接收端重新运行该检验项并进行比较,从而保证了对数据包来源的确认以及数据包不被非法修改。用于增强IP层安全,可以提供无连接的数据完整性、数据来源验证和抗重放攻击服务。
AH对IP层的数据使用验证算法MAC,从而对完整性进行保护。