必过毕业设计安全网络即时通信软件的设计与实现文档格式.docx
《必过毕业设计安全网络即时通信软件的设计与实现文档格式.docx》由会员分享,可在线阅读,更多相关《必过毕业设计安全网络即时通信软件的设计与实现文档格式.docx(41页珍藏版)》请在冰豆网上搜索。
年月日
摘要
随着计算机网络技术突飞猛进的发展,即时通信已成为目前互联网上最为流行的通信方式,深受广大网民的喜爱。
无论是国内的腾讯QQ还是微软的MSNMessenger,都拥有相当大的用户群。
即时通信软件给人们带来了极大的便利,使人们可以随时随地地和亲朋好友进行在线交流和沟通,它拉近了人与人之间的距离,丰富了人们的精神生活,正逐渐成为人们生活和工作中不可或缺的一部分。
虽然即时通信软件层出不穷,但是大部分免费的即时通信软件都缺少数据加密功能,存在着不容忽视的网络安全隐患。
本课题将利用现有的网络通信技术、数据库技术和信息安全技术,设计并实现一个新的安全网络即时通信系统。
它在原有的即时通信系统的基础上,使用DES加密算法对通信内容进行加密和解密,保证了数据通信的及时性和安全性,为人们提供了更加安全可靠的即时通信平台。
本系统采用三层C/S和P2P通信模型混合结构设计系统构架,在.NET开发环境下,使用C#语言进行开发,数据库采用了SQLServer2000。
该即时通信软件具备的主要功能包括用户帐号申请、用户登录、添加好友、文字聊天、文件传输等。
本系统使用便捷,用户界面很有人性化,安全保密设置齐全,具有一定的使用价值。
关键词:
即时通信、信息安全、DES算法、便捷
ABSTRACT
Alongwiththefastdevelopmentofthecomputernetworkingtechnology,instantcommunicationhasbecomethemostpopularcommunicationmeansontheInternet,anditisfavoredbythemajorityofInternetusers.WhetherdomestictencentQQorMicrosoft'
sMSNMessenger,hasconsiderableusergroup.Instantcommunicationsoftwarehasbroughtpeoplegreatconveniencethatpeoplecancommunicatewithrelativesandfriendsonlinewheneverandwhereverpossible.Itcutsdownthedistancebetweenpeopleandpeopleandenrichpeople'
sspirituallife,anditisbecominganindispensablepartofpeople’slifeandwork.
Althoughinstantcommunicationsoftwareemergesendlessly,butmostfreeinstantcommunicationsoftwarelacksdataencryptionfunctions,sothatitexiststhenetworkingdangerhiddenwhichcan’tbeignored.Thissubjectwillusetheexistingnetworkcommunicationtechnology,databasetechnologyandinformationsecuritytechnologytodesignandimplementanewsafetynetworkinginstantcommunicationsystem.Basingitselfontheoldinstantcommunicationsystem,itusesDESencryptionalgorithmtoencryptanddecryptthecommunicationcontent,toensuretimelinessandsecurityofthedatacommunication,sothatitprovidespeoplewithamoresecureandreliableinstantcommunicationplatform.
Thesystemusesthethree-layerC/SandP2Pcommunicationmodelcompositestructuretodesignsystemarchitecture,anduseC#languagetodevelopmentsystemin.NETframeworkdevelopmentenvironment.ThedatabaseusesSQLServer2000.Theinstantcommunicationsoftware’smainfuntionsincludeusers’accountapplication,users’logining,addingfriends,wordagechatting,filetransferring,etc.Thesystemusesconveniently,andhasahommizationuserinterface,andsecuritysettingiscomplete,sothatithasacertainvalue.
Keywords:
InstantCommunication;
InformationSecurity;
DESAlgorithm;
Convenient
1引言
1.1课题背景及选题意义
随着计算机网络的不断发展,全世界的人们被紧密地联系在了一起。
方便快捷是互联网具有的一大优点,因此人与人之间的交流也更多地在互联网上进行。
在这样的时代背景下,以简便、交互、快速为代表的即时通信软件应运而生。
即时通信(InstantMessenger,简称IM)是一个终端连往一个即时通信网路的服务。
很多即时通信服务具有presenceawareness的特性──显示好友的名单、好友是否在线与是否可以和好友进行通信等。
以往网民通常会把即时通信看成是一个在网络上寻找朋友并可以与之进行交流的聊天工具。
但是随着即时通信软件的功能和应用的不断丰富和完善,它使得用户可以在互联网上尽情地交谈,包括文字聊天和文件传输等,它已经逐渐演变成一个综合的桌面通信平台。
即时通信软件以飞快的速度改变着人们的生活方式,无论从娱乐角度还是从商务角度来看,它在国内外已经成为了一种极具价值的通信工具,发挥着举足轻重的作用,将成为人们在网络生活中不可或缺的一部分。
如今即时通信软件已成为信息传递最为广泛的应用工具之一,在因特网上比较受欢迎的即时通信服务有MSNMessenger、AOLInstantMessenger、Yahoo!
Messenger、NETMessengerService、Jabber、ICQ与QQ等。
即时通信之所以深受人们的青睐,就在于它人性化的设计让每个用户都可以得心应手地使用该软件,让用户在第一时间内得到信息的交流,在沟通中给用户带来了极大的满足。
随着移动和互联网越来越深入地走进生活,人们渴望在任何时间、任何地点将尽可能多的通信工具融合在互联网同一个沟通环境下,实现各种通信工具的互补和整合。
它让网上的好友可以身临其境地进行面对面的聊天,使彼此之间有更加深入的了解。
人们不再局限于单一的网上或网下的沟通,而是希望通过跨平台、多终端的通信技术来实现一种集声音、文字、图像的低成本、高效率的通信服务。
互联网的出现连通了整个世界,而即时通信软件的出现则进一步拉近了互联网上的每一位用户的距离。
因此,即时通信软件深受人们的喜欢。
目前大多数的即时通信软件在设计的时候都考虑了可扩展性,但却没有充分地考虑安全问题。
几乎所有免费的在线即时通信软件都缺乏加密功能,其中大多数都具备绕过传统的企业防火墙的功能,为网络管理带来了很大的困难,这是一个很普遍的现象。
为了保证通信内容的保密性,我们很有必要采用一定的数据加密算法对通信内容进行加密。
1.2国内外研究与应用情况
ICQ是最早应用于互联网的即时通信软件,只经过短短几年的发展,它在行业内的地位已是无人可以撼动。
最初的ICQ只有用户列表和即时聊天两个特性,但是一经推出就受到了广大网民的喜爱,6个月内其注册用户迅速攀升至85万,1998年它的用户数量更是翻了10数倍,达到了1200万人。
ICQ的迅猛发展也令当时的互联网领头羊Yahoo和在桌面软件领域独树一帜的微软找到了商机,它们分别推出了YahooMessenger、MSNMessenger和昙花一现的MSChat。
MSN是微软公司提供的internet服务,始终致力于发掘用户的潜能,帮助他们与所关心的人及信息紧密相连──无论是基于手机、PDA等移动智能终端,还是应用PC、家庭媒体中心及其它信息家电,用户都可以自在遨游于网络世界,畅享全天候、全方位的互动与沟通。
它们改变了整个互联网的交流,使之变得更加及时和方便。
它深受商务人士的喜欢。
当ICQ风靡一时的时候,在国内也纷纷推出了各种仿ICQ的即时通信软件,有腾讯QQ、新浪UC、网易泡泡等。
腾讯无疑是国内即时通信市场的霸主,自从99年进入即时通信领域并迅速占领市场之后,其在国内用户数量始终高居榜首,即使近几年面对微软MSN的强大攻势,腾讯QQ的市场占有率依然稳步增长。
腾讯的成功与其对QQ的不断创新和完善是分不开的。
从某种程度上说,腾讯QQ代表了国内即时通信最高的水平。
由于我国有着网络应用最大的市场,现在国内网络的基础性建设发展迅速,应用软件也层出不穷,其中在游戏的领域中,网络通信服务就做得不错。
随着即时通信应用的不断完善,其功能早已不仅仅是早期的即时文字聊天。
图像表情已成为各种即时通信软件的标准功能,文件传输、网上交友、语音/视频聊天、游戏等高级功能也逐渐地被集成到即时通信的应用中。
从中可以看出,眼下的即时通信已不再是一个简单的沟通工具,而是一个信息资讯、交流互动、休闲娱乐中心,它一直在努力地推出各种新应用。
目前即时通信软件已越来越成熟,已成为现代人工作和生活中不可或缺的一部份,相信今后即时通信软件会越来越完善。
1.3研究目的
目前各种即时通信软件基本随处可见,功能也日趋完善。
但是很大一部分即时通信软件缺乏数据加密功能,这给即时通信带来了不可忽视的网络安全问题,保密的通信内容随时可能被他人窃取,引发不必要的麻烦。
因此本课题研究的目的是设计实现一个界面美观的仿QQ的聊天工具,采用winsock实现点对点文字通信,并采用可靠的加密算法对通信内容进行加密。
该即时通信软件应具有以下功能:
用户注册登录功能,个性化的界面给人以舒适的感觉,必要的操作提示方便用户使用;
添加好友功能,以消息窗口传达添加好友的请求以及回馈消息;
加密通信功能,和好友进行文字聊天、文件传输等。
由于DES加密算法处理速度比较快,且适合对大量数据进行加密处理,因此选用DES加密算法对通信内容进行加密和解密,以确保即时通信的安全性。
2系统需求分析
需求分析是安全网络即时通信软件开发的第一步也是至关重要的一步,它描述了系统的需求,通过定义系统中的关键域类来建立模型。
它的根本目的是在开发者和提出问题的人之间建立一种便于理解和沟通的机制。
需求分析可以采用面向对象的方法来完成,即明确系统要服务于哪些用户,对这些用户提供哪些服务等,特别是数据流图是需求分析的出发点,数据流图可以划分出系统必须完成的基本功能。
2.1需求分析
如今即时通信软件深受人们的喜爱,是人们生活中不可缺少的一部分。
本课题设计的即时通信软件将模仿眼下国内最流行的聊天工具QQ,需要实现用户注册、用户登录、添加好友、文字聊天、文件传输等功能。
该即时通信软件采用C/S结构,即客户端与服务器端的结构体系,分别对客户端与服务器端进行相应的设计。
用户通过该即时通信软件的客户端来实现以下一些功能:
注册功能用来提交用户的相关资料从而获得一个自己特有的用于登录系统的用户帐号;
登录功能用来建立与服务器的连接,验证用户信息并登录,能显示登录出错信息;
界面显示功能用来显示所有好友的在线状态和个人信息;
添加好友功能用来处理用户之间的好友添加请求,并对添加好友请求做出相应的响应;
加密通信功能用来实现在添加好友成功后,好友之间进行文字聊天、文件传输等加密通信。
该即时通信软件的服务器端用来接收来自客户端的各种信息并分别对之做出相应处理。
服务器通过信息接收功能来接收客户端发送的信息;
注册处理功能是服务器接收到用户的注册请求信息后,自动为用户分配帐号,将用户信息写入数据库,同时将信息返回给客户端;
登录处理功能是服务器通过验证登录信息是否正确来实现相关的处理;
刷新功能是服务器每过一段时间刷新一次,来显示用户当前在服务器的相关信息,如在线状态等;
好友添加处理功能实现服务器将用户的好友信息写入数据库中用户好友表的操作;
用户退出处理功能是服务器在用户退出即时通信软件后,将此用户下线消息发给各客户端,并改写用户在服务器端的状态。
该软件需要一个个性化的界面,方便用户使用。
第一次使用该软件的用户通过填写个人资料来注册,服务器返回一个注册帐号给注册用户,用于以后登录。
已经注册的用户输入帐号和密码后,验证登录信息是否正确,若正确则登录主界面。
在线用户通过查看所要添加好友的个人信息,并且向好友发送添加好友请求信息,好友通过验证后,向请求方发送响应消息,请求方添加完成后,并把相关信息存入到数据库的好友表中。
如果好友双方同时在线,就可以随时进行通信了。
2.2数据流图
数据流图简称DFD图,它描绘信息流和数据从输入移动到输出的过程中所经受的变换,它有源点或终点、处理、数据存储和数据流四种成分。
数据流图只是描绘数据在系统中流动和被处理的逻辑过程,在数据流图中没有任何具体的物理部件,它直观地显示了系统中数据的使用情况,是极好的理解工具。
它精确地描述系统的逻辑模型,描述数据在MIS中由输入经过存储、加工处理最后输出的全过程,是设计者和用户之间进行交流的很好的工具。
表2-1数据流图的符号说明
图形符号
名称
符号说明
实体
描述系统之外的数据提供或数据获得组织机构或个人,框内为实体名称
处理
描述某种业务的手工或计算机处理,其中PM表示处理标号,C表示处理名称
DNS
数据存储
描述与处理有关的数据存储,其中DN表示存储的标号,S表示存储数据的名称
FM
数据流
描述数据流流动方向,其中FM表示数据流的名称
本系统采用自顶向下,逐层细化的方法,绘制的数据流图如下:
用户根据需要使用即时通信系统,即时通信系统根据用户的请求,给出相应的反馈信息。
图2-1顶层数据流图
用户操作客户端,客户端把用户的请求提交给服务器,服务器对客户端的请求信息做出相应处理并对数据库进行相应操作,然后向客户端反馈信息,客户端再向用户反馈操作结果。
图2-2第一层数据流图
用户申请帐号时,用户注册系统向服务器提交用户的个人信息,服务器接收到用户注册系统提交的信息后,在用户表中记录新用户的基本信息,与此同时,用户注册系统向用户返回一个帐号。
用户登录时,用户登录系统把用户的登录信息提交给服务器,服务器在用户表中查找是否存在与用户输入的帐号和密码都一致的用户信息,并给用户登录系统反馈信息,若一致则登录成功进入客户端主窗体,向用户呈现他们想要了解的信息。
用户添加好友时,添加好友系统向服务器提交好友的ID,服务器在用户表中查找是否存在与该ID对应的用户,若存在则向添加好友系统反馈好友的信息。
用户操作加密通信系统,可以和好友进行文字聊天和文件传输。
图2-3第二层数据流图
3系统总体设计
总体设计首先要寻找并设计实现目标系统的各种不同的方案,而设想各种可能方案的基础则是需求分析阶段得到的数据流图。
从这些供选择的方案中选取若干个相对合理的方案,并为每个合理的方案准备一份系统流程图,列出组成系统的所有物理元素。
软件结构设计应该遵循的主要原理是模块独立性原理,即软件应该由一组完全相对独立的子功能的模块组成。
总体设计中模块的划分应该符合高内聚、低耦合的原则。
3.1系统整体架构
该即时通信系统采用C/S模式设计,主要包括客户端、服务器和数据库服务器三层,客户端提供用户注册账号、用户登录、用户添加好友及对方响应、好友之间通信等服务,服务器用来对注册登录的用户进行管理以及对客户端发送的请求信息做出相应处理,数据库服务器存放用户相关的用户表和好友表。
它们之间的关系如图3-1所示:
图3-1三层模型
服务器与客户端之间采用TCP协议进行可靠通信,使服务器可以随时掌控客户端的在线状态和运行情况。
两个要求通信的客户端之间采用UDP协议直接进行通信。
其总体结构如图3-2所示:
图3-2系统总体结构
该即时通信系统包含了用户注册模块、用户登录模块、添加好友模块、加密通信模块、服务器模块、数据库模块等,其系统流程图如图3-3所示:
图3-3系统流程图
该系统有一个简单美观的界面,使用户很明了该如何使用它。
使用该即时通信软件的用户首先得进行帐号申请,在登录窗体上用户单击注册按钮,激活注册窗体,然后填写用户个人相关的注册信息,提交给服务器。
服务器将注册信息提交给数据库,并由服务器按注册顺序生成一个用户ID号并告知注册用户,这样就完成了帐号申请。
以后用户就可以用注册成功的帐号进行登录。
用户在登录窗口输入用户帐号和用户密码,由客户端将登录信息提交给服务器,服务器根据数据库中存储的用户信息与客户端提交的登录信息进行比较,比较一致后,则返回一个登录成功的确认信息给客户端,当客户端收到这个确认信息时,则激活该聊天软件的客户端主窗体。
倘若你想与好友进行聊天,则必须先添加好友,假如用户1想添加用户2为好友,那么用户1首先得向用户2发送添加好友请求,用户2在接收到用户1的请求信息后,通过验证发送确认反馈信息给用户1,与此同时向服务器提交好友添加确认信息,服务器接收消息后就会更新相应用户的好友列表中的相关信息。
在好友添加完成后,用户之间就可以进行加密通信,如文字聊天、文件传输等。
3.2服务器概要设计
服务器需要完成建立连接、监听客户和操作数据库这3个功能。
服务器首先得建立一个Socket连接,通过TcpListener不断侦听是否有客户端连接或者断开连接。
服务器是一个信息发送中心,所有客户端的请求信息都发送到服务器,再由服务器根据要求做出相应处理并发送反馈信息。
后台采用SQLServer2000数据库进行数据存取,数据库的数据操作包括录入用户信息、查找好友资料以及添加好友数据到数据库等。
3.3客户端概要设计
客户端需要完成帐号申请、用户登陆、添加好友以及加密通信这4个功能。
当用户申请帐号时,客户端与服务器建立连接,并向服务器发送新用户的申请信息,接收来自服务器的反馈信息进行注册。
用户登录时先输入帐号和密码,客户端与服务器建立连接,向服务器发送用户的登录信息,服务器在数据库中查找是否有该用户信息,若信息一致,则登陆成功。
添加好友是客户端必须实现的功能,这是用户之间进行聊天的基础。
用户通过客户端可以查看好友的信息,添加好友后会给对方发送消息窗口,等待对方验证。
两个客户端之间通过UDP协议进行直接通信,因而好友之间可以进行文字聊天和文件传输等。
3.4开发环境及开发工具
3.4.1开发环境概述
微软发布了.NET开发平台,这是自1993年7月随着WindowsNT3.0出现的Win32API后微软软件开发平台的第一次大升级。
比起Win16来,Win32提供了更多功能强大的API,但没有对工具和技术进行引人注目的改变。
与之不同的是,.NET开发平台在开发者用以创造应用程序的工具和技术上做了根本的改变。
.NET开发平台使得开发者创建运行在InternetInformationServer(IIS)(互联网信息服务器)Web服务器上的Web应用程序更为容易,它也使创建稳定、可靠而又安全的Windows桌面应用程序更为容易。
.NET开发平台包括以下内容:
(1).NETFramework(架构),包括:
CommonLanguageRuntime(CLR)(通用语言运行环境),这是用于运行和加载应用程序的软件组件;
新的类库,分级组织了开发者可以在他们的应用程序中用来显示图形用户界面、访问数据库和文件以及在Web上通信的代码集。
(2).NET开发者工具,包括:
VisualStudio.NETIntegratedDevelopmentEnvironment(IDE)(VisualStudio.NET集成开发环境),用来开发和测试应用程序。
(3).NET编程语言(例如VisualBasic.NET和新的VisualC#),用来创建运行在CLR下并且使用类库的应用程序。
(4)ASP.NET,一个取代以前的ActiveServerPages(ASP)的特殊类库,用来创建动态的Web内容和Web服务器应用程序,这些都将采用诸如HTML、XML和SimpleObjectAccessProtocol(SOAP)(简单对象访问协议)等Internet协议和数据格式。
.NET开发平台是一组用于建立Web服务器应用程序和Windows桌面应用程序的软件组件,用该平台创建的应用程序在CommonLanguageRuntime(CLR)(通用语言运行环境)(底层)的控制下运行。
CLR是一个软件引擎,用来加载应用程序,确认它们可以没有错误地执行,进行相应的安全许可验证,执行应用程序,然后在运行完成后将它们清除。
类库集提供了使应用程序可以读写XML数据、在Internet上通信、访问数据库等的代码。
所有的类库都建立在一个基础的类库之上,它提供管理使用最为频繁的数据类型(例如数值或文本字符串)的功能,以及诸如文件输入/输出等底层功能。
Web服务器应用程序通常依赖于ASP.NET,一个处理Web请求的服务器端的库。
ASP.NET又依赖一个用于发送和接收SOAP信息的WebServices库,以及一个用于以浏览器接收用户输入并动态地生成Web页面以示响应的Web用户接口(UI)(有时称作Web表单)。
Windows桌面应用程序通过使用Win表单库(也称作Windows表单)可以显示一个图形UI。
最后,VisualStudio.NET提供了一个用于在该平台上创建应用程序的图形IntegratedDevelopmentEnvironment(IDE)(集成开发环境)。
程序员可以使用一种或多种.NET编程语言,来编写他们的代码,例如微软的VisualBasic.NET(VB.NET),VisualC++,VisualC#和JScrjpt.N