


摘 要:移動互聯時代,大部分第三方即時通信類軟件使用者不能完全掌握聊天數據,易造成數據被分析等安全問題。針對企業級即時通信安全問題,提出一套利用云計算特性的即時通信系統。系統采用C/S模式,服務器部署在云端,能夠使用戶獨立部署系統,做到服務器私有,數據信息加密保存,客戶端包含移動端和桌面端,數據加密傳輸。通過常見攻擊手段安全分析和系統性能分析,驗證了系統安全性與可靠性。該系統已上線使用且運行良好。
關鍵詞:即時通信;云計算;私有化部署;企業級應用
DOI:10. 11907/rjdk. 182559 開放科學(資源服務)標識碼(OSID):
中圖分類號:TP393 文獻標識碼:A 文章編號:1672-7800(2019)007-0177-05
Enterprise Instant Messaging Application Deployment Scheme
Based on Cloud Computing
SHAN Gang-ling,XU Xin
(College of Communication Engineering,Hangzhou Dianzi University,Hangzhou 310018, China)
Abstract: In the era of mobile Internet, cloud applications have become a trend. For the security of enterprise-level instant messaging tools, users of most third-party instant messaging software cannot fully grasp the chat data, which is likely to cause security problems such as data analysis. This paper proposes an instant messaging system that uses cloud computing capabilities. The system uses C/S mode and the server is deployed in the cloud. It enables users to deploy the system independently. The server is private and the data is saved with secrecy. The client includes the mobile device and the desktop, and encrypted data is transmitted safely. The security and reliability of the system are verified by the security analysis and performance analysis of common attack methods. The system is already in use and functioning properly.
Key Words: instant messaging; cloud computing; privatization deployment; enterprise applications
基金項目:國防預研基金資助項目(GFZ17040406004)
作者簡介:單港伶(1993-),男,杭州電子科技大學通信工程學院碩士研究生,研究方向為通信安全;徐欣(1975-),男,博士,杭州電子科技大學通信工程學院教授、碩士生導師,研究方向為通信安全、固態硬盤加密。
0 引言
移動互聯時代,應用上云大勢所趨。2006年Google、Amazon等公司提出了“云計算”構想[1]。根據美國國家標準與技術研究院(NIST)定義,云計算是一種利用互聯網實現隨時隨地、按需求、便捷訪問資源池(如計算設施、存儲設備、應用程序等)的計算模式[2]。IBM公司提出云計算是繼分布式計算、并行計算之后的一種新的互聯網服務模式[3] 。據中國信息通信研究院調查顯示,2017年全球公有云市場規模達到110億美元,且將保持一個高速增長趨勢[4]。社交網絡、電子商務、智慧城市工業領域等新一代大規?;ヂ摼W應用發展迅猛[5-7]。這些新興應用具有數據存儲量大、業務增長速度快、硬件性能伸縮性大等特點。傳統服務器部署架構方式對于新的應用,無論是硬件基礎設施配置,還是軟件后期迭代開發、維護管理等方面都已經不能滿足要求,而云計算具有動態部署、按需使用、彈性增長等特點,十分契合新興應用。
即時通信軟件(如微信)作為一種社交工作類應用軟件,憑借其功能豐富、免費易用等特點成為人們溝通的主要方式,并從生活交流滲透到辦公場景,容易造成標注密級的數據信息在該類軟件上流轉[8]。這些即時通信軟件已經被證明存在極大的泄密風險,在大數據挖掘和分析日益智能化的時代,重要信息甚至機密信息泄露十分嚴重,需要一種安全的部署方式。
針對即時通信軟件部署問題,宋昱等[9]提出一種高性能即時通信服務系統,介紹了一種大規模用戶下降低延時部署方案;徐莉文等[10]提出了P2P即時通信系統,介紹了一種去中心化即時通信系統;趙向兵等[11]提出了Linux平臺的即時通信系統,只涉及Linux系統;Manekar等[12]提出基于云的智能手機即時通訊系統,只涉及Android手機系統。這些方案并不能很好地滿足企業用戶需求,用戶在企業場景下對去中心化需求不強,但對企業數據安全性有很高要求。因此,本文提出一種基于云計算特性的私有化部署方案,做到服務器被使用者完全掌握,數據加密存儲和傳輸,多客戶端多系統登錄,并且成本低。
1 云計算
1.1 云計算系統特征
(1)彈性服務。云計算服務規??煽焖偕炜s,以適應業務負載的動態變化。用戶使用的計算資源同業務需求相匹配,避免了因為服務器性能過剩導致資源浪費和性能過載時帶來服務質量下降。
(2)支持虛擬化。計算資源(包括CPU、內存、硬盤)以共享資源池的方式統一管理。利用虛擬化技術,將資源分享給不同用戶,提高了資源利用效率。當其中一個服務器過載時支持負載遷移。
(3)自治性。資源的放置、管理與分配策略對用戶透明。云計算系統以服務的形式為用戶提供應用程序、數據存儲、基礎設施等資源,使用者可以根據自身實際需求自動分配。
(4)服務可計費。監控用戶資源使用量,并根據用戶對計算資源的使用情況及性能時長對服務計費。
(5)接入廣泛可靠。云計算系統保證向用戶提供可靠服務。保障用戶可以通過各種終端設備(例如智能手機、筆記本電腦等)隨時隨地通過因特網訪問計算服務。
上述五大特性,使得云計算性能和計算資源能夠被接入云計算網絡的用戶源源不斷使用。云計算的易用性和靈活性,使計算資源變成了一種公共基礎設施[14]。
1.2 云計算體系架構
云計算可以按照用戶需求提供彈性資源,是一整套服務的集合。架構體系大致可以分為核心服務層、服務管理層以及用戶訪問接入層3個層次,其中最主要的是核心服務層,如圖1所示。核心服務層將硬件基礎設施、軟件運行環境、應用程序抽象成各種服務,這些抽象服務具有可用性高、可伸縮性大、可靠性強等優點,滿足日益多樣化的服務要求[15]。
核心服務層一般被細分為3個子層:基礎設施及服務層(IaaS,Infrastructure as a Service)、平臺及服務層(PaaS,Platform as a Service)、軟件及服務層(SaaS,Software as a Service)。
IaaS作為云的基礎,由服務器、網絡設施以及存儲設備等物理設施組成,提供硬件基礎設施部署服務,為用戶按需提供實體或虛擬的計算、存儲和網絡等資源[16]。在IaaS層服務中,用戶沒有實際管理底層基礎架構,IaaS服務提供商通過集中化規?;A架構,按用戶所需靈活地為其提供基礎設施資源。為了優化硬件資源分配使用,IaaS層引入虛擬化技術,借助于KVM等虛擬化工具,可以提供可靠性高、可定制性強、可擴展性大的IaaS層服務。
PaaS是云計算應用程序運行環境,提供應用程序部署與管理服務。NIST將其定義為開發者在云基礎架構之上部署應用軟件,這些軟件使用了應用者支持的語言、庫等。通過PaaS層軟件工具和開發語言,應用程序開發者只需上傳程序代碼和數據即可使用服務,而不必關注底層網絡、存儲、操作系統的管理問題 [17]。
SaaS是基于云計算基礎平臺開發的應用程序,是一種新興軟件模式,將軟件部署作為服務,通過Internet進行訪問 [18]。企業可以通過租用SaaS服務解決企業信息化問題,不必考慮服務器管理、維護問題。對于個人用戶,SaaS服務將桌面應用程序遷移到互聯網,使用者根據訂購服務的多少和使用時間長短,向服務提供商支付費用。
2 部署方案
隨著云計算時代來臨,國內不少公司推出了云計算服務,比如阿里云、華為云等。在過去幾年中,SaaS開始普及,人們想要獲取計算資源,又不想自己親自構建相關設施,SaaS將IT部門從繁重的現場物理部署工作中解放出來。
通過表1不難看出兩者的優劣勢,SaaS部署不管是在維護、人員要求、資金投入上都優于本地化部署。但是,在在企業級應用中,安全性是許多公司和研究機構最為關注的云端應用問題,很多公司堅持本地部署就是因為他們覺得本地部署的安全系數更高。不過,總體來講,隨著技術與安全措施的更新迭代,顧客對于云特別是公有云的信任正在提升。
表1 SaaS與本地部署特性比較
[SaaS特性主要表現\&本地化特性主要表現\&按需定制,可以更加自由靈活選擇模塊,進行備份,維護,升級
不需要額外增加專業IT人員,降低技術人員門檻
付費方式分期,解決一次性投入的資金壓力
服務收費方式風險小,一般是先付款后使用\&專業化定制,客戶根據自己的需求定制一個全新匹配的服務器系統
需要投入一定的技術人員,資金硬件,基礎投入較大
更新升級成本相對較高
客戶需要自己負責驗證工作。由于全面控制環境,相比SaaS,實施監管更容易\&]
該方案可以租用云服務,將即時通信服務部署在云服務器的虛擬機上,對放置在云端的數據進行安全加密。通過該服務,用戶使用移動端或者桌面端APP實現端到端加密的即時聊天通信。服務器架構如圖2所示。
圖2 服務器部署架構
服務器系統按照物理部署劃分可分為 IM 服務器、Storage Server服務器、Media Server服務器3部分。APP與各個服務器以及服務器之間的關系如圖3所示。
圖3 服務器關系
其中,IM服務包含發現服務、安全服務、業務服務3項服務。發現服務由Discovery Server完成,管理和監控其它服務器實例,維護和更新狀態及負載信息。安全服務由APP Server 、IM Server、Key Management Server組成,提供諸如注冊、APP防偽、密鑰存儲等安全服務。業務服務由APP服務器、IM服務器、數據庫服務器等實例服務器組合協同提供例如用戶管理、組群管理、即時消息收發、語音通話等服務。IM服務部署在云服務器上。
采用該部署方式的優勢有兩點:一是無需考慮物理服務器購買、部署、維護等傳統部署方式,所有服務通過Web端管理,APP承載通信服務;二是部署快捷,相對傳統服務器本地化部署,可實現數小時內部署完畢。
3 架構流程
服務器后臺通信流程如圖4所示。
圖4 服務器后臺通信流程
(1)服務器查詢。APP通過輸入服務器地址或域名端口的Discover服務接口,Discover服務收集配置文件中的相應組件和服務器自身信息返回給APP,傳輸過程中使用http/https協議,保障通信安全(見圖5)。
[discover-server][APP] [http/https協議]
圖5 服務器查詢流程
(2)注冊。APP或運維管理平臺訪問asim-server注冊接口,aism-server服務訪問Openfire注冊接口,Openfire返回結果消息。注冊成功后,用戶信息將存入數據庫(見圖6)。
[APP] [APP] [asim-server] [http/https協議] [http協議][Openfire] [Postgresql]
圖6 注冊流程
(3)登錄/聊天。APP登錄以及聊天功能都是通過Discover服務所提供的服務器信息,APP直連Openfire,通過Openfire組件實現登錄以及聊天功能(見圖7)。
[Openfire][APP] [Xmpp協議]
圖7 登錄/聊天流程
(4)文件下載。APP攜帶下載文件的fid訪問Appserver文件下載接口,Appserver進行校驗之后訪問seaweedfs接口,找到該fid在seaweedfs中的地址,并根據配置中的信息生成一個文件下載URL返回給APP,APP拿到URL之后訪問Kong服務,Kong通過反向代理seaweedfs的文件存儲地址進行數據下載,最終數據返回給APP(見圖8)。
[APP] [Kong] [asim-server] [鑒權] [seaweedfs] [鑒權]
圖8 文件下載流程
(5)文件上傳。APP通過訪問Openfire的上傳接口,Openfire再訪問seaweedfs接口,將生成一個攜帶地址及fid的json數據,根據配置轉換成上傳的URL及fid給到APP,APP訪問Kong服務進行文件上傳(見圖9)。
[APP] [Kong] [Openfire] [xmpp協議] [seaweedfs] [鑒權][容量判斷]
圖9 文件上傳流程
(6)語音通話。APP1連接Opensips服務,通過opensips服務給APP2發起通話請求,請求通過后由opensips建立起APP1與APP2的點對點交互,由media-proxy服務做一個NAT穿透進行數據流傳輸(見圖10)。
[Opensips][APP1] [Media-proxy] [APP2]
圖10 語音通話流程
(7)音視頻會議。APP通過固定端口連接Openmcu服務,發起音視頻會議請求,Openmcu接受請求之后建立組內多線交互,給其它APP發起通話確認。
[Openmcu][APP] [Turnserver] [APP] [APP] [APP]
圖11 音視頻會議流程
4 安全分析
根據上文對該方案的闡述,對主流和常見的漏洞與攻擊手段進行逐一分析,以此評估該即時通信方案的總體安全性等級。
4.1 前向安全
前向安全是安全體系中最重要的一個要素,即當前已經加密生成的密文,在未來某個時刻由于原始派生密文加密鑰的私鑰失竊而被泄露,要保證即使當前簽名密鑰丟失,先前簽名的安全性也有效[19]。只有嚴格做到這一點,才能稱之為完美前向安全(Perfect Forward Secrecy)。
該即時通信方案中,采用基于ECDH滾動更新和Hash滾動更新兩條密鑰鏈組合,因為 Hash 滾動更新的單向不可逆特點,可以滿足前向安全性。原始用戶私鑰和公鑰,會根據派生密鑰的數量和時間進行定期作廢更新,這樣的更新機制確保了即使私鑰丟失也只會影響未更新前少量密文數據,后續可通過私鑰和公鑰的動態更新完成自愈。
4.2 重放攻擊
重放攻擊是目前最基本、最常用和危害性最大的一種攻擊認證協議手段[20]。攻擊者通過sniffer等竊聽手段獲取到之前曾經成功交互的數據報文后,在后續某一時刻重新發送一次該協議報文,企圖偽造當時現場進而成功通過某些系統認證或達到其它目的。
該即時通信方案中,在構造加密消息幀時,增加message sequence number標識消息序號,每條消息依次遞增;對于接收方,如果收到重復的消息序號,則表示該消息可能是網絡問題導致的重傳,或者是非法重放攻擊報文,需直接丟棄該消息,以此防御。
4.3 中間人攻擊
中間人攻擊(Man-In-the-Middle Attacks,MItM)是一種間接攻擊模式,通過各種技術手段將攻擊者控制的計算機虛擬放置在網絡連接的兩臺通信計算機之間,攻擊者與原始計算機建立連接,并允許其讀取或者修改傳遞的信息,而兩個原始計算機用戶確認為他們在互相通信,是目前網絡上針對公鑰加密體系的主要攻擊隱患[21]。
該方案中,主要是防止MItM滲透導致用戶從中間人那里獲取到虛假的好友公鑰。針對這一點,在服務器上保存好友的公鑰時,使用服務器的私鑰簽名,客戶端在訪問服務器獲取到公鑰信息后,重新從安全服務器通過非HTTPS通道獲取服務器證書,驗證簽名的合法性,進而判斷公鑰的真偽。
5 性能分析
部署完服務器之后,對服務器與APP進行性能測試,在移動端和桌面端安裝APP。桌面端配置CPU為Intel(R)core(TM)i5-7200 2.5GHz,操作系統為Windows10家庭中文版,RAM為8GB,ROM為250GB。手機端配置CPU為蘋果A9處理器1.8GHz,操作系統為蘋果IOS12系統,內存為2GB,ROM為64GB。在運維管理平臺創建100個賬號(包含頭像等信息),供測試時使用。桌面端和移動端通過APP登錄,創建兩個標準賬號,每個標準賬號包含20個好友,2個群組組員共計50人。關鍵流程處理時延如表2。
表2 關鍵流程處理時延
從測試性能來看,該系統能夠滿足正常使用。
6 結語
隨著移動互聯網高速發展,智能手機在人們工作生活中作用越來越突出,即時聊天工具伴隨智能手機更加高效、方便。本文著眼于企業員工之間溝通聊天工具的信息安全,提出了基于云計算的即時通信部署方案,旨在從源頭上防止公司數據不被第三方竊取。目前大部分即時聊天APP都會將數據保存在第三方服務器上,數據安全性全靠第三方企業的道德保護,約束力幾乎為零。
企業通過云計算部署即時通信服務器,順應了科技發展趨勢——應用上云。對于企業而言,即時聊天工具所需服務器性能可隨使用人數、使用頻次,即時作出動態調整,特別是當應用需要升級時,硬件性能可實現平滑過渡,是相較于本地部署方式的最大優點。
參考文獻:
[1] 丘群業. 企業私有云計算基礎架構研究與設計[D]. 廣州:華南理工大學,2012.
[2] MELL P, GRANCE T. Sp 800-145. The NIST definition of cloud computing[M]. Gaithersburg:National Institute of Standards and Technology, 2011.
[3] 劉瑋,王麗宏. 云計算應用及其安全問題研究[J]. 計算機研究與發展,2012,49(S2):186-191.
[4] 中國信息通信研究院. 云計算發展白皮書(2018)[EB/OL]. http://www.caict.ac.cn/kxyj/qwfb/bps/201808/t20180813_181718.htm.
[5] 涂偉,甘麗新,蔣科蔚,等. 基于云計算模式的電子商務安全研究[J]. 商業時代,2010(36):31+54.
[6] 高鵬宣,薛丹,王曉. 云計算及物聯網技術在智慧城市中的應用[J]. 電子技術與軟件工程,2018(18):1.
[7] 徐泉,王良勇,劉長鑫. 工業云應用與技術綜述[J]. 計算機集成制造系統,2018,24(8):1887-1901.
[8] 白曉飛. 基于企業視角的微信應用現狀分析與對策研究[J]. 中國新通信,2018,20(7):85.
[9] 宋昱. 一種高性能即時通訊服務系統的設計[J]. 軟件,2016,37(12):180-183.
[10] 徐文莉,熊燕,李燕. P2P即時通信系統關鍵技術研究及應用[J]. 軟件導刊,2017,16(9):151-153+157.
[11] 趙向兵,張景安. Linux平臺即時通信系統的研究與開發[J]. 軟件,2017,38(2):23-27.
[12] MANEKAR S,BORKAR P,HIRWANI V. A review on instant messaging system based on cloud for smart phone[C]. 2017 International Conference on Inventive Systems and Control (ICISC),2017:1-5.
[13] 張建勛,古志民,鄭超. 云計算研究進展綜述[J]. 計算機應用研究,2010,27(2):429-433.
[14] 羅軍舟,金嘉暉,宋愛波,等. 云計算:體系架構與關鍵技術[J]. 通信學報,2011,32(7):3-21.
[15] 呂思思,焦金金,祁建松,等. 云服務在高校實驗教學系統建設中的應用[J]. 軟件導刊,2016,15(8):197-200.
[16] 劉歡歡,麻志毅,陳泓婕. 基于PaaS的云應用軟件部署環境的元模型[J]. 計算機科學,2015,42(10):45-49+80.
[17] 陸慧娟,安春霖,程倬,等. 基于SaaS和CSCW的車貨匹配系統研究與應用[J]. 華中科技大學學報:自然科學版,2012,40(S1):324-327.
[18] 甄平,趙耿,閔樂泉,等. 一種基于身份的前向安全數字簽名方案[J]. 計算機應用與軟件,2015,32(11):289-292.
[19] 王正才,楊世平. 抗重放攻擊認證協議的設計原則和方法研究[J]. 計算機工程與設計,2008(20):5163-5165+5170.
[20] 賈靜,薛質. SSL中間人攻擊原理與防范[J]. 信息安全與通信保密,2007(4):103-105.
(責任編輯:何麗)