隨著信息技術的不斷發展,互聯網已經成為信息傳播、流通、交換及存儲的重要手段。信息高速公路的興建使人類完全突破了傳統的信息獲取方式,各國存儲在計算機中的資料都在逐漸增加,對信息的保護比以往更加重要也更加困難。由于Internet是個開放的網絡,網站發布的信息一天二十四小時都在被查詢、閱讀、下載或轉載。網站內容復制容易,轉載速度快,網頁如果被篡改,后果難以預料,篡改網頁將會被迅速、廣泛傳播,從而直接危害網站的利益。
“基于WEB架構的密碼安全防護”是采用事件觸發、核心內嵌雙重安全保護機制,同時結合數字證書技術與安全傳輸技術,并且遵循Internet相關標準協議的網頁防篡改的網絡安全防護系統。本文針對中小型網站進行詳細的介紹。
中、小型網站通常使用專門的服務器主機,并有專門人員負責維護。此外,目前的中、小型網站以發布消息為主,且更新頻率不高。因此,中、小型網站的信息流向比較單純,權限劃分比較明確。根據中、小型網站的上述特點,我介紹一種基于USB Key的中、小型網站保護系統。
該系統由硬件和軟件兩部分組成。硬件部分包括兩個 USB Key,分別命名為監控Key和授權Key,軟件部分則包括監控軟件和管理軟件。
(1)監控 Key。監控 key是通過硬件方式實現網站備份數據安全存儲的設備。在對監控key進行初始化操作時站數據寫入到監控key,作為自動恢復時所使用的備份數據。監控key內部的運算單元根據寫入的數據計算相應的數字摘要,作為監控時比對的憑據。生成的數字摘要存儲在監控Key內部,對于訪問監控key的外部進程是不可見的。寫入監控key 的網站數據能夠被訪問監控key的外部進程讀取,但是不能修改或者刪除,只有在檢測到授權key并通過認證的情況下,才可以對寫入監控key的網站數據進行更新。
為了對授權key 進行驗證,在對監控key進行初始化操作時還將寫入與授權Key對應的公鑰。驗證授權key時,監控key 隨機生成一個字符串作為認證消息,將認證消息發送給授權key,接收來自授權key的加密結果并且用公鑰進行解密,將解密后的結果與本次的認證消息進行對比,如果二者一致,則通過驗證。驗證授權 key之后,可以通過管理工具向監控 Key 重新寫入網站數據,寫入完畢后,監控key內置的運算單元在此計算相應的數字摘要,作為今后對比的依據。
套件運行時,監控key始終通過USB接口連接到網站服務器主機,接收監控軟件發來的消息,與監控key內部的數字摘要進行比對,如果二者不一致,則認為網站數據被非法篡改。此時,監控軟件從監控key 中讀取備份的網站數據,用備份數據覆蓋被篡改的網站,從而實現自動恢復。
(2)授權key。授權key是通過硬件方式對監控key的操作權限進行控制的設備。只有當授權Key 經監控key的驗證之后,才能夠通過管理工具向監控 key 重新寫入網站數據,否則監控key中的數據禁止更改。
在對授權 key進行初始化操作時,授權 key 內部生成一對RSA密鑰,其中的公鑰在對監控key進行初始化操作時寫入監控key。當授權key 被監控key驗證身份時,二者同時通過usb接口連接到主機,監控key隨機生成一個字符串作為認證消息,將認證消息發送給授權key。授權key通過內部的運算單元將收到的消息用私鑰進行加密,將結果發送給監控key,監控key驗證完畢之后將結果發給授權key,授權key在內部記錄日志。通過管理工具,可以查看和到處授權key中存儲的日志。
授權key由網站維護人員負責保管,平時不與網站服務器主機相連接,只有在需要修改網站數據,監控key中的數據也需要同步更新時,經網站維護人員許可,將授權Key連接到主機。授權key接受監控key發來的消息,用私鑰對消息進行加密,將加密后的結果發送給監控key,驗證通過后,取得對監控Key中存儲的網站數據進行改寫的權限。操作完畢之后,應當將授權key從主機拔下。
(3)監控軟件和管理軟件。監控軟件是對網站數據進行監視,發現網站數據被非法篡改的軟件。監控軟件以后臺進程方式在網站服務器主機運行,在設定的時間間隔內提取網站數據并且計算相應的數字摘要,將計算結果發給監控Key。如果監控key的比對結果為二者一致,則繼續監控;否則,認為網站數據被非法篡改,從監控key中讀取備份數據,用備份的網站數據覆蓋被篡改的網站,從而實現自動恢復網站的數據功能。在恢復網站數據的同時,監控軟件還可以記錄日志,便于日后審計。管理軟件是對key進行初始化等管理操作的應用程序。只有通過管理軟件,才能夠對監控key和授權key以及監控軟件進行管理。管理軟件功能包括:查看和到處授權key的日志;設定監控軟件提取網站數據的時間間隔,查看和福祉監控軟件的日志。
(1)初始化。監控key和授權key初始化的流程如圖1所示。授權key和監控key同時通過USB接口連接到主機。授權key內部生成一對RSA密鑰,其中的公鑰寫入監控key。網站數據寫入監控key,作為自動恢復時所用的備份數據。監控key內部的運算單元根據寫入的數據計算相應的數字摘要,作為監控時比對的依據。初始化完成后,拔下授權key,啟動監控軟件,開始日常運行。
(2)監控key通過USB接口與主機連接,監控軟件以后臺進程的方式在網站服務器主機運行。在設定的時間間隔內,監控軟件提取網站內容,計算數字摘要,將計算結果發給監控key。監控key接收到消息,將其與內部存儲的數字摘要進行對比,將結果發給監控軟件。如果比對結果為一致,監控軟件認為網站數據未被篡改,急需監控進程;否則,監控軟件認為網站數據遭到非法篡改,從監控key中讀取備份數據,自動恢復網站內容,并且記錄日志,便于日后審計。
(3)數據更新。當需要修改網站數據,監控 key中的數據也需要同步更新時,經網站維護人員許可,將授權key連接到主機。監控key隨機生成一個字符串作為認證消息,將認證消息發送給授權key,授權key用私鑰對監控key發來的消息進行加密,將加密后的結果發給監控key。監控key接受結果,用公鑰解密,將解密后的結果與本次認證消息進行對比,如果二者一致,則通過驗證。驗證通過后,可以通過管理工具軟件向監控key重新寫入網站數據,寫入完畢后,監控key內置的運算單元在此計算相應的數字摘要,作為以后比對的憑據。操作完成之后,將授權key從主機拔下,繼續進行日常運行。

圖1 流程圖
當內部人員修改網站內容時,現將授權key連接到主機并通過認證,然后才能修改網站內容,再將修改后的數據發送到監控key。監控 key更新所存儲的網站內容數據,生成并存儲新的數字摘要。數據更新時的流程圖1。
本系統以軟硬件結合的方式,將USB key應用于小型網站的監控和保護,具有以下幾點:
(1)監控流程由在主機上運行的軟件和與主機相對獨立的硬件共同完成,關鍵步驟在硬件內部進行。即使攻擊者以遠程方式控制主機,也難以控制硬件。
(2)發現網站內容被篡改之后可以自動恢復,大幅度降低了攻擊造成的不良影響。
(3)內部人員發布信息需要授權,便于內部審計。
本系統也存在一定的局限性。例如,套件的安全程度取決于監控進程的安全程度,當主機被入侵者控制時,在主機上運行的監控進程本身也同樣面臨威脅。此外,自動恢復網站數據的功能受限于監控key內部存儲空間的大小,應用于規模較大的網站時比較困難等等。