浅析IPSec 安全机制

ESP传输模式拆解包流程 一、      ESP简介        ESP,封装安全载荷协议(Encapsulating SecurityPayloads),是一种Ipsec协议,用于对IP协议在传输过程中进行数据完整性度量、来源认证、加密以及防回放攻击。可以单独使用,也可以和AH一起使用。在ESP头部之前的IPV4、IPV6或者拓展头部,应该在Protocol(IPV4)或者Next Header(IPV6、拓展头部) 阅读详情
 

摘 要:针对网络层安全隐患,IETF提出了IPSec安全规范。本文论述了IPSec体系结构和它的几种工作方式以及现方法,分析了它提供安全服务的原理与机制。
关键词:IPSec;网络安全;认证头;封装安全载荷;安全联盟

1  引言
   安全问题始终是与Internet相关的一个重要话题,由于在IP协议设计之初没有充分考虑其安全性,因而在早期Internet上时常发生诸如某些企业、机构的网络遭到攻击、机密数据被窃取等不幸的事件。为了加强Internet的安全性,从1995年开始,IETF着手研究制订了一套用于保护IP通信的安全(IP Security)协议。IPSec提供了基于IP的网络层安全,它服务所有基于IP的网络通讯,对于上层协议应用来说是完全透明的。   
2  IPSec体系结构

 
图1  IPSec 体系结构图

    IPSec是一系列规范的集合,由安全联盟(Security association, SA)[1],安全协议(包括认证头(Authentication Header,AH)[2]、封将安全载荷ESP(Encapsulating Security Payload , ESP) [3]、密钥管理(Internet Key Management , IKE)[4]及认证和加密算法构成一个完整的安全体系。结构如图1所示。
2.1 安全联盟(SA)
    安全联盟是IPSec的基础,决定通信中采用的IPSec安全协议、散列方式、加密算法和密钥等安全参数,通常用一个三元组〈安全参数索引、目的IP地址、安全协议〉唯一表示。SA总是成对出现的,对等存在于通信实体的两端,是通信双方协商的结果。
    SA存放在安全联盟数据库(Security AssociationDatabase ,SAD)[1]中,另外IPSec环境中还维护一个安全策略数据库(Security Policy Database ,SPD)[1]。每个应用IPSec的网络接口都有SAD 和SPD各一对,协同处理进、出的IP包。一条SAD数据库记录对应一个SA。每条SPD记录描述了一种安全策略,指定了数据包处理动作(丢弃、旁路、应用)。发送数据时根据目的IP地址等参数先从SPD中得相应的策略记录,当记录的动作为“应用”时,根据记录中的SA指针从SAD中取得对应的SA(若不存在,需要调用IKE创建一个新的SA,并插入到SAD中),再利用SA指定的安全协议和认证加密算法对包进行安全处理后发送目的IP。接收端收到数据后通过报文中的SPI等参数找到SA ,检查是否是重传数据,如果不是则应用SA中指定的协议和算法对数据进行解密和验证。SPD对于同一IP地址可能有多条记录,这几条记录可能是相互冲突的,因此它必须是排序的,查找时也必须是顺序查询,实际只应用找到的第一条策略记录。
2.2 认证头(AH)
    AH支持数据的完整性和IP包的验证,数据的完整性的特征可以保证在传输中不可能发生未检测的修改,身份验证功能使末端系统或网络设备可以验证用户或应用程序,并根据需要过滤通讯量,它还可以防止在Internet上的地址欺骗攻击,此外,AH还能阻止在该区域的重复攻击。AH插入在IP包头和传输层包头之间,格式如表1所示。

表1 AH格式

    其中,下一个报头字段(8位)标识紧跟的报头类型。有效载荷属性(8位)指明整个AH的长度。SPI(32位)是一个随机值,与外部目的IP地址一起,用于指定SA。系列号(32位)标明当前IP包在整个数据包系列中的位置,这个字段是强制的,提供了抗重播功能,在SA创建时初始化为0,然后依次递增,达到232时则重新创建SA。即使某个特定的SA不要求抗重播功能,在发送端仍必须填写,只在接收端不进行重播检查。AH的最后的一个字段认证数据是可变长的,但必须双字对齐,其缺省长度为96位,为包的完整性验证值(Integrality Check Value ,ICV),它是SA指定的单向散列算法(One2Way Hash Alogrithm)、对称加密算法和密钥计算出来的身份验证码的删节。
2.3 封装安全载荷(ESP)
    AH不提供任何保密性服务,它不加密所保护的数据包。保密性服务由ESP提供:包括消息内容的保密性和有限的通信量的保密性,作为可选的功能,ESP也可以提供AH的验证服务。保密服务通过使用密码算法加密IP数据报的相关部分来实现,密码算法使用对称密码体制,如三重DES,RC5,IDEA,CAST等。ESP的基本思路是对整个IP包或者运输层数据进行封装,并对ESP数据的绝大部分进行加密。其包头格式如表2所示。


表2 ESP包头格式


   在ESP中,有的加密算法要求明文是某些字节的整数倍,所以ESP比AH多了一个长度为0~255字节的填充字段,这个字段也用于保证密文的双字对齐,同时它还隐藏了有效载荷的真正长度,从而为传输流量提供了一定的机密保护,但这个字段也增加了传输带宽。
2.4 密钥分配(IKE)
    进行IPSec通讯前必须先在通信双方建立SA,IKE用于动态建立SA(IPSec要求实现必须提供手工创建SA,目的是保证协议的互操作性)。IKE是一种混合型协议,它沿用了ISAKMP (Internet Security Association and Key Management Protocol)的框架、Oakley的模式以及SKEME (Secure Key Exchange Mechanism)的共享和密钥更新技术,组合成自己的验证加密材料生成技术和协商共享策略。
    IKE使用了ISAKMP两阶段协商机制。在第一阶段,通信各方彼此间建立了一个已通过身份验证和安全保护的通道,即建立ISAKMP SA。在第二阶段,利用第一阶段创建的SA,为IPSec协商具体的安全联盟。第一阶段IKE采用“主模式”(Main Mode)交换提供身份保护。而“野蛮模式”(Aggressive Mode)下应答次数相对较少,而且如果采用公开密钥加密算法,“野蛮模式”也可以提供身份保护;第二阶段,IKE定义了一种快速模式交换,协商创建一个用于通讯的SA,并完成密钥交换。一个第一阶段可以创建多个第二阶段,一个第二阶段可以创建多个SA,应用这种优化机制,至少每个SA建立过程减少一次交换和一次Diffie Hell- man (DH)求幂。ISAKMP是框架性的,IPSec解释域(Domain of Interpretation,DOI)对它进行了实例化处理,定义了标志的命名、载荷的解释等,IKE也是目前ISAKMP的唯一实例。
2.5 加密和认证算法
    高强度的加密和认证算法是IPSec达到安全性能的基础。 IPSec规定可以使用各种加密算法,由通信双方事前协商,但所有IPSec实现都必须支持DES。由于DES强度不够,而不对称算法效率往往又较低,3DES和AES(高级加密标准)等低开销高强度算法将成为IPSec实现的趋势。
    IPSec用HMAC作为认证散列算法,用于计算AH和ESP的ICV。在通信双方运用相同的算法和密钥对数据内容进行散列,结果一致则认为数据包是可信的。只要双方协商好,散列算法也可以是任意的,IPSec中定义了HMAC-SHA-1(Secure Hash Alogrithm Version 1)和MHAC-MD5  (Message Digest Version 5)作为缺省算法。

3  IPSec 服务内容
    IPSec通过AH和ESP机制为基于IP的网络通讯提供了内容机密性、源地址验证、数据完整性验证和抗重播保护等服务。
3.1 机密性服务
    IPSec提供了数据机密性服务,保证了数据在传输不被非法用户窃听,它由ESP提供,算法采用加密块链接(Cipher Block Chaining ,CBC)[5]方式,这样确保了即使是信息在传输中被窃听,非法用户也无法得知信息的真实内容。
3.2 源地址验证和完整性服务
    AH和ESP的认证数据均由单向散列函数对包中源IP地址、数据内容等传输过程中不变的字段计算出来的HMAC(Hash-Based Message Authentication Code)。HMAC具有唯一性,改动数据的内容将使其无法在接收端通过验证,从而保证了数据的源IP地址和信息内容不会在转发过程中被篡改。
3.3 抗重播服务
    IPSec AH和ESP头中都定义了一个系列号字段,它在一个SA生命周期内是唯一的,在接收端则采用滑动窗口技术,丢弃所有重播的包,从而进一步提供了IPSec的抗重播服务。

4  IPSec工作方式
    IPSec有两种工作方式:传输方式(Transport Mode)和隧道模式(Tunnel Mode),AH和ESP均可应用于这两种方式。传输方式通常应用于主机之间端对端通信,该方式要求主机支持IPSec。隧道方式应用于网关模式中,即在主机的网关(防火墙、路由器)上加载IPSec,,这个网关就同时升级为安全网关(Security Gateway ,SG) [1]。
4.1 传输方式
    传输模式主要为上层协议提供保护,AH和/或ESP包头插入在IP包头和运输层协议包头之间。其包结构如图2所示,显然传输模式下ESP并没有对IP包头加密处理,源、目的IP地址内容是可见的,而AH认证的是整个IP头,完整性保护强于ESP。
 
图2  传输方式包结构图

                                                                        
4.2 隧道方式
    在隧道方式下,整个IP包都封装在一个新的IP包中,并在新的IP包头和原来的IP包头之间插入IPSec头(AH/ ESP)。其结构如图3所示。
                                 
      图3   隧道方式包头结构

    从图3可以看出,在隧道模式下,如果应用了ESP,原始IP包头是加密的,真正的源、目的IP地址是隐藏的,新IP头中指定的源、目的IP地址一般是源、目的安全网关的地址。

5  IPSec实现
    IPSec协议文档中提供了三种具体的实现方案,将IPSec在主机、路由器/防火墙(创建一个安全网关)或两者中同时实施和部署,不管用何种方式实现,它对于上层协议和应用都是透明的。
    ①与操作系统(OS)集成实施。把IPSec当作网络层的一部分来实现,这种方式需要访问IP源码,利用IP层的服务来构建IP头。
    ②BITS方式。堆栈中的块”(Bump-in-the-stack ,BITS) [1]实现,修改通讯协议栈,把IPSec插入IP协议栈和链路层之间。这不需要处理IP源代码,适用于对原有系统的升级改造,通常用在主机方式中。
    ③BITW方式。线缆中的块(Bump-in-the-wire ,BITW) [1]实现,把IPSec作为一个插件,在一个直接接入路由器或主机的设备中实现。当用于支持一台主机时,与BITS实现非常相似,但在支持路由器或防火墙时,它必须起到一台安全网关的作用。

6  结论
    IPSec定义了一套用于认证、保护机密性和完整性的标准协议。它为上层协议提供了一个透明的端到端安全通道,实现与应用不需要修改应用程序或者上层协议。它支持一系列加密和散列算法,具有较好地扩展性和互操作性。但IPSec也存在一些缺点,如客户机/服务器模式下实现需要公钥来完成。IPSec需要已知范围的IP地址或固定范围的IP地址,因此在动态分配IP地址时不太适合于IPSec。

参考文献:
[1 ] Kent S ,Athinson R. Security architecture for the internet protocol [J ] .RFC 2401,1998.11
[2 ] Kent S ,Athinson R. IP authentication for the internet protocol [J ]. RFC2402.1998.11
[3 ] Kent S ,Athinson R. IP encapsulating security payload[J ].RFC2406.1998.11.
[4 ] Harkins R ,Carrell D. The internet key exchange[J ].RFC2409.1998.11
[5 ] Pereira R ,Adams R. The ESP CBC2Mode cipher algorithms [J ].RFC 2451.1998.11

商业虚拟专用网络技术五IPSec IPSec虚拟专用网:就是利用开放的公众IP/MPLS网络建立专用数据传输通道,将远程的分支机构、移动办公人员等连接起来。这个专用数据传输通道称为IPSec隧道,位于OSI模型的第三层,传送IP包。 IPSec实现访问控制、机密性、完整性校验、数据源验证、拒绝重播报文等安全功能。IPSec是运行在IP网络层,其上层TCP、UDP以及依赖于这些协议的应用协议都受到隧道的保护。 阅读详情

相关推荐

IPv6安全浅析

原文链接 :IPv6安全浅析 - Huawei - 2010.12 第52期 “缺乏安全性是互联网天生的弱点,这与是否采用IPv6关系不大。事实上,IPv6并没有引入新的安全问 题,反而由于IPSec的引入以及发送设备采用永久性IP地址而解决了网络层溯源难题,给网络安全提供了 根本的解决途径,有望实现端到端安全性。”中国电信科技委主任韦乐平这样评价IPv6安全。 IPv6协议设计的安全考虑 从...

Mlib 1万+

ipsec(AH和ESP)

介绍 最初的IP协议是没有任何的安全措施的。IP数据报含有诸如源地址,目的地址,版本,长度,生存周期,承载协议,承载数据等字段。虽然其拥有“首部校验和”这样的字段来提供极其简易的完整性功能,但无力抗拒对数据的意外或者故意修改,也无法阻止信息的泄露等问题。 IPSec(Intemet Protocol Security)是由IEIF设计的一种端到端的确保IP层通信安全的机制,它不是一个单

lyg920的专栏 5万+

海康VisionMaster图形定位实战:十字形Mark点精准匹配技巧

本文深入解析了海康VisionMaster图形定位模块在工业自动化中实现十字形Mark点精准匹配的实战技巧。文章从ROI设置、核心参数调优(如定位方式、尺度模式、对比度阈值)到工业场景应用与避坑指南,系统性地分享了提升匹配成功率和稳定性的关键步骤,帮助工程师应对复杂现场环境,实现高效、可靠的视觉定位。

weixin_29285605的博客 260

ipsec ip替换_Ipsec协议实现与IP实现的整合(2)

接上篇讲述的ipsec。原文链接:http://linux.chinaunix.net/techdoc/net/2008/02/01/977926.shtml2.1.11 发送处理2.1.11.1 实现思想首先要判断是否需要进行分片处理。转发的IP包,或者是本地产生的经过IPSec处理过的IP包的长度有可能大于发送接口的MTU,此时必须进行分片处理。分片结束后将IP包交给链路层处理模块,...

weixin_39587010的博客 395

《深入浅出强化学习原理入门》学习笔记(三)机器人找金币应用实例

《深入浅出强化学习原理入门》学习笔记(三)MDP应用实例

lxs3213196的博客 3187

cocos2dx中DrawNode画线锯齿和非凸多边形填充

记录一下在cocos2dx中使用DrawNode所遇到的2个问题 1.画线锯齿问题 ios版本下,在AppController.mm中设置CCEAGLView的multiSampling和numberOfSamples。如下图 CCEAGLView *eaglView = [CCEAGLView viewWithFrame: [window bounds]

hello-world 5414

安全防御 --- IPSec理论(01)

是IETF(Internet Engineering Task Force)制定的一组开放的网络安全协议,在IP层通过数据来源认证、数据加密、数据完整性和抗重放功能来保证通信双方Internet上传输数据的安全性。

weixin_62443409的博客 1万+

OK3588-C开发板Forlinx Desktop系统烧录与多媒体功能实战

本文详细介绍了OK3588-C开发板Forlinx Desktop系统的烧录步骤与多媒体功能实战。从硬件准备到软件工具配置,逐步解析RKDevTool烧录技巧,并深入测试摄像头、视频编解码及音频功能,帮助开发者快速掌握RK3588芯片的强大性能与Ubuntu系统的优化应用。

weixin_29190169的博客 417

GRE协议浅析-IELAB

1、GRE的概念 1)全称:GRE(Generic Routing Encapsulation):通用路由封装协议。 2)功能:定义了在一种网络层协议上封装另一种协议(或同一种协议)。 3)举例:对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。 4)所在层次:GRE是VPN(Virtual Private Network)的第三层隧道...

