计算机网络-IPSec VPN基本概念

企业分支之间经常有互联的需求,企业互联的方式很多,可以使用专线线路或者Internet线路。部分企业从成本和需求出发会选择使用Internet线路进行互联,但是使用Internet线路存在安全风险,如何保障数据在传输时不会被窃取?

前面我们已经学习了GRE的简单应用了,但是在GRE隧道中不会对报文进行加密因此通过抓包是可以看到数据的报文信息,那怎么确保信息数据的安全呢?

一、IPSec基本概念

1.1 IPSec简介

IPsec(IP Security)协议族是IETF制定的一系列安全协议,它为端到端IP报文交互提供了基于密码学的、可互操作的、高质量的安全保护机制。通过对数据加密认证,IPsec使得数据能够在Internet网络上安全的传输。IPsec VPN技术可以和多种VPN技术结合使用,使得企业互联更加灵活安全。

IPSec隧道
IPSec隧道
GRE Over IPSec
GRE Over IPSec

IPSec不是一个单独的协议,它给出了IP网络上数据安全的一整套体系结构,包括AH(Authentication Header)、ESP(Encapsulating Security Payload)、IKE(Internet Key Exchange)等协议。

IPSec体系结构
IPSec体系结构

IPSec通过加密与验证等方式,从以下几个方面保障了用户业务数据在Internet中的安全传输:

  • 数据来源验证:接收方验证发送方身份是否合法:
  • 数据加密:发送方对数据进行加密,以密文的形式在nternet上传送,接收方对接收的加密数据进行解密后处理或直接转发;
  • 数据完整性:接收方对接收的数据进行验证,以判定报文是否被改;
  • 抗重放:接收方拒绝旧的或重复的数据包,防止恶意用户通过重复发送捕获到的数据包所进行的攻击。

1.2 数据加密

数据加密方式简介: 数据加密可以避免数据转发时被读取。数据加密一般有两种方案:

  • 对称加密:使用同一个密码加密/解密,效率很高,但是对称加密在互相交互密钥时存在密钥被截取的风险。
  • 非对称加密:使用公钥加密,私钥解密,安全性很高但是加解密效率很低。

这里不对数据加密进行过深的探讨,毕竟我也不是专业的。

数据加密方式
数据加密方式

1.3 数据认证

数据认证方式简介: 数据认证的主要目的是确认数据是否被篡改,数据认证主要基于Hash算法。

  • 数据通过Hash算法计算出一个唯一的Hash值,Hash值携带在数据中转发给对端。
  • 对端设备对数据重新进行Hash,得出Hash值。将收到的Hash值与计算出的Hash值进行比对,一致说明没有被篡改。
数据认证方式简介
数据认证方式简介

IPsec提供了两种安全机制:加密和认证。

  • IPsec采用对称加密算法对数据进行加密和解密。数据发送方和接收方使用相同的密钥进行加密、解密。
  • IPsec采用HMAC(Hash-based Message Authentication Code)功能,比较数字签名进行数据完整性和真实性认证。
数据加密与认证
数据加密与认证

1.4 IPsec加密基本思路

IPsec同时使用对称加密与非对称加密,保证了安全也兼顾了性能。

  • 将对称加密所用的密钥,使用非对称算法加密并传递。
  • 数据通过交互后的对称密钥加密。
IPsec加密基本思路
IPsec加密基本思路

简单说就是双方通过使用非对称加密算法对同一密码进行加密得到一个对称秘钥,然后使用该对称秘钥对数据进行加密。一个前提就是密码是双方知道的,一般还是通过口头告知、文档等形式获取。

1.5 安全联盟介绍

SA(Security Association,安全联盟) 可以帮助IPsec对特定要素进行约定,比如:加密算法使用DES,认证算法使用MD5,封装方式使用Tunnel等。

IPsec技术在数据加密,数据验证,数据封装等方面有多种实现方式或算法,两端的设备使用IPsec进行通信时需要保证一致的加密算法,验证算法等。因此需要一种机制帮助两端设备协商这些参数。

建立IPsec SA一般有两种方式:

  • 手工方式:手工方式建立IPsec SA管理成本很高,加密验证方式需要手工配置,手工刷新SA,且SA信息永久存在安全性较低,适用于小型网络。
  • IKE方式:IKE方式建立IPsec SA管理成本比较低,加密验证方式通过DH算法生成,SA信息有生成周期,且SA动态刷新,适用于小型,中大型网络。

