




已阅读5页,还剩64页未读, 继续免费阅读
(计算机应用技术专业论文)轻量级web服务器的实现与应用.pdf.pdf 免费下载
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要 随着互联网技术的快速发展,使得w 曲技术得到了广泛的应用,并且获得了 巨大的成功。w 曲技术有着良好的通用性、平台独立性和交互性。信息化的不断 发展,促使w 曲技术应用到不同的领域中,同时使得很多应用系统都向w 曲模 式迁移,w 曲服务器则为这些应用系统提供了一个可以实时交互的平台。轻量级 w 曲服务器与一些大型的w 曲服务器相比具有很多优势,其占用资源低、营运 成本低、复杂度低、运行速度快,部署方便,并在一些特定的环境得到广泛的应 用。 本文深入研究了w 曲服务模型,实现了一种即可以嵌入到其他应用系统也可 以独立使用的轻量级w 曲服务器。主要包括一下几个方面的内容: 1 详细介绍了h t t p 、t c p 口等w 曲服务器的相关协议,以及s s l 协议及 其应用。 2 用s o c k e t 实现标准的h t t p 协议,采用j a v as e r v l e t 规范作为支撑理论实 现了基于c 语言的s e 1 e t s 容器即轻量级w 曲服务器。 3 利用o p e n s s l 实现s s l 上的h t t p 来实现网络信息的安全传输。 4 在w i n d o w s 平台下,针对轻量级w 曲服务器在一定时间内的吞吐量,访 问命中率做了测试。 5 给出了轻量级w 曲服务器在分布式漏洞检测系统中的应用。该应用系统 由中心、补丁服务器、用户代理和w 曲服务器组成,各个部分通过w 曲 交互,轻量级w 曲服务器在交互过程中起到通信桥梁作用,提供了安全 可靠的信息传输服务。 对轻量级w 曲服务器测试的结果表明其运行稳定可靠,在较大的负载情况下 能正常提供服务。 关键词:轻量级w 曲服务器,h t t p 协议,s e l e t ,s s l 西北大学学位论文知识产权声明书 本人完全了解西北大学关于收集、保存、使用学位论文的规定。 学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。 本人允许论文被查阅和借阅。本人授权西北大学可以将本学位论文的 全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫 描等复制手段保存和汇编本学位论文。同时授权中国科学技术信息研 究所等机构将本学位论文收录到中国学位论文全文数据库或其它 相关数据库。 保密论文待解密后适用本声明。 学位论文作者签名:墨勉指导教师签名: z 筘矿年g 月门日扩妒年占月萝日 西北大学学位论文独创性声明 本人声明:所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究 成果。据我所知,除了文中特别加以标注和致谢的地方外,本论文不包含其他人已经 发表或撰写过的研究成果,也不包含为获得西北大学或其它教育机构的学位或证书而 使用过的材料与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确 的说明并表示谢意。 学位论文作者签名:马叛 加口孑年月矿日 第一章引言 第一章引言 1 1 本文的研究背景及意义 互联网推动了各种应用的信息化,随着现代通信技术的发展,w 曲技术迅速 渗透到各个领域。作为一种资源的组织和表达机制,w e b 已成为1 1 1 t e m e t 最主要 的信息传送媒介,w e b 的发展同时带动了w 曲s e r v i c e 的发展,而w 曲s e i c e 的平台便是现在的w 曲站点。 w 曲服务器要解决异种计算机的联网和信息交换。采用t c p 口协议交换文 件和信息,主要解决专业特定领域的计算机的联网问题在t c p 口协议网络之上 发明的锄a i l 和w w w 【2 ,3 】的普遍应用,使得h l t e m e t 国际互联网被大众接受,这 时一个重要的条件是p c 普及得非常广泛,即形成了c l i e 州s e n r e r 【4 】体系结构( 客 户机服务器) ,进而发展为b r o w s 酬s e n ,e r 【5 】结构( 浏览器朋艮务器) ,这时的客户机 是已广泛普及的p c ,而服务器是相对复杂的,价格昂贵的超级计算机,即我们 所谓的“胖服务器”。当前随着嵌入式技术的发展,人们期望各种嵌入式设备通过 i n t e m e t 联在一起,形成地球的“电子皮肤”,提供更为广泛的资源共享、信息通 信和状态控制服务。而这些嵌入式设备之间内部的信息交换需要一直特定地、自 动地、实时地、方便地、简单地信息传输平台。这个平台我们称之为轻量级w 曲 服务器或瘦w 曲服务器,也可称为嵌入式w 曲服务器。 所谓轻量级w 曲服务器没有一个特定的定义,通常这类w 曲服务器具有简 单、易于安装、流线化、要求低和健壮、即比a p a c h e 和i i s 更小、更简单。轻 量级w e b 服务器有着一些大型服务器不可比拟的特性,例如,整个服务器可以 打包在一个文件中。这意味着开发人员可以方便地携带生产环境所需的所有工 具。即使在生产服务器上运行的是a p a c h e ,也仍然可以任何地方,借助只需数 秒钟就可以安装完毕的轻量级w 曲服务器以尝试新想法。而且,由于轻量级 w 曲服务器要求很低,因此可以在那些无法负担i i s 的主机上顺畅地运行。 小的、轻量级的w 曲服务器还可以在小功率的主机上良好地运行。远程的、 条件欠佳或配置较低的环境中的工业计算机上运行专用的硬件。在这些情况下, 第一章引言 能够通过一个对处理能力或磁盘空间要求很低的应用程序来提供w 曲页面是 一个很大的优势。这意味着主机可以避免a p a c h e 的开发和处理能力所带来的开 销,构建基于w e b 的管理控制台。 本文设计轻量级w 曲服务器的初衷是提供一个分布式计算平台,主要应用与 网络安全监控及分布式漏洞检测系统中,涉及到客户端和服务器端的信息传输, 需要用到w 曲服务器作为信息传输平台,当前存在很多大大小小的w 曲服务器, 介于需要一种轻量级w 曲服务器,要求其高效且其运行时系统资源开销相对较 小,该w 曲服务器只是嵌入到应用系统的一部分,它只需到达应用系统要求的 功能,而无需其他附加模块,要求此轻量级w 曲服务器属于小型规模,轻量级 w 曲服务器面向的是特定的、少量客户,所以w 曲服务器无需负载大量用户访 问。既然是应用的网络安全方面,则服务器本身在传输数据的时候就要得到信息 安全传输的保证,即在w 曲服务器的设计过程中需要有网络安全方面的考虑, 就h t t p 协议在安全方面的缺陷,本文使用h t t p s 策略,通过在t c p 层与h t t p 层之间增加一个s s l 来加强安全性,在数据传输过程中,加密解密均由s s l 进 行,与上层的h t t p 无关,对h t t p 来说是透明的。综上原因,本文就分布式漏 洞检测系统而另行开发一个轻量级w 曲服务器来嵌入其中。 1 2 轻量级、b 服务器的发展现状 随着h n e m e t 的飞速发展,w 曲服务器在种类和数量上都得到了增长,如w e b 服务器就可以分为w w w 服务器或者是h t t p 服务器、f t p 服务器( f t ps e n r e r ) 、 邮件服务器( m a i ls e r v e r ) 、数据库服务器( d a t a b a s es e r v e r ) 、代理服务器( p r o x y s e r v 神、域名服务器( d o m a i nn 锄es e e r ) 等等。本文主要介绍h t t p 服务器, 其也是w 曲服务器最主要的形式,本文之后提到w 曲服务器便指h t t p 服务器。 当前的w 曲服务器的产品有各种各样,据调查,当前服务器使用最频繁的是 a p a c h e 【6 1 和i i s 【7 1 ( i n t e m e tm f 0 珊a t i o ns e e r ) 。这两种w e b 服务器就占据了6 0 以上的份额,这是因为这两种w 曲服务器都经过高度的锤炼,而且有着广泛的 技术支持和配套资料。但这并没有阻碍其它类型的w 曲服务器的发展,因为判 断一个w 曲服务器的重要指标有【s 】: 2 第二章轻量级w e b 服务器的研究 第二章轻量级w e b 服务器的研究 w 曲服务器,也就是能够给大家提供w 曲服判1 4 】的主机,m t 锄e t 网络上的 用户可以通过输入该w 曲服务器的地址来访问该w 曲服务器上的资源。即w 曲 服务器可以解析h t t p 协议。当w 曲服务器接收到一个h t t p 请求( r e q u e s t ) ,会 返回一个h t t p 响应( r e s p o n s e ) ,因此终端用户在h t e m e t 上的基本动作就是“进 入一个w 曲页面”。就是说客户端与服务器端直接的协作,一个w 曲浏览器, 例如f i r ef o x 或i i l t e m e te x p l o r e r ,用于请求一个特定的页面,并且以人类可读 的方式显示从另一个应用程序那里收到的内容。一个w 曲服务器,通常是在远 程机器上,负责对页面请求做出响应,返回h t m l 编码的或类似的数据流。 2 1w e b 服务器的基础协议 客户与w 曲服务器的交互是通过h t t p 【1 5 ,1 6 】( h ) ,p e r t e x tt r a j l s f e rp r o t o c o l , 超文本传输协议) 进行的。h t t p 协议服从请求响应模式,即客户提交请求,w 曲 服务器处理请求并把响应数据( 或被请求的内容) 返回给客户。h t t p 协议的通 信基础是t c p ( t r a i l s m i s s i o nc o n t r o lp m t o c o l ,传输控制协议) 。 图2 1w 曲服务器的基本操作模式 图2 1 显示了w 曲服务器的基本操作模式。客户机和w 曲服务器均连在 1 1 1 t e m e t 上。运行在客户机上的浏览器发送h t t p 请求到w 曲服务器,然后 w 曲服务器把相应的内容返回给客户。 w e b 服务器返回给客户的内容有多种格式,一般为h t m l 【1 7 】。h t m l 是一 种简单的标记( m a d ( u p ) 语言可生成与平台无关的超文本文档。h t m l 文档有 一些适合用来表示各种信息的通用语义。h t m l 标记能表示超文本新闻、邮件、 文档和超媒体;数据库查询结果;选择菜单;带有行内图形的简单结构化文档。 h t m l 还支持内嵌的图像,通常的格式为g 球和j p e g 。 6 笫二章轻量级w 曲服务器的研究 2 ) 请求和响应消息的协议版本。如:响应消息第一行以h t t p 1 o ,表示服 务器使用h t t p l 0 协议。 3 ) 服务器响应码,表示请求、响应消息是否成功。如:响应消息第一行以 2 0 00 k 结束,表示请求成功。 4 ) 用m i m e 格式的消息头字段和消息体格式来描述访问对象的数据类型和 附加在后面的元信息。如:头字段c o n t e n t 1 卯e :t e x t h t m l ,表示响应消 息实体为h t m l 文件。 5 ) 用询问响应实现访问认证。如:在访问某些主页时要求客户端输入用户 名和口令。h t t p l 1 是h t t p l o 的一次飞跃,它主要强调解决后者的性 能、安全、数据类型处理和缓冲等方面的缺陷。h t t p l 1 主要改进包括: a ) 使用永久连接作为缺省连接,提高性能。 b ) 使用摘要认证,提高安全性,克服基本认证方法中“显式”传递用 户名和密码的缺陷。 c ) 使用内容协商机制允许客户端和服务器以最佳方式描述对象。 h t t p l 1 提出在服务器方缓冲对象,通过一种客户端朋艮务器协议 操作缓冲对象进一步提高性能的思想,目的是减少请求、往返次 数,并且是在确实需要时才返回完整的响应。另外,h t t p l 1 突 破了h t t p l o 中服务器和一对一的限制,允许使用h o s t 标题 字段服务器的名字来决定由哪个服务器对请求进行服务,而不用 p 地址来决定。 2 h t t p 协议的特点 h t t p 协议设计简单灵活、无状态、无连接、基于c 1 i e 州s e r v e r 模式并支持 元信息,其特点主要如下: 1 ) 以c l i e n t s e n ,e r 模型为基础:h t t p 支持客户与服务器之间通信及相互传 送数据,一个服务器可以为分布在世界各地的许多客户服务。 2 ) 简单快速:h t t p 被设计成一个非常简单的协议,使得w 曲服务器能高 效地处理大量请求,客户机要连接到服务器,只需发送请求方式和l 刀地 路径等少量信息。h t t p 规范定义了七种请求方式,最常用的有三种: g e t 、h e a d 和p o s t 。由于h t t p 协议简单,h t t p 的通信与f t p 、t e h e t 8 第二章轻量级w 曲服务器的研究 等协议的通信相比,速度快而且开销小。 3 1 灵活:h t t p 允许传输任意类型的数据对象。 4 ) 无连接:h t t p 是无连接的协议。这里的“无连接”是建立在t c p 口协议 之上的,与建立在u d p 协议之上的无连接不同。客户要建立连接需先发 出请求,收到响应,然后断开连接。采用这种“无连接”协议,在没有请 求提出时,服务器就不会在那里空闲等待。完成一个请求之后,服务器 不会继续为这个请求负责,从而不用为保留历史请求而耗费宝贵的资源。 5 ) 无状态:h t t p 是无状态的协议,这既是优点也是缺点。一方面,由于 缺少状态使得h t t p 累赘少,系统运行效率高,服务器应答快;另一方 面,由于没有状态,协议对事务处理没有记忆能力,若后续事务处理需 要有关前面处理的信息,那么这些信息必须在协议外面保存;另外,缺 少状态意味着所需的前面信息必须重现,导致每次连接需要传送较多的 信息。 6 ) 元信息:元信息被定义为“关于信息的信息”,元信息允许服务器提供所 发送数据的信息,例如,h t t p 可以提供所发送的对象的语言和类型。 2 1 1 2h t t p 协议的传输过程 h t t p 1 0 和h t t p 1 1 都把t c p 作为底层的传输协议。h t t p 客户首先发起 建立与服务器t c p 连接。一旦建立连接,浏览器进程和服务器进程就可以通过 各自的套接字来访问t c p 。客户往自己的套接字发送h r r p 请求消息,也从自己 的套接字接收h t t p 响应消息。类似地,服务器从自己的套接字接收h t t p 请求 消息,也往自己的套接字发送h t t p 响应消息。客户或服务器一旦把某个消息送 入各自的套接字,这个消息就完全落入t c p 的控制之中。t c p 给h t t p 提供一 个可靠的数据传输服务;这意味着由客户发出的每个h t t p 请求消息最终将无损 地到达服务器,由服务器发出的每个h t t p 响应消息最终也将无损地到达客户。 我们可从中看到分层网络体系结构的一个明显优势h t t p 不必担心数据会丢 失,也无需关心t c p 如何从数据的丢失和错序中恢复出来的细节。这些是t c p 和协议栈中更低协议层的任务。 9 第二章轻量级w 曲服务器的研究 客户端 = = = = 嘉麟妾 = = = = c = = - 发起请求= = 号 、 = = = 二二发起_ q 摩一- _ = = = = = = 戋闭连接= 二= = 图2 1h 1 v r p 传输过程 1 建立连接 连接的建立是通过申请套接字实现的。客户打开一个套接字并把它约束在 一个端口上,如果成功,就相当于建立了一个虚拟文件。以后就可以在该虚拟文 件上进行读写。 2 发送请求 打开一个连接后,客户机把请求消息送到服务器的连接端口上,完成提出请 求动作。 3 发送响应服务器在处理完客户的请求之后,向客户机发送响应消息。 4 关闭连接 客户和服务器双方都可以通过关闭套接字来结束对话,一般情况下服务器 发送完客户端请求的文件后会主动关闭套接字。h t t p 协议的。 2 1 1 3h t t p 协议的主要内容 请求和响应是h t t p 协议的核心,客户端和服务器之间的信息传递是通过消 息来进行的,请求消息是客户端向服务器发送的用于请求服务器提供服务的消 息。响应消息是服务器接到客户端请求后返回给客户端的消息。 1 客户请求格式 1 ) 消息格式 请求行格式:方法( 必须用大写)请求u r jh t t p 版本号c r l f 头字段格式:用冒号分割的n 锄e v a l u e 对,每个对没有顺序之分,一个n a m e 可能有用逗号分开的多个v a l u e 。 请求消息格式实例如下: 1 0 第二章轻量级w 曲服务器的研究 2 ) 状态码 状态码表示服务器是否成功地满足了客户的请求,状态码由一个三位整数 和解释状态码含义的正文短语组成。状态码大致分类如下: 表格2 3 状态码 状态码含义 1 x x收到请求,继续处理 2 x x接收成功,理解请求并给出响应 3 x x重定向 4 x x客户错误 5 x x 服务器错误 3 ) 头字段 与请求消息相同,头字段一般用于传送除请求外的其他附加信息。 表格2 _ 4 头状态 头字段含义 c o n t e n t l e n 百h 响应主体的长度 c o n t e n t b 币e 响应类型 d a t e 响应发送时的日期时间 s e r v e r服务器的名称和版本 2 1 1 4 切 u 编解码 一个h t t p 请求经过的几个环节,如图2 2 。 1 浏览器把u r l 【博1 ( 以及p o s t 提交的内容) 经过编码后发送给服务器。 2 这里的s e l e t 服务器实际上指的是由s e n ,1 e t 服务器提供的s e r v l e t 实现 ( 本文在第四章设计实现s e l e t 容器) ,不同应用服务器的s e r v l e t 实现 不同,这些s e l e t 的实现把这些内容解码转换为u n i c o d e ,处理完毕后, 然后再把结果( 即网页) 编码返回给浏览器。 3 浏览器按照指定的编码显示该网页。 当对字符串进行编码和解码的时候都涉及到字符集,通常使用的字符集为 1 3 第二章轻革级w 曲服务器的研究 i s 0 8 8 5 9 1 、g b k 、u t f 8 、u n i c o d e 。 编码鲁嘉鬻:畜诸薯亲; 解码 2 1 2t c p i p 相关协议 2 1 2 1t c p 口协议概述 图2 2h r r p 编码解码过程 t c p d 【1 9 2 0 1 是一个协议集合,其核心功能是寻址和路由选择以及传输控制。 t c p 口协议是h t t p 协议的基础,h t t p 实现客户与服务器之间的请求和响 应,而t c p p 实现了底层的数据传输。t c p p 协议体系结构模型如图2 3 所 不o 应用层 传输层 网络层 链路层 物理层 图2 - 3t c p i p 协议模型 物理层和链路层:处理终端与网络之间的接口细节,包括操作系统的设备 驱动程序、网卡等。 网络层:网络层包括p 协议、i c m p ( 1 1 1 t e m e tc o n n 0 1m e s s a g ep r o t o c o l :因 特网控制报文协议) 、i g m p ( h l t 哪e tg r o u pm a n a g e m e n tp r o t o c o l :因特网组管理 协议) 、a r p ( a d d r e s sr e s o l u t i o np r o t o c o l :地址解析协议) 、r a r p ( r e v e r s ea d d r e s s r e s o l “o np r o t o c 0 1 :反向地址解析协议) 。其中p 协议是不可靠、无连接的数据 1 4 第二章轻量级w 曲服务器的研究 报协议,为其他高层协议提供最基本的数据传输功能。 传输层:传输层包括t c p 和切) p 两个著名的协议,二者均使用p 网络 ip服务,但却为主机提供面向连接的、可靠的传输层数据通信服务。udp为主 机提供无连接的、不可靠的数据通信。虽然udp提供不可靠的服务,但这种协 议的开销很小,因此也有着广泛的应用。 应用层:负责处理应用程序细节,这一层有许多协议,如http,ftp,t e l l 怔t 等。2 1 2 2t c p 通讯的建立和终结 tcp连接包括三个状态:连接建立、数据传送和连接终止。tcp用三路握手 过程建立一个连接,用四路握手过程建立来拆除一个连接。在连接建立过程中, 很多参数要被初始化,例如序号被初始化以保证按序传输和连接的强壮性。1 建立连接 一对终端同时初始化一个它们之间的连接是可能的。但通常是由一端打开一 个套接字(socket)然后监听来自另一方的连接,这就是通常所指的被动打开。被 动打开的一端就是服务器端。而客户端通过向服务器端发送一个syn来建立一 个主动打开,作为三路握手的一部分。服务器端应当为一个合法的syn回送一 个synack。最后,客户端再发送一个ack。这样就完成了三路握手并进入了连接建立状态。 2 数据传输 在tcp的数据传送状态,很多重要的机制保证了tcp的可靠性和强壮性。 校验和来检测报文段的错误;使用确认和计时器来检测和纠正丢包或延时。 在tcp的连接建立状态,两个主机的tcp层间要交换初始序号(is。这 些序号用于标识字节流中的数据,并且还是对应用层的数据字节进行记数的整 数。通常在每个tcp报文段中都有一对序号和确认号。tcp报文发送者认为自 己的字节编号为序号,而认为接收者的字节编号为确认号。t c p 报文的接收者为 了确保可靠性,在接收到一定数量的连续字节流后才发送确认。这是对tcp的1 5 第二章轻量级w 曲服务器的研究 一种扩展,通常称为选择确认( s a c k ) 。选择确认使得t c p 接收者可以对乱序到 达的数据块进行确认。 通过使用序号和确认号,t c p 层可以把收到的报文段中的字节按正确的顺序 交付给应用层。序号是3 2 位的无符号数,在它增大到2 3 2 1 时便会回绕到o 。对 于i s n 的选择是t c p 中关键的一个操作,它可以确保强壮性和安全性。 3 连接终止 接终止状态使用了四路握手过程,在这个过程中每个终端的连接都能独立地 被终止。因此,一个典型的拆接过程需要每个终端都提供一对f i n 和a c k 。 2 2s o c k e t 编程 2 1 3s o c k e t 套接字编程 s o c k e t 接口【2 l 】是t c p 口网络的a p i ,s o c k e t 接口定义了许多函数,可以 用来开发t c p 口网络应用程序。l i n u x 系统中,网络的s o c k e t 数据传输是一 种特殊的i o ,s o c k e t 也是一种特殊文件描述符。s o c k e t 具有一个类似于打开 文件的函数调用s o c k e t ( ) ,该函数返回一个整型的s o c k e t 描述符,随后的连接 建立、数据传输等操作都是通过该s o c k e t 描述符实现的。常用的s o c k e t 类型 有两种:流式s o c k e t ( s o c ks t r e a m ) 和数据报式s o c k e t ( s o c kd g r a m ) 。 流式是一种面向连接的s o c k e t ,针对于面向连接的t c p 服务应用;数据报式 s o c k e t 是一种无连接的s o c k e t ,对应于无连接的u d p 服务应用。实际上两个 网络程序之间的一个网络连接包括五种信息:通信协议、本地协议地址、本地主 机端口、远端主机地址和远端协议端口,s o c k e t 数据结构中包含这五种信息。所 以说s o c k e t 接口是访问h l t e m e t 使用得最广泛的方法。s o c k e t 函数客户端和服 务器端的建立过程如图2 4 所示: 1 6 拍眼 第二章轻量级w 曲服务器的研究 2 3 本章小结 w 曲的用的主要协议是h t t p ,本章对于h t t p 进行了详细的介绍,h t t p 数据传输利用t c p 口协议,因此对于t c p 口也进行了详细介绍,而通讯用的 t c p 协议的实现是利用t c p p 提供的a p i ,即s o c k e t 接口来实现, 本章提到的用s o c k e t 套接字实现网络间的通信功能,只是在一般传输的基础 上实现通信过程。现在网络通信越来越重视信息在传输过程的安全性,目前关于 信息安全防范有主要对策是使用密码技术。密码技术一般应用于认证( 认证信息 的加解密) 、数字签名、完整性以及s s l ( 安全套接字) 、s e t ( 安全电子交易) 等安全通信标准。本文解决信息传输安全选择s s l 的方式,在下一章本文将详 细介绍s s l 原理及其应用。 1 9 第二章s s l 协议及应用 3 1s s l 概述 第三章s s l 协议及应用 s s l 【2 4 ,2 5 1 是s e c u r es o c k e tl a y e r 英文缩写,即安全套接层协议,指使用公钥和私 钥技术组合的安全网络通讯协议。s s l 协议是网景公司( n e t s c a p e ) 推出的基于 w e b 应用的安全协议,s s l 协议指定了一种在应用程序协议( 如h t 叭t e l e n e t 、 n m t p 和f t p 等) 和t c p 口协议之间提供数据安全性分层的机制【2 6 】,它为t c p p 连接提供数据加密、服务器认证、消息完整性以及可选的客户机认证,主要用于 提高应用程序之间数据的安全性,对传送的数据进行加密和隐藏,确保数据在传送 中不被改变,即确保数据的完整性。 s s l 以对称密码技术和公开密码技术相结合,可以实现如下三个通信目标: 1 秘密性:s s l 客户机和服务器之间传送的数据都经过了加密处理,网络中 的非法窃听者所获取的信息都将是无意义的密文信息。 2 完整性:s s l 利用密码算法和散列( h a s h ) 函数,通过对传输信息特征值的 提取来保证信息的完整性,确保要传输的信息全部到达目的地,可以避免 服务器和客户机之间的信息受到破坏。 3 认证性:利用证书技术和可信的第三方认证,可以让客户机和服务器相互 识别对方的身份。为了验证证书持有者是其合法用户,s s l 要求证书持有 者在握手时相互交换数字证书,通过验证来保证对方身份的合法性。 3 2s s l 协议的体系结构 s s l 协议位于t c p p 协议模型的网络层和应用层之间,使用t c p 来提供一种 可靠的端到端的安全服务,它是客户服务器应用之间的通信不被攻击窃听,并且 始终对服务器进行认证,还可以选择对客户进行认证。s s l 协议要求建立在可靠 的传输层协议( 例如:t c p ) 之上。s s l 协议的优势在于它是与应用层协议独立无 关的。高层的应用层协议( 例如:h t t p ,f t p ,t e u 屺t ) 能透明的建立于s s l 协 议之上。s s l 协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商 2 0 第三章s s l 协议及应用 以及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证 通信的私密性。如图3 1 所示。 3 3o p e n s s l h t t pf t ps m t p s s lo rt l s t c p i p 图3 1s s l 体系结构 o p e n s s l 是一个支持s s l 认证的服务器。它是一个源码开放的自由软件, 支持多种操作系统。o p e n s s l 软件的目的是实现一个完整的、健壮的、商业级 的开放源码工具,通过强大的加密算法来实现建立在传输层之上的安全性。 o p e n s s l 包含一套s s l 协议的完整接口,应用程序应用它们可以很方便的建立 起安全套接层,进而能够通过网络进行安全的数据传输。 o p e n s s l 采用c 语言作为开发语言,这使得o p e n s s l 具有优秀的跨平台性 能,这对于广大技术人员来说是一件非常美妙的事情,可以在不同的平台使用同 样熟悉的东西。c i p e n s s l 支持l i n u x 、研n d o w s 、b s d 、m a c 、v m s 等平台,这 使得o p e n s s l 具有广泛的适用性。不过,对于目前新成长起来的c + + 程序员, 可能对于c 语言的代码不是很习惯,但习惯c 语言总比使用c + + 重新写一个跟 o p e n s s l 相同功能的软件包轻松不少。 o p e n s s l 整个软件包大概可以分成三个主要的功能部分:密码算法库、s s l 协议库以及应用程序。o p e n s s l 的目录结构自然也是围绕这三个功能部分进行 规划的。作为一个基于密码学的安全开发包,o p e n s s l 提供的功能相当强大和 全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及s s l 协议, 并提供了丰富的应用程序供测试或其它目的使用。 1 对称加密算法 2 1 第三章s s l 协议及应用 o p e n s s l 一共提供了8 种对称加密算法,其中7 种是分组加密算法,仅有 的一种流加密算法是r c 4 。这7 种分组加密算法分别是a e s 、d e s 、b l o w f i s h 、 c a s t 、d e a 、r c 2 、r c 5 ,都支持电子密码本模式( e c b ) 、加密分组链接模式 ( c b c ) 、加密反馈模式( c f b ) 和输出反馈模式( o f b ) 四种常用的分组密码 加密模式。其中,a e s 使用的加密反馈模式( c f b ) 和输出反馈模式( o f b ) 分 组长度是1 2 8 位,其它算法使用的则是6 4 位。事实上,d e s 算法里面不仅仅是 常用的d e s 算法,还支持三个密钥和两个密钥3 d e s 算法。 2 非对称加密算法 o p e i l s s l 一共实现了4 种非对称加密算法,包括d h 算法、r s a 算法、d s a 算法和椭圆曲线算法( e c ) 。d h 算法一般用户密钥交换。r s a 算法既可以用于 密钥交换,也可以用于数字签名,当然,如果你能够忍受其缓慢的速度,那么也 可以用于数据加密。d s a 算法则一般只用于数字签名。 3 信息摘要算法 o p e n s s l 实现了5 种信息摘要算法,分别是m d 2 、m d 5 、m d c 2 、s h a ( s h a l ) 和i m e m d 。s h a 算法事实上包括了s h a 和s h a l 两种信息摘要算法,此外, o p e n s s l 还实现了d s s 标准中规定的两种信息摘要算法d s s 和d s s l 。 4 密钥和证书管理 密钥和证书管理是p 的一个重要组成部分,郇e n s s l 为之提供了丰富的 功能,支持多种标准。 首先,o p e n s s l 实现了a s n 1 的证书和密钥相关标准,提供了对证书、公 钥、私钥、证书请求以及c i 也等数据对象的d e r 、p e m 和b a s e 6 4 的编解码功 能。o p e n s s l 提供了产生各种公开密钥对和对称密钥的方法、函数和应用程序, 同时提供了对公钥和私钥的d e r 编解码功能。并实现了私钥的p k c s 1 2 和 p k c s 8 的编解码功能。o p e n s s l 在标准中提供了对私钥的加密保护功能,使得 密钥可以安全地进行存储和分发。在此基础上,o p e n s s l 实现了对证书的x 5 0 9 标准编解码、p k c s f 1 2 格式的编解码以及p k c s 7 的编解码功能。并提供了一 种文本数据库,支持证书的管理功能,包括证书密钥产生、请求产生、证书签发、 吊销和验证等功能。 事实上,o p e n s s l 提供的c a 应用程序就是一个小型的证书管理中心( c a ) , 2 2 第三章s s l 协议及应用 实现了证书签发的整个流程和证书管理的大部分机制。 3 4s s l 协议的实现 基于o p e n s s l 的程序可以被分为两个部分:客户机和服务器,使用s s l 协议使通信双方可以相互验证对方身份的真实性,并且能够保证数据的完整性和 机密性。建立s s l 通信的过程如图3 3 所示。 生成一个s s l 结构 l s 。c k e t 过程 l s o c k e t 和s s l 联系起来 l s s l 握手过程 l 实现通信 图3 - 3s s l 通信过程 s s l 通信模型采用标准的c s 结构,除了在t c p 层上进行传输之外,与普通 的网络通信协议没有太大的区别,基于o p e n s s l 的程序都要遵循以下几个步骤: 1 o p e n s s l 初始化在使用o p e n s s l 之前,必须进行相应的协议初始化工 作,这可以通过下面的函数实现: i n ts s l - 1 i b 删r y :i n t ( v o i d ) ; 2 选择会话协议在利用o p e n s s l 开始s s l 会话之前,需要为客户端和服 务器制定本次会话采用的协议,目前能够使用的协议包括t l s v l o 、 s s l v 2 、s s l v 3 、s s l v 2 v 3 。需要注意的是,客户端和服务器必须使用相 互兼容的协议,否则s s l 会话将无法正常进行。 3 创建会话环境在o p e n s s l 中创建的s s l 会话环境称为c t x ,使用不 同的协议会话,其环境也不一样的。申请s s l 会话环境的o p e n s s l 函数 是: s s l - c t x 木s s l - c t x - n e w ( s s l - _ m e t h o d 木m e t h o d ) ; 2 3 第二章s s l 协议及应用 当s s l 会话环境申请成功后,还要根据实际的需要设置c t x 的属性,通 常的设置是指定s s l 握手阶段证书的验证方式和加载自己的证书。制定证书 验证方式的函数是: 1 1 1 ts s l c t x 二s e l v e d f y ( s s l _ c t x 木c t x ,i n tm o d e , i n t ( 木v e r i f yc a l l b a c k ) ,i n t ( x 5 0 9 - s t o i 迮c t x 木) ) ; 为s s l 会话环境加载c a 证书的函数是: s s c t x 二l o a l v e r i f _ y l o c a t i o n ( s s l _ c t x 水c t ) 【,c o n s tc h a r 木c a f i l e ,c o n s tc h a r 木c 印a t h ) ; 为s s l 会话加载用户证书的函数是: s s l - c t x j s e c e r t i f i c a t e f i l e ( s s l _ - c t x 幸c t ) 【,c o n s tc h a r 木f i l e ,i n tt y p e ) ; 为s s l 会话加载用户私钥的函数是: s s l c t x u s e _ p r i v a t e k e y - f i l e ( s s l c t x 丰c t ) 【,c o n s tc h a r 丰f i l e ,i n tt y p e ) ; 在将证书和私钥加载到s s l 会话环境之后,就可以调用下面的函数来验证私 钥和证书是否相符: i n ts s l c t x 9 h e c l 【- p r i v a t e - k e y ( s s l c t x 宰c t x ) ; 4 建立s s l 套接字s s l 套接字是建立在普通的t c p 套接字基础之上,在 建立s s l 套接字时可以使用下面的一些函数: s s l 木s s l j l e w ( s s l _ c t x 木c t ) ( ) ;申请一个s s l 套接字 i n ts s l - - s e t _ f d ( s s l s s l ,i n tf d ) ;) 绑定读写套接字 i n ts s l _ s e t _ r f d ( s s l 木s s l ,i n tf d ) ;绑定只读套接字 i n ts s l _ s e t _ w f d ( s s l 木s s l ,i n tf d ) ;绑定只写套接字 5 完成s s l 握手在成功创建s s l 套接字后,客户端应使用函数 s s l - c o i l i l e c t ( ) 替代传统的函数c o i l l l e c t ( ) 来完成握手过程: i n ts s l i _ c o l l i l e c t ( s s l 宰s s l ) ; 而对服务器来讲,则应使用函数s s l _ a c c 印t ( ) 替代传统的函数a c c 印t ( ) 来完成握手过程: i n ts s l _ a c c e p t ( s s l 木s s l ) ; 握手过程完成之后,通常需要询问通信双方的证书信息,以便进行相应 的验证,这可以借助于下面的函数来实现: 2 4 第三章s s l 协议及应用 x 5 0 9 木s s l - g e t p e e r - - c e n i f i c a t e ( s s l 宰s s l ) ; 该函数可以从s s l 套接字中提取对方的证书信息,这些信息已经被s s l 验证过了。 x 5 0 9 j 町a m e 木x 5 0 9 - g e t - s u b j e c t - _ n 锄e ( x 5 0 9 木a ) ; 该函数得到证书所用者的名字。 6 当s s l 握手完成之后,就可以进行安全的数据传输了,在数据传输阶段, 需要使用s s l r e a d ( ) 和s s 州t e ( ) 来替代传统的r e a d ( ) 和w r i t e ( ) 函数, 来完成对套接字的读写操作: i n ts s l ,- r e a d ( s s l 木s s l ,v o i d 铀u ei n tn u n l ) ; i n ts s l _ j w r i t e ( s s l 木s s l ,c o n s tv o i d u i n tn u 瑚) ; 7 结束s s l 通信 当客户端和服务器之间的数据通信完成之后,调用下面的函数来释放已 经申请的s s l 资源: m s s l - s h u t d o w n ( s s l 木s s l ) ;关闭s s l 套凄字 v o i d s s l 一仔e e ( s s l 木s s l ) ;释放s s l 套接字 v o i ds s l ,- c t x - 丘e e ( s s l 一- c t x 宰c t 】【) ;释放s s l 会话环境 3 5 本章小结 在前一章本文提到w 曲服务器用到的基础协议,本章根据上文提到的网络安 全而提出s s l 技术,详细介绍了s s l 协议具体原理及其通信过程,且提供了s s l 的实现接口,即o p e n s s l 的应用,为后面实现s s l 上的h t t p 提供了技术支持。 s s l 协议是一种有用而灵活的安全工具,它在不安全的开放的网络上提供了安 全的加密的数据通道,并且可以与实时t c p 服务一起很好的工作。如果通信各 方之间使用t c p 进行连接,那么s s l 就能工作的很好。 2 5 第四章轻量级w 曲服务器的设计与实现 第四章轻量级w - e b 服务器的设计与实现 4 1 轻量级w e b 服务器的设计 4 1 1 总体模块 针对系统的设计思想【2 9 】,可以将整个轻量级w r e b 服务器划分为几大模块, 各个模块负责不通的功能。其总体模块结构图如4 1 所示。 厂荔 缓 冲 区 管 理 模 块 并 发 访 问 控 制 模 块 多 任 务 管 理 模 块 图表l 系统总体结构模块 轻量级w 曲服务器主要模块说明如下: 1 缓冲区管理模块 缓冲区管理模块提供对s e r v l e t 的输入输出缓冲区的管理功能,分为缓冲区 分配模块,缓冲区读写模块以及缓冲区回收模块,其结构见图4 2 。 2 6 f i l t e r 调度模块 s e v l e t 调度模块 h t t p响应编解码模块 h t t p请求编解码模块 第四章轻量级w 曲服务器的设计与实现 图4 2 缓冲区管理模块 2 并发访问控制模块 并发访问控制模块提供共享变量的并发访问控制功能。见图4 3 。 h t t p 协议模块 图4 3 并发访问控制模块 图4 4h t t p 协议模块 h t t p 协议模块【3 0 】,包含h t t p 请求解码模块和h t t p 响应编码模块,遵循 第四章轻量级w 曲服务器的设计与实现 h t t p 1 1 规范,并尽量兼容h t t p 1 o 。h t t p 协议模块结构见图4 4 4 s e n ,l e t 调度模块 s e r v l e t 调度模块【3 提供s e n ,1 e t 的调度服务。s e r v l e t 的调度单元的实现形式 是服务器的一个线程,由s e n ,l e t 上下文和服务器上下文共同作用实现。服务器 上下文包含了多个s e r v l e t 上下文,s e r v l e t 上下文包含了多个s e r v l e t 。 5 f i l t e
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 腾讯笔试题库及答案设计
- 2025合法终止合同协议
- 高校毕业生高质量就业服务体系研究
- 2025配套工程劳务分包合同
- 成长与守护题目及答案
- 常用的图形题目及答案
- 电焊证考试题库及答案
- 物业旧衣回收合同协议书
- 三视测力考试题及答案
- 小学人教版五年级下册期末检测语文试卷
- 【MOOC】人工智能:模型与算法-浙江大学 中国大学慕课MOOC答案
- 2024年重庆高考化学试题卷(含答案解析)
- 2025届高三政治最后一节课学科考前指导
- MOOC 电力电子学-华中科技大学 中国大学慕课答案
- 道路交通事故现场勘查课件
- 门店电表记录表
- 组态王双机热备
- 绿地图绘制指南
- 山体植被恢复项目绿化工程施工组织设计
- 初级长拳现用图解(第一路)
- 塑料制品公司质量手册
评论
0/150
提交评论