首页 > 代码库 > ipsec协议(转)
ipsec协议(转)
IPSec 协议简介
IPsec具有以下优点:
支持IKE(Internet Key Exchange,因特网密钥交换),可实现密钥的自动协商功能,减少了密钥协商的开销。可以通过IKE建立和维护SA的服务,简化了IPsec的使用和管理。
所有使用IP协议进行数据传输的应用系统和服务都可以使用IPsec,而不必对这些应用系统和服务本身做任何修改。
对数据的加密是以数据包为单位的,而不是以整个数据流为单位,这不仅灵活而且有助于进一步提高IP数据包的安全性,可以有效防范网络攻击。
IPsec的协议实现
IPSec 通过AH (Authentication Header,认证头)和ESP (Encapsulating Security Payload,封装安全载荷)两个安全协议实现了上述目标。为简化 IPSec 的使用和管理,IPSec 还可以通过 IKE(Internet Key Exchange,因特网密钥交换协议)进行自动协商交换密钥、建立和维护安全联盟的服务。
IPsec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。
IPsec协议中的AH协议定义了认证的应用方法,提供数据源认证和完整性保证;ESP协议定义了加密和可选认证的应用方法,提供数据可靠性保证。
(1) AH 协议(IP协议号为51)
AH 是报文头验证协议,主要提供的功能有数据源验证、数据完整性校验和防报文重放功能;然而,AH 并不加密所保护的数据报。
(2) ESP 协议(IP协议号为50)
ESP 是封装安全载荷协议。它除提供AH 协议的所有功能外(但其数据完整性校验不包括 IP头),还可提供对 IP 报文的加密功能。
说明:
AH 和ESP 可以单独使用,也可以同时使用。对于AH 和ESP,都有两种操作模式:传输模式和隧道模式。
(3) IKE 协议
IKE 协议用于自动协商AH 和 ESP 所使用的密码算法,并将算法所需的必备密钥放到恰当位置。
说明: IKE 协商并不是必须的,IPSec 所使用的策略和算法等也可以手工协商。
IPSec 基本概念
1. 安全联盟
IPSec 在两个端点之间提供安全通信,端点被称为 IPSec 对等体。
IPSec 能够允许系统、网络的用户或管理员控制对等体间安全服务的粒度。通过 SA (Security Association,安全联盟),IPSec 能够对不同的数据流提供不同级别的安全保护。
安全联盟具有生存周期。生存周期的计算包括两种方式:
以时间为限制,每隔指定长度的时间就进行更新;
以流量为限制,每传输指定的数据量(字节)就进行更新。
2. 安全联盟的协商方式
安全联盟的协商方式有两种,一种是手工方式(manual),一种是 IKE自动协商(isakmp)方式。
手工方式(manual)配置比较复杂,创建SA所需的全部信息都必须手工配置,而且不支持一些高级特性(例如定时更新密钥),但优点是可以不依赖IKE而单独实现IPsec功能。
IKE自动协商(isakmp)方式相对比较简单,只需要配置好IKE协商安全策略的信息,由IKE自动协商来创建和维护SA。
当与之进行通信的对等体设备数量较少时,或是在小型静态环境中,手工配置SA是可行的。对于中、大型的动态网络环境中,推荐使用IKE协商建立SA
3. IPSec协议的操作模式
IPSec协议有两种操作模式:传输模式和隧道模式。SA中指定了协议的操作模式。在传输模式下,AH或 ESP被插入到IP头之后但在所有传输层协议之前,或所有其他 IPSec协议之前。在隧道模式下,AH或 ESP插在原始 IP头之前,另外生成一个新头放到 AH或 ESP之前。不同安全协议在传输模式和隧道模式下的数据封装形式(传输协议以 TCP为例)如下图所示:
4. 验证算法与加密算法
IPSec配置
acl acl-number
rule { normal | special }{ permit | deny } pro-number[source source-addr source-wildcard | any ][source-port operator port1 [ port2 ] ] [ destination dest-addr dest- wildcard | any ][destination-port operator port1 [ port2 ] ] [icmp-type icmp-type icmp-code][logging]
AH16进制密钥 sa { inbound | outbound } ah hex-key-string hex-key
AH 字符密钥 sa { inbound | outbound } ah string-key string-key
ESP16进制密钥 sa { inbound | outbound } esp encryption-hex hex-key
ESP字符密钥 sa { inbound | outbound } esp string-key string-key
2. 自动协商配置
3.IPSec显示与调试
IPSec 提供以下命令显示安全联盟、安全联盟生存周期、安全提议、安全策略的信息以及 IPSec处理的报文的统计信息。
display命令可在所有视图下进行操作,debugging命令只能在用户视图下操作。
显示安全联盟的相关信息 display ipsec sa [ brief | remote ip-address | policy policy-name[ seq-number ] | duration ] [ secp [ slot/card/port ] ]
显示IPSec处理报文的统计信息 display ipsec statistics [ secp [ slot/card/port ] ]
显示安全提议的信息 display ipsec proposal [ name proposal-name ] [ secp [slot/card/port ] ]
显示安全策略的信息 display ipsec policy [ brief | name policy-name [ seq-number ] ] [secp [ slot/card/port ] ]
显示安全策略模板的信息 display ipsec policy-template [ brief | name policy-name [ seq-number ] ] [ secp [ slot/card/port ] ]
打开IPSec的调试功能 debugging ipsec { all | sa | packet [ policy policy-name [ seq-number ] | parameters ip-address protocol spi-number ] | misc | secp-setting } [ secp [slot/card/port ] ]
禁止IPSec的调试功能 undo debugging ipsec { all | sa | packet [ policy policy-name [ seq-number ] | parameters ip-address protocol spi-number ] | misc | secp-setting } [ secp [slot/card/port ] ]
ipsec协议(转)