“智能密钥管家”IKE

embedded/2024/11/14 2:12:41/

IKE的出现

上一篇通过IPSec实现了BJ到CS的业务互通,但是是通过手工方式把加密和验证密钥手动配置,为了保障安全性,就需要经常去修改这些密钥,小型场景还好,来来回回就这2个点,

修改起来不算麻烦,但是随着企业业务发展,分支数量点增加,维护的工作量越大,最终需要投入更多成本进去。为了解决这个问题,智能密钥管家 IKE就出现了,它也加入了IPSec协议框架中,它为IPSec提供了在internet不安全的网络下建立出一个安全的隧道来完成密钥的自动协商、建立IPSec sa的功能,简化了IPSec的配置与维护工作。

IKE的组成

IKE也不是一个单独的协议,它有三大协议综合而成

(1)isakmp:(Internet Security Association Key Management Protocol),主要定义了IKE peer之间的建立过程(比如采用什么模式,每个模式下交互的内容,这个在后面建立IPSec的时候,会更加的直观)

(2)Oakley与SKEME协议的主要功能就是采用DH算法,在internet上安全的协商共同的密钥、身份验证,保证数据传输的安全性,并且并没有硬性规定只允许使用什么的加密验证算法,这使得扩展性非常好,只要有新的加密跟验证算法出来就能够直接融入进去。记得博主学的时候那会主流还是加密算法还是DES跟3DES,现在基本就以AES为主了。

IKE在IPSEC中实际作用

IKE可以实现在两个站点之间安全的进行认证身份,分发密钥,动态的建立IPSec SA,并且能够定期的维护与更新IPSec SA的信息,保证安全性。

图片

博主在补充个自己总结,在之前手工建立IPSec中,密钥都是由管理员自己定义,而IKE能够通过DH算法自动生成两边相同的密钥,并且这个密钥是有有效期的,到了定义的时间,它就会重新协商密钥,既解决了密钥的维护成本又保证了安全性,另外在建立IPSec SA的时候,IKE会先建立IKE SA,这个SA也是一个加密的安全隧道,它的作用是保障在internet不安全的网络下,构件一个安全隧道,然后两个peer之间在这个安全的隧道下进行协商IPSec SA。

IKE与ISAKMP

IKE的最终目标是协商两边站点之间建立动态的IPSec隧道,能够实时维护IPSec SA信息,而进行IKE工作则由ISAKMP报文来完成,在配置之前,了解下ISAKMP的报文,对于后续理解会很大的帮助。

图片

1、IP头部:源地址一般为出口接口地址,目的地址为对端发起IKE协商的地址,通常为对方设备接口的公网IP。

2、UDP头部:IKE通常情况下在两边都有公网地址(静/动态)的情况下,使用UDP500发起协商或者响应协商,但是当两边对接场景有一边没有公网地址(私网地址),则会用特殊的UDP4500端口号,这个后续在讲解NAT穿越的时候会详细讲解。

3、ISKAMP头部,这里讲解几个重要的字段,对于整个建立以及排错有帮助的。

  • initiator跟Responder Cookie,启动跟响应SA的建立、SA通知、SA删除,用于唯一标识一个IKE SA

  • Mjver(version):IKE的版本,目前有两个版本,IKEV1,以及IKEV2,目前应用还是IKEV1比较多(很多低端设备不支持IKEV2)

  • 交换类型(Exchange type):定义了ISKAMP消息交换顺序,在IKEV1中会有主模式以及野蛮模式、快速模式,它们之间的交互流程是不一样的(后面会介绍)

这些内容的目前做一个大致的了解,后续配合抓包分析,就会更加明了。

实验来感受IKE/IPSec结合

图片

IKE/IPSEC的组合是目前工作中主流的应用方式,后续就不在提及IKE/IPSEC的字样,就直接称呼为IPSec,在配置了IPSec之前跟手工的方式一样有几个注意的地方。(该拓扑配置记得保存,后面两篇会一直使用)

