【计算机网络】网络安全 : 网络层安全协议 ( IPsec 协议 | IPsec 协议族组成 | IP 安全数据报工作方式 | 安全关联 SA | SA 状态信息 | IP 安全数据报格式 )?

文章目录

  • 一、网络层安全性
  • 二、IPsec 协议族
  • 三、IPsec 协议族组成
  • 四、IP 安全数据报 工作方式
  • 五、安全关联 SA
  • 六、安全关联 SA 状态信息
  • 七、IP 安全数据报格式
  • 八、IP 安全数据报 生成流程
  • 九、IP 安全数据报格式
  • 十、IPsec 构件

一、网络层安全性


网络层 几乎不具备安全性 :

  • 没有 数据源鉴别机制 ;
  • 没有 数据完整性保护机制 ;
  • 没有 数据保密性机制 ;
  • 设计 / 实现 中 , 存在各种 安全漏洞 , 容易受到 IP 欺骗 , 会话劫持 , 流量嗅探 等攻击 ;

二、IPsec 协议族


IPsec 协议族 :

① 全称 : IP 安全 , sec 是 Security 的缩写 ; 是 IETF 制定的开放安全标准 ;

② 内容 : 定义了 在网络层如何实现网络安全 , 提供了 数据完整性 , 保密性 , 认证 , 应用透明的安全性 ;

③ 性质 : IPsec 是一个协议族 ;

④ 框架 : IPsec 只提供了框架 , 通信双方的 加密算法可以自定义 , 如使用什么样的参数 , 密钥 等 ;

⑤ 互操作性 : IPsec 中提供了一套 所有 IPsec 都必须实现的加密算法 ;

三、IPsec 协议族组成


IPsec 协议族组成 :

① IP 安全数据报格式 协议 :

  • 鉴别首部协议 ( AH , Authentication Header ) : 支持 源点鉴别 , 数据完整性 , 不支持 数据保密 ;
  • 封装有效载荷协议 ( ESP , Encapsulation Security Payload ) : 支持 源点鉴别 , 数据完整性 , 数据保密 ;

② 加密算法协议

③ 互联网密钥交换协议 ( IKE , Internet Key Exchange )

IP 安全数据报 : 使用 ESP 或 AH 协议的 IP 数据报 称为 IP 安全数据报 , 又称为 IPsec 数据报 ;

支持的 IP 协议版本 : IPsec 支持 IPv4 和 IPv6 两个版本的 IP 协议 ;

包含关系 : ESP 协议包含 AH 协议功能 ;

四、IP 安全数据报 工作方式


IP 安全数据包 工作方式 :

① 运输方式 ( Transport Mod ) :

  • 组装 IP 安全数据报 : 运输层报文段 , 前后加上控制信息 , 再上述基础上 , 加上 IP 首部 , 组成 IP 安全数据报 ;
  • 前提条件 : 只适合主机到主机之间的传送 , 两个主机之间都运行 IPsec 协议 ;

② 隧道方式 ( Tunnel Mode ) :

  • 组装 IP 安全数据报 : 在 原始 IP 数据报 基础上 , 前后加上 控制信息 , 再添加新的 IP 首部信息 , 构成 IP 安全数据报 ;
  • 前提条件 : IP 安全报文 所经过的路由器上 , 需要运行 IPsec 协议 ;
  • 常用用途 : 虚拟专用网 V** ;

③ IPsec 数据报加密 :

  • IP 首部是不能加密的 : 因为 途径的路由器 都需要根据该 IP 首部查找下一跳路由 ;
  • 数据部分是加密的 : IPsec 数据报 的 数据部分是加密的 , 并且可以被鉴别 ;
  • 有效载荷 : IPsec 数据报 中的 数据部分 称为 有效载荷 ;

五、安全关联 SA


安全关联 ( SA , Security Association ) : 发送 IP 安全数据报 前 , 在发送端 和 接收端 之间 , 建立一条 逻辑连接 ;

IPsec 协议将 无连接 的网络层 , 转为 有逻辑连接 的网络层 ;

安全关联 ( SA , Security Association ) 特点 :

① 单向连接 : SA 是 单向的 , 其作用是提供 安全的数据传输服务 ;

② 传输数据 : SA 主要作用是传输 IP 安全数据报 ;

③ 双向 SA : 在 往返两个方向都建立 SA , 即可进行 双向安全通信 ;

六、安全关联 SA 状态信息


建立安全关联 ( SA , Security Association ) 的双方需要维护的 状态信息 : 状态信息的作用是 描述如何进行 加密 / 解密 ;

① 安全参数索引 ( SPI , Security Parameter Index ) : 32 位 的 连接标识符 ;

② IP 地址 : SA 关联的 发送端 和 接收端 IP 地址 ;

③ 加密类型 : IPsec 数据报使用的 加密类型 , DES / AES ;

④ 密钥 : 加密使用的 密钥 ;

⑤ 完整性检查类型 : MD5 ( 报文摘要算法 ) , SHA-1 ( 安全散列算法 ) ;

⑥ 鉴别密钥 ;

七、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 指明 哪些数据报 需要加密 , 哪些数据报 不加密 ;
  • 作用 : 为 IP 安全数据报 , 创建 安全关联 SA ;
  • 协议基础 : 该协议基于 Oakley 协议 , SKEME 协议 , ISAKMP 协议 ;
  • Oakley 协议 : 密钥生成协议 ;
  • SKEME 协议 : 安全密钥交换协议 ( Security Key Exchange Mechanism ) , 密钥交换协议 ; 使用公钥 加密 实现 实体鉴别 ;
  • ISAKMP 协议 : 互联网安全和密钥管理协议 , 实现 IKE 中的密钥交换 ;