保护非受信设备上的数据的制作方法

文档序号:11450690阅读:228来源:国知局
保护非受信设备上的数据的制造方法与工艺

相关申请的交叉引用

本申请要求2015年1月2日提交的题为“securingdataonuntrusteddevices,”的美国专利申请第14/588,779号的优先权,该案的全部内容通过引用合并于此。

本公开大体上涉及数据安全,并且更具体地,涉及保护非受信设备上的数据。



背景技术:

在敏感信息可以被存储在设备上的设置中越来越多地使用便携式电子设备(诸如,膝上型计算机、平板、或者智能电话)。例如,用户可以在其智能电话上发送和接收企业电子邮件,或者可以(诸如,经由远程网络连接)在平板设备上访问、编辑、并且保存内部企业文档。另外,用户根据通常称为“携带您的设备”的策略或者byod策略提供其自身设备以供在工作中使用变得越来越常见。然而,对于传统上在使能了特定安全特征的情况下向用户提供企业设备的信息技术(“it”)部门而言,根据这种byod策略使用的设备存在安全隐患。



技术实现要素:

描述了用于保护非受信设备上的数据的各种示例。一种示例方法包括以下步骤:识别来自软件应用的命令以访问安全数据;基于所述软件应用和用户证书来确定命令是否被许可;以及响应于确定命令不被许可,从命令队列移除命令。

一种示例设备包括:非暂时性计算机可读介质;与该非暂时性计算机可读介质通信的处理器,该处理器被配置为:通过第一进程监视命令队列以识别来自其它进程的命令,命令中的至少一个指示对安全数据的动作;访问一个或者多个规则以确定至少一个命令是否被许可;以及响应于确定命令不被许可,从命令队列移除命令。

一种示例非暂时性计算机可读介质包括程序代码,该程序代码包括可由处理器执行的监视软件,该监视软件被配置为监视命令队列以识别来自其它进程的命令;识别指示对安全数据的动作的命令;传输确定命令是否被许可的请求;以及响应于对请求的指示命令不被许可的响应,从命令队列移除命令。

这些说明性示例的提及不限制或者限定本公开的范围,而是提供示例以帮助理解本公开。在具体实施方式中对说明性示例进行了讨论,这提供了进一步的描述。通过查阅本说明书可以进一步理解各种示例所提供的优点。

附图说明

附图被包括在本说明书中并且构成本说明书的一部分,附图图示了一个或者多个特定示例,并且与对示例的描述一起用于解释特定示例的原理和实施方式。

图1示出了用于保护非受信设备上的数据的示例系统;

图2示出了用于保护非受信设备上的数据的示例计算设备;

图3示出了用于保护非受信设备上的数据的示例系统;

图4-5示出了用于保护非受信设备上的数据的示例方法;

图6示出了用于保护非受信设备上的数据的示例系统;以及

图7示出了用于跟踪用于保护非受信设备上的数据的进程id的示例数据结构。

具体实施方式

本文在保护非受信设备上的数据的场境中描述了示例。本领域的普通技术人员将认识到,下面的说明仅仅是说明性的,而非意在以任何方式进行限制。如附图中所图示,现在将详细地对示例的实施方式进行参考。贯穿附图和以下说明,将使用相同的附图标记来指代相同或者相似的项。

为了清楚起见,并未示出和描述本文描述的示例的所有例程特征。当然,要了解,在开发任何这种实际实施方式时,必须进行若干实施方式特定的决策,以便实现开发人员的特定目标(诸如,遵守与应用和业务相关的约束),并且要了解,这些特定目标将根据不同的实施方式和不同的开发人员而有所不同。

用于保护非受信设备上的数据的说明性方法

在用于保护非受信设备上的数据的方法的一个说明性示例中,用户使用平板计算机来访问存储在远程企业文档服务器上的文字处理文档。平板下载文档并且将文档存储在平板内的闪速存储器设备上的安全分区上。用户然后在平板上执行文字处理应用、使用菜单来执行文件“打开”命令、并且使用文件导航对话窗口来导航到安全分区内的所下载的文档。在定位到文档之后,用户点击“ok”按钮来使应用打开文档。

当用户点击“ok”时,应用经由包括将要打开的文档的文件路径名和文件名的应用编程接口(“api”)将命令下发至操作系统(“os”)。例如,应用执行称作os.fileopen的操作系统api命令并且提供文件的路径名和文件名(诸如,"z:\secure\docs\businessplan.doc")作为参数。api命令使os在命令队列中生成要执行的条目以打开文件。在这种情况下,os是多任务os,因此,os接收来自各种不同的线程和进程(包括来自os本身的每个方面)的命令。因此,os对命令队列内的接收到的命令进行排队以供稍后执行。在这种情况下,os对接收到的文件“打开”命令和命令队列中的路径名与文件名进行排队以供执行。

然而,在该示例中,用户的平板正在执行软件应用,该软件应用监视尝试对位于安全分区内的数据执行的命令。监视软件监视os的命令队列内的事件,以识别包括安全分区内的路径名的任何命令。在该示例中,监视软件检查os的命令队列内具有包括“z:\secure”的目标路径名的事件。因此,当os为具有路径名“z:\secure\docs”的“打开”命令的队列生成新命令时,监视软件识别对应事件并且确定对应命令(在该示例中,“打开”命令)是否为该文件的软件应用的和该文件的用户许可的命令。在该示例中,用户不具备访问文件的权限,因此,监视软件在对应的事件执行之前从命令队列删除对应的事件。另外,监视软件向用户生成并且显示所尝试的命令未被授权的通知并且在监视软件的审计日志中生成并且存储指示所尝试的“打开”命令、文档的路径名和文件名、尝试执行动作的用户、和尝试的结果(也就是不许可命令执行)的条目。

用户认识到其选择了错误的文档,并且将第二文档“doc2.doc”下载到安全分区。用户然后尝试使用文字处理应用来打开第二文档。文字处理应用再次调用os的api并且将路径名和文件名“z:\secure\docs\doc2.doc”传递至“打开”命令。os在其命令队列中生成条目以打开所识别的文件。监视软件再次基于安全分区“z:\secure”的路径名来识别条目,并且确定是否许可软件应用和用户打开该文档。在这种情况下,用户被授权利用文字处理应用来打开文件,因此,监视软件不会从命令队列删除条目,从而允许os执行命令。监视软件然后获得用于打开文档的软件应用的实例的进程标识符(“进程id”),并且将包括进程id的记录、关于文档的信息(例如,文件名和路径)、和对与文档和用户相关联的访问规则的引用存储在数据结构中。另外,监视软件在其审计日志中生成指示成功打开文件的条目,该条目包括用户名、文件名、和被执行的命令(在这种情况下是“打开”)。软件应用然后打开文档并且将其呈现给用户。

用户然后决定其希望将文档保存至插入到平板中的可移动闪存设备,因此,其从文字处理应用内的菜单系统中选择命令“另存为”并且选择可移动闪存设备作为“另存为”命令的目的地。文字处理应用调用os.filesaveasapi函数并且提供文档的目的地路径名和文件名,并且os生成命令队列中“另存为”命令的条目。

