IPSec协议产生的背景
? 用户在互联网上传输的数据容易遭受窃取
? 需要安全手段保证通信的机密性 ,即使被截获,黑客也无法知道真实内容
? 用户在互联网上传输的数据容易遭受篡改
? 需要安全手段保证通信的完整性 ,接收端能够检测出数据受到了篡改
? 用户在互联网上传输的数据容易遭受身份欺骗
? 需要安全手段保证通信的合法性 ,接收端能够判断通信对方的身份
? IPSec的相关概念
? IPSec (IP Security )是一种由IETF设计的端到端的确保IP层通信安全的机制。
? IPSec协议可以为IP网络通信提供透明的安全服务,保护TCP/IP通信免遭窃听和篡改,保证数据的完整性和机密性,有效抵御网络攻击。
? IPSec不是一个单独的协议,而是一组协议,IPSec协议的定义文件包括了12个RFC文件和几十个Internet草案,已经成为工业标准的网络安全协议。
? IPSec协议使用下面两种协议对IP报文进行保护
? AH协议(Authentication Header ,IP协议号51 ):
可以同时提供数据完整性确认、数据来源确认、防重放等安全特性;AH常用摘要算法HMAC-MD5和HMAC-SHA1实现该特性。
? ESP协议(Encapsulating Security Payload ,IP协议号50 )
可以同时提供数据完整性确认、数据加密、防重放等安全特性;ESP通常使用DES、3DES、AES等加密算法实现数据加密,使用HMAC-MD5或HMAC-SHA1来实现
数据完整性。
SA概述
? 安全关联(Security Association ,简称SA )是两个IPSec实体(主机、安全网关)之间经过协商建立起来的一种协定,内容包括采用何种IPSec协议(AH还是ESP )、运行模式(传输模式还是隧道模式)、验证算法、加密算法、加密密钥、密钥生存期、抗重放窗口,从而决定了保护什么、如何保护以及谁来保护。可以说SA是构成IPSec的基础。
? AH和ESP都使用SA中的参数来对IP数据进行保护。
? SA是单向的,入方向(inbound )SA负责处理接收到的数据包,出方向(outbound )SA负责处理要发送的数据包。因此每个通信方必须要有两种SA , 一个入方向SA ,一个出方向SA ,这两个SA构成了一个SA束(SA Bundle )。
两个IPSec实体之间的IKE协商分为两个阶段
? 第一阶段:建立ISAKMP SA (也可称为IKE SA )
? 两种模式:
– 主模式(main mode ):6条ISAKMP消息交互
– 积极模式(aggressive mode ):3条ISAKMP消息交互
ISAKMP SA可以用来保护多个第二阶段IPSec SA协商的通信过程
? 第二阶段:建立IPSec SA
? 一种模式:
– 快速模式(quick mode ):3条ISAKMP消息交互
IPSec SA是为IP数据提供安全保护,即前面概念中介绍的SA
? IKE协商第一阶段(主模式)
? 第一阶段无论是使用main mode还是aggressive mode ,目的都是产生ISAKMP/IKE SA ,用ISAKMP/IKE SA为产生第二阶IPSec SA的ISAKMP消息交互过程进行保护。
? 第1、2个ISAKMP报文
– IPSec实体双方交互SA载荷,选择相同ISAKMP消息的保护策略及认证方式,双方必须达成一致,否则第一阶段协商失败
? 第3、4个ISAKMP报文
– IPSec实体双方交互DH算法的公共值及密钥计算材料,从而双方计算出一系列相同的密钥
? 第5、6个ISAKMP报文
–第5、6个报文使用第3、4个报文交互后产生的相关密钥进行验证及加密处理。IPSec实体双方分别对对方进行验证,若使用pre-share key的验证方式,即判断对方是否拥有与本地相同的pre-share key。双方的Key配置必须一致,否则第一阶段协商失败。
? IKE协商第二阶段总结(快速模式 )
? 第二阶段交互的ISAKMP消息均被第一阶段产生的ISAKMP/IKE SA保护。
? 确定IPSec SA的保护策略,使用AH还是ESP、传输模式还是隧道模式、被保护的数据是什么等等,IPSec通信实体双方对于这些安全策略必须达成一致,否则IKE第二阶段协商将无法通过。
? 为降低密钥之间的关联性,第二阶段采用PFS重新进行DH交换,并计算出新的共享密钥,从而计算出IPSec SA中用于加密和验证的密钥。
? 第二阶段协商的目标就是产生真正用于保护IP数据的IPSec SA。
IPSec协议工作流程及配置命令总结