(十一)IPSec协议

IPSec协议

网络层安全协议IPSec是由IETF制定,为IPv4(可选)和IPv6(强制)协议提供基于加密安全的一个安全协议组。IPSec主要功能:

  • 1)认证:确保通信的数据接收方能确定数据发送方的真实身份,以及确定数据在传输过程中是否遭到篡改。
  • 2)加密:对数据进行加密,防止数据在传输过程中被窃听。
  • 3)为了实现认证和加密,还需要有秘钥管理和交换的功能。

 以上三方面的工作分别由AHESPIKE三个组件实现。

1、IPSec协议族

1)IPSec协议定义了两种通信保护机制:

鉴别头(AH,Authentication Header):AH机制为通信提供完整性保护。

封装安全载荷(ESP,Encapsulating Security Payload):ESP机制为通信提供机密性和完整性;

ESP机制和AH机制都能为通信提供抗重放(Anti-replay)攻击。

2)IPSec协议可以设置成在两种工作模式下运行:一种是隧道(tunnel)模式,另一种是传输(transport)模式

3)IPSec协议使用网络密钥交换协议(IKE,Internet Key Exchange)实现安全协议的自动安全参数协商。IKE协商的安全参数包括加密与鉴别算法、加密与鉴别密钥、通信的保护模式(传输或隧道模式)、密钥的生存期等。IKE将这些安全参数构成的集合称为安全关联(SA,security Association),还负责这些安全参数的刷新。

4)两个数据库:安全策略数据库SPD安全关联数据库SAD

5)DOI将所有的IPSec小组的文献捆绑在一起。它可以被认为是所有IPSec安全参数的主数据库。

2、IPSec的工作模式

传输模式:是IPSec的默认模式,又称端到端(End-to-End)模式,运行在两个端主机上,保护上层协议报文。传输模式是两个主机之间建立IPSec虚拟安全通道,传输模式没有改变原IP,只是在原IP和数据之间插入了一个IPSec头部,对IP数据包的有效数据负载进行加密和认证。

传输模式下只对IP负载(上层协议)进行保护,可能是TCP/UDP/ICMP协议,也可能是AH/ESP协议。在此种模式下,参与通信的双方主机都必须安装IPSec协议,而且它不能隐藏主机的IP地址。启用IPSec传输模式后,IPSec会在传输层包的前面增加AH/ESP头部或同时增加两种头部,构成一个AH/ESP数据包,然后添加IP头部组成IP包。在接收方,首先处理的是IP,然后再做IPSec处理,最后再将载荷数据交给上层协议。

主要应用场景:经常用于主机和主机之间端到端通信的数据保护。

隧道模式:协议用来封装IP数据报文,对整个IP数据包加密和认证,运行在网关或者主机上。隧道模式是对整个数据包封装加密保护,添加一个新的IP头部,隐藏内部主机和服务器的IP地址,IP信息也没有暴露,这样使数据传输更加安全。隧道模式一般用在站点和站点之间建立连接安全通道,两个站点下面的私有IP可以利用安全隧道通信。

启用IPSec隧道模式后,IPSec将原始IP看作一个整体作为要保护的内容,前面加上AH/ESP头部,再加上新IP头部组成新IP包。隧道模式的数据包有两个IP头,内部头由路由器背后的主机创建,是通信终点;外部头由提供IPSec的设备(如路由器)创建,是IPSec的终点。事实上,IPSec的传输模式和隧道模式分别类似于其他隧道协议(如L2TP)的自愿隧道和强制隧道,即一个是由用户实施,另一个由网络设备实施。

主要应用场景:经常用于私网与私网之间通过公网进行通信,建立安全VPN通道。

隧道模式比传输模式更加安全,因为两端的通信IP没有暴露。

3、AH

