《基于TCP_IP协议的安全即时通信系统设计与实现.pdf》由会员分享,可在线阅读,更多相关《基于TCP_IP协议的安全即时通信系统设计与实现.pdf(70页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、酽嚣暑代号1 0 7 0 1分类号T N 9 1 8 8学号0 4 0 9 4 2 0 5 3 4密级公开蚤簧它手抖辍幺警硕士学位论文题(中、英文)目基于T C P I P 协议的安全即时通信系统设计与实现D e s i g na n dI m p l e m e n t a t i o no fS e c u r i t yI n s t a n tM e s s a g i n g 一盥耋勉地盟4 一勉一婴彰!P-一P _ r o t _ o 里_ o j _ 作者姓名牛晓蕾指导教师姓名、职务何文才教授学科门类军事学学科、专业密码学提交论文日期二oo 七年一月赢髻薯窝一摘要随着网络通信技术
2、和计算机技术的进一步发展,即时透信正在成为网络在线活动中不可缺少的业务。本课题在现有的网络通信技术、数据库技术和信息安全技术的基础上设计并实现了新型的安全即时通信系统。安全即时通信系统在原有即时通信系统的基础上设计出相应的数据加密算法和密钥传输与管理机制,保证了数据通信的即时性以及通信过程和信息存储的安全性,为企事业单位内部员工提供了更加方便、快捷、安全的办公通信平台。该系统按照软件工程思想采用面向对象和模块化设计方法设计,其中采用了网络通信技术、数据库技术、动态链接库技术、多线程技术等计算机技术,实现了文本通信、文件传输、用户分组、用户和日志管理等功能,具有通信即时性和安全性等特点。该系统采
3、用三层C S 和P 2 P 通信模型混合结构设计系统构架,采用O v e r l a p p e dI O 模型实现服务器的并发处理,采用A D O 接口访问S Q LS e r v e r数据库设计数据管理模块,采用以F e i s t e l 结构为基础的加密算法实现数据的安全传输与存储,并结合系统特点设计了安全的密钥传输和密钥管理机制。关键词:即时通信信息安全数据加密1 0 P I PA b s t r a c tW i t ht h ef u r t h e rd e v e l o p m e n to fn e t w o r kc o m m u n i c a t i o nt
4、 c c h n o l o g ya n dc o m p u t e rt e c h n o l o g y,I n s t a n tM e s s a g i n gh a sb e e nar e q u i r e m e n to fo n-l i n ea c t i v i t i e s T h i sp r o j e c td e s i g na n di m p l e m e n tt h en e ws e c u r i t yi n s t a n tm e s s a g i n gb a s e do nt h et o p i co ft h ee
5、x i s t i n gn e 锕o r kc o m m u n i c a t i o nt e c h n o l o g y d a t a b a s et e c h n o l o g ya n di n f o r m a t i o ns e c u r i t yt e c h n o l o g y T h en e ws e c u r i t yi n s t a n tm e s s a g i n gs y s t e md e s i g nt h ed a t ae n c r y p t i o na l g o r i t h ma n dk e yt
6、r a n s m i s s i o na n dm a n a g e m e n tm e c h a n i s m s,b a s e do nt h eo r i g i n a li n s t a n tm e s s a g i n gs y s t e m,w h i c hg u a r a n t e et h ei n s t a n to ft h ed a t ac o m m u n i c a t i o na n dt h es a f e t yo ft h ec o m m u n i c a t i o np r o c e s sa n ds t o
7、 r a g eo fi n f o r m a t i o n,p r o v i d e dam o r ec o n v e n i e n ta n dq u i c k e r,s e c u r eo f f i c ec o m m u n i c a t i o np l a t f o r mf o rI n t e r n a ls t a f fo fe n t e r p r i s e s T h i ss y s t e mi sd e s i g n e db yo b j e c t-o r i e n t e da n dm o d u l a rd e s
8、i g nm e t h o d,w h i c hu s e dc o m p u t e rt e c h n o l o g i e sb a s e do nn e t w o r kc o m m u n i c a t i o nt e c h n o l o g y,d a t a b a s et e c h n o l o g y,D L Lt e c h n o l o g y,M u l t i t h r e a d i n gt e c h n o l o g y,s o f t w a r er e u s ea n dS Oo n,t h i ss y s t e
9、 mh a sf u n c t i o n so ft h et e x tc o m m u n i c a t i o n,f i l et r a n s f e r,u s e r sg r o u p s,u s e r sa n dl o gm a n a g e m e n t,t r a n s a c t i o nm a n a g e m e n ta n d5 0o n,a n dh a sf e a t u r e so fi n s t a n ta n ds a f e t y T h i ss y s t e mU S e Sc o m p o s i t e
10、s t r u c t u r eo ft h r e e-t i e rC Sa n dP 2 Pc o m m u n i-c a t i o nm o d e lt od e s i g ns y s t e ma r c h i t e c t u r e,u s e so v e r l a p p e dI Om o d e lt oi m p l e m e n t a t i o ns e r v e r Sp a r a l l e lp r o c e s s i n g,u s e sA D Oi n t e r f a c et oa c c e s st oS Q L
11、S e r v e rd a t a b a s et od e s i g nd a t am a n a g e m e n tm o d u l e,U S e Se n c r y p t i o na l g o r i t h mb a s e do nF e i s t e ls t r u c t u r et oi m p l e m e n t a t i o nd a t at r a n s m i s s i o na n ds t o r a g e,a n dd e s i g nt h es a f e t yo fk e yt r a n s m i s s
12、i o na n dk e ym a n a g e m e n tm e c h a n i s mc o m b i n a t i o no f f e a t u r e so f t h es y s t e m K e y w o r d s:I n s t a n tM e s s a g i n gI n f o r m a t i o nS e c u r i t yD a t aE n e r y p t i o nT C P,I P西安电子科技大学创新性声明秉承学校严谨的学风和优良的科学道德,本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研究成果。尽我所知
13、,除了文中特另t I D N 以标注和致谢中所罗列的内容以外,论文中不包含其他人已经发表或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。申请学位论文与资料若有不实之处,本人承担一切的法律责任。本人签名:鎏蚴目期怂Z 兰:堑西安电子科技大学关于论文使用授权的说明本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布论文的全部或部分内容,可以允
14、许采用影印、缩印或其它复制手段保存论文。同时本人保证,毕业后结合学位论文研究课题再撰写的文章一律署名单位为西安电子科技大学。本人签名导师签名日期塑Z 2:丛日期2 旦显:叁:垒P第一章绪论第一章绪论1 1 即时通信系统基本概念随着网络通信技术的进一步发展和互联网的普及,从8 0 年代后期,尤其是9 0年代至今,基于T C P I P 协议的即时通信系统获得了更为广阔的发展空间。尤其是移动互联网的发展,标志着以“联网、易用、时尚”为特征的后P C 时代的到来,以“社区”、“内容”、“商务”为主要特征的网络即时通信,最大程度的体现了网络给人们生活带来的变化,使得人们的沟通更加方便、快捷。1 1 1
15、 即时通信的概念及特点即时通信(I n s t a n tM e s s a g i n g,缩写为I M),是以I n t e m e t 网络及其它有线、无线网络为基础,实现交互双方文字、文件、语音等信息实时传送的通信过程“。技术原理如图1 1 所示。图1 1 即时通信系统原理图即时通信系统的最大特点就是能在网上进行信息的实时交流。与传统的通信方式相比,即时通信具有快捷、廉价、隐蔽性等特点,在网络上可以跨年龄、身份、行业、地域的限制,达到人与人之间的零距离交流 2 1。1 1 2 安全即时通信作为未来的主流办公工具,即时通信系统集成了多种先进的信息沟通方式。作为一种通信平台,它比邮件更快捷
16、、更具亲和力和交互性,相比手机具有可记录性、费用低、数据形式多样等优点,支持文本、语音、图画、视频等各种数据的通信,特别是能与电子邮件、手机(电话)以及其它企业应用办公程序结合使用,成功打造现代办公的新平 3 1。2基于T C P I P 协议的安全即时通信系统设计与实现安全即时通信系统是在原有系统的基础上采用信息加密技术,增加数据通信和存储管理过程中的安全保密性,为企事业单位提供信息安全保障,这也是即时通信领域新的发展方向。面对新的社会经济发展形势,研发新型的安全即时通信系统将成为信息化产业的新趋势,成为即时通信领域新的发展空问。1 2 即时通信系统的发展历程1 9 9 6 年以色列M i
17、r a b i l i s 公司推出了世界上第一个即时通信软件I C Q,是英文“IS e e kY o u”的简称,即时通信的技术和功能开始基本成型【l】。在接下来的几年里,即时通信凭借其实时在线交互的特性迅速风靡全球。在中国从1 9 9 9 年腾讯推出Q Q 算起,即时通信在中国的发展已有8 年左右的时间,经历萌芽阶段后目前已经进入了快速发展阶段。目前针对个人用户的即时通信产品主要有腾讯Q Q、微软M S N、网易泡泡、新浪U C、I C Q、雅虎通、搜狐搜Q、I M U 和T O M S k y p e 等。即时通信产品顺应了互联网信息传播方式的发展方向,正在逐渐成为个人信息和应用门户。
18、随着即时通信的普及,即时通信软件已不仅仅用于娱乐和聊天,更体现了卓越的商务通信功能。即时通信作为一种更加便捷、有效的交流平台,在企事业单位中得到了广泛的应用。应用于企事业单位的即时通信系统已经使即时通信从简单的纯文本通信方式发展为可集成利用率较高的多种信息沟通方式,包括即时信息、语音、视频通信和文件传输等等 4 1。它以高效、低成本和灵活便捷等特点被越来越多的办公单位所接受,即时通信将会成为下一个电子商务渠道,并将成为推动电子商务发展的重要力量。但公共的即时通信系统普遍存在着安全漏洞。随着其使用范围的日益扩大,这些漏洞被黑客和病毒利用的危险性也随之增大【5 l。即时通信的黑客攻击行为给企事业单
19、位造成了不同程度的危害,轻则造成经济损失,重则导致企业整个系统瘫痪。此外,即时通信传递的信息往往没有采取保密措施,使得通信信息很容易被截获或窃取【6】。这种泄密的可能性给一些特殊行业如金融,证券行业构成了巨大的商业安全威胁,而这些行业却又是即时通信最适宜推广的行业1 3 课题研究目的和意义在加快企业和社会信息化进程的同时,即时通信也带来了许多网络安全问题,因此需要在即时通信系统中引入安全可靠的信息管理技术,采用数据加密技术使数据以密文的方式传输和存储,并对操作者进行身份验证和权限管理,以完善即时通信系统的安全机制。此外,还应让管理员对系统的操作进行日志管理,尽可第一章绪论能降低外部攻击者对信息
20、篡改、窃取的几率。本课题的研究目的是在W i n d o w s2 0 0 0 X P 系统上开发基于T C P I P 协议的安全即时通信系统。该系统具有即时通信、信息安全、用户群特定等特点,用户可以自主管理服务器的运行状态,并监视和控制系统的运行过程。该系统为用户提供了文本通信、文件传输、资源共享、用户分组、用户和日志管理、消息存储等功能,采用信息加密技术对通信内容加密后再传输,提高了数据传输的安全性。新型安全即时通信系统将在原有系统的基础上保证数据通信的即时性以及通信过程和信息存储的安全性,为企事业单位内部员工提供了更方便的办公通信平台。该系统可以增强团队的信息共享和沟通能力,提高工作效
21、率,改进管理方式并降低经营成本,有力推动了各企事业单位的信息化建设。由此可见,新型的安全即时通信系统只有更好的兼顾即时性和安全性,才能趋利避害,为企事业单位创造出更大的价值。1 4 本课题研究的主要工作在广泛研究公共即时通信系统存在的漏洞和缺陷的基础上,本课题按照软件工程思想,采用面向对象程序设计方法在W i n d o w s2 0 0 0 X P 操作系统上设计并实现了基于T C P F I P 协议的安全即时通信系统。本课题的主要研究内容有:1)系统框架和工作流程设计;2)网络通信模块实现;3,数据存储与管理;4)系统和信息安全架构和数据加密技术;5)友好用户界面设计。4基于T C P
22、I P 协议的安全即时通信系统设计与实现第二章系统程序设计思想和方法该安全即时通信系统是在客户端服务器程序设计范式基础上按照软件工程设计思想,采用大量的计算机程序设计技术和网络通信技术设计并实现的。本章将介绍主流的网络通信模型、网络通信技术、密码学相关知识和程序设计主要采用的W i n d o w s 编程技术。2 1 1C S 模型2 1 主流的网络通信模型C S(C l i e n t S e r v e r,客户服务器)模型,该模型可以合理利用两端硬件环境优势,将任务合理分配到客户端和服务器,降低系统通信开销【7 1。在这种结的中,服务器处于系统的中心地位。服务器是一个拥有强大处理能力和
23、很大受宽的高性能计算机,数据和信息都保存在服务器上。服务器始终处于工作状念,它被动地接受客户连接,根据客户的请求提供相应的服务。体系结构如图2 1 所示。C la e n tC h e n!图2 iC S 模型体系结构图C S 结构可分为传统的两层结构和新型的三层结构。二层结构出现在2 0世纪8 0 年代后期。在这种结构中,服务器只负责各种数据的处理和维护,为各个客户机应用程序管理数据;客户机中有文档处理软件、决策支持工具、数据查询等应用逻辑程序,采用S Q L 语句发送请求和分析从服务器接收的数掘。这是一种“胖客户机(F a t C l i e n t)”、“瘦服务器(T h i nS e
24、r v e r)”的网络结第二章系统程序设计思想和方法构模式。其软件模型如图2 2 所示。用户应用逻辑l s Q L 语言数据库服务界面器客户机l服务器图2 2 两层C S 体系结构图随着其应用范围的不断扩大,两层结构带来的系统可靠性低、缺乏灵活性、资源浪费严重以及维护费用较高等问题日益明显,网络计算模式逐渐从两层模式扩展到三层模式。在三层结构中,应用逻辑程序从客户机上分离出来,进而发展为应用服务器或W e b 服务器。这是一种“瘦客户机”网络结构模式,客户端只有界面显示程序,只需在服务器端随机增加应用服务即可满足系统的需要,可以用较少的资源建立起具有很强伸缩性的系统,这也是当前I n t e
25、 m e t 上最先进的技术之一。其软件模型如图2 3 所示。r。“”“。一r。一i 用户界面 自定义协议阿厂2 1 2B S 模型图2 3 三层C S 体系结构图B S(B r o w s e r S e r v e r,浏览器朋匣务器)模型,是随着I n t e m e t 技术的兴起,对C S 结构的一种变化和改进的结构。该结构使用浏览器通过H T T P 协议访问W e b 服务器。B S 三层结构如图2 4 所示。图2 4B S 三层结构的示意幽在B S 三层结构中,数据库服务器(D BS e r v e r)使用关系数据库存储系统中所有的数据,W e bS e r v e r 处理
26、客户端的请求。客户端使用浏览器访问W e b6基于T C P I P 协议的安全即时通信系统设计与实现S e r v e r,功能更加简单,它只显示数据和提供用户输入界面的功能。绝大多数的计算都在W e bS e r v e r 上。这种“瘦客户”的思想非常适于系统部署。2 1 3P 2 P 模型P 2 P(P e e rt oP e e r,对等连接或对等网络)模型,是指网络中的物理节点在逻辑上以相同的地位进行通信的模型,而不是处理能力的对掣”。相对于传统的集中式C S 模型,其弱化了服务器的概念,系统中的各个节点不再区分服务器和客户端的角色关系,每个节点既可请求服务,也可提供服务,节点之间
27、可以直接交换资源和服务而不必通过服务器p I。P 2 P 的最大特点就是用户之间直接共享资源。使得P C 不再是被动的客户端,而成为具有服务器和客户端双重特征的设备。目前P 2 P 的构架手段主要有集中目录式P 2 P、纯P 2 P 和混合P 2 P 模式三种,如图2 5 从左至右所示。图2,5P 2 P 模型的三种模式集中目录式P 2 P 是最早出现的P 2 P 应用模式,也称为非纯粹的P 2 P 结构,仍然具有中心化的特点,用于共享M P 3 音乐文件的N a p s t e r 是最典型的代表。在这种模型中所有的节点都和中心目录服务器建立连接,中心目录服务器负责所有节点的内容,当节点发出
28、请求时,中心目录服务器会根据节点的请求找出符合该节点要求的节点,然后文件交换就直接在这两个节点之间进行。纯P 2 P 模型完全没有了索引的概念,资源随机地分布在系统中所有的节点中,每个节点的请求都会广播给所有和它直接相连的节点,如果这些节点中部没有所请求的文件,这些节点会把这个请求继续广播给所有和他们直接相连的节点,直到找到所请求的文件或者广播的次数超过了某个值。混合式P 2 P 吸取了中心化P 2 P 和纯P 2 P 的优点,选择性能(处理、存储、带宽等方面)较高的节点作为超级节点,在各个超级节点上存储了系统中其他部分结点的信息。混合式P 2 P 中,搜索数据包仅在超级节点之删转发,由超缴节
29、点将搜索请求转发给适当的叶子节点。第二章系统程序设计思想和方法72 2 1O S!模型2 2T c P I P 协议和O S I 模型O S I(O p e nS y s t e m sI n t e r c o n n e c t i o n),即开放式通信系统互联参考模型,是国际标准化组织(I S O)提出的一个试图使各种计算机在世界范围内互连为网络的标准框架。O S I 定义了开放系统的层次结构、层次之间的相互关系以及各层所包括的可能的任务,它本身并不是一个标准,而是一个在制定标准时使用的概念性框架,是作为一个框架来协调和组织各层所提供的服务的I”l。O S I模型由7 个层组成,每一层
30、都处理特定的通信任务。如图2 6 所示。广=对筹协议蝮工屋2 厂=一对筹协议上箍亘屋2 对等协议照i 屋2 一对筹协议-(_ 麓生屋对筹协议上箍羔屋2 一对等协议上笈互屋2 一对答协议上策J 屋2 图2 6 0 S I 模型分层图在单台机器中,每一层通过两层间的层间接口调用下一层的服务,取出对该层有意义的数据;机器之间则是使用某个给定层的协议的对等进程进行通信1。这种通信由一些协议来控制,协议就是实现双方都同意的一组规则和约定。对等进程是指每一个机器的某个给定层上进行通信的进程。2 2 2T C P I P 协议T C P I P(T r a n s m i s s i o nC o n t
31、r o lP r o t o c o l I n t e m e tP r o t o c 0 1),即传输控制协议互联网络协议,是美国的国防部高级计划研究局D A R P A 为实现A R P A N E T(后来发展为I n t e m e t)互连网而开发的。该协议是I n t e m e t 国际互联网络的基础和事实上的标准,其规范了网络上的所有通信设备,尤其是两台主机之问的数据往来格式以及传送方式【屹】。T C P I P 协议由应用层、传输层(T C P)、网络层(I P)和数据链路层(包括物理层)四层组成,与O S I 模型的对应关系如图2 7 所示。蒜噩鬻蒜鬻蒸蒺8基于T C
32、P f l P 协议的安全即时通信系统设计与实现图2 7T C P I P 和O S I 模型的关系在物理和数据链路层中T C P I P 并没有定义任何特定的协议,它支持所有标准的和专用的协议。网络层提供主机到主机的通信服务,负责将分组从发送主机送到接收主机。网络层通过选路算法和协议为分组选择通过通信子网最适当的路径,并通过路由器的将数据报从源主机转发到目的地主机。传输层的作用是将两个端系统问的I P 交付服务扩展为运行在两个端系统上的进程之间的交付服务,提供进程逻辑通信功制”】。传输层协议是在端系统而不是在路由器中实现的,其中包括U D P 和T C P。应用层为不同的端系统提供通过计算机
33、网络交换报文互相通信的功能。应用层协议定义了进程间交换的报文格式和顺序,以及传输和接收到报文时采取的动作,其中包括交换的报文类型、报文类型的语法、字段的语义、报文响应规则等【1 4】。2 2 3 套接字W i n S o c k 是一套开放的、支持多种协议的W i n d o w s 网络编程接口,是W i n d o w s 网络编程事实上的标准。应用程序通过W i n S o c kA P I 设计通信程序,W i n S o c k 利用网络通信协议和操作系统调用完成实际的通信工作。1)套接字基本概念套接字(s o c k e t)是内核对象中的一种通信结构,它提供网络进程f H J 的
34、数据通信功能。形象上说套接字就是进程的门户【”J。套接字地址是套接字通信结构的描述和定义。套接字描述符就是一个整数类型的值,在W i n d o w s 中的类型是S O C K E T。套接字描述符实质是某套接字内核对象的一个“句柄”,套接字描述符所在的进程则通过该“句柄”访问和操作该套接字。每个进程的进程空间里都有一个套接字描述符表,该表中存放着套接字第二章系统程序设计思想和方法9描述符和套接字数据结构的对应关系。该表中有一个字段存放新创建的套接字的描述符,另一个字段存放套接字数据结构的地址。因此根据套接字描述符就可以找到其对应的套接字数据结构。每个进程在自己的进程空间里都有一个套接字描述
35、符表,但是套接字数据结构都是在操作系统的内核缓冲里,可供多个进程使用。2)套接字通信模式和I O 模式W i n d o w s 套接字执行I 0 操作可以设定为锁定或非锁定模式。在锁定模式下,在I 0 操作完成前执行操作的W i n s o e k 函数(如s e n d 和r e c v)会一直等待下去,而不会返回并将控制权交给程序。在非锁定模式下无论结果如何,W i n s o c k 函数的调用都会立即返回。因此,这种套接字需要选择一种I O 模型来帮助应用程序判断一个套接字何时可供读写。W i n d o w s 操作系统提供了五种套接字I 0 模型,分别为选择(S e l e c
36、O、异步消息(W S A A s y n c S e l e c t)、事件通J 1 1 (W S A E v e n t S e l e c t)、重叠I O(O v e r l a p p e di o)和完成端口(C o m p l e t i o nP o r t)模型【1 6】【l”。S e l e c t 模型是W i n s o c k 中最常见的I 0 模型。通过调用S e l e c t 函数可确定一个或多个套接字的状态,判断套接字上是否存在数据,或者能否向一个套接字写入数据。它既能防止应用程序在套接字处于阻塞模式时,在一次I 0 操作后被阻塞,同时也防止在套接字处于非锁定模
37、式时,产生W S A E W O U L D B L O C K 错误,提示请求的操作在调用期间没有时间完成。W S A A s y n c s e l e c t 模型也是一个常用的异步I O 模型。利用这个模型,应用程序可在一个套接字上接受以W i n d o w s 消息为基础的网络事件通知。该模型的实现方法是通过调用w s A A s y n c S e l e c t 函数自动将套接字设置为非阻塞模式,并向W i n s o c kD L L 注册一个或多个感兴趣的网络事件,并提供一个通知时使用的窗口句柄,当网络事件发生时,对应的窗口将收到一个基于消息的通知。W S A E v e
38、n t S e l e c t 模型是W i n s o c k 提供的另一个有用的异步I O 模型,它允许应用程序在一个或多个套接字上,接收以事件为基础的网络事件通知。该模型的关键是网络事件会被发送到一个事件句柄,而不是发送到一个窗口。O v e r l a p p e dI 0 模型可以使应用程序达到更佳的性能。它的基本原理是让应用程序使用一个重叠的数据结构,一次投递一个或多个W i n s o c kI 0 请求,针对那些提交的请求,在它们完成之后,应用程序可为他们提供服务C o m p l e t i o nP o r t 模型是迄今为止最为复杂的一种I O 模型。假如要为W i n
39、d o w sN T 或W i n d o w s2 0 0 0 开发高性能的服务器应用,希望同时为数百乃至上千个套接字I,O 请求提供服务(如W e b 服务器),那么I 0 完成端口模型便是最佳选择,其可以达到最佳的系统性能。随着系统内安装的C P U 数量的l o基于T C P I P 协议的安全即时通信系统设计与实现增多,应用程序的性能也可以线性提升3)I O 模型的选择和性能提高开发服务器应用时,一般需要同时管理多个套接字,因此采取重叠I 0 模型是比较符合需求的;若需要同时管理成百上千的套接字,则需要考虑采用完成端D 模型,以获得更好的性能【1 6 1。开发客户机应用时,一般只需同
40、时管理一个或几个套接字,采用事件通知模型即可。若开发的是基于W i n d o w s 窗口例程的程序,那么采用异步消息模型应该是更好的选择,该程序已经具备了处理消息的能力。2 3 密码学相关知识2 3 1 对称密钥密码体制和非对称密钥密码体制根据密钥的特点,密码体制可分为对称密钥密码体制和非对称密钥密码体制。对称密码体制是用一个长度合理(如6 4 比特)的密钥生成一个一一对应的映射关系,对于不知道密钥的人来说,这种映射关系看起来是随机的。根据其加解密运算的特点,对称密码又可分为流密码和分组密码,流密码有A 5、R C 4 等,分组密码有D E S、A E S、I D E A 等。非对称密码体
41、制又称公开密钥密码体制,利用一对互相匹配的密钥(一个是秘密的,一个是公开的)进行加解密。目前的公开密码算法中,R S A 和E C C 用于加密和数字签名,E L G a m a l 和D S S 用于数字签名,D i f i l e H e l l m a n 则用于密钥协商。对称密码体制和非对称加密体制各有优劣,其对比如表2 1 所示。表2 1 对称与非对称加密体制性能比较特性对称密码体制非对称加密体制密钥关系加密与解密密钥相同加密与解密密钥不同密钥管理困难容易私密钥的传递必要不必要加密速度非常快慢数字签名困难容易主要用途广泛地应用与大量数据的加密小文件加密、数字签名及密钥管理分组密码每次
42、加密的明文数据量是固定的,而实际待加密的信息是较长和不确定的,不同的应用环境需要对分组密码的加密方式做一些变动以增强密码的安全性和适应性。分组密码有如下四种工作模式【1 8】:电码本(E C B,E l e c t r o n i cC o d eB o o k)模式最简单,直接使用分组密码算法的工作模式,可以独立操作每个明(密)文组,但易受重放攻击,一般用于对数据库或密钥加第二章系统程序设计思想和方法密:密文分组链接(c a c,C i p h e rB l o c kC h a i n i n g)模式较E C B 慢,但安全性得到加强,且当有少量传输错误时不致造成同步问题,软件加密最好选
43、用此种模式;输出反馈(O F B,O u t p u tf e e d b a c k)模式在字符为单位的加密中选用较多,如终端-主机或客户端-网络服务器之间的会话加密;密文反馈(c F B,C i p h e rF e e d b a c k)模式用于高度同步的、不容差错传播的系统,如卫星通信中的加密。2 3 2 数字签名技术数字签名建立在公开密码体制的基础上,并通过单向H a s h 函数和公钥算法共同实现。它可以防止他人对传输的文件进行破坏并可确定发送方的身份,以实现对原始报文的鉴别和不可抵赖性。数字签名有两种:一种是对整体消息的签名,它是消息经过密码变换的被签消息整体;一种是对压缩消息
44、的签名,它是附加在被签名消息之后或某一特定位置上的一段签名图样。目前应用广泛的数字签名方法主要有三种:R S A 签名、D S S 签名和H a s h 签名,三种算法可单独使用,也可结合在一起使用【18 1。数字签名的算法都用到了H a s h 函数。H a s h 函数也称杂凑函数或杂凑算法,是一种将任意长度的消息压缩为某一固定长度的消息摘要的函数,它可以提高数字签名的速度,并且不泄露所对应的消息,并对消息的签名变换和加密变换可以分开处理。2 3 3 密钥管理和密钥分配密钥管理是处理密钥自生成到最终销毁的整个过程中的有关问题,包括系统的初始化,密钥的产生、装入、分配、存储、使用、传送、销毁
45、等内容,目的是维持系统各实体之间的密钥关系,以抗击各种可能的威胁,密钥管理要借助于加密、认证、签名、协议等技术,常常依靠可信赖第三方的参与。密钥分配是密码系统中密钥传输与分发的问题,目的是在不让其他人看到密钥的情况下将密钥分配给希望交换数据的双方。这意味着协议必须做到欲共享密钥的双方须被认证,密钥在传输过程中须被加密,可以采用单钥、双钥技术实现,这也要借助于可信赖第三方的参与l l9 1。目酶的密钥分配协议有:D i f i l e H e l l m a n 密钥交换方案、K e r b o r o s 协议等。(1)P K I 概念及组成P K I P u b l i cK e yI n
46、f r a s t r u c t u r e,即公开密钥基础设施,是以公钥加密为基1 2基于T C P I P 协议的安全即时通信系统设计与实现础,创建、管理、存储、分发和撤消证书所需的一组硬件、软件、人、策略和过程。换句话说,P K I 是一个用公钥的概念与技术来实现,并提供安全服务的具有普适性的安全基础设施【1 9】。它必须有:透明性、易用性、可扩展性、互操作性、多用性、支持多线程等性能要求。一般P K I 由以下几部分组成:认证机构(c A)、证书库、证书撤消、密钥备份及恢复,自动密钥更新、密钥文档管理、交叉认证等。其中C A 中心为每个使用公钥的用户发放一个数字证书,证明证书中列出的
47、用户名称与证书中列出的公开密钥相对应。C A 允许管理员撤消发送的数字证书,在证书注销列表(C R L)中添加新项并周期性地发布具有数字签名的C R L。(2)X 5 0 9目前涉及P K I 技术的国际标准已经得到I T 技术界的公认,最重要的标准之一就是X 5 0 9(数字证书封装格式),X 5 0 9 标准定义了数字证书结构、格式与字段,还指定了发布公钥过程。其中X 5 0 9v 3 证书格式如图2 8 所示,每个证书包含3 个主要字段:证书正文、签名算法和签名本身。版本号、序列号发行者证书正文主题主题密钥(算法、密钥)有效期限可选扩展签名算法签名证书正文图2 8 X 5 0 9 证书格
48、式(3)P K C SP K C S(P u b l i cK e yC r y p t o g r a p h yS t a n d a r d s),即公钥加密标准,是由美国R S A 数据安全公司及其合作伙伴制定的一组公钥密码学标准,其中包括证书申请、证书更新、证书作废表发布、扩展证书内容以及数字签名、数字信封的格式等方面的一系列相关协议 2 0 l。目前已公布的标准有P K C S#1P K C S#1 5,下面重点介绍一下P K C S#1 l。P K C S#1 l,即加密令牌接口标准,它指定用智能卡之类硬件令牌进行的操作。智能卡中可以直接进行各种加密操作,如密钥生成、加密和数字签
49、名。用户的数字证书和私钥也存放在卡中,私钥不会向外部应用程序暴露,也不能从智能卡复制到其他地方。第二章系统程序设计思想和方法2 4 1 多线程技术2 4 程序采用的主要技术线程由线程的内核对象和线程堆栈两部分组成。操作系统通过内核对象对线程实施管理,其中存放了系统关于线程的统计信息。线程堆栈用于维护线程在执行代码时需要的所有函数参数和局部变量【2 1 1。线程只有一个内核对象和一个堆栈,保留的记录很少,也只需很少的内存,因此创建线程的开销远比创建进程少。在实际编程过程中应根据实际情况设法通过增加线程来解决编程问题,而要尽量避免创建新的进程。线程分为两种:用户接口线程和辅助线程。用户接口线程常用
50、于接收用户的输入,处理相应的事件和消息。辅助线程编程较为简单,一个基本函数代表一个线程,仓0 建并启动线程后,则线程进入运行状态。进程的主线程在任何时候都可以创建新的线程,当线程执行完成任务后,自动中止线程:当进程结束后,所有的线程都中止【2 2 J。所有活动的线程共享进程的资源。2 4 2 动态链接库动态链接库(D L L,D y n a m i cL i n k a b l eL i b r a r y)是一个可执行的包含一组源代码的模块,每个模块包含了应用程序(可执行文件)或另一个动态链接库将要调用的一组函数。当所有源代码文件编译后,它们就可以被应用程序的链接程序所链接1 2“。采取不同