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

IPSec 安全基础

1. 加密算法(保障机密性)

IPSec VPN 采用两类加密算法来确保数据机密性:

  • 对称密钥算法:加密方与解密方使用相同密钥。主要用于加密用户数据,常见算法有:
    • DES:采用 56 位密钥,是较早的对称加密算法,但安全性随技术发展有所不足。
    • 3DES:使用 168 位密钥,是 DES 的改进版,安全性提升,但运算速度相对较慢。
    • AES:支持 128、192、256 位密钥,安全性高且运算高效,是目前广泛应用的对称加密算法。
  • 非对称密钥算法:加密方用对端公钥加密数据,解密方用自身私钥解密数据。主要用于密钥交换和数字签名,常见算法有:
    • RSA:支持 512、768、1024、2048 位等密钥长度,在密钥交换和数字签名领域应用广泛。
    • DH:可采用 768、1024、1536 位等密钥长度,用于安全的密钥协商,使通信双方能在不安全的网络环境中协商出共享密钥。

2. HASH / 散列算法(保障完整性)

借助散列函数实现数据完整性检查,常见散列函数有:

  • MD5:生成 128 位的散列值,能将任意长度数据映射为固定长度散列值,但存在一定安全缺陷,在部分对安全性要求极高的场景逐渐被替代。
  • SHA 系列
    • SHA - 1:生成 160 位散列值,安全性比 MD5 高,但也面临安全挑战。
    • SHA - 2(如 SHA - 256)、SHA - 3:分别生成 256 位和512位,不同长度(依具体算法)的散列值,安全性进一步提升。
      工作流程为:发送方对密文数据和密钥通过 Hash 算法生成 HMAC(散列值),并将密文数据与 HMAC 一同发送;接收方收到后,用同样的密文数据和密钥通过 Hash 算法生成新的 HMAC 数据,若与接收到的 HMAC 相等,说明密文在传输中未被篡改,反之则被篡改。

3. 身份认证(防范中间人身份欺骗)

身份认证涵盖设备身份认证和用户身份认证两方面:

  • 设备身份认证
    • 预共享密钥(Pre - Shared Keys)认证:通信双方预先共享一个密钥,通过该密钥来验证对方设备身份。
    • RSA 签名认证:利用 RSA 非对称加密算法,通过数字签名的方式验证设备身份,安全性较高。
  • 用户身份认证:采用多种方式,如短信验证(通过向用户手机发送验证码验证身份)、USB - Key(用户插入包含身份认证信息的 USB 设备进行验证)、用户名和密码组合验证等,确保接入 VPN 的用户身份合法。

4. 封装安全协议

4.1 协议组成

IPSec 借助 AH 协议(协议号 51) 和 ESP 协议(协议号 50) 保护 IP 报文:

  • AH 协议:可提供数据完整性确认、数据来源确认、防重放等安全特性,常用 HMAC - MD5、HMAC - SHA1 等摘要算法实现。
  • ESP 协议:能提供数据完整性确认、数据加密、防重放等安全特性。数据加密常用 DES、3DES、AES 等加密算法;数据完整性常用 HMAC - MD5、HMAC - SHA1 等摘要算法实现。

4.2 工作模式

IPSec 对报文保护存在 传输模式 和 隧道模式 两种模式,隧道模式会添加新 IP 头:

(一)传输模式
  • AH 传输模式
    • 发送方:网络层+AH头+传输层+应用层+完整性校验密钥 ->HASH1;

                             网络层+AH头(HASH1)+传输层+应用层

               接收方:网络层+AH头+传输层+应用层+完整性校验密钥 ->HASH2;

                              对比HASH1和HASH2

  • ESP 传输模式
    • 发送方:(传输层+应用层)+ESP尾+数据加密密钥 ->加密数据;

                               网络层,(ESP头+加密数据)+完整性校验密钥 ->HASH1;

                               网络层+ESP头+加密数据+ESP认证(HASH1);

               接收方:  网络层+ESP头+加密数据+ESP认证(HASH1);

                                ESP头+加密数据+完整性校验密钥 ->HASH2;

                                对比HASH1和HASH2

(二)隧道模式
  • AH 隧道模式
    • 发送方:新网络层+AH头+原始网络层+传输层+应用层+完整性校验密钥 ->HASH1;

                             新网络层+AH头(HASH1)+原始网络层+传输层+应用层

              接收方: 新网络层+AH头+原始网络层+传输层+应用层+完整性校验密钥 ->HASH2;

                             对比HASH1和HASH2

  • ESP 隧道模式
    • 发送方:(原始网络层+传输层+应用层)+ESP尾+数据加密密钥 ->加密数据;

                               新网络层,(ESP头+加密数据)+完整性校验密钥 ->HASH1;

                               新网络层+ESP头+加密数据+ESP认证(HASH1)

              接收方:新网络层+ESP头+加密数据+ESP认证(HASH1);

                            ESP头+加密数据+完整性校验密钥 ->HASH2;

                            对比HSAH1和HASH2

​​​

4.3 保护范围

  • AH 保护范围
    • 传输模式下,验证范围为 IP 头部、AH 头部、数据部分
    • 隧道模式下,验证范围为新 IP 头部、AH 头部、原 IP 头部、数据部分
  • ESP 保护范围
    • 传输模式下,IP头部,验证范围为ESP 头部、加密数据部分,ESP验证;数据部分和 ESP 填充会被加密。
    • 隧道模式下,新 IP 头部,验证范围为ESP 头部、加密数据部分,ESP 验证;原 IP 头部、数据部分和 ESP 填充会被加密。

