基于自主OS和IPSec的VPN网关设计

基于LinuxIPSecVPN网关设计

Internet提供的互联性和开放性使信息的交换与共享成为现实,为社会带来了巨大的利益。同时,Internet也为黑客和计算机犯罪提供了可乘之机。目前,计算机系统面临的最重要的风险包括两方面:其一是信息在传输时被窥探或非法修改;其二是来自公网对内部网的非法访问和攻击。

伴随着信息时代的到来,信息的安全保密问题日益突出,并已引起全球的普遍关注。年初发生的大规模黑客攻击事件,使美国、欧洲以及日本的各大网站瘫痪并造成巨额经济损失,使网络安全再度在全球敲响警钟。信息的安全保密问题,说到底,是关系一个国家主权、安全和发展的战略问题。世界上任何一个国家、任何一个政府,在积极促进信息技术发展的同时,都不遗余力地坚决捍卫本国的信息主权,尤其是千方百计地保护本国信息系统和信息资源的安全,以使自己在激烈的国际竞争中有实力掌握主动权。

我国虽处于网络发展的初级阶段,但近年来,党和政府各级部门都建立了计算机网络。由于工作性质,其中许多网络都涉及国家秘密信息,而我国计算机网络保密技术研究和技术防范手段相对滞后,信息化与保护国家秘密的矛盾十分突出,技术安全保密方面的压力越来越大。在去年发生的泄密事件中,有近三分之一的案件与网络有关,其特点是发生快、扩散面广。所以,抓好信息网络的保密工作刻不容缓。   解决好网络信息安全保密问题,归根到底一要靠管理,二要靠技术。党中央、国务院领导同志对信息安全保密工作非常关心和重视,在信息产业迅猛发展的高技术条件下,如何做到该保密的能够保住,该交流的还能交流。所以,今年工作要点中仍明确要把计算机信息系统的保密防范和管理作为技术防范的重中之重。

保护网络安全、保证信息安全成为人们日益关注的核心问题。有关这方面的技术研究已在广泛而深入地进行。目前,已有一些安全技术专门保护网络的安全。其中,防火墙、加密是最行之有效的两种技术。VPN网关则是综合这两种技术的网络安全设备。

 

 我国信息安全研究经历了通信保密、计算机数据保护两个发展阶段,正在进入网络信息安全的研究阶段。安全体系的构建和评估,通过学习、吸收、消化TCSEC的原则进行了安全操作系统、多级安全数据库的研制,但由于系统安全内核受控于人,以及国外产品的不断更新升级,基于具体产品的增强安全功能的成果,难以保证没有漏洞,难以得到推广应用。在学习借鉴国外技术的基础上,国内一些部门也开发研制了一些防火墙、安全路由器、安全网关、黑客入侵检测、系统脆弱性扫描软件等。但是,这些产品安全技术的完善性、规范化实用性还存在许多不足,特别是在多平台的兼容性、多协议的适应性、多接口的满足性方面存在很大距离,理论基础和自主的技术手段也需要发展和强化。

操作系统作为计算机系统的基础软件是用来管理计算机资源的,它直接利用计算机硬件并为用户提供使用和编程接口。各种网络安全系统均建立在操作系统提供的系统软件平台之上,操作系统的上层软件系统要想获得运行的高可靠性和信息的完整性、保密性,必须依赖于操作系统提供的系统软件基础,任何想像中的、脱离操作系统基础的高安全性,就如同幻想在沙滩上建立坚不可摧的堡垒一样,毫无根基可言。不难想像,在网络环境中,网络系统的安全性依赖于网络中各主机系统的安全性,而主机系统的安全性正是由其操作系统的安全性所决定的,没有安全的操作系统的支持,网络安全也毫无根基可言。所以,操作系统安全是计算机网络系统安全的基础。因此,建立在自主开发的操作系统基础上的网络安全系统才能支持最彻底的网络安全解决方案。

第1章     VPN简介

1.1     VPN概念及作用

