论文部分内容阅读
随着互联网技术的快速发展,越来越多的人享受到了资源共享的便利,这极大地方便了人们的工作和学习,提高了工作效率和生活水平。然而,在开放的互联网大环境下,信息的传输易受到各种攻击和威胁,数据的安全性难以得到保证。传统的专用网络可以保证数据传输的安全性和可靠性,但其实现和维护成本过高,所以虚拟专用网(VPN)技术应运而生。最常用的VPN技术是IPSec VPN技术。现如今主流的IPSec VPN技术和设备使用的是国际组织制定的加密技术,其中的算法都是国际标准的算法,一般都在网络上公开,这样就会存在安全性不足的问题。所以本文基于开源IPSec项目strongSwan,依据国家密码管理局最新修订的国密算法标准,《IPSec VPN技术规范》,结合USB加密卡,在嵌入式Linux下设计了国密IPSec VPN的安全方案。论文主要的工作如下:1、研究了IPSec相关协议,在分析比较了开源IPSec项目strongSwan和Openswan的优缺点之后,决定采用strong Swan来设计方案。2、分析了strongSwan中的源码结构。在不改变strongSwan IKE和ESP协议整体流程基础上,替换了IKE和ESP协议所用的国际算法为相应的国密算法。因为软件加密安全性较差,所以使用USB加密卡来实现国密算法。3、精简了USB加密卡所用的Mass Storage驱动,突出了嵌入式简单高效的特点。USB加密卡与上位机之间的数据通讯使用的是Bulk-only协议,上位机发送特定命令字给加密卡,就可以实现和加密卡之间的通讯。因为直接开发Linux内核会比较困难,所以使用开源libusb库实现无驱开发,自主研发了一套加密卡和上位机之间的通讯程序,完成了对不同国密算法的实现。4、strongSwan工作过程中,需要验证通信双方身份。strongSwan默认使用RSA或者ECDSA X.509证书来验证身份,本文在替换完strongSwan中的公钥算法为国密SM2算法后,就可以使用国密SM2证书来验证双方证书了。同时,在Linux系统下设计实现了一个简易的CA中心,用来生成和管理证书。5、将修改好的strongSwan程序在Linux系统下交叉编译后,移植到嵌入式开发板中,搭建IPSec VPN环境进行测试。经分析,方案的安全性很高,方案实现的VPN性能良好,运行稳定。