网安笔记12 IPsec

IPSec

基于通信IP环境下一种端到端,保证数据安全的机制

包含 两个安全协议,一个密钥管理协议, 标准价秘密技术为基础

  • DES/其他分组加密算法
  • 键值hash算法认证
  • 公钥有效的数字证书
  1. AH协议提供信息源验证、完整性保证
  2. ESP提供信息源验证、机密性、晚自习保证
  3. ISAKMP 交流共享安全信息

安全功能

隧道协议

  1. 实现VPN通信
  2. 数据起源地验证; —— 数据可靠
  3. 无连接数据的完整性验证
  4. 数据内容机密
  5. 抗重播保护
  6. 有限数据流机密性保证

AH 认证报头 Authentication Header

IP数据包服务

  • 无连接数据完整性验证
  • 数据源身份认证
  • 重放攻击

不提供

  1. 数据保密性
  2. 键值hash函数而非数字签名 (数字签名会降低网络吞吐率

数据完整性通过Hash函数如MD5校验保证。数据源身份认证通过计算验证码加入共享密钥实现; AH头序列号可以防止重放攻击

ESP encapsulating security payload 封装安全有效载荷协议

  • 数据保密性
  • 无连接
  • 数据源认证

使用ESP验证数据完整性,ESP不包含IP报头中固定的字段认证:
比AH多了以下内容

  1. 数据包加密 —— 一个数据包加密,整个数据包或者IP包的载荷部分
  2. 数据流加密

IKE 因特网密钥交换协议额

协商AH和ESP协议使用的加密算法

  • 身份认证
  • 协商加密
  • 生成共享的会话密钥

IKE将密钥协商结果留在 SA中,供AH和ESP通信使用。DOI使用IKE进行协商SA的协议统一分配标识符。 DOI将IPSec和RFC文档联系在一起

安全联盟(Security Association)

两台IPSec计算机在交换数据之前,必须首先建立某种约定,这种约定,称为“安全联盟"或"安全关联"。双方就保护信息,交换信息等公共安全设置达成一致 —— 让两种计算机安全交换一套密钥

IPsec提供多个选项进行网络加密认证:确定所需安全服务,通信双方明确规定需要使用的算法。例如,DES或IDEA 用来 加密 ;MD5或SHA用于完整性 服务 )。在确定了算法以后,双方必须共享会话密钥

SA有二义性:IPSec SA或IKE SA

  • AS是单向的,一堆通信系统至少要两个AS
    • 一个处理 SA(out)
    • 一个为 SA(in)

每个 SA可由一个三元组唯一确定

<SPI, 源/目的IP地址, IPSec协议>

安全参数索引(Security Parameter Index,SPI) 随机选取的惟一字符串
安全协议识别码 区分AH还是ESP 标识同一个目的地的SA

源/目的IP地址。表示对方IP地址,对于外出数据包,指目的地址;对于进入IP包,指源地址

IPSec协议:采用AH或ESP
if : 当一个系统需要对发送的包使用IPSec实施保护时
then : 
    查询数据库中的安全联盟 
    进行特定处理
    安全连接的SPI插入到IPSec报头

if 当对等接收方收到数据包时
then
    用SPI和目的IP地址
    从网络数据库中查询相对应的安全联盟
    安全处理

两大主要任务就是创建和删除

  • 手工管理:SA的内容由手工指定、手工维护。
  • IKE自动管理:通过一个Internet标准密钥管理协议来完成

要求用户使用程序的一个接口和IPSec内核通信, 以便实现对SA数据库的管理

  • 先协商SA参数
  • 用SA更新SAD(安全联盟数据库)

安全联盟数据库包含每个SA的参数信息:

  1. AH\ESP算法密钥
  2. 序列号
  3. 协议模式
  4. 有效期

人工密钥协商必须支持。通信双方离线同意SA各项参数

  • 电话/电子邮件进行SPI分配,参数选择
    • 容易出错
    • 不版权
    • 人工方式删除
  • SA没有周期限制
    • 不会过期

