[转帖] IPsec相关知识 --未知来源
目 录
IPsec
IPsec简介
IPsec的协议实现
IPsec基本概念
加密卡
IPsec虚拟隧道接口
使用IPsec保护IPv6路由协议
IKE
IKE简介
IKE的安全机制
IKE的交换过程
IKE在IPsec中的作用
IPsec与IKE的关系
IPsec
IPsec简介
l 数据机密性(Confidentiality):IPsec发送方在通过网络传输包前对包进行加密。
l 数据完整性(Data Integrity):IPsec接收方对发送方发送来的包进行认证,以确保数据在传输过程中没有被篡改。
l 数据来源认证(Data Authentication):IPsec在接收端可以认证发送IPsec报文的发送端是否合法。
l 防重放(Anti-Replay):IPsec接收方可检测并拒绝接收过时或重复的报文。
l 支持IKE(Internet Key Exchange,因特网密钥交换),可实现密钥的自动协商功能,减少了密钥协商的开销。可以通过IKE建立和维护SA的服务,简化了IPsec的使用和管理。
l 所有使用IP协议进行数据传输的应用系统和服务都可以使用IPsec,而不必对这些应用系统和服务本身做任何修改。
l 对数据的加密是以数据包为单位的,而不是以整个数据流为单位,这不仅灵活而且有助于进一步提高IP数据包的安全性,可以有效防范网络攻击。
IPsec的协议实现
IPsec协议不是一个单独的协议,它给出了应用于IP层上网络数据安全的一整套体系结构,包括网络认证协议AH(Authentication Header,认证头)、ESP(Encapsulating Security Payload,封装安全载荷)、IKE(Internet Key Exchange,因特网密钥交换)和用于网络认证及加密的一些算法等。其中,AH协议和ESP协议用于提供安全服务,IKE协议用于密钥交换。关于IKE的详细介绍请参见“2 IKE配置”,本节不做介绍。
IPsec提供了两种安全机制:认证和加密。认证机制使IP通信的数据接收方能够确认数据发送方的真实身份以及数据在传输过程中是否遭篡改。加密机制通过对数据进行加密运算来保证数据的机密性,以防数据在传输过程中被窃听。
IPsec协议中的AH协议定义了认证的应用方法,提供数据源认证和完整性保证;ESP协议定义了加密和可选认证的应用方法,提供数据可靠性保证。
l AH协议(IP协议号为51)提供数据源认证、数据完整性校验和防报文重放功能,它能保护通信免受篡改,但不能防止窃听,适合用于传输非机密数据。AH的工作原理是在每一个数据包上添加一个身份验证报文头,此报文头插在标准IP包头后面,对数据提供完整性保护。可选择的认证算法有MD5(Message Digest)、SHA-1(Secure Hash Algorithm)等。
l ESP协议(IP协议号为50)提供加密、数据源认证、数据完整性校验和防报文重放功能。ESP的工作原理是在每一个数据包的标准IP包头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾。与AH协议不同的是,ESP将需要保护的用户数据进行加密后再封装到IP包中,以保证数据的机密性。常见的加密算法有DES、3DES、AES等。同时,作为可选项,用户可以选择MD5、SHA-1算法保证报文的完整性和真实性。
在实际进行IP通信时,可以根据实际安全需求同时使用这两种协议或选择使用其中的一种。AH和ESP都可以提供认证服务,不过,AH提供的认证服务要强于ESP。同时使用AH和ESP时,设备支持的AH和ESP联合使用的方式为:先对报文进行ESP封装,再对报文进行AH封装,封装之后的报文从内到外依次是原始IP报文、ESP头、AH头和外部IP头。
IPsec基本概念
1. 安全联盟(Security Association,SA)
IPsec在两个端点之间提供安全通信,端点被称为IPsec对等体。
SA由一个三元组来唯一标识,这个三元组包括SPI(Security Parameter Index,安全参数索引)、目的IP地址、安全协议号(AH或ESP)。
SPI是用于唯一标识SA的一个32比特数值,它在AH和ESP头中传输。在手工配置SA时,需要手工指定SPI的取值。使用IKE协商产生SA时,SPI将随机生成。
通过IKE协商建立的SA具有生存周期,手工方式建立的SA永不老化。IKE协商建立的SA的生存周期有两种定义方式:
2. 封装模式
l 隧道(tunnel)模式:用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中。通常,隧道模式应用在两个安全网关之间的通讯。
不同的安全协议在tunnel和transport模式下的数据封装形式如图1-1所示,data为传输层数据。
图 1 安全协议数据封装格式
3. 认证算法与加密算法
(1) 认证算法
认证算法的实现主要是通过杂凑函数。杂凑函数是一种能够接受任意长的消息输入,并产生固定长度输出的算法,该输出称为消息摘要。IPsec对等体计算摘要,如果两个摘要是相同的,则表示报文是完整未经篡改的。IPsec使用两种认证算法:
l MD5:MD5通过输入任意长度的消息,产生128bit的消息摘要。
l SHA-1:SHA-1通过输入长度小于2的64次方bit的消息,产生160bit的消息摘要。
MD5算法的计算速度比SHA-1算法快,而SHA-1算法的安全强度比MD5算法高。
(2) 加密算法
加密算法实现主要通过对称密钥系统,它使用相同的密钥对数据进行加密和解密。目前设备的IPsec实现三种加密算法:
l DES(Data Encryption Standard):使用56bit的密钥对一个64bit的明文块进行加密。
l 3DES(Triple DES):使用三个56bit的DES密钥(共168bit密钥)对明文进行加密。
l AES(Advanced Encryption Standard):使用128bit、192bit或256bit密钥长度的AES算法对明文进行加密。
这三个加密算法的安全性由高到低依次是:AES、3DES、DES,安全性高的加密算法实现机制复杂,运算速度慢。对于普通的安全要求,DES算法就可以满足需要。
4. 协商方式
有如下两种协商方式建立SA:
l 手工方式(manual)配置比较复杂,创建SA所需的全部信息都必须手工配置,而且不支持一些高级特性(例如定时更新密钥),但优点是可以不依赖IKE而单独实现IPsec功能。
l IKE自动协商(isakmp)方式相对比较简单,只需要配置好IKE协商安全策略的信息,由IKE自动协商来创建和维护SA。
当与之进行通信的对等体设备数量较少时,或是在小型静态环境中,手工配置SA是可行的。对于中、大型的动态网络环境中,推荐使用IKE协商建立SA。
5. 安全隧道
安全隧道是建立在本端和对端之间可以互通的一个通道,它由一对或多对SA组成。
加密卡
IPsec在设备上可以通过软件实现,还可以通过加密卡实现。通过软件实现,由于复杂的加密/解密、认证算法会占用大量的CPU资源,从而影响设备整体处理效率;而通过加密卡,复杂的算法处理在硬件上进行,从而提高了设备的处理效率。
加密卡进行加/解密处理的过程是:设备将需要加/解密处理的数据发给加密卡,加密卡对数据进行处理,然后加密卡将处理后的数据发送回设备,再由设备进行转发处理。
IPsec虚拟隧道接口
1. 概述
2. 工作原理
IPsec虚拟隧道接口对报文的加封装/解封装发生在隧道接口上。用户流量到达实施IPsec配置的设备后,需要IPsec处理的报文会被转发到IPsec虚拟隧道接口上进行加封装/解封装。
如图1-2所示,IPsec虚拟隧道接口对报文进行加封装的过程如下:
图 2 IPsec虚接口隧道加封装原理图
(1) Router将从入接口接收到的IP明文送到转发模块进行处理;
(2) 转发模块依据路由查询结果,将IP明文发送到IPsec虚拟隧道接口进行加封装:原始IP报文被封装在一个新的IP报文中,新IP头中的源地址和目的地址分别为隧道接口的源地址和目的地址。
(3) IPsec虚拟隧道接口完成对IP明文的加封装处理后,将IP密文送到转发模块进行处理;
(4) 转发模块进行第二次路由查询后,将IP密文通过隧道接口的实际物理接口转发出去。
如图1-3所示,IPsec虚拟隧道接口对报文进行解封装的过程如下:
图 3 IPsec虚接口隧道解封装原理图
(1) Router将从入接口接收到的IP密文送到转发模块进行处理;
(2) 转发模块识别到此IP密文的目的地为本设备的隧道接口地址且IP协议号为AH或ESP时,会将IP密文送到相应的IPsec虚拟隧道接口进行解封装:将IP密文的外层IP头去掉,对内层IP报文进行解密处理。
(3) IPsec虚拟隧道接口完成对IP密文的解封装处理之后,将IP明文重新送回转发模块处理;
(4) 转发模块进行第二次路由查询后,将IP明文从隧道的实际物理接口转发出去。
从上面描述的加封装/解封装过程可见,IPsec虚拟隧道接口将报文的IPsec处理过程区分为两个阶段:“加密前”和“加密后”。需要应用到加密前的明文上的业务(例如NAT、QoS),可以应用到隧道接口上;需要应用到加密后的密文上的业务,则可以应用到隧道接口对应的物理接口上。
使用IPsec保护IPv6路由协议
本特性的支持情况与设备的型号有关,请以设备的实际情况为准。
使用IPsec保护IPv6路由协议是指,使用AH/ESP协议对IPv6路由协议报文进行加/解封装处理,并为其提供认证和加密的安全服务,目前支持OSPFv3、IPv6 BGP、RIPng路由协议。
IPsec对IPv6路由协议报文进行保护的处理方式和目前基于接口的IPsec处理方式不同,是基于业务的IPsec,即IPsec保护某一业务的所有报文。该方式下,设备产生的所有需要IPsec保护的IPv6路由协议报文都要被进行加封装处理,而设备接收到的不受IPsec保护的以及解封装(解密或验证)失败的IPv6路由协议报文都要被丢弃。
在基于接口的IPsec处理方式下,设备对配置了IPsec安全功能的接口上发送的每个报文都要判断是否进行IPsec处理。目前,该方式有两种实现,一种是基于ACL的IPsec,只要到达接口的报文与该接口的IPsec安全策略中的ACL规则匹配,就会受到IPsec保护;另一种是基于路由的IPsec,即IPsec虚拟隧道接口方式,只要被路由到虚拟隧道接口上的报文都会受到IPsec保护。
相对于基于接口的IPsec,基于业务的IPsec既不需要ACL来限定要保护的流的范围,也不需要指定IPsec隧道的起点与终点,IPsec安全策略仅与具体的业务绑定,不管业务报文从设备的哪个接口发送出去都会被IPsec保护。
由于IPsec的密钥交换机制仅仅适用于两点之间的通信保护,在广播网络一对多的情形下,IPsec无法实现自动交换密钥,因此必须使用手工配置密钥的方式。同样,由于广播网络一对多的特性,要求各设备对于接收、发送的报文均使用相同的SA参数(相同的SPI及密钥)。因此,目前仅支持手工安全策略生成的SA对IPv6路由协议报文进行保护。
IKE
IKE简介
在实施IPsec的过程中,可以使用IKE(Internet Key Exchange,因特网密钥交换)协议来建立SA,该协议建立在由ISAKMP(Internet Security Association and Key Management Protocol,互联网安全联盟和密钥管理协议)定义的框架上。IKE为IPsec提供了自动协商交换密钥、建立SA的服务,能够简化IPsec的使用和管理,大大简化IPsec的配置和维护工作。
IKE不是在网络上直接传输密钥,而是通过一系列数据的交换,最终计算出双方共享的密钥,并且即使第三者截获了双方用于计算密钥的所有交换数据,也不足以计算出真正的密钥。
IKE的安全机制
IKE具有一套自保护机制,可以在不安全的网络上安全地认证身份、分发密钥、建立IPsec SA。
1. 数据认证
l 身份认证:身份认证确认通信双方的身份。支持两种认证方法:预共享密钥(pre-shared-key)认证和基于PKI的数字签名(rsa-signature)认证。
l 身份保护:身份数据在密钥产生之后加密传送,实现了对身份数据的保护。
2. DH
3. PFS
IKE的交换过程
(2) 第二阶段,用在第一阶段建立的安全隧道为IPsec协商安全服务,即为IPsec协商具体的SA,建立用于最终的IP数据安全传输的IPsec SA。
图 4 主模式交换过程
如图2-1所示,第一阶段主模式的IKE协商过程中包含三对消息:
l 第一对叫SA交换,是协商确认有关安全策略的过程;
l 第二对消息叫密钥交换,交换Diffie-Hellman公共值和辅助数据(如:随机数),密钥材料在这个阶段产生;
l 最后一对消息是ID信息和认证数据交换,进行身份认证和对整个第一阶段交换内容的认证。
野蛮模式交换与主模式交换的主要差别在于,野蛮模式不提供身份保护,只交换3条消息。在对身份保护要求不高的场合,使用交换报文较少的野蛮模式可以提高协商的速度;在对身份保护要求较高的场合,则应该使用主模式。
IKE在IPsec中的作用
l 因为有了IKE,IPsec很多参数(如:密钥)都可以自动建立,降低了手工配置的复杂度。
l IKE协议中的DH交换过程,每次的计算和产生的结果都是不相关的。每次SA的建立都运行DH交换过程,保证了每个SA所使用的密钥互不相关。
l IPsec使用AH或ESP报文头中的序列号实现防重放。此序列号是一个32比特的值,此数溢出后,为实现防重放,SA需要重新建立,这个过程需要IKE协议的配合。
l 对安全通信的各方身份的认证和管理,将影响到IPsec的部署。IPsec的大规模使用,必须有CA(Certificate Authority,认证中心)或其他集中管理身份数据的机构的参与。
IPsec与IKE的关系
l IKE是UDP之上的一个应用层协议,是IPsec的信令协议;
附件下载
- IPsec技术介绍.pdf(222.96 KB)
转载于:https://www.cnblogs.com/jinanxiaolaohu/p/9789076.html
[转帖] IPsec相关知识 --未知来源相关推荐
- 你该知道的深度强化学习相关知识
如今,机器学习(Machine Learning,ML)和人工智能(Artificial Intelligence,AI)的相关算法越来越深度地融合到了我们的社会与生活中,并且在金融科技.医疗保健.以 ...
- 【人脸】人脸矫正相关知识
目录 人脸矫正相关知识 一.人脸矫正的简要流程 二.Python代码中人脸矫正实现方式 三.C++代码中人脸矫正实现方式 人脸矫正相关知识 一.人脸矫正的简要流程 Step1.使用人脸检测结果的5个特 ...
- https ssl证书的工作原理及使用相关知识收集
https ssl证书的工作原理及使用相关知识收集 SSL 与 数字证书 的基本概念和工作原理 前言 SSL是让人头大的东西,看起来很复杂,我学过信息安全课,但是对SSL仍然是模糊一片.对于数字证书也 ...
- 单片机小白学步系列(十) 单片机程序下载相关知识
注:本篇在写<单片机入门指南系列>之前就已经写过,现在发现这篇比较合理的位置,应该是放在<单片机入门指南系列(六) 单片机最小系统--麻雀虽小,五脏俱全>之后的,但是由于之前考 ...
- 后端技术:消息队列MQ/JMS/Kafka相关知识介绍
?今天给大家分享消息队列MQ/JMS/Kafka相关知识介绍 1.消息队列介绍 首先举个收快递的栗子,传统的收快递,快递小哥把我们的快递送到我们的手里.他需要什么条件嗯? 快递小哥有时间送, 我们有时 ...
- 安装应用需要打开未知来源权限_打开安卓这个开关 不让流氓软件肆意妄为
1月21消息,国外媒体Cybernews曝光了数款存在安全隐患的安卓应用,从这些应用中我们发现大都是相机类应用.根据Cybernews的说法这些应用会寻求多项权限,而多数权限和应用本身功能并不相关. ...
- 小程序 长按api_微信小程序API相关知识科普
微信小程序API(Application Programming Interface),即应用程序编程接口.API是一种接口函数,把函数封装起来,给开发者,这样好多的功能就不需要你去实现了,只要会调用 ...
- android限制第三方应用安装软件,如何从Android中的未知来源安装应用程序 | MOS86...
Android设备上的这些安全功能中的一个是您不允许在设备上的官方Play Store外部安装应用.这意味着即使您的应用程序文件格式为APK,您将无法将其安装在设备上 有一种方法允许安装第三方apk文 ...
- SQL注入 基础概述及相关知识
SQL注入 基础概述及相关知识 SQL注入概述 SQL注入攻击简介 SQL注入攻击原理 SQL注入攻击来源 SQL注入攻击主要特点 SQL注入攻击危害 SQL注入攻击 SQL注入攻击基础概述 SQL注 ...
- buu(前三页第二弹) RSA习题与相关知识总结
文章目录 buu [ACTF新生赛2020]crypto-rsa3 1 题目描述: 题目分析: 收获与体会: buu [WUSTCTF2020]情书 1 题目描述: 题目分析: 收获与体会: buu ...
最新文章
- minecraft正版多人服务器,我的世界:“服务器的潜规则”,有的保护玩家,也有的打破平衡...
- 【代码真相】函数调用 堆栈
- php用什么工具调试代码,详细介绍利用开源的DebugBar工具调试PHP代码(图文)
- 正向代理服务器和反向代理服务器的区别
- python socket编程步骤_python-socket编程(入门,网络基础)
- 牛客练习赛74 E CCA的期望(算概率的技巧+floyd处理)
- UI标签库专题八:JEECG智能开发平台 Menu(左侧菜单生成标签)
- AJAX访问JSON数据
- plsql可执行别的用户对象,过程却不行(AUTHID CURRENT_USER)
- 网页鼠标动态线条html5,网站动态背景线条跟随鼠标移动,吸附鼠标效果代码
- 负折射率波导matlab,介质波导的数值模拟
- 【备战NOIP】专题复习1-动态规划-背包问题
- c语言运行可以微信直接打开吗,如何用软件visual+c+++直接打开已将创建好的MFC工程文? 爱问知识人...
- STM8-STVD+Cosmic编译输出信息参数配置
- 系分 - 案例分析 - 需求分析
- Vue.extend构造器
- ENSP里的路由器与本地网络互联
- 在中国,40岁程序员是如何工作的?
- Linux C/C++ 设置混杂模式的三种方法
- 理解伪类选择器与伪元素选择器
热门文章
- mongoDB - 插入数据
- 《Total Commander:万能文件管理器》——第4.5节.其他补充
- [LeetCode]50.Pow(x, n)
- 橙子减肥法:好吃快速成为瘦美人 - 健康程序员,至尚生活!
- 在mybatis里面取别名
- Docker安装vi命令
- Mac下Vmware Fusion配置虚拟机虚拟网卡并配置CENTOS上网
- JAVA基础0307
- java log4jhelper_java项目中log4j的日志,控制台跟文件日志级别都是info,为什么文件跟控制台输出的还不同呢?...
- python右对齐函数_Python这68个内置函数,建议你吃透!