趙莉,梁靜
(西安工業(yè)大學 計算機科學與工程學院,陜西 西安 710032)
當今社會,網(wǎng)站被篡改的事件屢見不鮮,研究一套能解決網(wǎng)站被篡改的保護系統(tǒng)就顯得尤為迫切和重要。Web服務器核心內(nèi)嵌技術比起時間輪詢技術、事件觸發(fā)技術而言,是一種能比較徹底解決網(wǎng)站被篡改的技術,因而被廣泛使用[1-3]。在Web服務器核心內(nèi)嵌防篡改的系統(tǒng)中,文件的分布式發(fā)布和篡改后的即時恢復是系統(tǒng)必不可少的關鍵模塊。若采用文件完全復制的方法來發(fā)送以及保持兩個文件間的同步是相當?shù)托У?,這樣既浪費了時間,又浪費了系統(tǒng)的資源。本系統(tǒng)通過對發(fā)布服務器端和Web服務器端的設計,來實現(xiàn)對文件的發(fā)布與接收,系統(tǒng)可以將多個文件拼接成一個文件進行發(fā)送,只傳輸差異部分。
怎樣能夠?qū)⑽募植际降陌l(fā)送到多個Web服務器上,以及在發(fā)現(xiàn)網(wǎng)頁被篡改后,怎樣才能快速、準確地進行文件的恢復,這就是文中所要研究的主要問題。
Web服務器核心內(nèi)嵌防篡改技術是指將篡改檢測模塊內(nèi)嵌于Web服務器的內(nèi)部。篡改檢測模塊使用密碼技術為所有網(wǎng)頁對象計算生成唯一性、不可逆轉(zhuǎn)和不可偽造的數(shù)字水印。公眾每次訪問網(wǎng)頁時,該模塊都會讀出當前網(wǎng)頁元素的內(nèi)容并重新計算其數(shù)字水印,然后與之前存儲的數(shù)字水印進行對比。一旦發(fā)現(xiàn)網(wǎng)頁被非法修改,即兩次所比對的數(shù)字水印不同,就會馬上進行網(wǎng)頁的自動恢復,從而保證了非法網(wǎng)頁內(nèi)容不被公眾所瀏覽到[4-5]。
本系統(tǒng)要研究的主要內(nèi)容是:在Web服務器核心內(nèi)嵌防篡改系統(tǒng)中,發(fā)布服務器要將文件分布式的傳輸?shù)蕉鄠€Web服務器上,即達到分布式發(fā)布的目的;一旦Web服務器上的文件被篡改,則能進行文件的自動恢復。
系統(tǒng)的具體實現(xiàn)過程是通過發(fā)布服務器端和Web服務器端來分別進行發(fā)布和接收操作的[6-7]。發(fā)布服務器是存在于內(nèi)網(wǎng)中的一臺獨立的服務器,外部不能進行訪問。如圖1所示。
在本系統(tǒng)中,方案是用來標注一次具體的分發(fā)任務的,即為一次完整的任務。方案分類是用來劃分方案的父分類。一個方案可以被歸為某個方案分類下也可以單獨存在。
1)在發(fā)布服務器端分發(fā)任務的時候采用方案的方式統(tǒng)一進行管理,傳輸時也采用方案的編號進行數(shù)據(jù)傳輸。方案可以選擇本地的目錄規(guī)則下的文件。
2)文件水印文件是對服務器本地規(guī)則目錄中文件的文件描述編碼信息。
圖1 系統(tǒng)的實現(xiàn)過程Fig.1 System implementation process
文件水印文件采用目錄和文件一一對應的存放方式,文件中存放該對應文件的當前版本號,水印編碼,大小,日期等信息。分發(fā)時候,對該目錄文件打包成zip文件進行發(fā)送,增量發(fā)布時只對增量發(fā)布文件打包成zip文件進行發(fā)送。
3)每個方案在發(fā)布時都給定一個版本號,用來標注此次發(fā)布任務的版本的更新情況,稱大版本號。因此發(fā)布服務器端在與Web服務器端建立連接時首先要比較大版本號。如果大版本號相同,說明Web服務器端與發(fā)布服務器端的版本相同,不需要進行文件傳輸。如果版本號不同,則發(fā)布服務器分為整體更新和增量更新兩種方式進行文件傳輸。整體更新就是發(fā)布服務器會把文件水印文件關系全部發(fā)送給Web服務器,Web服務器與本地進行比較,獲取到更新文件列表,再向發(fā)布服務器獲取所要更新的文件。增量更新就是發(fā)布服務器在發(fā)布文件后只把發(fā)布文件的更新水印文件發(fā)送給Web服務器端,Web服務器進行本地比較后獲取更新列表,再向發(fā)布服務器獲取要更新的文件。
4)發(fā)布服務器啟動后會根據(jù)本地方案中配置的Web服務器進行連接,如果能連接到Web服務器,發(fā)布服務器會在內(nèi)存中生成一個令牌對應Web服務器(該令牌的規(guī)則為,本地方案編號和該Web服務器端的服務器編號)。Web服務器端以后在訪問發(fā)布服務器時必須提供該令牌信息,驗證通過后才能進行其他操作,不然就是非法連接,不對其進行相應。發(fā)布服務器對Web服務器端的文件下載采用一個downlod.jsp方式進行。下載時,Web服務器端要對發(fā)布服務器發(fā)送令牌,密碼,文件名稱等信息進行身份的核對。如果Web服務器端失去連接而要再次連接發(fā)布服務器時,發(fā)布服務器會驗證該Web服務器端是否在本地配置的服務器列表中,如果在就生成新的令牌發(fā)送給Web服務器端,并且更新本地的令牌對應Web服務器。發(fā)布服務器會定時輪詢每個配置的Web服務器端,如果某個Web服務器端無響應,就把該Web服務器的狀態(tài)設置為無響應。
1)Web服務器端也需要配置自己的方案屬性用來接收發(fā)布服務器傳輸目錄的本地處理操作。Web服務器端在啟動后也會連接發(fā)布服務器,如果發(fā)布服務器端中有該Web服務器端的方案信息,發(fā)布服務器也會向Web服務器端發(fā)送大版本號,Web服務器端進行版本比較更新工作。如果發(fā)布服務器端中沒有Web服務器端的配置信息,不會向Web服務器端發(fā)送任何信息。
2)Web服務器端向發(fā)布服務器獲取文件時,采用http方式,多線程斷點續(xù)傳下載服務器文件。Web服務器端需要在配置文件中配置遠程服務器信息,用于在本地重新啟動時連接遠程服務器使用。
3)Web服務器端的方案分類規(guī)則同發(fā)布服務器端的方案分類規(guī)則。
系統(tǒng)在實現(xiàn)的過程中采用SOA架構(gòu),其所有的模塊均利用JSP+JavaBean的技術來實現(xiàn),并且選用了MySQL數(shù)據(jù)庫來進行數(shù)據(jù)的處理。SOA架構(gòu)是一種粗粒度、開放式、松耦合的服務結(jié)構(gòu)。系統(tǒng)采用這這種分層設計體系可以使軟件產(chǎn)品變得更加彈性和靈活,且盡可能的與第3方軟件產(chǎn)品互補兼容。
系統(tǒng)的實現(xiàn)選用了MySQL數(shù)據(jù)庫。主要包括了服務器表、方案分類表、本地目錄規(guī)則表等。表1是服務器表,它是系統(tǒng)最主要的表,存放了當前服務器的類型、名稱、IP以及密碼等信息。表2是方案分類表,存放了分類名稱、父分類編號等信息。表3是本地目錄規(guī)則表,存放了規(guī)則的名稱、目錄、以及目錄的類型。
表1 服務器表Tab.1 Server table
表2 方案分類表Tab.2 Program classification table
Server類:服務器實體類,用于說明當前服務器的類型,是發(fā)布服務器還是Web服務器,當前服務器的狀態(tài)是連接正常還是未響應。
表3 本地目錄規(guī)則表Tab.3 Local directory rule table
Projectcategory類:方案分類實體類,定義方案的編號、分類名稱、以及父分類名稱。
DirectoryList類:本地目錄規(guī)則類,定義規(guī)則的編號、規(guī)則的名稱、目錄的類型,說明該目錄是發(fā)布服務器端的還是Web服務器端的。
Directorywatermark類:水印文件類,定義了水印文件的路徑、日期、大小、水印值、以及版本號等。
Poject類:方案實體類,定義了方案的編號、名稱、大版本號、方案的分類信息等。
ServerManage類:服務器管理類,用于獲取所有的服務器列表、根據(jù)方案編號獲取到該方案下的服務器列表、存儲更新一個服務器、根據(jù)服務器編號獲取服務器。
ProjectcategoryManage類:方案分類管理類,用于根據(jù)分類編號獲取所有方案以及存儲更新。
DirectoryListManage類:本地目錄規(guī)則管理類,用于根據(jù)方法編號獲取到本地目錄規(guī)則以及存儲更新。
ProjectManage類:方案管理類,用于初始化連接,發(fā)布服務器端與Web服務器端的連接、令牌的比較、存儲刪除一個方案、比較水印文件、獲取遠程服務器文件。
Manage類:管理類,用于獲取管理類實例、獲取到所有方案信息、執(zhí)行生成發(fā)布服務器端與Web服務器端的方案。
發(fā)布服務器端的主界面如下:
每次分發(fā)任務時都建立一個相應的方案,不同方案的方案編號不同。方案的分類是用來劃分方案的父分類。方案可以屬于某個方案分類也可以沒有方案分類。分類下的方案可以在不同的分類下剪貼。Web服務器數(shù)量是每個方案下,發(fā)布服務器端所要發(fā)送給的Web服務器的數(shù)量。本地目錄數(shù)量是在每個方案下,發(fā)布服務器端要發(fā)送的文件的在本地中存在位置的數(shù)量。方案版本號是每次發(fā)布任務時給定的一個版本的編號,用來區(qū)分版本的新舊。
圖2 發(fā)布服務器端主界面Fig.2 Release the main interface of the server-side
Web服務器端的主界面如下:
Web服務器端的方案分類規(guī)則同發(fā)布服務器端的方案分類規(guī)則。
服務器方案編號是在這個方案下,發(fā)布服務器要進行傳輸?shù)哪硯讉€Web服務器中,此Web服務器的編號,用來區(qū)分發(fā)布任務的。
圖3 Web服務器端主界面Fig.3 Main interface of the Web server side
本系統(tǒng)最終能夠?qū)崿F(xiàn):將要發(fā)布的文件傳輸?shù)蕉鄠€Web服務器上,即達到分布式發(fā)布的目的,并且能夠保證頁面的完整性和保密性。當篡改檢測模塊使用數(shù)字水印技術檢測出了某Web服務器上的文件發(fā)生了改變 (也就是文件已經(jīng)被篡改),則能對該Web服務器進行文件的即時恢復,即從原始庫同步復制到相應的Web服務器上,最終達到網(wǎng)頁防篡改的目的。
[1]高延玲,張玉清.網(wǎng)頁保護系統(tǒng)綜述[J].計算機工程,2004,30(10):6-9.
GAO Yan-ling,ZHANG Yu-qing.Web protection system review[J].Computer Engineering,2004,30(10):6-9.
[2]楊飛.網(wǎng)頁防篡改技術[J].計算機安全,2008(7):8-32.
YANG Fei.Web anti-tampering technology[J].Computer Security,2008(7):8-32.
[3]陳寧江,杜凡遠.網(wǎng)頁防篡改應用技術分析[J].計算機應用,2009,61(3):5-21.
CHEN Ning-jiang,DU Fan-yuan.Webpagetamper-proof application technology analysis[J].Computer Application,2009,61(3):5-21.
[4]楊敏.網(wǎng)頁防篡改安全研究[J].中國高新技術企業(yè),2010(17):7-19.
YANG Min.Webpage tamper-proof security research[J].Chinese High-tech Enterprise,2010(17):7-19.
[5]牛少彰,江為強.網(wǎng)絡的攻擊與防范—理論與實踐[M].北京:北京郵電大學出版社,2006.
[6]陳繪絢.淺析數(shù)據(jù)備份技術的實現(xiàn)方法[J].中國科技信息,2005(18):7-22.
CHEN Hui-xuan.Analysis of data backup technology[J].China Science and Technology,2005(18):7-22.
[7]Ryutov T.Integrated aeeess control and intrusion deteetion forweb servers [C]//Proc ofthe 23rd International Confereneeon Distributed Computing Systems,2003:43-65.