IP网络安全的基石——IPSec协议

认识IPSec

IPSec(IP Security)产生于IPv6的制定之中,用于提供IP层的安全性。由于所有支持TCP/IP协议的主机进行通信时,都要经过IP层的处理,所以提供了IP层的安全性就相当于为整个网络提供了安全通信的基础。鉴于IPv4的应用仍然很广泛,所以后来在IPSec的制定中也增添了对IPv4的支持。最初的一组有关IPSec标准由IETF在1995年制定,但由于其中存在一些未解决的问题,从1997年开始IETF又开展了新一轮的IPSec的制定工作,截至1998年11月份主要协议已经基本制定完成。不过这组新的协议仍然存在一些问题,预计在不久的将来IETF又会进行下一轮IPSec的修订工作。

IPSec提供了两种安全机制:认证(采用ipsec的AH)和加密(采用ipsec的ESP)。

· 认证机制使IP通信的数据接收方能够确认数据发送方的真实身份,以及数据在传输过程中是否遭篡改。

· 加密机制通过对数据进行编码来保证数据的机密性,以防数据在传输过程中被窃听。

AH(Authentication Header)和ESP(Encapsulating Security Payload,封装安全负载)都可以提供认证服务,不过,AH提供的认证服务要强于ESP。

IPSec主要功能为加密和认证,为了进行加密和认证,IPSec还需要有密钥的管理和交换的功能,以便为加密和认证提供所需要的密钥并对密钥的使用进行管理。以上三方面的工作分别由AH,ESP和IKE(Internet Key Exchange,Internet 密钥交换)三个协议规定。为了介绍这三个协议,需要先引人一个非常重要的术语SA(Security Association安全关联)。所谓安全关联是指安全服务与它服务的载体之间的一个“连接”。AH和ESP都需要使用SA,而IKE的主要功能就是SA的建立和维护。要实现AH和ESP,都必须提供对SA的支持。通信双方如果要用IPSec建立一条安全的传输通路,需要事先协商好将要采用的安全策略,包括使用的加密算法、密钥、密钥的生存期等。当双方协商好使用的安全策略后,我们就说双方建立了一个SA。SA就是能向其上的数据传输提供某种IPSec安全保障的一个简单连接,可以由AH或ESP提供。当给定了一个SA,就确定了IPSec要执行的处理,如加密,认证等。SA可以进行两种方式的组合,分别为传输临近和嵌套隧道。

IPSec的工作原理类似于包过滤防火墙,可以看作是对包过滤防火墙的一种扩展。当接收到一个IP数据包时,包过滤防火墙使用其头部在一个规则表中进行匹配。当找到一个相匹配的规则时,包过滤防火墙就按照该规则制定的方法对接收到的IP数据包进行处理。这里的处理工作只有两种:丢弃或转发。IPSec通过查询SPD(Security Po1icy Database安全策略数据库)决定对接收到的IP数据包的处理。但是IPSec不同于包过滤防火墙的是,对IP数据包的处理方法除了丢弃,直接转发(绕过IPSec)外,还有一种,即进行IPSec处理。正是这新增添的处理方法提供了比包过滤防火墙更进一步的网络安全性。进行IPSec处理意味着对IP数据包进行加密和认证。包过滤防火墙只能控制来自或去往某个站点的IP数据包的通过,可以拒绝来自某个外部站点的IP数据包访问内部某些站点,也可以拒绝某个内部站点对某些外部网站的访问。但是包过滤防火墙不能保证自内部网络出去的数据包不被截取,也不能保证进入内部网络的数据包未经过篡改。只有在对IP数据包实施了加密和认证后,才能保证在外部网络传输的数据包的机密性、真实性、完整性,通过Internet进行安全的通信才成为可能。IPSec既可以只对IP数据包进行加密,或只进行认证,也可以同时实施二者。但无论是进行加密还是进行认证,IPSec都有两种工作模式,一种是隧道模式,另一种是传输模式。

IPSec协议组

IPSec协议组包含Authentication Header(AH)协议、Encapsulating Security Payload(ESP)协议和Internet Key Exchange(IKE)协议,如图1所示,他们的功能如下。

