详解IP安全:【IPSec协议簇 - AH协议 - ESP协议 - IKE协议】
大型网络系统内运行多种网络协议(TCP/IP、IPX/SPX和NETBEUA等),这些网络协议并非为安全通信设计。而其IP协议维系着整个TCP/IP协议的体系结构,除了数据链路层外,TCP/IP的所有协议的数据都是以IP数据报的形式传输的。TCP/IP协议族有两种IP版本:版本4(IPv4)和版本6(IPv6),IPv6是IPv4的后续版本,IPv6简化了IP头,其数据报更加灵活,同时IPv6还增
目录
IP安全概述
IPSec协议簇
IPSec的实现方式
AH(Authentication Header,认证头)
ESP(Encapsulating Security Payload,封装安全载荷)
IKE(Internet Key Exchange,因特网密钥交换)
IKE的两个阶段
IP安全概述
大型网络系统内运行多种网络协议(TCP/IP、IPX/SPX和NETBEUA等),这些网络协议并非为安全通信设计。而其IP协议维系着整个TCP/IP协议的体系结构,除了数据链路层外,TCP/IP的所有协议的数据都是以IP数据报的形式传输的。
TCP/IP协议族有两种IP版本:版本4(IPv4)和版本6(IPv6),IPv6是IPv4的后续版本,IPv6简化了IP头,其数据报更加灵活,同时IPv6还增加了对安全性的考虑。
目前占统治地位的是IPv4,IPv4在设计之初没有考虑安全性,IP数据包本身并不具备任何安全特性,导致在网络上传输的数据很容易受到各式各样的攻击:比如伪造IP包地址、修改其内容、重播以前的包以及在传输途中拦截并查看包的内容等。因此,通信双方不能保证收到IP数据报的真实性。
IPSec协议簇
为了加强因特网的安全性,从1995年开始,IETF着手制定了一套用于保护IP通信的IP安全协议(IP
Security,IPSec)。IPSec是IPv6的一个组成部分,是IPv4的一个可选扩展协议。IPSec弥补了IPv4在协议设计时缺乏安全性考虑的不足。
IPSec定义了一种标准的、健壮的以及包容广泛的机制,可用它为IP以及上层协议(比如TCP或者UDP)提供安全保证。IPSec的目标是为IPv4和IPv6提供具有较强的互操作能力、高质量和基于密码的安全功能,在IP层实现多种安全服务,包括访问控制、数据完整性、机密性等。
IPSec通过支持一系列加密算法如DES、三重DES、IDEA和AES等确保通信双方的机密性。
IPSec协议簇中主要包括三个协议:IKE/AH/ESP
-
IKE(Internet Key Exchange,因特网密钥交换):IKE协议是一种基于UDP的应用层协议,它主要用于SA协商和密钥管理。
-
AH协议(Authentication Header,验证头):可以证明数据的 起源地、保障数据的完整性以及防止相同数据包在因特网重播。
-
ESP协议(Encapsulating Security Payload,封装安全载荷):具有所有AH的功能,还可以利用加密技术保障数据机密性。
AH虽然可以保护通信免受窜改, 但并不对数据进行变形转换, 数据对于黑客而言仍然是清晰的。为了有效地保证数据传输安全,
ESP进一步提供数据保密性并防止窜改。也就是说,AH提供数据的可靠性和完整性,但机密性由ESP保护。虽然AH和ESP都可以提供身份认证,但它们有2点区别:
ESP要求使用高强度的加密算法,会受到许多限制。 多数情况下,使用AH的认证服务已能满足要求,相对来说,ESP开销较大。
同时有两套不同的安全协议意味着可以对IPSec网络进行更细粒度的控制,选择安全方案可以有更大的灵活度。
IPSec的实现方式
IPSec的实现方式有两种:传输模式和隧道模式,都可用于保护通信。
传输模式用于两台主机之间,保护传输层协议头,实现端到端的安全性。
当数据包从传输层传送给网络层时,AH和ESP会进行拦截,在IP头与上层协议之间需插入一个IPSec头。当同时应用AH和ESP到传输模式时,应该先应用ESP,再应用AH。
传输模式的封包如下所示
隧道模式用于主机与服务器,或者服务器与服务器之间,保护整个IP数据包,将整个IP数据包进行封装(称为内部IP头),然后增加一个IP头(称为外部IP头),并在内部与外部IP头之间插入一个IPSec头。
隧道模式的封包如下所示
IPSec可在终端主机、网关/路由器或者两者中同时进行实施和配置。至于IPSec在网络什么地方配置,则由用户对安全保密的要求来决定。
在需要确保端到端的通信安全时,在主机实施显得尤为有用。 然而,在需要确保网络一部分的通信安全时,在路由器中实施IPSec就显得非常重要。
AH(Authentication Header,认证头)
AH为IP报文提高能够数据完整性校验和身份验证,还具备可选择的重放攻击保护,但不提供数据加密保护。
AH不对受保护的IP数据报的任何部分进行加密,除此之外,AH具有ESP的所有其他功能。 AH和ESP同时保护数据,在顺序上,AH在ESP之后,AH格式如图:
头部(8位)表示AH后的载荷类型,传输模式下是6(TCP)或17(UDP),隧道模式下是5 (TCP)或41(UDP)。
载荷长度(8位)是整个AH的长度减2,长度以32为单位。保留(16)位是保留字段,全为0。
安全参数索引(32位)与外部IP头的目的地址一起对报文进行身份验证和完整性校验,序列号(32位)是一个单向递增的计数器,提供抗重播能力。验证数据的长度由具体的验证算法决定。
对AH的处理分成2部分:
- 对发送的数据包添加AH头
- 对收到的含有AH的数据包进行还原
ESP(Encapsulating Security Payload,封装安全载荷)
ESP为IP报文提供数据完整性校验、身份验证、数据加密以及重放攻击保护等。 除了AH提供的所有服务外,还提供机密性服务。
ESP可在传输模式以及隧道模式下使用。ESP头可以位于IP头与上层协议之间,或者用它封装整个IP数据报。ESP头的格式 :
安全参数索引(32位)用于标识处理数据包的安全关联。 序列号(32位)与AH类似,提供抗重放攻击。 填充项(0~255位),长度由具体加密算法决定。
填充长度(8位):接收端可以恢复的数据载荷的真实长度。 下一头部(8位):表示受ESP保护的载荷的类型。
在传输模式下可能是6(TCP)或17(UDP),在隧道模式下可能是5(IPv4)或41(IPV6)
AH和ESP可以单独使用,也可以同时使用。AH和ESP同时使用时,报文会先进行ESP封装,再进行AH封装;IPsec解封装时,先进行AH解封装,再进行ESP解封装。
IKE(Internet Key Exchange,因特网密钥交换)
整个IKE协议规范主要由3个文档定义:RFC2407、RFC2408和RFC2409
- RFC2407定义了因特网IP安全解释域
- RFC2408描述了因特网安全关联和密钥管理协议(Internet Security Association and Key Manangement Protocol,ISAKMP)
- RFC2409描述了IKE协议如何利用Oakley,SKEME和ISAKMP进行安全关联的协商
以下文本来自于华为官网:
IKE协议属于一种混合型协议,它综合了ISAKMP(Internet Security Association and Key Management
Protocol)、Oakley协议和SKEME协议这三个协议。其中,ISAKMP定义了IKE
SA的建立过程,Oakley和SKEME协议的核心是DH(Diffie-
Hellman)算法,主要用于在Internet上安全地分发密钥、验证身份,以保证数据传输的安全性。IKE SA和IPSec
SA需要的加密密钥和验证密钥都是通过DH算法生成的,它还支持密钥动态刷新。
IKE的两个阶段
IKE的第一阶段——主模式交换和积极模式交换
第一阶段的主要任务是建立IKE SA,为后面的交换提供一个安全通信信道。
使用主模式交换和积极模式交换。这两种模式都可以建立SA,两者的区别在于积极模式只用到主模式一半的消息,因此积极模式的协商能力受到限制的,而且它不提供身份保护。但是积极模式可以有一些特殊用途,比如远程访问等。
另外如果发起者已经知道响应者的策略,利用积极模式可以快速的建立IKE SA。
主模式和积极模式都允许4中不同的验证方法:
- 预共享密钥
- DSS数字签名
- RSA数字签名
- 交换加密
IKE的第二阶段——快速模式交换
快速模式交换主要是为通信双方协商IPSec SA的具体参数,并生成相关密钥。 IKE
SA通过数据加密、消息验证来保护快速模式交换。快速模式交换和第一阶段交换相互关联,来产生密钥材料和协商IPSec的共享策略。 快速模式交换的信息由IKE
SA保护,即除了ISA KMP报头外,所有的载荷都需要加密,并且还要对消息进行验证。
如果你也想学习:黑客&网络安全的SQL攻防
![](https://img-
blog.csdnimg.cn/img_convert/d6f09a07b59af3c6cfbcfd59819ef3c4.png)
这个是我花了几天几夜自整理的最新最全网安学习资料包免费共享给你们,其中包含以下东西:
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/a75ac242398c41dda98cdd4fd739ce8d.png#pic_center)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/8b82dd4edd07450c9074a7bd12e1b89a.png#pic_center)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/da5380b7a1dc45c9be6045ec5e413eaa.png#pic_center)
![在这里插入图片描述](https://img-
blog.csdnimg.cn/direct/c41dc121bf364201976731c5eba454cc.png#pic_center)
接下来我将给各位同学划分一张学习计划表!
学习计划
那么问题又来了,作为萌新小白,我应该先学什么,再学什么?
既然你都问的这么直白了,我就告诉你,零基础应该从什么开始学起:
阶段一:初级网络安全工程师
接下来我将给大家安排一个为期1个月的网络安全初级计划,当你学完后,你基本可以从事一份网络安全相关的工作,比如渗透测试、Web渗透、安全服务、安全分析等岗位;其中,如果你等保模块学的好,还可以从事等保工程师。
综合薪资区间6k~15k
1、网络安全理论知识(2天)
①了解行业相关背景,前景,确定发展方向。
②学习网络安全相关法律法规。
③网络安全运营的概念。
④等保简介、等保规定、流程和规范。(非常重要)
2、渗透测试基础(1周)
①渗透测试的流程、分类、标准
②信息收集技术:主动/被动信息搜集、Nmap工具、Google Hacking
③漏洞扫描、漏洞利用、原理,利用方法、工具(MSF)、绕过IDS和反病毒侦察
④主机攻防演练:MS17-010、MS08-067、MS10-046、MS12-20等
3、操作系统基础(1周)
①Windows系统常见功能和命令
②Kali Linux系统常见功能和命令
③操作系统安全(系统入侵排查/系统加固基础)
4、计算机网络基础(1周)
①计算机网络基础、协议和架构
②网络通信原理、OSI模型、数据转发流程
③常见协议解析(HTTP、TCP/IP、ARP等)
④网络攻击技术与网络安全防御技术
⑤Web漏洞原理与防御:主动/被动攻击、DDOS攻击、CVE漏洞复现
5、数据库基础操作(2天)
①数据库基础
②SQL语言基础
③数据库安全加固
6、Web渗透(1周)
①HTML、CSS和JavaScript简介
②OWASP Top10
③Web漏洞扫描工具
④Web渗透工具:Nmap、BurpSuite、SQLMap、其他(菜刀、漏扫等)
那么,到此为止,已经耗时1个月左右。你已经成功成为了一名“脚本小子”。那么你还想接着往下探索吗?
阶段二:中级or高级网络安全工程师(看自己能力)
综合薪资区间15k~30k
7、脚本编程学习(4周)
在网络安全领域。是否具备编程能力是“脚本小子”和真正网络安全工程师的本质区别。在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。在分秒必争的CTF竞赛中,想要高效地使用自制的脚本工具来实现各种目的,更是需要拥有编程能力。
零基础入门的同学,我建议选择脚本语言Python/PHP/Go/Java中的一种,对常用库进行编程学习
搭建开发环境和选择IDE,PHP环境推荐Wamp和XAMPP,IDE强烈推荐Sublime;
Python编程学习,学习内容包含:语法、正则、文件、 网络、多线程等常用库,推荐《Python核心编程》,没必要看完
用Python编写漏洞的exp,然后写一个简单的网络爬虫
PHP基本语法学习并书写一个简单的博客系统
熟悉MVC架构,并试着学习一个PHP框架或者Python框架 (可选)
了解Bootstrap的布局或者CSS。
阶段三:顶级网络安全工程师
如果你对网络安全入门感兴趣,那么你需要的话可以点击这里👉网络安全重磅福利:入门&进阶全套282G学习资源包免费分享!
学习资料分享
当然,只给予计划不给予学习资料的行为无异于耍流氓,这里给大家整理了一份【282G】的网络安全工程师从入门到精通的学习资料包,可点击下方二维码链接领取哦。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)