IPSec 是什么?
IPv4缺乏对通信双方真实身份的验证能力,缺乏对网上传输的数据的完整性和机密性保护,并且由于IP地址可软件配置等灵活性以及基于源IP地址的认证机制,使得IP层存在着网络业务流易被监听和捕获、IP地址欺骗、信息泄露和数据项被篡改等攻击,而IP是很难抵抗这些攻击的。为了实现安全IP,Internet工程任务组IETF于1994年开始了一项IP安全工程,专门成立了IP安全协议工作组IPSEC,来制定和推动一套称为IPSec(IP Security)的IP安全协议标准。其目标就是把安全特征集成到IP层,以便对Internet的安全业务提供低层的支持。IETF于1995年8月公布了一系列关于IPSec的RFC建议标准。
完整的IPsec核心文档集处在提议标准阶段。包括:
隧道
隧道就是把一个包封装在另一个新包里面,整个源数据包作为新包的载荷部分,并在前面添加一个新的IP头。这个外部头的目的地址通常是IPSec防火墙、安全网关或路由器。通过隧道技术可以对外隐藏内部数据和网络细节。对IPSec而言,IP隧道的直接目标就是对整个IP数据包提供完全的保护。IP隧道如图所示。
此外,还有一个需要说明的概念就是“变换”。在IPSec中,一个变换是指一种安全机制的特定实现,如ESP的DES-CBC实现称为“DES-CBC ESP变换”。
IP协议本身缺乏安全性,仅用IP头中的校验和域来保证IP数据报的完整性。设计认证头(AH)协议的目的是用来增加IP数据报的安全性。AH协议提供无连接的完整性、数据起源认证和抗重放保护服务。然而,AH不提供任何机密性服务,它不加密所保护的数据包。AH的作用是为IP数据流提供高强度的密码认证,以确保被修改过的数据包可以被检查出来。AH使用消息认证码(MAC)对IP进行认证,最常用的MAC是HMAC。因为生成IP数据报的消息摘要需要密钥,所以IPSec的通信双方需要有共享密钥。对于MAC不了的解可以看MAC原理
认证头格式
AH由5个固定长度域和1个变长的认证数据域组成。下图说明了这些域在一个AH中的相对位置。
下面是这些域的说明:
下一个头(Next Header):这个8比特的域指出AH后的下一个载荷的类型。例如,如果AH后面是一个ESP载荷,这个域将包含值50。如果在我们所说的AH后面是另一个AH,那这个域将包含值51。RFC1700中包含了已分配的IP协议值信息。
载荷长度(Payload length):这个8比特的域包含以32比特为单位的AH的长度减2。为什么要减2呢?AH实际上是一个IPv6扩展头,IPv6规范RFC1883中规定计算扩展头长度时应首先从头长度中减去一个64比特的字。由于载荷长度用32比特度量,两个32比特字也就相当于一个64比特字,因此要从总认证头长度中减去2。
保留(Reserved):这个16比特的域被保留供将来使用。AH规范RFC2402中规定这个域被置为0。
安全参数索引(SPI):SPI是一个32比特的整数,用于和源地址或目的地址以及IPSec协议(AH或ESP)共同唯一标识一个数据报所属的数据流的安全关联(SA)。SA是通信双方达成的一个协定,它规定了采用的IPSec协议、协议操作模式、密码算法、密钥以及用来保护它们之间通信的密钥的生存期。关于SPI域的整数值,1到255被IANA(Internet Assigned Number Authority)留作将来使用;0被保留用于本地和具体实现使用。所以说目前有效的SPI值是从256到232-1。
序列号(Sequence number):这个域包含有一个作为单调增加的计数器的32位无符号整数。当SA建立时,发送者和接收者的序列号值被初始化为0。通信双方每使用一个特定的SA发出1个数据报就将它们的相应的序列号加1。序列号用来防止对数据包的重放,重放指的是数据报被攻击者截取并重新传送。AH规范强制发送者总要发送序列号到接收者;而接收者可以选择不使用抗重放特性,这时它不理会进入的数据流中数据报的序列号。如果接收端主机启用抗重放功能,它使用滑动接收窗口机制检测重放包。具体的滑动窗口因不同的IPSec实现而不同;然而一般来说滑动窗口具有以下功能。窗口长度最小为32比特。窗口的右边界代表一特定SA所接收到的验证有效的最大序列号。序列号小于窗口左边界的包将被丢弃。将序列号值位于窗口之内的数据包将被与位于窗口内的接收到的数据包相比较。如果接收到的数据包的序列号位于窗口内并且数据包是新的,或者它的序列号大于窗口右边界且小于232,那么接收主机继续处理计算认证数据。对于一个特定的SA,它的序列号不能循环;所以在一个特定的SA传输的数据包的数目达到232之前,必须协商一个新的SA以及新的密钥。
认证数据:这个变长域包含数据报的认证数据,该认证数据被称为完整性校验值(ICV)。对于IPv4数据报,这个域的长度必须是32的整数倍;对于IPv6数据报,这个域的长度必须是64的整数倍。用来生成ICV的算法由SA指定。用来计算ICV的可用的算法因IPSec的实现的不同而不同;然而为了保证互操作性,AH强制所有的IPSec实现必须包含两个MAC:HMAC-MD5和HMAC-SHA-1。如果一个IPv4数据报的ICV域的长度不是32的整数倍,或一个IPv6数据报的ICV域的长度不是64的整数倍,必须添加填充比特使ICV域的长度达到所需要的长度。
ipsec主模式
准备工作
主模式配置示例
配置 IP 地址部分
外网要全部互通(本路由器外部接口能ping通隧道对端路由器接口)
1、在 R1 上创建感兴趣流,匹配两端私网地址网段
[R1]acl advanced 3000
[R1-acl-ipv4-adv-3000]rule per ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255
2、在 R1 上创建 IKE 提议,配置验证模式为预共享密钥,并配置加密算法
[R1]ike proposal 1
[R1-ike-proposal-1]authentication-method pre-share
[R1-ike-proposal-1]encryption-algorithm aes-cbc-128
3、在 R1 上创建预共享密钥
[R1]ike keychain r3
[R1-ike-keychain-r3]pre-shared-key address 100.2.2.3 key simple 123456
4:在 R1 上创建 IKE Profile,指定本端和对端公网地址,并调用预共享密钥和 IKE 提议
[R1]ike profile r3
[R1-ike-profile-r3]keychain r3
[R1-ike-profile-r3]local-identity address 100.1.1.1
[R1-ike-profile-r3]match remote identity address 100.2.2.3
[R1-ike-profile-r3]proposal 1
5:在 R1 上创建IPsec 转换集,配置加密和验证算法。由于工作模式默认是隧道模式,且协议默认使用 ESP,所以无需配置
[R1]ipsec transform-set r3
[R1-ipsec-transform-set-r3]esp authentication-algorithm sha1
[R1-ipsec-transform-set-r3]esp encryption-algorithm aes-cbc-128
6:在 R1 上创建 IPsec 策略,调用上述配置
[R1]ipsec policy r3 1 isakmp
[R1-ipsec-policy-isakmp-r3-1]security acl 3000
[R1-ipsec-policy-isakmp-r3-1]ike-profile r3
[R1-ipsec-policy-isakmp-r3-1]transform-set r3
[R1-ipsec-policy-isakmp-r3-1]remote-address 100.2.2.3
7:在 R1 的公网接口上下发 IPsec 策略
[R1-GigabitEthernet0/0]ipsec apply policy r3
8:在 R3 上完成 IPsec 相关配置,方法和命令与 R1 一致,本端和对端地址对调即可
什么是IPSec,IPSec服务的作用
ipsec\x0d\x0aIPsec:IP层协议安全结构\x0d\x0a\x0d\x0a(IPsec:SecurityArchitectureforIPnetwork)\x0d\x0a\x0d\x0aIPsec在IP层提供安全服务,它使系统能按需选择安全协议,决定服务所使用的算法及放置需求服务所需密钥到相应位置。IPsec用来保护一条或多条主机与主机间、安全网关与安全网关间、安全网关与主机间的路径。\x0d\x0a\x0d\x0aIPsec能提供的安全服务集包括访问控制、无连接的完整性、数据源认证、拒绝重发包(部分序列完整性形式)、保密性和有限传输流保密性。因为这些服务均在IP层提供,所以任何高层协议均能使用它们,例如TCP、UDP、ICMP、BGP等等。\x0d\x0a\x0d\x0a这些目标是通过使用两大传输安全协议,头部认证(AH)和封装安全负载(ESP),以及密钥管理程序和协议的使用来完成的。所需的IPsec协议集内容及其使用的方式是由用户、应用程序、和/或站点、组织对安全和系统的需求来决定。\x0d\x0a\x0d\x0a当正确的实现、使用这些机制时,它们不应该对不使用这些安全机制保护传输的用户、主机和其他英特网部分产生负面的影响。这些机制也被设计成算法独立的。这种模块性允许选择不同的算法集而不影响其他部分的实现。例如:如果需要,不同的用户通讯可以采用不同的算法集。\x0d\x0a\x0d\x0a定义一个标准的默认算法集可以使得全球因英特网更容易协同工作。这些算法辅以IPsec传输保护和密钥管理协议的使用为系统和应用开发者部署高质量的因特网层的加密的安全技术提供了途径。\x0d\x0a\x0d\x0aIPSec不是特殊的加密算法或认证算法,也没有在它的数据结构中指定一种特殊的加密算法或认证算法,它只是一个开放的结构,定义在IP数据包格式中,为各种的数据加密或认证的实现提供了数据结构,为这些算法的实现提供了统一的体系结构,因此,不同的加密算法都可以利用IPSec定义的体系结构在网络数据传输过程中实施\x0d\x0a\x0d\x0aVista系统常用英文专业词语\x0d\x0a\x0d\x0a互联网协议安全(InternetProtocolSecurity),一个标准机制,用于在网络层面上为穿越IP网络的数据包提供认证,完整性,以及机密性。
暂无评论内容