AH协议定义了认证的应用方法,提供数据源认证和完整性保证;AH只涉及认证,不涉及加密。AH虽然在功能上和ESP有些重复,但AH除了可以对IP的有效负载进行认证外,还可以对IP头部实施认证。主要是处理数据时,可以对IP头部进行认证,而ESP的认证功能主要是面对IP的有效负载。为了提供最基本的功能并保证互操作性,AH必须包含对HMAC?/FONT>SHA和HMAC?/FONT>MD5(HMAC是一种SHA和MD5都支持的对称式认证系统)的支持。AH既可以单独使用,也可在隧道模式下,或和ESP联用。

ESP协议定义了加密和可选认证的应用方法,提供了可靠性保证。ESP协议主要用来处理对IP数据包的加密,此外对认证也提供某种程度的支持。ESP是与具体的加密算法相独立的,几乎可以支持各种对称密钥加密算法,例如DES、TripleDES、RC5等。为了保证各种IPSec实现间的互操作性,目前ESP必须提供对56位DES算法的支持。ESP协议数据单元格式由三个部分组成,除了头部、加密数据部分外,在实施认证时还包含一个可选尾部。头部有两个域:安全策略索引(SPl)和序列号(Sequence Number)。使用ESP进行安全通信之前,通信双方需要先协商好一组将要采用的加密策略,包括使用的算法、密钥以及密钥的有效期等。“安全策略索引”使用来标识发送方是使用哪组加密策略来处理IP数据包的,当接收方看到了这个序号就知道了对收到的IP数据包应该如何处理。“序列号”用来区分使用同一组加密策略的不同数据包。加密数据部分除了包含原IP数据包的有效负载外,填充域(用来保证加密数据部分满足块加密的长度要求)包含其余部分在传输时都是加密过的。其中“下一个头部(Next Header)”用来指出有效负载部分使用的协议,可能是传输层协议(TCP或UDP),也可能是IPSec协议(ESP或AH)。通常,ESP可以作为IP的有效负载进行传输,由于采用了这种封装形式,所以ESP可以使用旧有的网络进行传输。


图1 IP层协议安全结构

IKE协议主要是对密钥交换进行管理,它主要包括三个功能。

· 对使用的协议、加密算法和密钥进行协商。

· 方便的密钥交换机制(这可能需要周期性地进行)。

· 跟踪对以上这些约定的实施。

前面已经提到用IPSec进行加密可以有两种工作模式,意味着ESP协议有两种工作模式:传输模式(Transport Mode)和隧道模式(Tunnel Mode)。当ESP工作在传输模式时,采用当前的IP头部。而在隧道模式时,将整个IP数据包进行加密作为ESP的有效负载,并在ESP头部前增添以网关地址为源地址的新的IP头部,此时可以起到NAT的作用。在实际进行IP通信时,可以根据实际安全需求同时使用这两种协议或选择使用其中的一种。

熟悉IPSec的工作模式

IPSec有两种工作模式,分别是传输模式和隧道模式。在这两种模式下,分别可以使用AH头(IPSec认证头)或ESP头(IPSec ESP封装安全负荷头)两种方式进行安全封装,各种工作模式下的认证和加密原理如下。

(1)传输模式的认证

传输模式只对IP数据包的有效负载进行认证。此时,继续使用以前的IP头部,只对IP头部的部分域进行修改,而IPSec协议头部插入到IP头部和传输层头部之间,如图2所示。

(2)隧道模式的认证

隧道模式对整个IP数据色进行认证。此时,需要新产生一个IP头部,IPSec头部被放在新产生的IP头部和以前的IP数据包之间,从而组成一个新的IP头部,如图3所示。


图2 传输模式认证报文


图3 隧道模式认证报文

(3)传输模式的加密

传输模式只对IP数据包的有效负载进行加密。此时,继续使用以前的IP头部,只对IP头部的部分域进行修改,而IPSec协议头部插入到IP头部和传输层头部之间,如图4所示。


图4 传输模式加密报文

(4)隧道模式的加密

隧道模式对整个IP数据包进行加密。此时,需要新产生一个IP头部,IPSec头部被放在新产生的IP头部和以前的IP数据包之间,从而组成一个新的IP头部,如图5所示。


