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

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.xdnf.cn/news/18238.html

相关文章:

  • 【运维进阶】Linux 正则表达式
  • CANoe使用介绍
  • 副文本编辑器
  • 23种设计模式——构建器模式(Builder Pattern)详解
  • PDF如何在Adobe Acrobat 中用OCR光学识别文档并保存可编辑文档
  • week3-[分支嵌套]方阵
  • 【39页PPT】大模型DeepSeek在运维场景中的应用(附下载方式)
  • SpringBoot集成WebService
  • PostgreSQL 中的金钱计算处理
  • SpringBoot 整合 Langchain4j RAG 技术深度使用解析
  • [论文阅读] 人工智能 + 软件工程 | 从用户需求到产品迭代:特征请求研究的全景解析
  • 微美全息(NASDAQ:WIMI):以区块链+云计算混合架构,引领数据交易营销科技新潮流
  • STM32学习笔记16-SPI硬件控制
  • 力扣48:旋转矩阵
  • RAG拓展、变体、增强版(二)
  • redis执行lua脚本的原子性和数据库原子性的区别
  • C++STL-list 底层实现
  • GSPO:Towards scalable reinforcement learning for language models
  • Web 安全之延迟攻击(Delay Attack)详解
  • 从基础到本质:文件 IO 操作全解析
  • 【Linux仓库】进程等待【进程·捌】
  • vc++调试总结
  • E10 通过RPC实现账号批量锁定与解锁
  • 管理项目服务器连接数据库
  • 【语法】markdown非常用场景
  • 交叉编译.so到鸿蒙使用
  • ansible playbook 实战案例roles | 实现基于node_exporter的节点部署
  • AV1视频编码器2024-2025技术进展与行业应用分析
  • scikit-learn/sklearn学习|变量去中心化和标准化
  • 【iOS】NSRunLoop