◆周建偉 董 潔 郭金盈
(1.北華航天工業學院 河北 065000;2.河北省航天遙感信息信息處理與應用協同創新中心 河北065000;3.航天遙感信息應用技術國家地方聯合工程研究中心 河北 065000)
據不完全統計在2018年上半年Facebook 泄露的信息就達8700 余萬條,而且國內如圓通快遞多達10億條數據被人在暗網上兜售。此外,常見的客戶端軟件越來越傾向于集多種功能于一體。娛樂方面比如QQ的厘米秀、微信的跳一跳,購物方面QQ 微信都有相關京東的門戶入口;文件傳輸大小受限制且分類不清晰也是一個非常明顯的問題。
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]。
在滿足基本辦公需求的前提下本系統構建了登錄注冊模塊、用戶管理模塊、通信三大模塊。登錄注冊模塊包括登錄功能、注冊功能;通信模塊好友通信包括發送文字功能、發送抖動功能、發送表情功能、發送文件功能、發送截屏功能,群員通信包括發送文字功能、發送文件功能、發送表情功能、發送截屏功能;好友管理模塊包括添加好友功能、刪除好友功能。各模塊及相應功能如圖1所示:

圖1 客戶端模塊功能圖
本系統中首先客戶端發起TCP 連接,服務器對客戶端進行響應并攜帶認證機制和流特性,然后客戶端和服務器嘗試在已有的TCP鏈路上完成TLS 握手以及SASL 握手過程[4]。最后服務器提示客戶端認證通過,客戶端與客戶端之間開始進行通信。其工作原理如圖2所示。
本文主要對通信安全機制、群文件的改進進行詳細介紹。
(1)通信安全機制
為了提高賬戶的安全性,本文采用MD5 算法對密碼進行保護,MD5 算法的特點是當密碼即使只改變一個字母也會導致生成的散列值有很大的不同。將原始密碼通過MD5 算法生成散列值,同時服務器本身對密碼又加入了一層MD5 算法,即將客戶端生成的散列值再次通過MD5 算法生成散列值來保障密碼的安全性。通信消息方面將Message中的Body 進行AES加密,可以有效避免窮舉攻擊、差分攻擊、線性攻擊帶來的傷害。
(2)群文件的改進
目前大部分的文件傳輸都存在傳輸大小受限、斷網之后傳輸中斷、群文件分類雜亂不易查找等問題,本文從源頭進行改進,在上傳時首先選擇上傳類別,傳輸采用離線傳輸的方式,方便群成員下載;為了避免斷網重傳,文件較大浪費很多時間,支持斷點續傳,提高了辦公效率。此外為了提高通信效率以及公司文件的安全性,單獨部署一個文件服務器,提高了客戶端的安全性。

圖2 網絡通信圖
XMPP協議是公開的,任何人都可以搭建自己的服務器,本客戶端在保證辦公需求的情況下,服務器完全可以部署在企業或者公司內部,避免了第三方客戶端信息泄露對企業或者公司造成不可挽回的損失。同時本客戶端TLS協議、SASL 身份認證、AES加密、MD5 算法等保證了客戶端軟件通信以及密碼的安全。
首先,從用戶體驗的角度出發,不同的顏色、圖案可以調節人的心情,所以本客戶端在設計時,在登錄模塊中加入了不同時間登錄會有不同的背景的功能,在辦公之處就給人以積極的心里暗示,調節了辦公人員的心情,提高了積極性。
其次,考慮到辦公人員彼此之間可能熟悉但是也可能是陌生人,所以本客戶端在設計時加入了對好友的介紹功能,方便各個部門員工之間的溝通,提高辦公效率。
由于XMPP協議本身大部分的工作,如連接管理、信息路由等工作由服務器承擔,減小了客戶端軟件的壓力,提高了辦公效率。在設計實現過程中后臺服務器采用Openfire服務器,此外內網WIFI 環境中進行10次傳輸測試,統計傳輸速度的平均值,結果如表1所示:

表1 同類型軟件對比
由表1可以看到本客戶端在相同帶寬下傳輸速度可達到10M/S,單次傳輸量為4G,傳輸大小、傳輸速度上均具有較好的實用性。此外,由于服務器部署簡單,客戶端是自己研發,可以極大節約成本。
隨著信息安全泄露事件頻發,而且目前客戶端軟件越來越傾向于娛樂、文件傳輸大小受限制且分類較雜亂,設計一款擁有自主權限的安全的辦公軟件是每個企業的目標。通過對目前網絡安全現狀、員工辦公需求的分析,對XMPP協議的安全性分析,采用C/S 架構,設計實現了安全性高、傳輸快捷、簡單方便、界面友好的客戶端辦公軟件。通過多次測試,傳輸速度可達10M/S,測試過程中單次最大傳輸量可達4G。