IE-lab网络实验室的博客 2053

张正友标定法-MATLAB实验

该方法最早由微软研究院的Zhengyou Zhang教授提出,1998年发表在IEEE TRANSACTIONS ON PATTERNANALYSIS AND MACHINE INTELLIGENCE,论文题目为:AFlexible New Technique for Camera Calibration。 (一)标定平面到图像平面的单应性 单应性(homography):在计算机视觉中被定义

qq_37845624的博客 8289

GROMACS新手必看:从PDB文件到完整分子动力学模拟的保姆级教程

本文提供GROMACS分子动力学模拟的保姆级教程,从PDB文件处理到完整模拟流程全覆盖。详细讲解结构预处理、系统构建、能量最小化、生产模拟等关键步骤,并分享性能优化和结果分析技巧,帮助新手快速掌握分子动力学模拟的核心操作。

yhn456789的博客 763

IPv6网络安全浅析

随着网络的发展,互联网上巨大的利益诱惑,使得互联网上的攻击并不像以往那么单纯了。现代网络周边环境的封闭性已经被打破,市场对于支持居家办公网络。随着网络的发展,互联网上巨大的利益诱惑,使得互联网上的攻击并不像以往那么单纯了。现代网络周边环境的封闭性已经被打破,市场对于支持居家办公网络、分支机构连通性网络、无线移动性网络和新的企业到企业网络的需求不断增加,确保网络安全性和可用性已经成为更加复杂的任务。基于IPv4协议的互联网向IPv6协议的下一代互联网发展已经是不争的发展之路,下一代互联网的研究和建设正逐步成为