IKE SA的主要作用是构建一条安全的通道,用于交互IPsec SA。

IPsec SA,由一个三元组来唯一标识,这个三元组包括安全参数索引SPI(Security Parameter Index)、目的IP地址和使用的安全协议号(AH或ESP)。

前面我们说到了IPSec框架中涉及到数据加密和认证,而实际情况下加密算法和认证算法很多,而IPSec中必须保证两端算法一致才能协商成功,那怎么协商呢?就是通过SA来定义,通过在SA中指定加密算法、认证算法、封装模式、传输层协议等内容。而在IPSec中有两个阶段:IKE阶段和IPSec阶段,两个是承上启下的作用。

1.6 密钥交换介绍

IPSec需要交互一个双方认可的对称秘钥,那怎么交互呢?

现网中交互对称密钥一般会使用密钥分发协议:IKE(Internet Key Exchange,因特网密钥交换)。

IKE协议建立在ISAKMP(Internet Security Association and Key Management Protocol, Internet安全联盟和密钥管理协议)定义的框架上,是基于UDP的应用层协议。它为IPsec提供了自动协商密钥、建立IPsec安全联盟的服务,能够简化IPsec的配置和维护工作。

密钥交换介绍
密钥交换介绍

IKE支持的认证算法有:MD5、SHA1、SHA2-256、SHA2-384、SHA2-512、SM3。

IKE支持的加密算法有:DES、3DES、AES-128、AES-192、AES-256、SM1和SM4。

ISAKMP由RFC2408定义,定义了协商、建立、修改和删除SA的过程和包格式。ISAKMP只是为SA的属性和协商、修改、删除SA的方法提供了一个通用的框架,并没有定义具体的SA格式。 ISAKMP报文可以利用UDP或者TCP,端口都是500,一般情况下常用UDP协议,所以在防火墙上放通IPSec的流量可以允许UDP 500/4500端口的流量通过。

1.7 安全协议介绍

IPSec的加密与解密大致是在原有的报文头部增加一层或多层头部以实现加密,在传输层中

IPsec有两种传输层协议提供认证或加密服务:AH(Authentication Header,认证头),ESP(Encapsulating Security Payload,封装安全载荷)。

  • AH仅支持认证功能,不支持加密功能。
  • ESP支持认证和加密功能。
安全协议介绍
安全协议介绍

AH仅支持认证功能,不支持加密功能。 AH在每一个数据包的标准IP报头后面添加一个AH报文头。AH对数据包和认证密钥进行Hash计算,接收方收到带有计算结果的数据包后,执行同样的Hash计算并与原计算结果比较,传输过程中对数据的任何更改将使计算结果无效,这样就提供了数据来源认证和数据完整性校验。AH协议的完整性验证范围为整个IP报文。

ESP支持认证和加密功能。 ESP在每一个数据包的标准IP报头后面添加一个ESP报文头,并在数据包后面追加一个ESP尾(ESP Trailer和ESP Auth data)。与AH不同的是,ESP将数据中的有效载荷进行加密后再封装到数据包中,以保证数据的机密性,但ESP没有对IP头的内容进行保护,除非IP头被封装在ESP内部(采用隧道模式)。

关键字段含义:

  • Sequence Number:是一个从1开始的单项递增的计数器,唯一地标识每一个数据包,用于防止重放攻击。
  • SPI:IPsec安全参数索引,用于唯一标识IPsec安全联盟。
  • Authentication Data:该字段包含数据完整性校验值 ICV(Integrity Check Value),用于接收方进行完整性校验。可选择的认证算法有MD5、SHA1、SHA2、SM3。

简单理解就是将内网源IP怎样进行再封装增加传输层报头,AH仅支持认证功能,不支持加密功能,而ESP支持认证和加密功能,我一般情况下都是使用的ESP协议。

ESP模式
ESP模式
AH模式
AH模式
不同模式的报文抓包
不同模式的报文抓包

1.8 封装模式介绍

在传输层使用安全协议还涉及到一个封装模式的问题。封装模式是指将AH或ESP相关的字段插入到原始IP报文中,以实现对报文的认证和加密,封装模式有传输模式和隧道模式两种。现网中多使用隧道模式进行封装。 就是说这个报文的字段摆放顺序是怎样的。

封装模式介绍
封装模式介绍