已经配置好的IPSec环境中,SA建立可以用 因特网标准密钥管理协议(IKE完成

if 安全策略找不到SA
    then IPSec 自动调用IKE
        IKE与目标主机,途中router/host协商SA
        SA创建好加入SAD数据库
        数据包会用SA参数实现安全服务

删除SA的理由

  • 存活时间过期
  • 密钥被破解
  • SA加密/解密 or验证字节数超过策略设定的某一个阈值
  • 另一端要求删除

SAD Security Association Database,安全联盟数据库

所有SA存于存储的列表

对于外出流量
if IPSec需要处理 && SA不存在
    then IPSec 启动IKE协商SA
        存储SAD中

进入流量:
if IPSec需要处理
    then IPSec在IP包找出三元组,在SAD查找SA

SP安全策略和 SPD安全策略数据库

SECURITY POLICY 对IP数据包

  • 提供何种保护?
  • 何种方式保护?

SP根据源IP,目的IP,入数据,出数据表示。
IPSec定义用户如何设置安全册率 —— “选择符”设置大小。控制IP地址以及传输层协议,TCP/UDP端口等

SECURITY POLICY DATABASE —— 所有SP集中存储的列表

接受/收到IP的处理方法

  1. 丢弃:流量不能离开host或发送导应用程序,也不能转发
  2. 不用IPSec,对流量作为普通流量处理,不需要额外的IPSec保护
  3. IPSec,对流量用用IPSec保护,指向一个SA(不存在要协商

IPSec工作模式

传输模式、隧道模式(AH和ESP都支持这两种模式

传输模式

  • 保护IP包有效负荷
    • TCP
    • UDP
    • ICMP

用于主机之间安全通信

对IPv4,有效负荷是报文头后面的数据
IPv6是基本报头+扩展报头部分

在这里插入图片描述

隧道模式

  • 保护整个IP包
给IP包增加AH or ESP字段
在外部新增IP头

原始包/内部包通过隧道从IP一段传到另一端
路由器检查最外面的IP头而不是内部的IP头
IP报文目的地址可能不一致(多用于至少一端为安全网关,如防火墙,路由器的时候

后续防火墙后的host可以内部地址通信,无需IPSec

在这里插入图片描述

IPSec实现方式

主机、路由器/防火墙,两者中同时实施部署

  1. 集成。
    1. IPSec集成到IP协议。
    2. 处理IP源代码,
    3. 适用于在主机和安全网关中实现
  2. BITS。
    1. “堆栈中的块”(BITS)实现。 IPSec插在IP协议栈和链路层之间
    2. 不用处理IP源代码
    3. 适用对原有系统升级改造
    4. 用于主机
  3. BITW
    1. “线缆中的块(BITW)”实现
    2. IPSec在一个设备中
    3. 设备接入host或者router
    4. 类似BITS,支持路由器和防火墙需要当安全网关

在这里插入图片描述

对比

传输模式 隧道模式
处理 AH ESP处理有效再付,不改IP头 原来的整个IP包都受到保护,并被当作一个新的IP包的有效载荷。
允许网络设备,如router扮演IPSec代理角色,host发送接受内容,router完成数据加密和解密
优点 每个数据包只增加少量字节
公网可以看到源地址目标地址,中间网络可以根据IP头进行处理(但第四次还是加密的
于不用修改任何端系统就可以获得IP安全性能。
防止通信量分析攻击——内外IP头不一样

IPSec传输模式只能用于源和目的系统都理解IPSec协议的情况下。 多用隧道

隧道有点:不修改网络结构的host,server,OS或任何app

在这里插入图片描述

IPSec数据包信息格式

认证报头AH

IPSec协议之一

  • IP提供完整性
  • 数据源身份验证
  • 有限的抗重放服务
  • 不对受保护的IP数据包进行加密。不提供保密性

定义

  • 保护方法
  • 头的位置
  • 身份认证覆盖范围
  • 输入输出处理规则
  • 没对所用身份验证算法定义

用处

  • 保护上层协议(传输
  • 保护IP包(隧道

协议代号是51 == AH保护一个IPv4数据包协议进行阻断

下一个头字段表示 下一个头字段表示AH头之后

  • 传输模式。 将是处于保护中的上层协议的值,比如UDP或TCP协议的值
  • 隧道模式:数值4表示在隧道模式下,其数值4表示IP-in-IP(IPv4)封装;数值41表示IPv6封装

在这里插入图片描述

  • 负载长度字段:32位字为单位的长度减去2来表示
  • SPI字段中包含SPI: 该字段和外部IP头的目的地址一起,用于识别对这个包进行身份验证的安全联盟
  • 序列号是一个单向递增计数器
  • 身份验证数据字段是一个可变长度字段,其中包括完整
    性校验的结果。该字段长度必须是 该字段长度必须是32位字的整数倍

AH运行模式

传输模式:上层协议;隧道模式:完整IP数据包
要对外部IP头固有部分身份验证

传输模式

保护的是端到端的通信。通信的终点必须是 通信的终点必须是IPSec终点。 AH头紧跟在IP头之
后(包括任意选项)以及需要保护的上层协议之前

在这里插入图片描述

在IPv6环境下,AH被看作是端对端的有效负载。中间router不处理。AH出现在IPv6基础报头、跳点、路由和分片扩展报头后面。验证同样包括整个包(设置为0就不需要验证

隧道模式

将自己保护的整个数据包封装起来。另外,在AH头之前,另添加了一个IP头。 可替换端对端安全服务的传输模式

  • 无保密协议
  • 无法抵御通信流分析
  • 确保传输过程不被修改
    • 当事人发送
    • 新的非重放数据包
外出数据包首先必须匹配一个SPD条目(表示采用AH保护),

然后查找SAD看是否存在一个合适的 看是否存在一个合适的SA。
if not 
    then可用IKE动态地建立一个
else 
    then 相应的SA对数据包进行安全处理
      顺序由它的设计协定而定义

ESP封装安全载荷

混合安全服务

  • 机密性
  • 数据源身份验证
  • 完整性
  • 抗重播

选择数据源验证时才可以选择抗重播服务。接收方单方面选择抗重播服务。

ESP单独应用或者IP验证头AH结合使用,或者采用嵌套形式。安安全服务可在一对通信主机、一对安全网关之间,一个安全网关和一台主机的实现。

在这里插入图片描述

ESP头可在位置

  1. IP头之后
  2. TCP or UDP头之前
  3. 封装在IP头之前(隧道模式

封装安全有效载荷分组格式

ESP紧跟在IP协议头之后

  • IPv4没区别,协议头字段是50
  • IPv6在扩展头之后和目的地头之间

可选项若未选。不被包含在传送分组中,也不会进行ICV的加u四年

加密验证算法

通用的、可灵活扩展的协议

标准要求所有的ESP实现支持密码分组链方式(CBC)的DES作为缺省的算法 作为缺省的算法。然而,这种规定并不是强制性的。可以使用加密算法或者不加密

DES-CBC用64比特一组的加密数据 比特一组的加密数据(密文)来代替64比特一组的未加密数据(明文)。

  • 随机,64bit初始化向量 用于 加密第一个明文分组
  • 确保铭文信息开头相同可以保证加密信息的随机性

传输模式和隧道模式类似前者

传输模式ESP

IPv4意指把ESP放在IP头(和它包含的任何其它选项)之后,但是在上层协议之前

如果选择身份验证,则在ESP报尾之后添加ESP认证数据字段。身份验证范围包含所有密文以及ESP头。

在这里插入图片描述

IPv6中,ESP被看作端到端的有效载荷,路由不对其检查处理。目标选项扩展头既可以在ESP头之前,也可以在ESP头之后。

ESP仅保护ESP之后的字段

在这里插入图片描述

隧道模式ESP

在主机或者安全网关上实现。安全网关(保护用户传输流量 保护用户传输流量)实现时必须采用隧 实现时必须采用隧道模式

ESP保护整个内部IP分组,其中包括整个内部IP头,加入新的IP头部

![这里插入图片描述](https://img-blog.csdnimg.cn/d02236a70d6549d7a26aaeefc8efef13.png)

在这里插入图片描述

因特网密钥管理协议

IPSec并没有提供如何建 并没有提供如何建立该安全联盟的机制

IETF分为两部分

  • IPsec提供分组级别安全处理
  • 因特网密钥管理协议IKMP负责协商安全联盟

IKE(Internet Key Exchange)

  • 两个实体之间建立一条经过认证的安全隧道
  • 并对用于IPSec的安全联盟进行协商
    因特网安全联盟和密钥管理协议 简历安全联盟和密钥框架

密钥管理需求

AH和ESP的参与双方需要共享密钥,这可以通过手工(Manual)密钥分发或者带外(out-of-band)密钥分发来实现

问题

  • 密钥有可能丢失/妥协/过期
  • 需要管理的安全联盟数目太多,手工分发密钥技术将无法满足可伸缩性

要求

  1. 独立于特定的密码算法
  2. 独立于特定的密钥交换协议
  3. 密钥管理实体的认证
  4. 不安全传输通道上建立SA
  5. 资源的有效使用
  6. 按需产生主机和基于会话的SA

IKE对应的特性

  1. 密钥产生和身份认证过程
  2. 自动密钥更新
  3. 每个安全协议(AH,ESP)有自己的安全参数索引(SPI)空间
  4. 内置保护:资源耗尽攻击,连接/会话劫持攻击
  5. 前向保密性(Perfect Forward Security
  6. 分阶段方法:第一阶段建立密钥交换的密钥和SA,第二阶段建立数据传输的SA
  7. 端口500实现
  8. 支持面向主机(IP地址)和面向用户(长期身份)证书
  9. ISAKMP交换使用强认证方法

认证方法

认证必须是双向认证

  1. 预共享密钥(Pre-shared Keys
  • 相同密钥预先装在主机上。IKE计算hash发送对方认证
  1. 公钥加密
  • 无法提供抗拒绝服务能力
  • 只支持RSA公钥加密算法
  1. 数字签名
  • 和前面的类似,但是它可以提供抗拒绝服务。当前支持RSA公钥加密算法和数字签名标准

是数字签名还是公钥加密都需要使用数字证书来完成公钥 数字证书来完成公钥/私钥的映射

密钥交换

DH协议就可让双方协商一个会话密钥。这个过程是经过认证的,以防止中间人攻击.

IKE使用Oakley来实现,基于DF,防止中间人攻击

两个阶段组成
一阶段

  1. 建立ISAKMP安全联盟
    1. ( 假设并没有安全通道存在
    2. SA由ISAKMP拥有
    3. 只协商一个SA —— ISAKMP SA
    4. 只提供一个建议,就是使用Oakley为密钥交换方法

二阶段

  1. 前两条消息是发起者提供一个建议,其中包含一个或多个变换。响应者选择其中某个变换 应者选择其中某个变换。此外还要产生一个 此外还要产生一个Cookie,用于预防拒绝服务攻击。Cookie对(发起者和响应者Cookie)还可识别ISAKMP SA
  2. 下两个消息为DH密钥交换
  3. 最后两条用于认证

第一阶段产生的ISAKMP SA保护后续所有的第二阶段
ISAKMP消息。

  • 更新第一阶段的密钥材料
  • 实体交换SA的建议,使用某个建议
  • 三个工作模式
    • 快速模式
    • 信息模式
    • 新租模式

ISAKMP结构

适应不同类型的服务,含13种已定义的负载。负载时ISAKMP消息基本构造块

交换类型定义了五种

  1. 基本
  2. 身份保护
  3. 纯认证
  4. 积极
  5. 信息

IKE协议

混合型协议,包括

  • ISAKMP
  • Oakley
  • SKEME

对比ISAKMP

  1. IKE定义密钥交换过程
  2. ISAKMP只顶一个通用可被密钥交换协议使用框架

四种认证方式

  1. 数字签名
  2. 公开密钥
  3. 修正的公钥密钥
  4. 预共享字符串

交换模式

  1. 主模式(一阶段
  2. 积极(一阶段
  3. 快速(二阶段
  4. 新组(一阶段后i而上新组

前三用于协商SA,后1用于协商DH算法

IPSec/IKE系统处理

  1. 认证和密钥交换创建IKE SA和两个设备之间的安全隧道
  2. IPSec使用的共享密钥和IKE共享密钥不一样
    1. 需要用新算法推导IPSec密钥
    2. 前向保密性指长期使用的主密钥泄露,不会导致过去的会话密钥泄露
  3. 可用DH推导确保前向保密性 or 最初创建的IKESA用DH交换的共享密钥和随机数进行hash运算获得
    1. 前一种安全性高,速度慢

对分组,要按照IPSec处理

IKE过程在Bob和Alice之间创建了一个安全隧道,IPSec SA协商于该隧道上完成

在这里插入图片描述

Bob向Alice发送数据,Bob的router看到数据包,检查安全策略并给包加密后再传输。安全策略告诉router IPSec另一端时Alice的router,检查IPSec SA,没有需要从IKE获得一个。

在这里插入图片描述

若未共享IKE SA,协商IPSec前建立IKE SA —— 交换数字证书,数字证书需要有信任的认证中心签名.IKE激活后,路由器协商IPSec SA。统一加密算法、认证算法

总流程

  1. B的router对B的数据包加密,发送
  2. A的路由器接受IPSec包,router查询IPSec SA,处理完后发送A

IPSec体系结构

在这里插入图片描述

  1. A向B发送消息
  2. A的IPSec驱动器检查IP筛选器,检查是否需要保护,如何保护
  3. 驱动通知IKE协商
  4. B的IKE收到安全协商通知
  5. 主机建立一阶段 SA
    1. 此时各自生产主密钥
    2. 若已建立一阶段,可直接进行二阶段SA协商
  6. 建立二阶段SA
    1. 入站SA和出站SA
    2. SA包括密钥和SPI
  7. A的IPSec驱动使用出战SA对数据包
    1. 签名(完整性
    2. 加密
  8. 驱动将数据包给IP层,IP层转发给B
  9. B的网络适配器驱动程序收到数据包交给IPSec驱动程序
  10. IPsec驱动程序入栈SA检查完整性,解密
  11. 发给TCP.IP驱动程序,再经TCP/IP驱动给主机B的APP

使用IPSec保护的数据包不能通过网络地址译码 数据包不能通过网络地址译码NAT。IP地址不能被NAT改变——否则完整性检查失败

猜你喜欢

转载自blog.csdn.net/JamSlade/article/details/131155660
今日推荐