IKE在IPSEC中实际作用 IKE可以实现在两个站点之间安全的进行认证身份,分发密钥,动态的建立IPSec SA,并且能够定期的维护与更新IPSec SA的信息,保证安全性。 IKE与ISAKMP IKE的最终目标是协商两边站点之间建立动态的IPSec隧道,能够实时维护IPSec SA信息,而进行IKE工作则由ISAKMP报文来完成,在配置之前,了解下ISAKMP的报文,对于后续理解会很大的帮助 实验来感受IKE/IPSec结合 IKE/IPSEC的组合是目前工作中主流的应用方式,后续就不在提及IKE/IPSEC的字样,就直接称呼为IPSec,在配置了IPSec之前跟手工的方式一样有几个注意的地方 对比与手动配置来说,多了一个IKE的配置,少了SPI与密钥的配置,也体现出来了使用IKE动态的管理密钥的功能。 1、mode:在手动的时候显示的是manual,用了IKE后变成了ISKAMP,也就是说是由IKE/ISKMAP来完成整个的IPSec协商。
Internet 密钥交换 (IKE) 是一种协议,旨在为需要加密通信的终端创建安全关联。 对于 IPSec VPN,IKE 旨在协商加密密钥和验证密钥以保护私有数据。 为什么我们使用 IKE 协议? 为此,我们可以结合非对称加密和对称加密的优点,在数据传输时使用对称加密对数据进行加密,在数据传输加密时使用非对称加密协商对称加密密钥的使用,这就是 IKE 协议的目的 IPSec IKE 协议如何工作? 在主模式的第一阶段,IKE 通过包交换协商一个 IKE SA。该 SA 主要用于加密第 2 阶段用于数据加密的对称密钥协商中使用的对称密钥的消息。 IKE 提议参数交换消息 图 5. 密钥生成信息交换 图 6.
本案例采用H3C HCL模拟器的F1060防火墙来模拟IPSEC+IKE野蛮模式的典型组网配置。 255.255.255.252 key simple james [FW1-ike-keychain-james]quit [FW1]ike proposal 1 [FW1-ike-proposal -1]quit [FW1]ike profile james [FW1-ike-profile-james]keychain james [FW1-ike-profile-james]proposal identity fqdn fw2 [FW2]ike proposal 1 [FW2-ike-proposal-1]quit [FW2]ike keychain james [FW2-ike-keychain-james [FW2-ike-profile-james]keychain james [FW2-ike-profile-james]proposal 1 [FW2-ike-profile-james]match
IKE/ISKAMP的协商过程 这里主要讲解IKEV1的版本,在V1版本中有两个模式,一个主模式,一个野蛮模式(也称为积极模式),下面就以上一篇的拓扑跟配置为基础,来通过抓包来分析,先从IKE的主模式开始 那这个参数可能会觉得奇怪,实际第一阶段IKE配置里面是没有配置这些加密、认证算法的,那它怎么来的呢? 通过 display ike proposal 可以发现里面原来有这么多内容。 [BJ_FW]ike peer cs [BJ_FW-ike-peer-cs]exchange-modeaggressive [CS_FW]ike peer bj [CS_FW-ike-peer-bj 回顾IKE/IPSEC的整体配置流程 对于配置流程来说只要明白了IKE、IPSEC的协商流程就知道如何配置了。 (1)ike proposal:这个用于定义双方IKE的安全提议,默认系统也内置了参数,注意的地方就是两边一定要一致。
配置IKE安全提议,指定加密算法、认证算法、DH。 [HUAWEI] ike proposal 1 [HUAWEI-ike-proposal-1] encryption-algorithm 3des [HUAWEI-ike-proposal-1] authentication-algorithm sha1 [HUAWEI-ike-proposal-1] dh group2 [HUAWEI-ike-proposal-1] quit 配置IKE对等体,指定协商模式、IKE版本、预共享密钥。 [HUAWEI] ike peer fortigate [HUAWEI-ike-peer-fortigate] exchange-mode main [HUAWEI-ike-peer-fortigate ] undo version 2 [HUAWEI-ike-peer-fortigate] ike-proposal 1 [HUAWEI-ike-peer-fortigate] pre-shared-key
策略配置 [R1]ike proposal 10 //创建IKE提议,并进入IKE视图 [R1-ike-proposal-10]encryption-algorithm 3des-cbc //IKE提议使用的加密算法 [R1-ike-proposal-10]authentication-method pre-share //IKE提议使用的密钥处理方式 [ 10] 3.配置IKE对等体及密钥 [R1]ike peer R3 //创建IKE对等体,并进入IKE对等体视图 [R1-ike-peer-r3]exchange-mode main //IKE对等体的协商模式 [R1-ike-peer-r3]pre-shared-key h3c //IKE对等体的密钥 [R1-ike-peer-r3]local-address -10]sa duration 86400 [R3-ike-proposal-10]q [R3]ike peer R1 [R3-ike-peer-r1]exchange-mode main [R3-ike-peer-r1
l2tp-group 1 mode lns allow l2tp virtual-template 1 undo tunnel authentication l2tp enable ike local-identity address 192.168.1.1 match remote identity address 0.0.0.0 0.0.0.0 proposal 1 2 3 4 5 6 ike proposal 1 encryption-algorithm aes-cbc-128 dh group2 authentication-algorithm md5 ike proposal 3des-cbc dh group2 ike proposal 4 encryption-algorithm aes-cbc-256 dh group2 ike proposal 5 dh group2 ike proposal 6 encryption-algorithm aes-cbc-192 dh group2 ike keychain 1 pre-shared-key
策略配置 [R1]ike proposal 10 //创建IKE提议,并进入IKE视图 [R1-ike-proposal-10]encryption-algorithm 3.配置IKE对等体及密钥 [R1]ike peer R3 //创建IKE对等体,并进入IKE对等体视图 [R1-ike-peer-r3]exchange-mode main //IKE对等体的协商模式 [R1-ike-peer-r3]pre-shared-key h3c //IKE对等体的密钥 [R1-ike-peer-r3 pre-share [R3-ike-proposal-10]authentication-algorithm md5 [R3-ike-proposal-10]dh group2 [R3-ike-proposal -10]sa duration 86400 [R3-ike-proposal-10]q [R3]ike peer R1 [R3-ike-peer-r1]exchange-mode main [R3-ike-peer-r1
proposal 1 [FW1-ike-proposal-1]quit [FW1]ike keychain james [FW1-ike-keychain-james]pre-shared-key address 123.0.0.2 255.255.255.252 key simple james [FW1-ike-keychain-james]quit [FW1]ike profile james [FW1-ike-profile-james]proposal 1 [FW1-ike-profile-james]keychain james [FW1-ike-profile-james]local-identity proposal 1 [FW2-ike-proposal-1]quit [FW2]ike keychain james [FW2-ike-keychain-james]pre-shared-key [FW2-ike-profile-james]keychain james [FW2-ike-profile-james]proposal 1 [FW2-ike-profile-james]match
(3)Customer end: Juniper SRX Firewall (policy based ×××) Phase 1 set security ike proposal ike-phase1 group2 set security ike proposal ike-phase1-proposal authentication-algorithm md5 set security ike proposal ike-phase1-proposal encryption-algorithm 3des-cbc set security ike policy ike-phase1-policy mode main set security ike policy ike-phase1-policy proposals ike-phase1-proposal set security ike policy ike-phase1 SL ike-policy ike-phase1-policy set security ike gateway SL address x.x.x.x set security ike gateway
peer [fw-1-ipsec-policy-isakmp-policy-10]quit [fw-1]ike peer peer [fw-1-ike-peer-peer]local-address 3.3.3.3 [fw-1-ike-peer-peer]remote-address 4.4.4.4 [fw-1-ike-peer-peer]pre-shared-key simple 123456 [ [fw1] ike peer peer //IKE网关名 peer [fw1-ike-peer-peer] exchange-mode aggressive /野蛮模式 [fw1-ike-peer-peer [FW3] ike peer peer [FW3-ike-peer-peer] exchange-mode aggressive [FW3-ike-peer-peer] pre-shared-key 123456 [FW3-ike-peer-peer] id-type name [FW3-ike-peer-peer] remote-name fw1 [FW3-ike-peer-peer] remote-address
number 3000 rule 10 permit ip source 192.168.1.0 0.0.0.255 destination 192.168.2.0 0.0.0.255 # //定义IKE 对等体 ike peer to_rtb //使用预设口令身份验证 pre-shared-key 123 //对等体的IP地址,注意是GRE Tunnel的地址 remote-address 10.0.0.2 # //定义IPSec提议 ipsec proposal to_rtb (注:使用默认值:隧道模式、MD5认证、DES加密) # //定义IPSec策略,协商方式为isakmp,即使用IKE 协商 ipsec policy to_rtb 1 isakmp //定义需要加密传送的ACL security acl 3000 //选择使用的IKE对等体 ike-peer to_rtb / 协商 ipsec policy to_rta 1 isakmp //定义需要加密传送的ACL security acl 3000 //选择使用的IKE对等体 ike-peer to_rta /
IKE安全提议 系统缺省提供了一条优先级最低的IKE安全提议 IPSec安全提议 系统没有配置IPSec安全提议。 SA触发方式 自动触发方式。 IKE SA硬生存周期 86400秒。 的保护方法 IKE安全提议(ike proposal) 认证方法(authentication-method) 认证算法(authentication-algorithm) 加密算法(encryption-algorithm ) DH密码组(dh) IKE SA存活时间(sa duration) 扩展参数 4.IKE协商时对等体间的属性 ike peer: 引用IKE安全提议 认证算法对应的认证密钥 对端IP地址 阶段1认证模式 动态协商方式安全策略 引用ACL(security acl) 引用IPSec安全提议(proposal) 引用IKE对等体(ike-peer) 扩展参数 通过策略模板创建IKE动态协商方式安全策略 引用 ACL(security acl) 引用IPSec安全提议(proposal) 引用IKE对等体(ike-peer) 扩展参数 #定义需要保护的数据流 [Huawei] acl 3001
[Huawei]ike proposal 10 [Huawei-ike-proposal-10]authentication-algorithm sha1 [Huawei-ike-proposal-10 -10]dh group2 [Huawei-ike-proposal-10]q [Huawei]ike proposal 10: Creates an IKE proposal named "10". [Huawei-ike-proposal-10] :进入 IKE 提案 10 的配置模式。 authentication-algorithm sha1 :将 IKE 的身份验证算法设置为 SHA-1。 [Huawei]ike peer r1-r3 v1 [Huawei-ike-peer-r1-r3]pre-shared-key cipher abc-123 [Huawei-ike-peer-r1-r3 ]remote-address 101.0.0.2 [Huawei-ike-peer-r1-r3]ike-proposal 10 [Huawei-ike-peer-r1-r3]q [Huawei]ike
协商 【密钥管理】: 手动配置密钥 IKE协商密钥
IKE
有叫网络密钥交换协议 用于保护密钥传输和密钥的自动协商 使用Diffie-Hellman在不安全网络中安全分发密钥和验证身份 定时性的更新SA和密钥,实现完善的前向安全性 有效降低了手工部署的复杂度 工作在UDP端口500上
IKE与IPSec 的关系
IKE为IPSec提供自动协商服务,交换密钥,建立SA的服务 IPSec 安全协议负责提供实际的安全服务
IPSec 隧道建立的流程
【第一阶段】 IKE SA协商 协商出保护第二阶段的保护方案 【第二阶段】 IPsec SA协商 在IKE SA的保护下,协商出保护数据传输方案 SA
查找IKE SA, 找到则在IKE SA的保护下创建IPSec SA,并执行安全服务, 未找到则创建IKE SA
创建IKE SA后,在IKE SA的保护下,创建IPSec SA并执行安全服务 ;IKE keychain*/
[Router-ike-keychain-[name]]pre-shared-key [address [ip-address] / hostname [hostname
identity fqdn fw1 [FW1]ike keychain james [FW1-ike-keychain-james]pre-shared-key address 202.2.100.2 255.255.255.252 key simple james [FW1-ike-keychain-james]quit [FW1]ike proposal 1 [FW1-ike-proposal -1]quit [FW1]ike profile james [FW1-ike-profile-james]keychain james [FW1-ike-profile-james]proposal identity fqdn fw2 [FW2]ike proposal 1 [FW2-ike-proposal-1]quit [FW2]ike keychain james [FW2-ike-keychain-james [FW2-ike-profile-james]keychain james [FW2-ike-profile-james]proposal 1 [FW2-ike-profile-james]match
如何区分ike和ESP报文的? 由UDP4500承载的IKE报文。3.由UDP500承载的IKE报文。 然后我们假设不使用4500端口,而全部使用500端口来承载。之后会发生什么? B:让操作系统首先进入ESP报文的处理流程,然后为IKE报文加一个特殊的MARK,从而进行区分,识别到IKE报文。 最终,这个选择里,RFC们选择了B。理由是ESP报文的数量远远多与IKE报文。 还能再引申出一个新的问题:为什么不能保持ike的包继续沿用500端口,而只是将UDP封装的esp放在4500端口上?这样便不需要修改ike的格式(添加四个字节的0)了。 虽然在这种情况下,攻击仍然可以迫使vpp丢弃一些有效的ike报文。 关于简化,我只是赞成使用更简单的IKE实现。
定义需要保护的安全数据流 acl number 3000 rule 10 permit ip source 12.12.12.1 0 destination 23.23.23.3 0 # //定义IKE 对等体 ike peer to_rtb //使用预设口令身份验证 pre-shared-key 123 //对等体的IP地址 remote-address 23.23.23.3 # //定义IPSec to_rtb 1 isakmp //定义需要加密传送的ACL security acl 3000 //选择使用的IKE对等体 ike-peer to_rtb //选择安全策略 proposal to_rta 1 isakmp //定义需要加密传送的ACL security acl 3000 //选择使用的IKE对等体 ike-peer to_rta //选择安全策略 proposal sa和display ipsec sa查看ike和ipsec的sa建立情况。
其中, AH协议和ESP协议用于提供安全服务, IKE协议用于密钥交换。关于IKE的详细介绍请参见“1.2 IKE简介”。 IPsec 提供了两种安全机制:认证和加密。 · IKE 自动协商( isakmp)方式相对比较简单,只需要配置好 IKE 协商安全策略的信息,由 IKE自动协商来创建和维护 SA。 对于中、大型的动态网络环境中,推荐使用 IKE 协商建立 SA。 说明:Web 界面只支持配置 IKE 自动协商方式。 5. IPsec 与 IKE 的关系 ? 从 图 1-3中我们可以看出IKE和IPsec的关系: · IKE 是 UDP 之上的一个应用层协议,是 IPsec 的信令协议。 · IKE 提供端与端之间动态认证。
Security Association and Key Management Protocol (ISAKMP)端口号 2.UDP PORT 4500是 UDP-encapsulated ESP and IKE 端口号 首先解释一下正常IPSEC的封装和端口: 1.IPSEC建立分为三个阶段:phase1(建立IKE SA)、phase1.5(xauth,可选)、phase2(建立最终SA并协商SA参数) 从上面标黄色的描述可以看出,只有当IKE在阶段一进行NAT监测时候,发现网络中存在NAT,IKE会把端口从500改到4500,后续的ESP流量前面加一个UDP的头,端口4500 下面我找了一个详细的图来描述在 NAT环境下IPSEC的过程, 从上图中,可以看到刚开始用500,后面对方监测到有NAT,马上就把端口改到4500,同时追加UDP封装到IKE和ESP上面。 比如 有些的NAT设备具有端口固定的功能,也就是进行NAT转换后只改变地址而不改变端口,后续IKE协商如果继续用500端口协商就会出现问题