在传输模式中,AH头或ESP头被插入到IP头与传输层协议头之间,保护TCP/UDP/ICMP负载。由于传输模式未添加额外的IP头,所以原始报文中的IP地址在加密后报文的IP头中可见。

在隧道模式下,AH头或ESP头被插到原始IP头之前,另外生成一个新的报文头放到AH头或ESP头之前,保护IP头和负载。

总结:IPSec是一个框架,通过IPSec实现的VPN称为IPSec VPN。IPSec通过加密认证来实现安全传输。第一阶段首先需要协商秘钥一致,通过秘钥交换IKE来协商,生成一个IKE的SA(安全联盟),里面定义了加密算法、认证算法、隧道模式等。第二阶段使用一阶段的IKE SA进行加密数据,可以选择AH或者ESP进行封装,AH不支持加密,ESP支持加密和认证,封装模式可以选择隧道模式或者传输模式,区别在于封装后数据包的头部不一样,一般情况下使用ESP安全协议以及隧道传输模式即可

本文由 mdnice 多平台发布

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/484614.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VirtualBox注册已有虚拟机:未能打开位于虚拟电脑E_INVALIDARG (0X80070057)

错误如下 解决办法1 产生虚拟机的机器,与当前使用机器不兼容。建议在当前机器重新产生虚拟机。比如我家里电脑是WIN7,公司电脑是WIN11。 原来的虚拟机内容,找老机器导出。 解决办法2(存疑) 搜索到一个说法&#xf…

浅谈网络 | 应用层之流媒体与P2P协议

目录 流媒体名词系列视频的本质视频压缩编码过程如何在直播中看到帅哥美女?RTMP 协议 P2PP2P 文件下载种子文件 (.torrent)去中心化网络(DHT)哈希值与 DHT 网络DHT 网络是如何查找 流媒体 直播系统组成与协议 近几年直播比较火,…

2023年第十四届蓝桥杯Scratch国赛真题—推箱子

推箱子 程序演示及其源码解析,可前往: https://www.hixinao.com/scratch/creation/show-188.html 若需在线编程,在线测评模考,助力赛事可自行前往题库中心,按需查找: https://www.hixinao.com/ 题库涵盖…

【学习总结|DAY012】Java面向对象基础

一、前言 今天主要学习了以下内容:面向对象的理解与使用、对象的内存布局、构造器的概念和作用、封装的重要性以及JavaBean实体类的实现等。下面我将详细阐述这些知识点。 二、面向对象的理解与使用 1. 什么是面向对象? 类:一种特殊的数据…

网络安全知识:网络安全网格架构

在数字化转型的主导下,大多数组织利用多云或混合环境,包括本地基础设施、云服务和应用程序以及第三方实体,以及在网络中运行的用户和设备身份。在这种情况下,保护组织资产免受威胁涉及实现一个统一的框架,该框架根据组…

Spring04——注解开发

Spring3.0启用了纯注解开发模式,使用Java类替代配置文件,开启了Spring快速开发赛道 Java类代替Spring核心配置文件, 配置类(Configuration) Configuration注解用于设定当前类为配置类ComponentScan注解用于设定扫描路…

01_Node.js入门 (黑马)

01_Node.js入门 知识点自测 从 index.js 出发&#xff0c;访问到 student/data.json 的相对路径如何写? A&#xff1a;../public/teacher/data.json B&#xff1a;./public/student/data.json C&#xff1a;../student/data.json <details><summary>答案</sum…

哪款云手机适合多开?常用云手机功能对比

在全球化和数字化时代&#xff0c;云手机以其独特的灵活性和高效性&#xff0c;成为多账号运营和数字营销的热门工具。云手机能够解决传统设备管理的诸多痛点&#xff0c;例如账号关联、硬件成本高等问题。本文将为您推荐多款优质云手机品牌&#xff0c;帮助您选择最适合的工具…

【目标跟踪】DUT Anti-UAV数据集详细介绍

DUT Anti-UAV数据集是大连理工大学的团队公开的数据集&#xff08;DUT是他们学校的简称&#xff09;&#xff0c;其中包括了两个子数据集&#xff1a;目标检测和目标跟踪&#xff08;也就是说&#xff0c;目标检测和目标跟踪都可以用这个数据集&#xff09;。该数据集为可见光模…

青岛鼎信Java开发面试题及参考答案

