论文部分内容阅读
基于安全套接层协议的虚拟专用网络(SSL VPN,Secure Socket Layer based Virtual Private Network)为用户提供了一种安全而又便捷的远程访问方式。利用SSL协议(Secure Socket Layer protocol,安全套接层协议)、TLS协议(Transport Layer Security protocol,传输层安全协议)以及隧道技术,SSL VPN实现了端点认证,并保证了数据传输的安全性和完整性。目前SSL VPN正处于发展和繁荣期,但是SSL VPN在系统性能、可扩展性和安全性等方面还存在一些问题尚待解决。首先,SSL VPN的系统性能受安全计算负载的影响较大,往往需要额外的SSL专用加速硬件才能满足高端应用的要求;其次,SSL VPN服务软件需要频繁调用I/O多路接口(I/O Multiplexing Interface)来查看网络事件,而传统I/O多路接口的可扩展性和执行效率较差,这也严重影响了系统的服务性能;此外,SSL VPN无法保证用户终端的安全,不安全的用户终端访问VPN内部资源往往会造成极大的破坏和损失。SSL VPN的性能和扩展性问题可以从VPN系统架构和操作系统内核两个方面来解决。在传统的SSL VPN架构中,VPN服务器是系统的性能瓶颈,它的计算量非常庞大,其处理速度决定了整个VPN的通信质量。为此提出了一种基于非对称SSL隧道(AST,Asymmetrical SSL Tunnel)的VPN架构。采用非对称SSL隧道之后,发往VPN客户的数据由内部服务器自行封装,这样可以将VPN服务器的部分计算荷载转移到那些I/O密集但是CPU资源相对空闲的内部服务器上,充分利用内部服务器的计算能力,提高VPN系统的整体性能。该VPN方案中的密钥管理办法,对SSL协议进行了适当的扩展,使得客户机、VPN服务器和内部应用服务器三者能够同步协商所使用的加密密钥信息,而且能够满足SSL VPN特定的安全性要求:定期更新密钥。此外,根据隧道所使用底层协议的不同,还提出了IP嫁接算法和UDP散射算法,进一步提高VPN的整体性能。根据Amdahl定理,提高系统性能的最有效方法是加快经常性事件的速度,因此提出了一种新的I/O多路接口:内核-用户共享事件队列(KSEQ, Kernel-user Shared Event Queue)。VPN服务软件多采用单进程事件驱动(Single Process Event Driven)的结构,KSEQ接口利用这种软件结构的特点,解决了VPN服务进程与系统内核共享数据结构的难题,从而避免了大量的系统调用开销,并保证了良好的可扩展性。使用基于逻辑时钟的形式化分析模型对KSEQ的时序分析表明,内核-用户共享数据结构的取值结果总是能够符合其逻辑定义。理论分析和实验测试证明KSEQ接口在可扩展性方面优于传统的I/O多路接口,并且与其他同类研究的结果相比具有更高的执行效率。针对SSL VPN技术无法保证客户端安全的现实,从消息传递的角度,将日志系统视为一种跨越时间和空间的单向消息传递系统,并在此认识的基础上,构建了一种支持计算机取证的日志系统(FLEA, Forensic Log Evidence Assurance)。该系统采用了入侵容忍(Intrusion Tolerant)的设计原则,在操作系统内核的支持下,即使SSL VPN服务器受到入侵,也能保证日志系统的客观和公正。使用扩展的GNY标记逻辑可以证明,FLEA系统能够保证日志消息的真实性,完整性和保密性。受到FLEA系统保护的VPN服务器日志可以作为控诉黑客入侵的关键证据。