一、数据存储完整性校验
-
校验机制:使用HASH算法对数据做完整性校验,确保数据在存储过程中未被篡改
-
密钥应用:采用加密密钥对数据进行加解密处理,同时在数据存储前需通过身份认证,认证过程同样依赖密钥机制
二、对称key的产生、传递、管理
1. 对称key的传递
1)DH算法

-
核心原理:通过非对称加密传递对称密钥,具体流程包含:
-
双方各自生成公私钥对
-
交换公钥
-
使用对方公钥与己方私钥通过特定函数计算
-
双方独立计算出相同的对称密钥(Secret_Key_X)
-
-
VPN应用特点:在IPSec VPN中仅使用前4个步骤,对称密钥始终不在网络中传输,通过本地计算验证
-
安全优势:实现"纵向不同"原则——加解密(KEY1)、完整性校验(KEY2)、身份认证(KEY3)使用不同密钥,增强安全性
-
DH密钥组

-
组别定义:通过数字组别区分算法类型和密钥长度,关键组别包括:
-
组2:1024位直线算法
-
组5:1536位直线算法(思科支持的最安全组)
-
组14:2048位直线算法
-
组15:3072位直线算法(最安全但不被思科支持)
-
-
算法特性:
-
椭圆曲线算法(如组3/4/7)密钥长度较短(155-185位)但安全性高
-
直线算法需要更长的密钥长度(768-3072位)保证安全
-
-
选择原则:根据安全需求选择组别,密钥长度与算法复杂度共同决定安全性
2. 思考

-
多隧道管理:设备可同时建立多条VPN隧道,每条隧道具有独立的:
-
加密算法/验证算法
-
密钥体系(KEY1/KEY2/KEY3)
-
保护模式(AH/ESP)
-
-
数据隔离性:不同隧道传输的数据网段严格隔离,避免地址重叠
-
安全关联(SA):作为管理单元包含所有隧道参数(算法选择、密钥管理、保护模式),实现:
-
流量识别:匹配特定规则的数据包进入对应隧道
-
策略隔离:区分不同对等体的保护策略
-
参数管理:维护加密/验证算法等协商结果
-
三、SA概述
-
保护要素:加密算法、验证算法、加密密钥、验证密钥、AH/ESP等要素都包含在安全关联(Security Association)中
-
核心功能:解决设备间算法选择、密钥同步、保护方式确定等关键问题
1. 安全关联

-
定义:两个IPSec实体(主机/安全网关)间协商建立的协定
-
包含内容:
-
协议类型(AH或ESP)
-
运行模式(传输模式/隧道模式)
-
验证算法
-
加密算法
-
加密密钥
-
密钥生存期
-
抗重放窗口
-
计数器等
-
-
单向性:
-
入方向(inbound)SA处理接收数据包
-
出方向(outbound)SA处理发送数据包
-
每个通信方需两种SA构成SA束(SA Bundle)
-
-
数量关系:
-
每个VPN连接对应两组SA(四个SA)
-
实体A出方向SA与实体B入方向SA为一组
-
实体B出方向SA与实体A入方向SA为另一组
-
2. SA如何产生
1)手工配置
-
实现方式:管理员手工指定和维护SA内容
-
特点:
-
配置参数永不过期(除非手动删除)
-
需两端设备配置完全一致
-
-
优缺点:
-
优点:适合实验室测试特定算法功能
-
缺点:
-
维护困难易出错
-
密钥长期使用存在安全隐患
-
实际项目几乎不使用
-
-
-
应用场景:
-
新算法开发测试
-
特定功能验证(如仅测试完整性校验)
-
2)IKE自动管理

-
协议性质:互联网密钥交换协议(协议族)
-
工作机制:
-
自动建立SA
-
动态维护和删除SA
-
SA具有生命周期
-
-
触发条件:当需要建立安全连接但无对应SA时自动启动
-
优势:
-
避免手工配置错误
-
定期更新密钥提高安全性
-
适应网络拓扑变化
-
-
生命周期:
-
类似动态路由、ARP表等网络协议
-
自动过期更新机制保障安全
-
四、IKE工作过程
1. IKE概述

