一種打印數(shù)據(jù)透明捕獲的方法
【專利摘要】本發(fā)明涉及計算機信息安全【技術領域】,具體涉及一種打印數(shù)據(jù)透明捕獲的方法。一種打印數(shù)據(jù)透明捕獲的方法,包括提供一打印安全管理系統(tǒng),所述提供一打印安全管理系統(tǒng)包括:提供服務端和客戶端,所述服務端至少包括:用于為打印安全系統(tǒng)提供基礎服務的打印安全管理支撐功能模塊、定義打印策略的策略模塊和為所述客戶端配置打印策略的維護管理模塊;所述客戶端執(zhí)行所述打印策略,且所述客戶端設有用于對打印進程的API進行控制的鉤子程序對打印動作進行判斷和做相應處理以控制打印行為。利用本發(fā)明的方法,可對文件打印的全生命周期進行管理,提供多種安全策略支持,構建了一個安全打印的工作環(huán)境,適用范圍廣。
【專利說明】一種打印數(shù)據(jù)透明捕獲的方法
【技術領域】
[0001]本發(fā)明涉及計算機信息安全【技術領域】,具體涉及一種打印數(shù)據(jù)透明捕獲的方法?!颈尘凹夹g】
[0002]信息技術的發(fā)展促進了人們的工作效率的提高,人們的生活、學習、工作越來越依賴于各種信息工具的使用;在實現(xiàn)對電子文件的信息防泄露管理的同時,需要實現(xiàn)對打印的紙質文件的控制,以防止紙質文件的泄密。另外,大量的打印行為、粗放的打印管理,也使企業(yè)的打印成本急劇上升。如何實現(xiàn)安全打印,并定量管理打印成本是非常值得關注的問題。為了解決上述問題,防火墻、防病毒軟件等一系列措施相繼出臺,使得電腦對于外部網絡的攻擊有了強大的防御力。然而,外部問題的解決并沒有緩解內部問題的日趨嚴重。不僅企業(yè)中內部泄露問題嚴重,個人隱私也不例外,這樣的例子在日常生活中屢見不鮮。
[0003]目前打印安全和打印成本控制主要采取打印機統(tǒng)一控制,需要人為的干擾,這種方式導致工作效率降低,而且不易管理;同時對于如何區(qū)別企業(yè)間的文件,也無法做到;打印成本更不易統(tǒng)計,從而得到控制打印成本的目的。
[0004]因此,如何解決打印安全和打印成本控制的問題,并且解決的方法簡單易行,可操作性強,適用性廣成為一個亟待解決的問題。
【發(fā)明內容】
[0005]本發(fā)明目的是:針對文件打印的過程中可能造成的安全隱患以及打印成本控制在現(xiàn)有技術環(huán)境下的局限性,本發(fā)明提供了一種打印數(shù)據(jù)透明捕獲的方法和系統(tǒng)。這種方法和系統(tǒng)對文件打印的全生命周期進行管理,提供多種安全策略支持,構建了一個安全打印的工作環(huán)境,適用范圍廣。這種方法和系統(tǒng)無需額外硬件支持,不改變用戶的操作習慣,性價比高。
[0006]為達到上述目的,根據(jù)本發(fā)明的一個方面,所提供的一種打印數(shù)據(jù)透明捕獲的方法包括提供打印安全管理系統(tǒng),所述提供打印安全管理系統(tǒng)包括:提供服務端和客戶端,所述服務端至少包括:用于為打印安全提供基礎服務的打印安全管理支撐功能模塊、定義打印策略的策略模塊和為所述客戶端配置打印策略的維護管理模塊;所述客戶端執(zhí)行所述打印策略,且所述客戶端設有用于對打印進程的API進行控制的鉤子程序對打印動作進行判斷和做相應處理以控制打印行為。
[0007]在一種【具體實施方式】中,所述鉤子程序存放在指定的動態(tài)鏈接庫中。
[0008]在一種優(yōu)選的實施方式中,所述服務端進一步包括組織機構模塊,所述組織機構模塊提供定義公司和部門、新增、刪除和修改用戶操作。
[0009]在一種優(yōu)選的實施方式中,所述服務器進一步包括統(tǒng)計報表模塊,所述統(tǒng)計報表模塊統(tǒng)一記錄所述客戶端的打印行為,根據(jù)定義不同打印紙張的單價,按照打印機、用戶、部門、時間、打印方式形成報表。
[0010]在一種優(yōu)選的實施方式中,所述服務端還包括用于監(jiān)控打印機的打印機管理模塊,所述打印機管理模塊根據(jù)日志的反饋更改用戶或打印機策略。
[0011]在一種優(yōu)選的實施方式中,所述服務端還包括產品信息模塊,所述產品信息模塊用于查看打印安全管理軟件的注冊信息,所述打印管理軟件的注冊信息包括產品版本、注冊號、授權點數(shù)、已授權點數(shù)以及提供更新授權注冊號功能。
[0012]在一種優(yōu)選的實施方式中,所述服務端還包括系統(tǒng)升級模塊,所述系統(tǒng)升級模塊用于統(tǒng)一下發(fā)升級補丁,實現(xiàn)所述客戶端的自動升級。
[0013]在一種優(yōu)選的實施方式中,所述客戶端包括登錄界面,以在開機啟動時彈窗輸入用戶名和密碼認證界面,且支持記住密碼和自動登錄。
[0014]在一種優(yōu)選的實施方式中,所述客戶端包括接入控制,在用戶未登錄時,不允許打印。
[0015]在一種優(yōu)選的實施方式中,打印時調用⑶I API時,同時創(chuàng)建一增強型圖兀文件,所述增強圖元文件可轉換成圖片并上傳至所述服務端。
[0016]根據(jù)本發(fā)明的另一方面,提供了一種包括上述服務端和客戶端的打印數(shù)據(jù)透明捕獲系統(tǒng)。
[0017]在windows系統(tǒng)下,點擊打印按鈕時,軟件會調用windows⑶I startdoc()函數(shù),打印每一頁時會調用windows⑶I startpage O,結束一頁調用endpage O ,結束打印調用enddocO等函數(shù),本發(fā)明系統(tǒng)的客戶端會對這些API進行過濾,當受控的進程調用這些API的時候實際上會執(zhí)行過濾函數(shù),會對打印動作進行判斷和做相應處理,這樣保證打印行為得到控制,并且整個文件的打印過程對用戶來說都是透明的。
[0018]在windows系統(tǒng)下,文件打印時,startdoc O函數(shù)開啟一個打印任務,在此函數(shù)內,可以執(zhí)行管理員配置的相關打印策略,包括允許打印的文件類型、允許打印時間、允許打印的打印機等。
[0019]在windows系統(tǒng)下,文件打印時,都是⑶I相關API在打印設備上繪制文字和圖形,然后打印驅動程序根據(jù)繪制命令在紙張上繪制,本系統(tǒng)通過API過濾技術截獲相關繪圖API,在另外一張同紙張相同大小的圖元文件上繪制,以獲取打印內容,如同快照功能一樣,最后以圖片形式展示在服務端上,供管理員審閱。
[0020]在windows系統(tǒng)下,文件打印時,打印的方式分為彩色打印和黑白打印,windows⑶I settextcolorO函數(shù)對打印文本內容可以控制打印色彩,對于一些不重要的文檔打印,完全可以控制其打印方式為黑白打印,以節(jié)約企業(yè)打印成本。
[0021 ] 水印功能也是打印的一項重要功能,通過水印功能可以區(qū)別企業(yè)間的文件,防止文件遺失。
[0022]從上述方案可以看出,本發(fā)明對打印行為可以得到全方位的控制,同時可以得到控制打印成本的效果。打印監(jiān)控過程對用戶透明,不改變用戶的操作習慣。使用直觀,操作便捷,適用面廣。
【專利附圖】
【附圖說明】
[0023]圖1為本發(fā)明中的打印安全管理系統(tǒng)架構示意圖;
圖2為Windows消息循環(huán)示意圖;
圖3為打印數(shù)據(jù)捕獲模型示意圖?!揪唧w實施方式】
[0024]本發(fā)明所提供的一種打印數(shù)據(jù)透明捕獲的方法包括提供一打印安全管理系統(tǒng)打印安全管理系統(tǒng),所述提供一打印安全管理系統(tǒng)包括:提供服務端和客戶端,所述服務端至少包括:用于為打印安全提供基礎服務的打印安全管理支撐功能模塊、定義打印策略的策略模塊和為所述客戶端配置打印策略的維護管理模塊;所述客戶端執(zhí)行所述打印策略,且所述客戶端設有用于對打印進程的API進行控制的鉤子程序對打印動作進行判斷和做相應處理以控制打印行為。
[0025]本發(fā)明中的打印安全管理系統(tǒng)采取服務端和客戶端類B/S架構模式,系統(tǒng)架構示意圖如圖1所示。
[0026]企業(yè)內部搭建服務端,所有客戶的信息,包括計算機信息、用戶信息、部門等全部集中在該服務端上,所有信息均為集中管理方式,管理員可以針對不同用戶分配不同權限。系統(tǒng)管理員統(tǒng)一指定客戶端用戶的權限,相應人員分別行使各自權限。
[0027]所述服務端可用于監(jiān)視所有客戶端(客戶端1-N)的打印行為。具體地,所述服務端包括用于為打印安全提供基礎服務的打印安全管理支撐功能模塊,提供打印安全系統(tǒng)的基礎服務。沒有后臺服務端的保障,打印安全管理系統(tǒng)則無法運行。所述服務端還包括策略模塊,主要是定義打印策略,對打印文件的類型、大小、打印時間和是否記錄源文件、打印成本、彩打、省墨、水印等操作進行控制。所述服務端還包括維護管理模塊,對授權用戶和計算機配置打印策略,觀察用戶和計算機的使用狀態(tài),管理公司組織架構信息。
[0028]所述客戶端包括執(zhí)行策略模塊,用于執(zhí)行管理員下發(fā)的策略,記錄用戶的打印行為,上傳用戶打印的文檔至服務端,控制用戶允許打印的時間和內容等。此外,所述客戶端還設有用于對打印進程的API進行控制的鉤子程序對打印動作進行判斷和做相應處理以控制打印行為。
[0029]本發(fā)明一個關鍵的技術是API過濾技術。所有的Windows應用程序的操作都需要調用系統(tǒng)API函數(shù)進行。但現(xiàn)有的API接口并不能滿足所有操作的要求,雖然也出現(xiàn)了很多高級編程技術,但某些功能的附加值卻無法實現(xiàn)??梢酝ㄟ^攔截相關API的請求進行跳轉函數(shù)來實現(xiàn)。這個過程涉及到Windows中的鉤子技術和API過濾兩個方面,將這兩方面的技術相結合就是本發(fā)明系統(tǒng)所需要的打印過濾模塊中所用到的API HOOK技術。
[0030]Windows消息掛鉤技術:
Windows中一個消息從產生到被處理分為五個步驟,其流程如圖2所示。
[0031]消息的處理流程如下:
Cl) Windows應用系統(tǒng)中觸發(fā)了某個事件。
[0032]系統(tǒng)將事件翻譯為相應的消息,并把消息放入消息隊列中。
[0033]3;通過調用GetMessage系統(tǒng),應用程序從消息隊列中取得消息并存放入TMsg記錄。
[0034]應用程序通過系統(tǒng)調用DispatchMessage把存放在TMsg記錄中的消息調度給操作系統(tǒng),并傳遞給一個適當?shù)拇翱谶^程。
[0035]通過調用應用程序的窗口處理函數(shù),操作系統(tǒng)處理傳遞的消息。[0036]上述步驟中3和4構成了消息系統(tǒng)中最關鍵的一個部分一消息循環(huán)。消息循環(huán)往往被認為是Windows應用程序的核心內容,因為消息循環(huán)使一個應用程序能夠響應外部事件。消息循環(huán)的任務是從消息隊列中檢索相關消息,然后將其分發(fā)給相關聯(lián)的窗口。如果消息隊列中不存在這樣的消息,Windows就允許其他應用程序去處理它們自己的消息。當有鉤子程序存在時,消息被傳遞給相應窗口的過程前,鉤子程序會截獲傳遞給窗口的消息,此時,Windows的消息傳遞過程會發(fā)生很大的改變。
[0037]鉤子的本質一種特殊的消息處理函數(shù),由系統(tǒng)調用。將鉤子掛入系統(tǒng),可以監(jiān)視系統(tǒng)進程的各種消息處理。每當消息發(fā)出時,相應的鉤子程序在這些消息被傳遞到窗口之前截獲它們,這樣,鉤子程序就獲得了消息的控制權,可以對消息進行自己的處理。鉤子在Windows消息處理機制中就充當一個監(jiān)視者的角色。鉤子可以監(jiān)視指定窗口的消息。鉤子機制允許鉤子程序在當消息到達后截獲并處理窗口消息。
[0038]還可以將鉤子理解為Windows留給應用程序開發(fā)的后門。當程序想控制硬件,例如鍵盤、鼠標等。Windows系統(tǒng)并不允許用戶直接操作硬件。但程序可以通過攔截鍵盤消息來達到控制鍵盤的目的,因為Windows是消息驅動。一般的程序都可以控制自己的進程,但想要控制其他進程或者所有進程的消息就必須使用鉤子來完成消息的捕獲和處理。本系統(tǒng)將鉤子處理程序放在指定的DLL (Dynamic Link Library,動態(tài)鏈接庫)中,一旦發(fā)送與掛鉤相關的消息,鉤子函數(shù)就能夠過濾該消息。
[0039]常用的鉤子按照事件分,主要分為五種類型:
處理鍵盤消息的鍵盤鉤子。
[0040]f處理鼠標消息的鼠標鉤子。
[0041]f處理各種Shell消息的外殼鉤子。
[0042]J從系統(tǒng)消息隊列中檢索各種事件消息的日志鉤子。
[0043]£處理與窗口過程相關的窗口過程鉤子。
[0044]按照鉤子的使用范圍分可以分為兩種:
I:線程鉤子,也稱局部鉤子,它只對指定線程進行掛鉤,截獲與指定線程相關的消息。
[0045]t系統(tǒng)鉤子,也稱全局鉤子,它監(jiān)聽的是系統(tǒng)中所有應用程序的事件消息,因此,鉤子函數(shù)所在的代碼會被注入到系統(tǒng)的每個進程中。有鑒于此,全局鉤子的鉤子函數(shù)必須放在獨立的DLL中,這樣系統(tǒng)會自動把該DLL注入到所有的進程空間中。
[0046]—旦設置了鉤子,系統(tǒng)就會建立一個鉤子鏈表。鉤子鏈表是用來存儲鉤子的指針列表,它的指針指向鉤子中的處理函數(shù),即鉤子的子程序的回調函數(shù)。類似于棧的后進先出的運作過程,最后安裝的鉤子放在鏈表中的最頂層,最先安裝的則放在鏈表的最底層,鉤子所捕獲的消息從表頭流向表尾,所以最后加入的鉤子優(yōu)先獲得控制權。當與鉤子類型相關聯(lián)的消息發(fā)生時,系統(tǒng)則將該消息傳到相應的鉤子子程序,這些程序中的回調函數(shù)會在消息到達窗口之前進行處理。
[0047]綜上所述,本系統(tǒng)將API過濾模塊用DLL來實現(xiàn),設置全局鉤子,對于在相關配置文件中所指定的需要進行過濾的應用軟件一旦發(fā)送與該全局鉤子相關聯(lián)的信息就過濾模塊所在DLL注入,進行API過濾模塊中的處理。具體地,設置在客戶端的鉤子用于截獲客戶端發(fā)出的打印任務,從服務端上獲取能否打印的權限(匹配用戶的打印策略),并反饋打印信息至服務端。
[0048]本發(fā)明的服務端還包括組織機構模塊,所述組織機構模塊提供定義公司和部門、新增、刪除和修改用戶操作。
[0049]本發(fā)明的服務端還包括統(tǒng)計報表模塊,所述統(tǒng)計報表模塊統(tǒng)一記錄所述客戶端的打印行為,根據(jù)定義不同打印紙張的單價,按照打印機、用戶、部門、時間、打印方式形成報表。
[0050]本發(fā)明中的服務端還包括用于監(jiān)控打印機的打印機管理模塊,所述打印機管理模塊根據(jù)日志的反饋更改用戶或打印機策略。
[0051]本發(fā)明的服務端還包括產品信息模塊,所述產品信息模塊用于查看打印安全管理軟件的注冊信息,所述打印管理軟件的注冊信息包括產品版本、注冊號、授權點數(shù)、已授權點數(shù)以及提供更新授權注冊號功能。
[0052]本發(fā)明的服務端還包括系統(tǒng)升級模塊,所述系統(tǒng)升級模塊用于統(tǒng)一下發(fā)升級補丁,實現(xiàn)所述客戶端的自動升級。
[0053]作為優(yōu)選,本發(fā)明的客戶端包括登錄界面,以在開機啟動時彈窗輸入用戶名和密碼認證界面,且支持記住密碼和自動登錄。
[0054]作為優(yōu)選,本發(fā)明的客戶端包括接入控制,在用戶未登錄時,不允許打印。
[0055]本發(fā)明還采用了打印數(shù)據(jù)捕獲技術。在windows系統(tǒng)中典型的有三種打印流程:利用原始假脫機文件的打印流程、利用增強型圖元文件(EMF)的打印流程以及直接打印流程。
[0056]不管應用軟件采用何種打印,在打印時都會調用GDI相關函數(shù)在相關設備文件上繪制。利用windows的打印機制,結合上述API HOOK技術,當應用軟件調用⑶I API時,同時創(chuàng)建一個的增強型圖元文件,當應用軟件向打印設備繪制命令時,同時在創(chuàng)建的圖元文件上繪制相同的命令。
[0057]因為EMF類型的文件本身不包含打印文檔的具體內容,它的內容是記錄應用程序調用GDI繪制函數(shù)的操作過程,這使得打印過程很快,同時EMF是和具體打印設備無關的。
[0058]生成的EMF文件通過其它形式轉換成圖片,最終上傳到服務端,這樣就如同拍照一樣,將打印的文檔記錄下來。
[0059]以上所描述的僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內所做的任何修改、等同替換和改進等,均應包含在本發(fā)明的保護范圍之內。因此,本發(fā)明的保護范圍當視權利要求書所界定者為準。
【權利要求】
1.一種打印數(shù)據(jù)透明捕獲的方法,包括提供一種打印安全管理系統(tǒng),所述提供一種打印安全管理系統(tǒng)包括:提供服務端和客戶端,所述服務端至少包括:用于為打印安全提供基礎服務的打印安全管理支撐功能模塊、定義打印策略的策略模塊和為所述客戶端配置打印策略的維護管理模塊;所述客戶端執(zhí)行所述打印策略,且所述客戶端設有用于對打印進程的API進行控制的鉤子程序對打印動作進行判斷和做相應處理以控制打印行為。
2.根據(jù)權利要求1所述的打印數(shù)據(jù)透明捕獲的方法,所述鉤子程序存放在指定的動態(tài)鏈接庫中。
3.根據(jù)權利要求1所述的打印數(shù)據(jù)透明捕獲的方法,所述服務端進一步包括組織機構模塊,所述組織機構模塊提供定義公司和部門、新增、刪除和修改用戶操作。
4.根據(jù)權利要求3所述的打印數(shù)據(jù)透明捕獲的方法,所述服務端進一步包括統(tǒng)計報表模塊,所述統(tǒng)計報表模塊統(tǒng)一記錄所述客戶端的打印行為,根據(jù)定義不同打印紙張的單價,按照打印機、用戶、部門、時間、打印方式形成報表。
5.根據(jù)權利要求1所述的打印數(shù)據(jù)透明捕獲的方法,所述服務端還包括用于監(jiān)控打印機的打印機管理模塊,所述打印機管理模塊根據(jù)日志的反饋更改用戶或打印機策略。
6.根據(jù)權利要求1所述的打印數(shù)據(jù)透明捕獲的方法,所述服務端還包括產品信息模塊,所述產品信息模塊用于查看打印安全管理軟件的注冊信息,包括產品版本、注冊號、授權點數(shù)、已授權點數(shù)以及提供更新授權注冊號功能。
7.根據(jù)權利要求1所述的打印數(shù)據(jù)透明捕獲的方法,所述服務端還包括系統(tǒng)升級模塊,所述系統(tǒng)升級模塊用于統(tǒng)一下發(fā)升級補丁,實現(xiàn)所述客戶端的自動升級。
8.根據(jù)權利要求1所述的打印數(shù)據(jù)透明捕獲的方法,所述客戶端包括登錄界面,開機啟動時彈出登錄窗口,輸入用戶名和密碼認證界面,且支持記住密碼和自動登錄功能。
9.根據(jù)權利要求1所述的打印數(shù)據(jù)透明捕獲的方法,所述客戶端包括接入控制,在用戶未登錄時,不允許打印。
10.根據(jù)權利要求1所述的打印數(shù)據(jù)透明捕獲的方法,其特征在于,打印時調用GDIAPI時,同時創(chuàng)建增強型圖元文件,所述增強圖元文件可轉換成圖片并上傳至所述服務端。
【文檔編號】G06F3/12GK103605487SQ201310575776
【公開日】2014年2月26日 申請日期:2013年11月18日 優(yōu)先權日:2013年11月18日
【發(fā)明者】王玉, 陳萬江, 張衛(wèi), 畢永政, 許振興 申請人:江蘇敏捷科技股份有限公司