基于XMPP协议的通信客户端的设计与实现

2020-03-07 06:36周建伟郭金盈
网络安全技术与应用 2020年2期
关键词:客户端办公服务器

◆周建伟 董 洁 郭金盈

(1.北华航天工业学院 河北 065000;2.河北省航天遥感信息信息处理与应用协同创新中心 河北065000;3.航天遥感信息应用技术国家地方联合工程研究中心 河北 065000)

据不完全统计在2018年上半年Facebook 泄露的信息就达8700 余万条,而且国内如圆通快递多达10亿条数据被人在暗网上兜售。此外,常见的客户端软件越来越倾向于集多种功能于一体。娱乐方面比如QQ的厘米秀、微信的跳一跳,购物方面QQ 微信都有相关京东的门户入口;文件传输大小受限制且分类不清晰也是一个非常明显的问题。

1 XMPP协议简介

XMPP协议最早是1998年由Jeremie Miller在Jabber 开源社区发出,由客户端、服务器、网关构成基本的客户端/服务器网络架构,两两之间可通过XML Stream 进行通信[1]。客户端与服务器通信过程如下:TCP 握手->TLS 握手->SASL验证->验证成功[2]。

通过对XMPP协议通信原理的研究发现XMPP协议的优势在于已经将TLS(Transport Layer Security,安全传输层协议)对XML 流进行加密、SASL(Simple Authentication and Security Layer,一种用来扩充C/S模式验证能力的机制)身份验证等写入核心技术规格,从一定程度上保证了通信的安全性;此外由于XMPP是基于XML(Extensible Markup Language,扩展标记语言)的,所以与传统的应用层协议HTTP(Hyper Text Transport Protocol,超文本传输协议)、SMTP(Simple MailTransfer Protocol,简单邮件传输协议)等弹性很好,在研究的过程中可以根据实际情况的需要进行调整;XMPP的核心由一些RFC(Request For Comments,一系列以编号排定的文件)文档组成,这对研究其通信原理及过程具有非常大的帮助作用,无须再去分析繁杂的数据头等,非常简单方便;同时传输层采用TCP 进行连接传输保证了信息的完整性[3]。

2 体系结构

2.1 系统设计

在满足基本办公需求的前提下本系统构建了登录注册模块、用户管理模块、通信三大模块。登录注册模块包括登录功能、注册功能;通信模块好友通信包括发送文字功能、发送抖动功能、发送表情功能、发送文件功能、发送截屏功能,群员通信包括发送文字功能、发送文件功能、发送表情功能、发送截屏功能;好友管理模块包括添加好友功能、删除好友功能。各模块及相应功能如图1所示:

图1 客户端模块功能图

2.2 工作原理

本系统中首先客户端发起TCP 连接,服务器对客户端进行响应并携带认证机制和流特性,然后客户端和服务器尝试在已有的TCP链路上完成TLS 握手以及SASL 握手过程[4]。最后服务器提示客户端认证通过,客户端与客户端之间开始进行通信。其工作原理如图2所示。

2.3 设计实现客户端的关键问题

本文主要对通信安全机制、群文件的改进进行详细介绍。

(1)通信安全机制

为了提高账户的安全性,本文采用MD5 算法对密码进行保护,MD5 算法的特点是当密码即使只改变一个字母也会导致生成的散列值有很大的不同。将原始密码通过MD5 算法生成散列值,同时服务器本身对密码又加入了一层MD5 算法,即将客户端生成的散列值再次通过MD5 算法生成散列值来保障密码的安全性。通信消息方面将Message中的Body 进行AES加密,可以有效避免穷举攻击、差分攻击、线性攻击带来的伤害。

(2)群文件的改进

目前大部分的文件传输都存在传输大小受限、断网之后传输中断、群文件分类杂乱不易查找等问题,本文从源头进行改进,在上传时首先选择上传类别,传输采用离线传输的方式,方便群成员下载;为了避免断网重传,文件较大浪费很多时间,支持断点续传,提高了办公效率。此外为了提高通信效率以及公司文件的安全性,单独部署一个文件服务器,提高了客户端的安全性。

图2 网络通信图

3 性能测试以及结果分析

3.1 安全性

XMPP协议是公开的,任何人都可以搭建自己的服务器,本客户端在保证办公需求的情况下,服务器完全可以部署在企业或者公司内部,避免了第三方客户端信息泄露对企业或者公司造成不可挽回的损失。同时本客户端TLS协议、SASL 身份认证、AES加密、MD5 算法等保证了客户端软件通信以及密码的安全。

3.2 友好性

首先,从用户体验的角度出发,不同的颜色、图案可以调节人的心情,所以本客户端在设计时,在登录模块中加入了不同时间登录会有不同的背景的功能,在办公之处就给人以积极的心里暗示,调节了办公人员的心情,提高了积极性。

其次,考虑到办公人员彼此之间可能熟悉但是也可能是陌生人,所以本客户端在设计时加入了对好友的介绍功能,方便各个部门员工之间的沟通,提高办公效率。

3.3 实用性

由于XMPP协议本身大部分的工作,如连接管理、信息路由等工作由服务器承担,减小了客户端软件的压力,提高了办公效率。在设计实现过程中后台服务器采用Openfire服务器,此外内网WIFI 环境中进行10次传输测试,统计传输速度的平均值,结果如表1所示:

表1 同类型软件对比

由表1可以看到本客户端在相同带宽下传输速度可达到10M/S,单次传输量为4G,传输大小、传输速度上均具有较好的实用性。此外,由于服务器部署简单,客户端是自己研发,可以极大节约成本。

4 结语

随着信息安全泄露事件频发,而且目前客户端软件越来越倾向于娱乐、文件传输大小受限制且分类较杂乱,设计一款拥有自主权限的安全的办公软件是每个企业的目标。通过对目前网络安全现状、员工办公需求的分析,对XMPP协议的安全性分析,采用C/S 架构,设计实现了安全性高、传输快捷、简单方便、界面友好的客户端办公软件。通过多次测试,传输速度可达10M/S,测试过程中单次最大传输量可达4G。

猜你喜欢
客户端办公服务器
你的手机安装了多少个客户端
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
AKTION MENSCH总部办公空间
理解Horizon 连接服务器、安全服务器的配置
Sharecuse共享办公空间
X-workingspace办公空间
PowerTCP Server Tool
BlackJumboDog
新华社推出新版客户端 打造移动互联新闻旗舰