在这种情况下,监视软件通过识别命令队列中的软件应用的实例的进程id并且分析与进程id对应的命令来检测对文档的所尝试的“另存为”。在这种情况下,监视软件分析数据结构以针对用户和文档识别对应访问规则。监视软件然后访问访问规则以确定用户是否具有充足的权限将“另存为”操作执行到在安全位置外部的位置。在这种情况下,监视软件确定用户不具备充足的权限,并且从命令队列删除与“另存为”命令对应的条目。如前所述,监视软件向用户生成并且显示不允许所尝试的操作的通知,并且在其审计日志中生成指示所尝试的命令、路径名和文件名、和用户名的条目。

在该说明性示例中,监视软件也能够监视其它类型的命令,该其它类型的命令可能会允许对文档进行未经授权的访问或者未经授权地将安全数据移出安全分区。例如,监视软件能够检测并且防止文件级操作(诸如,“保存”、“另存为”、“复制”、“移动”、“共享”、和“重命名”)、内容级操作(诸如,“打印”、“剪切”、“复制”、“粘贴”)、其它专用操作(诸如,电子邮件操作(例如,将安全文件附接至电子邮件))、以及可以由其它应用或者操作系统执行的其它操作(诸如,屏幕截图或者屏幕记录功能、或者改变文件权限以反映“只读”、“读取/写入”、或者其它类型的权限)。保护非受信设备上的数据的示例可以在不需要提供影响单独的软件应用的操作的应用“封装器”的情况下包括非受信设备上的数据安全。相反,各种示例可以向用户和设备上的软件应用与操作系统提供针对安全数据的有效地透明安全。

上文的说明性示例讨论了不同的软件应用的使用;然而,该详细说明的其它部分可以参考通用术语“进程”。软件应用可以作为计算系统上的进程而执行。例如,当启动文字处理软件应用时,可以将执行的文字处理软件应用称为进程。在这种示例中,为了清楚起见,可以将进程称为“第一”进程和“第二”进程。标签“第一”和“第二”(和“第三”等)不旨在指示序列,而仅仅旨在将不同的进程彼此区分开。例如,如果多个不同的软件应用在计算系统上(诸如,在多任务操作系统的场境内)大体上同时执行,则每个软件应用可以是单独的进程,并且可以使用这些标签来称呼每个软件应用。例如,上文讨论的监视软件作为与文字处理软件应用进程分开并且与文字处理软件应用进程不同的进程而执行,因此,还可以将监视软件称为“第一进程”并且将文字处理软件应用称为“第二进程”。进一步地,一些进程可以包括可以独立于彼此部分地或者整体地操作的一个或者多个执行“线程”。这些线程通常是单个进程的一部分,但是可以表示由进程执行的不同任务。贯穿全文,对术语进程和线程的提及通常可以表示这些概念或者本领域的技术人员通常所理解的概念。

在下文的详细说明中提供了保护非受信设备上的数据的其它示例。

现在参照图1,图1示出了用于保护非受信设备上的数据的示例系统100。示例系统100包括经由网络120与文档服务器130和管理服务器132通信的便携式计算设备110和桌面型计算机112。文档服务器130与数据储库140通信并且被配置为维护可用于计算设备110和桌面型计算机112的文件。管理服务器132被配置为建立和提供对设备110、112的访问策略。网络120可以是任何合适的网络,诸如,互联网、基于云的网络、内联网、局域网、无线局域网、广域网、微波网络、卫星网络、集成服务数字网络、蜂窝网络、以及它们或者其它类型网络的组合。

计算设备110和桌面型计算机112中的每一个已经安装了被配置为保护相应设备110、112上数据的监视软件并且执行该监视软件。监视软件与服务器130通信并且从服务器130接收用于访问安全数据的配置参数和访问证书。另外,设备110、112中的每一个配置有已经针对存储安全数据而建立的存储位置。在该示例系统100中,设备110、112中的每一个具有计算机可读介质,该计算机可读介质具有已经建立为存储安全数据的文件系统分区。文件系统分区被配置为使得其在计算机可读介质的分区表中单独地建立并且可以独立地从文件系统安装和卸载。在一些示例中,安全分区可以驻留在不同的物理介质上。

服务器130被配置为管理文件储存库,诸如,企业文档系统。服务器130使得授权用户能够登录文档储存库并且访问存储在文档储存库内的一个或者多个文档。在文档储存库内的文档被存储在文档储库140中并且可以响应于从设备(诸如,计算设备110或者桌面型计算机112)接收的请求而由服务器130访问。

管理服务器132为文档储存库的授权用户维护安全策略信息。例如,管理服务器132为每个用户或者为一组或者多组用户维护指示用户可以访问哪些文件和相对于每个文件或者文件组许可用户采取哪些操作的配置设置。管理服务器132在其尝试连接至文档储存库时审计每个设备上的安全策略信息,并且管理服务器132更新安全策略信息(若需要)。另外,管理服务器132为设备110、112上的安全存储位置生成安全密钥信息,下文将对此进行更详细地描述。

现在参照图2,图2示出了用于保护非受信设备上的数据的示例计算设备200。图2中示出的示例计算系统200是平板设备,但是在一些示例中,计算设备200可以是智能电话、桌面型计算机、膝上型计算机、或者其它合适的计算设备。示例计算设备200包括触摸敏感显示器210、电子处理器230、存储器240、存储介质250、网络接口260、和通信总线270。处理器230被配置为访问存储器240并且执行存储在存储器240内的程序代码,以及读取数据并且将数据写入存储器240。处理器230还被配置为访问存储介质250以将数据加载到存储器240中,或者将数据从存储器存储到存储介质250。处理器230进一步被配置为使用网络接口260来访问一个或者多个通信网络(诸如,图1中示出的网络120)并且与连接至(多个)网络的其它设备通信。

存储介质250被配置为维护一个或者多个文件系统和一个或者多个数据文件。稍后在该详细说明中对合适类型的存储介质的示例进行了更详细地描述。然而,在该示例中,存储介质250包括已经被配置为具有两个文件系统分区的闪存设备。一个分区(“主要分区”)被配置为储存设备200的操作系统和其它数据文件,并且第二分区(“安全分区”)被配置为存储从文档储存库接收到的数据文件。

在该示例中,设备200首先启动和安装主要分区作为操作系统的文件系统的一部分。另外,当设备200启动时,其执行监视软件,下文将对此进行更详细地描述。一旦设备200启动,其就会使用主要分区来操作,该主要分区存储操作系统、各种软件应用(诸如,文字处理、电子表格、web浏览、和其它应用)、以及各种数据文件(包括用户数据文件)。在该示例中,监视软件被配置为安装和卸载安全分区。

应该注意的是,虽然在该示例和该详细说明的其它位置中使用了术语“安装”,但是不旨在参考在特定操作系统内可用的“安装”效用的使用。相反,贯穿本说明书使用术语“安装”和相关术语“卸载”作为用于附接或者分离文件系统的进程的通用术语。术语“安装”、“附接”、“卸载”、和“分离”可以互换地使用以表示该进程。

