ipsec(AH和ESP)

阅读: 评论:0

ipsec(AH和ESP)
介绍
最初的IP协议是没有任何的安全措施的。IP数据报含有诸如源地址,⽬的地址,版本,长度,⽣存周期,承载协议,承载数据等字段。虽然其拥有“⾸部校验和”这样的字段来提供极其简易的完整性功能,但⽆⼒抗拒对数据的意外或者故意修改,也⽆法阻⽌信息的泄露等问题。
IPSec(Intemet Protocol Security)是由IEIF设计的⼀种端到端的确保IP层通信安全的机制,它不是⼀个单独的协议,⽽是⼀组协议。IPSec是IPv6的组成部分,也是IPv4的可选扩展协议。⽬前IPSec最主要的应⽤是构造虚拟专⽤⽹(VPN),它作为⼀个第三层隧道协议实现了VPN通信,可以为IP⽹络通信提供透明的安全服务,保证数据的完整性和机密性,有效抵御⽹络攻击。它所使⽤的加密算法和完整性验证算法从⽬前看来是不可能被破解的。定义IPSec协议簇的RFC如表3.5.1所⽰。
RFC内容
2401IPSec体系结构
2402AH协议
2403HMAC-MD5-96在AH和ESP中的应⽤
2404HMAC-SHA-1-96在AH和ESP中的应⽤
2405DES-CBC在ESP中的应⽤
2406ESP协议
2407IPSec DOI
2408ISAKMP协议
2409IKE协议
2410NULL加密算法及其在IPSec中的应⽤
2411IPSec⽂档路线图
2412OAKLEY协议
IPSec众多的RFC通过关系图组织在⼀起,IPSec各组件的关系图如图3.5.1所⽰。
它包含了三个最重要的协议:认证头AH(Authentication Header),封装安全载荷ESP(Encapsulati
ng Security Payload),密钥交换协议IKE(Internet Key Exchange),注意这些协议的使⽤均可独⽴于具体的加密算法:
(1)AH为IP数据包提供3种服务(统称验证):数据完整性验证,通过使⽤Hash函数(如MD5)产⽣的验证码来实现;数据完整性时加⼊⼀个共享的会话密钥来实现;防重放攻击,在AH报头中加⼊序列号可以防⽌重放攻击。
(2)ESP除了为IP数据包提供AH上述的3种服务外,还能够提供数据加密。
3.5.2 技术细节
(1)认证头(AH)
AH概述
IPSec的⼦协议头认证协议AH,为IP报⽂提供数据完整性验证和数据源⾝份认证,使⽤的是HMAC算法,HMAC算法和⾮常相似,⼀般是由Hash算法演变⽽来,也就是将输⼊报⽂和双⽅事先已经共享的对称密钥结合然后应⽤Hash算法。采⽤相同的HMAC算法并共享密钥的双⽅才能产⽣相同的验证数据。所有的IPSec必须实现两个算法:HMAC-MD5和HMAC-SHA1.
AH和ESP的最⼤区别有两个:⼀个是AH不提供加密服务,另⼀个是它们验证的范围不同,ESP不验证IP报头,⽽AH同时验证部分报头,所以需要结合使⽤AH和ESP才能保证IP报头的机密性和完整性。AH为IP报头提供尽可能多的验证保护,验证失败的包将被丢弃,不交给上层协议解密,这种操作模式可以减少拒绝服务攻击成功的机会。
AH头部格式
AH协议是被IP协议封装的协议之⼀,如果IP协议头部的“下⼀个头”字段是51,则IP包的载荷就是AH协议,在IP包头后⾯跟的就是AH协议头部。AH报⽂头部如图3.5.2所⽰。
8位8位16位
下⼀个头有效载荷长度保留
安全参数索引(SPI)
序列号
验证数据(可变长度)
(1)下⼀个头(8位):表⽰紧跟在AH头部后⾯的协议类型。在传输模式下,该字段是处于保护中的传输层协议的值,如
6(TCP),17(UDP)或50(ESP)。在隧道模式下,AH保护整个IP包,该值是4,表⽰是IP-in-IP协议。
(2)有效载荷长度(8位):其值是以32位(4字节)为单位的整个AH数据(包括头部和变长验证数据)的长度再减2。
(3)保留(16位):准备将来对AH协议扩展时使⽤,⽬前协议规定这个字段应该被置为0。
(4)安全参数索引SPI(32位):值为[256,2^32-1]。实际上它是⽤来标识发送⽅在处理IP数据包时使⽤了哪些安全策略,当接收⽅看到这个字段后就知道如何处理收到的IPsec包。
(5)序列号(32位):⼀个单调递增的计数器,为每个AH包赋予⼀个序号。当通信双⽅建⽴SA时,初始化为0。SA是单向的,每发送/接收⼀个包,外出/进⼊SA的计数器增1。该字段可⽤于抗重放攻击。
(6)验证数据:可变长,取决于采⽤何种消息验证算法。包含完整性验证码,也就是HMAC算法的结果,称为ICV,它的⽣成算法由SA指定。
(2)封装安全载荷(ESP)
ESP概述
ESP协议提供数据完整性验证和数据源⾝份认证的原理和AH⼀样,只是和AH⽐ESP的验证范围要⼩些。ESP协议规定了所有IPSec系统必须实现的验证算法:HMAC-MD5,HMAC-SHA1,NULL。和L2TP,GRE,AH等其他轨道技术相⽐,ESP具有特有的安全机制——加密,⽽且可以和其他隧道协议结合使⽤,为⽤户的远程通信提供更强⼤的安全⽀持。ESP加密采⽤的则是对称加密算法,它规定了所有IPSec系统必须实现的加密算法是DES-CBC和NULL,使⽤NULL是指实际上不进⾏加密或验证。
ESP头部格式
ESP协议是被IP协议封装的协议之⼀。如果IP协议头部的“下⼀个头”字段是50,IP包的载荷就是ESP协议,在IP包头后⾯跟的就是ESP协议头部。ESP报⽂头部如3.5.3所⽰,其中ESP头部包含SPI和序列号字段,ESP尾部包含填充项,填充长度和下⼀个头字段。
8位8位16位
安全参数索引(SPI)
序列号
报⽂有效载荷(长度可变)
填充项(可选)(长度可变)
填充长度下⼀个头
验证数据(可选)
(1)安全参数索引SPI(32位):值为[256,2^32-1]。
(2)序列号(32位):⼀个单调递增的计数器,为每个AH包赋予⼀个序号。当通信双⽅建⽴SA时,初始化为0。SA是单向的,每发送/接收⼀个包,外出/进⼊SA的计数器增1。该字段可⽤于抗重放攻击。
(3)报⽂有效载荷:是变长的字段,如果SA采⽤加密,该部分是加密后的密⽂;如果没有加密,该部分就是明⽂。
(4)填充项:是可选的字段,为了对齐待加密数据⽽根据需要将其填充到4字节边界。
(5)填充长度:以字节为单位指⽰填充项长度,范围为[0,255]。保证加密数据的长度适应分组加密算法的长度,也可以⽤以掩饰载荷的真实长度对抗流量分析。
(6)下⼀个头:表⽰紧跟在ESP头部后⾯的协议,其中值为6表⽰后⾯封装的是TCP。
(7)验证数据:是变长字段,只有选择了验证服务时才需要有该字段。
很多情况下,AH的功能已经能满⾜安全的需要,ESP由于需要使⽤⾼强度的加密算法,需要消耗更多的计算机运算资源,使⽤上受到⼀定限制。
在IPSec协议簇中使⽤两种不同功能的协议使得IPSec具有对⽹络安全细粒度的功能选则,便于⽤户依据⾃⼰的安全需要对⽹络进⾏灵活配置。
(3)IPSec的两种模式
a. 传输模式
传输模式(Transport Mode)是IPSec的默认模式,⼜称端到端(End-to-End)模式,它适⽤于两台主机之间进⾏IPSec通信。
传输模式下只对IP负载进⾏保护,可能是TCP/UDP/ICMP协议,也可能是AH/ESP协议。传输模式只为上层协议提供安全保护,在此种模式下,参与通信的双⽅主机都必须安装IPSec协议,⽽且它不能隐藏主机的IP地址。启⽤IPSec传输模式后,IPSec会在传输层包的前⾯增加AH/ESP头部或同时增加两种头部,构成⼀个AH/ESP数据包,然后添加IP头部组成IP包。在接收⽅,⾸先处理的是IP,然后再做IPSec处理,最后再将载荷数据交给上层协议。
IP头IPSec头IP载荷
传输模式的数据包结构
b. 隧道模式
隧道模式(Tunnel Mode)使⽤在两台⽹关之间,站点到站点(Site-to-Site)的通信。参与通信的两个⽹关实际是为了两个以其为边界的⽹络中的计算机提供安全通信的服务。
隧道模式为整个IP包提供保护,为IP协议本⾝⽽不只是上层协议提供安全保护。通常情况下只要使⽤IPSec的双⽅有⼀⽅是安全⽹关,就必须使⽤隧道模式,隧道模式的⼀个优点是可以隐藏内部主机和服务器的IP地址。⼤部分VPN都使⽤隧道模式,因为它不仅对整个原始报⽂加密,还对通信的源地址和⽬的地址进⾏部分和全部加密,只需要在安全⽹关,⽽不需要在内部主机上安装VPN软件,期间所有加密和
解密以及协商操作均由前者负责完成。
启⽤IPSec隧道模式后,IPSec将原始IP看作⼀个整体作为要保护的内容,前⾯加上AH/ESP头部,再加上新IP头部组成新IP包。隧道模式的数据包有两个IP头,内部头由路由器背后的主机创建,是通信终点;外部头由提供IPSec的设备(如路由器)创建,是IPSec的终点。事实上,IPSec的传输模式和隧道模式分别类似于其他隧道协议(如L2TP)的⾃愿隧道和强制隧道,即⼀个是由⽤户实施,另⼀个由⽹络设备实施。
外部IP头IPSec头内部IP头IP载荷
隧道模式下,隧道中的数据包结构
(4)⾝份验证与AH
AH通过对报⽂应⽤⼀个使⽤密钥的单向散列函数来创建⼀个散列或消息摘要来进⾏⾝份验证。散列与⽂本合在⼀起传输。接收⽅对接收到的报⽂运⽤同样的单向散列函数并将结果与发送⽅提供的消息摘要的值⽐较,从⽽检测报⽂在传输过程中是否有部分发⽣变化。由于单向散列也包含两个系统之间的⼀个共享密钥,因此能确保真实性。
AH作⽤于整个报⽂,但任意会在传输中改变的IP头字段除外。例如,由沿传输路径的路由器修改的⽣
存时间(Time to Live, TTL)字段是可变字段。
AH的处理过程顺序如下。
步骤1 使⽤共享密钥对IP头和数据载荷进⾏散列。
步骤2 散列构建⼀个新的AH头,插⼊到原始报⽂中。
步骤3 新报⽂路由器使⽤共享密钥对IP头和数据载荷进⾏散列,从AH头中取出传输的散列,再⽐较两个散列。
散列值必须精确匹配。如果报⽂传输中有⼀个⽐特位发⽣了变化,则接收到的报⽂的散列输出将改变,AH头将不能匹配。
AH⽀持HMAC-MD5和HMAC-SHA-1算法。在使⽤NAT的环境中,AH可能会遇到问题。
(5)使⽤ESP进⾏⾝份验证与加密
ESP通过加密载荷实现机密性,它⽀持多种对称加密算法。如果选择了ESP作为IPSec协议,也必须选择⼀种加密算法。IPSec的默认算法是56位DES。
ESP也能提供完整性和认证。⾸先对载荷加密,然后对加密过的载荷使⽤⼀种散列算法(HMAC-MD5或HMAC-SHA-1)。散列为数据载荷提供认证和数据完整性。
作为可选功能,ESP还能进⾏防重放保护。防重放保护验证每个报⽂是唯⼀的且没有被复制,这种保护确保⿊客不能拦截报⽂和在数据流中插⼊改变后的报⽂。防重放的⼯作原理是跟踪报⽂顺序号并在⽬的端使⽤⼀个滑动窗⼝。当在源和⽬的间建⽴了⼀条连接时,两端的计数器被初始化为0。每次有报⽂发送时,源给报⽂追加⼀个顺序号,⽬的端使⽤滑动窗⼝确定预期的顺序号。⽬的端验证的报⽂的顺序号不是复制的,并且以正确的顺序被接收。例如,如果⽬的端的滑动窗⼝设为1,⽬的端期望接收到顺序号为1的报⽂。收到这样的报⽂后,滑动窗⼝进⼊到2.如果检测到重放的报⽂,重放报⽂将被丢弃,对此事件记录⽇志。
原始数据通过ESP得到良好保护,因为完整的原始IP数据报和ESP附加尾部都被加密。使⽤ESP认证,加密的IP数据报和附加尾部以及ESP 头都得到散列进程处理。最后,⼀个新的IP头被附加到经过认证的载荷,使⽤新的IP地址在Internet中路由报⽂。
如果同时选择了认证和加密,先执⾏加密。这种处理顺序的⼀个原因是它有助于接收设备快速检测和丢弃重放的或伪造的报⽂。在解密报⽂之前,接收⽅可以认证进⼊的报⽂。这样可以快速检测到问题,并间接的降低了DoS攻击的影响。
(6)IPSec⼯作流程
(7)IPSec的好处
a.节约成本和⽅便⽹络管理
b.IPSec隧道可以⽤来创建安全的⽹络
c.IPSec隧道可以⽤来安全的远程管理
d.确保安全通信的认证和机密性
e.数据包认证提⾼了地址伪装与地址欺骗攻击的难度
f.通过non-end-to-end服务,IPSec可以确保⼀对或⼀组站点之间的消息都是加密的
转⾃:/nplus/note/149370

本文发布于:2023-05-05 22:18:12,感谢您对本站的认可!

本文链接:https://patent.en369.cn/patent/3/88896.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:协议   验证   数据   模式   加密
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2022 Comsenz Inc.Powered by © 369专利查询检索平台 豫ICP备2021025688号-20 网站地图