朱嘉晨,姜來為,陳 正,何一鶴,楊佳曼,王新斌,王卓君,郭英豪,吳燁琦
(中國民航大學(xué),天津 300300)
近年來,隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,我國已經(jīng)成為世界第一大互聯(lián)網(wǎng)用戶國家[1]。聊天軟件如QQ、微信、釘釘?shù)葢?yīng)用功能齊全,利用各種聊天軟件進(jìn)行溝通是現(xiàn)在人們進(jìn)行信息交流的主要方式。然而,聊天軟件在給人們提供方便快捷溝通方式的同時(shí),也引發(fā)了諸多安全問題,比如聊天軟件所包含的即時(shí)對話、文檔傳輸?shù)裙δ軜O易造成信息泄密。如何保障互聯(lián)網(wǎng)聊天軟件的信息安全是近年來研究者關(guān)注的重點(diǎn)[2-3]。在上述背景下,為了能夠?qū)W(wǎng)絡(luò)上用戶傳播的信息進(jìn)行管理,限制用戶聊天行為,阻止不法信息傳播,本文以過濾規(guī)則管理為核心設(shè)計(jì)并實(shí)現(xiàn)聊天信息安全管理系統(tǒng),使管理員能夠?qū)τ脩魻顟B(tài)、用戶操作及用戶間的聊天行為進(jìn)行管理和限制,并依據(jù)國家標(biāo)準(zhǔn)加入一定的安全設(shè)計(jì)從而進(jìn)一步提高系統(tǒng)的安全性。
聊天信息安全管理系統(tǒng)工作流程如圖1所示。
圖1 聊天信息安全管理系統(tǒng)工作流程圖
首先啟動用戶服務(wù)管理器和用戶信息數(shù)據(jù)庫,然后用戶客戶端才能通過注冊或登錄的方式連接用戶服務(wù)管理器。注冊的賬號口令需要密碼規(guī)則檢測,只有檢測通過方能將新用戶的信息插入表中。用戶登錄時(shí)若密碼校驗(yàn)通過,用戶還需通過賬號有效性檢測和封號檢測才能成功登錄;若密碼校驗(yàn)失敗,則需要進(jìn)行登錄失敗記錄,并根據(jù)實(shí)際情況進(jìn)行處置。成功登錄系統(tǒng)后,用戶之間可以發(fā)送聊天消息及聊天文件,這些文件將根據(jù)管理員設(shè)定的規(guī)則進(jìn)行敏感詞過濾,只有通過過濾的信息才能予以轉(zhuǎn)發(fā),從而實(shí)現(xiàn)對聊天信息的安全管理。
本文設(shè)計(jì)并實(shí)現(xiàn)的聊天信息安全管理系統(tǒng)總體架構(gòu)包括用戶客戶端、管理員、信息安全管理模塊三大部分。
用戶客戶端負(fù)責(zé)實(shí)現(xiàn)用戶注冊、用戶登錄并生成聊天信息。用戶客戶端需要能夠產(chǎn)生以下數(shù)據(jù):(1)用戶注冊時(shí),生成唯一用戶名及符合密碼校驗(yàn)要求的密碼;(2)用戶登錄時(shí),提供已注冊用戶及其對應(yīng)密碼;(3)用戶間聊天時(shí),產(chǎn)生相應(yīng)的聊天信息和傳輸文件。此外,用戶客戶端還要實(shí)現(xiàn)對數(shù)據(jù)安全性的檢測:(1)登錄或注冊時(shí)涉及新建密碼或密碼更改操作,都需對密碼進(jìn)行格式校驗(yàn);(2)用戶登錄時(shí),不僅要對登錄密碼進(jìn)行校驗(yàn),還需對用戶的有效性進(jìn)行校驗(yàn);(3)對于用戶登錄失敗設(shè)計(jì)相關(guān)處置方法;(4)用戶服務(wù)管理器在為用戶轉(zhuǎn)發(fā)聊天消息或者文件之前,需要根據(jù)所設(shè)定的規(guī)則及時(shí)發(fā)現(xiàn)不允許傳輸信息并予以丟棄處理,還要將處理結(jié)果告知用戶,記錄到用戶管理日志中。
管理員可以選擇要查看的用戶聊天往來信息,決定對哪些用戶或數(shù)據(jù)進(jìn)行管理操作。具體管理內(nèi)容包括:(1)查看已有用戶有效期,并能根據(jù)實(shí)際需要及時(shí)清除過期用戶;(2)查閱用戶操作和聊天的往來過程,對敏感用戶進(jìn)行封鎖,也可以對用戶賬戶進(jìn)行解封;(3)選擇合適的算法設(shè)置相關(guān)過濾規(guī)則,對用戶的聊天行為和文件傳輸行為進(jìn)行限制。
信息安全管理模塊中包括用戶操作日志、用戶管理、封號管理和過濾規(guī)則設(shè)置。其中用戶操作日志負(fù)責(zé)記錄所有用戶的往來聊天記錄和操作記錄;用戶管理提供對已有用戶狀態(tài)查看和對過期用戶處理的功能;封號管理提供對用戶封號處理功能;過濾規(guī)則設(shè)置可以設(shè)置不同的過濾規(guī)則,當(dāng)用戶服務(wù)管理器為用戶轉(zhuǎn)發(fā)數(shù)據(jù)時(shí)若數(shù)據(jù)能通過所設(shè)的過濾規(guī)則,則為該用戶轉(zhuǎn)發(fā)數(shù)據(jù),否則將丟棄并告知檢測結(jié)果。
本文設(shè)計(jì)并實(shí)現(xiàn)的聊天信息安全管理系統(tǒng)具備以下主要功能:
(1)用戶客戶端可以產(chǎn)生注冊、登錄、聊天等可供管理員管理的數(shù)據(jù)。
(2)管理員可以根據(jù)用戶有效期和封號記錄對用戶賬號進(jìn)行管理。
(3)系統(tǒng)提供過濾規(guī)則管理模塊,可供管理員選擇過濾算法并設(shè)置過濾敏感詞條。
(4)添加了密碼格式規(guī)則校驗(yàn)、用戶登錄失敗處置功能。
信息安全管理模塊是本系統(tǒng)的核心,主要包括用戶信息數(shù)據(jù)庫和用戶服務(wù)管理器。
根據(jù)系統(tǒng)運(yùn)行和管理員操作的不同要求,聊天信息安全管理系統(tǒng)中相關(guān)數(shù)據(jù)分別存儲于用戶信息數(shù)據(jù)庫中3個(gè)不同的表格里:(1)USERTABLE表(用戶表),記錄用戶名、密碼、用戶注冊時(shí)間、賬號有效期等信息;(2)DISABLEDLOGIN表(封號表),記錄封號用戶名及封號到期時(shí)間;(3)LOGINMANAGEMENT表(登錄失敗管理表),記錄用戶名、首次登錄失敗時(shí)間和登錄失敗次數(shù)。
用戶服務(wù)管理器是信息安全管理模塊的核心,使用Java語言進(jìn)行開發(fā)并使用工具WindowBuilder Editor協(xié)助進(jìn)行頁面設(shè)計(jì)而成的圖形化工具。管理員通過用戶服務(wù)管理器可以對用戶賬號狀態(tài)、用戶聊天日志和聊天規(guī)則等進(jìn)行管理。用戶服務(wù)管理器中主要包括系統(tǒng)啟動及日志管理、規(guī)則管理兩大部分。
2.2.1 系統(tǒng)啟動及日志管理
系統(tǒng)啟動及日志管理提供系統(tǒng)啟動功能和用戶操作日志記錄功能,管理員可通過該部分啟動聊天服務(wù)器并審計(jì)用戶的聊天行為,以便及時(shí)對用戶及其聊天行為進(jìn)行操作限制。
2.2.2 規(guī)則管理
規(guī)則管理包括用戶管理、封號管理和消息過濾規(guī)則管理。
(1)用戶管理
用戶管理模塊主要管理用戶的基本信息,具有操作USERTABLE表、DISABLEDLOGIN表和LOGINMANAGEMENT表的權(quán)限。管理員可以通過該模塊利用select語句查詢存儲在用戶信息數(shù)據(jù)庫用戶表中已有賬戶的注冊時(shí)間和到期時(shí)間,并將查詢到的信息顯示到頁面上;還可以利用該模塊使用delete語句刪除用戶表中相應(yīng)的過期用戶信息。
(2)封號管理
封號管理模塊具有USERTABLE表和DISABLEDLOGIN表的管理權(quán)限。管理員通過用戶信息數(shù)據(jù)庫中USERTABLE表和DISABLEDLOGIN表看到新增封號下拉列表中的相應(yīng)數(shù)據(jù)。當(dāng)管理員確定對某賬號進(jìn)行封號操作后,相關(guān)數(shù)據(jù)從用戶服務(wù)管理器傳輸?shù)接脩粜畔?shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲。當(dāng)管理員對用戶賬號進(jìn)行批量管理或恢復(fù)賬號操作時(shí),刪除DISABLEDLOGIN表中的相關(guān)數(shù)據(jù)即可。
(3)消息過濾規(guī)則管理
當(dāng)用戶客戶端A向用戶客戶端B發(fā)送文件或消息時(shí),管理員在消息過濾規(guī)則管理模塊中選擇過濾算法,設(shè)置過濾規(guī)則。當(dāng)用戶服務(wù)管理器為用戶A轉(zhuǎn)發(fā)數(shù)據(jù)時(shí),若數(shù)據(jù)能通過設(shè)定好的過濾規(guī)則,則轉(zhuǎn)發(fā)數(shù)據(jù)給用戶B;否則丟棄該數(shù)據(jù),并告知用戶A和用戶B消息或文件未通過安全檢測不能轉(zhuǎn)發(fā)。本系統(tǒng)中提供三種最常用的模式匹配算法[2,4],分別是BF(Brute Force)算法、KMP(Knuth-Morris-Pratt)算法和BM(Boyer-Moore)算法。當(dāng)待匹配主串長度較短的情況下,通常選擇BF算法或者KMP算法;若是匹配長文本,BM算法則更合適。過濾模塊工作流程圖如圖2所示。
圖2 過濾模塊工作流程圖
聊天信息安全管理系統(tǒng)中文件安全檢測原理如圖3所示,圖中給出用戶之間文件傳輸及開展文件過濾檢測的具體運(yùn)行流程。文件發(fā)送者首先詢問文件接收者是否愿意接受文件,若得到拒絕的消息則放棄傳輸,反之準(zhǔn)備進(jìn)行文件傳輸。服務(wù)器在接收到文件接收者同意接收文件的消息時(shí),首先將自己的7777端口打開,再將同意消息轉(zhuǎn)發(fā)給文件發(fā)送者。然后,文件發(fā)送者接收到同意消息后連接服務(wù)器的7777端口,將文件發(fā)送給服務(wù)器。接下來服務(wù)器依據(jù)設(shè)定好的過濾算法和過濾規(guī)則對接收到文件的內(nèi)容進(jìn)行篩查。最后,將篩查結(jié)果通知文件發(fā)送者和文件接收者:如果文件通過篩查,服務(wù)器打開8888端口后告知文件接收者前來連接,并將文件發(fā)送給文件接收者;如果文件被查出存在過濾信息,則通知雙方用戶檢測結(jié)果,不再做其他操作。
圖3 文件安全檢測原理圖
本系統(tǒng)代碼運(yùn)行環(huán)境為eclipse-java-oxygen-Rwin32-x86_64,利用JAVA,使用WindowBuilder工具輔助頁面設(shè)計(jì),并選擇derby數(shù)據(jù)庫存儲用戶信息和相關(guān)操作信息。
開啟用戶服務(wù)管理器前,除“啟動”按鈕外的所有按鈕無法使用。如圖4所示為服務(wù)器啟動前按鈕狀態(tài),其中(a)為日志頁面,(b)為用戶管理頁面,(c)為封號管理頁面,(d)為過濾規(guī)則管理頁面。服務(wù)器開啟后,封號管理頁面自動加載封號管理記錄。
圖4 服務(wù)器啟動前按鈕狀態(tài)
用戶客戶端在登錄或注冊時(shí)涉及新建密碼或密碼更改操作,都需對密碼進(jìn)行格式校驗(yàn)。如圖5所示的用戶注冊密碼校驗(yàn)結(jié)果示意圖,其中(a)顯示使用用戶名ccc、密碼123@ccc注冊失??;(b)顯示使用用戶名ccc、密碼123@aaaa注冊成功。
圖5 用戶注冊密碼校驗(yàn)結(jié)果示意圖
如圖6所示的聊天信息過濾例子:管理員設(shè)置過濾規(guī)則“aaa”并選擇BF過濾算法后,用戶aaa向用戶bbb發(fā)送聊天信息“aaabbb”后顯示消息中含有敏感信息,無法發(fā)送。
圖6 聊天信息過濾例子
如圖7所示的傳輸文件過濾例子,用戶aaa向用戶bbb傳送文件1.txt(含“aaa”),bbb選擇接收文件后,文件經(jīng)過篩查,aaa被服務(wù)器告知文件中包含敏感信息,不予轉(zhuǎn)發(fā);與此同時(shí),bbb也收到了有待接受文件不符合規(guī)定的通知。
圖7 傳輸文件過濾例子
聊天信息安全管理系統(tǒng)還包括聊天信息字體字號選擇、發(fā)送表情包、選擇好友創(chuàng)建群聊等功能,如圖8所示,其中(a)為聊天信息字體字號選擇,(b)為發(fā)送表情包,(c)為加群操作,(d)為加群成功截圖。
圖8 其他功能展示
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,聊天軟件的出現(xiàn)與普及在滿足了人們不受時(shí)間和空間限制、隨時(shí)隨地進(jìn)行交流的需求的同時(shí),也為不法分子利用網(wǎng)絡(luò)傳播非法言論帶來可乘之機(jī)。為了能夠?qū)W(wǎng)絡(luò)上用戶傳播的信息進(jìn)行管理,限制用戶的聊天行為,阻止不法信息的傳播,本文設(shè)計(jì)并實(shí)現(xiàn)了聊天信息安全管理系統(tǒng),從用戶管理、過濾規(guī)則管理和安全設(shè)計(jì)等方面,利用數(shù)據(jù)庫存儲相關(guān)信息,提供圖形化頁面,方便管理員對用戶操作信息進(jìn)行管理。通過聊天信息安全管理系統(tǒng),管理員對用戶賬號進(jìn)行刪除或者封號管理,對用戶的聊天內(nèi)容及文件傳輸內(nèi)容過濾后進(jìn)行發(fā)送或限制,對網(wǎng)絡(luò)環(huán)境實(shí)現(xiàn)一定程度的凈化。