IPSec简介

优点:
1.在网络层进行安全加密,便于公司和公司的信息传输的加密构建v*n
2.密钥协商的开销减少,只需要在公司出口的路由器上配置即可,不需要每个用户都做协商。
3.需要改动的应用程序很少,

缺点:
很难解决“抗抵赖”之类的问题。(A冒充B给对端发送数据)

IPv4 的头

IPSec 体系结构

这里写图片描述

有两个安全协议ESP协议和AH协议,在协议中涉及到加密算法和鉴别算法,在算法中涉及到密钥问题,故有密钥管理。IPsec 支持不同 的用户使用不同的策略。

IPSec 安全协议

AH:authentication Header 验证头部

  • 为IP包,提供数据完整性校验和身份认证功能
  • 验证算法由SA指定。
  • 认证的范围是整个包

完整性校验算法:MD5、SHA
身份认证:证书、签名、域共享的密码、

ESP:encapsulation security payload 封装安全负载

  • 提供机密性、数据源验证、抗重播以及数据完整性等安全服务
  • 加密算法和身份验证方法有SA指定。

机密性:数据加密算法:(MD5、RSA、DES)

IPSec 加密算法

IPSec 密钥管理

SA:security association 安全联盟

  • 确保通信双方的密钥和算法一致

ISAKMP:定义了密钥管理框架
IKE 是目前正式确定用于IPsec的密钥交换协议(可以看做是ISAKMP的高版本)

两种模式

两种模式:传输模式和隧道模式

这里写图片描述

简介:

  1. 原始的IP包,是由低层封装高层。
  2. 传输模式封装原始的IP包,是在原始的IP报文中新增加了一个IPsec的头,并对tcp头、数据做加密处理。
  3. 使用隧道模式封装原始的IP包,是将原始的IP包整体作为需要加密的有效数据部分,直接在外面增加IPsec头,在最外面增加外部IP头。

AH头格式:

这里写图片描述
SPI:security parameter index 安全参数索引
标识此包使用的算法、密钥进行加密处理。
sequence number:序列号
authentication data(variable):可变长度的数据验证

封装后的具体的包格式,IPsec的封装部分就是AH的封装部分。

这里写图片描述

这里写图片描述

AH的处理过程

对于发送出的包的处理构造AH

  • 创建一个外出SA(手工或通过IKE)
  • 产生序列号 填充AH头的各字段 计算ICV(integrity check value
    完整性检验值)内容包含:ip头中部分域、AH自身、上层协议数据。
    AH头中的“下一头部”置为原IP报头中的“协议”字段的值,原IP包头的“协议字段置为51(代表AH)”

对于接收到的包的处理

  • 分片装配 ,在不同的设备上mtu值不同,需要对接受到的数据分片装配
  • 查找SA ,确定加密的算法和相关的密钥信息。 依据:目标IP地址、AH协议、SPI
  • 检查序列号 ,看包是否存在重复出现
  • ICV检查,完整性检查

ESP协议

这里写图片描述

SPI:security parameter index 安全参数索引
标识此包使用的算法、密钥进行加密处理。
sequence number:序列号
payload Data(variable):可变数据的负载部分
authentication data(variable):可变长度的数据验证
padding(0-255bytes):填充数据部分
Pad length:填充信息的长度
Next Header:下一个头部信息

这里写图片描述

这里写图片描述

ESP协议的处理

对于发送出去的包的处理

  • 查找SA
  • 加密
  • 封装必要的数据,放到payload data 域中,不同的模式,封装数据的范围不同
  • 增加必要的padding数据 加密操作
  • 验证
  • 计算ICV,注意,针对加密后的数据进行计算。

对于接收到的包(inbound Packet)的处理:

  • 分片装配
  • 查找SA,依据:目标IP地址、ESP协议、SPI
  • 检查序列号(可选、针对重放攻击) 使用一个滑动窗口来检查序列号的重放
  • ICV检查
    根据SA中指定的算法和密钥、参数,对于被加密部分的数据进行解密
    去掉padding
    重构原始的IP包

安全联盟SA

  • SA是单向的(任何人根据SA的信息是无法逆推出,加密算法、密钥、鉴别算法)
  • SA是“协议相关”的。AH、ESP不同的协议对应和SA也不同
  • 每个SA通过三个参数来标志[SPI、dst(src)、protocol]
    安全参数索引SPI(security Parameters index):密码密钥的标号
    对方IP地址
    安全协议标识AH or ESP
  • SA 与IPsec 系统中实现的两个数据库有关
    安全策略数据库(SPD)
    安全关联数据库(SAD)

    密码和密钥放在这两个数据库中,数据库只有双方知道其他人不知道,在调用的时候通过标号来调用。

R1和R2需要建立IPsec连接,

  1. 收发双方需要协商的方式确立安全策略数据库,安全策略中需要指定的身份认证的方法(证书或者是域共享密码),实现IPsec的过程中,既使用AH协议有用ESP协议,确定协议的切换时间,加密的方式是DES,以及切换加密协议的时间。

  2. 确立算法和密钥的数据库,

Internet 密钥交换协议-IKE

IKE协议

  • RFC2409 ,是0akley和SKEME协议的一种混合
  • 基于ISAKMP框架
  • 沿用0akley和SKEME的共享和密钥更新技术

SAKMP:I Internet security association and key management protocol

  • RFC 2408
  • 定义如何检验安全联盟并初始化密钥

两个阶段的交换

第一阶段:建立ISAKMP SA —— IKE SA

  • 双方(例如ISAKMP servers)商定如何保护以后的通讯,通信双方建立一个已经通过身份鉴别和安全保护的通道
  • 此SA将用于保护后面的protocol SA的协商过程。

第二阶段:建立起针对其他安全协议的SA —— IPsec SA

  • 这个阶段可以建立多个SA
  • 此SA将被相应的安全协议用于保护数据或者消息的交换。

IPsec - v*n

IP安全协议:AH、ESP 数据加密标准: DES,3DES 公共密钥密码协议:Diffie-Hellman(DH) 散列算法(完整性):MD5,SHA-1 公钥加密算法:RSA Internet密钥交换:IKE 证书授权中心:CA