第1章 绪 论
1.1 研究背景及意义
随着计算机网络的发展,人类已经进入了一个崭新的信息化时代,信息安全是人们在信息空间中生存与发展的一个重要保证条件。与此同时,随着网络规模越来越大,越来越多的政府部门、企业都依赖计算机网络传输和处理数据信息,在这些数据中,可能涉及到股票证券、资金转账、科研数据等较敏感信息。因此,对网络设备的远程登录及配置显得十分必要,目前应用于网络远程登录的主要方式有 FTP、Pop 以及 Telnet 等,这几种方式虽然也可以通过密码认证来控制登录用户,但是用户在登录时交互的报文是明文形式的,所以用户的一些安全性信息容易被黑客窃取。现如今,如何保证网络通信的安全已经成为一个重要的研究课题。计算机网络安全需要解决的主要问题是:对网络上的各种非法行为进行主动防御和有效抑制,主要包括固有安全和系统安全两个方面。固有安全是指协议本身存在的缺陷和隐患;系统安全的主要威胁来自于黑客攻击,拒绝服务攻击以及计算机病毒攻击等。
研究表明,在基于非硬件实现 SSH 协议的安全传输中,其中 70%的时间用于处理密码运算,因此密码算法的执行效率成为影响 SSH 协议是否高效的关键因素。OpenSSL 是目前实现 SSH 协议的主要基础函数库,OpenSSL 支持八种对称密码算法:AES、RC2、RC4、RC5、BLOWFISH、CAST、DES、IDEA;四种非对称密码算法:RSA 、DH、DSA、ECC;以及五种消息摘要算法:MD2、MD5、MDC2、SHA、RIPEMD。本文对 SSH 协议做了系统的介绍,设计并实现了基于SSH 协议的运维审计系统,并研究了 OpenSSL 中非对称密码算法 RSA 的 GPU 实现技术。GPU(Graphic Processing Unit)即图形化处理器,是现代显卡中非常重要的一部分,其地位与 CPU 在主板上的地位一致。GPU 技术的诞生和发展,可分为前GPU 时代、固定功能流水时代、分离渲染时代以及统一渲染时代,每次 GPU 更新换代使得 GPU 的体系架构和计算模型都比上一代更好的适应图形绘制与通用计算。在 GPGPU(General Purpose computation on GPU)研究的早期阶段,通用计算任务通常被转换成图像渲染过程,即直接转换成图形处理的 API,这种开发方式太复杂,因此 GPU 通用计算一直难以实用化。2006 年 11 月,NVIDIA 公司发布了基于 G80 的并行编程模型和 C 语言的开发环境 CUDA(Compute Unified Device Architecture,计算统一设备架构)。通过扩展语法的 C 语言和接口函数库支持,不必过于深入了解 GPU 内部细节,也可以快速编写出适用于 GPU 的通用计算程序。基于硬件实现密码算法的方法已经广泛的应用于信息安全领域,而基于 GPU的密码算法实现方法,随着 GPGPU 的发展也逐渐成为研究热点。本文基于 CUDA架构,研究并实现了基于 GPU 的 RSA 算法,有效的提高了算法的实现性能,对于改善 SSH 协议的执行效率具有重要意义。
1.2 国内外研究现状
1.2.1 网络安全问题的产生
网络安全是指控制安全和信息安全两部分。国际化标准组织把控制安全定义为身份认证、授权、不可否认性和访问控制;信息安全则指信息的完整性、可靠性、保密性和可用性。互联网具有与生俱来的交互性、开放性和分散性,使得人类所憧憬的开放、信息共享、快速和灵活等需求得到满足。网络环境为信息共享、信息服务、信息交流创造了理想空间。网络技术的迅速发展以及广泛应用,极大的推动了人类社会的进步与发展。然而,也正是因为互联网所具有的上述特性,同时也产生了许多安全问题:
(1)信息泄漏、信息污染以及信息不易受控;
(2)在网络环境中,一些个人或组织出于某种特殊目的,进行信息破坏、信息泄密、信息侵权和意识形态的信息渗透;
(3)网络运用的趋势是全社会广泛参与,随之而来的是控制权分散的管理问题;
(4)随着社会基础设施的高度信息化,社会的核心控制系统有可能面临恶意攻击而导致损坏与瘫痪,其中包括国防通信设施、金融系统、动力控制网和政府网站等。
1.2.2 文件传输协议的发展现状
传统的网络服务程序,例如 FTP、Pop、Telnet 等,在网络上以明文的方式传送数据信息、用户账号信息以及用户口令,黑客通过窃听或者截获等攻击手段,较容易获取到用户的数据信息和账号信息以及口令。上述网络服务程序的安全认证方式也存在弱点,即非常容易受到一种常见的网络攻击方式的攻击—中间人(Man-in-the-Middle Attack)攻击[4]。FTP、Pop、Telnet 等协议从本质上来说是不安全的。为了防止信息的透明传输受到“中间人”攻击和 DNS 欺骗等网络攻击,可使用 SSH 协议来加密保护重要的信息,使得数据在 Linux 或 Windows 操作系统以及 Internet 等并不安全的环境下能够安全可靠的传输。本文对 SSH 协议做了系统的介绍,设计并实现了基于SSH 协议的运维审计系统。
第2章 SSH 协议的研究
2.1 SSH 协议简介
SSH(Secure Shell)协议 1995 年由 Tatu Ylonen 正式提出,该版称为 SSH1。SSH 加密口令以及数据可以在非安全网络上透明的提供强认证和安全通信。1998年,为了克服 SSH1 的局限性和安全缺陷,SSH 通信安全公司决定重写协议规范,最终推出 SSH2,并提交给 IETF 工作组进行标准化。2005 年 SSH 通信公司又推出了 SSH G3,该版的体系结构与 SSH2 兼容,但引入了一些优化和扩展,主要用以提高 SSH 的通信效率。随着密码技术的不断发展,SSH 协议标准也在发展更新。截至 2008 年 2 月,SecSh 工作组又公布了两个草案,一个描述 SSH 如何使用 ECC,另一个描述 SSH 如何使用 UMAC[6]。SSH 协议的优点在于:(1)SSH 不涉及与操作系统核心相关的技术以及细节,容易实现;(2)对于已有的应用,只要是利用可靠传输服务实现的,可通过充分利用由 SSH 协议所提供的端口转发功能的方式,以达到安全防御目的;(3)SSH协议的设计之初就已经考虑到了关于扩展性的问题,因此 SSH 协议比较容易嵌入新的密钥交换协议、密码算法以及认证方式等。相对于 SSH 协议的用户来说,它就是远程登录的一个标准,已经有越来越多的组织将 SSH 协议作为利用公用网络来接入公司内部网络的标准方式。IETF 对 SSH 协议进行的标准化工作,已于 2006年 1 月,SSH2 正式成为 IETF 标准。SSH 已经成为一套卓有成效的网络通用标准安全协议。SSH 协议是一种在非安全网络上提供安全远程访问控制以及其他安全应用的协议,是一种网络通用的、基于软件操作的、功能非常强大的网络安全解决方案。在 Unix、Windows 和 Macintosh 系统上都可以找到 SSH 实现。在不安全的网路通讯环境中,它提供了很强的验证机制与非常安全的通讯环境。
第三章 系统分析与设计.......... 18-29
3.1 基于SSH的FMIS管理系统用户需.......... 18-19
3.1.1 系统功能需求分析 .......... 18-19
3.1.2 系统性能需求分析.......... 19
3.2 用例图设计 .......... 19-21
3.3 基于SSH的FMIS管理系统的体系.......... 21-22
3.4 系统的面向对象模型分析与设计.......... 22-26
3.5 基于SSH的FMIS的功能结构分析.......... 26-27
3.6 基于SSH的FMIS的界面设计.......... 27-28
3.7 本章小结.......... 28-29
第四章 数据库分析与设计 .......... 29-41
4.1 基于SSH的FMIS的数据库.......... 29-30
4.2 基于SSH的FMIS数据库设.......... 30-38
4.3 数据持久化类设计与实现.......... 38-40
4.4 本章小结 .......... 40-41
第五章 系统详细设计与实现.......... 41-55
5.1 开发工具的选择.......... 41-42
5.1.1 开发工具概述.......... 41
5.1.2 开发环境的搭建.......... 41-42
5.2 各功能模块的详细分析与设计.......... 42-49
5.3 FMIS系统实现.......... 49
5.4 登录模块的详细设计.......... 49-53
5.5 LOG4J的实现.......... 53-54
5.6 本章小结 .......... 54-55
结论
本文通过对互联网中数据传输的研究与分析,发现 Telnet、FTP 等传输协议存在着安全隐患,因为其数据都是以明文的形式进行传输的,信息极易被第三方窃取或者篡改,进而威胁到数据的安全性。因此本文设计并实现了基于 SSH 协议的运维审计系统,首先基于 SSH 协议,保证了数据传输的安全性,其次该运维审计系统基于透明代理,能够保证客户端远程登录的正常通信,用户并不知道该代理服务器的存在。代理服务器程序将用户的所有操作行为及时的记录到操作日志文件中,通过分析用户唯一的日志文件对用户的操作行为进行审计,以规范用户的网络行为。在传统的用户名密码认证基础上,采用 RSA 加密方式与 MD5 校验相结合的方法,保证了数据传输的安全性以及准确性。在基于非硬件实现 SSH 协议的安全传输中,其中 70%的时间用于处理密码运算,因此本文就如何提高密码算法的执行效率以提高 SSH 协议的效率展开了研究,由于 RSA 算法的安全性基于大整数因子分解问题的困难性,在 RSA 算法中最重要且最耗时的运算是模幂运算。本文利用 GPU 强大的计算资源来提高 RSA算法的实现效率,提出了基于 CUDA 计算架构的 RSA 算法实现方案。综上,本文的主要研究工作总结如下:#p#分页标题#e#
(1)SSH 协议的体系结构的研究与分析。通过对 SSH 协议的发展历史的简要介绍,SSH 三层结构(连接协议、认证协议、传输层协议)的研究与分析;然后分析了 SSH 协议的工作流程,对比了 SSH 协议与 Telnet 协议相比的安全性;对比了 SSH 协议与加密协议 SSL 协议的区别。
(2)GPU 通用计算的研究。分析了 GPU 体系架构的发展以及 GPU 体系架构与 CPU 多核的比较,总结了基于 GPU 通用计算的可行性与优势;重点研究了CUDA 并行计算架构以及 CUDA 编程模型,探讨了 CUDA 算法实现的优化标准。
(3)提高 SSH 协议安全传输的效率—基于 GPU 计算平台的 RSA 实现技术研究。重点讨论的 RSA 算法特点,以及影响 RSA 算法效率的关键;提出了 RSA 算法基于 GPU 计算平台的实现思想,即利用 GPU 强大的计算资源来提高 RSA 算法的实现效率,并分析了 RSA 算法基于 CUDA 架构实现的可行性;设计了 RSA 算法在 CUDA 架构上的具体实现方案,即将 RSA 算法中的大整数模幂运算在 CUDA中实现。实验结果表明,在 RSA 算法的关键操作即大整数模幂运算方面,GPU实现与 CPU 实现相比,其比值为 40 倍以上,因此,说明 GPU 在支持 RSA 的大整数模幂的计算需求方面具有非常重要的意义,提高了 SSH 协议安全传输的效率。
(4)研究并实现了基于高效的 SSH 协议的运维审计系统,首先介绍了 Epoll模型的工作模式以及使用方法,总结了 Epoll 模式的优点,因此本系统基于 Epoll模型,利用多线程并发模式设计实现;重点介绍了本系统的系统结构,以及 RSA算法在模块中的应用,总结了 SSH 协议下审计系统的优点。最后,从响应连接速度和数据传输安全性两方面对系统进行了测试,实验结果表明,该系统有效的保证了数据的保密性与完整性。
参考文献
[1] Chonglei Mei,Hai Jiang,Jeff Jenness. CUDA-based AES /sjbylw/ Parallelization withFine-Tuned GPU Memory Utilization, IEEE SECON,2010,66-67.
[2] Kirill Korotaev. Hierarchical CPU Schedulers for Multiprocessor Systems,FairCPU Scheduling and Processes Isolation, IEEE SECON,2005,45-47.
[3] 甘长华.网络安全协议 SSH 的研究与实现:[天津大学硕士学位论文].中国知网,2007,15-30.
[4] 旷昊. Linux 系统下基于 SSH 协议的文件传输系统研究:[南开大学硕士学位论文].万方数据库,2007,20-40.
[5] 叶剑. 基于 GPU 的密码算法实现技术研究:[解放军信息工程大学硕士学位论文] . 中国知网,2010 年,48-65
[6] 寇晓蕤,王清贤. 网络安全协议—原理、结构与应用,2009 年 1 月第一版. 北京:高等教育出版社,2009 年,148-179.
[7] 姜学东,周宇飞. SSH 技术在 CDMA 1X 核心网安全登陆中的应用.电脑知识与技术,2007 年 6 期,15-20.
[8] John D.Owens,Mike Houston,David Luebke,Simon Green,John E.Stone,JamesC.Phillips.GPU Computing. IEEE SECON ,2008,33-35.
[9] DAI Chenguang,YANG Jingyu. Research on Orthorectification of RemoteSensing Images Using GPU-CPU Cooperative Processing. IEEESECON,2011,21-23.
[10] 吴恩华等.基于图形处理器(GPU)的通用计算.计算机辅助设计与图形学学报, 2004 年 5 期,30-35.