现在参照图3,图3示出了用于保护非受信设备上的数据的系统300的示例架构图。在该示例中,示例架构图表示示例计算设备(诸如,图2中示出的计算设备200)的配置。虽然针对图2的计算设备200描述了该示例,但可以使用任何合适的计算设备。在该示例中,软件应用310、312试图访问并且操纵存储在安全分区335上的数据文件。

系统300包括用于保护在计算设备内执行的非受信设备上的数据的子系统340。系统300包括子系统340、以及一个或者多个软件应用310、312、操作系统330、和安全分区360。子系统340包括监视软件342、访问规则数据储库344、审计日志345、安全软件346、和文件同步软件348。

软件应用310、312被配置为由计算设备200执行并且访问存储在计算设备200上的数据文件。例如,如果软件应用310是文字处理应用,则软件应用310使得用户能够创建、修改、和存储计算设备上的文档。这样,软件应用310与操作系统330交互,以便调用osapi函数来创建、修改、和存储在存储介质上的数据文件。当软件应用310调用osapi函数时,该函数将命令插入os的命令队列332中以便稍后由操作系统执行,被示出为操作系统的“执行”块334。当执行块334执行命令时,其可以访问存储介质以操纵数据文件,以便打开文件或者将更改保存到文件。

子系统340与操作系统一起运行以管理对安全分区360的访问。在该示例中,如上文讨论的,当首先打开或者启动计算设备时,计算设备200启动操作系统330并且还启动子系统340,包括监视软件342和安全软件346。在该示例中,如果安全分区360尚不存在,则安全软件346被配置为创建安全分区360。在一个示例中,安全软件346将为安全分区360生成用于储存设备的分区表中的新条目,并且生成加密分区。

如果确实已经存在安全分区360,则安全软件将访问和安装安全分区360,从而使得操作系统330可对其进行访问。

虽然对该示例的讨论已经对操作系统进行了参考,但是其它示例可以采用与操作系统不同的应用环境。一个示例使用在底层操作系统顶部执行的应用服务器环境。在这种示例中,监视软件342相反可以监视用于应用服务器环境(而不是操作系统)的命令队列。在一些示例中,监视软件342可以监视用于应用服务器环境的命令队列和用于操作系统的命令队列。

要考虑执行环境的更进一步分层或者执行环境的并行执行,诸如,在计算系统上执行的一个或者多个虚拟机。在一个这种示例中,每个虚拟机可以执行不同的操作系统和监视软件。在一些示例中,监视软件可以监视每个虚拟机与底层操作系统软件的交互。

在该示例中,安全分区360是建立在计算设备200内的存储介质250上的专用分区。使用磁盘分区工具(例如,“fdisk”)将安全分区360首先建立在存储介质上。另外,安全系统346被配置为使用基于密钥的加密(诸如,高级加密标准(“aes”)或者twofish机制)来对安全分区进行加密。在一些示例中,可以在级联中采用多个加密机制,诸如,连续地应用于相同的数据的aes、twofish、和serpent机制。因此,当将数据存储在安全分区360上时,按照加密格式来存储该数据。稍后,当软件应用请求对加密文件进行访问时,向软件应用提供文件的解密版本。

安全软件346被配置为调节对安全分区360上的加密数据的访问并且维护和更新在访问规则数据储库344内的规则。在该示例中,在已经启动设备200之后,要求用户向安全软件346提供其证书,诸如,用户名和密码。在一些示例中,可以使用其它类型的认证,诸如,使用生成的访问代码的双因素认证。在用户已经提供了可接受的证书之后,安全软件346安装安全分区360并且然后尝试访问远程服务器350以获得加密密钥来访问安全分区360上的数据。例如,计算设备200可以是由公司员工用来访问公司的文档储存库内的文件的膝上型计算机。

安全软件346然后尝试访问公司的服务器350以获得加密密钥。在该示例中,当安全软件346与公司的服务器350连接时,安全软件346向服务器350提供用户的访问证书。服务器350然后访问或者生成待由安全软件346使用的加密密钥。在一个示例中,服务器350生成540位密钥,使密钥散列,并且将散列密钥传输至计算设备200。如果安全软件346无法访问服务器350,则安全软件346可以确定其是否具有现有的有效加密密钥。例如,加密密钥在到期之前可能在特定时间周期(诸如,48小时)内可用,在特定时间周期之后,安全软件346禁用该加密密钥。

在该示例中,安全软件346被配置为在禁用加密密钥之前的48小时内维护加密密钥。但除此之外,安全软件还被配置为每隔4小时向服务器350请求新密钥。当获得新密钥时,使用新密钥来对安全分区进行重新加密,随后使旧密钥无效。除了重新启动48小时的周期之外,每隔4小时使用新密钥的效果是其可以帮助重新保护先前的密钥被未被授权的实体所破解的设备。但是只要计算设备200与服务器350保持通信,并且只要授权用户登录到安全软件中,其就会具有访问存储在安全分区360中的数据文件的无限期权限(授权给用户)。然而,如果计算设备200与服务器350断开连接,则用户可以在无法访问数据文件之前的48小时内继续访问安全分区。显而易见的是,这些时间周期仅仅作为示例而提供,并且可以建立不同的密钥刷新和密钥到期时间周期。在一些示例中,不同类型的文件可能具有不同的密钥刷新或者密钥到期周期。例如,高灵敏度的文档可以具有比低灵敏度的文档更短的密钥到期周期。并且在一些示例中,每个文档可以具有其自身相关联的密钥刷新或者到期时间周期。

另外,安全软件346为用户检查任何更新的访问规则,如果找到任何更新的访问规则,则其下载访问规则并且将这些规则存储在访问规则数据储库344中。访问规则可以包括可以定义为调节对数据文件的访问的用户特定的规则、设备特定的规则、文件特定的规则、专用规则、或者其它类型的规则。例如,用户可能只具有访问公司的文件储存库内可用的特定文件的权限,因此,用户规则的集合可以包括指示用户是否具有权限打开或者访问存储在安全分区360中的数据文件的信息。因此,当用户尝试打开数据文件时,监视软件342检查访问规则344,识别与用户和数据文件相关联的规则,并且通过从命令队列删除命令来防止文件“打开”命令被执行。在该示例中,监视软件342还将条目添加到审计日志345中以指示被禁用的命令和其它相关信息,诸如,尝试命令的用户、尝试的时间和日期、文件名、或者路径。可以将审计日志345传输至服务器350或者可以由服务器350请求审计日志345。例如,每天都可以将审计日志345传输至服务器350。在一些示例中,可以将审计日志345存储在服务器350处,并且计算设备200可以将审计日志消息传输至服务器350以便进入日志345。

在一些示例中,可以将访问规则存储为数据储库内的记录。例如,针对访问规则的合适的示例记录可以包括以下信息:

这种访问规则与用户“jsmith”和存储在目录“docs”中的安全分区("/secure")内的所识别的文件“document.doc”有关。在该示例中,规则针对“复制”动作,该文档和该用户允许该规则。因此,当监视软件检测由与“document.doc”文件和“jsmith”相关联的进程id所尝试的“复制”动作时,系统将访问访问规则,定位与用户、文件、和动作相关联的规则,并且根据规则来确定是否允许动作。

