專利名稱:一種基于數字簽名的網站安全保護方法及系統的制作方法
技術領域:
本發明涉及網絡安全技術,特別涉及一種保護網站安全的方法及系統。
背景技術:
黑客網站通過SQL注入、跨站腳本攻擊等手段入侵WEB服務器,非法篡改網頁內 容,影響企事業單位正常業務的展開,損害企事業單位聲譽;或是植入惡意代碼,使普通用 戶在訪問網站時被自動植入木馬和病毒,進而導致系統崩潰或是機密信息被攻擊方竊取。現有的WEB站點安全防范技術主要體現在加強系統防御功能方面。安裝系統補 丁,更換更高強度的口令和密碼;以及經常對網站進行風險評估,及時發現網頁上的各種漏 洞。目前比較常用的一種方法是使用TOB應用安全掃描系統。它的工作流程如圖1所 示。它以基于OWASP的10大漏洞分類建立的Web應用漏洞特征庫為依據,對Web網站進行 拓撲遍歷和網頁代碼分析,找出頁面中可能成為攻擊目標的標記類型和標記數據。并與漏 洞特征庫相關聯,得到相關漏洞類型,然后以此為根據針對性的構造攻擊測試消息,實施模 擬探測攻擊,找出應用程序開發代碼和Web運行系統中存在的安全漏洞,為開發者的代碼 優化、管理者的安全配置和安全專家的安全分析提供報告。然而,這種技術屬于被動防御技術,重點在于查找網站漏洞,增強網絡的防御功 能,而對于已經入侵的攻擊檢測無法實時高效的發現并采取相應的防御手段。還有些網站使用數字簽名來鑒別網頁是否被篡改,確認網站是否受到攻擊。如圖 2所示。對于需要保護的網頁,在上傳發布給外界INTERNET時,為其生成加密的數字簽名 Ekks(h)。將這些數字簽名以二元組的形式組織為鏈表存入內存安全區中,管理員每次更新 網頁重新計算數字簽名更新鏈表。當用戶申請訪問頁面時,監控程序依據網頁Fwebpage的id 查詢數字簽名鏈表,將該網頁的數字簽名信息Ekks(h)解密,得到的頁面真實的摘要信息與 被訪問文件進行HASH計算后的摘要信息相比較,判斷網頁是否原始,發現網頁被篡改則采 取報警、日志記錄、阻斷、恢復等措施。該技術計算出的數字簽名保存在內存中,每次更新都需要更新數字簽名鏈表,若 用戶通過瀏覽器下載的網頁中不含數字簽名,拷貝到其他環境則無法檢測,而且若用戶長 時間沒有申請訪問被篡改的頁面,則不能及時的發現網站已受到攻擊。綜上所述,目前的保護網站安全的方法多屬于被動防御,對于一些可以運用數字 簽名主動防御的方法,監控機制也不完善,無法保證及時有效的發現并阻止網站受到的攻 擊,而且若網頁被下載到其他環境,則會脫離數字簽名的保護。
發明內容
本發明提供的一種保護網站安全的方法及系統,用來解決現有技術中存在的不能 保證進行及時有效的主動防御的問題。一種基于數字簽名的網站安全保護方法,包括
將網站中動態網頁靜態化,同時將經過私鑰加密后的長度信息、時間戳及數字摘 要打包成為一個隱藏的TAG,作為數字簽名嵌入原網頁代碼中;按設定機制監控網頁,檢測數字簽名,判斷網頁是否被篡改、刪除,網站是否被攻 擊,進而實施安全操作;監控網頁的機制為設定多個網頁監控警戒級別;正常狀態下按檢測間隔時間監 控網頁,發現網頁被惡意篡改,則說明網站被攻擊,立即記錄在案,發出報警,并自動從網頁 數據庫中重新生成該頁面;恢復網頁的同時,警戒級別提升,檢測間隔時間縮短,若檢測到 攻擊活動尚未停止,繼續提升警戒級別,縮短檢測時間,直至實時檢測;一段時間內沒有再 次發現網頁被篡改,則逐步降低檢測警戒級別,恢復原檢測間隔;判斷網頁是否被篡改、刪除的方法為按照網頁ID逐一檢測網頁,若發現某一 ID 的網頁不存在,說明網頁被攻擊者刪除,網站被攻擊;提取網頁中隱藏TAG,使用公鑰解密, 得到原網頁長度信息、時間戳及數字摘要;計算現網頁長度,與原網頁長度對比,不相同時 說明網頁被篡改,相同時比較下一項;提取現網頁時間戳,與原網頁時間戳對比,不相同時 說明網頁被篡改,相同時比較下一項;使用相同的函數計算現網頁數字摘要,與原網頁數字 摘要對比,不相同時說明網頁被篡改,相同時說明網頁安全,檢測下一個網頁。一種基于數字簽名的網站安全保護系統,包括網頁數據庫,用于保存各種網頁信息;維護終端,供企業內部工作人員對網站內容進行更新維護;動態網頁服務器,用于生成動態頁面;網頁快照服務器,用于將動態頁面轉化為靜態頁面,同時向其中嵌入數字簽名;靜態網頁服務器,用于對外發布靜態頁面;網頁監控服務器,用于監控靜態網頁服務器中的網頁是否被篡改刪除;系統中各裝置的工作流程包括使用維護終端更新網站信息,網站更新的內容存入網頁數據庫,動態網頁服務器 從數據庫中提取數據,為企業內部提供實時的動態網頁顯示;網頁快照服務器從數據庫中提取更新數據,同時運用網頁緩存快照程序,定期生 成網頁快照,把PHP等腳本動態產生的網頁,以HTML靜態頁面的形式固定下來,每個靜態頁 面的ID信息保存在網頁數據庫中;網頁快照服務器同時在網頁代碼中嵌入了隱含的數字簽名,含有數字簽名的靜態 網頁上傳到靜態服務器發布到外部網;監控服務器按設定機制檢測靜態網頁,一旦發現網頁被篡改,立即記錄在案,發出 報警,并自動從網頁數據庫中重新生成該頁面。本發明實施例通過對數字簽名的監控機制,可以及時有效的發現哪些網頁的代碼 被攻擊者惡意篡改,并馬上做出安全響應措施。而且本發明實施例采用的是將網頁靜態化 后再發布的方法,不僅便于數字簽名的嵌入,而且能夠顯著減輕網站負載,并充分發揮本地 緩存、代理緩存的優勢,因此還能有效提升動態網站性能。而且相應網頁的數字簽名不是存 儲在服務器中的某塊區域,而是直接嵌入到靜態網頁中,即使改變系統,或是將網頁拷貝到 其他環境,仍然可以檢查網頁的安全性。
圖1為現有技術TOB應用安全掃描系統的方法流程示意圖;圖2為現有技術應用數字簽名檢測網頁是否被篡改的方法流程示意圖;圖3為本發明實施例系統裝置構架圖;圖4為本發明實施例靜態網頁中嵌入數字簽名流程示意圖;圖5為本發明實施例帶數字簽名的網頁檢測流程示意圖;圖6為本發明實施例靜態網頁監控方法流程示意圖。
具體實施例方式針對現有技術存在的不能及時有效的為網站安全進行主動防御的問題,本發明實 施例在將網站中動態網頁靜態化的同時,向其中嵌入了隱藏的數字簽名;通過本發明預先 設定的監控機制檢測網站中的網頁,可以判斷出網頁是否被非法篡改、刪除,即網站是否被 攻擊,若網站被攻擊,則馬上記錄在案,發出報警,并自動從網頁數據庫中重新生成相應頁 面,從而解決了上述問題。如圖3所示,本發明實施例提供的網站安全保護系統,包括維護終端、網頁數據 庫、動態網頁服務器、網頁快照服務器、靜態網頁服務器及網頁監控服務器。本系統中的服務器、數據庫均指邏輯服務器,可以是物理機器、虛擬機或程序模 塊。維護終端、網頁數據庫、動態網頁服務器、網頁快照服務器及網頁監控服務器均處 于企業內部網中,采取隔離措施,避免被攻擊者直接訪問,以策安全。維護終端供企業內部工作人員對網站內容進行更新維護。網頁數據庫用于保存各種網頁信息。如網站更新信息、靜態網頁ID等。動態網頁服務器用于生成動態頁面。網頁快照服務器用于將動態頁面轉化為靜態頁面,同時向其中嵌入數字簽名等信 肩、ο靜態網頁服務器用于對外發布靜態頁面。網頁監控服務器用于監控靜態網頁服務器中的網頁是否被篡改刪除。網站安全保護系統工作流程包括內部網維護過程,企業內部工作人員使用維護終端更新網站信息,網站更新的內 容存入網頁數據庫中,動態網頁服務器從數據庫中提取數據,為企業內部人員提供實時的 動態網頁顯示,以方便管理員修改和查看。靜態網頁監控過程,網頁快照服務器從數據庫中提取更新數據,同時運用相應的 網頁緩存快照程序,通過定期生成網頁快照的方式,把PHP等腳本動態產生的網頁,以HTML 靜態頁面的形式固定下來,并在網頁代碼中嵌入了隱含的數字簽名。該數字簽名與網頁文 件內容、大小、更新時間都有關。攻擊者也許能夠找到漏洞篡改網頁,但無法偽造數字簽名。 監控服務器按一定機制檢測靜態網頁,一旦發現網頁被篡改,立即記錄在案,發出報警,并 自動從網頁數據庫中重新生成該頁面。如圖4所示,本發明實施例中向靜態網頁嵌入數字簽名等加密信息的方法步驟包 括
步驟401、網頁快照服務器提取數據庫中信息,翻譯、解析PHP等動態網頁文件,將 生成的結果存入靜態HTML文件中,令生成的文件為Fweb。具體的網頁靜態化過程屬于公知 技術,不再敘述。步驟402、對生成的HTML文件選用某一 HASH函數進行運算,生成唯一的數字摘要 h,即h = H(Fweb)。計算網頁的長度,得到Fweb的長度信息L,同時提取網頁時間戳T。步驟403、將數字摘要h、Fweb的長度信息L和時間戳T分別使用私鑰加密,得到 加密后的數字簽名E(h),E(L) ,E(T)0數字簽名加密屬于公知技術,不再詳述。步驟404、將數字簽名E (h)、E(L)、E(T)打包作為一個Tag嵌入到靜態網頁Fweb 中,得到帶數字簽名的靜態網頁SignFweb,數字簽名是網頁SignFweb中的隱藏信息。步驟405、將帶有數字簽名的靜態網頁SignFweb上傳到靜態服務器以供發布,同 時在網頁數據庫中保存SignFweb的ID記錄,以便檢測網頁缺失。其中,步驟402中,針對網站的具體情況,如網頁大小,服務器運算能力等,確定具 體的HASH算法。比如,在綜合考慮摘要位數、算法安全性、運算速度等的基礎上,IOM以下的 網頁采用SHA-I算法,IOM以上的網頁采用MD5算法,在速度與安全性中保持一個均衡。步驟403后,將與加密用私鑰對應的公鑰通過安全途徑發送至網頁監控服務器 中。假設加密后的網頁長度E (L)為84672366,加密后的時間戳信息E⑴為 65275046947032,加密后的數字簽名 E(h)為 02a7c58blebd22a96554879694b091e60411cc4 dea8652bb807234fa06bbfb20e71ecf525f29df58e28f3d9bf541f7ebcef62b89fde4d8e7bale 6cc9ea24850478cll742f5cfald23fe22fe8bfbal^e。則在原靜態網頁 HTML 代碼后添加如下
隱藏代碼< !—<sign><length>84672366</length><uptime>65275046947032</uptime><digital>02a7c58blebd22a96554879694b091e60411cc4dea8652bb807234fa06bb fb20e71ecf525f29df58e28f3d9bf541f7ebcef62b89fde4d8e7bale6cc9ea24850478cll742-f5cfald23fe22fe8bfbab5e</digital></sign>—>得到類似如下形式的靜態網頁<html><head><title> 靜態網頁標題 </title></head><body>網頁內容</body></html>< !—<sign><length>84672366</length>
<uptime>65275046947032</uptime><digital>02a7c58blebd22a96554879694b091e60411cc4dea8652bb807234fa06bb fb20e71ecf525f29df58e28f3d9bf541f7ebcef62b89fde4d8e7bale6cc9ea24850478cll742-f5cfald23fe22fe8bfbab5e</digital></sign>—>在監控過程中,則采取相應程序根據<sign>標簽的內容將加密后的網頁長度、時 間戳和數字摘要信息相應提取出來。如圖5所示,本發明實施例中檢測靜態網頁是否為原網頁的方法步驟包括步驟501、檢測用戶請求的HTML文件SignFweb’,將文件中的嵌入的隱藏Tag分離 出來,得到靜態HTML文件Fweb’與數字簽名。步驟502、使用安全接收的公鑰對提取出來的加密TAG解密,得到原本的數字摘要 h,原始網頁長度L,原始網頁時間戳T。步驟503、計算HTML文件Fweb’的大小,得到文件長度L’。比較L與L’,若兩者相 等,則繼續比較下一項;若兩者不等,則拋棄該網頁,重新生成安全頁面。步驟504、提取HTML文件Fweb’的時間戳T’,與隱藏Tag中的時間戳T相比較,若 兩者相等,則繼續比較下一項;若兩者不等,則拋棄該網頁,重新生成安全頁面。步驟505、對得到的靜態HTML文件Fweb’進行與上傳過程中相同的HASH運算,得 到新的數字摘要h,=H(Fweb,)。步驟506、檢測h與h’是否相等。若h = h’,說明網頁還是快照服務器生成的原 始網頁,沒有被攻擊者惡意篡改過,可以安全發布給用戶。若h興h’,則說明網頁已經被修 改,代碼中含有不安全的內容,馬上丟棄該網頁并記錄在案,加強警戒級別,同時重新生成 該網頁。如圖6所示,本發明實施例中網頁監控服務器監控網頁的具體流程為正常狀態下,監控服務器按照存儲的網頁ID記錄每隔5分鐘檢測一次網頁。一旦 發現網頁被篡改,立即記錄在案,發出報警,并自動從網頁數據庫中重新生成該頁面。若發 現相應ID的網頁不存在,則說明網頁被攻擊者刪除,同樣記錄并報警,重新生成頁面;恢復網頁的同時,監控服務器的警戒級別會提升,檢測間隔從5分鐘縮短為1分 鐘。而一旦再有發現,表明攻擊活動尚未停止,警戒級別會逐步提升,檢測間隔縮短為30 秒、10秒、直至實時,從而能夠迅速恢復網頁;如果一段時間內沒有再次發現網頁被篡改,又會自動恢復前一警戒級別,檢測間 隔也延長為前一級檢測間隔,檢測間隔逐步增長,在攻擊活動停止的情況下,最終恢復到5 分鐘的間隔。其中,監控的警戒等級及監控時間間隔可根據實際情況自行設定。舉例說明幾種可能的攻擊場景場景1、攻擊者篡改網頁內容,靜態網頁檢測程序計算現網頁數字摘要,與原網頁 的數字摘要進行對比。數字摘要與網頁的大小、內容都有關,HASH函數生成的散列值具有 唯一性,哪怕只改變了頁面中一個字符,生成的散列值也不相同。場景2、如果攻擊者將網頁中的數字簽名分離,用相同的HASH函數生成數字摘要
7嵌入文件偽裝數字簽名,也是不成功的。因為攻擊者沒有給數字簽名加密用的私鑰,這樣在 私鑰公鑰不對稱的情況下,解密出的數字摘要也不會與偽裝的數字摘要相同,同樣說明網 頁已經被篡改。所以攻擊者也許能夠找到漏洞篡改網頁,但無法偽造數字簽名。
場景3、攻擊者直接刪除網頁。因為每個生成的靜態網頁在上傳到靜態網頁服務器 的過程中都在監控服務器中保留了一個相應的ID,若監控服務器找不到與該ID對應的網 頁,則說明它被攻擊者刪除,同樣記錄在案,提高警戒并重新生成該頁面。
權利要求
1.一種基于數字簽名的網站安全保護方法,其特征在于,該方法包括將網站中動態網頁靜態化,同時將經過私鑰加密后的長度信息、時間戳及數字摘要打 包成為一個隱藏的TAG,作為數字簽名嵌入原網頁代碼中;按設定機制監控網頁,檢測數字簽名,判斷網頁是否被篡改、刪除,網站是否被攻擊,進 而實施安全操作;監控網頁的機制為設定多個網頁監控警戒級別;正常狀態下按檢測間隔時間監控網 頁,發現網頁被惡意篡改,則說明網站被攻擊,立即記錄在案,發出報警,并自動從網頁數據 庫中重新生成該頁面;恢復網頁的同時,警戒級別提升,檢測間隔時間縮短,若檢測到攻擊 活動尚未停止,繼續提升警戒級別,縮短檢測時間,直至實時檢測;一段時間內沒有再次發 現網頁被篡改,則逐步降低檢測警戒級別,恢復原檢測間隔;判斷網頁是否被篡改、刪除的方法為按照網頁ID逐一檢測網頁,若發現某一 ID的網 頁不存在,說明網頁被攻擊者刪除,網站被攻擊;提取網頁中隱藏TAG,使用公鑰解密,得到 原網頁長度信息、時間戳及數字摘要;計算現網頁長度,與原網頁長度對比,不相同時說明 網頁被篡改,相同時比較下一項;提取現網頁時間戳,與原網頁時間戳對比,不相同時說明 網頁被篡改,相同時比較下一項;使用相同的函數計算現網頁數字摘要,與原網頁數字摘要 對比,不相同時說明網頁被篡改,相同時說明網頁安全,檢測下一個網頁。
2.一種基于數字簽名的網站安全保護系統,其特征在于,該系統包括 網頁數據庫,用于保存各種網頁信息;維護終端,供企業內部工作人員對網站內容進行更新維護; 動態網頁服務器,用于生成動態頁面;網頁快照服務器,用于將動態頁面轉化為靜態頁面,同時向其中嵌入數字簽名; 靜態網頁服務器,用于對外發布靜態頁面;網頁監控服務器,用于監控靜態網頁服務器中的網頁是否被篡改刪除; 系統中各裝置的工作流程包括使用維護終端更新網站信息,網站更新的內容存入網頁數據庫,動態網頁服務器從數 據庫中提取數據,為企業內部提供實時的動態網頁顯示;網頁快照服務器從數據庫中提取更新數據,同時運用網頁緩存快照程序,定期生成網 頁快照,把PHP等腳本動態產生的網頁,以HTML靜態頁面的形式固定下來,每個靜態頁面的 ID信息保存在網頁數據庫中;網頁快照服務器同時在網頁代碼中嵌入了隱含的數字簽名,含有數字簽名的靜態網頁 上傳到靜態服務器發布到外部網;監控服務器按設定機制檢測靜態網頁,一旦發現網頁被篡改,立即記錄在案,發出報 警,并自動從網頁數據庫中重新生成該頁面。
全文摘要
本發明公開了一種基于數字簽名的網站安全保護方法,該方法包括將網站中的動態網頁靜態化;靜態化的同時,向網頁中嵌入隱藏的數字簽名;通過設定機制檢測數字簽名,可以鑒別出網頁是否被惡意篡改或刪除,進而實施安全操作。通過本發明解決了現有技術中存在的網站主動防御能力不足,以及下載到其他環境的網頁不再受到簽名保護的問題。本發明同時公開了一種保護網站安全的系統。
文檔編號H04L9/32GK102111267SQ20091024425
公開日2011年6月29日 申請日期2009年12月28日 優先權日2009年12月28日
發明者包一兵, 杜曉峰, 趙晨, 辛陽 申請人:北京安碼科技有限公司