2401_88857275的博客 1402

王者荣耀AI绝悟如何选英雄?

王者荣耀AI绝悟如何选英雄? 【抢射手?抢中单位?「绝悟」在打王者荣耀时是如何选英雄的?】 腾讯 AI Lab 开发的 AI 智能体「绝悟」已让王者峡谷不再只是人类召唤师的竞技场,而且这个 AI 战队在上月底进化成了「完全体」。在一局完整的比赛中,英雄选择阶段是至关重要的(比如五射手或五法师阵容会有官方劝退)。 近日,腾讯 AI Lab 和上海交通大学发布的一篇论文介绍了绝悟的英雄选择策略:Ju...

不断学习,不断进步,提高自己 1万+

IE-LAB:GRE协议浅析

1、GRE的概念 1)全称:GRE(Generic Routing Encapsulation):通用路由封装协议。 2)功能:定义了在一种网络层协议上封装另一种协议(或同一种协议)。 3)举例:对某些网络层协议(如IP和IPX)的数据报进行封装,使这些被封装的数据报能够在另一个网络层协议(如IP)中传输。 4)所在层次:GRE是VPN(Virtual Private Network)的第三层隧道...

aglaia89的博客 306

UFAST车道线检测 Ultra-Fast-Lane-Detection 从环境搭建到复现完成(一)