上文的记录被提供作为说明性示例,而非意在指示这种记录(或者这些记录)的所有变型或者作为要根据不同的方面存储在记录内的信息的详尽或者必要列表。

可以从服务器350获得一个或者多个记录,或者可以基于从服务器350获得的信息,在计算设备200处创建并且存储一个或者多个记录。

在该示例中,子系统340还包括文件同步软件348。文件同步软件348被配置为从文件储存库(或者多个储存库)(示出为图3中的文档储存器352)检索一个或者多个数据文件并且将更改的文件或者新文件推送至文件储存库(或者多个储存库)。例如,公司可以维护企业文档储存库,该企业文档储存库允许用户创建新文档并且将文档从储存库检入和检出以便编辑、打印、通过电子邮件发送、或者使用文档。为了使用户能够远程地访问在文档储存库中可用的文档,公司可以(诸如,经由虚拟私人网络(“vpn”))提供对文档储存库的直接访问。然而,根据本公开的示例,文件同步软件348可以从文档储存器352检索文档并且将文档的本地副本存储在计算设备上的安全分区360内。另外,文件同步软件348可以将新文档或者修改的文档推送至文档储存器352。在一些示例中,文件同步软件348或者子系统340的其它方面还可以针对文档储存器348提供检入/检出功能,这可以使用户能够在不存在同时打开并且编辑相同文档的另一用户情况下打开编辑文档。

文件同步软件348可以从文档储存器352获得一个或多个文档的集合。文件同步软件348然后分析一个或多个文档的集合以识别未呈现在安全分区中的文档。在识别任何遗漏的文档之后,文件同步软件348获得遗漏的文档的副本并且将其存储在安全分区360内。在一些示例中,文件同步软件348还确定存储在安全分区360上的任何文档是否与存储在文档储存器352中的版本不同。

例如,文件同步软件348可以生成在安全分区上的一个或者多个文档的散列值并且将在安全分区上的一个或者多个文档的散列值与在文档储存器352中的对应文档进行比较。如果在安全分区上的文件的散列值与在文档储存器352中的版本不同,则文件同步软件348确定是要将文档的副本从安全分区推送至文档储存器352,还是要从文档储存器352获得文档的副本并且替代安全分区360上的副本。为了做出这种确定,文件同步软件348可以将在安全分区上的文件的最新修改的日期或者时间与在文档储存器352中的文件的最新修改的日期或者时间进行比较。文件同步软件348然后可以将最新修改版本复制到其它位置(例如,将最新修改版本从安全分区复制到文档储存器)。在一些示例中,如上文讨论的,文件同步软件348(或者子系统340)可以被配置为从文档储存器352检出文档。当稍后将文档检入时,文件同步软件348然后可以将版本从安全分区复制到文档储存器352以替代文档储存器352上当时存在的副本。

然而,在一些示例中,子系统340可能无法从文档储存器352检出文档。因此,计算设备200的用户能够与编辑文档储存器中的相同文档的副本的另一用户同时编辑安全分区360上的文档的副本。在这种情况下,文件同步软件348可以确定两个版本的文档已经“分叉”,因此,文件同步软件348可以将文件从安全分区360复制到文档储存器作为文档储存器352中的新文档。“分叉”仅仅是指从相同源文档生成两个(或者多个)不同的文档。在该示例中,文件同步软件348或者子系统340可以存储新“分叉”文档与原始文档有关的指示符。

现在参照图4,图4示出了用于保护非受信设备上的数据的示例方法400。将针对图2中示出的计算设备200和图3中示出的示例系统300对图4的方法400进行讨论。然而,示例方法不限于这种计算设备200或者这种示例系统300。相反,可以采用任何合适的设备或者系统。在该示例中,方法400从框410处开始。

在框410中,安全软件346获得安全分区360的加密密钥。如果不存在安全分区,则安全软件346在存储介质250上创建新分区,以用作安全分区360。在一些方面,为了获得加密密钥,安全软件346访问与已知密钥服务器的网络地址相关联的记录并且将对加密密钥的请求传输至密钥服务器中的一个或者多个。在一些方面中,安全软件346可以向服务器(诸如,服务器350)发送“心跳”或者其它消息以指示计算设备200正在操作,而不是对加密密钥的特定请求。响应于该请求或者响应于接收到来自计算设备200的不同消息或者数据,密钥服务器(或者其它服务器)生成加密密钥并且将该加密密钥传输至设备。在一些方面中,密钥服务器还提供指示加密密钥的生存时间或者到期日期或者时间的配置信息。在一些方面中,计算设备200可以预先配置有用于与一个或者多个加密密钥一起使用的生存时间参数或者可以从用户或者管理员获得生存时间参数。

在一些方面中,与多个用户相关联的文件可以具有其自身的与每个用户相关联的加密密钥并且可以按照如上所述的方式进行刷新。例如,安全软件348可以为每个用户维护加密密钥,并且还可以为用户的一个或者多个聚合或者一组或者多组用户维护加密密钥。在一些示例中,当多个用户获得访问相同的文件或者多个文件的权限时,可以动态地确定这些聚合或者组。当建立新聚合或者组时(诸如,通过确定两个或者更多个用户可以访问相同的文件),安全软件348可以向聚合请求加密密钥,并且如下文将更详细地讨论的,安全软件348可以分别为新密钥维护一个或者多个定时器或者到期时间。

在一些方面中,在将加密密钥传输至计算设备200之前,服务器350使用加密散列函数(诸如,sha-1、sha-2、或者sha-3)来对加密密钥进行加密。

在获得加密密钥之后,方法400进入框420。

在框420中,安全软件348使用所获得的加密密钥来对安全分区进行加密。在该示例中,安全软件348使用加密密钥来采用包括aes、twofish、和serpent机制并且使用基于xex(xor-encrypt-xor)的带有密码窃取的调整码本模式(“xts”)方法的级联加密机制。在一些示例中,加密密钥可以与其它合适的加密方案一起用来对安全分区进行加密。在一些示例中,计算设备200可以采用支持并且被配置为使用一个或者多个加密文件系统(诸如,微软的加密文件系统)的os。另外,如果尚未安装安全分区,则安全软件346还可以将安全分区安装到计算设备的文件系统,或者其可以在稍后的时间之前延缓安装。

在一些示例中,安全软件346可以使用不同的加密密钥来生成对安全分区360的不同部分的加密。例如,如果多个不同的用户可以在不同的时间访问计算设备,则安全软件346可以使用加密密钥来对活跃用户的文件进行加密,但是可以不使用该密钥来对其它用户的文件进行加密。因此,每个用户具有其自身的可能一度活跃或者可以独立于彼此到期的加密密钥(或者多个密钥),并且可以使用用户自身的加密密钥来对每个用户的文件进行加密。