目前,我国各级政府、企业都在建设自己的内部网以提高自身的工作效率和竞争力。随着工作业务的不断扩大,网络规模也在扩大,有些甚至于超过了城域网而真正成为了广域网。如果按照传统的方式来建造自己的专用广域网或城域网,昂贵的费用是任何一个单位都无法承受的。因此,通常都采用通过公众信息网进行内部网络互连的(如图1.1所示)。

公众信息网是对整个社会开放的公众基础网络,具有覆盖范围广、速度快、费用低、使用方便等特点,但同时也存在着安全性差的问题。用户通过公众信息网传输的信息,在传输过程中随时可能被偷看、修改和伪造,使信息的安全性和可靠性降低。因此通过公众信息网进行内部网络互连尽管能够大幅地降低组网的成本,但也带来了重大的安全隐患。解决这一矛盾的方法之一就是采用VPNVirtual Private Network虚拟专用网)技术。

VPN技术是指采用隧道技术以及加密、身份认证等方法,在公众网络上构建专用网络的技术,数据通过安全的"加密管道"在公众网络中传播。

VPN技术实现了内部网信息在公众信息网中的传输,就如同在茫茫的广域网中为用户拉出一条专线。对于用户来讲,公众网络起到了虚拟专用的效果。通过VPN,网络对每个使用者也是专用的。也就是说,VPN根据使用者的身份和权限,直接将使用者接入他所应该接触的信息中。所以VPN对于每个用户,也是专用的,这一点应该是VPN给用户带来的最明显的变化。

1.2     VPN的关键技术及协议

实现VPN的关键技术主要包括:

(1) 安全隧道技术(Secure Tunneling Technology)。通过将待传输的原始信息经过加密和协议封装处理后再嵌套装入另一种协议的数据包送入网络中,像普通数据包一样进行传输。经过这样的处理,只有源端和宿端的用户对隧道中的嵌套信息进行解释和处理,而对于其他用户而言只是无意义的信息。这里采用的是加密和信息结构变换相结合的方式,而非单纯的加密技术。

(2) 用户认证技术(User Authentication Technology)。在正式的隧道连接开始之前需要确认用户的身份,以便系统进一步实施资源访问控制或用户授权(Authorization)。用户认证技术是相对比较成熟的一类技术。因此可以考虑对现有技术的集成。

(3) 访问控制技术(Access Control Technology)。由VPN服务的提供者与最终网络信息资源的提供者共同协商确定特定用户对特定资源的访问权限,以此实现基于用户的细粒度访问控制,以实现对信息资源的最大限度的保护。

VPN的关键技术中,最重要的是安全隧道技术,属于IP Tunneling的协议有很多,主要有:

1.2.1   二层隧道协议

L2F/L2TPPPPPoint to Point Protocol)协议的扩展,它综合了其他两个隧道协议:CISCO的二层转发协议(L2FLayer 2 Forwarding)和 Microsoft 的点对点隧道协议(PPTPPoint-to-Point Tunneling)的优良特点。它是由Internet Engineering Task Force (IETF)管理的,目前由CiscoMicrosoftAscend3Com和其他网络设备供应商联合开发并认可。

这些结构都严格通过点对点方式连接,所以很难在大规模的IP VPN下使用。同时这种方式还要求额外的计划及人力来准备和管理,对网络结构的任意改动都将花费数天甚至数周的时间。而在点对点平面结构网络上添加任意节点都必须承担刷新通信矩阵的巨大工作量,且要为所有配置增加新站点后的拓扑信息,以便让其他站点知其存在。这样高的工作负担使得这类VPN异常昂贵,也使大量需要此类服务的中小型企业和部门望而却步。

1.2.2   三层隧道的协议

最重要的是IPSec协议。(详见下节详细介绍)

第2章     IPSec介绍

IPSec IETF(因特网工程任务组)于199811月公布的IP安全标准。其目标是为IPv4IPv6提供具有较强的互操作能力、高质量和基于密码的安全。IPSec对于IPv4是可选的,对于IPv6是强制性的。