(1)BJ_FW到CS_FW公网可达

(2)BJ_FW和CS_FW上安全策略要允许两边的网段通过。

实际配置

这里基本的组网配置说下,双方都配置了出口地址以及内网地址,出口写了默认路由,并且安全策略直接是全放(简化环境),没有配置NAT策略。

互联网#interfaceGigabitEthernet0/0/0 ip address 202.100.1.254 255.255.255.0#interfaceGigabitEthernet0/0/1 ip address 202.100.2.254 255.255.255.0
BJ_FWinterfaceGigabitEthernet1/0/0 undo shutdown ip address 192.168.10.254 255.255.255.0#interfaceGigabitEthernet1/0/1 undo shutdown ip address 202.100.1.1 255.255.255.0 service-manage ping permit#firewall zone trust set priority 85 add interface GigabitEthernet0/0/0 add interface GigabitEthernet1/0/0#firewall zone untrust set priority 5 add interface GigabitEthernet1/0/1#ip route-static 0.0.0.00.0.0.0 202.100.1.254#security-policy default action permitCS_FWinterfaceGigabitEthernet1/0/0 undo shutdown ip address 192.168.20.254 255.255.255.0#interfaceGigabitEthernet1/0/1 undo shutdown ip address 202.100.2.1 255.255.255.0 service-manage ping permit#firewall zone trust set priority 85 add interface GigabitEthernet0/0/0 add interface GigabitEthernet1/0/0#firewall zone untrust set priority 5 add interface GigabitEthernet1/0/1#ip route-static 0.0.0.00.0.0.0 202.100.2.254#security-policy default action permit

图片

图片

两边的基本通信都正常了,下面开始基于IKE方式的IPSec配置。

图片

对比与手动配置来说,多了一个IKE的配置,少了SPI与密钥的配置,也体现出来了使用IKE动态的管理密钥的功能。

图片

ping通了,但是丢了两个包,一个是解析ARP丢的,另外一个就是IKE/IPSEC协商花费的时间。

图片

访问WEB也没问题,来看看IKE以及IPSEC在华为防火墙上面的体现。

IKE与IPSec SA在防火墙上面的体现

图片

图片

通过display ike sa,可以发现不管是BJFW还是CSFW都有对应的SA信息,但是对比来看,有有一些不太一样的地方,这里先了解几个比较重要的字段。

1、Conne-id:安全联盟索引值,便于快速查找对应的信息

2、Peer:这里为对端IP地址和端口号

3、Flag:可以看到BJ与CS多了一个ST,这里说几个关键的flag状态

  • RD:标识SA建立成功了

  • ST:表示是发起方,因为实验里面是由BJFW下面的PC主动发起的访问,自然触发了SA的协商

  • A:IPSEC策略组不处于备份状态,默认的状态,只要建立了都会有该标识。

4、V1:1以及V1:2,这里前面的V1表示IKEV1的版本,后面的1跟2表示阶段,1表示第一阶段,也就是IKE隧道协商,而2表示第二阶段,IPSEC sa的协商。

5、IP:对端用的ID类型,默认为IP,也可以使用别名

6、RmoteID:对端的ID,通常为对端的IKE协商或者响应的公网IP地址。

这些字段目前只是了解,后面在排错的时候会有很大的帮助,这里最关键的就是Flag的体现,它能够很好的反应出当前IKE与IPSEC进行到哪了。

图片

通过display ipse sa显示的内容,其实跟之前手动配置的IPSEC sa的内容大致是相同的,有几个不一样的地方,来看看。

1、mode:在手动的时候显示的是manual,用了IKE后变成了ISKAMP,也就是说是由IKE/ISKMAP来完成整个的IPSec协商。

2、tunnel的local与remote 后面多了一个:500,在手动的时候为0,这里为500,表示采用isakmp的UDP 500