5. IPSec VPN工作原理— —对称key的产生、传递、管理

(1)加解密算法— —发送方和接收方均为key1;

(2)HASH算法— —发送方和接收方均为key2;

(3)身份认证— —发送方和接收方均为key3;

要求:双方完成对应功能使用的key相同,即横向相同;

           任一方的key1、key2、key3不相同,即纵向不同。

6. Key的传递— —DH算法

  1. 密钥生成与交换:PeerA 和 PeerB 各自生成公钥(Public)和私钥(Private),并相互交换公钥(PeerA 把自身公钥发给 PeerB,PeerB 把自身公钥发给 PeerA )。
  2. 共享密钥计算:双方分别用自己的私钥与对方的公钥,通过 DH 算法计算,最终得到相同的共享密钥(Secret_Key_X ),实现安全的密钥协商 。

7. DH密钥组

       DH使用组的概念来定义这个KDH是怎么产生的即不同的组将产生的公钥和私钥以及KDH的长度是不同的

8. 思考

IPSec协议如何保护IP数据?
1.两个使用IPSec协议的设备之间,如何选择共同的加密算法与验证算法以及使用相同的密钥?
2.两个使用IPSec协议的设备之间,如何选择相同的保护方式,使用AH还是ESP?
3.如果本地与多个设备之间使用IPSec保护数据,那么本地如何区分与不同设备之间的保护策略?

IPSec 借安全关联(SA)IKE 协议保 IP 数据:

  1. 算法密钥:IKE 分两阶段,先建 IKE SA 协商基础算法密钥,再建 IPSec SA 确定数据保护的算法与密钥,同步共享密钥。
  2. 保护方式:IKE 协商 IPSec SA 时,依策略选 AH(仅认证)或 ESP(加密 + 认证),写入 SA 统一执行。
  3. 多设备策略:靠 SA 的对端 IP、SPI 等唯一标识,收包时匹配对应 SA,应用专属加密、认证等策略区分多设备。
       上述问题中涉及到的加密算法、验证算法、加密密钥、验证密钥、AH/ESP等要素,都包含在安全关联(Security Association)。

9. SA概述

安全关联Security Association,简称SA)是两个IPSec实体(主机、安全网关)之间经过协商建立起来的一种协定,内容包采用何种IPSec协议(AH还是ESP)、运行模式(传输模式还
是隧道模式)、验证算法、加密算法、加密密钥、密钥生存期、抗重放窗口、计数器等,从而决定了保护什么、如何保护以及谁来保护。可以说SA是构成IPSec的基础。
AHESP使用SA中的参数来对IP数据进行保护
SA单向的,入方向(inbound)SA负责处理接收到的数据包,出方向(outbound)SA负责处理要发送的数据包。因此每个通信方必须要有两种SA,一个入方向SA,一个出方向SA,这两个SA构成了一个SA束(SA Bundle)。
SA如何产生?
1.手工配置
人工密钥协商:SA的内容由管理员手工指定、手工维护。
手工维护容易出错,而且手工建立的SA没有生存周期限制,永不过期,除非手工删除,因此有安全隐患,在项目中几乎不会使用。
2.IKE(互联网密钥交换协议)自动管理
SA的自动建立、动态维护和删除是通过IKE进行的。而且SA有生命期。如果安全策略要求建立安全、保密的连接,但又不存在与该连接相应SAIPSec会立刻启动IKE来协商SA
http://www.dtcms.com/a/343287.html

相关文章:

  • Matplotlib数据可视化实战:Matplotlib高级使用技巧与性能优化
  • GitHub Push 认证失败 fatal Authentication failed
  • 数据治理——解读56页 数据治理整体规划汇报【附全文阅读】
  • java-ArrayList的使用
  • 短波红外科研相机:开启科研新视野的利器​
  • LCR 019. 验证回文串 II
  • SpringCloudConfig配置文件本地化部署
  • 第5.1节:awk内置变量
  • MySQL诊断系列(5/6):表结构与元数据查询——快速掌握数据库“DNA”
  • 在pycharmIDE中如何快速掌握一个新模块的使用方法
  • 前端视频流处理从 0 到 “能跑”:可复制 Demo+WebGL/Worker 优化,覆盖会议 / 直播 / 监控场景
  • js来比较两个对象内容有误差异
  • 从源码中学习Java面向对象的多态
  • 通过自定义域名访问内网的web服务和tcp应用:内网ip到局域网外域名访问过程
  • 使用Docker部署Coze Studio开源版
  • (亲测)Centos7升级gcc 9
  • XTDrone——无人机基于2D激光Lidar进行二维运动规划(细节提醒以及相关报错解决)
  • 嵌入式-中断的概念,优先级,编程-Day17
  • 高效研发管理新选择:Codes 一站式平台深度解析
  • 6.Shell脚本修炼手册---grep命令使用指南
  • 定时器(Timer)和延时器
  • 文化遗产数字化对手持SLAM设备有哪些特殊要求?
  • 使用 X11 转发服务器界面
  • linux安装mysql ndb cluster
  • 牛客:链表分割算法详解
  • Java设计模式-享元模式
  • FreeRTOS学习笔记(三)--汇编指令
  • C ++代码学习笔记(一)
  • Layui 中的 iframe 详解与最佳实践
  • Linux笔记7——shell编程基础-1