UFAST车道线检测 Ultra-Fast-Lane-Detection 从环境搭建到复现完成(一)

m0_46364958的博客 4345

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

GRE与MPLS 与IPSEC配置

IPSec(Internet Protocol Security) 2.1 术语解释 为了便于理解IPSec的工作原理,首先介绍一些数据加密和安全方面常用的一些术语和基本知识,然后再介绍IPSec的实现以及它如何在网络中提供安全通信的。这种介绍仅仅是一个概述并为后面讨论IPSec做一个铺垫。...

weixin_34128839的博客 1242

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

网安笔记12 IPsec

用处。

JamSlade的博客 2190

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

IPSEC原理及组成

1.IPsec介绍 IPsecurity是一套完整的加密系统   IPsec-VPN提供三个特性: authentication  每一个IP包的认证 data integrity  验证数据完整性,保证在传输过程中没有被人为改动 confidentiality(私密性)数据包的加密   2.IPsec组成 IPsec协议集包括三个协议: ①internet keyexch

LDF-Dicky的博客 4万+

IPsec协议族之AH和ESP协议

esp和ah

日积月累 4798

IPSec基础-IPSec体系结构

一、IPSec驱动程序 IPSec驱动程序负责监视、筛选和保护IP通信。它负责监视所有出入站IP数据包,并将每个 IP 数据包与作为 IP 策略一部分的 IP 筛选器相匹配。一旦匹配成功,IPSec驱动程序通知IKE开始安全协商。下图为IPSec驱动程序服务示意图。 在安全协商成功完成后,发送端IPSec驱动程序执行以下步骤: 1.从IKE处获得SA和会...

