优点:
1.在网络层进行安全加密,便于公司和公司的信息传输的加密构建VPN
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的高版本)
两种模式
两种模式:传输模式和隧道模式
简介:
- 原始的IP包,是由低层封装高层。
- 传输模式封装原始的IP包,是在原始的IP报文中新增加了一个IPsec的头,并对tcp头、数据做加密处理。
- 使用隧道模式封装原始的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连接,
收发双方需要协商的方式确立安全策略数据库,安全策略中需要指定的身份认证的方法(证书或者是域共享密码),实现IPsec的过程中,既使用AH协议有用ESP协议,确定协议的切换时间,加密的方式是DES,以及切换加密协议的时间。
确立算法和密钥的数据库,
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 - VPN
IP安全协议:AH、ESP
数据加密标准: DES,3DES
公共密钥密码协议:Diffie-Hellman(DH)
散列算法(完整性):MD5,SHA-1
公钥加密算法:RSA
Internet密钥交换:IKE
证书授权中心:CA