背景技术
信息权限管理(IRM)在许多组织中被使用,以保护企业敏感信息(例如财务数据、知识产权和行政通信)免受未经授权的访问和使用。IRM主要包括访问权限和使用权限的实施,以便确定哪个用户将能够对数据执行动作,诸如复制、拖/放、打印、全屏截屏(printscreen)、另存为(save as)、保存(save)和查看(view)操作。为了使得IRM启用,使用加密数据的每个应用应该能够接收解密密钥、解密数据并且呈现解密的数据以允许用户访问。为了这个目的,所有使用权限的能力应当被集成到应用中,包括具有密钥管理的加密/解密和数据交换,使得每个数据项的许可集合将被分析,以便启用或禁用应用内的功能并且实施使用权限。这导致IRM实现强烈依赖于应用类型的情况,并且因此根据应用的不同而改变。
用于将IRM实现到应用的已有解决方案之一是使用IRM软件开发工具包(SoftwareDevelopment Kit,SDK—这是允许为特定软件开发平台创建应用的软件开发工具),该软件开发工具包通常由IRM供应商提供。如此,IRM的代码被开发为应用的固有代码的一部分。然而,该解决方案是麻烦的和昂贵的,因为它需要修改每个应用的固有代码,特别是在使用来自许多软件提供商的许多应用的企业中,大多数成品应用是现成的。在这种情况下,该解决方案需要那些许多不同应用供应商的合作。另外,有时应用供应商与IRM供应商之间的关系使第三方供应商无法实现IRM。此外,并非所有IRM供应商都提供可用于所有开发技术的可用SDK,并且并非所有应用供应商都将集成这样的SDK,而对其源代码或二进制文件的第三方修改被应用供应商许可所禁止。
当需要由用户经由呈现数据的应用来显示、添加和修改数据项的分类时,会出现类似的问题。出于安全原因,数据的分类有时是强制性的。例如,如果数据包含敏感内容(例如,信用卡号),则该数据必须被分类。
主要困难之一是每个应用具有不同的UI、不同的UI布局和不同的技术,这带来了可用性问题。这些问题之一是即使UI布局随应用的不同而不同,也期望向应用的每个用户提供统一的可用性体验。一致性问题的常规解决方案之一是使用SDK来实现分类能力,例如使用工具栏。然而,这需要修改每个应用中的UI布局以获得这样的一致性。另一个解决方案是使用附加组件(add-on)(增强另一个软件应用的一个软件),但这也需要将不同的附加组件集成到每个应用。
集成分类能力的另一种方式是使用通用位置,诸如标题栏(图形控制元件,其作为窗口装饰的一部分—通常作为水平栏位于窗口的顶部)。然而,存在一些没有标题栏的应用,并且在任何情况下,使用中间的标题栏来获得分类能力将中断用户的自然工作流(即,在使用几乎任何应用时用户执行的自然顺序)。例如,为了保存所创建的数据项,用户将需要使用标题栏。在使用弹出窗口(在应用外部)提供分类能力时会出现类似中断。也可以使用右键单击文件管理器(例如Windows资源管理器(Windows Explorer))来提供分类能力,但这也会中断用户的自然工作流,因为用户应当关闭应用并且使用另一工具。
本发明的一个目的是提供一种用于在软件应用中启用数据分类和信息权限管理(IRM)能力的实施的方法,其不会中断用户的自然工作流。
本发明的另一个目的是提供一种用于在软件应用中启用数据分类和信息权限管理(IRM)能力的实施的方法,其对于所有应用都通用。
本发明的另一个目的是提供一种用于在软件应用中实现数据分类和信息权限管理(IRM)能力的实施的方法,这些软件应用不需要与特定应用集成并且不需要任何开发努力、不需要针对目标应用被定制。
本发明的另一个目的是提供一种允许用户在其生态系统中实现分类和IRM而不需要升级或修改用户的已有应用(二进制文件)的方法。
随着描述的进行,本发明的其它目的和优点将变得清楚。
发明内容
本发明涉及一种用于在软件应用中实现数据分类和/或信息权限管理(IRM)能力的实施和/或加密的方法。根据所提出的方法,代理被安装在运行应用的每个终端设备上,并且包括要被实施的IRM、加密和分类策略的中央管理模块与被安装在每个终端设备上的代理通信。中央管理模块向每个代理分布合适的IRM和/或分类策略,并将该策略应用于在终端设备上运行的任何应用。
代理可以被用于通过以下在运行应用的终端设备上实施使用权限:
a)在由应用接收到数据项或文件时,使用代理来标识应用并且提取与文件的原始IRM权限有关的信息;
b)由代理将不会中断应用的自然操作的专用运行时代码单元注入到应用的固有代码中,用于关于指示用户可以在访问文件时执行的操作的活动而拦截对在应用API或操作系统API中的操作的调用;
c)在执行所需操作之前,增强运行过程以与代理通信,以接收关于访问用户的对所访问数据项的许可;以及
d)仅启用符合所呈现内容的IRM许可的操作。
每当应用在单独的窗口中并行地打开多个文件时,代理被允许执行窗口与窗口的对应文件和IRM之间的相关性,以便确定如何呈现它,同时根据窗口特征(其可以包括窗口的标题或窗口的内容)计算权限。
代理可以被适配为通过在标识用户通过点击“另存为”底部或使用键盘快捷方式而触发“保存”或“另存为”操作时允许代理在操作系统级别中干预以显示具有分类和IRM相关内容的经修改的“保存”窗口(其可以例如使用子类化控件而被创建),来在运行应用的终端设备上实施数据分类。
分类可以根据预定的企业策略而被自动执行或者由创建、编辑或使用数据的用户确定。
经修改的窗口可以被适配为向用户提供关于数据所需分类的推荐。
每次在保存文件时,在改变或不改变文件的格式或名称的情况下,文件的分类可以被继承。
经修改的窗口可以通过以下而被创建:将具有所有附加分类特征的边栏添加到标准窗口或通过添加“下一个”按钮,该“下一个”按钮在“保存”按钮之前并且邀请用户定义合适的分类。
在从相关性接收到非决定性结果时,针对由应用打开的所有文件,IRM以最高标准被应用。IRM权限可以使用挂钩(hooking)和覆写(overriding)标准操作系统级功能和API(诸如由应用级按钮触发的标准Windows API或标准剪贴板API)而被应用。
扩充可以在数据项内被保持持久,并且扩充可以通过以下将扩充继承到所扩充的数据项的复制或编辑版本:
a)覆写由操作系统提供的标准对话框;以及
b)使用内核模块来保持应用以文件的非扩充版本操作。
Windows内核级模块可以被使用,以用于通过内容相似性来标识经扩充的文件的转换,并且以包括原始扩充的版本替换文件,或者将扩充添加到目标文件。
本发明还涉及一种具有软件应用中的数据分类和/或信息权限管理(IRM)能力的实施和/或加密的计算机实现的系统,该系统包括:
a)运行应用的多个终端设备,代理被安装在多个终端设备上;
b)运行中央管理模块的计算机,中央管理模块包括要被实施的IRM、加密和分类策略并且与被安装在每个终端设备上的代理通信,中央管理模块被适配为:
b.1)向每个代理分布合适的IRM和/或分类策略;以及
b.2)将该策略应用于在终端设备上运行的任何应用。
具体实施方式
用于在软件应用中启用数据分类和信息权限管理(IRM)能力的实施的方法曾包括两部分。第一部分是利用附加特征扩充数据项。这样的特征可以包括原始内容的加密、添加IRM策略、添加分类和任何其他功能增强。如此,文件的增强副本被创建,该增强副本在其数据中保持附加特征。在第二部分中,处于这些扩充不被消费应用支持(例如当应用不支持用于扩充文件的加密或IRM方案时)的情况。由于扩充应该从应用中被隐藏,本发明提出了一种方法,用于使能这些扩充在应用作用之后仍然是活动的并且根据应用动作而被保留。
US2010/0146600公开了一种用于在组织计算机网络中的自动数据保护的系统和方法,根据该系统和方法,定义了用于分类数据项的多个信息简档以及用于保护属于特定信息简档的数据项的规则。数据项根据所定义的信息简档而被分类,并且响应于它们的分类和所定义的策略规则的集合,保护方法被应用于数据项。数据项的分类可以响应于数据项的内容或位置的改变而被自动更新,并且所应用的保护方法在数据项的整个生命周期中响应于数据项的分类或位置的改变而根据所定义的规则被自动保留和调整。因此,本发明提出的方法可以用于扩展US 2010/0146600的数据保护方法,以便将IRM策略集成和实现在附加的应用集合、数据项格式和数据项转换中。
由本发明提出的方法建议通过将能力嵌入到应用中来扩充应用,使得应用将能够访问、编辑、创建和作用于这样的扩充文件。一个示例是通过非IRM感知的第三方软件提供经加密的数据项,同时在第三方软件上应用IRM使用权。此外,应用用户界面被扩充有应用编辑和添加内容的方式。所有这一切都是在不修改应用的固有代码的情况下完成的。如此,将能够实现用户查看、定义或修改数据的分类的能力以及数据使用权限的执行将被启用,而不需要供应商的合作。相反,这样的特征在运行时被添加到应用中,并且应用二进制文件被保持为像它已经原始创建的一样。
所使用的架构包括中央管理模块,该中央管理模块包括IRM和分类策略并且与被安装在每个终端设备上的代理通信。中央管理模块将合适的IRM或分类策略分布给每个代理,每个代理进而又将策略应用于在终端设备上运行的任何被定义的应用。
在运行应用中启用IRM能力
本发明所建议的扩充是将IRM能力添加到任何格式和应用。在终端设备上对IRM(或使用权限)的实施由实现本发明的代理完成。在由应用接收到数据项、诸如文件(其受IRM保护)时,代理标识应用(例如,根据由正在运行的应用创建的过程或根据其数字签名)并且提取与文件的原始加密有关的信息。专用运行时代码单元(其不中断应用的自然操作)由代理注入到应用的固有代码中,以便执行挂钩以用于拦截对在应用的API中或在操作系统中的标准操作的调用,诸如剪贴板活动(以便标识复制尝试)、打印机假脱机(spooling)活动(以便标识打印尝试)和其他预定活动,这些预定活动指示用户在访问文件时可以执行的操作。在执行所需操作之前,运行进程与代理通信以获得关于访问用户的对所访问数据项的许可,并且仅启用符合所呈现内容的IRM许可的操作。许可和IRM策略被嵌入在受IRM保护的文件中。例如,访问文件的用户“A”可能将能够在他的终端设备上查看该文件,但不允许打印文件的内容,而另一个经由他的终端设备访问同一文件的用户“B”将能够查看和打印内容。
一些应用(例如Adobe Acrobat Reader)能够在单个进程中同时呈现多个文档,同时在单独的窗口中呈现每个文档。在这种情况下,代理将执行在所访问的文件和文件对应的IRM策略与显示文档的特定窗口之间相关性,以确定如何在该窗口应用使用权限。这考虑了窗口属性,如标题、内容、父窗口和子窗口、创建时间等等。在代理不能将文档窗口明确地匹配到单个数据项的情况下,具有最高标准的IRM将被用于来自被标识为用于窗口内容的可能匹配的所有文档的窗口。
例如,在通过Microsoft记事本(Notepad)文本编辑应用访问文本文件(其被修改为被加密的,被分配IRM权限或以文件内容外部的其他扩充文件被应用)时,终端设备上的代理将该文件标识为包含这样的扩充文件。这可以由作为代理的一部分的文件系统过滤器驱动器(File System Filter Driver)来完成。如果文件被应该对文件具有明文访问(clear-text access)的应用(即“受信任的”)所访问,则其停止应用的打开操作(在Windows中为IR_MJ_Create),并且将文件引用提供给代理。然后,代理会从应用不支持的扩充中清除该文件,并且在加密的情况下,代理使用用户标识来获取合适的密钥,以便允许解密该文件。经净化的副本以安全的方式被存储,使得只有指定进程可以访问它。一旦完成此操作,驱动器重新编译由记事本完成的OS调用以打开该文件,将调用静默地重定向到经解密的副本。因此,应用实际上访问经净化的文件,并且能够使用文件的内容。如果该用户具有仅允许他查看数据但是阻止例如打印或复制的许可,记事本仍然能够从经解密的安全副本中呈现内容,因此用户将能够查看内容。然而,被注入记事本的代码将不允许他打印文件或复制内容。如果此用户没有提供对数据的任何级别的访问的权限,即使用户双击它,记事本也不被允许显示内容(因为代理不会为他解密该内容)。拦截数据项的方法可以不同。它可以支持来自其他介质的文件访问,例如Web浏览器或其他存储和网络介质。
为了不依赖于应用并且不中断用户的自然工作流,本发明提出的方法使用挂钩和覆写标准操作系统级功能和API(而不是应用级)。例如,统一的打印API由Windows操作系统提供。该API调用可以被由代理注入到第三方应用中的代码所覆写,以便应用IRM权限以及防止来自该应用的对内容的未经授权的打印。另一个示例是标准的“另存为”窗口由Windows操作系统经由标准Windows API提供,通常由应用级的“保存”/“另存为”按钮触发。除了追踪内容的格式或位置转换之外,此API可以被覆写以便在保存时提供用户界面。通过追踪这种转换,可以在另存为操作时保留文件扩充。
另一个示例是标准剪贴板API,类似于由Windows提供的剪贴板API,其可以被覆盖以实施不允许经由系统服务(诸如剪贴板和拖放)从安全文档中拷贝内容的IRM权限。
当应用打开受IRM保护的文件时,文件使用权限将被检索。当由IRM权限覆盖的动作发生时,事件细节被检查,诸如其中发生该事件的应用、窗口或事件发生的祖先窗口的标题、触发事件或与事件相关的进程ID(包括父进程和子进程ID)。这些细节用于推导保持事件需要的数据的原始文件。然后,与文件相关联的权限被评估,以验证事件是否应被启用或阻止。
除了IRM权限实施之外,本发明还提供了用于保持扩充在数据项内持久的方法,并且将扩充继承到经扩充的数据项的复制或编辑版本,包括保持相同数据但它们的二进制格式不同的“逻辑副本”。这可以例如通过覆写由操作系统提供的标准另存为(Save-As)对话框来实现。由此,系统可以标识数据项的副本被保存在哪里以及以什么格式被保存,并且将扩充从源文件复制到它的副本中。这种扩充的继承可以在不中断用户的正常流程的情况下完成,而内核模块可以被用于始终保持应用与文件的非扩充版本一起工作。
此外,这可以与Windows内核级模块组合,通过内容相似性标识经扩充文件的转换,并且以包括原始扩充的版本替换该文件,或者将扩充添加到另存为目标。
权限评估示例
假设具有打开了内容文件的第三方应用,IRM扩充防止终端用户为该内容文件添加来自该文件的复制内容。在这种情况下,当应用作为对用户输入的响应或者以编程方式而尝试复制操作时,标准操作系统API将被调用以在提供“剪贴板”的操作系统内存储内容。这样的API调用由本发明注入到第三方应用中的运行时代码模块拦截。然后决定是允许这个动作还是阻止它,这一切都取决于原则的权限。
为了决定这一点,使用应用的进程信息,以及应用窗口数据和/或窗口标题。这些用于推断从中复制数据的原始文件,并且因此以通过IRM权限策略扩充文件来评估针对该用户是否允许“复制”权限。例如,在Microsoft的记事本文本编辑应用中,Windows标题保持由记事本呈现的文件名。窗口标题与追踪记事本正在访问的文件相结合,允许确定记事本当前呈现的文件。一旦推导出文件,它的扩充(如IRM权限)可以应用于记事本运行实例。通过这种方式,可以根据在记事本所使用的数据文件中找到的扩充,由IRM权限控制并且由记事本执行的应用操作能够被实施,如打印、拖动、打印屏幕、另存为和保存。
在某些情况下,仅存在来自事件的原始文件位置的部分信息,例如文件名,而不是文件的完整路径。此外,如果应用打开具有相同文件名但具有不同权限的多个文件,则几个可能的文件可能是从中读取扩充的候选。例如,当在Adobe Reader应用上实施IRM权限时,可能会发生这种情况。Adobe Reader在其窗口标题内呈现文档标题。虽然这可以允许从由Adobe Reader访问的文件的集合中推导出由Adobe Reader呈现的文件,通过解释它们各自的标题,可以存在多于一个匹配文件候选。在这种情况下,评估所有可能的文件候选的权限并且使用最严格的权限的集合。
启用分类能力
类似地,可以启用分类能力并且用于由代理在终端设备上实施IRM(或使用权限),或者备选地仅在没有附加的IRM实施的情况下操作。启用分类的方法是通过标识(通过由代理注入以覆写标准操作系统保存API的挂钩代码)应用正在显示保存界面,代理将显示具有分类相关按钮的经修改的“保存”窗口,如图1所示。
实现的示例是通过将代码单元(DLL和/或线程)注入到应用存储器空间中。这允许获得对应用地址空间的访问。如果将专用代码注入到应用中,则可以通过利用本公开的函数覆写任何动态链接的函数(例如,Windows API函数)来继续。这使得能够替换或修改应用行为,并且除了应用本身之外或者替代应用本身而插入专用代码。例如,Windows API挂钩可以被用于拦截Windows提供的标准另存为对话框的实例的创建。
通常,由操作系统提供的标准窗口将具有标准API,以便允许向窗口添加元件(新UI)。例如,在Windows标准“另存为”对话框中就是这种情况。在这种接口(不提供自定义控件)的情况下,或者当它太局限于所期望的使用时,可以使用窗口子类化来改变特征或向子类窗口添加特征。这样,可以促使运行的应用调用替代窗口,该替代窗口可以被重整以包括所有新的分类特征。
分类可以是使用内容分析、上下文分析(诸如用户的身份、应用源、元数据、IP或可以从数据访问事件或从计算机环境分析出的任何其它元数据)自动进行(根据企业策略预定的),或由在大多数情况下编辑或使用数据的用户确定。系统还可以使用经修改的窗口以向用户提供关于所需分类的推荐(诸如“机密”、“内部”、“人力资源数据”“秘密”或“最高秘密”)。
在完成内容的创建时,用户通常通过按下“保存”按钮来保存内容。在这种情况下,经修改的窗口将向用户显示自动分类,或者邀请用户从列表中定义或选择分类。如果分类不被自动设置并且是组织策略所要求的,则可以阻止用户保存数据项,直到选择合适的分类。这样,应用可以通过分类数据、编辑数据分类并且以完全固有的方法呈现给终端用户的能力来扩充。
修改应用窗口的另一种方法是向窗口添加边栏,该边栏将被定位和调整,就像它是窗口的自然图形扩展,在这种情况下,所有附加的分类特征将被显示在边栏中,而不修改原来的UI元件。
将分类能力添加到应用窗口的另一种方式是通过“下一步”按钮替换“保存”按钮,该“下一步”按钮邀请用户定义合适的分类。在这种情况下,此后仅“保存”按钮将被显示,以允许用户完成保存文件。
文件扩充的持久性
当使用扩充的数据项工作时,该项可以由消费应用修改(保存)。根据本发明,重要的是每当使用“保存”操作保存文件时,保存所有扩充,包括加密级别和使用权限(从IRM许可导出)、文件(或另一数据项)或其他元数据的分类。这是需要的,因为在使应用访问数据项之前,一些或所有数据项的扩充被剥离,并且可能在保存时被丢失。这可以通过标识例如文件被保存的路径并且重新应用扩充来完成。
此外,在一些情况下,数据项可以由应用以不同的名称被保存到不同位置和/或以不同文件格式被保存。这通常通过使用“另存为”界面来完成。当这样的操作发生时,需要保留原始文件扩充。标识数据项的这种转换的实例是困难的,因为数据项可以在执行转换(“另存为”)时改变其格式或内部表示,并且因此不能简单地通过它的二进制内容或通过它的位置(路径)来标识。
这种继承过程的可能实现使用与操作系统公共“另存为”对话框的集成,以便将数据项的“另存为”操作标识到新的名称、位置和/或格式。
该过程的示例是当用户首先通过Adobe Reader打开经分类和受IRM保护的PDF文件,然后执行“另存为”操作以将文件保存为与原始文件不同名称和不同位置的纯文本文件。集成到“另存为”对话允许标识这样的“另存为”操作,并且将分类和IRM数据应用到另存的纯文本文件中。
虽然已经通过说明的方式描述了本发明的一些实施例,但是将清楚的是,本发明可以以许多修改、改变和适应性修改来执行,并且在不超出权利要求的范围的情况下使用在本领域技术人员的范围内的许多等同物或替代解决方案。