IPSecIP层上对数据包进行高强度的安全处理,提供数据源地验证、无连接数据完整性、数据机密性、抗重播和有限业务流机密性等安全服务。各种应用程序可以享用IP层提供的安全服务和密钥管理,而不必设计和实现自己的安全机制,因此减少密钥协商的开销,也降低了产生安全漏洞的可能性。IPSec可连续或递归应用,在路由器、防火墙、主机和通信链路上配置,实现端到端安全、虚拟专用网络(VPN)和安全隧道技术。

IPSec规范中包含大量的文档。其中最重要的是在199811月发布的,它们是RFC2401240224062408

Ø                  RFC2401:安全体系结构概述;

Ø                  RFC2402:包身份验证扩展到IPv4IPv6的描述;

Ø                  RFC2406:包加密扩展到IPv4IPv6的描述;

Ø                  RFC2408:密钥管理能力规范。

对于这些特征的支持,IPv6是强制性的, IPv4为可选的。在这两种情况下,安全特征作为扩展报头实现,它跟在主IP报头后面。身份验证的扩展报头称作身份验证报头(AH头),加密报头称ESP(封装安全性有效载荷)报头。

除了上面四个RFC文档之外,其他许多标准也已经陆续公布。到目前为止,在IPSec协议族中,只有策略还没有正式RFC文档。

IPSec安全体系结构如图2.1所示:

Ø                  安全体系结构:包含了一般的概念、安全需求、定义和定义IPSec的技术机制;

Ø                  封装安全有效载荷(ESP):覆盖了为了包加密(可选身份验证)与ESP的使用相关的包格式和常规问题;

Ø                  验证头(AH):包含使用AH进行包身份验证相关的包格式和一般问题;

Ø                  加密算法:描述各种加密算法如何用于ESP中;

Ø                  验证算法:描述各种身份验证算法如何用于AH中和ESP身份验证选项;

Ø                  密钥管理:密钥管理的一组方案,其中IKEInternet密钥交换协议)是默认的密钥自动交换协议;

Ø                  解释域:彼此相关各部分的标识符及运作参数;

Ø                  策略:决定两个实体之间能否通信,以及如何进行通信。策略的核心由三部分组成:SASADSPDSA(安全关联)表示了策略实施的具体细节,包括源/目的地址、应用协议、Spi(安全策略索引)、所用算法/密钥/长度;SAD为进入和外出包处理维持一个活动的SA列表;SPD决定了整个VPN的安全需求。策略部分是唯一尚未成为标准的组件。

 

第3章     国内外基于IPSec的产品和技术情况介绍

作为网络层的安全标准,IPSec一经提出,就引起计算机网络界的注意,几乎世界上所有的计算机公司都宣布支持这个标准,并且不断推出自己的产品。但是由于标准提出的时间很短,而且其中又有一个重要组成部分没有标准化,因此尽管产品种类很多,但真正合格的产品却很少。

3.1     国内外产品分析

目前世界上最权威的IPSec产品评测中心为ICSA(国际计算机安全协会)实验室,至2001525日,只有35个产品通过了它的测评。这35个产品都是国外的产品,没有我国的产品。

国内计算机安全产品检测有两个机构:中国国家信息安全测评认证中心计算机测评中心和公安部计算机信息安全产品质量监督检验中心。从介绍来看,这两个都没有专门的IPSec功能评测。一些通过评测的产品,只是说明自己的产品具有IPSec功能。

对国外通过ICSA测评的产品和国内通过中国国家信息安全测评认证中心计算机测评中心和公安部计算机信息安全产品质量监督检验中心测评的产品的分析、比较,基本情况如下:

国外的产品在安全性、可扩展性、使用简单和性能价格比、协议实现的完整性、系统的配置、系统的管理、日志及报表、系统自身的安全性、性能、CA认证等许多方面要成熟和优于国内产品。

国外的产品主要存在以下问题:

