一、IPSec 协议简介
1. IPSec 协议
IPSec 是一系列网络安全协议的总称,它是由IETF(Internet Engineering Task
Force,Internet 工程任务组)开发的,可为通讯双方提供访问控制、无连接的完整
性、数据来源认证、反重放、加密以及对数据流分类加密等服务。
IPSec 是网络层的安全机制。通过对网络层包信息的保护,上层应用程序即使没有
实现安全性,也能够自动从网络层提供的安全性中获益。这打消了人们对×××
(Virtual Private Network,虚拟专用网络)安全性的顾虑,使得××× 得以广泛应用。
2、安全特性
IPSec的安全特性主要有:
不可否认性
"不可否认性"可以证实消息发送方是唯一可能的发送者,发送者不能否认发送过
消息。"不可否认性"是采用公钥技术的一个特征,当使用公钥技术时,发送方用私钥
产生一个数字签名随消息一起发送,接收方用发送者的公钥来验证数字签名。由于
在理论上只有发送者才唯一拥有私钥,也只有发送者才可能产生该数字签名,所以
只要数字签名通过验证,发送者就不能否认曾发送过该消息。但"不可否认性"不是基
于认证的共享密钥技术的特征,因为在基于认证的共享密钥技术中,发送方和接收
方掌握相同的密钥。
抗重播性
"抗重播"确保每个IP包的唯一性,保证信息万一被截取复制后,不能再被重新利
用、重新传输回目的地址。该特性可以防止***者截取破译信息后,再用相同的信
息包冒取非法访问权(即使这种冒取行为发生在数月之后)。
数据完整性
防止传输过程中数据被篡改,确保发出数据和接收数据的一致性。IPSec利用
Hash函数为每个数据包产生一个加密检查和,接收方在打开包前先计算检查和,若
包遭篡改导致检查和不相符,数据包即被丢弃。
数据可靠性(加密)
在传输前,对数据进行加密,可以保证在传输过程中,即使数据包遭截取,信
息也无法被读。该特性在IPSec中为可选项,与IPSec策略的具体设置相关。
认证
数据源发送信任状,由接收方验证信任状的合法性,只有通过认证的系统才可
以建立通信连接。
3、预置共享密钥认证
IPSec可以使用预置共享密钥进行认证。预共享意味着通信双方必须在IPSec策略
设置中就共享的密钥达成一致。之后在安全协商过程中,信息在传输前使用共享密
钥加密,接收端使用同样的密钥解密,如果接收方能够解密,即被认为可以通过认
证。但在Windows 2000 IPSec策略中,这种认证方式被认为不够安全而一般不推荐使
用。
4、公钥加密
IPSec的公钥加密用于身份认证和密钥交换。公钥加密,也被称为"不对称加密
法",即加解密过程需要两把不同的密钥,一把用来产生数字签名和加密数据,另一
把用来验证数字签名和对数据进行解密。
使用公钥加密法,每个用户拥有一个密钥对,其中私钥仅为其个人所知,公钥
则可分发给任意需要与之进行加密通信的人。例如:A想要发送加密信息给B,则A
需要用B的公钥加密信息,之后只有B才能用他的私钥对该加密信息进行解密。虽然
密钥对中两把钥匙彼此相关,但要想从其中一把来推导出另一把,以目前计算机的
运算能力来看,这种做法几乎完全不现实。因此,在这种加密法中,公钥可以广为
分发,而私钥则需要仔细地妥善保管。
5、Hash函数和数据完整性
Hash信息验证码HMAC(Hash message authentication codes)验证接收消息和发送
消息的完全一致性(完整性)。这在数据交换中非常关键,尤其当传输媒介如公共
网络中不提供安全保证时更显其重要性。
HMAC结合hash算法和共享密钥提供完整性。Hash散列通常也被当成是数字签
名,但这种说法不够准确,两者的区别在于:Hash散列使用共享密钥,而数字签名
基于公钥技术。hash算法也称为消息摘要或单向转换。称它为单向转换是因为:
1)双方必须在通信的两个端头处各自执行Hash函数计算;
2)使用Hash函数很容易从消息计算出消息摘要,但其逆向反演过程以目前计算
机的运算能力几乎不可实现。
Hash散列本身就是所谓加密检查和或消息完整性编码MIC(Message Integrity
Code),通信双方必须各自执行函数计算来验证消息。举例来说,发送方首先使用
HMAC算法和共享密钥计算消息检查和,然后将计算结果A封装进数据包中一起发
送;接收方再对所接收的消息执行HMAC计算得出结果B,并将B与A进行比较。如
果消息在传输中遭篡改致使B与A不一致,接收方丢弃该数据包。
有两种最常用的hash函数:
HMAC-MD5 MD5(消息摘要5)基于RFC1321。MD5对MD4做了改进,计算速
度比MD4稍慢,但安全性能得到了进一步改善。MD5在计算中使用了64个32位常
数,最终生成一个128位的完整性检查和。
HMAC-SHA 安全Hash算法定义在NIST FIPS 180-1,其算法以MD5为原型。
SHA在计算中使用了79个32位常数,最终产生一个160位完整性检查和。SHA检查和
长度比MD5更长,因此安全性也更高。
6、加密和数据可靠性
IPSec使用的数据加密算法是DES--Data Encryption Standard(数据加密标准)。
DES密钥长度为56位,在形式上是一个64位数。DES以64位(8字节)为分组对数据
加密,每64位明文,经过16轮置换生成64位密文,其中每字节有1位用于奇偶校验,
所以实际有效密钥长度是56位。 IPSec还支持3DES算法,3DES可提供更高的安全
性,但相应地,计算速度更慢。
7、数据包结构
AH报头插在IP报头之后,TCP,UDP,或者ICMP等上层协议报头之前。一般AH
为整个数据包提供完整性检查,但如果IP报头中包含"生存期(Time To Live)"或"服
务类型(Type of Service)"等值可变字段,则在进行完整性检查时应将这些值可变字
段去除。
一、ESP协议结构
ESP(Encapsulating Security Payload)为IP数据包提供完整性检查、认证和加
密,可以看作是"超级 AH", 因为它提供机密性并可防止篡改。ESP服务依据建立的
安全关联(SA)是可选的。然而,也有一些限制:
完整性检查和认证一起进行。
仅当与完整性检查和认证一起时,"重播(Replay)"保护才是可选的。
"重播"保护只能由接收方选择。
ESP的加密服务是可选的,但如果启用加密,则也就同时选择了完整性检查和认
证。因为如果仅使用加密,***者就可能伪造包以发动密码分析***。
ESP可以单独使用,也可以和AH结合使用。一般ESP不对整个数据包加密,而是
只加密IP包的有效载荷部分,不包括IP头。但在端对端的隧道通信中,ESP需要对整
个数据包加密。
ESP报头插在IP报头之后,TCP或UDP等传输层协议报头之前。
ESP报头字段包括:
Security Parameters Index (SPI,安全参数索引):为数据包识别安全关联。
Sequence Number(序列号):从1开始的32位单增序列号,不允许重复,唯一地
标识了每一个发送数据包,为安全关联提供反重播保护。接收端校验序列号为该字
段值的数据包是否已经被接收过,若是,则拒收该数据包。
ESP报尾字段包括:
Padding(扩展位):0-255个字节。DH算法要求数据长度(以位为单位)模512
为448,若应用数据长度不足,则用扩展位填充。
Padding Length(扩展位长度):接收端根据该字段长度去除数据中扩展位。
Next Header(下一个报头):识别下一个使用IP协议号的报头,如TCP或UDP。
ESP认证报尾字段:
Authentication Data(AD,认证数据): 包含完整性检查和。完整性检查部分包
括ESP报头、有效载荷(应用程序数据)和ESP报尾。
ESP报头的位置在IP报头之后,TCP,UDP,或者ICMP等传输层协议报头之前。
如果已经有其他IPSec协议使用,则ESP报头应插在其他任何IPSec协议报头之前。
ESP认证报尾的完整性检查部分包括ESP报头、传输层协议报头,应用数据和ESP报
尾,但不包括IP报头,因此ESP不能保证IP报头不被篡改。ESP加密部分包括上层传
输协议信息、数据和ESP报尾。
二、ESP隧道模式和AH隧道模式
以上介绍的是传输模式下的AH协议和ESP协议,ESP隧道模式和AH隧道模式与
传输模式略有不同。
在隧道模式下,整个原数据包被当作有效载荷封装了起来,外面附上新的IP报
头。其中"内部"IP报头(原IP报头)指定最终的信源和信宿地址,而"外部"IP报头
(新IP报头)中包含的常常是做中间处理的安全网关地址。
与传输模式不同,在隧道模式中,原IP地址被当作有效载荷的一部分受到IPSec
的安全保护,另外,通过对数据加密,还可以将数据包目的地址隐藏起来,这样更
有助于保护端对端隧道通信中数据的安全性。
AH隧道模式为整个数据包提供完整性检查和认证,认证功能优于ESP。但在隧
道技术中,AH协议很少单独实现,通常与ESP协议组合使用。
8、IPSec 对报文的处理过程
IPSec 对报文的处理过程如下(以AH 协议为例):
(1) 对报文添加认证头:从IPSec 队列中读出IP 模块送来的IP 报文,根据配置选择
的协议模式(传输或是隧道模式)对报文添加AH 头,再由IP 层转发。
(2) 对报文进行认证后解去认证头:IP 层收到IP 报文经解析是本机地址,并且协
议号为51,则查找相应的协议开关表项,调用相应的输入处理函数。此处理函数对
报文进行认证和原来的认证值比较,若相等则去掉添加的AH 头,还原出原始的IP 报
文再调用IP 输入流程进行处理;否则此报文被丢弃。
9、IPSec 的配置包括:
1、创建加密访问控制列表 ;
2、定义安全提议;
3、选择加密算法与认证算法;
4、创建安全策略;
(1)手工创建安全策略;
(2)用IKE创建安全策略联盟;
5、在接口上应用安全策略组。
二、案例一(静态配置模式)
拓扑图:
防火墙:
R1:
R2:
R3:
测试结果:
三、案例二(野蛮模式)
待续。。。。。。。
转载于:https://blog.51cto.com/caoruijun/958865