图5 隧道模式加密报文

AH头结构

AH协议为IP通信提供数据源认证、数据完整性和反重播保证,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是在每一个数据包上添加一个身份验证报头。此报头包含一个带密钥的Hash散列(可以将其当作数字签名,只是它不使用证书),此Hash散列在整个数据包中计算,因此对数据的任何更改将致使散列无效——这样就提供了完整性保护,如图6、图7所示。

· Next Header(下一个报头): 识别下一个使用IP协议号的报头,例如,Next Header值等于“6”,表示紧接其后的是TCP报头。

· Length(长度):AH报头长度。

· Security Parameters Index (SPI,安全参数索引):这是一个为数据报识别安全关联的 32 位伪随机值。SPI 值 0 被保留来表明“没有安全关联存在”。


图6 AH报文结构


图7 AH完整性检查报文

· Sequence Number(序列号):从1开始的32位单增序列号,不允许重复,唯一地标识了每一个发送数据包,为安全关联提供反重播保护。接收端校验序列号为该字段值的数据包是否已经被接收过,若是,则拒收该数据包。

· Authentication Data(AD,认证数据): 包含完整性检查和。接收端接收数据包后,首先执行Hash计算,再与发送端所计算的该字段值比较,若两者相等,表示数据完整,若在传输过程中数据遭修改,两个计算结果不一致,则丢弃该数据包。

ESP头结构

ESP为IP数据包提供完整性检查、认证和加密,可以看作是“超级 AH”, 因为它提供机密性并可防止篡改。如图8、图9所示。


图8 ESP头结构

· Security Parameters Index(SPI,安全参数索引):为数据包识别安全关联。

· Sequence Number(序列号):从1开始的32位单增序列号,不允许重复,唯一地标识了每一个发送数据包,为安全关联提供反重播保护。接收端校验序列号为该字段值的数据包是否已经被接收过,若是,则拒收该数据包。ESP报尾字段包括:

· Padding(扩展位):0-255个字节。DH算法要求数据长度(以位为单位)模512为448,若应用数据长度不足,则用扩展位填充。

· Padding Length(扩展位长度):接收端根据该字段长度去除数据中扩展位。

· Next Header(下一个报头):识别下一个使用IP协议号的报头,如TCP或UDP。

· ESP认证报尾字段:Authentication Data(AD,认证数据),它包含完整性检查和。完整性检查部分包括ESP报头、有效载荷(应用程序数据)和ESP报尾。


图9 ESP完整性检查报文结构

作者:羽扇纶巾

来源:51CTO

时间: 2024-10-28 16:35:18

IP网络安全的基石——IPSec协议的相关文章

JAVA之旅(三十二)——JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用

JAVA之旅(三十二)--JAVA网络请求,IP地址,TCP/UDP通讯协议概述,Socket,UDP传输,多线程UDP聊天应用 GUI写到一半电脑系统挂了,也就算了,最多GUI还有一个提示框和实例,我们暂时不讲了,我们直接来重点吧,关于JAVA的网络请求是怎么实现的?当然是HTTP协议,但是不可否认,他的概念和思想都是我们必须去涉及的,包括后面的tcp和socket等,好吧,我们开车吧! 一.JAVA网络请求概述 关于JAVA的网络请求,我们大致的可以分为以下几个分类 网络模式 OSI TCP

协议森林03 IP接力赛 (IP, ARP, RIP和BGP协议)

作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载.   网络层(network layer)是实现互联网的最重要的一层.正是在网络层面上,各个局域网根据IP协议相互连接,最终构成覆盖全球的Internet.更高层的协议,无论是TCP还是UDP,必须通过网络层的IP数据包(datagram)来传递信息.操作系统也会提供该层的socket,从而允许用户直接操作IP包. IP数据包是符合IP协议的信息(也就是0/1序列),我们后面简称IP数据包为IP包

这是网络安全的基石:密码学2016大盘点