-
协议全称: Internet Key Exchange(互联网密钥交换)
-
核心功能: 动态建立、维护和删除安全关联(SA)
-
协议性质:
-
属于混合型协议
-
基于ISAKMP框架(RFC2408)
-
整合了Oakley和SKEME协议的部分功能
-
定义了两种自有密钥交换方式
-
1)组成协议
-
SKEME协议
-
核心机制: 使用公开密钥加密实现认证
-
关键技术:
-
定义Diffie-Hellman(DH)密钥交换方式
-
提供密钥刷新和密钥传递机制
-
-
-
Oakley协议
-
核心功能: 使IPSec对等体达成相同加密密钥
-
特点:
-
支持多种加密模式
-
兼容新型加密技术
-
不定义具体交换信息内容
-
-
-
ISAKMP协议
-
标准文档: 互联网安全联盟密钥管理协议白皮书
-
核心贡献:
-
定义完整的消息交换体系结构
-
规范分组格式和状态转换机制
-
明确协商包交换方式(类似DHCP四步交互)
-
-
工作特点:
-
过程严格固定化
-
定义对等体间完整的报文交互流程
-
包含状态机转换规则(收到X报文必须回复Y报文)
-
-
2. ISAKMP协议
1)ISAKMP报文格式

-
协议定义:ISAKMP(Internet Security Association Key Management Protocol)是定义在RFC2408中的协议,用于协商、建立、修改和删除安全联盟(SA)。
-
框架特性:
-
提供通用协商框架,但不定义具体SA格式
-
与密钥交换协议独立,可被不同密钥交换协议使用
-
-
传输方式:
-
默认使用UDP协议,端口号为500(思科设备)
-
不同厂商端口可能不同(如深信服使用5000端口)
-
-
报文结构:
-
包含IP头部、UDP头部(源/目的端口均为500)、ISAKMP头部和数据部分
-
-
NAT穿越:
-
通过添加UDP封装实现,使一个公网IP可通过不同端口区分多个隧道
-
未使用UDP封装时,一个公网IP只能对应一个隧道
-
-
密钥管理IKE任务

-
阶段一任务:
-
建立双向ISAKMP SA(IKE SA)
-
安全参数协商:包括加密算法、HASH算法、DH组、身份认证方式、生命周期
-
密钥计算:
-
通过DH算法交换公钥和随机数
-
生成
K_{DH}
及衍生密钥(身份认证密钥、数据加解密密钥等)
-
-
身份认证:支持预共享密钥、RSA签名证书、加密随机数三种方式
-
-
阶段二任务:
-
建立两个单向IPSec SA
-
参数协商:安全协议(ESP/AH)、工作模式(传输/隧道)、加密算法、HASH算法、生命周期
-
密钥生成:为实际数据传输生成专用密钥
-
-
保护关系:
-
阶段一的ISAKMP SA用于保护阶段二协商
-
阶段二的IPSec SA用于保护最终数据
-
-
IKE协商的两个阶段

-
阶段一模式:
-
主模式:6条ISAKMP消息交互,提供完整身份保护
-
野蛮模式:3条ISAKMP消息交互,适用于特殊网络环境
-
-
阶段二模式:
-
快速模式:固定3条ISAKMP消息交互
-
-
报文总数:
-
主模式+快速模式共9个报文
-
野蛮模式+快速模式共6个报文
-
-
SA复用:
-
一个阶段一的ISAKMP SA可保护多个阶段二的IPSec SA协商
-
典型案例:A公司可与B/C/D三家公司分别建立隧道,共享相同的阶段一协商
-
-
协议层特性:
-
ESP协议号50,AH协议号51
-
网络层协议,不影响传输层(NAT设备无法读取加密后的传输层信息)
-
2)ISAKMP报文携带的载荷
-
ISAKMP消息报头

-
Cookie机制:
-
作用:64位的发起方Cookie和应答方Cookie用于确认报文来源真实性,防止DOS攻击
-
生成方式:通过散列算法计算(源IP+源端口+随机数+当前时间),取哈希值前64位
-
特性:散列算法不可逆且结果不完整(即使使用256位算法也只取64位),双重保障安全性
-
协商过程:首次协商时发起方Cookie为设备自身值,应答方Cookie置0;后续报文中位置固定不变
-
-
报文结构比喻:
-
火车头比喻:报头相当于火车头,后面连接的载荷如同车厢,每节车厢携带不同类型数据
-
动态性:车厢数量不固定,可根据需求灵活增减(类似IPv6扩展头结构)
-
-
载荷类型

-
载荷多样性:
-
共定义13种标准载荷类型(SA载荷、建议载荷、变换载荷等)
-
选择性使用:并非所有载荷都会出现在报文中,例如证书载荷仅在证书认证时出现
-
私有扩展:类型值128-255保留给私有用途使用
-
-
版本号

-
组成结构:
-
8位字段分为4位主版本号+4位次版本号
-
当前常见版本为1.0(主版本1,次版本0)
-
-
交换类型