AH头对整个IP数据包认证,保证其完整性;但是也只是对传输过程中不变的部分认证,存在一些会变化的数据域;AH提供的安全服务:

  • 1)数据完整性:通过哈希(如MD5,SHA1)产生的校验来保证;
  • 2)数据源认证:通过在计算机验证时加入一个共享秘钥来实现;
  • 3)抗重放服务:AH报头中的序列号可以防止重放。 AH不提供任何保密性服务:它不加密所保护的数据包。 AH提供对数据包的保护时,它保护的是整个IP数据包(易变的字段除外,如IP头中的 TTL和TOS字段

 AH头:

  • 1)下一个头Next Header : AH header的下一个头部的协议号
  • 2)有效载荷长度Payload Length:AH header的长度
  • 3)保留Reserverd: 保留
  • 4)安全参数索引SPI : 安全的参数,目的地址和安全协议类型的组合,用于识别对这个包进行验证的安全联盟
  • 5) 序列号Sequence Number:  单调增加的32位无符号整数,利用该域抵抗重发攻击(Replay Attack)
  • 6验证数据(可变长度)Authentication Data: 是一个长度可变的域,长度为32比特的整数倍。具体格式因认证算法而异 。该认证数据也被称为数据报的完整性校验值(ICV)

ESP

ESP协议提供数据完整性验证和数据源身份认证的原理和AH一样,只是和AH比ESP的验证范围要小些。ESP协议规定了所有IPSec系统必须实现的数据完整性和认证算法:HMAC-MD5,HMAC-SHA1,NULL。和L2TP,GRE,AH等其他轨道技术相比,ESP具有特有的安全机制——加密(支持多种对称加密算法。如果选择了ESP作为IPSec协议,也必须选择(DES,3DES,AES等)中一种加密算法。IPSec的默认算法是56位DES。),而且可以和其他隧道协议结合使用,为用户的远程通信提供更强大的安全支持。ESP加密采用的则是对称加密算法,它规定了所有IPSec系统必须实现的加密算法是DES-CBC和NULL,使用NULL是指实际上不进行加密或验证。

ESP还能进行防重放保护。防重放保护验证每个报文是唯一的且没有被复制,这种保护确保黑客不能拦截报文和在数据流中插入改变后的报文。防重放的工作原理是跟踪报文顺序号并在目的端使用一个滑动窗口。当在源和目的间建立了一条连接时,两端的计数器被初始化为0。每次有报文发送时,源给报文追加一个顺序号,目的端使用滑动窗口确定预期的顺序号。目的端验证的报文的顺序号不是复制的,并且以正确的顺序被接收。例如,如果目的端的滑动窗口设为1,目的端期望接收到顺序号为1的报文。收到这样的报文后,滑动窗口进入到2.如果检测到重放的报文,重放报文将被丢弃,对此事件记录日志。

原始数据通过ESP得到良好保护,因为完整的原始IP数据报和ESP附加尾部都被加密。使用ESP认证,加密的IP数据报和附加尾部以及ESP头都得到散列进程处理。最后,一个新的IP头被附加到经过认证的载荷,使用新的IP地址在Internet中路由报文。

传输模式:

 隧道模式:

 如果同时选择了认证和加密,先执行加密。这种处理顺序的一个原因是它有助于接收设备快速检测和丢弃重放的或伪造的报文。在解密报文之前,接收方可以认证进入的报文。这样可以快速检测到问题,并间接的降低了DoS攻击的影响。

ESP头:

  • 1)安全参数索引SPI(32位):值为[256,2^32-1],标识一个安全关联,同AH中的SPI。需要指出的是,SPI本身可以被鉴别,但不会被加密,否则无法处理。
  • 2)序列号(32位):一个单调递增的计数器,为每个AH包赋予一个序号。当通信双方建立SA时,初始化为0。SA是单向的,每发送/接收一个包,外出/进入SA的计数器增1。该字段可用于抗重放攻击。同样序列号也不会被加密。
  • 3)报文有效载荷:是变长的字段,如果SA采用加密,该部分是加密后的密文;如果没有加密,该部分就是明文。
  • 4)填充项:是可选的字段,为了对齐待加密数据而根据需要将其填充到4字节边界,用于将明文扩充到所需要的长度,保证边界的正确,同时隐藏载荷数据的实际长度。
  • 5)填充长度:以字节为单位指示填充项长度,范围为[0,255]。保证加密数据的长度适应分组加密算法的长度,也可以用以掩饰载荷的真实长度对抗流量分析。
  • 6)下一个头:表示紧跟在ESP头部后面的协议,其中值为6表示后面封装的是TCP。
  • 7)验证数据:是变长字段,只有选择了验证服务时才需要有该字段。必须是32bit的整数倍,是在前面个字段基础上计算的出来的完整性校验值ICV。

猜你喜欢

转载自blog.csdn.net/weixin_42369053/article/details/119036384