weixin_34192816的博客 397

IPsec知识

[1] (英语:Internet Protocol Security,缩写为IPsec),是一个协议包,透过对IP协议的分组进行加密和认证来保护IP协议的网络传输协议族(一些相互关联的协议的集合)。 中文名 互联网安全协议 外文名 Internet Protocol Security 本 质 开放标准的框架结构 作 用 保障网络安全 缩 写 IPsec 学 科 通信工程 ...

极客神殿 1723

网络安全——网络层安全协议(2)

本章将会讲解网络层的安全协议,了解IPSec体系结构,与工作原理。

zzz6583zz的博客 848

12、IPSec协议

IPSec协议 网络层安全协议IPSec是由IETF制定,为IPv4(可选)和IPv6(强制)协议提供基于加密安全的一个安全协议组。IPSec主要功能: 1)认证:确保通信的数据接收方能确定数据发送方的真实身份,以及确定数据在传输过程中是否遭到篡改。 2)加密:对数据进行加密,防止数据在传输过程中被窃听。 3)为了实现认证和加密,还需要有秘钥管理和交换的功能。 以上三方面的工作分别由AH、ESP和IKE三个组件实现。 1、IPSec协议族 1)IPSec协议定义了两种通信保护机制.

安全学习笔记 1万+

Linux内核中的IPSEC实现(4)

本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途。msn: yfydz_no1@hotmail.com来源:http://yfydz.cublog.cn 6. XFRM的其他操作 6.1 HASH处理 关于HASH值的计算方法主要在net/xfrm/xfrm_hash.h中定义: // IPV...

weixin_33849942的博客 449

运维/网工基础问题与问题排查思路

4、什么是TCP三次握手?5、如果网站打开的速度很慢,怎么解决?

m0_57945360的博客 375
上一篇: netfilter: Linux 防火墙在内核中的实现(“钓鱼”)
下一篇: 佛
max415
博客等级 码龄22年 16粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值