摘 要:IPSec是基于IP协议的安全标准,为数据包在公共网络上传输提供保密性、无连接完整性、数据源身份认证,本文首先介绍了IPSec安全服务的基础SA,然后讨论IPSec安全协议数据库,最后是IPSec在网络安全中的具体应用。
关键词:IPSec协议;SA;协议数据库;网络安全
IPSec提供访问控制、无连接完整性、数据源的认证、有限通信量的机密性等安全服务,它是由IETF开发的一套Internet安全协议标准,可以“无缝”地为IP(IPv4和IPv6)提供可操作的、高质量的、基于数据加密的网络安全服务。利用IPSec提供的安全服务可以实现不同的网络安全配置。
1 IPSec协议基础
IPSec的安全服务是由通讯双方建立的安全关联(SA)来提供的。SA为通讯提供了安全协议、模式、算法和应用于单向IP流的密钥等安全信息。它通过安全关联库(SAD)来进行管理,每一个IPSec节点包含有一个局部的安全策略库(SPD)。IPSec系统在处理输入/输出IP流时必须考虑该策略库,并从SPD中提取策略对IP流进行不同的处理。如果该策略决定IP流需要经过IPSec处理,,则根据SPD与SAD的对应关系,找到相应的SA,对IP数据包进行相应的处理。
SA由一个三元组惟一地标识,该三元组包含安全参数索引(SPI)、输出处理SA的目的IP地址或者输入处理SA的源IP地址以及一个特定的协议,SPI是为了唯一标识SA而生成的一个32位整数。
IPSec主要使用两种协议AH和ESP,这两种协议均使用SA。如果希望同时用AH和ESP来保护两个对等实体之间的数据流,则需要两个SA:一个用于AH,另一个用于ESP。当一个SA协商完成时,通信的两个对等实体会在它们的安全关联数据库(SAD)中存储该SA参数。SA的一个重要参数是它的生存期,它以一个时间间隔或者以一定字节数的形式存在(IPSec协议利用该SA来处理)。当一个SA的生存期过期时系统会用一个新的SA来替换该SA,或者终止该SA,当一个SA终止时,它的条目将从SAD中删除。
2 安全关联数据库和安全策略数据库
当IPSec处理数据流时有两个必要的数据库:安全策略数据库(SPD)和安全关联数据库(SAD)。SPD指定了用于到达或者源自特定主机、网络的数据流的策略,SAD包含活动的SA参数。对于SPD和SAD而言都需要单独的输入和输出数据库。IPSec协议要求不管通信流是输入还是输出在处理的过程中都必须查询SPD,SPD中包含一个策略条目的有序列表。通过使用一个或多个选择符来确定每一个条目。以下是IPSec允许的选择符:
(1)目的IP地址:目的IP地址可以是一个32位的IPv4或者128位的IPv6地址。该地址可以是主机IP地址、广播地址、单播地址、任意播地址、多播组地址等。
(2)源IP地址:同目的IP地址一样,该地址可以从AH、ESP或者IP头的源IP地址域中得到。
(3)传输层协议:传输层协议可以从IPv4协议或者IPv6的下一个头域中得到。
(4)系统名:系统名可以是完整的DNS名或e-mail地址。
(5)用户ID:用户ID可以是完整的DNS用户名。
SPD中的每一个条目都包含一个或多个选择符、标志,该标志用于表明与条目中的选择符匹配的数据报是丢弃、还是进行IPSec处理。如果对数据包进行IPSec处理,则条目中必须包含一个指向SA内容的指针,该指针详细说明了用于匹配该条目的数据包所使用的IPSec协议、操作模式以及密码算法。选择符与数据通信流相匹配的第一个条目被应用到该通信中。如果没有发现匹配的条目,该通信数据包将被丢弃。因此,SPD中的条目应该按照应用程序希望的优先权排序。
SAD中包含现行的SA条目,每个SA包含三元组索引:SPI、源或目的的IP地址、IPSec协议。此外,每个SAD条目还包含下面的域:
(1)序列号计数器:一个32位整数,用于生成AH或者ESP头中的序列号域。
(2)序列号溢出:一个标志,该标识对序列号计数器的溢出进行审核;对于特定的SA,是否阻塞额外通信流的传输。
(3)抗重放窗口:使用一个32位计数器和位图确定一个输入的AH或者ESP数据包是否是一个重放包。
(4)AH认证密码算法和所需要的密钥。
(5)ESP认证密码算法和所需要的密钥。
(6)ESP加密算法,密钥,初始化向量。
(7)IPSec协议操作模式: AH和ESP通信应用哪种IPSec协议操作模式。
(8)SA生存:该域中包含一个时间间隔,另外还包含一个当该SA过期时是被替代还是终止的标识。
对于输入和输出的处理IPSec要分别存入SAD。对于输入或者输出通信,将搜索各自的SAD来查找与从数据包头域中解析出来的选择符相匹配的SPI、源或目的地址以及IPSec协议。如果找到一个匹配的条目,将该SA的参数与AH或ESP头中的域进行比较,若头域与数据库中的SA参数一致,就处理该数据包;若有任何差别,就丢弃该数据包;若没有SA条目与选择符相匹配,而且如果数据包是一个输入包,就将其丢弃;若数据包是输出的,则创建一个新的SA或者SA束,将其存入输出SAD中。
SA生存期有两种类型的限制:软限制和硬限制。当达到软限制时,通信的对等双方必须重新协商一个新的SA来代替已有的SA,而且已有的SA并不从数据库中删除,直到硬限制过期。在SAD中找到的第一个匹配条目将被应用于特定的SA关联的数据包的IPSec处理,这与在SPD中的查找一样。
3 IPSec协议的具体应用
通过把IPSec应用到在具体的TCP/IP网络环境下,可以实现网络的安全访问。
(1)端到端的安全访问
应用传输模式下的IPSec可以保证IP数据包在离开信源主机抵达信宿主机的整个过程中都是安全的(即需要端到端的安全访问)。离开信源主机的IP数据包都会受到ESP、AH、ESP和AH一起实施的安全保护,从而实现网络安全访问。前提条件是进行网络访问的通信双方(可以是主机、服务器或其它任何终端系统)必须都支持IPSec,这样任何一个需要安全保护的IP数据包在离开发送主机的时候,会经过IPSec处理在原本的IP数据包中插入一个ESP头(需要机密性安全服务)或AH头(不需要机密性安全服务)。当数据包到达接收端主机后,通过IPSec的处理可以去掉插入的ESP头或AH头。
(2)网关到网关的安全访问
目前企业构建VPN所选用最多方案中利用IPSec在IP层提供的安全服务,实现网络之间的安全访问。在网络体系结构中IP层传输性能好,它能够为VPN提供包括数据机密性、数据源验证、数据完整性以及抗重播攻击等安全服务。例如:一个地理位置分散的公司,各个部门都己经接入了Internet网络,现在公司不想另外花钱租用网络专线来搭建自己的企业内部网,又想获得企业内部网类似的网络通信效果。解决方式就是在公司不同的物理网络(处于不同地理位置的网络)之间搭建安全的虚拟通道,构建公司内部的虚拟专用网络VPN,这样各个部门可以进行安全的网络访问。
对于端到端的网络安全访问,IP数据包的加密和解密分别是由发送主机和接收主机来实现的,对于两个网关之间的IP数据包的加密和解密则是通过网关来实现的。
参考文献
[1] (美)Carlton R.Davis著.周勇彬, 冯登国等译.IPSec:VPN的安全实施. 清华大学出版社. 2012