精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>电脑技术>>● FreeBSD>>网络安全>>VPN>>基于IPSec的VPN网关设计(下)

主题:基于IPSec的VPN网关设计(下)
发信人: drillwater(灌水英雄)
整理人: sungang(2003-04-02 20:01:24), 站内信件
(续上)
               基于IPSec的VPN网关设计(下)

根据OSI安全体系结构和IPSec规范,我们的VPN网关将提供以下安全服务:

1)      鉴别:提供对通信中的对等实体和数据来源的鉴别。 

2)      访问控制:防止未经受权的用户非法访问系统资源。

3)      数据机密性(Date Confidentiality):对数据提供保护,防止非授权地泄露。

4)      数据完整性(Data Integrality):防止非法实体(用户)的主动攻击,以保证接收方收到的信息与发送方发送的信息完全一致。

5)      数据源鉴别:这是第N层向第N+1层提供的服务,用来确保数据是由合法实体发出的,为N+1层提供对数据源对等实体的鉴别,以防假冒。

6)      禁止否认(con-repudiation):防止发送方发送数据后否认自己发送过数据或接收方收到数据后否认自己收过数据。

为了实现上述各种服务,按ISO7492-2建议采用以下安全机制:

1)      加密机制

2)      访问控制机制

3)      数据完整性机制

4)      交换鉴别机制

5)      数字签名机制

6)      路由控制机制

 

4.2.3   目标系统的突出特点
目标系统具备的突出特点:

1)   原来的局域网网络结构彻底透明。这里,透明表现为三方面:

l     目标系统不占用原网络系统中任何IP地址;

l     装入目标系统后,原来的网络系统不需要改变任何配置;

l     原有的网络不知道自己与外界的信息传递已受到了加密保护。

该特点不仅能够为安装调试提供方便,也能够保护系统自身不受来自外部网络的攻击。

2)   IKE 可以人工注入和自动双重方式运行。

3)   IPSec内部实现采用与IP实现容为一体,优化设计,具有很高的运行效率。

4)   目标系统的操作系统内核自主开发的高安全操作系统内核并以嵌入的方式被固化,即将内核固化到自制系统卡中。具有无漏洞、抗病毒、抗攻击等安全防范性能以及有效地防止掉电等原因造成的系统崩溃。

第5章     技术路线和实现方案
5.1     目标系统的体系结构
   目标系统的体系结构可抽象为以下三层结构:

1.       自主开发的嵌入式安全操作系统内核

2.       网络协议和IPSec协议层

3.       管理系统层

以上三个层次间的关系如图5.1所示:
--------------------------------
用户态 | 管理系统层
--------------------------------
       | 网络协议和Ipsec协议层
内核态 |------------------------ 
       |  操作系统内核
--------------------------------

            图5.1  VPN网关的层次结构

5.2     路由功能实现方案
安全加密路由平台的功能集中于网络部分,因此,这里仅给出安全加密路由平台网络部分的结构模型。


图 5.2  VPN网关的网络结构模型

几点说明:

1.    VPN网关的网络层次结构遵循TCP/IP协议。

2.    网络层除了包含实现网络层功能的基本模块(如用于接收来自数据链路层的IP包的接收模块、用于发送来自传输层的IP包的发送模块、用于将IP包分段或将分段合并的分段模块)外,还包含转发模块。转发模块用于转发接收到的目的地址不是自己的IP包。

3.    加密和解密工作的客体是需要转发的信息,对于安全加密路由平台与其他主机之间的通信信息可以不进行加密。

4.    VPN网关采用网络级加密,因此加密和解密在网络层实现。但两者工作在处理数据包的不同阶段。

为进一步理解图5.2所示的网络结构模型,将VPN网关处理的包分为三类:

?   VPN网关接收的包是发给自己的,即目的IP地址是自己,处理过程如图2中路线1所示,依次向上层传递直到交给相应的应用程序。

?   VPN网关应用程序发送的包,处理过程如图5.2中路线2所示。

VPN网关接收的目的IP地址是别的主机的包,将该包转发。处理过程如图5.2中路线3所示。从局域网出去的包,执行加密。

从上述的加密和解密过程可见,数据包在源局域网内和目的局域网内是明文形式;在不可信网络(两台VPN网关之间)上是密文形式。因此,在传输的过程中,若数据包被截取,也无法窥探正确信息;若数据包被篡改或冒充,则会致使解密失败,抛弃该包,避免了恶意的主动攻击。因此,虽然数据包在不可信的公共网络上传输,却好象在一个安全的虚拟的私有网络上传输。

为了说明加密原理,上面列举的只是对局域网之间通信进行加密的一种情况。事实上,加密不仅可以针对任意两个局域网之间传输的所有信息;也可以针对两台主机之间传输的信息。这主要由管理系统和加密规则决定。