-
阶段标识:
-
4位字段专门标识IKE阶段一的协商模式
-
主模式:值为2(Identity Protection),需要6个报文完成协商
-
野蛮模式:值为4(Aggressive),仅需3个报文
-
-
其他类型:
-
信息交换(值5)用于传输通知、错误消息等管理信息
-
-
标志

-
位字段含义:
-
加密位(最低位):1表示载荷加密,0表示明文
-
提交位:确保SA协商完成前不发送受保护数据
-
纯验证位:主要为政府/公安等机构提供密钥恢复机制支持
-
-
安全警示:即使建立VPN隧道,具备密钥恢复能力的机构仍可解密通信
-
报文ID
-
阶段区分:
-
阶段一协商时固定为0
-
阶段二由发起方生成随机值,用于唯一标识协商状态
-
-
-
载荷头部

-
通用结构:
-
下一载荷:8位字段指示后续载荷类型,末端载荷该字段为0
-
载荷长度:16位字段记录当前载荷总长度(含头部)
-
-
链表结构:通过"下一载荷"字段形成载荷链,类似火车车厢连接方式
3)一个完整的ISAKMP报文结构

-
典型组成:
-
固定报头(含Cookie、版本等字段)
-
密钥交换载荷(KE载荷)
-
Nonce载荷(随机数)
-
厂商特定载荷(Vendor ID)
-
-
动态扩展:实际报文可能包含更多/更少载荷,取决于具体协商需求
3. IKE协商第一阶段过程分析
1)IKE协商第一阶段目的及任务
-
核心目的: 协商建立ISAKMP SA(也可称为IKE SA)
-
三大任务:
-
加密套件协商: 确定安全通信参数
-
密钥材料交换: 生成共享密钥
-
身份认证: 验证通信双方身份
-
2)加密套件
-
组成要素:
-
加密算法: 如AES、3DES等
-
哈希算法: 如MD5、SHA等
-
DH组: 密钥交换的参数组
-
身份认证方式: 如预共享密钥等
-
生命周期: SA的有效时长
-
-
策略概念: 一个加密套件对应一个策略配置
3)交换密钥计算材料,生成密钥
-
关键区别: 交换的是密钥计算材料而非密钥本身
-
过程特点:
-
通过DH交换生成共享密钥
-
材料交换后本地计算最终密钥
-
4)身份认证

-
执行时机: 在密钥生成完成后进行
-
认证方式: 预共享密钥等(具体方式由加密套件确定)
5)主模式六个报文
-
报文分组:
-
前两个报文: 协商加密套件
-
包含发起方Cookie(i_cookie)
-
发起方发送所有支持的加密套件
-
-
中间两个报文: 交换DH材料
-
最后两个报文: 完成身份认证
-
-
通信角色:
-
I(Initiator): 发起方
-
R(Responder): 应答方
-
6)加密套件的选择
-
选择原则:
-
应答方从双方都支持的套件中选择
-
当存在多个匹配套件时,选择策略号最小的
-
-
安全考量:
-
算法强度:密钥长度越长越安全
-
哈希算法:长度影响安全性
-
生命周期:越短越安全(需定期更新)
-
7)第1、2个ISAKMP报文
-
主模式协商过程

-
功能:交换并协商保护ISAKMP消息的安全参数及对等体验证方式
-
包含内容:
-
加密算法(如3DES、AES)
-
验证算法(如MD5、SHA)
-
验证方式(如预共享密钥)
-
ISAKMP SA生存时间
-
DH组选择
-
-
策略选择机制:
-
响应方收到发起方的ISAKMP安全策略后,返回本地与之匹配的策略
-
若存在多条匹配策略,选择序号最小的策略
-
重要原则:越安全的策略序号应设置越小
-
8)第3、4个ISAKMP报文
-
密钥材料交换

