论文部分内容阅读
Internet的设计者们开始并没有考虑到安全问题,随着Internet的迅速发展,网络安全问题显得越来越突出。为了提高网络的安全性,因特网工程任务组IETF(Internet Engineering Task Force)于1998年11月公布了IP安全标准,即IPsec协议族。IPsec提供了一种标准的、健壮的、包容广泛的机制,可以在IP及其上层协议中使用,提供身份验证、机密性和密钥管理等安全保证。因特网密钥交换协议IKE(Internet Key Exchange)是IPsec协议族的重要组成部分,其主要功能是实现IPsec安全参数的协商与管理。IKEv1协议是由ISAKMP、Oakley和SKEME三个协议组成的一种混合型协议,随着对性能、安全性的更高要求,又增加了许多内容,以致整个协议越来越庞杂,缺乏一致性。为此,IETF工作组于2005年10月发布了IKE协议的第二版,即IKEv2。IKEv2简化了IKEv1中冗余的功能,增强了安全性,将所有协议整合在了一个文档(RFC4306)中。目前,国内关于IKEv2的研究工作大多还处于初步的理论阶段,真正的实现很少。为此,本文将研究重点放在了IKEv2协议的设计与实现方面。通过与IKE协议第一版IKEv1的比较,深入分析了IKEv2,包括IKEv2协议的组成、IKEv2协商流程、IKEv2消息格式、IKEv2密钥协商等,并着重讨论了协议的安全性。在研究IKEv2协议概念体系和实现技术的基础上,本文提出了一个切实可行的IKEv2实现方案,参考著名开源程序openikev2,采用面向对象的C++程序设计语言,基于Linux平台实现了一个安全的、具有基本功能并具有良好扩展性的IKEv2系统。本系统由系统管理子系统、网络通信子系统、消息协商子系统、载荷处理子系统、加密算法子系统和内核通信子系统等6个子系统组成。采用PF_KEYv2套接字与操作系统内核安全数据库通信。本文对各个子系统的设计思想和功能划分进行了描述,并介绍了其工作流程。测试结果表明,能够完成密钥的协商并建立SA。