论文摘要
VPN即虚拟专用网络(Virtual Private Network)是指利用隧道协议和安全措施在公用网络上构建的专用网络,这里的公用网络主要指Internet。“虚拟”的含义是指在开放、不安全的网络环境中利用加密、认证等安全技术构建专用、安全的通信信道,从而模拟出一个“私用”的网络。为了保障信息在Internet上传输的安全性,VPN采用身份认证、存取控制、数据机密性、数据完整性等措施,来保证信息在传输中不被偷看、篡改、复制。VPN可以帮助公司分支机构、合作伙伴、远程用户同公司的内部网建立可信的安全连接,并保证数据的安全传输,它是对企业内部网的扩展。VPN的关键是通信的安全,而IPSec是提供这种通信安全的核心技术。IPSec在IP层上对数据包进行高强度的安全处理,提供数据源验证、无连接数据完整性、数据机密性、抗重播和有限业务流机密性等安全服务。本文首先简要介绍了VPN及VPN网关的相关内容;然后分析了实现VPN网关的主要技术:IPSec安全技术,其中包括:安全关联、安全策略、认证头(AH)、封装安全载荷(ESP)以及Internet密钥交换协议(IKE);而后对IKE的原理、IKE交换的全过程进行了细致的研究,发现了IKE协议中存在的问题,并提出了解决IKE协议本身不能抵御假冒攻击的修改方案;最后重点阐述了在Linux平台上基于IPSec的VPN网关的设计与实现,给出了VPN网关的总体构架,并按功能进行了模块的划分并分别予以设计实现。由于目前还没有正式的RFC标准文档用来描述PF KEY如何与内核中的安全策略数据库进行交互,本文为此提出了PF KEY的扩展方案,以赋予PF_KEY针对安全策略数据库的交互能力。本文结尾提出了实现方案中需要改进的地方并对VPN技术的发展前景进行了展望。