3、多了一个flow source与destiantion:这个实际上就是体现出来哪些流量走IPSec SA隧道,192.168.10.0/255.255.255.0表示整个192.168.10.0的网段,后面的0/0-65535表示IP,也就是192.168.10.0访问192.168.20.0任意流量都走隧道。

4、outbound esp与inbound esp与手动其实是一样的,只是这里的SPI是随机生成。

“承上启下”

整体下来就是当192.168.10.1去访问192.168.20.2的时候,抵达BJ防火墙触发IPSEC sa建立,首先两边IKE/ISKAMP进行协商,建立一个安全的通道,然后在安全的通道下面完成IPSEC sa的建立,最终用户的实际数据流量通过这个IPSec SA的通道进行安全的传输。这个只是大致的流程,但是IKE具体是如何协商的,中间经历了什么样的变化,为什么是主模式与野蛮模式?下一篇 结合配置、抓包以及数据包的流动综合来全面了解整个IKE/IPSec是如何建立的。


http://www.ppmy.cn/embedded/115319.html

相关文章

【设计模式】Builder设计模式详解

Builder设计模式详解 1. 引言 在软件开发中,构建复杂对象时可能会遇到构造函数参数过多或构造对象的步骤复杂等问题。这时,Builder模式(建造者模式) 就能派上用场。Builder模式是一种创建型设计模式,它可以将对象的构建过程与对象的表示分离,使同样的构建过程可以创建不…

老古董Lisp实用主义入门教程(8):挠痒痒先生建网站记

是时候来个真正的应用 几位奇形怪状, 百无聊赖的先生, 用Common Lisp 搞东搞西一阵子, 总觉得没有干什么正经事. 一般而言, 学习编程语言总是应该先搞点计算, 让CPU燥起来. 但是Lisp搞计算总感觉有点不太对劲, 虽然颠倒先生已经尝试把数学公式改成中序以增强动力, 但是不行. 隔…

C# 继承父类,base指定构造函数

可以把常用方法定义为基类(子类继承的父类),不同子类支持更多方法或同样函数不同的实现方式,类似接口定义函数后,不同的类实现对应接口函数,根据new对应的类来调用对应的函数执行。 在C#中,如果…

Java 微服务框架 HP-SOA v1.1.4

HP-SOA 功能完备,简单易用,高度可扩展的Java微服务框架。 项目主页 : https://www.oschina.net/p/hp-soa下载地址 : https://github.com/ldcsaa/hp-soa开发文档 : https://gitee.com/ldcsaa/hp-soa/blob/master/README.mdQQ Group: 44636872, 66390394…

【HTTPS】中间人攻击和证书的验证

中间人攻击 服务器可以创建出一堆公钥和私钥,黑客也可以按照同样的方式,创建一对公钥和私钥,冒充自己是服务器(搅屎棍) 黑客自己也能生成一对公钥和私钥。生成公钥和私钥的算法是开放的,服务器能生产&…

redis常见类型设置、获取键值的基础命令

redis常见类型设置、获取键值的基础命令 获取键值的数据类型 命令:TYPE keyname 常见数据类型设置、获取键值的基本命令 string类型 置键值:set keyname valuename获取键值:get keyname删除: del keyname list类型 从左边向列表…

鸿蒙应用生态构建的核心目标

保护开发者和用户利益的同时维护整体系统的安全性,对生态构建者是至关重要的。以开发者为中心,构建端到端应用安全能力,保护应用自身安全、运行时安全,保障开发者权益,是鸿蒙应用生态构建的核心目标。 应用生命周期主要…

可转债量化策略研究,QMT如何获取可转债合约信息?

获取可转债合约信息 此函数被设计为专门用于单一转债的查询,能够提供详尽的转债信息。通过使用这个函数,您可以获取到深度的特定转债数据,包括其涨跌停价格、上市日期、退市日期和期权到期日等关键信息。这种全面的信息将成为您理解和分析转…