例如,两个用户可以访问计算设备200。计算设备200可以将每个用户指派到安全分区360上的不同的子目录结构,以供用户访问文件。当第一用户登录到计算设备200中时,计算设备200获得加密密钥并且使用新加密密钥来对第一用户的文件进行加密,但不对安全分区上的其它文件进行处理。如上所述,当第一用户工作时,可以定期地刷新加密密钥。稍后,当第一用户注销时,安全软件348维护用户的加密密钥,直到该加密密钥到期为止。同时,第二用户登录。计算设备200获得第二加密密钥并且对第二用户的文件进行加密。而且,如上所述,当第二用户工作时,可以定期地刷新加密密钥。稍后,第二用户注销,并且第一用户再次登录。计算设备确定与第一用户相关联的加密密钥是否仍然有效。如果该加密密钥有效,则其使能对用户的在安全分区360上的文件进行访问。如果该加密密钥无效,则安全软件346请求新加密密钥并且使用该新加密密钥来对用户的文件进行加密。不同的示例可以针对一个或者多个用户使用这种加密方法。

在已经对安全分区进行加密之后,方法进入框430。

在框430中,文件同步软件348使存储在安全分区上的文件与存储在文档储存器352中的文件同步。在该示例中,文件同步软件348维护指示要在安全分区360与文档储存器352之间同步的文件的记录。例如,文件同步软件348可以从文档储存器352检索在过去30天(或者其它预设时间周期或者用户可配置的时间周期)内用户已经在文档储存器352中访问的所有文档的列表,并且针对由计算设备200上的用户创建的任何新文档将条目添加至列表。

为了使在安全分区360与文档储存器352之间的一个或者多个文件同步,文件同步软件348可以识别存储在安全分区360上的、未存储在文档储存器352中的一个或者多个文件并且将这些文件中的一个或者多个复制到文档储存器352。文件同步软件348还可以识别存储在文档储存器352中的、未驻留在安全分区360内的一个或者多个文件,并且从文档储存器352获得文件中的一个或者多个的副本并且将这些副本保存到安全分区360。文件同步软件348还可以分析存储在安全分区360和文档储存器352中的文件版本并且确定在何时将不同的文件版本存储在每个位置中。文件同步软件348然后可以确定哪个版本最新并且可以尝试利用较新的文件版本来重写较旧的版本。在一些示例中,文件同步软件348可以不利用较新的版本来重新较旧的文件版本,而是可以维护这两个版本并且使这两个版本同步。例如,如果计算设备200的用户编辑安全分区360中的文档,则文件同步软件348可以将编辑后的文档复制到文档储存器352并且指示要将其存储作为先前文档的新版本。

在一些示例中,文件同步软件348可以被配置为仅仅使安全分区的一部分(诸如,单个子目录或者子目录组)同步。例如,可以向采用计算设备200的每个用户分派并且指派要维持其同步文件的子目录。因此,文件同步软件348可以只使登录到计算设备200中的用户的文件同步。这种特征可以减少用于使安全分区360与文档储存器352同步的处理和带宽要求。

在已经发起对安全分区的同步之后,方法400进入框440。

在框440中,安全软件348使能对安全分区360进行访问。例如,安全软件348可以安装安全分区360以使能访问。在一些方面中,安全软件348可以提供图形用户界面,该图形用户界面提供与存储在安全分区360内的一个或者多个文件对应的图标或者其它图形元素。在一些方面中,一旦已经安装了安全分区360,安全软件348可能就不需要采取任何肯定步骤来使能对安全分区360进行访问。

在安全软件348已经使能对安全分区360进行访问之后,方法400进入框450。

在框450中,安全软件348确定是否要刷新一个或者多个加密密钥。在该示例中,安全软件348识别与加密密钥的到期相关联的一个或者多个时间周期。例如,加密密钥可以具有与到期相关联的两个时间周期:刷新时间周期和到期时间周期。安全软件348确定加密密钥的开始时间,这可以基于获得密钥的时间、初次使用密钥的时间、在对安全分区进行加密的时间、或者一些其它时间。安全软件348然后确定已经过去的时间,并且将该已经过去的时间与这两个时间周期进行比较。如果这两个时间周期都尚未过去,则不需要刷新,并且方法返回至框440,并且用户可以继续访问安全分区360。如果已经过去了刷新时间周期或者已经过去了到期时间周期,则方法400进入框450,下文将对此进行更详细地描述。在一些情况下,刷新定时器可能会超时,但安全设备无法获得新加密密钥,因此,安全软件348还可以检查到期时间。如果满足到期时间,则方法还要进入框450。

在一些示例中,与确定已经过去的时间(在该已经过去的时间期间,密钥一直表现活跃)相反,安全软件348可以为密钥建立一个或者多个到期时间。因此,安全软件348可以检查当前时间与(多个)到期时间以确定密钥是否已经到期或者需要刷新。例如,安全软件348可以为密钥维护两个到期时间。第一到期时间是刷新时间,而第二到期时间是到期时间。当满足或者超过时间时,方法400进入框460。在一些示例中,刷新时间可以比到期时间更早。

在一些示例中,安全软件348可以只维护加密密钥的单个定时器,并且当定时器已经过去或者已经满足时,方法400进入框450。进一步地,在一些示例中,安全软件348可以维护多个加密密钥,诸如,如上所述,在具有使用相同的计算设备200的两个用户的示例中。在一些这种示例中,安全软件348可以为每个加密密钥维护相应的刷新或者到期时间或者可以为所有加密密钥维护单个时间/定时器或者两者的组合。例如,在一个示例中,安全软件348可以为每个加密密钥维护单独的刷新时间,但是可以维护单个到期定时器,在该单个到期定时器时,所有的加密密钥到期。

如上所述,多个用户可以访问计算设备200。在一个这种示例中,安全软件348为每个用户维护不同的加密密钥。当第一用户登录到计算设备中时,安全软件348可以只尝试刷新与第一用户相关联的加密密钥,但是安全软件348仍然可以检查以确定与不同的用户相关联的加密密钥是否到期,因此,即使不需要刷新活跃用户的加密密钥,方法400也可以进入框460。在一个这种示例中,(多个)不活跃用户的加密密钥可以仅用于对安全分区的一部分进行加密,因此,即使(多个)不活跃用户的(多个)加密密钥到期,活跃用户的加密密钥也可以保持活跃并且许可活跃用户继续访问安全分区。

如果安全软件348确定要刷新加密密钥,则方法400进入框460,否则方法400返回至框440。

在框460中,安全软件348确定密钥服务器是否可用于获得新加密密钥。在该示例中,安全软件348尝试与服务器350通信。如果安全软件348能够与服务器350通信,则方法400返回至框410,其中,如上所述,安全软件获得新加密密钥。如果安全软件348无法与服务器350通信,则安全软件348可以尝试与合适的替选服务器或者备份服务器通信。如果安全软件348能够与这种合适的替选服务器或者备份服务器通信,则方法400返回至框410,其中,如上所述,安全软件348获得新加密密钥。然而,如果安全软件348无法与合适的服务器通信,则方法进入框470。

在框470中,安全软件348确定加密密钥是否已经到期。在该示例中,安全软件348确定加密密钥的到期周期是否已经过去。如上文讨论的,安全软件348维护加密密钥的刷新周期和到期周期。如果到期周期尚未过去,则方法返回至框440;然而,如果到期周期已经过去,则方法进入框472。在其它示例中,许多加密密钥中仅有其中一个加密密钥可能会到期。例如,如果安全软件348为多个不同的用户维护不同的加密密钥并且只为活跃用户刷新加密密钥,则可以刷新一个用户的加密密钥,而其它用户的加密密钥可能会到期。

