專利名稱:一種反截屏控制模型及系統的制作方法
技術領域:
本發明涉及的是一種主要基于進程屏幕保護區域的反截屏控制模型及系統,屬于文檔內容安全技術領域。
背景技術:
反截屏技術是一種防泄密安全功能,防止機密信息的屏幕顯示被截取后以圖像方式泄密。隨著文檔防泄漏系統的不斷推廣,反截屏技術越來越受到重視,反截屏功能已經成為文檔防泄漏系統不可缺少的一部分。截屏的工作原理:截屏實際上是一種通過編程獲取顯示接口數據的方法。計算機顯示器上的每一個像素 點都是以數字形式描述的,顯示標準中稱之為“顯示緩沖區”,即“顯存”。由于顯示設備遵守統一的標準,因此可以通過直接或間接讀取顯示緩沖區的方式,獲取當前屏幕顯示的內容。截屏軟件基本有以下兩種方式處理方式:I)通過剪貼板;2)直接截取屏幕中的某一部分保存成圖像文件。反截屏的工作原理:顯示緩沖區總是物理存在的,不可能使其消失,否則屏幕就無法顯示任何內容。反截屏就是阻止截屏程序讀取顯存數據。因為數據源是固定的、不可更改的,只能中途攔截截屏動作;因此,一般有以下方式來實現反截屏:I)黑名單技術,將所有市面上存在的截屏軟件都列入黑名單,使之失效。這種方式的缺點在于,一旦出現新的截屏軟件,如果不升級反截屏軟件,則不能控制此截屏軟件;同樣,如果將截屏軟件改頭換面,也無法控制;2)監測技術,監測“截屏”動作,如果應用軟件的操作符合截屏特征,就認為應用程序啟動了一個截屏過程,需要對其進行控制。和黑名單技術不一樣,監測技術與截屏軟件無關,但因為截屏動作識別存在一定的不確定性,有可能影響一些確實需要從屏幕上截取素材的設計人員的正當訴求,因此,可能導致一些圖像處理軟件的使用障礙。同時,它有可能影響某些圖像處理軟件的顯示性能。
發明內容
本發明的目的在于克服現有技術存在的不足,而提供一種反截屏控制模型及反截屏控制系統,它基于進程屏幕保護區域(Process Protected Screen Rectangle, PPSR)的反截屏控制模型,并以此模型為基礎,通過控制應用軟件幾個關鍵函數的調用,實現屏幕受保護區域的反截屏保護。本發明的目的是通過如下技術方案來完成的,所述的反截屏控制模型,它是基于進程屏幕保護區域,包括保護區域和非保護區域以及相應的非涉密應用軟件和涉密應用軟件;整個屏幕可以劃分為非保護區域和保護區域兩大類,其中非涉密應用軟件對應的屏幕窗口為非保護區域,涉密應用軟件對應的屏幕窗口為保護區域;反截屏控制的目的是要防止應用軟件讀取保護區域的顯存,同時保證應用軟件可以讀取非保護區域的顯存。
一種根據如上所述反截屏控制模型的反截屏控制系統,該系統主要包括:PPSR管理器、反截屏控制代理、PPSR代理三個部分;其中:所述的PPSR管理器用于管理所有涉密應用軟件的PPSR,響應反截屏控制代理的請求,根據其管理的PPSR隊列和請求參數,為其計算受保護區域列表;所述的反截屏控制代理,內嵌于應用程序中,通過控制獲取顯存的函數,向PPSR管理器請求計算受保護區域列表,將這些受保護區域的內容清空,達到反截屏控制的目的;
所述的PPSR代理,內嵌于涉密應用軟件中,向PPSR管理器注冊PPSR,更新PPSR和注銷PPSR。本發明適用于文檔防泄漏系統的反截屏功能,其核心思想是:通過屏幕顯示區域的劃分和統一管理,建立基于進程屏幕保護區域的反截屏控制模型,并以此模型為基礎,通過采用DLL INJECT, HOOK API等技術,實現涉密軟件的反截屏保護;其優點如下:1、整個模型概念清晰簡單,不存在截屏軟件的概念,不需要識別截屏軟件;2、不需要識別應用軟件的截屏動作,提高了反截屏控制的準確性;3、不會影響應用軟件正常的截屏操作;4、不會影響實現窗口陰影效果等非截屏操作;5、PPSR集中保存和管理,PRL統一計算,因此,整個邏輯控制具有很強的可擴展性。本發明適用于文檔防泄漏系統的反截屏功能,不僅具有控制簡單,不影響正常截屏操作,不影響窗口陰影效果等非截屏操作的特點,而且具有良好的可擴展性。
圖1是本發明所述的非保護區域和保護區域圖。圖2是本發明所述反截屏保護下的截屏效果圖。圖3是本發明所述反截屏系統的整體結構圖。圖4是本發明所述進程屏幕保護區域結構圖。圖5是本發明所述獲取受保護矩形列表流程圖。
具體實施方法本發明所述的反截屏控制模型包含幾個部分:應用軟件,涉密應用軟件,保護區域和非保護區域。整個屏幕可以劃分為非保護區域和保護區域兩大類,非涉密應用軟件對應的屏幕窗口,定義為非保護區域,涉密應用軟件對應的屏幕窗口,定義為保護區域。圖1為非保護區域和保護區域劃分的一個示例。反截屏的目的是要防止應用軟件讀取保護區域的顯存,同時保證應用軟件可以讀取非保護區域的顯存。本發明的反截屏系統以反截屏控制模型為基礎,采用HOOK API的方式,來實現涉密軟件的反截屏保護。參見圖3,系統主要包括:PPSR管理器1,PPSR代理2,反截屏控制代理3三個部分。PPSR管理器,主要實現PPSR的保存與管理,并根據反截屏控制代理提供的參數,返回屏幕上受保護區域列表(Protected Rectangle List, PRL),這些受保護區域是非相互覆蓋的。PPSR管理器還有一個涉密軟件進程監測器,一旦進程非正常退出,管理器需要及時注銷此涉密進程的PPSR信息,以保證反截屏系統的正確運行。反截屏控制代理,當應用軟件需要獲取屏幕上某一區域的顯存時,反截屏控制代理,將此區域信息發送給PPSR管理器,由PPSR管理器決定這個區域中,哪些是受保護的,哪些是可以獲取的。反截屏控制代理根據從管理器得到的PRL,將這些區域的對應的顯存以全黑或全白的數據返回給應用軟件。PPSR代理,涉密軟件在保護區域產生時,需要向管理器進行PPSR登記,在保護區域變化時,向管理器進行PPSR更新,在涉密軟件退出時,向管理器注銷相關PPSR。為使本發明的目的、技術方案和優點更加清楚明白,以下結合具體實施例子,以windows操作系統為實現平臺,并參照附圖,對本發明進一步詳細說明。為了完成上述目的,本發明提出了一種基于進程屏幕保護區域的反截屏控制模型,其整體結構參見圖3所示。由于需要統一處理PPSR,因此,PPSR的幾何坐標需要統一轉換到屏幕坐標。PPSR管理器是整個系統的核心,它管理著所有涉密軟件的PPSR,其基本操作如下:操作1:PPSR注冊,將PPSR代理發送過來的PPSR,加入到其管理的PPSR隊列中操作2 =PPSR更新,根據PPSR代理發送過來的PPSR中的PID,查詢其管理的PPSR隊列,并更新其中的幾何信息操作3 =PPSR注銷,根據PPSR代理發送過來的PID,查詢其管理的PPSR隊列,并將相應的PPSR從隊列中刪除。操作4:涉密軟件進程監測,`定時監測隊列中PPSR對應的進程是否異常退出,如果進程已不存在,則將相應的PPSR從隊列中刪除。操作5:計算受保護區域列表PRL,根據反截屏控制代理發送過來的應用軟件PID, PID對應的激活標志IsActive,PID對應的顯示區域Rectl,需要獲取顯存的屏幕區域Rect2,返回PRL給反截屏控制代理。其詳細流程參見圖5所示。反截屏控制代理主要根據PPSR管理器提供的計算受保護區域列表的功能,實現反截屏控制,參考圖3,我們可以看到,反截屏控制代理是內嵌在應用軟件中的,這種內嵌需要通過windows下的DLL INJECT和HOOK API來實現,這些技術在windows已經很成熟了,
這里就不再詳細說明。以下是在BitBlt函數中實現反截屏控制的示例代碼,
權利要求
1.一種基于進程屏幕保護區域的反截屏控制模型,其特征在于:該模型包括:保護區域和非保護區域以及相應的非涉密應用軟件和涉密應用軟件;整個屏幕可以劃分為非保護區域和保護區域兩大類,其中非涉密應用軟件對應的屏幕窗口為非保護區域,涉密應用軟件對應的屏幕窗口為保護區域;所述反截屏控制的目的是要防止應用軟件讀取保護區域的顯存,同時保證應用軟件可以讀取非保護區域的顯存。
2.一種根據權利要求1所述反截屏控制模型的系統,其特征在于該系統主要包括:PPSR管理器、反截屏控制代理、PPSR代理三個部分; 所述的PPSR管理器用于管理所有涉密應用軟件的PPSR,響應反截屏控制代理的請求,根據其管理的PPSR隊列和請求參數,為其計算受保護區域列表; 所述的反截屏控制代理,內嵌于應用程序中,通過控制獲取顯存的函數,向PPSR管理器請求計算受保護區域列表,將這些受保護區域的內容清空,達到反截屏控制的目的;所述的PPSR代理, 內嵌于涉密應用軟件中,向PPSR管理器注冊PPSR,更新PPSR和注銷PPSR0
全文摘要
一種反截屏控制模型及系統,所述的模型包括保護區域和非保護區域以及相應的非涉密應用軟件和涉密應用軟件;整個屏幕可以劃分為非保護區域和保護區域兩大類,其中非涉密應用軟件對應的屏幕窗口為非保護區域,涉密應用軟件對應的屏幕窗口為保護區域;所述的系統主要包括PPSR管理器、反截屏控制代理、PPSR代理三個部分;其中所述的PPSR管理器用于管理所有涉密應用軟件的PPSR,響應反截屏控制代理的請求,根據其管理的PPSR隊列和請求參數,為其計算受保護區域列表;所述的反截屏控制代理,內嵌于應用程序中,通過控制獲取顯存的函數,向PPSR管理器請求計算受保護區域列表,將這些受保護區域的內容清空,達到反截屏控制的目的;所述的PPSR代理,內嵌于涉密應用軟件中,向PPSR管理器注冊PPSR,更新PPSR和注銷PPSR。
文檔編號G06F21/60GK103246831SQ201310186530
公開日2013年8月14日 申請日期2013年5月16日 優先權日2013年5月16日
發明者譚孟恩 申請人:杭州華途軟件有限公司