2015年是密码学应用标志性的一年,2016年或许没有那么绚丽夺目,但全世界的研究人员仍在继续精进密码技术. TLS 1.3 设计完成 2016年密码学最大的实践发展,就是安全传输层协议(TSL) 1.3 版.TLS是应用广泛的重要加密协议,也是安全互联网通信的基础.在数百位研究人员和工程师长达数年的钻研之后,新的TLS设计从密码学的角度看终于可被认为是完工了.该协议如今支持Firefox.Chrome和Opera.虽然看起来像是个小版本升级,TLS 1.3 却是 TLS 1.2 的重大再设计(

用法治筑牢网络安全的基石

网络安全保障步入"法时代"!十二届全国人大常委会第二十四次会议7日表决通过了<中华人民共和国网络安全法>,在保护个人信息.打击网络诈骗.保护关键信息基础设施.网络实名制等方面作出明确规定.一条条红线,真正实现了"网络不是法外之地"的治理要求,也为网络安全的实现带来巨大期待空间. 在法治轨道上运行,网络才会有真安全.从二十多年前的64kbps网速到如今的全球最大4G网络,中国已是名副其实的网络大国.然而,"有了互联网,对付中国就有了办法.&quo

VPN隧道协议PPTP、L2TP、IPSec和SSLVPN

整理自网络: VPN (虚拟专用网)发展至今已经不在是一个单纯的经过加密的访问隧道了,它已经融合了访问控制.传输管理.加密.路由选择.可用性管理等多种功能,并在全球的 信息安全体系中发挥着重要的作用.也在网络上,有关各种VPN协议优缺点的比较是仁者见仁,智者见智,很多技术人员由于出于使用目的考虑,包括访问控制. 安全和用户简单易用,灵活扩展等各方面,权衡利弊,难以取舍;尤其在VOIP语音环境中,网络安全显得尤为重要,因此现在越来越多的网络电话和语音网关支 持VPN协议. 目前比较常见的VPN隧道

TCP/IP协议 详解

Transmission Control Protocol/Internet Protocol的简写,中译名为传输控制协议/因特网互联协议,又名网络通讯协议,是Internet最基本的协议.Internet国际互联网络的基础,由网络层的IP协议和传输层的TCP协议组成.TCP/IP 定义了电子设备如何连入因特网,以及数据如何在它们之间传输的标准.协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求.通俗而言:TCP负责发现传输的问题,一有问题就发出信号,要求重新传输,直到

安全工具netsh IPSec使用方法[ip安全策略]_DOS/BAT

netsh ipsec 使用方法 在命令行下,通过netsh ipsec static来配置IPSEC安全策略.前提是IPSEC服务已经打开. 一个IPSEC由一个或者多个规则组成:一个规则有一个IP筛选器列表和一个相应的筛选器操作组成:这个筛选器列表和筛选器可以是系统本身所没有的,如果没有则需要自行建立,而一个筛选器又由一个或多个筛选器组成,因此配置IPSEC的时候必须分步进行.规则由筛选器列表和筛选器操作构成.而且存放在策略里,策略器由策略器列表来存储,这样就决定了一个步骤:建立空的安全策略

TCP/IP协议的全部IP协议号

0 HOPOPT IPv6 逐跳选项 1 ICMP Internet 控制消息 2 IGMP Internet 组管理 3 GGP 网关对网关 4 IP IP 中的 IP(封装) 5 ST 流 6 TCP 传输控制 7 CBT CBT 8 EGP 外部网关协议 9 IGP 任何专用内部网关 (Cisco 将其用于 IGRP) 10 BBN-RCC-MON BBN RCC 监视 11 NVP-II 网络语音协议 12 PUP PUP 13 ARGUS ARGUS 14 EMCON EMCON 15

IP地址剖析及Win7下IPv6协议设置情况

  局域网中如果你的电脑IP地址与其他电脑的IP地址相同,就会发生冲突.今天深度xp系统下载站就和大家聊聊IP的问题,以及如何设置Windows7的IPv6协议. 每台电脑都需要有IP吗? 首先说说,为什么每台电脑都要有自己的IP呢?没有不行么?这么说吧,IP地址就好像你电脑的"门牌号",只有有了这个"门牌号",其他用户和电脑才能找到你的电脑.你跟其他电脑说"左转.左转.左转.再左转"肯定是无效的. 在局域网当中,每台电脑都有一个IP,同样在互联