Ø                  操作系统的安全问题,这些产品所基于的操作系统都是国外的产品(这更是国内产品存在的主要问题);

Ø                  基于IKE动态密钥管理并没有很好的实现,大部分产品没有实现动态安全关联密钥交换;

Ø                  安全策略系统实现并不完善。

国内产品存在的问题:

Ø                  所基于的核心操作系统都是国外的操作系统,其安全性完全控制在他人手中;

Ø                  管理与配置方面都比较复杂,缺乏友好、方便的配置管理界面;

Ø                  大多是与防火墙整合在一起,重在防火墙功能,而对IPSec的实现相对较为简单和不完善;因此几乎无法作为真正的VPN网关使用;

Ø                  密钥管理几乎都是手工注入,而没有实现动态密钥交换(IKE;

Ø                  安全策略系统实现并不完善。

由于协议标准提出的时间还比较短,而且一部份还没有标准,因此从分析理解协议到推出符合协议标准的产品,必然有一个过程。从以上分析可以得出以下一个结论,如果构建一个VPN,国内的任何产品都无法使用,只有使用国外的产品。但我们知道,VPN的安全性,主要由它的密码算法强度、密钥的长度以及VPN网关所基于的操作系统的安全性所决定,而西方国家严格限制对我国的密码产品的出品,因此真正能够在我国使用的国外产品,安全性几乎为零。因此,我们可以说到目前为止,还没有一个能够适合我国使用的VPN网关。

3.2     目前IPSec技术发展情况

IPSec协议族来看,IPSec的实现重点是Internet 密钥交换(IKE)和安全策略系统,这两个技术的实现,决定了IPSec实现是否完善和标准。

3.2.1   IKE技术

Internet密钥交换(IKE )用于动态建立SA IKE 代表IPSecSA进行协商,并对SADB 数据库进行填充。由RFC2409文档描述的IKE属于一种混合型协议。它沿用了ISAKMP的基础、Oakley的模式以及SKEME的共享和密钥更新技术,从而定义出自己独一无二的验证加密材料生成技术,以及协商共享策略。此外,IKE还定义了它自己的两种密钥交换方式。IKE使用了两个阶段的ISAKMP。在第一阶段,通信各方彼此间建立了一个已通过身份验证和安全保护的通道,即建立IKE安全联盟。在第二阶段,利用这个既定的安全联盟,为IPSec协商具体的安全联盟。IKE定义了两个阶段,阶段1交换、阶段2交换以及两个额外的交换(用于对安全联盟进行正确的维护)。对阶段1交换,IKE采用的是身份保护交换(“主模式”交换),以及根据基本ISAKMP文档制订的野蛮交换法“野蛮模式交换;对阶段2IKE则定义了一种快速模式交换。I K E 定义的另外两种交换均属信息方面的交换。

IKE保证了如何动态地建立安全关联和建立过程的安全。IKE建立安全关联的实现一方面是IPSec协议实现的核心,实现极为复杂;另一方面也很可能成为整个系统的瓶颈。优化IKE程序、优化密钥算法是实现IPSec的核心问题之一。

3.2.2   安全策略

在一个实现IPSec的产品中,IPSec功能的正确性完全依据安全策略的正确制定与配置。传统的方法是通过手工配置IPSec策略,这种方式在大型的分布式网络中存在效率低、易出错等问题。而一个易出错的策略将可能导致通信的阻塞和严重的安全隐患。而且,既使每个安全域策略的制订是正确的,也可能会在不同的安全域中,由于策略之间的交互,出现在局部范围内安全策略的多样性,从而造成端到端间通信的严重安全隐患。因此,必须构建一个安全策略系统来系统地管理和验证各种IPSec策略。

构建一个策略系统,需要解决策略的定义、存取、管理、交换、验证、发现机制等问题以及系统自身的安全性问题。其中策略的表示和策略在动态交换中的安全性问题是系统的核心问题。目前RFC尚未制定关于策略系统的标准,因此还没有成熟的实现方案。今后的发展方向可能是策略系统由四个部分组成:安全策略数据库、策略服务器、安全网关、策略客户端。服务器利用LDAP(轻量级目录访问协议)与数据库交互,安全网关通过COPS(普通开放式策略服务协议)与服务器交互,策略服务器之间以及服务器与客户端之间通过SPP(安全策略协议)进行通信。这一方案能够很好地解决系统的各种问题,特别是系统自身的安全性问题,构建出一个安全高效的策略系统。该系统将对整个私有网络资源进行可靠、安全、可伸缩的管理和利用。

策略系统的实现也是IPSecVPN网关的重要组成部分。只有基于策略的网络系统,才能提供强大的安全机制,才能对网络内部的所有资源提供不同级别的保护。

 

第4章     VPN网关设计方案

4.1     VPN系统体系结构

VPN的主要作用是采用加密、认证和网络技术在公共互连网上构建相互信任方之间的安全加密信息传输通道,以期达到专用网络的效果。VPN网关在其中将发挥非常重要的核心作用。

VPN网关工作在本地局域网及与其通信的远程局域网的网关位置,具有加密和认证功能。相互信任的局域网间进行通信时,仍然使用互联网作为中间信道。但是,通过VPN网关的加密功能确保信息在不安全的互联网上流通时是密文形式。这样,即便信息被截取,也无法偷窥或篡改其内容。保证通过互联网连接的局域网间通信的安全性、机密性、可认证性和完整性等安全性能。

4.2     VPN网关目标系统的设计原则

在确定目标系统的过程中,主要遵循了以下几点思想:

Ø   目标系统要完整实现IPSec协议族,完全支持VPN的要求;

Ø   目标系统一定要建立在具有自主版权的、安全性完全控制在我们自己手中的内核操作系统之上;

Ø   目标系统要确保自身的安全、协议的安全和信息通道的安全;

Ø   目标系统要具有较高的性能,支持千兆网络的要求;

Ø   目标系统的设计与实现要采用先进的软件技术和开发方法;

Ø   目标系统尽可能方便管理、灵活配置和界面友好。

 

4.2.1   目标系统的硬件平台

1.       百兆网络VPN网关硬件平台

1)     高档Intel PC平台

