七、IP 安全数据报格式
IP 安全数据报格式 :
① ESP 首部 : 32 位的 安全参数索引 ( SPI , Security Parameter Index ) ;
② ESP 尾部 : 原始的 IP 数据报后面 添加 ESP 尾部 , ESP 尾部分为三个字段 :
填充字段 : 目的是 保证数据块长度是 若干字节 整数倍 ;
填充长度 : 填充字段长度 ;
下一首部 : 下一个要处理的首部 , 指的是 3有效载荷 中的原始 IP 首部 ;
③ IP 安全数据报的三个首部 :
新的 IP 首部 : 这是 实际使用的首部 , 用于路由转发 ;
ESP 首部 : 安全参数索引 ( SPI , Security Parameter Index ) + 序号 , 每个占 32 位 , 总共 64 位 ;
原始的 IP 首部 : 这是原始 IP 数据报自带的首部 ;
④ ESP 有效载荷 : 指的是 原始 IP 数据报 , 包含 原始 IP 首部 , 原始 IP 数据报数据部分 ;
⑤ IP 首部中的地址信息 :
原始 IP 首部 : 使用 发送端 和 接收端 的主机 IP 地址作为 源地址 和 目的地址 ;
新的 IP 首部 : 使用路由器的 IP 地址作为 源地址 和 目的地址 ;
八、IP 安全数据报 生成流程
IP 安全数据报生成流程 :
① 生成 ESP 尾部 : 生成 ESP 尾部 , 添加在原始 IP 数据报后面 ;
② 加密 : 按照 IPsec 状态信息中的 加密算法 和 密钥 , 对 有效载荷 ( 原始 IP 数据报 ) 和 ESP 尾部 , 进行加密 ;
③ 添加 ESP 首部 : 在加密后的密文前 , 添加 ESP 首部 ; 安全参数索引 ( SPI , Security Parameter Index ) + 序号 , 每个占 32 位 , 总共 64 位 ; 序号用于鉴别 , 防止重放攻击 , 分组重传时 , 序号不重复 ;
④ 生成 MAC 报文鉴别码 : 按照 IPsec 指定的 算法 和 密钥 , 对 ESP 首部 + 有效载荷 ( 加密 ) + ESP 尾部 ( 加密 ) 数据 , 生成 报文鉴别码 MAC ;
⑤ 添加 MAC : 将 生成的 MAC 报文鉴别码 添加到 ESP 尾部后面 ;
⑥ 生成新的 IP 首部 : 协议字段值是 50 , 表示后面的数据要交给 ESP 协议处理 ;
⑦ 添加 IP 首部 : 将 IP 首部放在 ESP 首部之前 ;
九、IP 安全数据报格式
IP 安全数据报 工作机制 :
① 无法获知主机地址 : 截获者 无法 解密其中的数据 , 只能看懂这是从 路由器 R1 发往 路由器 R2 的数据报 , 无法看懂其中的含义 ; 只有解码密文 , 才能看到有效载荷中的 原始 IP 数据报信息 , 原始 IP 数据报头部有源主机和目的主机 IP 地址 ;
② 无法篡改 : 截获者 删除其中的字节 , 但是接收端会进行 完整性验证 , 会要求发送端重发信息 ;
③ 无法重放攻击 : 截获者 进行重放攻击 , 安全数据报中的 ESP 首部序号不能重复 , 每次都不能重复 , 使得重放攻击无法生效 ;
十、IPsec 构件
IPsec 构件 :
① 安全关联数据库 ( SAD , Security Association Database ) :
存储 SA : 发送 IPsec 数据报 , 可能用到很多 安全关联 SA , SA 存放在 SAD 中 ;
发送 IP 安全数据报 : 主机发送 IP 安全数据报时 , 到 SAD 中查找 SA , 获取相关的信息 , 对该 IP 安全数据报进行加密保护 ;
接收 IP 安全数据报 : 主机接收 IP 安全数据报时 , 也要到 SAD 中查找 SA ,. 获取相关信息 , 解密 IP 安全数据报 ;
② 安全策略数据库 ( SPD , Security Policy Database ) :
需求 : 主机发送的数据报 , 不是所有的数据都需要加密 , 有些只需要使用明文发送即可 ;
作用 : SPD 指明 哪些数据报 需要加密 , 哪些数据报 不加密 ;
③ 互联网密钥交换 ( IKE , Internet Key Exchange ) :
作用 : 为 IP 安全数据报 , 创建 安全关联 SA ;
协议基础 : 该协议基于 Oakley 协议 , SKEME 协议 , ISAKMP 协议 ;
Oakley 协议 : 密钥生成协议 ;
SKEME 协议 : 安全密钥交换协议 ( Security Key Exchange Mechanism ) , 密钥交换协议 ; 使用公钥 加密 实现 实体鉴别 ;
ISAKMP 协议 : 互联网安全和密钥管理协议 , 实现 IKE 中的密钥交换 ;