5.3     IPSec实现方案
IPSec的实现方案主要有两种:一种是在IP层与链路层间插入IPSec处理模块(如图5.3a),另一种是将IPSec与IP层融合成为IP+IPSec(5.3b)。


1.     传统的实现方案采用插入IPSec处理模块方式,结构如图5.3a。


对于接受包处理,当链路层数据到达网卡时,首先交给内核的标准IP处理程序。对于本地包,在进行完IP分片重组等IP层进入包处理后,准备传给传输层。此时调用IPSec进入处理模块。经过IPSec进入处理后,重新组装IP包,发到内核的标准IP处理入口。再经过一次IP处理后,发送到传输层进行进一步处理。而对于外地包,则需要转发。转发时需要进行分片处理。在发送到网卡前,调用IPSec外出处理模块。经过IPSec外出处理后,重组外出包,并重新路由、分片处理。然后发送到物理接口(网卡)。

对于发送包处理,当传输层数据到达时,首先交给内核的标准IP处理程序。在进行完IP的分片等IP层外出包处理及路由后,准备发送到链路层。此时调用IPSec外出处理模块。经过IPSec外出处理后,重新发送到内核的标准IP层外出处理入口。然后重新进行IP分片及其它IP层外出处理,并重新路由。最后将包发送到发送到链路层,进入网卡。

该方案最大的优点在于:IPSec处理模块独立于内核,IPSec处理程序几乎对内核没有进行任何修改。

然而缺点也是显而易见的。该方案多次重复地处理IP包,大大地增加了IP包在IP层的处理时间,极大地影响了IP包处理的效率。这对于业务繁忙的网关,将影响正常的通讯,成为通讯的瓶颈。严重时将造成大量的丢包,使业务受阻。

2.     我们采用的方案是IP+IPSsec:修改内核的标准IP处理程序,将IPSec处理程序与内核IP处理程序捆绑,形成新的、具有IPSec处理功能的IP层处理。结构如图5.3b。


接受包处理:对于链路层来的包,首先进行路由。对于本地包,先进行分片重组。然后检查SAD,看是否是经过IPSec处理过的包。如果是,则检查SA的状态、生存期,然后根据找到的SA对包进行认证、解密。处理完后交给传输层。如果未经过IPSec处理,则再看该包是否允许进入,如果允许,则进行正常的IP处理,发到传输层;如果不允许,就将包丢弃。对于外地包,将进行转发。这时先检查策略库,如果策略要求对该转发包进行IPSec处理,则将进一步查找SAD库,找到相应的SA。然后根据SA对转发包加认证、加密。并对IPSec处理后的包再次进行分片。最后将分片发送到相应的物理接口;如果策略要求将该转发包绕过IPSec处理,则将直接进入分片处理,并发送到相应物理接口;如果策略要求将该包丢弃,则丢弃该包,并报错。

发送包处理:对于传输层来的包,首先检查SPD,看是否需要进行IPSec。如果需要,则查找SAD。根据找到的SA进行IPSec外出包处理,处理完后进行分片等其它IP外出处理及路由,然后将包发送到链路层处理。如果不需要,则将进行正常的IP层外出处理,并将包发到链路层。

该方案最大的优点是:处理效率高。该方案将IPSec处理与IP处理融合到一起,提高了IPSec网关的处理效率,极大地提高了IP包在IPSec网关上的传送速度,使IPSec网关成为瓶颈的可能大大降低。

该方案的不足,也即是难点:实现较为困难。因为要修改内核代码,因此要熟知内核的网络模块代码,甚至要全面的了解操作系统的代码,这样将大大增加实现的难度。

图5.4显示了我们的IPSec网关方案的实现总体框架:


我们在用户层将不只是提供手工注入SA,还将实现IKE动态协商SA程序。用一个IKE守护进程监听动态协商请求,并进行相应的协商处理。我们还将在用户层实现策略系统,用于存储、管理及验证策略。并且我们将提供用户层操作到内核的接口Pfkey Sockets(手工注入SA和利用IKE动态协商SA的接口及SAD与SPD的接口)。在内核,除了实现与用户的接口外,我们将实现SAD、SAD的管理、IPSec协议进入/外出处理及加密算法。SAD和加密算法在内核实现将大大加快IPSec处理的速度。IPSec协议处理部分如前面所述,将采用IP+IPSec方案。我们将采用高性能密码算法、高性能随机数生成机制和高性能密钥管理机制。算法初步考虑用软件实现,如果有条件,我们还考虑用硬件来实现,进一步加快IPSec的处理速度。


[关闭][返回]