在框472中,安全软件348禁用对安全分区360的访问。在该示例中,到期周期指示加密密钥已经使用了过长时间,并且因为并未获得任何新加密密钥,所以安全软件348禁用对安全分区360的访问。在该示例中,安全软件348通过在已经获得新加密密钥之前禁用对加密密钥的访问,并且,除了关闭任何打开文件之外,通过拒绝定向至安全分区的所有应用命令,来禁用对安全分区360的访问。在一些示例中,安全软件348可以卸载安全分区360以防止对其进行访问,直到已经获得新加密密钥为止。或者在一些示例中,如果多个用户分别具有不同的加密密钥,则一个用户的加密密钥可能会到期,而另一用户的加密密钥仍然进行刷新。在一个这种示例中,安全软件348禁用对安全分区360中与到期密钥相关联的任何目录或者文件的访问。或者,如果文件与多个用户相关联,则安全软件348可以在防止对该文件进行访问的同时允许一个用户访问文件,诸如,通过禁用用户的与该文件相关联的访问规则。下文将针对图5对访问规则进行更详细地讨论。

在已经禁用了对安全分区360的访问之后,方法返回至框460,以尝试与密钥服务器通信。

虽然上文描述的示例方法400已经被描述为根据特定顺序进行,但在一些方面中,步骤序列可以按照不同的顺序发生,或者多个步骤可以同时发生。因此,当查看图4或者图4中示出的示例方法400的对应说明时,不应该暗示步骤的任何特定顺序。

现在参照图5,图5示出了用于保护非受信设备上的数据的示例方法500。将针对图2中示出的计算设备200和图3中示出的示例系统300对图5的方法500进行讨论。然而,示例方法不限于这种计算设备200或者这种示例系统300。相反,可以采用任何合适的设备或者系统。在该示例中,方法500从框510处开始。

在框510中,监视软件342访问命令队列332。在该示例中,计算设备200执行作为其它进程(包括单线程进程或者多线程进程)而执行的、使能多个应用的os,以访问由os提供的api函数来执行各种功能,诸如,显示信息、访问文件、以及向计算设备200提供输入。当应用调用api函数时,该api函数生成命令并且将该命令插入到os的命令队列中以供执行。随着时间的变化,os执行队列中的命令,并且最终到达新插入的命令并且执行该新插入的命令。

在图3中示出的示例中,监视软件342访问命令队列332并且访问队列332中的命令。为了访问命令队列332,监视软件342作为os的驱动级处的进程而执行,使得其提供充足的访问权限来监视命令队列332。通常,按照由用户执行的软件应用不具备充足的权限来访问命令队列332的方式来执行命令队列332,尽管如此,在一些示例中,如果不需要特殊的访问权限,则监视软件342可以在没有额外权限的情况下访问命令队列332。在其它方面中,监视软件342可以不专门被配置为利用充足的访问权限来操作,而是可以按照授予充足的访问权限的方式执行,诸如,使用命令(比如“sudo”)来将超级用户权限提供给监视软件342。如果监视软件342无法访问命令队列332,则监视软件342可以向安全软件348发送消息或者传递信息,该安全软件348然后可以禁用对安全分区360的访问,诸如,通过卸载安全分区,或者导致所有的加密密钥到期。

在监视软件342已经访问了命令队列之后,方法500进入框520。

在框520中,监视软件342识别命令队列332中的命令。

现在参照图6,图6示出了用于保护非受信设备中的数据的示例系统。在该示例中,监视软件342将指示器343建立到命令队列332中以指示命令队列332中监视软件342正在访问的位置。在该示例中,因为命令队列332是队列,所以命令610-616按照从底部602到顶部601将其插入到队列中的顺序来执行,因此,针对指示器343的特定位置,监视软件342只在朝向命令队列332的顶部601的单个方向上访问命令,在命令队列332的顶部601中,添加新命令。在一些方面中,命令队列可以具有不同的结构,或者可以包括多个命令队列,例如,以适应较高优先级的命令(例如,从中断处理程序下发的命令),或者可以不包括队列结构。在这种方面中,对命令结构的访问可以根据其架构而变化,但是可以对其进行相应地监视。

当首次启动监视软件342时,在该示例中,如果在队列332中存在命令,则该监视软件342设置处于命令队列332的底部处的指示器343并且分析命令610。另外,当首次启动监视软件342时,监视软件342建立数据结构以跟踪尝试对安全分区360执行命令的进程。数据结构包括使得监视软件342能够确定是否应该允许命令队列332中的命令的零个或者多个记录。为了识别命令,监视软件342读取指示器343所指向的命令并且识别命令的进程id。检测软件342然后在其数据结构中搜索进程id。如果找到进程id,则识别命令,并且方法500进入框530。然而,在一些方面中,监视软件342还可以维护识别免受监视的进程id的记录,诸如,安全软件348或者文件同步软件346。如果识别到免除进程id,则监视软件342将指示器343移动至命令队列332中的下一个命令(例如,命令611)。进一步地,在一些示例中,在数据结构内的记录可以包括关于记录是否与免除进程id相关联的指示符。例如,文件同步软件346可以在某些时间时被免除,但是在其它时间时可能是不可免除的。例如,如果安全软件348确定所有的加密密钥到期,则安全软件348通过使监视软件342改变文件同步软件346进程id的状态以指示其是不可免除的,来防止文件同步。

如果监视软件342在其命令的进程id的数据结构中没有找到记录,则监视软件342在命令中搜索与安全分区360相关联的数据,诸如,路径名。例如,如果包括安全分区的路径名位于命令内,则监视软件342识别命令,并且方法500进入框530。另外,监视软件342为其数据结构生成新记录并且存储与命令相关联的信息,诸如,进程id和所访问的文件的路径和文件名。因此,对于未来命令,监视软件342可以基于进程id(而不是搜索路径或者文件名)找到记录。

在一些方面中,命令队列332中的命令可以与不直接与安全分区相关联的进程id(诸如,屏幕截图命令)相关联。这种命令可以由除了访问安全分区中的数据的进程之外的进程下发。例如,如果用户尝试截取文字处理程序屏幕的示出了存储在安全分区上的文档的一部分的屏幕截图,则屏幕截图功能的进程id可能与文字处理程序的进程id不同。然而,在这种情况下,命令队列332中用于屏幕截图的命令通常将包括具有正在截取屏幕截图的活跃窗口的进程的进程id。因此,监视软件342还可以在命令队列332中的命令中搜索由另一进程id引用的进程id。如果监视软件342识别到屏幕截图进程id引用文字处理程序的进程id,则监视软件342然后可以识别命令。

在该示例中,监视软件342按照预定义速率(诸如,每毫秒)来访问命令队列332,该预定义速率可以根据用户或者管理员偏好进行配置。然而,在一些方面中,可以使用其它速率,或者可以采用其它触发器。例如,启动新应用可以触发监视软件342访问命令队列332,或者监视软件342可以建立每当将新命令输入到命令队列332中以检查命令队列332时发生的事件(诸如,中断)。