Ø     高性能工控机主板

Ø     CPUIntel 体系结构,PⅢ系列

Ø     内存:512M

Ø     100兆网卡:两块

2)自行设计的嵌入式操作系统内核插板

2.       千兆网络VPN网关硬件平台

1) 高档Intel Server平台

Ø     高性能Server机主板

Ø     CPUIntel 体系结构,PIⅢ系列

Ø     内存:2G

Ø     1000兆网卡:两块

    2)自行设计的嵌入式操作系统内核插板

 

4.2.2   目标系统的功能和安全服务机制

   由于目标系统是一个VPN网关,因此,应具备两大功能:

1)   路由功能:安全加密路由平台介于局域网与边界路由器之间,应具备一定的路由转发功能,即能够将局域网中出网的包转发给边界路由器(再由边界路由器发送出去)以及将边界路由器收到的要进入局域网中的包转发给目的主机。

2)   IPSec 协议族功能:具备IPSec协议标准描述的所有功能。

ISO7492-2描述了网络安全体系结构的安全服务及为实现这些服务而采用的安全机制。实际上,为了满足安全策略或用户的要求,建立的系统可以执行一些安全服务的组合。而且,特定的安全机制能实现一些基本安全服务的组合。

根据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),另一种是将IPSecIP层融合成为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的接口及SADSPD的接口)。在内核,除了实现与用户的接口外,我们将实现SADSAD的管理、IPSec协议进入/外出处理及加密算法。SAD和加密算法在内核实现将大大加快IPSec处理的速度。IPSec协议处理部分如前面所述,将采用IPIPSec方案。我们将采用高性能密码算法、高性能随机数生成机制和高性能密钥管理机制。算法初步考虑用软件实现,如果有条件,我们还考虑用硬件来实现,进一步加快IPSec的处理速度。