-
交换内容:
-
KE载荷:DH公钥信息
-
Nonce载荷:随机数信息(发起方用N_I 表示,响应方用N_R表示)
-
-
DH算法关键点:
-
基于离散对数问题
-
需要预先定义质数p和基数g(通过group配置)
-
每端选择随机私数(a和b),计算产生公共值A和B
-
私数a和b不会在网络上传输
-
-
密钥计算过程
-
预共享密钥要求:
-
发起方和响应方配置必须相同
-
若不一致将导致协商失败
-
-
密钥生成步骤:
-
通过DH算法生成共享密钥
K=g^{ab} mod_p -
结合随机数
N_I 和N_R计算最终密钥材料
-
使用预共享密钥进行身份验证
-
-
10)身份认证密钥
-
计算要素:使用预共享密钥(pre-shared key)和双方随机数作为输入材料
-
算法:通过伪随机函数(PRF)算法计算得出
-
中间密钥:计算过程中会生成s_key_ID_d作为中间材料
-
组成:由身份认证密钥(s_key_ID)、DH对称密钥、发起方和应答方的cookie共同计算
-
用途:专门用于后续加密密钥和完整性校验密钥的计算
-
-
特性:计算时会添加长度乘数,不同算法使用的乘数不同
11)完整性认证密钥和数据加解密密钥
-
计算基础:
-
必须包含s_key_ID和s_key_ID_d作为基础材料
-
需要DH对称密钥参与计算
-
-
密钥分类:
-
完整性认证密钥:用于数据完整性校验
-
数据加解密密钥:用于数据加密/解密
-
-
算法特性:
-
采用固定算法计算,不同算法会添加不同的长度乘数
-
要求两个密钥的长度必须不同
-
-
密钥体系:
-
共包含5个核心密钥:身份认证密钥、中间材料密钥(s_key_ID_d)、完整性校验密钥、数据加密密钥
-
各密钥用途明确区分,不可混用
-
12)身份认证过程
-
主模式身份认证机制
-
认证数据组成:包含SA信息、身份信息、Cookie值等参数,通过身份认证密钥和散列算法生成哈希值
-
加密方式:使用SkeyID−e密钥加密身份认证数据包(包含哈希值和发起方身份ID)
-
双向认证:先由应答方验证发起方身份,再由发起方验证应答方身份,通过[HASH(R),ID(R)]
结构返回响应
-
-
密钥生成过程
-
基础密钥:
K(DH)=DH私钥I+DH公钥RK(DH)=DH私钥I+DH公钥RK(DH)=DH私钥I+DH公钥R
或
K(DH)=DH私钥R+DH公钥IK(DH)=DH私钥R+DH公钥IK(DH)=DH私钥R+DH公钥I
-
派生密钥:
-
SkeyID=prf(pre−share−key+N(I)+N(R))
:用于身份认证
-
SkeyID−d=prf(SkeyID+K(DH)+C(I)+C(R)+0)
:衍生密钥基础
-
SkeyID−a=prf(SkeyID+SkeyID−d+K(DH)+C(I)+C(R)+1)
:完整性校验密钥
-
SkeyID−e=prf(SkeyID+SkeyID−a+K(DH)+C(I)+C(R)+2)
:数据加密密钥
-
-
13)阶段一与阶段二的关系
-
阶段转换机制
-
密钥继承:阶段一生成的SkeyID−e和SkeyID−a将用于阶段二的通信加密
-
模式区别:主模式(6个报文)完成IKE SA建立,快速模式(3个报文)协商IPsec SA
-
安全关联:阶段一建立的安全通道为阶段二的IPsec SA协商提供保护
-
14)阶段二:快速模式
-
协商内容差异
-
核心参数:
-
安全协议选择(AH/ESP)
-
工作模式(传输模式/隧道模式)
-
加密算法与校验算法
-
-
密钥更新:基于阶段一的密钥材料生成新的会话密钥
-
报文特征:所有快速模式报文都经过加密(使用阶段一生成的SkeyID−e)
-
-
ISAKMP报文结构

-
关键字段:
-
Initiator cookie/Responder cookie:64位随机数标识SA
-
Exchange type:标识交换模式(主模式值为2)
-
Flags:包含3个有效位
-
加密位(0×01):1表示载荷加密
-
提交位(0×02):确保SA协商完成
-
纯验证位(0×04):支持密钥恢复机制
-
-
15)阶段二:快速模式任务
-
协商特点:快速模式仅使用3个报文完成协商,相比阶段一的6个报文更为精简
-
核心任务:
-
安全参数协商:确定ESP/AH协议、工作模式(传输/隧道)、加密算法、校验算法和生命周期
-
密钥生成:交换密钥计算材料并生成最终数据传输密钥
-
身份认证:完成对等体验证
-
16)阶段二:安全参数

-
参数内容:
-
协议选择:AH或ESP协议
-
工作模式:传输模式或隧道模式
-
算法组合:加密算法(如AES)和校验算法(如SHA)
-
生命周期:SA的有效时间参数
-
-
协商特点:
-
所有参数通过单个报文集中发送
-
报文受阶段一生成的KEY保护(SKEYID−e加密,SKEYID−a校验)
-
包含DH公钥和随机数等密钥材料
-
-
实现机制:
-
密钥材料:使用新的DH公钥(非阶段一的DH组)和随机数
-
身份保护:身份ID嵌入第一个报文
-
效率优化:将阶段一需要多个报文完成的任务压缩到3个报文内完成
-
4. IKE协商第二阶段过程分析
1)阶段二主要任务
-
核心目标:建立2个单向的IPSec SA(安全关联)
-
关键协商参数:
-
安全协议选择(ESP或AH)
-
工作模式(传输模式或隧道模式)
-
加密算法(如3DES、AES等)
-
哈希算法(如SHA-HMAC)
-
生命周期参数
-
2)报文交互过程
-
第一个ISAKMP报文