现在参照图7,图7示出了用于跟踪用于保护非受信设备上的数据的进程id的示例数据结构700。数据结构700被配置为存储可以用于识别命令队列中的命令的零个或者多个记录710。在该示例中,每个记录包括用于进程id、用户id、应用、路径、和文件名的字段。进程id是由os指派给执行软件应用的实例的进程id。在一些示例中,数据结构可以跟踪线程id。用户id是与“拥有”进程的用户相关联的标识符。在大多数os中,即使只有一个用户登录到计算设备中,进程也可以由不同的“用户”(诸如,由不同的服务或者由os本身)启动,从而可以具有不同的用户id。在该示例中,用户id“103”与用户“jsmith”对应,而用户id“100”与os对应。“应用”字段是与进程id相关联的应用的名称。“路径”字段时由对应的进程id访问的文档的路径,并且“文件名”字段是由对应的进程id访问的文档的名称。在该示例中,存在已经由监视软件342所识别的5个进程,四个进程已经由用户id“103”启动,并且一个进程已经由os(具有用户id“100”)启动。因此,当监视软件342分析命令队列332中的命令时,其可以检查数据结构700以确定是否应该识别命令,因为该命令与安全分区有关。

尽管在一些示例中,可以使用不同类型的数据结构,但是在该示例中,数据结构700被存储作为未分类的记录链表。例如,可以使用散列表、关系数据库、对象数据库、分类列表、或者其它合适的数据结构。

如果监视软件342没有找到与安全分区相关联的数据,则监视软件将指示器343移动到命令队列332中的下一个命令。监视软件然后再次重复进程以确定是否应该识别下一个命令611。

在监视软件342识别命令之后,方法500进入框530。应该注意的是,方法500可以进入框530,但是还相对于下一个命令(例如,命令611)大体上同时执行框520处的功能。例如,在一些示例中,监视软件342可以创建新线程以执行方法的剩余步骤530、540、542、550、560,而监视软件的主线程移动到命令队列中的下一个命令。

在框530中,监视软件342访问访问规则344。在该示例中,将访问规则344存储在数据储库中,该数据储库可以是用于维护访问规则344的数据库、内存中的数据结构、或者其它合适的结构。在该示例中,监视软件342首先识别与所识别的命令相关联的路径和文件名。例如,如上文针对框520讨论的,监视软件342维护跟踪与安全分区360相关联的进程id的数据结构。监视软件342访问并且获得与进程id相关联的文件名,并且在访问规则中搜索与文件名相关联的一个或者多个访问规则。在一个示例中,将访问规则344存储在关系数据库中,并且监视软件342为任何记录生成搜索查询语言(“sql”)查询,其中,记录中的文件名与来自监视软件的数据结构中的记录的文件名相匹配。

如果返回了多个记录,则记录软件342搜索所返回的记录以识别与和所识别的命令相关联的用户id相关联的任何记录。例如,对于相同文件,多个用户可以具有不同的访问规则。因此,监视软件342必须为文件和用户两者识别适当的访问规则。在一些示例中,对于相同用户的不同应用,可能存在不同的访问规则。在一个这种情况下,监视软件342可以进一步完善所返回的记录以识别与文件、用户、和与所识别的命令相关联的应用相关联的记录。在一些示例中,可以采用其它标准来识别要应用的访问规则。

在一些示例中,可能会出现以下情况:多个访问规则同等地适用于命令。在这样一个示例中,监视软件342针对所识别的命令使用具有最严格的规则的访问规则。例如,如果所识别的命令是“打印”命令并且两个访问规则均适用,但是一个访问规则禁止打印,而另一个访问规则许可打印,则监视软件342将比较用于所识别的命令的访问规则,并且如果规则发生冲突,则选择禁止命令的访问规则。然而,在一些示例中,监视软件342可能能够确定多个访问规则的相对年龄并且选择最新的访问规则,这可以反映最新访问规则变化,或者可以表示先前规则的例外。

在一些示例中,管理员或者其它用户可以配置监视软件342如何处理在两个或者更多个访问规则之间的冲突。例如,管理员可以基于待执行的命令来建立冲突解决规则。在一个示例中,管理员可以配置监视软件342来为命令“移动”、“复制”、“粘贴”、“重命名”、“另存为”、“保存”、和“电子邮件”解决冲突,以选择最严格的访问规则,而命令“打开”和“打印”可以采用最不严格的访问规则。这种冲突解决方案可以允许用户打开并且查看文档,但并不编辑文件或者将文件移除安全分区,即,这种冲突解决方案可以提供对文件的一些只读访问。

在一些方面中,访问规则344可以包括默认规则和用户特定的规则。因此,搜索针对命令的规则可以始终返回两个访问规则:默认规则和用户特定的规则。在这种情况下,如果存在用户特定的规则,则监视软件342可以始终使用用户特定的规则,否则使用默认规则。替选地,如果未找到针对文件的访问规则,如果存在一个默认规则,则监视软件342可以搜索默认规则并且应用默认规则,或者如果未找到任何访问规则,则监视软件342可以仅仅拒绝所有命令。

在一些示例中,监视软件342可以不直接访问访问规则,相反,可以将消息传输至另一进程(诸如,访问规则进程),其确定是否允许所识别的命令。例如,监视软件342可以识别命令并且将包括命令的至少一部分的消息传输至第二进程。第二进程然后响应于接收到消息而访问访问规则数据储库以识别与所识别的命令相关联的访问规则。

在监视软件342已经识别了与所识别的命令相关联的访问规则之后,方法500进入框540。

在框540中,监视软件342确定所识别的规则是否许可所识别的命令被执行。为了确定是否许可命令,监视软件342识别所识别的规则中具有与所识别的命令相关联的权限的字段。例如,如果所识别的命令是“打开”命令,则监视软件342识别所识别的规则中与“打开”命令的权限对应的字段。在该示例中,具有权限的字段具有二进制值—可以许可或者不许可命令。然而,在一些示例中,一个或者多个字段可以具有不同种类的值。例如,字段可以在特定次数内许可特定操作,例如,最多可以许可用户打开文件5次。在一些示例中,访问规则字段可以包括日期或者时间,从而使得可以先于存储在字段中的日期或者时间(或者在存储在字段中的日期或者时间时)执行命令,但是在日期或者时间之后不许可执行命令。更进一步的变型也是可能的。

在一些示例中,如上文讨论的,监视软件342与第二进程通信以确定是否允许命令,第二进程可以生成指示是否允许命令的响应并且将该响应传输至监视软件342。例如,第二进程可以生成包括与从监视软件接收的消息对应的值的响应消息,该响应消息可以包括所识别的命令的进程id并且包括指示是否允许命令的值。第二进程然后可以将响应消息传输至监视软件342。

如果监视软件342确定允许所识别的命令,则方法进入框542。

