当前位置: 首页 > news >正文

IPSec安全概述

一、IPSec工作原理

1.加密算法——机密性

VPN加密技术:

(1)对称密钥算法
  • 加密方与解密方采用相同的密钥

  • 用于加密用户数据

  • 对称密钥算法

    • DES 56-bit keys

    • 3DES 168-bit keys

    • AES 128、192、256 bit keys

(2)非对称密钥算法
  • 加密方通过对端的公钥加密数据

  • 解密方通过自己的私钥解密数据

  • 用于密钥交换和数字签名

  • 非对称密钥算法

    • RSA 512、768、1024、2048 bit keys

    • DH 768、1024、1536 bit keys

2.HASH/散列算法——完整性检查

散列函数:

(1)MD5算法
  • 长度:128bit

(2)SHA-1/-2/-3算法
  • 长度:160bit 256 512

3.身份认证-----防中间人身份欺骗

身份认证包括两个方面:

  • 设备身份认证: Pre-Shared Keys (预共享key认证)、 RSA签名认证

  • 用户身份认证 :短信 、 usb-key 、 用户名和密码等

二、封装安全协议

IPSec协议使用下面两种协议对IP报文进行保护

1.AH协议(Authentication Header,协议号51):

  • 可以同时提供数据完整性确认、数据来源确认、防重放等安全特性;AH常用摘要算法HMAC-MD5和HMAC-SHA1实现该特性。

2.ESP协议(Encapsulating Security Payload,协议号50)

  • 可以同时提供数据完整性确认、数据加密、防重放等安全特性;ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用HMAC-MD5或HMAC-SHA1来实现数据完整性。

3.IPSec协议使用AH或ESP对报文进行保护时,会存在两种模式:

  • 传输模式(Transport Mode)

  • 隧道模式(Tunnel Mode)

四种模式:

传输模式的AH(51):
  • 功能:完整性校验,身份认证,防重放攻击

  • 发送方处理:

    • 计算hash值:网络层+AH头+传输层+应用层+完整性校验密钥—>HASH1

    • 将HASH值放入AH头部:网络层+AH头(HSAH1)+传输层+应用层

  • 接收方处理:

    • 计算hash值:网络层+AH头+传输层+应用层+完整性校验密钥—>HASH2

    • 对比HSAH1和HASH2

隧道模式的AH(51):
  • 功能:完整性校验,身份认证,防重放攻击

  • 发送方处理:

    • 计算hash值:新网络层+AH头+原网络层+传输层+应用层+完整性校验密钥—>HASH1

    • 将HASH值放入AH头部:新网络层+AH头(HSAH1)+原网络层+传输层+应用层

  • 接收方处理:

    • 计算hash值:新网络层+AH头+原网络层+传输层+应用层+完整性校验密钥—>HASH2

    • 对比HSAH1和HASH2

传输模式的ESP(50):
  • 功能:完整性校验,身份认证,防重放攻击,数据加密

发送方处理:

  • 数据加密:(传输层+应用层)+ESP尾部+数据加密密钥—>加密数据

  • 数据校验:(ESP头部+加密数据)+完整性校验密钥—>HASH1

    • 将HASH值放入AH头部:网络层+ESP头部+加密数据+ESP认证(HSAH1)

接收方处理:

  • 接收的数据:网络层+ESP头部+加密数据+ESP认证(HSAH1)

  • 计算HASH值:(ESP头部+加密数据)+完整性校验密钥—>HASH2

  • 对比HASH1和HASH2

  • 如果一样就接受并解密,不一样就丢弃

不能放在内网:因为传输层有校验和,校验和中包含伪首部,所以IP地址不能经过NAT转换,所以VPN设备不能放在内网,只能放在边界。

隧道模式的ESP(50):
  • 功能:完整性校验,身份认证,防重放攻击,数据加密

发送方处理:

  • 数据加密:(原网络层头部+传输层+应用层)+ESP尾部+数据加密密钥—>加密数据

  • 数据校验:(ESP头部+加密数据)+完整性校验密钥—>HASH1

    • 将HASH值放入AH头部:新网络层+ESP头部+加密数据+ESP认证(HSAH1)

接收方处理:

  • 接收的数据:新网络层+ESP头部+加密数据+ESP认证(HSAH1)

  • 计算HASH值:(ESP头部+加密数据)+完整性校验密钥—>HASH2

  • 对比HASH1和HASH2

  • 如果一样就接受并解密,不一样就丢弃

http://www.dtcms.com/a/340482.html

相关文章:

  • 医疗AI与医院数据仓库的智能化升级:异构采集、精准评估与高效交互的融合方向(上)
  • 信创产品TongLinkQ安装及springboot2整合使用
  • AI 视频翻译工具的调研笔记
  • Spring Boot 实战:从项目搭建到部署优化
  • Causal-Copilot: An Autonomous Causal Analysis Agent 论文解读
  • 基于离散点集的三次样条插值与符号表达式构建:从 Scipy 到 Sympy 的完整实现
  • 记一次前端Vue3+Vite+TS项目中使用Mock.js + vite-plugin-mock插件发布到生产(线上)环境填坑汇总
  • 矩阵的特征分解
  • C语言---分隔符、常量、注释、标识符、关键字、空格
  • LoRa 网关组网方案(二)
  • 【科研绘图系列】R语言绘制平行坐标图
  • 保姆级Debezium抽取SQL Server同步kafka
  • 绕过 C 标准库限制执行系统命令:系统调用、Shellcode 和裸机二进制
  • week2-[一维数组]出现次数
  • css中的性能优化之content-visibility: auto
  • InfluxDB 查询性能优化实战(二)
  • 【解决方案】powershell自动连接夜神adb端口
  • 手撕线程池
  • AI 伦理的 “灰色地带”:当算法拥有决策权,公平与隐私该如何平衡?
  • C# NX二次开发:面收集器控件和曲线收集器控件详解
  • 边缘智能体:Go编译在医疗IoT设备端运行轻量AI模型(下)
  • DAY 51 复习日
  • Redis 复制功能是如何工作的
  • Android 开发问题:android:marginTop=“20px“ 属性不生效
  • 多系统 Node.js 环境自动化部署脚本:从 Ubuntu 到 CentOS,再到版本自由定制
  • 云原生俱乐部-k8s知识点归纳(5)
  • 自动化测试用例生成:基于Python的参数化测试框架设计与实现
  • MeterSphere断言操作
  • 多肽修饰——胆固醇(chol)
  • B站 XMCVE Pwn入门课程学习笔记(7)