MySQL 的事务特性有哪些&#xff1f; MySQL 事务具有四个重要特性&#xff0c;被称为 ACID 特性。 原子性&#xff08;Atomicity&#xff09;&#xff1a;事务是一个不可分割的工作单位&#xff0c;事务中的操作要么全部执行&#xff0c;要么全部不执行。例如&#xff0c;在银行…

【机器学习】分类器

在机器学习(Machine Learning&#xff0c;ML)中&#xff0c;分类器泛指算法或模型&#xff0c;用于将输入数据分为不同的类别或标签。分类器是监督学习的一部分&#xff0c;它依据已知的数据集中的特征和标签进行训练&#xff0c;并根据这些学习到的知识对新的未标记数据进行分…

[软件开发幼稚指数评比]《软件方法》自测题解析010

第1章自测题 Part2 **9 [**单选题] 以下说法和其他三个最不类似的是: A)如果允许一次走两步&#xff0c;新手也能击败象棋大师 B)百米短跑比赛才10秒钟&#xff0c;不可能为每一秒做周密计划&#xff0c;凭感觉跑就是 C)即使是最好的足球队&#xff0c;也不能保证每…

解决 PyTorch 中的 AttributeError: ‘NoneType‘ object has no attribute ‘reshape‘ 错误

这里写目录标题 一、错误分析二、错误原因三、解决方案1. 检查损失函数2. 检查前向传播3. 检查 backward 函数4. 检查梯度传递 四、前向传播与反向传播1. 前向传播2. 反向传播3. 自定义 backward 函数示例反向传播过程&#xff1a;常见的错误&#xff1a;1&#xff1a;损失函数…

【AI系统】推理参数

推理参数 本文将介绍 AI 模型网络参数方面的一些基本概念&#xff0c;以及硬件相关的性能指标&#xff0c;为后面让大家更了解模型轻量化做初步准备。值得让人思考的是&#xff0c;随着深度学习的发展&#xff0c;神经网络被广泛应用于各种领域&#xff0c;模型性能的提高同时…

devops-Dockerfile+Jenkinsfile方式部署Java前后端应用

文章目录 概述部署前端Vue应用一、环境准备1、Dockerfile2、.dockerignore3、nginx.conf4、Jenkinsfile 二、Jenkins部署1、新建任务2、流水线3、Build Now 构建 & 访问 Springboot后端应用1. 准备工作2. 创建项目结构3. 编写 Dockerfile后端 Dockerfile (backend/Dockerfi…

【时时三省】(C语言基础)结构体的变量定义和初始化

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 有了结构体类型&#xff0c;那如果定义变量&#xff0c;其实很简单。 示例&#xff1a; 这个就是结构体变量的基础创建 初始化 比如里面只剩一个s3 s3里面有两个成员 第一个给c的值 第二个给…

社群分享在商业引流与职业转型中的作用:开源 AI 智能名片 2+1 链动模式小程序的应用契机

摘要&#xff1a;本文聚焦于社群分享在商业领域的重要性&#xff0c;阐述其作为干货诱饵在引流方面的关键意义。详细探讨了提供有价值干货的多种方式&#xff0c;包括文字分享、问题解答以及直播分享等&#xff0c;并分析了直播分享所需的条件。同时&#xff0c;以自身经历为例…

Python毕业设计选题:基于协同过滤的动漫推荐系统设计与实现_django+hive+spider

开发语言&#xff1a;Python框架&#xff1a;djangoPython版本&#xff1a;python3.7.7数据库&#xff1a;mysql 5.7数据库工具&#xff1a;Navicat11开发软件&#xff1a;PyCharm 系统展示 管理员登录 管理员功能界面 用户管理 动漫数据 看板展示 论坛交流 系统管理 用户功能…

Python批量生成个性化Word录用通知书

你是一名人力资源部门的员工&#xff0c;你需要根据一份Excel表格中的员工信息&#xff0c;为每位员工生成一份录用通知书。 Excel表格中包含了员工的姓名、性别、职位、入职日期等信息&#xff0c;你需要将这些信息填充到Word模板中&#xff0c;并生成独立的录用通知书文件。…

第1章 敏捷的基本概念

1.区分:敏捷、精益和看板方法 敏捷既可以说成是一种思维&#xff0c;也可以说是一种方法&#xff0c;它旨在项目推进的过程中&#xff0c;帮助团队提高效率&#xff0c;但除了敏捷&#xff0c;精益思想和看板方法也能够提高效率。   敏捷方法和看板方法都是面向组织级的&…