欢迎来到天天文库
浏览记录
ID:26809099
大小:52.00 KB
页数:5页
时间:2018-11-29
《基于p2p的安全内联网即时通信系统》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于P2P的安全内联网即时通信系统【摘要】本文描述了一个基于P2P技术的安全内联网即时通信系统的实现技术,企业用户交互数据无需通过外部服务器传输,防止内部数据流入公网,最大限度保�o内部数据安全,提高系统可靠性,满足企业内部可性,安全便捷通信的需求。中国8/vie 【关键词】P2P;NAT穿透;即时通信;行为识别 0引言 当前企业员工间基本都是通过QQ、Skype等常见的商用软件来进行沟通交流。但这些常见的基于C/S模型的即时通信软件过分依赖于中心服务器,所有的数据均需经过外网服务器转发,若服务器或互联网链接出现问题,那么整个通信系统将无法正常工作。另外企业内部工作中的沟通交流会涉及商
2、业机密,如果利用市面上的即时通信软件进行传输,数据可能会以可破解的形式出现在相应软件的服务器上,当服务器遭受攻击,这些机密的数据就会被泄露,且绝大多数的传统即时通信软件采用的都是用户名、密码的登录认证模式,这样的认证方式很容易被攻击,从而带来不可估量的危害。因此,针对目前即时通信软件在企业应用中表现出的种种不足,设计并实现一个企业级的内联网安全通信系统是十分有必要的。 1系统设计方案 本系统分为客户端和服务端两部分,采用P2P与C/S相结合的系统架构。服务端提供用户登录身份验证,状态通知(离线、上线等),信息查询,数据存储管理等功能。客户端实现用户数据的封装、加密和发送,处理来自其他客户
3、端的文件传输请求,实现局域网内客户端之间的快速文件传输,在离线数据传输的过程中,分担服务器负担,处理相应的中转数据。 2具体实现技术 2.1NAT内网穿透 穿透模块是通信的基础模块,系统中的P2P文件传输是网络资源共享的重要方式之一,且只适合两个在线用户之间发起,主动发起用户先发消息给被传用户,对方同意后接收,建立点对点连接。因此要在有NAT设备的环境中实现点对点通信,首先要解决的就是NAT穿透问题。根据NAT类型的探测的结果可以采取不同的穿透方案,在本系统中主要用到的就是UDP打洞和TCP打洞,它们的最终目的是将位于两个不同子网中的两个计算机连接起来。在进行穿透前会进行一个测试,判断
4、当前网络环境是否需要穿透,首先用户A向用户B发送一条测试消息,若A能成功接收用户B的反馈消息则A就可以直接连接B进行通信,否则需要进行NAT穿透。 2.2安全登录认证 传统的即时通信软件用户的密码是由用户自己设定的。在登录系统时输入正确的密码,计算机便认为操作者就是合法用户。实际上,由于许多用户为了防止忘记密码,经常采用诸如生日、电话号码等容易被猜测的字符串作为密码,这样很容易造成密码泄漏。用户名、密码机制虽然在使用和部署上都非简便,但从安全角度来说,并不是是一种安全的身份认证方式。而基于计算机输入行为特征的认证方法,具有行为方式难以模仿,行为方式无需记忆,行为数据量大,行为密码不具有明
5、显的特征等众多优点。所以,在本系统中采用基于鼠标键盘行为方式分析的方法实现系统登录的安全认证。 2.3数据加密 目前主流的加密算法主要有对称加密算法和非对称加密算法。对称加密算法资源消耗较小,但是对称加密算法的密钥需要通过直接复制或网络传输的方式由发送方传给接收方,同时无论加密还是解密都使用同一个密钥,所以密钥的管理和使用很不安全,如果密钥泄露,则此密码系统便被攻破。非对称加密通过公钥进行加密,用私钥进行解密,不需要通过安全通道来传输密钥,且能够公开加密密钥,仅需要保密解密密钥,所以不存在密钥管理问题。但是非对称算法非常复杂,密钥对的生成、数据的加解密都会消耗很多资源,对于企业即时通信系
6、统来说采用非对称加密算法加密密钥信息是无法满足其即时性需求的。因此,本软件合对称和非对称加密算法的优点设计出了客户端和服务器间数据传输的混合加密方案。 Server初始化后会通过非对称算法生成公钥和私钥,当有Client和Server进行通信时,Server便会将Server的公钥发送给Client。 Client在登录或者注册时,会先用非对称算法生成公钥和私钥,然后将公钥发送给Server,Server记录下这个Client对应的公钥。然后将这个公钥广播给所有在线的Client。某个Client在离线后,Server会将该Client对应的公钥删除。 如果ClientA要向Clien
7、tB发送信息,首先通过对称加密生成密钥key,然后在Server广播的所有在线Client的公钥中找到ClientB的公钥,然后用这个公钥加密密钥key,然后将加密后的密钥发送给ClientB,ClientB使用自己的私钥解密,获得ClientA和ClientB进行通信的密钥key。之后ClientA和ClientB之间的通信都是用密钥key进行加密和解密。 2.4数据封装 为了保证数据交换的方便、解析的
此文档下载收益归作者所有