《基于openssl的安全web服务器开发通信工程专业论文.doc》由会员分享,可在线阅读,更多相关《基于openssl的安全web服务器开发通信工程专业论文.doc(69页珍藏版)》请在三一办公上搜索。
1、届 别 学 号 毕业设计(论文)基于Openssl的安全Web服务器开发毕业设计(论文)原创性声明和使用授权说明原创性声明本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得 及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。作 者 签 名: 日 期: 指导教师签名: 日期: 使用授权说明本人完全了解 大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设
2、计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。作者签名: 日 期: 学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名: 日期: 年 月 日学位论文版权使用授权书本学位论文作者完全了解
3、学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。涉密论文按学校规定处理。作者签名:日期: 年 月 日导师签名: 日期: 年 月 日目录毕业设计(论文)开题报告3毕业设计(论文)任务书10毕业设计(论文)开题报告题 目 基于OpenSSL的安全web服务器开发 学生姓名 学 号 系 别 专 业 通信工程 届 别 指导教师 职 称 讲 师 年 10月 10 日 一、综述国内外对本课题的研究动态,说明选题的依
4、据和意义 随着计算机及通讯技术的飞速发展,信息安全已经渗透到社会经济生活的各个方面,对社会进步与经济发展起着越来越重要的作用,也使人们的工作甚至生活方式发生了巨大的变革。网络规模的激增,网络复杂性和异构性的焦点化,使得网络安全问题上升到了的战略性位置。信息安全是自古以来就存在的概念,比如以前为了保证传递书信的保密性,使用腊封或其它方式将书信封装在信封内;还有使用暗号口令确认接受信息的人的身份等等方法。需要注意的是,信息安全技术是跟信息的载体形式和传送媒介密切相关的,信息载体的变化和信息传送媒介的变化必然会导致信息安全技术的变化发展。 在过去的二十多年中,信息技术取得令人惊异的发展,越来越多的有
5、价值的信息和资料以数字信息存放在计算机等数字信息存储设备中。与此同时,信息共享技术也获得了巨大的突破,以 Internet 的发展为代表,短短的时间内,从美国军方的一个专用网络发展到联系着全世界千千万万人的膨大信息网络。 这些客观的变化导致对信息安全的要求发生了重大的变化。 随着信息数字化以及计算机应用的发展, 对存储在计算机中的文件和其它数字信息的保护需求成为了一种必然,尤其对一个能够通过公共网络进入的共享系统来说,这种需求显得尤为迫切。针对这种需求目前发展起来的技术有防病毒技术和防火墙技术等等。有些文献将这些保护数据、阻挡非法数据访问的技术统称为计算机安全或系统安全技术。 信息安全技术的另
6、外一个重要变化是由于网络和通信设施的产生和应用引起的。 这些网络和通信设施用来在用户各种终端以及计算机之间传输数据信息, 这个传输过程很容易受到非法窃听等攻击,这就需要对在网络中传输的数据采取安全的保护措施。针对这种需求发展起来的技术有 VPN、SSL 等。发展趋势:网络安全的威胁多数来自邮件和采用广播形式发送的信函。面对这些威胁,许多专家建议安装代理服务器过滤软件来防止不当信息15。目前已有许多厂商正在开发相关软件 ,直接配置在网络网关上,弹性规范网站内容,过滤不良网站,限制内部浏览。这些技术还可提供内部使用者上网访问网站的情况,并产生图表报告。系统管理者也可以设定个人或部门下载文件的大小。
7、此外,邮件管理技术能够防止邮件经由 Internet 网关进入内部网络,并可以过滤由内部寄出的内容不当的邮件,避免造成网络带宽的不当占用.从入口处拦截病毒成为未来网络防病毒产品发展的一个重要方向。6.总结网络安全技术在21世纪将成为信息网络发展的关键技术. 21世纪人类步入信息社会后 ,信息这一社会发展的重要战略资源需要网络安全技术的有力保障 ,才能成为社会发展的推动力。在我国,信息网络安全技术的研究和产品开发还处于起步阶段,仍有大量的工作需要去研究、开发和探索 ,走出有中国特色的产学研联合发展之路,赶上或超过发达国家的水平,保证我国信息网络的安全,推动我国国民经济的高速发展。二 、 研究的基
8、本内容,以及要解决的主要问题1.WEB服务功能的实现。首先要监听某一指定端口,等待客户端浏览器的连接,获取HTTP请求的头部信息,包括请求的类型,请求的内容等等。确定请求后对客户端的请求进行回复,返回请求的页面,页面传输的方式。其中OpenSSL API的使用方法和Web服务器处理多个并发请求的方法是WEB安全服务功能的重点,做好这两个功能要学习熟悉OpenSSL API的调用方法并参考书籍、网络资料。2.数据安全传输的实现。难点包括怎样确定客户端的请求是安全请求、服务端的非对称密钥的生成方式、任何证书在使用之前,必须将证书以及其相应的公钥公布出去等。具体的实现是服务端实行非对称加密方式(公钥
9、体制),暴露公开密钥给客户端,客户端获取公开密钥并用其加密新的对称密钥发送给服务器,后续的数据通过新密钥加密,服务器用该密钥解密从而实现数据的安全传输。3.证书验证。当证书用户收到一个证书的时候, 需要对这个证书进行验证。 证书验证的项目通常包括:验证证书的签名者以确认是否信任该证书 、检测证书有效期、确认证书是否有效、确认证书没有被签发它的 CA撤销、检测证书预期用途跟CA在该证书中指定的策略是否相符合。证书的验证过程通常是对证书链的验证,这通常要执行多个上述项目的循环验证已得出最终验证结果。三、研究的步骤、方法、措施及进度安排 1.SSL技术SSL是Secure Socket Layer(
10、安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0版本。SSL采用公开密钥技术1。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密钥技术的SSL协议,已成为Internet上保密通讯的工业标准。安全套接层协议能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TEL
11、NET等)能透明地建立于SSL协议之上4。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。通过以上叙述,SSL协议提供的安全信道有以下三个特性:(1)数据的保密性 信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密。加密的过程需要用到密钥来加密数据然后再解密。没有了密钥,就无法解开加密的数据。数据加密之后,只有密钥要用一个安全的方法传送。加密过的数据可以公开地传送。 (2)数据的一致性 加密也能保证数据的一致性。例如:消息验证码(MAC),能够校验用户提供的加密信息,接收者可以
12、用MAC来校验加密数据,保证数据在传输过程中没有被篡改过。 (3)安全验证 加密的另外一个用途是用来作为个人的标识,用户的密钥可以作为他的安全验证的标识。SSL是利用公开密钥的加密技术(RSA)来作为用户端与服务器端在传送机密资料时的加密通讯协定。Web使用HTTP协议作为其传输协议,而HTTP采用明文传输,网络中传输的重要数据有被截获的危险。因此,为保护重要数据的传输安全,往往使用经SSL加密后的HTTP,即HTTPS。本课题的任务是使用OpenSSL开发一个安全的Web服务器软件,此Web服务器能够处理多个并发请求,至少支持Get命令,争取实现Head、Post、Delete等命令。掌握O
13、penSSL API编程方法,掌握服务器编程。增加对网络编程的认识、熟悉,掌握多线程编程和文件流的读取,并结合网络编程与多线程编程的特点,对程序的效率进行提高。加强对网络安全的认识,熟悉网络的编码规则,能够对数据进行加密解密的操作,包括对称密钥体制和非对称密钥体制(公开密钥体制),保证数据的完整性、安全性。对客户端服务器体系有一个整体的认识。1.SSL技术SSL是Secure Socket Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准,目前已有3.0版本。SSL采用公开密钥技术1。其目标是保
14、证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。目前,利用公开密钥技术的SSL协议,已成为Internet上保密通讯的工业标准。安全套接层协议能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等)能透明地建立于SSL协议之上4。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。通过以
15、上叙述,SSL协议提供的安全信道有以下三个特性:(1)数据的保密性 信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密。加密的过程需要用到密钥来加密数据然后再解密。没有了密钥,就无法解开加密的数据。数据加密之后,只有密钥要用一个安全的方法传送。加密过的数据可以公开地传送。 (2)数据的一致性 加密也能保证数据的一致性。例如:消息验证码(MAC),能够校验用户提供的加密信息,接收者可以用MAC来校验加密数据,保证数据在传输过程中没有被篡改过。 (3)安全验证 加密的另外一个用途是用来作为个人的标识,用户的密钥可以作为他的安全验证的标识。SSL是利用公开密钥的加密技术(RSA)
16、来作为用户端与服务器端在传送机密资料时的加密通讯协定。2.OpenSSL简介4OpenSSL是一个开放源代码的SSL协议的产品实现,它采用C语言作为开发语言,具备了跨系统的性能。OpenSSL 项目最早由加拿大人 Eric A. Yang和 Tim J. Hudson 开发,现在由 OpenSSL 项目小组负责改进和开发,这个小组是由全球的一些技术精湛的志愿技术人员组成,它们的劳动都是无偿的,在此我们应该向他们表示崇高的敬意。 OpenSSL最早的版本在1995年发布5,1998年后开始由OpenSSL项目组维护和开发。当前最新的版本是 0.9.7b版本,完全实现了对 SSLv1、SSLv2、
17、SSLv3和 TLS的支持。OpenSSL的源代码库可以从 OpenSSL 的官方网站www.openssl.org自由下载, 并可以免费用于任何商业或非商业的目的。由于采用C语言开发,OpenSSL 的源代码库具有良好的跨平台性能,支持Linux、Unix、Windows、Mac 和VMS等多种平台。目前,OpenSSL已经得到了广泛的应用,许多类型的软件中的安全部分都使用了OpenSSL 的库,如VOIP的OpenH323 协议、Apache服务器、Linux 安全模块等等。我们有理由预期,OpenSSL 和其所倡导的开放源码的思想必将被众多的支持者更加发扬光大。 3.OpenSSL的组成
18、虽然OpenSSL使用SSL作为其名字的重要组成部分,但其实现的功能确远远超出了SSL协议本身。OpenSSL 事实上包括了三部分:SSL 协议、密码算法库和应用程序。SSL 协议部分完全实现和封装了 SSL 协议的三个版本和 TLS 协议,SSL 协议库的实现是在密码算法库的基础上实现的。使用该库,你完全可以建立一个SSL 服务器和 SSL 客户端。该部分在 Linux 下编译会形成一个明文 libssl.a 的库,在 Windows 下则是名为 ssleay32.lib的库8。 密码算法库是一个强大完整的密码算法库,它是 OpenSSL 的基础部分,也是很值得一般密码安全技术人员研究的部分
19、,它实现了目前大部分主流的密码算法和标准。主要包括公开密钥算法、对称加密算法、散列函数算法、X509 数字证书标准、PKCS12、PKCS7 等标准9。事实上,OpenSSL 的 SSL 协议部分和应用程序部分都是基于这个库开发的。目前,这个库除了可以使用本身的缺省算法外,在 0.9.6版本之后,还提供了 Engine 机制,用于将如加密卡这样外部的加密算法实现集成到 OpenSSL 中。密码算法库在 Linux 编译后其库文件名称为 libcrypto.a,在 Windows 下编译后其库文件为 libeay32.lib。应用程序部分是 OpenSSL 最生动的部分,也是 OpenSSL 使
20、用入门部分。该部分基于上述的密码算法库和 SSL 协议库实现了很多实用和范例性的应用程序,覆盖了众多的密码学应用10。主要包括了各种算法的加密程序和各种类型密钥的产生程序(如 RSA、Md5、Enc等等)、证书签发和验证程序(如 Ca、X509、Crl 等)、SSL 连接测试程序(如 S_client 和S_server等)以及其它的标准应用程序(如 Pkcs12 和Smime 等)。在某些时候,不需要做二次开发,仅仅使用这些应用程序便能得到我们的应用要求,比如采用Ca程序就能基本上实现一个小型的CA功能11。这些应用程序同时也是很好的使用OpenSSL加密算法库和 SSL协议库的优秀例子,比
21、如 Ca、Req和X509程序就是使用OpenSSL的库开发一个 CA 中心服务器的优秀例子,又如S_client和S_server程序就是利用SSL协议库建立 SSL安全连接的优秀例子。4.WEB服务器原理 通俗的讲,Web服务器传送页面使浏览器可以浏览,然而应用程序服务器提供的是客户端应用程序可以调用的方法。确切一点,你可以说:Web服务器专门处理HTTP请求,但是应用程序服务器是通过很多协议来为应用程序提供商业逻辑6。Web服务器可以解析HTTP协议12。当Web服务器接收到一个HTTP请求,会返回一个HTTP响应,例如送回一个HTML页面。为了处理一个请求,Web服务器可以响应一个静态
22、页面或图片,进行页面跳转,或者把动态响应的产生委托给一些其它的程序例如CGI脚本,JSP脚本,servlets,ASP脚本,服务器端JavaScript,或者一些其它的服务器端技术13。无论它们的目的如何,这些服务器端的程序通常产生一个HTML的响应来让浏览器可以浏览。要知道,Web服务器的代理模型非常简单。当一个请求被送到Web服务器里来时,它只单纯的把请求传递给可以很好的处理请求的程序。Web服务器仅仅提供一个可以执行服务器端程序和返回(程序所产生的)响应的环境,而不会超出职能范围。服务器端程序通常具有事务处理,数据库连接和消息等功能14。 虽然Web服务器不支持事务处理或数据库连接池,但
23、它可以配置各种策略来实现容错性和可扩展性,例如负载平衡,缓冲。集群特征经常被误认为仅仅是应用程序服务器专有的特征。 进度安排:2010年8月11日2010年9月10日,准备、选题和资料收集阶段。2010年9月11日2010年11月21日,分析医学图像胸透当前形式,撰写开题报告,进行开题。2010年11月21日2010年12月15日,根据已收集资料和自己想法,并撰写毕业论文。2010年12月15日2011年1月01日,完成论文初稿的撰写。2011年1月15日2011年3月15日,完成论文二稿的撰写。2011年3月15日2011年4月15日,完成论文终稿的撰写四、 主要参考文献1 格雷. Web服
24、务器编程M. 北京:清华大学出版社. 2004,(9)2 Bruce Eckel. Thinking in Java,Third EditionM.Prentice Hall PTR .2003, 8 3 张国防. 基于Apache的SSL研究与实现J. 计算机安全. 2010,(09)4 董智鹏. SSL协议的初步研究和应用J. 仪器仪表与分析监测. 2010,(02)5 张佶 等. Web服务器负载压力模型及其优化原则J. 计算机应用与软件. 2010,(12)6 左新玲 等. Web服务器的安全问题及对策J. 微电脑世界应. 2005,(02)7 (美)William Stallings
25、著. 王海欣,陈弘毅 译.网络安全基础:应用与标准(第3版) M. 北京:清华大学出版社, 20078 李峰,陈向益. TCP/IP协议分析与应用编程M. 北京:人民邮电出版社. 2008, 119 (美)Andrew S. Tanenbaum 等著. Computer Networks, Fourth Edition(英文影印版)M. 北京:清华大学出版社. 2004, 1010 吴功宜、董大凡、王珺等. 计算机网络高级软件编程技术. 北京:清华大学出版社.2008,1111 John Viega,Matt Messier,Pravir Chandra著.Network Security w
26、ith OpenSSL. OReilly Media, Inc.2002,0612 潘爱民. Effective Java中文版 M. 北京:机械工业出版社.2003,0113 朱涛江、林剑 等译. Java网络编程 M. 北京:中国电力出版社.2005,11五、指导教师意见签名 六、教研室意见签名 注:此表由学生本人填写,一式三份,一份留系里存档,指导教师和学生本人各保存一份。 毕业设计(论文)任务书题 目 基于OpenSSL的安全Web服务器开发 学生姓名 学 号 系 别 专 业 届 别 指导教师 职 称 讲 师 时间: 年 10月 10 日1、毕业设计(论文)基本要求 Web使用HTTP
27、协议作为其传输协议,而HTTP采用明文传输,网络中传输的重要数据有被截获的危险。因此,为保护重要数据的传输安全,往往使用经SSL加密后的HTTP,即HTTPS。本课题的任务是使用OpenSSL开发一个安全的Web服务器软件,此Web服务器能够处理多个并发请求,至少支持Get命令,争取实现Head、Post、Delete等命令。2、文献查阅指引格雷. Web服务器编程M. 北京:清华大学出版社. 2004,(9)Bruce Eckel. Thinking in Java, Third EditionM. Prentice Hall PTR .2003, 8 张国防. 基于Apache的SSL研究
28、与实现J. 计算机安全. 2010,(09)董智鹏. SSL协议的初步研究和应用J. 仪器仪表与分析监测. 2010,(02)张佶 等. Web服务器负载压力模型及其优化原则J. 计算机应用与软件. 2010,(12)左新玲 等. Web服务器的安全问题及对策J. 微电脑世界应. 2005,(02)(美)William Stallings著. 王海欣,陈弘毅 译.网络安全基础:应用与标准(第3版) M. 北京:清华大学出版社, 2007教研室意见 负责人签名 注:本任务书一式三份,由指导教师填写,经评审工作领导小组审批后一份下达给学生,一份交指导教师,一份留系里存档。致 谢时间飞逝,大学的学习
29、生活很快就要过去,在这四年的学习生活中,收获了很多,而这些成绩的取得是和一直关心帮助我的人分不开的。首先非常感谢学校开设这个课题,为本人日后从事计算机方面的工作提供了经验,奠定了基础。本次毕业设计大概持续了半年,现在终于到结尾了。本次毕业设计是对我大学四年学习下来最好的检验。经过这次毕业设计,我的能力有了很大的提高,比如操作能力、分析问题的能力、合作精神、严谨的工作作风等方方面面都有很大的进步。这期间凝聚了很多人的心血,在此我表示由衷的感谢。没有他们的帮助,我将无法顺利完成这次设计。首先,我要特别感谢我的知道郭谦功老师对我的悉心指导,在我的论文书写及设计过程中给了我大量的帮助和指导,为我理清了
30、设计思路和操作方法,并对我所做的课题提出了有效的改进方案。郭谦功老师渊博的知识、严谨的作风和诲人不倦的态度给我留下了深刻的印象。从他身上,我学到了许多能受益终生的东西。再次对周巍老师表示衷心的感谢。其次,我要感谢大学四年中所有的任课老师和辅导员在学习期间对我的严格要求,感谢他们对我学习上和生活上的帮助,使我了解了许多专业知识和为人的道理,能够在今后的生活道路上有继续奋斗的力量。另外,我还要感谢大学四年和我一起走过的同学朋友对我的关心与支持,与他们一起学习、生活,让我在大学期间生活的很充实,给我留下了很多难忘的回忆。最后,我要感谢我的父母对我的关系和理解,如果没有他们在我的学习生涯中的无私奉献和
31、默默支持,我将无法顺利完成今天的学业。致 谢四年的大学生活就快走入尾声,我们的校园生活就要划上句号,心中是无尽的难舍与眷恋。从这里走出,对我的人生来说,将是踏上一个新的征程,要把所学的知识应用到实际工作中去。回首四年,取得了些许成绩,生活中有快乐也有艰辛。感谢老师四年来对我孜孜不倦的教诲,对我成长的关心和爱护。学友情深,情同兄妹。四年的风风雨雨,我们一同走过,充满着关爱,给我留下了值得珍藏的最美好的记忆。在我的十几年求学历程里,离不开父母的鼓励和支持,是他们辛勤的劳作,无私的付出,为我创造良好的学习条件,我才能顺利完成完成学业,感激他们一直以来对我的抚养与培育。最后,我要特别感谢我的导师刘望蜀老师、和研究生助教吴子仪老师。是他们在我毕业的最后关头给了我们巨大的帮助与鼓励,给了我很多解决问题的思路,在此表示衷心的感激。老师们认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。他无论在理论上还是在实践中,都给与我很大的帮助,使我得到不少的提高这对于我以后的工作和学习都有一种巨大的帮助,感谢他耐心的辅导。在论文的撰写过程中老师们给予我很大的帮助,帮助解决了不少的难点,使得论文能够及时完成,这里一并表示真诚的感谢。