本發(fā)明涉及信息技術(shù)領(lǐng)域。更具體地,本發(fā)明涉及一種用于在由企業(yè)環(huán)境中的計(jì)算機(jī)網(wǎng)絡(luò)運(yùn)行的軟件應(yīng)用中啟用數(shù)據(jù)分類和信息權(quán)限管理(irm)能力的實(shí)施的方法。
背景技術(shù):
信息權(quán)限管理(irm)在許多組織中被使用,以保護(hù)企業(yè)敏感信息(例如財(cái)務(wù)數(shù)據(jù)、知識產(chǎn)權(quán)和行政通信)免受未經(jīng)授權(quán)的訪問和使用。irm主要包括訪問權(quán)限和使用權(quán)限的實(shí)施,以便確定哪個(gè)用戶將能夠?qū)?shù)據(jù)執(zhí)行動作,諸如復(fù)制、拖/放、打印、全屏截屏(printscreen)、另存為(saveas)、保存(save)和查看(view)操作。為了使得irm啟用,使用加密數(shù)據(jù)的每個(gè)應(yīng)用應(yīng)該能夠接收解密密鑰、解密數(shù)據(jù)并且呈現(xiàn)解密的數(shù)據(jù)以允許用戶訪問。為了這個(gè)目的,所有使用權(quán)限的能力應(yīng)當(dāng)被集成到應(yīng)用中,包括具有密鑰管理的加密/解密和數(shù)據(jù)交換,使得每個(gè)數(shù)據(jù)項(xiàng)的許可集合將被分析,以便啟用或禁用應(yīng)用內(nèi)的功能并且實(shí)施使用權(quán)限。這導(dǎo)致irm實(shí)現(xiàn)強(qiáng)烈依賴于應(yīng)用類型的情況,并且因此根據(jù)應(yīng)用的不同而改變。
用于將irm實(shí)現(xiàn)到應(yīng)用的已有解決方案之一是使用irm軟件開發(fā)工具包(softwaredevelopmentkit,sdk—這是允許為特定軟件開發(fā)平臺創(chuàng)建應(yīng)用的軟件開發(fā)工具),該軟件開發(fā)工具包通常由irm供應(yīng)商提供。如此,irm的代碼被開發(fā)為應(yīng)用的固有代碼的一部分。然而,該解決方案是麻煩的和昂貴的,因?yàn)樗枰薷拿總€(gè)應(yīng)用的固有代碼,特別是在使用來自許多軟件提供商的許多應(yīng)用的企業(yè)中,大多數(shù)成品應(yīng)用是現(xiàn)成的。在這種情況下,該解決方案需要那些許多不同應(yīng)用供應(yīng)商的合作。另外,有時(shí)應(yīng)用供應(yīng)商與irm供應(yīng)商之間的關(guān)系使第三方供應(yīng)商無法實(shí)現(xiàn)irm。此外,并非所有irm供應(yīng)商都提供可用于所有開發(fā)技術(shù)的可用sdk,并且并非所有應(yīng)用供應(yīng)商都將集成這樣的sdk,而對其源代碼或二進(jìn)制文件的第三方修改被應(yīng)用供應(yīng)商許可所禁止。
當(dāng)需要由用戶經(jīng)由呈現(xiàn)數(shù)據(jù)的應(yīng)用來顯示、添加和修改數(shù)據(jù)項(xiàng)的分類時(shí),會出現(xiàn)類似的問題。出于安全原因,數(shù)據(jù)的分類有時(shí)是強(qiáng)制性的。例如,如果數(shù)據(jù)包含敏感內(nèi)容(例如,信用卡號),則該數(shù)據(jù)必須被分類。
主要困難之一是每個(gè)應(yīng)用具有不同的ui、不同的ui布局和不同的技術(shù),這帶來了可用性問題。這些問題之一是即使ui布局隨應(yīng)用的不同而不同,也期望向應(yīng)用的每個(gè)用戶提供統(tǒng)一的可用性體驗(yàn)。一致性問題的常規(guī)解決方案之一是使用sdk來實(shí)現(xiàn)分類能力,例如使用工具欄。然而,這需要修改每個(gè)應(yīng)用中的ui布局以獲得這樣的一致性。另一個(gè)解決方案是使用附加組件(add-on)(增強(qiáng)另一個(gè)軟件應(yīng)用的一個(gè)軟件),但這也需要將不同的附加組件集成到每個(gè)應(yīng)用。
集成分類能力的另一種方式是使用通用位置,諸如標(biāo)題欄(圖形控制元件,其作為窗口裝飾的一部分—通常作為水平欄位于窗口的頂部)。然而,存在一些沒有標(biāo)題欄的應(yīng)用,并且在任何情況下,使用中間的標(biāo)題欄來獲得分類能力將中斷用戶的自然工作流(即,在使用幾乎任何應(yīng)用時(shí)用戶執(zhí)行的自然順序)。例如,為了保存所創(chuàng)建的數(shù)據(jù)項(xiàng),用戶將需要使用標(biāo)題欄。在使用彈出窗口(在應(yīng)用外部)提供分類能力時(shí)會出現(xiàn)類似中斷。也可以使用右鍵單擊文件管理器(例如windows資源管理器(windowsexplorer))來提供分類能力,但這也會中斷用戶的自然工作流,因?yàn)橛脩魬?yīng)當(dāng)關(guān)閉應(yīng)用并且使用另一工具。
本發(fā)明的一個(gè)目的是提供一種用于在軟件應(yīng)用中啟用數(shù)據(jù)分類和信息權(quán)限管理(irm)能力的實(shí)施的方法,其不會中斷用戶的自然工作流。
本發(fā)明的另一個(gè)目的是提供一種用于在軟件應(yīng)用中啟用數(shù)據(jù)分類和信息權(quán)限管理(irm)能力的實(shí)施的方法,其對于所有應(yīng)用都通用。
本發(fā)明的另一個(gè)目的是提供一種用于在軟件應(yīng)用中實(shí)現(xiàn)數(shù)據(jù)分類和信息權(quán)限管理(irm)能力的實(shí)施的方法,這些軟件應(yīng)用不需要與特定應(yīng)用集成并且不需要任何開發(fā)努力、不需要針對目標(biāo)應(yīng)用被定制。
本發(fā)明的另一個(gè)目的是提供一種允許用戶在其生態(tài)系統(tǒng)中實(shí)現(xiàn)分類和irm而不需要升級或修改用戶的已有應(yīng)用(二進(jìn)制文件)的方法。
隨著描述的進(jìn)行,本發(fā)明的其它目的和優(yōu)點(diǎn)將變得清楚。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明涉及一種用于在軟件應(yīng)用中實(shí)現(xiàn)數(shù)據(jù)分類和/或信息權(quán)限管理(irm)能力的實(shí)施和/或加密的方法。根據(jù)所提出的方法,代理被安裝在運(yùn)行應(yīng)用的每個(gè)終端設(shè)備上,并且包括要被實(shí)施的irm、加密和分類策略的中央管理模塊與被安裝在每個(gè)終端設(shè)備上的代理通信。中央管理模塊向每個(gè)代理分布合適的irm和/或分類策略,并將該策略應(yīng)用于在終端設(shè)備上運(yùn)行的任何應(yīng)用。
代理可以被用于通過以下在運(yùn)行應(yīng)用的終端設(shè)備上實(shí)施使用權(quán)限:
a)在由應(yīng)用接收到數(shù)據(jù)項(xiàng)或文件時(shí),使用代理來標(biāo)識應(yīng)用并且提取與文件的原始irm權(quán)限有關(guān)的信息;
b)由代理將不會中斷應(yīng)用的自然操作的專用運(yùn)行時(shí)代碼單元注入到應(yīng)用的固有代碼中,用于關(guān)于指示用戶可以在訪問文件時(shí)執(zhí)行的操作的活動而攔截對在應(yīng)用api或操作系統(tǒng)api中的操作的調(diào)用;
c)在執(zhí)行所需操作之前,增強(qiáng)運(yùn)行過程以與代理通信,以接收關(guān)于訪問用戶的對所訪問數(shù)據(jù)項(xiàng)的許可;以及
d)僅啟用符合所呈現(xiàn)內(nèi)容的irm許可的操作。
每當(dāng)應(yīng)用在單獨(dú)的窗口中并行地打開多個(gè)文件時(shí),代理被允許執(zhí)行窗口與窗口的對應(yīng)文件和irm之間的相關(guān)性,以便確定如何呈現(xiàn)它,同時(shí)根據(jù)窗口特征(其可以包括窗口的標(biāo)題或窗口的內(nèi)容)計(jì)算權(quán)限。
代理可以被適配為通過在標(biāo)識用戶通過點(diǎn)擊“另存為”底部或使用鍵盤快捷方式而觸發(fā)“保存”或“另存為”操作時(shí)允許代理在操作系統(tǒng)級別中干預(yù)以顯示具有分類和irm相關(guān)內(nèi)容的經(jīng)修改的“保存”窗口(其可以例如使用子類化控件而被創(chuàng)建),來在運(yùn)行應(yīng)用的終端設(shè)備上實(shí)施數(shù)據(jù)分類。
分類可以根據(jù)預(yù)定的企業(yè)策略而被自動執(zhí)行或者由創(chuàng)建、編輯或使用數(shù)據(jù)的用戶確定。
經(jīng)修改的窗口可以被適配為向用戶提供關(guān)于數(shù)據(jù)所需分類的推薦。
每次在保存文件時(shí),在改變或不改變文件的格式或名稱的情況下,文件的分類可以被繼承。
經(jīng)修改的窗口可以通過以下而被創(chuàng)建:將具有所有附加分類特征的邊欄添加到標(biāo)準(zhǔn)窗口或通過添加“下一個(gè)”按鈕,該“下一個(gè)”按鈕在“保存”按鈕之前并且邀請用戶定義合適的分類。
在從相關(guān)性接收到非決定性結(jié)果時(shí),針對由應(yīng)用打開的所有文件,irm以最高標(biāo)準(zhǔn)被應(yīng)用。irm權(quán)限可以使用掛鉤(hooking)和覆寫(overriding)標(biāo)準(zhǔn)操作系統(tǒng)級功能和api(諸如由應(yīng)用級按鈕觸發(fā)的標(biāo)準(zhǔn)windowsapi或標(biāo)準(zhǔn)剪貼板api)而被應(yīng)用。
擴(kuò)充可以在數(shù)據(jù)項(xiàng)內(nèi)被保持持久,并且擴(kuò)充可以通過以下將擴(kuò)充繼承到所擴(kuò)充的數(shù)據(jù)項(xiàng)的復(fù)制或編輯版本:
a)覆寫由操作系統(tǒng)提供的標(biāo)準(zhǔn)對話框;以及
b)使用內(nèi)核模塊來保持應(yīng)用以文件的非擴(kuò)充版本操作。
windows內(nèi)核級模塊可以被使用,以用于通過內(nèi)容相似性來標(biāo)識經(jīng)擴(kuò)充的文件的轉(zhuǎn)換,并且以包括原始擴(kuò)充的版本替換文件,或者將擴(kuò)充添加到目標(biāo)文件。
本發(fā)明還涉及一種具有軟件應(yīng)用中的數(shù)據(jù)分類和/或信息權(quán)限管理(irm)能力的實(shí)施和/或加密的計(jì)算機(jī)實(shí)現(xiàn)的系統(tǒng),該系統(tǒng)包括:
a)運(yùn)行應(yīng)用的多個(gè)終端設(shè)備,代理被安裝在多個(gè)終端設(shè)備上;
b)運(yùn)行中央管理模塊的計(jì)算機(jī),中央管理模塊包括要被實(shí)施的irm、加密和分類策略并且與被安裝在每個(gè)終端設(shè)備上的代理通信,中央管理模塊被適配為:
b.1)向每個(gè)代理分布合適的irm和/或分類策略;以及
b.2)將該策略應(yīng)用于在終端設(shè)備上運(yùn)行的任何應(yīng)用。
附圖說明
在附圖中:
圖1示出了具有帶有分類相關(guān)按鈕的經(jīng)修改的“保存”窗口的“保存”界面的示例。
具體實(shí)施方式
用于在軟件應(yīng)用中啟用數(shù)據(jù)分類和信息權(quán)限管理(irm)能力的實(shí)施的方法曾包括兩部分。第一部分是利用附加特征擴(kuò)充數(shù)據(jù)項(xiàng)。這樣的特征可以包括原始內(nèi)容的加密、添加irm策略、添加分類和任何其他功能增強(qiáng)。如此,文件的增強(qiáng)副本被創(chuàng)建,該增強(qiáng)副本在其數(shù)據(jù)中保持附加特征。在第二部分中,處于這些擴(kuò)充不被消費(fèi)應(yīng)用支持(例如當(dāng)應(yīng)用不支持用于擴(kuò)充文件的加密或irm方案時(shí))的情況。由于擴(kuò)充應(yīng)該從應(yīng)用中被隱藏,本發(fā)明提出了一種方法,用于使能這些擴(kuò)充在應(yīng)用作用之后仍然是活動的并且根據(jù)應(yīng)用動作而被保留。
us2010/0146600公開了一種用于在組織計(jì)算機(jī)網(wǎng)絡(luò)中的自動數(shù)據(jù)保護(hù)的系統(tǒng)和方法,根據(jù)該系統(tǒng)和方法,定義了用于分類數(shù)據(jù)項(xiàng)的多個(gè)信息簡檔以及用于保護(hù)屬于特定信息簡檔的數(shù)據(jù)項(xiàng)的規(guī)則。數(shù)據(jù)項(xiàng)根據(jù)所定義的信息簡檔而被分類,并且響應(yīng)于它們的分類和所定義的策略規(guī)則的集合,保護(hù)方法被應(yīng)用于數(shù)據(jù)項(xiàng)。數(shù)據(jù)項(xiàng)的分類可以響應(yīng)于數(shù)據(jù)項(xiàng)的內(nèi)容或位置的改變而被自動更新,并且所應(yīng)用的保護(hù)方法在數(shù)據(jù)項(xiàng)的整個(gè)生命周期中響應(yīng)于數(shù)據(jù)項(xiàng)的分類或位置的改變而根據(jù)所定義的規(guī)則被自動保留和調(diào)整。因此,本發(fā)明提出的方法可以用于擴(kuò)展us2010/0146600的數(shù)據(jù)保護(hù)方法,以便將irm策略集成和實(shí)現(xiàn)在附加的應(yīng)用集合、數(shù)據(jù)項(xiàng)格式和數(shù)據(jù)項(xiàng)轉(zhuǎn)換中。
由本發(fā)明提出的方法建議通過將能力嵌入到應(yīng)用中來擴(kuò)充應(yīng)用,使得應(yīng)用將能夠訪問、編輯、創(chuàng)建和作用于這樣的擴(kuò)充文件。一個(gè)示例是通過非irm感知的第三方軟件提供經(jīng)加密的數(shù)據(jù)項(xiàng),同時(shí)在第三方軟件上應(yīng)用irm使用權(quán)。此外,應(yīng)用用戶界面被擴(kuò)充有應(yīng)用編輯和添加內(nèi)容的方式。所有這一切都是在不修改應(yīng)用的固有代碼的情況下完成的。如此,將能夠?qū)崿F(xiàn)用戶查看、定義或修改數(shù)據(jù)的分類的能力以及數(shù)據(jù)使用權(quán)限的執(zhí)行將被啟用,而不需要供應(yīng)商的合作。相反,這樣的特征在運(yùn)行時(shí)被添加到應(yīng)用中,并且應(yīng)用二進(jìn)制文件被保持為像它已經(jīng)原始創(chuàng)建的一樣。
所使用的架構(gòu)包括中央管理模塊,該中央管理模塊包括irm和分類策略并且與被安裝在每個(gè)終端設(shè)備上的代理通信。中央管理模塊將合適的irm或分類策略分布給每個(gè)代理,每個(gè)代理進(jìn)而又將策略應(yīng)用于在終端設(shè)備上運(yùn)行的任何被定義的應(yīng)用。
在運(yùn)行應(yīng)用中啟用irm能力
本發(fā)明所建議的擴(kuò)充是將irm能力添加到任何格式和應(yīng)用。在終端設(shè)備上對irm(或使用權(quán)限)的實(shí)施由實(shí)現(xiàn)本發(fā)明的代理完成。在由應(yīng)用接收到數(shù)據(jù)項(xiàng)、諸如文件(其受irm保護(hù))時(shí),代理標(biāo)識應(yīng)用(例如,根據(jù)由正在運(yùn)行的應(yīng)用創(chuàng)建的過程或根據(jù)其數(shù)字簽名)并且提取與文件的原始加密有關(guān)的信息。專用運(yùn)行時(shí)代碼單元(其不中斷應(yīng)用的自然操作)由代理注入到應(yīng)用的固有代碼中,以便執(zhí)行掛鉤以用于攔截對在應(yīng)用的api中或在操作系統(tǒng)中的標(biāo)準(zhǔn)操作的調(diào)用,諸如剪貼板活動(以便標(biāo)識復(fù)制嘗試)、打印機(jī)假脫機(jī)(spooling)活動(以便標(biāo)識打印嘗試)和其他預(yù)定活動,這些預(yù)定活動指示用戶在訪問文件時(shí)可以執(zhí)行的操作。在執(zhí)行所需操作之前,運(yùn)行進(jìn)程與代理通信以獲得關(guān)于訪問用戶的對所訪問數(shù)據(jù)項(xiàng)的許可,并且僅啟用符合所呈現(xiàn)內(nèi)容的irm許可的操作。許可和irm策略被嵌入在受irm保護(hù)的文件中。例如,訪問文件的用戶“a”可能將能夠在他的終端設(shè)備上查看該文件,但不允許打印文件的內(nèi)容,而另一個(gè)經(jīng)由他的終端設(shè)備訪問同一文件的用戶“b”將能夠查看和打印內(nèi)容。
一些應(yīng)用(例如adobeacrobatreader)能夠在單個(gè)進(jìn)程中同時(shí)呈現(xiàn)多個(gè)文檔,同時(shí)在單獨(dú)的窗口中呈現(xiàn)每個(gè)文檔。在這種情況下,代理將執(zhí)行在所訪問的文件和文件對應(yīng)的irm策略與顯示文檔的特定窗口之間相關(guān)性,以確定如何在該窗口應(yīng)用使用權(quán)限。這考慮了窗口屬性,如標(biāo)題、內(nèi)容、父窗口和子窗口、創(chuàng)建時(shí)間等等。在代理不能將文檔窗口明確地匹配到單個(gè)數(shù)據(jù)項(xiàng)的情況下,具有最高標(biāo)準(zhǔn)的irm將被用于來自被標(biāo)識為用于窗口內(nèi)容的可能匹配的所有文檔的窗口。
例如,在通過microsoft記事本(notepad)文本編輯應(yīng)用訪問文本文件(其被修改為被加密的,被分配irm權(quán)限或以文件內(nèi)容外部的其他擴(kuò)充文件被應(yīng)用)時(shí),終端設(shè)備上的代理將該文件標(biāo)識為包含這樣的擴(kuò)充文件。這可以由作為代理的一部分的文件系統(tǒng)過濾器驅(qū)動器(filesystemfilterdriver)來完成。如果文件被應(yīng)該對文件具有明文訪問(clear-textaccess)的應(yīng)用(即“受信任的”)所訪問,則其停止應(yīng)用的打開操作(在windows中為ir_mj_create),并且將文件引用提供給代理。然后,代理會從應(yīng)用不支持的擴(kuò)充中清除該文件,并且在加密的情況下,代理使用用戶標(biāo)識來獲取合適的密鑰,以便允許解密該文件。經(jīng)凈化的副本以安全的方式被存儲,使得只有指定進(jìn)程可以訪問它。一旦完成此操作,驅(qū)動器重新編譯由記事本完成的os調(diào)用以打開該文件,將調(diào)用靜默地重定向到經(jīng)解密的副本。因此,應(yīng)用實(shí)際上訪問經(jīng)凈化的文件,并且能夠使用文件的內(nèi)容。如果該用戶具有僅允許他查看數(shù)據(jù)但是阻止例如打印或復(fù)制的許可,記事本仍然能夠從經(jīng)解密的安全副本中呈現(xiàn)內(nèi)容,因此用戶將能夠查看內(nèi)容。然而,被注入記事本的代碼將不允許他打印文件或復(fù)制內(nèi)容。如果此用戶沒有提供對數(shù)據(jù)的任何級別的訪問的權(quán)限,即使用戶雙擊它,記事本也不被允許顯示內(nèi)容(因?yàn)榇聿粫樗饷茉搩?nèi)容)。攔截?cái)?shù)據(jù)項(xiàng)的方法可以不同。它可以支持來自其他介質(zhì)的文件訪問,例如web瀏覽器或其他存儲和網(wǎng)絡(luò)介質(zhì)。
為了不依賴于應(yīng)用并且不中斷用戶的自然工作流,本發(fā)明提出的方法使用掛鉤和覆寫標(biāo)準(zhǔn)操作系統(tǒng)級功能和api(而不是應(yīng)用級)。例如,統(tǒng)一的打印api由windows操作系統(tǒng)提供。該api調(diào)用可以被由代理注入到第三方應(yīng)用中的代碼所覆寫,以便應(yīng)用irm權(quán)限以及防止來自該應(yīng)用的對內(nèi)容的未經(jīng)授權(quán)的打印。另一個(gè)示例是標(biāo)準(zhǔn)的“另存為”窗口由windows操作系統(tǒng)經(jīng)由標(biāo)準(zhǔn)windowsapi提供,通常由應(yīng)用級的“保存”/“另存為”按鈕觸發(fā)。除了追蹤內(nèi)容的格式或位置轉(zhuǎn)換之外,此api可以被覆寫以便在保存時(shí)提供用戶界面。通過追蹤這種轉(zhuǎn)換,可以在另存為操作時(shí)保留文件擴(kuò)充。
另一個(gè)示例是標(biāo)準(zhǔn)剪貼板api,類似于由windows提供的剪貼板api,其可以被覆蓋以實(shí)施不允許經(jīng)由系統(tǒng)服務(wù)(諸如剪貼板和拖放)從安全文檔中拷貝內(nèi)容的irm權(quán)限。
當(dāng)應(yīng)用打開受irm保護(hù)的文件時(shí),文件使用權(quán)限將被檢索。當(dāng)由irm權(quán)限覆蓋的動作發(fā)生時(shí),事件細(xì)節(jié)被檢查,諸如其中發(fā)生該事件的應(yīng)用、窗口或事件發(fā)生的祖先窗口的標(biāo)題、觸發(fā)事件或與事件相關(guān)的進(jìn)程id(包括父進(jìn)程和子進(jìn)程id)。這些細(xì)節(jié)用于推導(dǎo)保持事件需要的數(shù)據(jù)的原始文件。然后,與文件相關(guān)聯(lián)的權(quán)限被評估,以驗(yàn)證事件是否應(yīng)被啟用或阻止。
除了irm權(quán)限實(shí)施之外,本發(fā)明還提供了用于保持?jǐn)U充在數(shù)據(jù)項(xiàng)內(nèi)持久的方法,并且將擴(kuò)充繼承到經(jīng)擴(kuò)充的數(shù)據(jù)項(xiàng)的復(fù)制或編輯版本,包括保持相同數(shù)據(jù)但它們的二進(jìn)制格式不同的“邏輯副本”。這可以例如通過覆寫由操作系統(tǒng)提供的標(biāo)準(zhǔn)另存為(save-as)對話框來實(shí)現(xiàn)。由此,系統(tǒng)可以標(biāo)識數(shù)據(jù)項(xiàng)的副本被保存在哪里以及以什么格式被保存,并且將擴(kuò)充從源文件復(fù)制到它的副本中。這種擴(kuò)充的繼承可以在不中斷用戶的正常流程的情況下完成,而內(nèi)核模塊可以被用于始終保持應(yīng)用與文件的非擴(kuò)充版本一起工作。
此外,這可以與windows內(nèi)核級模塊組合,通過內(nèi)容相似性標(biāo)識經(jīng)擴(kuò)充文件的轉(zhuǎn)換,并且以包括原始擴(kuò)充的版本替換該文件,或者將擴(kuò)充添加到另存為目標(biāo)。
權(quán)限評估示例
假設(shè)具有打開了內(nèi)容文件的第三方應(yīng)用,irm擴(kuò)充防止終端用戶為該內(nèi)容文件添加來自該文件的復(fù)制內(nèi)容。在這種情況下,當(dāng)應(yīng)用作為對用戶輸入的響應(yīng)或者以編程方式而嘗試復(fù)制操作時(shí),標(biāo)準(zhǔn)操作系統(tǒng)api將被調(diào)用以在提供“剪貼板”的操作系統(tǒng)內(nèi)存儲內(nèi)容。這樣的api調(diào)用由本發(fā)明注入到第三方應(yīng)用中的運(yùn)行時(shí)代碼模塊攔截。然后決定是允許這個(gè)動作還是阻止它,這一切都取決于原則的權(quán)限。
為了決定這一點(diǎn),使用應(yīng)用的進(jìn)程信息,以及應(yīng)用窗口數(shù)據(jù)和/或窗口標(biāo)題。這些用于推斷從中復(fù)制數(shù)據(jù)的原始文件,并且因此以通過irm權(quán)限策略擴(kuò)充文件來評估針對該用戶是否允許“復(fù)制”權(quán)限。例如,在microsoft的記事本文本編輯應(yīng)用中,windows標(biāo)題保持由記事本呈現(xiàn)的文件名。窗口標(biāo)題與追蹤記事本正在訪問的文件相結(jié)合,允許確定記事本當(dāng)前呈現(xiàn)的文件。一旦推導(dǎo)出文件,它的擴(kuò)充(如irm權(quán)限)可以應(yīng)用于記事本運(yùn)行實(shí)例。通過這種方式,可以根據(jù)在記事本所使用的數(shù)據(jù)文件中找到的擴(kuò)充,由irm權(quán)限控制并且由記事本執(zhí)行的應(yīng)用操作能夠被實(shí)施,如打印、拖動、打印屏幕、另存為和保存。
在某些情況下,僅存在來自事件的原始文件位置的部分信息,例如文件名,而不是文件的完整路徑。此外,如果應(yīng)用打開具有相同文件名但具有不同權(quán)限的多個(gè)文件,則幾個(gè)可能的文件可能是從中讀取擴(kuò)充的候選。例如,當(dāng)在adobereader應(yīng)用上實(shí)施irm權(quán)限時(shí),可能會發(fā)生這種情況。adobereader在其窗口標(biāo)題內(nèi)呈現(xiàn)文檔標(biāo)題。雖然這可以允許從由adobereader訪問的文件的集合中推導(dǎo)出由adobereader呈現(xiàn)的文件,通過解釋它們各自的標(biāo)題,可以存在多于一個(gè)匹配文件候選。在這種情況下,評估所有可能的文件候選的權(quán)限并且使用最嚴(yán)格的權(quán)限的集合。
啟用分類能力
類似地,可以啟用分類能力并且用于由代理在終端設(shè)備上實(shí)施irm(或使用權(quán)限),或者備選地僅在沒有附加的irm實(shí)施的情況下操作。啟用分類的方法是通過標(biāo)識(通過由代理注入以覆寫標(biāo)準(zhǔn)操作系統(tǒng)保存api的掛鉤代碼)應(yīng)用正在顯示保存界面,代理將顯示具有分類相關(guān)按鈕的經(jīng)修改的“保存”窗口,如圖1所示。
實(shí)現(xiàn)的示例是通過將代碼單元(dll和/或線程)注入到應(yīng)用存儲器空間中。這允許獲得對應(yīng)用地址空間的訪問。如果將專用代碼注入到應(yīng)用中,則可以通過利用本公開的函數(shù)覆寫任何動態(tài)鏈接的函數(shù)(例如,windowsapi函數(shù))來繼續(xù)。這使得能夠替換或修改應(yīng)用行為,并且除了應(yīng)用本身之外或者替代應(yīng)用本身而插入專用代碼。例如,windowsapi掛鉤可以被用于攔截windows提供的標(biāo)準(zhǔn)另存為對話框的實(shí)例的創(chuàng)建。
通常,由操作系統(tǒng)提供的標(biāo)準(zhǔn)窗口將具有標(biāo)準(zhǔn)api,以便允許向窗口添加元件(新ui)。例如,在windows標(biāo)準(zhǔn)“另存為”對話框中就是這種情況。在這種接口(不提供自定義控件)的情況下,或者當(dāng)它太局限于所期望的使用時(shí),可以使用窗口子類化來改變特征或向子類窗口添加特征。這樣,可以促使運(yùn)行的應(yīng)用調(diào)用替代窗口,該替代窗口可以被重整以包括所有新的分類特征。
分類可以是使用內(nèi)容分析、上下文分析(諸如用戶的身份、應(yīng)用源、元數(shù)據(jù)、ip或可以從數(shù)據(jù)訪問事件或從計(jì)算機(jī)環(huán)境分析出的任何其它元數(shù)據(jù))自動進(jìn)行(根據(jù)企業(yè)策略預(yù)定的),或由在大多數(shù)情況下編輯或使用數(shù)據(jù)的用戶確定。系統(tǒng)還可以使用經(jīng)修改的窗口以向用戶提供關(guān)于所需分類的推薦(諸如“機(jī)密”、“內(nèi)部”、“人力資源數(shù)據(jù)”“秘密”或“最高秘密”)。
在完成內(nèi)容的創(chuàng)建時(shí),用戶通常通過按下“保存”按鈕來保存內(nèi)容。在這種情況下,經(jīng)修改的窗口將向用戶顯示自動分類,或者邀請用戶從列表中定義或選擇分類。如果分類不被自動設(shè)置并且是組織策略所要求的,則可以阻止用戶保存數(shù)據(jù)項(xiàng),直到選擇合適的分類。這樣,應(yīng)用可以通過分類數(shù)據(jù)、編輯數(shù)據(jù)分類并且以完全固有的方法呈現(xiàn)給終端用戶的能力來擴(kuò)充。
修改應(yīng)用窗口的另一種方法是向窗口添加邊欄,該邊欄將被定位和調(diào)整,就像它是窗口的自然圖形擴(kuò)展,在這種情況下,所有附加的分類特征將被顯示在邊欄中,而不修改原來的ui元件。
將分類能力添加到應(yīng)用窗口的另一種方式是通過“下一步”按鈕替換“保存”按鈕,該“下一步”按鈕邀請用戶定義合適的分類。在這種情況下,此后僅“保存”按鈕將被顯示,以允許用戶完成保存文件。
文件擴(kuò)充的持久性
當(dāng)使用擴(kuò)充的數(shù)據(jù)項(xiàng)工作時(shí),該項(xiàng)可以由消費(fèi)應(yīng)用修改(保存)。根據(jù)本發(fā)明,重要的是每當(dāng)使用“保存”操作保存文件時(shí),保存所有擴(kuò)充,包括加密級別和使用權(quán)限(從irm許可導(dǎo)出)、文件(或另一數(shù)據(jù)項(xiàng))或其他元數(shù)據(jù)的分類。這是需要的,因?yàn)樵谑箲?yīng)用訪問數(shù)據(jù)項(xiàng)之前,一些或所有數(shù)據(jù)項(xiàng)的擴(kuò)充被剝離,并且可能在保存時(shí)被丟失。這可以通過標(biāo)識例如文件被保存的路徑并且重新應(yīng)用擴(kuò)充來完成。
此外,在一些情況下,數(shù)據(jù)項(xiàng)可以由應(yīng)用以不同的名稱被保存到不同位置和/或以不同文件格式被保存。這通常通過使用“另存為”界面來完成。當(dāng)這樣的操作發(fā)生時(shí),需要保留原始文件擴(kuò)充。標(biāo)識數(shù)據(jù)項(xiàng)的這種轉(zhuǎn)換的實(shí)例是困難的,因?yàn)閿?shù)據(jù)項(xiàng)可以在執(zhí)行轉(zhuǎn)換(“另存為”)時(shí)改變其格式或內(nèi)部表示,并且因此不能簡單地通過它的二進(jìn)制內(nèi)容或通過它的位置(路徑)來標(biāo)識。
這種繼承過程的可能實(shí)現(xiàn)使用與操作系統(tǒng)公共“另存為”對話框的集成,以便將數(shù)據(jù)項(xiàng)的“另存為”操作標(biāo)識到新的名稱、位置和/或格式。
該過程的示例是當(dāng)用戶首先通過adobereader打開經(jīng)分類和受irm保護(hù)的pdf文件,然后執(zhí)行“另存為”操作以將文件保存為與原始文件不同名稱和不同位置的純文本文件。集成到“另存為”對話允許標(biāo)識這樣的“另存為”操作,并且將分類和irm數(shù)據(jù)應(yīng)用到另存的純文本文件中。
雖然已經(jīng)通過說明的方式描述了本發(fā)明的一些實(shí)施例,但是將清楚的是,本發(fā)明可以以許多修改、改變和適應(yīng)性修改來執(zhí)行,并且在不超出權(quán)利要求的范圍的情況下使用在本領(lǐng)域技術(shù)人員的范圍內(nèi)的許多等同物或替代解決方案。