在框542中,监视软件342未针对所识别的命令采取进一步的动作。在该示例中,监视软件342已经至少部分地基于访问规则来确定允许所识别的命令,因此,允许命令被os执行。在一些示例中,监视软件342可以在审计日志345中生成条目以指示检测到所识别的命令、识别到对应规则、和许可所识别的命令。在一些示例(诸如,上文讨论的一个示例)中,监视软件342可以更新访问规则,诸如,对与可以对文档执行特定命令的次数相关联的值进行减量。

在已经完成了框542处的任何处理之后,方法500返回至框520,在框520中,监视软件识别下一个命令。

如果在框540中监视软件342确定不允许所识别的命令,则方法500进入框550。

在框550中,监视软件342检测来自命令队列332的所识别的命令。在该示例中,使用插入有命令的循环缓冲区来提供命令队列332。循环包括用于队列的头部和用于队列的尾部的指示器,使得在队列的尾部处添加新命令,并且从队列的头部取出待执行的命令。当将新命令添加至队列时,对尾部指示器进行增量,并且如果到达缓冲区的末尾,则设置为指向缓冲区的开头。类似地,当执行命令时,如同尾部指示器那样,对头部指示器进行增量,并且如果到达缓冲区的末尾,则设置为指向缓冲区的开头。

为了从循环缓冲区删除命令,监视软件342可以将“无操作”或者相似条目替换在命令队列内,使得当os到达循环缓冲区中的条目时,不执行操作,或者监视软件342可以改变所识别的命令中的值以指示已经执行了命令,使得其在头部指示器到达其时不会被执行。如果所识别的命令处于与头部指示器的位置相邻的位置中,则监视软件342可以仅移动尾部指示器,使得插入到命令队列中的下一个命令重写禁用的命令。在一些示例中,监视软件342可以重写“无操作”的命令或者相似命令并且移动尾部指示器,使得下一个命令重写“无操作”命令。在新命令重写禁用的命令之前,如果头部指示器到达尾部指示器,则这种方面可以消除潜在的竞态条件。在一些示例中,如果禁用的命令紧邻头部指示器,则监视软件342可以调整头部指示器以跳过禁用的命令。

在一些示例中,命令队列332可以使用不同的数据结构,诸如,链表或者双向链表。在一个这种示例中,监视软件342可以删除列表中的节点,并且修改与所删除的节点邻近的两个列表节点数据结构中的指示器,使得这两个列表节点数据结构指向彼此,从而绕过所删除的节点。在一些示例中,可以将命令队列332存储在不同类型的数据结构中,并且可以在这种示例中采用合适的删除策略。

除了从命令队列332删除所识别的命令之外,监视软件342还可以将条目添加至审计日志345。例如,监视软件342可以添加具有时间和日期戳的条目、用户名、文件名、所识别的命令、和应用名。

在一些示例中,在监视软件342从命令队列332删除所识别的命令之后,方法500返回至框520以分析附加命令。在一些示例中,如上文讨论的,监视软件342可以启动线程以确定是否应该允许所识别的命令。在一个这种示例中,在从命令队列332删除所识别的命令之后,线程可以终止。在一些示例中,方法可以进入框560。

在框560中,监视软件342向用户提供禁用所尝试的命令的通知。当监视软件342从命令队列332删除所识别的命令时,除非向用户提供通知,否则根本不执行命令,并且用户可能不会认识到这不是由于故障或者一些其它错误造成的。因此,在一些示例中,可以向用户提供通知。例如,监视软件342可以生成并且显示指示禁用的命令的对话框以及指示用户未被授权执行命令的消息。在一些示例中,可以向用户提供听觉、视觉、触觉、或者其它通知以指示禁用命令或者未执行命令。

在监视软件342提供通知之后,方法500返回至框520以识别下一个命令。在一些示例中,如上文讨论的,监视软件342可以启动线程以确定是否应该允许所识别的命令。在一个这种示例中,在向用户提供通知之后,线程可以终止。

在一些示例中,图5的方法500可以与图4的示例方法400并行执行或者结合图4的示例方法400执行。如上所述,图4的示例方法400可以提供对安全分区360的访问,而图5的方法500可以调节在安全分区360内的不同文件上执行的命令。然而,图5的示例方法500可以独立于图4而执行,并且不需要图4的示例方法400的性能。进一步地,可以执行图4的示例方法400,但不执行图5的示例方法。然而,执行方法400、500可以提供用于保护非受信设备上的数据的增强的益处。

虽然根据在各种机器上执行的软件描述了本文的方法和系统,但是也可以将方法和系统实现为专门配置的硬件,诸如,专门执行各种方法的现场可编程门阵列(fpga)。例如,可以在数字电子电路系统、或者计算机硬件、固件、软件、或者它们的组合中来实现示例。在一个示例中,设备可以包括一个或者多个处理器。处理器包括计算机可读介质,诸如,耦合至处理器的随机存取存储器(“ram”)。处理器执行存储在存储器中的计算机可执行程序指令,诸如,执行用于编辑图像的一个或者多个计算机程序。这种处理器可以包括微处理器、数字信号处理器(“dsp”)、专用集成电路(“asic”)、现场可编程门阵列(“fpga”)、和状态机。这种处理器可以进一步包括可编程电子设备,诸如,可编程逻辑控制器(“plc”)、可编程中断控制器(“pic”)、可编程逻辑设备(“pld”)、可编程只读存储器(“prom”)、电可编程只读存储器(“eprom”或者“eeprom”)、或者其它相似的设备。

这种处理器可以包括介质(例如,计算机可读存储介质)或者可以与介质进行通信,该介质可以存储指令,该指令在由处理器执行时可以使处理器:在由处理器执行或者协助时,执行本文描述的步骤。计算机可读介质的示例可以包括,但不限于,电子存储设备、光学存储设备、磁性存储设备、或者能够向处理器(诸如,在web服务器中的处理器)提供计算机可读指令的其它存储设备。介质的其它示例包括,但不限于,软盘、cd-rom、磁盘、存储器芯片、rom、ram、asic、配置处理器、所有光学介质、所有磁带或者其它磁性介质、或者计算机处理器可以读取的任何其它介质。所描述的处理器和处理可以在一个或者多个结构中,并且可以通过一个或者多个结构分散。处理器可以包括用于执行本文描述的方法中的一种或者多种(或者方法的部分)的代码。

一些示例的前述说明仅仅是出于说明和描述之目的而呈现的,并且不旨在详尽地展现所公开的精确形式或者限制所公开的精确形式。对于本领域的技术人员而言,在不脱离本公开的精神和范围的情况下,对本公开的许多修改和适应将是显而易见的。

本文对示例或者实施方式的引用意味着结合示例描述的特定特征、结构、操作、或者其它特性可以被包括在本公开的至少一种实施方式中。本公开不限于同样地进行了描述的特定示例或者实施方式。在说明书的各处中出现的短语“在一个示例中”、“在示例中”、“在一种实施方式中”、或者“在实施方式中”、或者相同短语的变型不一定指的是相同示例或者实施方式。在本说明书中针对一个示例或者一种实施方式描述的任何特定特性、结构、操作、或者其它特性可以与关于任何其它示例或者实施方式所描述的其它特征、结构、操作、或者其它特性组合。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1