基于PowerPC和嵌入式Linux的VPN网关设计
引言
因特网的迅速普及为企事业、政府、金融机构等部门提供了更为迅捷经济的通信方式,提高了他们的工作和管理效率;但另一方面,日益不安全的网络环境却严重威胁到这些用户的利益。如何保证公网上传输数据的安全,已成为一个迫切需要解决的问题。为此,需开发一种由VPN(Virtual Private Network,简称VPN )安全网关、VPN 客户端和VPN安全管理中心三部份组成的VPN安全系统。
点击这里下载基于PowerPC和嵌入式Linux的VPN网关设计 PDF版
目前,国内大部分VPN 网关在硬件平台上使用基于x86 CPU的商用工控机主板。由于商用工控机是为一般的工业控制而设计的,作为VPN网关使用时,存在功能冗余、成本及可靠性难于控制等问题。因此,有必要自己设计一款性价比较高的硬件平台供VPN网关使用。Motorola通信处理器PowerPC在通信业中使用广泛,并具有良好的性价比,可以满足VPN安全网关的设计需要。另外,安全产品涉及一个国家的主权和敏感的安全信息,作为保证安全极为重要的操作系统和加密算法应该完全为自己掌握。因此,采用具有自主知识产权的操作系统和加密算法尤为重要。而L inux操作系统源代码的开放性及其在网络产品中的优异表现,使得我们可以用其构建具有自主知识产权的VPN安全网关。
VPN概念
什么是VPN
VPN即虚拟专用网,是通过一定的安全机制在公用的网络如因特网中建立起与公网相对独立和封闭的信息通道,以保护企业各子网之间、子网和移动用户之间、移动用户和服务器之间的通信数据的安全。VPN利用公网的资源,让用户拥有同专网相同的安全性,并享受因特网带来的经济实惠和方便迅捷。
VPN如何保护通信安全
不同类型的VPN所采用的协议不同,使用的安全机制也不同。关于VPN的协议比较多,但目前最完善的、安全性最高的应属IPSec协议。它可使用CA 数字证书来实现通信双方的身份认证;使用对称加密算法来对数据进行加密,保证数据的安全性;使用单向散列函数对数据计算摘要,并对摘要进行加密来保证数据的完整性。此外,VPN节点之间通信,不可能每次都手工配置密钥,手工方式既不安全也不方便,可以采用因特网自动密钥交换协议来进行密钥的协商,设置每次会话密钥的生命期,在快要结束生命期时,自动协商下一个会话密钥。
当企业虚拟专网建立时,需要在各个子网的出口配置安全网关。安全网关负责对流出数据进行加密和计算校验和,对进入数据进行检验和解密,并实施访问控制。VPN安全网关在其中具有举足轻重的作用。比如,当一台主机与另外一台主机通信时,会首先启动IKE (自动密钥协商)进程协商各种工作参数,包括加密算法、验证算法、密钥长度、密钥值等,并进行双向的身份认证,所有这些成为一个安全关联( Security Association) 。
VPN的使用
VPN安全网关与VPN Client软件配合使用,通过灵活配置隧道策略,不仅可以解决通信的安全问题,还可以解决用户对公司总部网络的访问授权问题。图1 是一个VPN安全系统的典型网络拓扑图。
当网关与网关相连时,通过VPN管理中心或终端方式为需要相互通信的两台网关间配置对应的隧道,位于两台私口后的主机就能通过加密隧道进行通信,防止数据被丢失、篡改并保证数据的完整。
VPN安全网关设计方案概述
VPN系统体系结构
VPN的主要作用是采用加密、认证和网络技术在公共互联网上构建相互信任方之间的安全加密信息传输通道,以期达到专用网络的效果。VPN网关在其中将发挥非常重要的核心作用。
由图1可知,VPN网关工作在本地局域网及与其通信的远程局域网的网关位置,具有加密和认证功能。相互信任的局域网间进行通信时,仍然使用互联网作为中间信道。但是,通过VPN网关的加密功能确保信息在不安全的互联网上流通时是密文形式。这样,即便信息被截取,也无法偷窥或篡改其内容,保证通过互联网连接的局域网间通信的安全性、机密性、可认证性和完整性等安全性能。
VPN安全网关的设计目标
(1) 完整实现IPSec协议簇,完全支持VPN的要求。