1、IPSec概览
IPSec (Internet 协议安全)是一个工业标准网络安全协议,为 IP 网络通信提供透明的安全服务,保护 TCP/IP 通信免遭窃听和篡改,可以有效抵御网络攻击,同时保持易用性。
IPSec有两个基本目标:1)保护IP数据包安全;2)为抵御网络攻击提供防护措施。
IPSec基于一种端对端的安全模式,即对经过的通讯数据进行加密,而掌握数据加解密方法的只有发送端和接收端,网络中其他负责转发的路由器等无须支持IPSec。
2、IPSec基本原理
两台IPSec计算机在交换数据之前,必须先建立某种约定,这种约定,称为"安全关联(SA)",指双方需要就如何保护信息、交换信息等公用的安全设置达成一致以及安全的交换密钥供连接使用。IKE提供了一种方法供两台计算机建立安全关联(SA)。
1)IKE(Internet Key Exchange Protocol)Internet密钥交换协议:
主要负责安全关联SA(Security Associations)的集中化管理和密钥的生成与管理
2)SA(Security Associations)安全关联:
定义了计算机间如何使用安全服务(如加密)进行通信,是一条单向的逻辑连接。内容包括采用何种IPSec协议(AH还是ESP )、运行模式(传输模式还是隧道模式)、验证算法、加密算法、加密密钥、密钥生存期、抗重放窗口,从而决定了保护什么、如何保护以及谁来保护
3、IPSec协商过程
IKE使用了两个阶段的ISAKMP(Internet安全关联和密钥管理协议):
第一阶段:
协商创建一个通信信道(IKE SA,双向),并对该信道进行认证,为双方进一步的IKE通信提供机密性、数据完整性以及数据源认证服务。(为建立信道而进行的安全关联)
包括两种模式:主模式(Main Mode)与野蛮模式(Aggressive Mode)。
IPSec协商报文(主模式)
IPSec协商报文(野蛮模式)
主模式:
第一步:
主要协商出加密算法(如AES、3DES)、HASH算法(如MD5、SHA)、认证方法(证书、预共享)、Diffie-Hellman (DH)组的选择等
第二步:
虽然叫密钥交换,但事实上在任何时候,两台通信主机之间都不会交换真正的密钥,它们之间交换的只是一些DH算法生成共享密钥所需要的基本材料信息,如DH公共值,Nonce随机数等
第三步:
发起端向对方发起身份验证,通过第一步协商的加密算法,第二步的密钥将预共享密钥或数字签名等本端身份信息进行加密,加密数据发送给对端,响应端回应报文类似。
第二阶段:
使用已建立的IKE SA建立IPsec SA(单向)协商,为快速模式(Quick Mode)。(为数据传输而建立的安全关联)
包1中发起端主要是进行IPSec SA的协商,报文中包含加密算法(AES、DES等)、HASH算法(MD5、SHA等)、安全协议(ESP、AH)、封装模式(隧道模式、传输模式)、生存时间、感兴趣流等。
包2中响应端同意发起端的各属性,同时起到确认收到了发起端发送的信息。
包3中发起端确认响应端的信息并证明发起端处于Active状态(表明包1信息非伪造)
以上三个报文包数据均为加密状态