-
载荷组成:
-
SA载荷:包含提议的IPSec保护策略
-
身份载荷:标识通信双方
-
KE载荷:用于PFS(完美前向保密)的DH公钥
-
Nonce载荷:随机数值
-
HASH载荷:使用
HASH=prf(SKEYID_a,Mid∣SAi∣Ni∣A∣IDi∣IDr)计算
-
完整性验证:使用阶段一生成的完整性校验密钥
-
作用范围:对整个加密数据做完整性认证
-
-
-
参数协商内容:
-
协议选择:明确使用ESP还是AH协议
-
模式确认:确定采用传输模式还是隧道模式
-
算法组合:包括加密算法和验证算法的具体选择
-
数据流保护:定义受保护的数据流特征
-
PFS支持:通过KE载荷实现密钥材料更新
-
-
关键参数说明
-
HASH载荷生成:
-
计算依据:基于阶段一生成的SKEYID
-
包含要素:消息ID(Message ID)、SA提议、随机数Nonce等
-
-
KE载荷作用:
-
密钥更新:提供新的DH公钥用于密钥材料生成
-
PFS保障:确保即使主密钥泄露也不会影响历史通信安全
-
-
五、IPSec协议概述
1. IPSec协议保护IP数据的方式
-
AH协议保护:
-
传输模式:在原IP头部后添加AH头部,结构为IP头部|AH头部|数据部分
-
隧道模式:新增外层IP头部,结构为新IP头部|AH头部|原IP头部|数据部分
-
-
ESP协议保护:
-
传输模式:结构为IP头部|ESP头部|加密数据|ESP验证
-
完整性校验:通过HMAC-MD5或HMAC-SHA1生成哈希值进行验证
-
加密过程:使用DES/3DES/AES加密原IP头部+数据部分+ESP尾部

-
-
发送方处理流程:
-
数据填充:对原IP头部+数据部分+ESP尾部进行填充
-
加密处理:使用Key1进行DES/3DES/AES加密
-
哈希计算:使用Key2生成HMAC-MD5/SHA1哈希值
-
封装结构:最终格式为新IP头部|ESP头部|加密数据|ESP验证哈希值
-
2. 密钥计算材料与身份认证
-
快速模式三要素:
-
安全参数协商:
-
保护协议(AH/ESP)
-
工作模式(传输/隧道)
-
加密算法(如AES)
-
校验算法(如SHA1)
-
生命周期
-
-
密钥材料交换:
-
包含DH公钥和随机数N(I)/N(R)
-
通过SkeyID-e和SkeyID-a进行加密保护
-
-
双向身份认证:
-
使用HASH(I)/HASH(R)验证身份
-
携带ID(I)/ID(R)身份标识
-
-
3. 密钥计算与安全参数确认
-
密钥派生过程:
-
SkeyID-a = prf(SkeyID + SkeyID-d + K(DH) + C(I) + C(R) + R)
-
SkeyID-e = prf(SkeyID + SkeyID-a + K(DH) + C(I) + C(R) + SkeyID-a)
-
-
应答方处理:
-
收到第二个报文后能计算全部五个密钥
-
可重新生成SkeyID-d等衍生密钥
-
通过DH公钥和随机数验证密钥材料
-
4. 身份认证与密钥保护
-
报文交互逻辑:
-
第一个报文:发起方发送安全参数提案和DH公钥
-
第二个报文:应答方确认参数并返回自己的DH公钥
-
第三个报文:完成双向身份认证
-
-
安全特性:
-
阶段二所有参数均被阶段一的密钥加密保护
-
实际通信中无法直接查看协商参数
-
身份认证载荷包含HASH(R)和ID(R)等关键信息
-
5. 实验平台与隧道模式
-
实验注意事项:
-
隧道模式实际通过GRE over IPSec实现
-
ESP验证哈希值由应答方完成校验
-
密钥计算需包含C(I)和C(R)等交换参数
-
-
调试技巧:
-
可通过抓包验证阶段一和阶段二的协商过程
-
注意区分传输模式和隧道模式的报文结构差异
-


2784

被折叠的 条评论
为什么被折叠?



