使用动态网络属性的数字资产保护策略的制作方法

文档序号:15742728发布日期:2018-10-23 22:34阅读:161来源:国知局
使用动态网络属性的数字资产保护策略的制作方法

本申请根据美国法典§119(e)的第35章来要求以下各项的国内权益:于2016年2月15日提交的题为“Dynamic Location Tracking for Digital Asset Policy”的序列号为62/295,492美国临时专利申请;于2016年2月15日提交的题为“Data Analytics as a Policy Information Point”的序列号为62/295,485的美国临时专利申请;于2016年2月15日提交的题为“Method to Enable Rich Policy Enforcement on Stateless Clients”的序列号为62/295,487的美国临时专利申请;于2016年2月16日提交的题为“Digital Asset Protection Policy Using Dynamic Network Attributes”的序列号为62,295,495的美国临时专利申请;以及于2016年12月21日提交的题为“Digital Asset Protection Policy Using Dynamic Network Attributes”的序列号为15/387,123的美国专利申请。出于所有目的,上述临时和非临时专利申请中的每一个均通过引用整体并入本文,并且好像在本文完全和充分阐述一样。



背景技术:

鉴于最近引人注目的安全漏洞的数目,对企业数字数据资产的保护变得越来越重要。作为一些非限制性示例,数字数据资产(或简称“数据资产”)包括诸如文档、电子表格、数字图像、源代码、和其他形式的数字数据之类的数据。当前的认证和数据保护方案通常通过网络应用用户认证来专注于保护对资产本身的访问。例如,在许多当前环境中,通过用户名和密码进行简单认证后,就可以许可对数字数据资产的访问。但是,数据资产可以驻留在文件系统或数据库中,在这些文件系统或数据库中,一旦被第一次访问,数据资产就可以在整个企业网络中(并且在很多情况下,超出原来的企业网络)以不受控制和未加密的方式被操纵、移动、存储、共享或以其他方式流动。因此,如由各种安全漏洞所部分证明的那样,当前的认证和数据保护方案通常不足以充分保护这种数字数据资产。

附图说明

通过参考附图,本公开可以在其对本领域技术人员显而易见的众多目标、特征、和优点方面更好地被理解。

图1A是根据一个实施例的系统的框图,包括策略存储库、数据访问控制服务器、用户设备(例如,客户端计算设备,其除硬件和其他软件之外还包括安全代理)、用户接口、数据分析和报告服务、以及其他特征。

图1B是根据一个实施例的诸如图1A的系统之类系统的框图,该系统包括位置功能。

图1C是描绘根据一个实施例的图1A和图1B中描绘的系统的替代配置和实施例的框图。

图2是示出根据诸如本文所公开的方法和系统的网络架构的示例的框图。

图3是描绘适合于实现根据诸如本文所公开的系统和方法的实施例的系统的各方面的网络架构的框图。

图4是示出根据一个实施例的可以实现本公开的示例联网设备的组件的框图。

图5是示出根据一个实施例的可以实现本公开的示例联网设备的组件的框图。

图6是根据一个实施例的适合于实现本公开的各方面的网络架构的简化框图。

图7是示出根据一个实施例的可由安全代理执行以许可对受保护数据资产的访问的动作的流程图。

图8是描绘根据一个实施例的用于评估一个或多个策略的过程的简化流程图。

图9是描绘根据一个实施例的用于以足够的粒度来确定位置的过程的简化流程图。

具体实施方式

概览

在独立权利要求中阐述了本发明的各方面,并且在从属权利要求中阐述了优选特征。一个方面的特征可以单独应用于这些方面或与其他方面组合应用。

本公开提供了用于数据保护的方法和系统的示例,其采用动态网络和其他信息来控制对数字数据资产(包括物理资产,例如,物理设备;以及数据资产,例如,计算机文件和其他形式的数据,如本文更详细讨论的)的访问。诸如本文描述的方法和系统利用信息源(例如,网络和安全信息)并将该信息与丰富的策略信息耦合以控制对这种数字数据资产的访问(例如,通过控制哪些数据资产可以被解密,由谁来控制,以及受到什么约束)。还描述了用于实现本文所描述的方法的系统和装置,其包括网络节点、计算机程序、计算机程序产品、计算机可读介质、和在有形介质上编码的用于实现这些方法的逻辑。

例如,通过使用诸如本文所描述的方法和系统,管理员或其他实体可以表达和实施在一个或多个粒度级别考虑位置信息的策略,以限制对诸如文档之类的数据资产的访问。作为一个示例,医生可能仅在他或她位于患者房间时才能访问患者记录。然而,当医生移动到不太安全的位置(例如,自助餐厅)时,他或她在该位置不应具有查看文档的权限。作为另一示例,膝上型或平板计算机可以仅在相关联的蜂窝设备(例如,蜂窝电话)位于预定距离(例如,10英尺)内时才可访问文档,这可以防止在蜂窝设备(可能由用户持有)与用于访问文档的膝上型计算机或台式计算机分开时对文档的继续访问。在一个实施例中,该预定距离可以通过例如如下各项来确定:通过基于设备之间的无线连接的可用性来考虑设备之间的地理距离,通过要求两个设备在同一无线接入点(WAP)上,或通过其他一些机制。

通过在访问权限被许可时解密文档(先前已加密的),然后在访问权限被去除时将该文档返回到其加密格式来部分地控制访问文档的能力。更具体地,用于数据保护的方法和系统(例如,本文描述的那些)提供对物理和/或虚拟位置的使用以及从网络信息、身份、和其他相关信息收集的位置信息,以定位用户、设备、数据资产、和/或它们的某种组合,从而充分地通知策略服务器对一个或多个策略的实施。

在其最基本和最根本的层面上,诸如本文所描述的方法和系统通过加密和解密来保护数据资产,从而为数据保护增加了新的维度。然而,实现本文公开的方法和系统的平台提供比简单的加密和解密更多的功能。例如,这些方法和系统通过使用本文所描述的一种或多种技术来控制对那些数据资产的访问,从而保护可移动数据资产。因此,在设备受损或数据资产被错误地发送给非预期的接收者的情况下,这些方法和系统至少会在策略属性未被首先实施的情况下防止数据资产的数据被解密(从而防止基础(underlying)数据资产以任何有意义的方式被访问),这将在下面更详细地讨论。此外,这种控制可以以提供额外安全性的方式来实现,例如,经由与一个或多个安全监视和控制模块的通信和/或通过警告一个或多个安全管理实体(例如,系统管理员、安全管理器、和/或其他这样的一方)关于未批准的访问请求或其他潜在故障事件的发生。

在某些实施例中,这样的方法和系统提供对策略引擎的使用,该策略引擎允许个人或实体(例如,管理员)控制对数字数据资产的访问并加密那些数据资产。在其他功能中,策略引擎决定用户和/或用户设备是否具有访问数据的能力,这可以被称为“单个策略决策点”。策略引擎的属性将允许管理员使用来自各种系统的各种输入。这些输入的示例包括但不限于由身份服务引擎(ISE)和/或移动服务引擎(MSE)生成的信息以及各种附加能力和服务(例如,可能例如通过内联姿势节点(IPN)提供的姿势评估)。某些实施例还包括分析各种基础事件和事件日志的能力,以构建从平台学习以动态调整策略的完整遥测和分析引擎。

结合诸如本文所公开的方法和系统的其他方面,网络用户/设备认证提供对例如网络资源的访问,并且在一些情况下提供对身份的较强断言。然而,这种网络用户/设备认证对访问数据没有影响,例如,在文件存储库上、数据库中的记录上、或某些企业自定义应用的一部分上、以及其他示例。在许多情况下,网络认证系统跟踪用户类型、用户位置、设备类型等,这些先前未用于网络层之上的策略决策。然而,由诸如本文公开的那些的方法和系统提供的功能使得能够使用诸如此类的信息来控制对数字数据资产的访问。

本文所提供的公开内容描述了基于权限的数据访问平台的示例,该平台保护数据资产而无论这些数据资产可能位于何处、移动到何处、从何处被访问等,从而消除数据泄露和数据丢失向量(vector)、以及其他这样的不期望事件。诸如本文所公开的那些的方法和系统提供跨数据、应用、和网络层的用户、位置、时间、和威胁向量的环境相关性等其他功能。在一个方面,这些方法和系统允许基于与以下各项有关的因素来保护数字数据资产:访问数据资产的一方的身份、哪些数据资产正在被访问、正在对该数据资产做什么或者由该数据资产做什么(例如,对数据资产的只读与写入访问)、数据资产何时被访问以及数据资产被访问的位置,以及自策略上次被更新或访问上次被验证以来经过的时间量。另外,这些方法和系统允许对基于威胁参数的高级加密算法的应用。此外,细粒度策略可用于使保护与商业及知识产权(IP)环境一致。此外,这些方法和系统提供可用于在整个数据资产的生命周期中保护数字数据资产的技术。

根据本公开的方法和系统能够为当今的企业系统提供灵活的平台,以在组织内或跨组织(无论是在本地(on premise)还是在云中)安全地协作和传输数据资产。通过这样做,这些方法和系统可以加快安全的业务生产力并防止数据泄露、数据丢失、和数据滥用向量。这些方法和系统可跨操作系统和应用无缝工作,支持传统基础架构和策略工作流的简易集成。这些方法和系统在各种情况下(例如,当在存储系统和用户之间访问那些数字数据资产和将那些数字数据资产从一个用户发送到另一用户时,和/或或以其他方式传输或传送那些数字数据资产时)为数字数据资产(例如在本文其他地方更详细讨论的)提供安全性。本公开描述了一组丰富的环境策略属性(例如,关于用户、群组、和网络上位置的信息、以及与各种加密技术耦合的应用和数据层),从而显著地提高了数据访问安全性。本公开还描述了通过确保数据资产不受到未经授权的入侵来帮助确保数据隐私的方法和系统。此外,这样的方法和系统可以提供一种策略,该策略在哪些用户有权访问给定数据资产方面实施约束。因此,基于适用的一个或多个策略,数据资产在共享数据资产的各方之间是私有的。在一个实施例中,数字数据资产由内容管理器(例如,托管服务(例如,GITHUB)的基于云的存储库,或其他源控制平台)管理。在一个实施例中,应用级控件可用于防止用户将信息从安全文档(在解密之后)复制和粘贴(或执行类似功能,例如剪切和粘贴)到不安全的文档中。同样,应用级控件可用于防止用户将文档保存为不安全或未加密的文档,或使得或准许用户仅能够保存加密文档。

本文提供的公开内容描述了各种组件,其可以被配置为一起工作以通过促进对其的访问的控制来共同保护(在本文被称为)数字数据资产。数字数据资产(或更简单地被称为“资产”)可以包括例如文档、电子表格、源代码、其他文件(例如,视频文件、图像文件、和音频文件)或使用、存储、或传输中的任何其他数据。可以通过定义一个或多个策略来保护数字数据资产,这些策略管理对这些数字数据资产和/或这些数字数据资产可能属于的数字数据资产群组(允许不止一个这样的群组(并且在本文被称为数据资产群组)中的成员资格,如根据本公开将理解的那样)的访问。

可以通过使用各种属性来定义诸如本文所讨论的那些策略之类的策略,例如,尝试访问受保护数据资产的原理或用户、用于尝试访问受保护数据资产的设备、针对其的准许正在被请求的特定动作(例如,打开文档)、正在请求访问的特定资源、网络属性、安全属性、用户和/或设备的物理/地理位置、另一用户和/或另一用户设备相对于数据资产通过其被访问的用户设备的物理/地理位置(或这些设备之间的物理距离、这些设备之间的无线连接的可用性、以及确定这两个设备是否在同一无线接入点(WAP)、以及确定物理/地理位置和关系的其他示例)、各种时间度量(例如,一天中的时间、或自上次事件或认证以来经过的时间长度)、设备类型、用户设备上可用的软件和/或操作系统、用户的生物特征属性(例如,指纹识别或视网膜扫描)、用户和/或设备的安全姿势、先前认证请求的结果(例如,先前的拒绝或授予许可)、信任存在的硬件根、和/或用户、设备、和/或网络或其子部分的信誉、以及用户或设备的虚拟位置(例如,虚拟环境中的化身(avatar)的位置)。

尽管可以根据单个这样的属性来定义策略,但实际上通常基于这些属性的组合来定义策略。例如,在一个实施例中,策略可以仅在第二人(例如,更高级别的律师,例如合作伙伴)在同一个房间或在第一人的一定距离内时允许第一用户(例如,助理律师)打开和/或继续访问某个文档。作为另一示例,在一个实施例中,策略可以仅在指定的第二设备(例如,用户的蜂窝电话)在同一房间或在第一人的一定距离内时允许第一用户的设备(例如,膝上型计算机)打开和/或继续访问某个文档。这种关系约束可以用于在两个设备相隔(或变得)超过允许距离时防止或移除对文档的访问权限,这可以被假定为指示用户(可能在其身上正在携带第二设备)已经以某种方式与第一设备(例如,膝上型计算机)分离,并且访问或继续的访问(不再)是安全的。在一个实施例中,可以例如通过以下各项来确定距离(诸如在本段以及本公开中的其他地方中讨论的):通过基于设备之间的无线连接的可用性来考虑设备之间的地理距离,通过要求两个设备位于同一无线接入点(WAP)上,或者通过其他一些机制。

前面的段落包括一个人的访问权限可能依赖于第二个人的位置的情况的示例。类似地,一种策略可以仅在出于各种原因可能不被信任的第二人不在同一房间内或者在请求访问受保护数据的人的某个邻近范围内时允许第一人访问受保护的数据资产。由于本文所讨论的位置跟踪功能,系统100可以通过监视与第二人相关的事件(例如,第二人的手机的当前地理位置)来确定这样的信息,而不需要第二人明确登录到系统。此外,可以以其他方式将一个或多个不同属性(例如,用户设备的位置和安装在用户设备上的软件应用)相组合以定义策略。

在高级别处,本文所提及的策略被定义并存储在策略存储库中,例如本文中结合图1A和图1B更详细地讨论的。管理员可以以属性(例如,位置或安全状态)和资产资源(例如,数字数据资产或数字数据资产群组)的形式指定策略。在一个实施例中,可以对属性进行加权。策略的呈现取决于策略信息源,并且可以接受作为来自不同源集合的输入的信息,以提供关于动作者(例如,用户/群组)及其相关资源(例如,文档/群组)的上下文。例如,身份服务引擎(ISE)可用于提供关于用户和/或设备的身份的信息。这样的ISE将具有关于诸如用户、设备、和网络之类的元素的丰富的一组原语,其可以根据本公开被并入到策略方案中。

此外,定位技术(例如,连接的移动体验(CMX)技术,例如由加利福尼亚州圣何塞的思科系统公司(Cisco Systems,Inc.)提供的技术)也可用于提供位置信息作为策略属性。例如,策略可以规定只能在机构的校园内,甚至在某个房间或建筑的房间内时才可以访问文件,并且可以经由CMX来确定和递送这样的信息。其他身份和位置服务也可以与本公开结合使用。在一个示例实施例中,还可以经由cookie来实现位置策略。位置可以映射到CMX中的区域,并且位置系统可以跟踪用户的移动。在这种情况下,当用户的位置改变时,CMX可以向策略服务通知该改变,并且可以针对策略实例评估该位置改变的影响。此外,当位置cookie“到期”时,将重新验证请求发送到策略服务并且可以将适当的结果返回给客户端。此外,策略的其他方面也可以按照任何特定策略或情况中所定义的那样进行定期重新评估。

诸如本文描述的策略服务器可以动态地将策略绑定到“实时”数据并且为消费用户设备(例如,客户端计算设备,除了硬件和其他软件或在云环境中运行的所谓的Web代理之外包括例如安全代理)呈现策略。随着信息被更新,策略实例也被更新,这确保系统的状态反映最当前可用的信息。例如,使用位置作为示例,当用户(或用户的设备)移动时,该移动被跟踪并且适当的策略容器被更新。然后,使用该属性的改变来确保基于新位置(或其他改变的属性)的正确实施。该策略经由客户端软件(例如,安全代理)来实施,该客户端软件检索所呈现的实施规则(经由下面结合图1A讨论的数据访问控制服务器),然后可以在必要的情况下解密或重新加密(一个或多个)数据资产。此外,系统支持以适当的格式为一系列代理呈现适当的策略:只要代理可以执行必要的实施,就可以为该代理表示策略,并且代理交互的模型可以变化为包括推送(push)、拉取(pull)、或两者的组合。

在一个实施例中,策略由管理员经由用户接口或API创建。策略会话与特定客户端关联,并包含针对该客户端的策略实例。当客户端向策略服务注册时,会创建会话并将针对该客户端的实例添加到会话中。此时,策略已准备好呈现。在一个实施例中,客户端经由API(例如,REST API)请求权限,该API经由适当的客户端特定的呈现来触发上述呈现。在一个实施例中,JSON文档被返回,该文档包含经认证的文档组、关联的计时器值(例如,到期、重新验证等)、以及表示上下文属性的cookie的会话。

在一个实施例中,客户端(或客户端上的代理)基于唯一地标识数据资产的值(例如,“asset_ID”)来请求对特定数据资产的访问,并且策略服务确定是允许还是拒绝所请求的访问。如果访问被允许,则策略服务返回具有特定时间有效性的密钥。密钥到期之后,客户端(或代理)应最佳地重新验证对数据资产的访问。在该实施例中,客户端(或代理)不必检索和管理权限列表。相反,当(一个或多个)特定资产被请求访问时,客户端(或代理)可以请求针对这些(一个或多个)特定资产的信息。

在某些实施例中,使用除JSON之外的格式。在一个实施例中,客户端经由API(例如,REST)请求初始权限、重新验证、和上下文验证(经由加密服务器),并且这些权限、重新验证、和上下文验证以JSON或其他合适的格式被返回。

在一个实施例中,一旦创建或以其他方式定义给定策略,策略就从策略存储库推送到用户设备(例如,客户端计算设备,其除硬件和其他软件之外包括例如安全代理)。如结合图1A和图1B更详细的讨论,根据本公开的安全代理包括必要的软件组件以提供诸如本文所描述的功能。在一个方面,诸如本公开中描述的功能独立于用于创建、访问、修改、或以其他方式处理或操纵经解密的数据资产的基础软件程序(例如,)。然而,在某些实施例中,策略可以要求或禁止特定的基础软件程序,从而首先许可对文档的访问。例如,策略可以指定高重要性文档只能由受信任的文字处理程序(例如,或)打开,但可以排除其他未知或不受信任的文字处理程序(一旦文件被解密,可能更易受恶意使用(例如,间谍软件)的影响)。类似地,在一个方面,诸如本公开中描述的功能独立于基础操作系统。然而,在某些实施例中,可能需要(至少在替代方案中)或禁止特定的基础操作系统,其原因类似于以上关于基础软件程序提供的那些原因。例如,诸如MICROSOFT或MAC之类的操作系统可以被策略指定为受信任的,而诸如之类的开源平台在某些情况下可能不是受信任的。同样地,本公开可以与任何移动(或其他)操作系统(例如,或)结合使用,但策略可以具体地将某些操作系统指定为受信任的或不是受信任的或以其他方式准许使用(或不受信任的和/或以其他方式禁止的)。

除了用于打开或查看经解密的数据资产的基础软件程序之外,根据本公开的方法和系统还提供对安全软件的使用来执行本文所公开的某些验证和策略相关的操作。这种安全软件可以采用如下形式:独立软件程序、另一软件程序的插件、软件代码、在云服务上运行的软件、编译的二进制库、或其他适当形式的软件(统称为“模块“)。在任何情况下,根据本公开的方法和系统通常不允许基础软件程序在没有由结合根据本公开的方法和系统工作的安全软件模块提供的功能的情况下对数据资产进行解密。因此,例如,可以在端点设备(即,进行数据访问尝试的设备)处实施这样的策略。

结合所安装的软件(例如,文字处理软件),云中或用户设备(例如,端点或其他客户端计算设备)上的安全代理使用该策略(以及该策略所包括的信息)来确定用户设备是否可以提供对给定数字数据资产或数字数据资产群组的访问。在一个实施例中,将经由单独的软件应用程序提供对受保护数据资产的访问,但这仅在安全代理确定可以解密和访问该安全数据资产之后进行。解密后(post-decrytion),各种定时器可用于确保权限是当前的,密钥材料是最新的,并且诸如位置之类的动态属性的有效性保持为当前的。在一个实施例中,该信息和其他信息可以被存储在用户机器或数据访问控制服务器上的cookie或其他识别编码信息中。

在一个实施例中,本文所公开的系统和方法区分用户和客户端。为此,可以将用户视为经认证的个体的实际身份(例如,Alice或Bob),而客户端表示特定设备上的特定用户。例如,客户端可以经由UUID被识别为“Bob”,该UUID唯一地映射特定用户(例如,bob@abc.com)和正在使用的设备(例如,他的平板计算机)。如果给定用户在另一设备上注册(例如,Bob也有一台膝上型计算机),则Bob的新注册通常包括一个不同的UUID。在一个实施例中,客户端可以将自己呈现给加密服务(例如,加密服务模块162),加密服务继而向策略服务110注册已知客户端。可以从ISE学习用户信息,作为外部目录存储库的目录和代理两者。ISE信息可以包含例如用户名(user@domain.com)、群组信息、和关于特定用户的活动会话的其他会话信息。来自ISE的用户信息可以与客户端注册结合使用,以呈现给定用户和客户端的策略会话。ISE还可以包含经认证的用户到ISE群组的映射以及会话细节(例如,设备类型、IP地址等)。

在一个实施例中,该确定至少部分地基于用户设备的具体地理位置,例如可以利用全球定位系统(GPS)或其他地理定位技术的精度来确定。例如,在一个实施例中,策略可以结合用户标识和设备标识来使用设备的实际地理位置,以确定批准的用户是否在批准的位置上使用批准的设备。这些参数的组合增加了有意义的附加安全级别,以通过确保文档不仅被批准的人和机器访问,还在批准的物理位置被访问来防止恶意甚至意外活动(例如,意外地将机密文档通过电子邮件发送给错误的人)。

在策略评估之前对针对其的策略正在被评估的数据资产(例如,文档)进行加密。在被加密或以其他方式保护不被访问时,数字资产可被称为受保护数据资产。在一个实施例中,如果确定用户是尝试在经认证设备上访问受保护数据资产并且在经认证位置使用经认证应用时这样做的经认证用户,则该用户(例如,通过用户设备)只可以访问受保护数据资产(例如,加密文档)。在满足这些条件之前,受保护数据资产是加密的且不可读的。在其他实施例中,可以使用不同的准则来确定何时许可对受保护数据资产的访问(例如,解密)。

如果策略要求被满足,则对数据资产的访问被许可。在一个实施例中,通过交换数字令牌和/或相关解密密钥信息(统称为“解密材料”)来许可该访问,其中该解密材料允许安全代理对文档进行解密。缺少仅在用户被正确认证(通常需要满足策略)的情况下提供的解密材料,用户设备将不能允许安装的应用软件打开文档(例如,因为文档将保持加密,从而无法打开)。此外,未配有安全代理的用户设备(或基于云的设备)将不能验证尝试访问安全数据资产的用户和/或设备,因此将无法解密或以其他方式访问安全数据资产。因此,根据本公开的方法和系统提供了增强的安全性,其防止例如未经认证的用户访问安全资产,也在用户或设备尝试在未批准的位置访问该安全资产时或者在其他这种准则未被满足时甚至防止经认证用户访问该安全资产。

根据诸如本文所描述的那些的方法和系统实现的系统提供来自一个或多个信息源的核心策略服务和/或上下文信息的应用。这样的策略服务能够摄取和存储这样的信息,然后使用与资源或资源群组(例如,文档或文档群组)相关的属性信息来描述描述策略的语言,以及本文更详细讨论的其他示例。在图1A和图1B中作为示例提供了这种系统的实现方式的高级概述。

示例策略服务系统

图1A描绘了系统100,其包括策略服务110,该策略服务包括会话存储库112、策略存储库114、和事件存储库116。策略服务110通过指定在什么条件下(例如本文其他地方所描述的条件)什么用户和用户设备被允许访问哪些数字数据资产来为资产保护系统提供“真实来源”。尽管未在图1A中明确描绘,但是策略服务110向所需信息的各种源和消费者提供一系列应用编程接口(“API”)。例如,运营商/管理员接口使用北向API来用于策略管理或与系统的其他交互。策略权限API可用于策略检索和(重新)验证。数据访问控制服务和认证及位置服务通过相应的API与策略服务器接口。

此外,多协议消息传递层可用于辅助其他组件之间的通信,例如本公开中描述的那些组件。这样的消息传递层可用于事件生成和用于数据分析和报告的安全信息、外部信息点(例如,ISE和位置服务)、加密客户端的注册细节的导出以及资产分类信息(例如,策略信息输入118(1)-(n)(统称为“策略信息输入118”))的摄取(ingestion)。策略信息输入118提供定义和实施策略所需的属性。所提供的信息可以从强制(例如,身份服务引擎(ISE)会话信息)到可选(例如,安全姿势)。无论提供何种类型的信息,信息源都利用多协议消息系统将其数据提供给策略系统。

还可以使用动态信息源。就其本质而言,该信息可能频繁地改变,并且这些改变可以由本文所公开的系统和方法用来实施策略。因为安全代理(例如,用户设备)不一定必须知道大多数策略信息细节,所以可以经由编码数据(例如,cookie)来执行客户端设备上的动态属性的交互。因此,当策略服务器接收到策略信息时,策略服务器创建策略实例,该策略实例又引用上下文信息。该上下文可以被传递给编码在令牌(例如,cookie)中的客户端或者在策略决策中被明确地评估和传送,其具有例如被例如管理员定义的时间值。当计时器或时间值到期时,可以针对服务器上的实例化策略重新检查一个或多个动态属性,并且基于上下文将适当的权限返回给查询系统。令牌(例如,cookie)可以以JSON或其他合适的格式来提供。

会话存储库112可以是用于存储关于当前用户会话的信息的数据库或其他存储器。策略存储库114可以是用于维护内部API的数据库或其他存储器。这些内部API可以提供存储对象和用于存储以策略为中心的信息(包括例如,注册的客户端、活动用户会话信息、属性/上下文信息、和策略对象)的其他功能。事件存储库116可以是用于存储关于由本文所公开的系统和方法生成的事件的信息的数据库或其他存储器。仅作为一些示例,事件可以是以下各项的创建或更新:策略、用户执行特定动作(例如,在特定位置打开受保护数据资产)的请求、实施策略(或在给定情况下进行实施策略的请求)的客户端或安全代理、或关于用户或用户设备的位置和移动的信息。图1A中还示出了各种策略信息输入118(1)-(n)(统称为“策略信息输入118”),在整个本公开中更详细地讨论对其进行讨论。

策略服务110允许管理员或其他这样的个体将期望的策略表达为属性的组合。例如,策略可以指定属性或要求,例如(1)允许“工程群组”的成员访问任何工程文档(即,被识别为由该群组创建、负责的文档或以其他方式与该群组相关联的文档);(2)允许“财务群组”的成员访问任何财务文件(即,即,被识别为由该群组创建、负责的文档或以其他方式与该群组相关联的文档),但仅限于在它们各自的办公桌和/或它们各自的办公室处;(3)允许特定用户在其办公室访问特定文档。当然,这些仅是在实践中可能的许多其他示例中的一些示例。

图1A还描绘了数据访问控制服务器120和用户设备130。数据访问控制服务器120和用户设备130根据诸如本公开中描述的那些的方法和系统为保护功能(例如,加密、解密、和应用完整性功能)提供基础。数据访问控制服务器120支持在端点设备上运行的用户设备130与策略服务110之间的安全通信。数据访问控制服务器120与策略服务110接口以接收用户权限,管理保护信息(例如,密钥存储库),提供初始配设和到用户设备130的安全通信链接,并按照请求并视情况管理批准的应用和/或模块的完整性。在一个实施例中,数据访问控制服务器120用于在将数据资产(作为受保护数据资产)发送到用户设备130之前加密(或以其他方式保护)该数据资产。在其他实施例中,数据资产由在发起数据资产到用户设备130的传输的计算设备(例如,在其上数据资产被创建或“最后修改”的计算设备)上的软件来加密。在这些层中运行多个服务以提供数据访问控制服务器和用户设备130和/或安全代理136可能需要的全套数据访问控制。

稍微更详细地,数据访问控制服务器120提供密钥存储库121;后端服务管理器122,其在一个实施例中包括软件签名模块123、软件包装模块124、和批量加密模块125;服务器软件126(例如,移动目标服务器);软件完整性管理器127;以及安全网关128。密钥存储库121可以用于存储和提供安全代理136视需要使用的解密密钥。后端服务管理器122用于根据诸如本公开中描述的那些实施例之类的实施例来为平台提供j基本元件。例如,通过软件签名模块123进行软件签名,通过软件包装模块124进行软件包装,以及通过批量加密模块125进行批量加密。软件签名模块123可用于数字签名软件,该数字签名软件被认证为与给定数字数据资产或资产一起工作。这样,软件签名模块123为定制或现成的企业桌面应用提供应用完整性。软件包装模块124利用成熟的技术来包装移动应用,以提供应用完整性。批量加密服务模块125用于执行对文件存储库的批量级加密,其可以用于结合本公开来提供对文件的加密。服务器软件模块126执行和控制数据控制服务器120的功能的各个方面,诸如在诸如结合本公开描述的方法和系统中提供的那些功能或者以其他方式与这些方法和系统结合使用的那些功能。软件完整性模块127是用于跟踪经认证软件签名(例如,由软件签名模块123产生的软件签名)的软件。在一个实施例中,软件完整性模块127将经认证的软件签名作为列表存储在平面文件中。在其他实施例中,软件完整性模块127将经认证的软件签名存储在数据库、日志文件、或用于存储这种信息的其他合适的数据结构中。安全网关128在数据访问控制服务器120和用户设备130之间提供安全网关接口。

用户设备130(例如,客户端机器,诸如台式计算机、膝上型计算机、平板计算机、蜂窝电话或其他移动设备、web应用代理、或能够被配置为实现本文提供的必要特征的任何其他计算设备)包括操作系统132、(一个或多个)软件应用134、和安全代理136,以及其他软件和硬件(例如,RAM、非暂态存储器、微处理器等)。用户设备130还可以存储受保护数字数据资产,例如,受保护数据138。此外,如图1A所示,尽管受保护数据138当然可以至少临时地存储在用户设备130上(尽管仍然在非暂态计算机存储器中),但受保护数据138也可以存储在图1A中的其他位置(例如,策略服务110和数据访问控制服务器120)处,以及图1A中描绘的系统内和外两者的其他位置处(例如,在云中,或在第一实例中授权、修改、保护或发送数据资产的用户的计算机上)。如本文其他地方所讨论的,操作系统132原则上可以是任何操作系统,但是在实践中,给定策略可能要求或禁止某些操作系统在任何给定实例中使用。类似地,(一个或多个)软件应用134原则上可以是任何软件应用,但在实践中给定策略可能要求或禁止某些软件应用在任何给定实例中使用。

当用户或设备在该用户设备上尝试访问受保护数据资产时,安全代理136在本地(例如,在用户设备130上)实施策略。用户设备130从另一设备(例如,策略服务110、数据访问控制服务器120、加密服务器160、或被配置为做出这种确定的某其他计算设备)接收策略确定(例如,是否应该许可对受保护数据资产或资产的访问)。如果做出了允许访问受保护数据资产的确定,则将用于解密的相关令牌和密钥材料被提供给安全代理136。在一个实施例中,这些材料由策略存储库110、数据访问控制服务器120、和/或加密服务器160来提供。此外,用户设备生成关于被实施的策略的事件并将这些事件传送到系统(例如,本文所公开的系统)。在一个实施例中,安全代理136是软件(例如,移动目标客户端软件)并且用作本地信任根,并且根据本文所公开的系统和方法来提供本地策略实施功能。安全代理有多个组件,但其一般功能是(1)用作数据访问控制服务器120和用户设备130之间的通信链路;(2)根据本公开来检测需要实施策略的应用(过程)的启动;(3)验证打开文件的(一个或多个)应用确实是信息技术(IT)部门、管理员、或其他人员或团体所指定的(一个或多个)应用;(4)执行解密功能;(5)保持日志并生成事件。

位置跟踪服务也可以被包括在用户设备130中,其可以提供各种功能(例如,可能需要向位置跟踪服务器提供相关信息,包括可以在这样的位置跟踪服务器中实现的各种模块),以下结合图1B更详细地讨论所有这些功能。位置跟踪服务的具体示例可以包括GPS功能、短程通信功能(例如,蓝牙(BLUETOOTH))、识别功能(例如,射频识别(RFID)功能)、无线和/或蜂窝联网功能等。

图1A中还描绘了用户接口140,其为不同的管理和用户域提供基于云的接口。在一个实施例中,用户接口140被构建在用于基于云的VPN服务的基础设施上。在一个实施例中,用户接口140提供管理域和端用户之间的交互。用户接口140允许管理员彼此独立地指定策略和监视功能两者。如本文所描绘的,用户接口140包括端用户接口142、管理接口144、安全控制接口146、和事件监视器148。

图1A还描绘了数据分析及报告系统(“DARS”)150,其提供与本文所公开的系统和方法相关的各种服务。如图1A所示,DARS包括NLP服务模块151、数据资产分类模块152、审计服务模块153、机器学习模块154、和分析模块155。由本文公开的系统和方法生成的事件数据可以提供对系统状态、数据访问模式、和策略违规的重要洞察。另外,机器学习技术可以应用于数据以动态地生成和/或细化策略。在各种实施例中,数据服务可以提供对数据的访问以供管理员故障排除/验证,提供对数据的访问以进行依从性验证,执行数据分析以用于基线和策略偏差检测,以及向策略服务提供自动反馈以基于观察到的行为来更新策略。

在某些实施例中,数字数据资产被分类以被适当地加密并受制于策略实施。这种功能由数据资产分类模块152提供。这种分类的范围可以从相对简单(例如,将数据资产标识为“工程”文档)到更细粒度(例如,将数据资产标识为“财务”文档,以及进一步将该文件标识为“受监管”)。此外,分类方法可以变化,并且可以包括基于存储位置、显式用户输入、或机器学习技术的隐式分类。无论用于对资产进行分类的方法如何,当资产被摄取到本文所描述的系统中时,分类的结果可以与资产相关联并由加密系统消费。

另外,图1A描绘了加密服务器160。加密服务器160是被配置为执行一个或多个加密服务(例如,可以与本公开中提供的系统和方法结合使用的加密服务)的服务器。在所示的实施例中,加密服务由加密服务模块162执行,加密服务模块162是被配置为对数字数据资产进行加密的软件模块。在所示的实施例中,解密服务由解密服务模块164执行,解密服务模块164是被配置为(例如通过提供解密密钥、令牌、或其他解密信息)帮助对受保护数字数据资产进行解密的软件模块。在某些实施例中,加密服务器被设计为向策略服务提供参与客户端的逻辑表示。当客户端设备被添加到诸如系统100之类的系统时,加密服务器用必要和/或相关信息来更新策略服务110。在这些和其他实施例中,加密服务器代表客户端请求用于实施客户端资产访问的策略确定(或决策)。加密服务器160被设计为管理与核心密码(core cryptographic)功能相关的职责,例如,资产加密、令牌和密钥生成/重新生成和分发、和/或其他这种功能。加密服务器160还可以负责生成事件以供诸如图1A中所描绘的系统架构的其他组件消费。虽然加密服务器160在图1A中被描绘为通信地耦合(例如,经由网络连接)到策略存储库110(如表示连接的实线所示),但实际上加密服务器160可以(直接或者间接地)通信地耦合到系统的其他组件,例如经由图1A中的虚线表示的到数据访问控制服务器120的替代连接。

另外,在各种实施例中,安全代理136和加密服务器160可以共同地或单独地执行包括元数据强加(imposition)的数据资产加密;执行密钥生成、管理和分发;执行令牌生成、管理和分发;与策略服务110交互以接收权限和/或重新验证现有权限(例如,权限可以被认为是针对给定用户、机器、和/或数据资产的访问许可)、实施客户端策略、以及生成事件。

虽然关于图1A中描绘的特定配置讨论了系统100,但实际上许多其他配置也是可能的。本文所描述的系统和方法包括松耦合的设计原理。必要组件之间唯一的通信是由应用编程接口(API)辅助的那些通信,但每个组件都可以根据需要发展。此外,策略服务110可以以端点(例如,用户设备130和/或安全代理136)所需的任何格式生成策略决策。此外,资产分类是一个不断发展的领域,其具有基于客户用例而变化的要求。为此,本文所描述的系统和方法要求对数据资产进行分类,但不一定要求在进行该分类时使用任何特定的分类方法或粒度,但本文所公开的方法当然是可以用于进行这种分类的有效的实施例。

图1B是描绘根据一个实施例的诸如图1A的系统之类的系统的简化框图,该系统包括定位功能。根据本公开将理解的是,图1B中描绘的基本机制和构造遵循图1A中描绘的那些机制和构造。另外,图1B还描绘了位置跟踪服务139,在图1B中被示出为安装在用户设备130中。位置跟踪服务139可以包括支持收集和生成位置信息的功能。这样的功能可以包括例如诸如以下各项之类的机制:全球定位系统(GPS)功能(例如,GPS接收器)、短程通信(例如,通过蓝牙或类似技术)、近场通信(NFC)收发器、无线数据通信(例如,WIFI)、蜂窝通信(例如,诸如符合第3代(3G;国际移动电信-2000(IMT-2000)规范)或第4代(4G;包括移动WiMAX标准和长期演进(LTE)标准)蜂窝通信标准的移动电信技术)、基于光的通信(例如,红外收发器)等以及它们的软件支持。如本文其他地方所述,可以使用硬件和/或软件的组合来实现这些功能中的一个或多个。此外,应理解的是,对本地生成的信息(例如,GPS信息、蜂窝位置信息、和其他这样的位置信息)的某些处理(诸如结合下面描述的位置信息处理模块所描述的处理)可能(全部或部分地)易受用户设备处进行的处理的影响,并且在向策略服务110和/或位置信息处理服务器报告这样的信息时,可以替代地提供这种经处理的位置信息。

为了支持如此生成和/或收集的位置信息,并且除此之外还提供位置信息,如图1B所描绘的,系统100的架构还包括位置跟踪服务器170。位置跟踪服务器170继而可以包括多个模块。如图1B所示,位置跟踪服务器170包括位置跟踪器模块171、GPS模块172、超定位模块173、RFID模块174、虚拟定位模块175、短程定位模块176、和超短程定位模块177。

位置跟踪器模块171协调由位置跟踪服务器170的其他模块执行的操作和处理。根据本公开将理解的是,位置跟踪器模块171从位置跟踪器170的一个或多个的模块收集位置信息和事件,并且(1)将聚合的信息发送到策略服务110(用于基于由策略服务110维持的一个或多个策略来处理来自诸如用户设备130之类的用户设备的访问请求)(2)基于如此聚合的位置信息(代表策略服务110)执行关于位置信息的策略处理,和/或(3)它们的某种组合(例如,预处理某些位置信息(根据自身或基于由策略服务110发送到位置跟踪器模块171的策略信息),并将这种预处理的结果和剩余的位置信息发送到策略服务110)。

例如,与从用户设备130的位置跟踪服务139获得的GPS信息协作,GPS模块172处理这些(物理)位置信息以供位置跟踪器模块171和/或策略服务110摄取。根据本公开将理解的是,这种位置信息可用于防止或允许仅从某些物理位置(例如,仅在用户+设备在本地时)、仅在数字数据资产在某些位置(例如,数据资产被存储在企业的服务器上)时、和/或出于排他性目的(例如,当用户+设备在会议中心时,企业的数字数据资产永远不能被访问,除非用户+设备在企业的贸易展览的展位内(由经由展位的WAP的连接来进一步证明))访问数字数据资产。

在这方面,超定位模块173通过无线接入(例如,使用设备的无线联网设施来识别位置,例如通过到一个或多个WAP接入点的连接、通过对超定位技术的使用以及其他这种机制的使用、和/或它们的组合)。例如,这样的功能可以通过电池供电的蓝牙低功耗(BLE)信标、无线接入点的定位、和/或它们的组合来提供。这种替代方案在室内企业空间中尤其有吸引力。

以类似的方式,RFID模块174通过安装在各种位置的收发器来支持对用户、设备、或其他这样的实体的识别。因此,如果RFID在进入和退出各种设施、其房间、或其他这样的空间时被“ping”,则可以在一定程度上知道用户/设备的位置。也可以使用例如短程定位模块176(也通过例如蓝牙或类似技术)和/或超短程定位模块177(例如,支持近场通信(NFC)技术等)来定位用户和/或设备。在这方面,也可以采用蜂窝通信的三角测量来获得良好的效果。还将理解的是,位置跟踪服务器170还可以实现(例如,经由位置跟踪器模块171)对视频和其他图像处理的支持,以识别企业工作空间或其他位置内的用户和/或设备,从而向策略服务110所支持的策略添加附加的安全和控制层。

相反,虚拟定位模块175支持在更逻辑/概念领域中确定和跟踪位置。它可以包括关于用户/设备在网络中的位置的它们的位置(例如,通过观察用户/设备连接到哪个子网),该网络是蜂窝网络、传输控制协议(TCP)/互联网协议(IP)网络、无线网络、或其他网络、和/或它们的组合。此外,用户的位置可以是虚拟的;例如,用户的化身在虚拟世界中的位置、或其他这样的概念表示。也就是说,本文所使用的“位置”可以被从广泛含义上考虑。

根据本公开将理解的并且如前所述,可以在系统100的任何组件中执行对这种位置信息的处理。因此,可以在以下各项中的任何或全部处执行一些或全部必需的处理:用户设备130、位置跟踪服务器170、策略服务110、和/或图1B中描绘的任何其他服务器,这基于可用的通信带宽、可用的计算资源、可用的存储资源、和/或其他这种考虑因素来进行可能是有利的。此外,基于诸如本文所描述的位置信息,可以单独地或者与关于所讨论的(一个或多个)数据资产的位置信息相结合地考虑不止单个用户/设备的位置。因此,例如,只有在特定的两个用户物理上彼此位置足够靠近、尝试经由同一WAP来访问数据资产、两个用户都被同一生物识别传感器(或传感器类型)认证和/或考虑其他这样的因素时,访问数据资产才可以是可访问的。此外,应理解的是,本文所使用的数据资产旨在表示文档、视频、图像文件等;类似地,数据资产包括这样的数据资产,但也可以是数据资产所在的计算设备、计算资源(例如,摄像机或服务器)、移动设备或其他这样的资产。例如,然后,如果用户设备也在本地,经由有线连接访问数据资产,使用某种设备类型等,则策略可以指示仅访问本地服务器。

生成和使用与策略实施相关的事件

本文提供的系统和方法还具有收集、监视、和分析由系统生成的事件以向系统提供反馈的能力,以改变策略并防止或警告对受保护数字数据资产的潜在的恶意访问(或任何这样的访问尝试)。在一个实施例中,这种功能可以由数据分析及报告系统执行,例如,数据分析及报告系统150。在一个实施例中,本文所公开的系统和方法可以将系统可用的各种类型的事件用作机器学习层的输入,然后机器学习层可以开发并采取行动来影响由系统做出的策略决策。

本文所公开的系统和方法依赖于一系列信息源(例如,策略信息输入118)来提供由策略所请求和评估的属性,如根据本公开理解该术语那样。诸如本文所描述的系统之类的系统中的策略创建和维持的复杂性是部署这种策略系统的障碍,并且在实现提供丰一组丰富的策略参数的策略系统时更是如此。本公开描述了使用分析系统(例如,数据分析及报告系统150)来向本文所公开的系统和方法提供信息,以减轻与粒度策略相关联的复杂性。

结合本文所公开的系统和方法操作的用户设备(例如,用户设备130)可以生成大量数据,并且该数据可以揭示关于用户设备以及该设备正在访问或尝试访问的受保护数字资产的行为访问模式。一些生成的数据可以作为事件被报告给系统(例如,系统100)并由系统100消费。在其最简单的形式中,事件是描述客户端和用户、正在被访问的文档(或对其的访问正在被请求的文档)、策略决策、或任何其他相关属性(例如,用于呈现初始策略决策的与客户端相关联的一组属性(例如,用户名(UserName)、设备ID(DeviceID)、设备位置、安装的软件应用等))的计算机化通知或消息。

例如,由安全代理(例如,安全代理136)生成的事件可以证明特定事实,例如,某医院雇用的医生经常需要在自助餐厅而非仅在其办公室或病房打开患者记录的事实。作为另一示例,生成的事件还可以证明销售人员经常在本地咖啡店而非仅在他或她的办公桌处查看客户提议。相反,生成的事件可以指示受信任的用户正尝试在策略明确禁止的位置处访问受保护数据资产,例如,一名律师尝试在高尔夫球场上访问特权和机密法律文件。生成的事件还可以采取其他形式,包括由计算设备生成的信息,并且可以包括仅机器可读的信息,该信息是人类无法观察到的和/或除了机器之外不能以任何有意义的方式被人类读取的信息,例如,用户设备130的地理位置、用户设备130的处理器速度、用户设备130上的当前可用存储器、用户设备130上当前可用RAM、当前可用的网络带宽等。生成的事件还可以包括诸如以下各项之类的信息:与用户和/或用户设备的安全姿势或信誉相关联的信息以及与用户设备或系统的其他组件的信誉相关联的信息,例如,作为安全的文字处理程序可能具有良好的信誉,但其他文字处理软件可能具有不可接受的信誉。此外,用户、设备、软件程序等可以随着时间的推移而产生信誉。这样的信誉可以反映与适用的一个或多个策略相符合(或不符合)的访问历史、在一方面对一个或多个设备和/或软件包的使用、与适用的策略相符合(或不符合)的通信(例如,所发送的可接受和/或不可接受的电子邮件的数目)、和/或其他这种动作。

在这方面,系统可以消费和处理生成的事件。在一个实施例中,生成的事件可以由数据分析及报告系统150(或“DARS 150”)消费和处理。DARS 150可以以各种方式使用这些事件,例如生成的警报、扩展访问权限、或缩小(contract)访问权限。例如,通过使用尝试从高尔夫球场访问受保护数字资产的律师的上述示例,系统可以简单地生成通知指定人(例如,侵犯者的老板)该事件的警报(例如,电子邮件)。在其他情况下,特别是(但不一定)在存在符合共同模式的重复事件的情况下,系统可以通过更新策略来对这些事件做出响应,以在该策略下扩展或缩小权限。例如,如果销售人员一直需要在某个咖啡店访问销售报价,则系统(例如,数据分析及报告系统150)可以自动更新相关的一个或多个策略以允许这种访问。然而,相反,如果受信任的执行官在其个人的,不安全的电子邮件服务器上不断尝试访问机密材料,则系统(例如,数据分析及报告系统150)可以完全撤销其访问任何机密材料的权限。

一旦系统响应于这种生成的事件而更新策略,系统就可以使用更新的策略来评估对访问受保护数字数据资产的未来请求。此外,系统可以响应于拉取请求而将与这种更新策略信息有关的信息发送到用户设备,或者可以将与这种更新策略信息有关的信息推送到用户设备。在本文所涵盖的任何场景中,可以经由计算机cookie、令牌、或在计算设备之间传输数字信息的其他手段将信息发送到用户设备。

另外,一旦系统组件(例如,数据分析及报告系统150)更新策略,就可以将更新的策略信息发送到集中式存储库(例如,策略服务110)并将更新的策略信息存储在合适的存储器位置中(例如,策略存储库114)供以后使用。基础事件也可以存储在合适的存储器位置(例如,事件存储库116)中。此外,本文所讨论的一个或多个步骤可以由数据分析及报告系统150的子组件(例如,NLP(自然语言处理)服务151、数据资产分类模块152、审计服务153、机器学习模块154、和/或分析模块155)执行。

传送与策略实施有关的信息

如上所述,策略实施是本公开中描述的系统和方法的重要属性。然而,用户设备(例如,用户设备130)和安全代理(例如,安全代理136)不一定具有确定控制其对受保护数字数据资产的访问的许多属性的能力。作为一个示例,虽然用户设备可以执行一些位置跟踪服务,但是通常不能由用户设备本身导出超位置信息。此外,即使对于用户设备能够自己导出或确定的属性,在不需要用户设备支所有这些属性时(用户设备、网络、和整个系统的)效率也会得到改善。因此,为了根据许多用户设备的某些固有限制来进一步增强策略实施,下面与本文所提供的公开内容一致地描述进一步的功能。

例如,在一个实施例中,本文所描述的系统和方法使用新颖的方法将属性传送给用户设备(例如,用户设备130)而不需要用户设备跟踪、监视或以其他方式确定与策略实施相关的任何基础属性。(虽然该功能可用于消除用户设备跟踪、监视、或以其他方式确定与策略实施有关的某些基础属性的需要,但不一定禁止用户设备这样做,事实上,这样的技术可以组合使用以相互补充)。在一个实施例中,策略服务器110和/或位置跟踪服务器170(或提供类似功能的一个或多个其他组件)跟踪策略实施所需的一个或多个属性(例如,位置)。在跟踪和收集相关信息时,策略服务器110和/或位置跟踪服务器170(或提供类似功能的一个或多个其他组件)可以生成表示一个或多个属性的cookie(或令牌、编码标识符、或其他这种构造)。这样的(一个或多个)cookie还可以包括其他信息,例如指示cookie何时到期或何时必须重新请求验证的时间值。在一个实施例中,cookie包括标识数字资产的值(例如,“asset_ID”值)和时间边界密钥。然后将这样的一个或多个cookie传送到用户设备130,然后该用户设备可以使用cookie来确定在cookie有效期间是否可以许可对受保护数字数据资产的访问。根据此方法,不需要客户端了解cookie代表什么,只需要了解cookie在给定时间段内有效并且必须在cookie到期时(或在某个时间点之后)“刷新”cookie(但无论如何,一旦cookie到期,在刷新cookie之前或者在策略信息以其他方式得到验证或重新验证之前,将不会许可对受保护数字数据资产的访问)。作为一个示例,与本公开一致的cookie包括与以下各项相关的字段:用户组ID(例如,“ug_id”)、用户组名称(例如,“ug_name”)、指示用户+设备的组合在其当前位置是否被授权的布尔标志(例如,“pdp-authorize”)、以及指示cookie何时到期的重新验证时间或其他变量(例如,“revalidation”)。根据本公开将理解的是,这样的功能不仅可以用于保护诸如文档或电子表格之类的数字数据资产,还可以用于控制对使用这种机制保护的设施(例如,企业处的本地服务器、其他内容(例如,内部网站)、和其他这种数字数据资产)的访问。

与用户设备不同,服务器(例如,策略服务110或数据访问控制服务器120)可以具有与cookie相关联的完整上下文,并且可以通过使用该上下文来验证或重新验证所请求的策略。例如,cookie中的“revalidation”字段可以被赋予值86400。在该示例中,可以每86400秒检查或重新验证相应的cookie。在一个实施例中,cookie可以仅表示由给定策略实例评估的多个属性中的一个属性(例如,位置)。在被重新评估的cookie表示位置的情况下,服务器(例如,策略服务器110)可以通过将用户设备(例如,用户设备130)的当前位置与策略的所需参数进行比较来重新评估cookie,然后向用户设备(例如,用户设备130)返回适当的值(例如,指示位置是否有效的布尔值),在一个实施例中,可以以具有新的到期时间(例如,新的“revalidation”值)的新cookie的形式来返回。给定的用户设备可以一次存储许多这样的cookie,每个cookie表示给定策略所需的多个属性中的一个属性,并且每个cookie/属性针对定义的策略来独立地检查。

除了验证之外,还可以根据本公开使用编码的标识符(例如,cookie)来监视和跟踪事件(这可以被称为“进行事件(eventing)”)。每当动作发生时,可以由系统100的任何组件生成“事件(event)”。将生成事件的动作可以由管理员或以其他方式定义。生成事件的一些示例动作是用户尝试从给定设备访问文档、用户移动到新的位置、用户的设备在获得在批准位置中对受保护数据资产的访问之后移动到未批准的位置等许多其他这种潜在的事件生成示例。当用户设备(例如,用户设备130)生成事件时,系统组件(例如,策略服务110和/或数据分析及报告系统150,包括每个的子组件(例如,会话存储库112、策略存储库114和事件存储库116))可以使用cookie信息来重新创建事件和策略之间的整个关系。例如,分析系统(例如,数据分析及报告系统150)可以通过查看原始cookie与事件更新的组合来接收用户设备的策略状态的完整视图,后者可以指示原始cookie中的信息(如果有的话)已被更新。

另外,关于cookie和事件的前述功能为系统(例如,系统100)提供了附加的灵活性和效率。因为用户设备不必跟踪、确定、或以其他方式知道由策略评估的基础属性,所以用户设备本身不一定必须响应于策略改变而被更新。因此,系统仅需要更新中央组件(例如,策略存储库110),而非更新潜在的大量用户机器然后监视那些配置。

图1C是描绘根据一个实施例的图1A和图1B中描绘的系统的替代配置和实施例的简化框图。图1C描绘了核心服务180,其在该实施例中包括策略服务110(并且隐含来自图1A和图1B的策略服务110的组成部分,例如,会话存储库112、策略存储库114、和事件存储库116)、密钥服务181、识别服务182、和摄取服务183。虽然未在图1C中明确描绘,但核心服务180还可以包括API网关和会话安全管理功能。

核心服务180还可以从策略信息源190接收输入(以及以其他方式与策略信息源190通信),策略信息源190可以包括但不限于诸如在本公开的其他地方所描述的GPS信息、其他位置信息、安全信息、和信誉信息。另外,核心服务180可以从内容分类及管理系统191以及分析服务150(例如以上描述的并且结合图1A和图1B更详细地示出的)接收输入(以及以其他方式与它们通信)。核心服务180还可以从身份源192接收输入(以及以其他方式与身份源192通信),身份源192可以包括但不限于轻量级目录访问协议(LDAP)、身份服务引擎(ISE)、和/或活动目录(Active Directory,AD)功能。最后,核心服务180可以经由用户接口140与用户通信,用户接口140可以包括端用户接口142、管理接口144、安全控制接口146、和事件监视器148等其他潜在组件。

示例网络架构

图2是示出根据一个实施例的包括服务器系统的网络架构200的示例的框图。网络架构200包括互联网络(在图2中被描绘为互联网/广域网(WAN)210),该互联网络被配置为将多个内联网彼此耦合(在图2中被描绘为内联网220(1)-(N))。内联网220(1)-(N)又可以包括多个组件,例如一个或多个客户端(在图2中被描绘为客户端225(1)-(N))和/或服务器(在图2中被描绘为服务器230(1)-(N))。客户端225(1)-(N)和/或服务器230(1)-(N)可以使用例如诸如结合图3描述的计算机系统来实现。因此,互联网/WAN 210通信地将内联网220(1)-(N)彼此耦合,从而允许客户端225(1)-(N)和服务器230(1)-(N)彼此通信(并且在某些实施例中,可以提供内联网220(3)和220(N)的服务器以例如作为基于云的服务器系统进行操作)。如图2所示,客户端225(1)-(N)可以通信地耦合到彼此并且作为内联网220(1)-(N)中的一个的一部分耦合到服务器230(1)-(N)或者经由互联网/WAN 210直接耦合。类似地,服务器230(1)-(N)可以通过到互联网/WAN 210的直接连接而经由互联网/WAN 210耦合或者作为内联网220(1)-(N)中的一个的一部分耦合。

网络架构200还提供使用一个或多个其他设备来经由互联网/WAN 210进行的通信。这样的设备可以包括例如通用分组无线电服务(GPRS)客户端240(例如,“智能电话”、“平板”计算机、或其他这样的移动设备)、安全web客户端(在图2中被描绘为安全超文本传输协议客户端250)、和基本蜂窝电话(例如,使用标准短信或其他通信协议,并且在图2中被描绘为简单消息服务(SMS)客户端260)。HTTPS客户端250可以是例如使用HTTP安全(HTTPS)协议的膝上型计算机。因此,对GPRS客户端、SMS客户端、HTTP客户端等的支持从而根据移动环境中的实施例向用户提供通信功能。如图2中还描绘的,SMS客户端260可以通过若干信道经由互联网/WAN 210进行通信。SMS客户端260可以例如直接与网关265通信,网关265又经由消息传递网关267与互联网/WAN 210通信,并且可选地,与例如内联网220(3)内的元件通信。替代地,SMS客户端260可以通过公共消息传递服务270而经由网关265与内联网220(3)(以及因此与互联网/WAN 210)进行通信,其中网关265和内联网220(3)连接到网关公共消息传递服务270。如图2中还描绘的,客户端225(4)还能够通过公共通信服务270和内联网220(3)来经由互联网/WAN 210进行通信。为了支持这种通信以及根据各种实施例的其他通信,内联网220(3)包括服务器系统280并且(可选地)以内联网220(2)的方式提供多个客户端(未示出)。

服务器系统280包括允许服务器系统280提供各种功能(例如,支持各种通信、基于云的服务、基于云的服务、企业服务等)的多个组件。在某些实施例中,这些组件是多个服务器,其可以以硬件和/或软件来实现。这种服务器的示例包括数据访问控制服务器120和加密服务器160等其他潜在服务器。

诸如服务器系统280中包括的那些服务器之类的服务器被设计为包括硬件和/或软件,这些硬件和/或软件被配置为辅助支持根据本文所公开的概念的操作的功能以及其他可能的(例如,直接地、经由各种应用编程接口(API)和/或其他这样的接口、和/或其他这样的机制和/或构造)彼此通信的这种组件和机制。如将结合图3更详细地讨论的,服务器系统280的服务器系统例如通过向端用户呈现网站(受例如web服务器290(1)-(N)影响的功能)来提供这样的功能。最终用户可以通过使用诸如以下各项中的一个或多个的客户端计算设备来访问这样的网站:客户端225(1)-(N)、GPRS客户端240、HTTPS客户端250、和/或SMS客户端260。根据本公开将理解的是,在诸如本文所描述的那些移动设备之类的移动设备上支持这种功能的能力是重要的,因为移动电子商务正迅速成为当今在线环境的重要方面。在提供诸如本文所描述的功能之类的功能时,网络架构200能够以高效、有效的方式来支持相关产品/服务信息的识别和呈现。

应理解的是,根据本公开,在本文的各种附图中的若干实例中使用的变量标识符“N”以更简单地指定一系列相关或类似元件(例如,内联网220(1)-(N)、客户端225(1)-(N)、以及服务器230(1)-(N))的最终元件。重复使用这种变量标识符并不意味着暗示这些一系列元件的大小之间的相关性。使用这种变量标识符绝不意图(并且不)要求每一系列元件具有与由相同变量标识符分隔的另一系列相同数目的元件。而是,在每个使用实例中,如此标识的变量可以表示与相同变量标识符的其他实例相同或不同的值。

如根据本公开将理解的是,根据由诸如本文所描述的那些系统之类的系统所体现的概念的过程包括一个或多个操作,其可以以任何适当的顺序执行。应理解的是,本文所讨论的操作可以包括计算机系统用户直接输入的命令或者由专用硬件模块执行的步骤,但是优选实施例包括由软件模块执行的步骤。本文提到的步骤的功能可以对应于模块或模块的一部分的功能。

本文提到的操作可以是模块或模块的一部分(例如,软件、固件、或硬件模块)。例如,尽管所描述的实施例包括软件模块和/或包括手动输入的用户命令,但是各种示例模块可以是专用硬件模块。本文所讨论的软件模块可以包括脚本、批处理、或其他可执行文件、或这些文件的组合和/或一部分。软件模块可以包括在计算机可读存储介质上编码的计算机程序或其子程序。在一个实施例中,这样的模块或模块的一部分可以被配置为托管图1的一个或多个组件并执行与图7-图9相关联的一个或多个功能,例如,当一个或多个这样的组件被托管在云中或作为(一个或多个)基于云的服务。

另外,本领域技术人员将认识到的是,模块之间的边界仅是说明性的,并且替代实施例可以合并模块或强加对模块的功能的替代分解。例如,本文所讨论的模块可以被分解成子模块以作为多个计算机进程来执行,并且可选地在多个计算机上执行。此外,替代实施例可以组合特定模块或子模块的多个实例。此外,本领域技术人员将认识到的是,示例实施例中描述的操作仅用于说明。根据本公开,可以组合操作或者可以在附加的操作中分发这些操作的功能。

替代地,这些动作可以体现在实现这种功能的电路的结构中,例如复杂指令集计算机(CISC)的微代码、编程到可编程或可擦除/可编程设备中的固件、现场可编程门阵列(FPGA)的配置、门阵列或全定制专用集成电路(ASIC)的设计等。

流程图的每个框可以由模块(例如,软件模块)或模块的一部分或者使用诸如计算机系统310之类的计算机系统的计算机系统用户来执行。因此,以上描述的方法、其操作、及其模块可以在被配置为执行该方法的操作的计算机系统上执行和/或可以从计算机可读存储介质执行。该方法可以体现在机器可读和/或计算机可读存储介质中,用于将计算机系统配置为执行该方法。因此,软件模块可以被存储在计算机系统存储器内和/或被发送到计算机系统存储器,以将计算机系统配置为执行例如模块的功能。

这种计算机系统通常根据程序(诸如特定应用程序和/或操作系统之类的内部存储指令的列表)来处理信息并经由I/O设备产生得到的输出信息。计算机进程通常包括执行(运行)程序或程序的一部分、当前程序值和状态信息、以及操作系统用来管理进程执行的资源。父进程可以生成其他子进程以帮助执行父进程的整体功能。因为父进程专门生成子进程以执行父进程的整体功能的一部分,所以子进程(和孙进程等)所执行的功能有时可以被描述为由父进程执行。

这种计算机系统通常包括“并发”执行的多个计算机进程。通常,计算机系统包括单个处理单元,其能够交替地支持许多活动进程。虽然多个进程可能看起来在同时执行,但在任何给定的时间点处,实际上只有一个进程被单个处理单元执行。通过快速改变执行的进程,计算机系统给出了并发进程执行的表观。计算机系统在各个执行阶段中在多个进程之间复用计算机系统资源的能力被称为多任务处理。具有多个处理单元的系统(根据定义可以支持真正的并发处理)被称为多处理系统。当在多任务和/或多处理环境中执行这样的进程时,活动进程通常被称为并发执行。

本文所描述的软件模块可以由这样的计算机系统接收,例如,从计算机可读存储介质接收。计算机可读存储介质可以永久地、可移除地、或远程地耦合到计算机系统。计算机可读存储介质可以非排他地包括,例如,任意数目的以下各项:磁存储介质(包括磁盘和磁带存储介质)、光存储介质(例如,压缩磁盘介质(例如,CD-ROM、CD-R等))、和数字视频磁盘存储介质。非易失性存储器包括基于半导体的存储器单元,例如,FLASH存储器、EEPROM、EPROM、ROM或专用集成电路;易失性存储介质包括寄存器、缓冲器或缓存、主存储器、RAM等;以及其他这样的计算机可读存储介质。在基于UNIX的实施例中,软件模块可以体现在文件中,该文件可以是设备、终端、本地或远程文件、或其他这样的设备。其他新的和各种类型的计算机可读存储介质可用于存储本文所讨论的软件模块。

用于表征产品和/或服务的示例架构

图3是描绘网络架构300的框图,其中客户端系统310、320和330以及存储服务器340A和340B(其中任何一个可以使用计算机系统310来实现)耦合到网络350。存储服务器340A进一步被描绘为具有直接附接的存储设备360A(1)-(N),并且存储服务器340B被描绘为具有直接附接的存储设备360B(1)-(N)。存储服务器340A和340B也连接到SAN结构370,但操作不需要到存储区域网络的连接。SAN结构370支持存储服务器340A和340B以及从而客户端系统310、320和330经由网络350对存储设备380(1)-(N)的访问。智能存储阵列390也被示为可经由SAN结构370访问的特定存储设备的示例。

参考下面描述的计算机系统610,调制解调器647、网络接口648、或某其他方法可用于提供从客户端计算机系统310、320和330中的每一个到网络350的连接。客户端系统310、320和330能够使用例如web浏览器或其他客户端软件(未示出)来访问存储服务器340A或340B上的信息。这样的客户端允许客户端系统310、320和330访问由存储服务器340A或340B或存储设备360A(1)-(N)、360B(1)-(N)、380(1)-(N)中的一个或智能存储阵列390托管的数据。图7和8描绘了对诸如互联网之类的网络的使用以用于交换数据,但本文所描述的系统不限于互联网或任何特定的基于网络的环境。

前述实施例,其中不同组件被包含在不同的其他组件内(例如,随后讨论的被示出为计算机系统610的组件的各种元件)。应理解的是,这样描绘的架构仅仅是示例,并且实际上可以实现许多实现相同功能的其他架构。在抽象但仍然明确的意义上,实现相同功能的组件的任何布置被有效地“关联”,使得期望的功能被实现。因此,在本文中被组合以实现特定功能的任何两个组件可以被视为彼此“相关联”使得期望的功能被实现,而不管架构或中间组件如何。同样地,如此关联的任何两个组件也可以被视为彼此“可操作地连接”或“可操作地耦合”以实现期望的功能。

示例联网设备

图4是示出示例联网设备400的组件的框图,其描绘(至少部分地)网络设备或网络路由元件(例如,集线器、路由器、交换机、或类似设备)的一种配置。在该描绘中,联网设备400包括多个线卡(线卡402(1)-402(N)),这些线卡经由数据总线430和结果总线440通信地耦合到控制模块410(其可以包括转发引擎,未示出)和流量控制(或流控制)处理器420。线卡402(1)-(N)包括受端口处理器控制器460(1)-460(N)控制的多个端口处理器450(1,1)-450(N,N)。还应注意的是,控制模块410和路由处理器420不仅经由数据总线430和结果总线440彼此耦合,而且还通过通信链路470彼此通信地耦合。应注意的是,在替代实施例中,每个线卡可以包括其自己的转发引擎。

当网络设备或网络路由元件(例如,联网设备400)接收到消息(例如,授权请求、调试证书、或调试完成确认消息)时,以下列方式识别和分析该消息。在接收时,从接收消息的端口处理器450(1,1)-450(N,N)中的一个向耦合到数据总线430的那些设备(例如,端口处理器450(1,1)-450(N,N)中的其他端口处理器、转发引擎、和/或路由处理器420)中的一个或多个发送消息(或其一些或全部控制信息)。对消息的处理可以是例如根据本文所公开的系统和方法的转发引擎的性能。例如,转发引擎可以确定应该将消息转发到端口处理器450(1,1)-450(N,N)中的一个或多个。这可以通过向端口处理器控制器460(1)-460(N)中的相对应的(一个或多个)端口处理器控制器指示在端口处理器450(1,1)-450(N,N)中的给定的(一个或多个)端口处理器中保存的消息的副本应被转发到端口处理器450(1,1)-450(N,N)中的适当的一个来实现。

联网设备400可以用于实现例如网络设备(例如,策略服务110、数据访问控制服务器120、用户设备130、用户接口140、数据分析及报告服务150、加密服务器160、以及位置跟踪服务器170等其他示例)或者控制模块410中的或端口处理器控制器460(1)-460(N)中的一个或多个中的和/或路由处理器420中的网络路由元件,以实现本公开。虽然未示出,但网络设备400还可以用于控制模块410中的、端口处理器控制器460(1)-460(N)中的一个端口处理器控制器中的、和/或路由处理器420(未示出)中的路由协议模块和/或网络可达性协议模块。此外,控制模块410可以实现方法700或方法800的一个或多个步骤,并且可以与策略服务110、数据访问控制服务器120、用户设备130、用户接口140、数据分析及报告系统150、加密服务器160、位置跟踪服务器170、和/或系统100的任何那些组件的子组件或输入(例如,策略信息输入118)结合使用(或作为其一部分使用)。

可以经由耦合到接收传入的消息的端口的线卡的转发引擎或端口处理器来向网络设备或网络路由元件提供传入的消息(例如,授权请求、调试证书、或调试完成确认消息)。网络设备400可以被配置为处理传入消息并生成一个或多个传出的消息(例如,授权请求、调试证书、或调试完成确认消息),如贯穿本公开所描述的那样。

传出的消息可以由网络设备或网络路由设备提供给转发引擎,该网络设备或网络路由设备可以确定应该将传出的消息转发到端口处理器450(1,1)-450(N,N)中的一个或多个,端口处理器被配置为传出的消息的目的地发送传出的消息。

图5是示出示例联网设备500的组件的框图,其中联网设备被配置作为网络设备(例如,策略服务110、数据访问控制服务器120、和用户设备130等其他示例)或网络路由元件。如图所示,联网设备500包括被配置为执行存储在存储器506和/或508中的程序指令的一个或多个处理器502(例如,微处理器、PLD(可编程逻辑设备)、或ASIC(专用集成电路)),其中存储器506和/或508是计算机可读存储介质。存储器506和508可以包括各种类型的RAM(随机存取存储器)、ROM(只读存储器)、闪存、MEMS(微机电系统)存储器等。联网设备500还包括一个或多个端口504(例如,一个或多个硬件端口或可以链接到其他联网设备、主机、服务器、存储设备等的其他网络接口)。处理器502、端口504、和存储器506和508被耦合以通过一个或多个总线或其他互连来发送和接收数据和控制信号。

在该示例中,可执行以实现本文所公开的系统和方法的程序指令被存储在存储器506中。拓扑信息和网络可达性信息可以存储在一个或多个表530中。

消息510(例如,授权请求、调试证书、或调试完成确认消息)存储在存储器508中。在一个实施例中,可以从端口504接收消息510(例如,从耦合到端口504的另一联网设备接收的)并且可以在将其转发到根据本公开的系统和方法的另一联网设备之前将其存储在存储器508中。在一个实施例中,传出的消息510可以在被经由端口504发送之前被生成并存储在存储器508中。

示例计算和网络环境

如上所示,可以使用各种计算机系统和网络来实现本公开。下面参考图6描述一个这样的计算环境的示例。

图6描绘了适合于实现本公开的各方面的计算机系统610的框图。计算机系统610包括总线612,总线612互连计算机系统610的主要子系统,例如,中央处理器614、系统存储器617(通常为RAM,但也可包括ROM、闪存RAM等)、输入/输出控制器618、外部音频设备(例如,经由音频输出接口622的扬声器系统620)、外部设备(例如,经由显示适配器626的显示屏624)、串行端口628和630、键盘632(与键盘控制器633接口)、存储接口634、可操作以接收软盘638的软盘驱动器637、可操作以与光纤信道网络690连接的主机总线适配器(HBA)接口卡635A、可操作以连接到SCSI总线639的主机总线适配器(HBA)接口卡635B、以及可操作以接收光盘642的光盘驱动器640。还包括鼠标646(或其他点击设备,其经由串行端口628耦合到总线612)、调制解调器647(经由串行端口630耦合到总线612)、和网络接口648(直接耦合到总线612)。

总线612允许中央处理器614和系统存储器617之间的数据通信,系统存储器617可以包括只读存储器(ROM)或闪存(都未示出)和随机存取存储器(RAM)(未示出),如前所述。RAM通常是操作系统和应用程序被加载到的主存储器。除了其他代码之外,ROM或闪存可以包含基本输入输出系统(BIOS),BIOS控制诸如与外围组件的交互之类的基本硬件操作。驻留在(或以其他方式添加或存储在)计算机系统610内的应用通常存储在计算机可读介质(例如,硬盘驱动器(例如,固定盘644)、光盘驱动器(例如,光盘驱动器640)、软盘单元637、或其他存储介质)上并经由计算机可读介质访问。另外,当经由网络调制解调器647或接口648访问时,应用可以是根据应用和数据通信技术调制的电子信号的形式。

与计算机系统610的其他存储接口一样,存储接口634可以连接到用于存储和/或检索信息的标准计算机可读介质,例如,固定磁盘驱动器644。固定磁盘驱动器644可以是计算机系统610的一部分或者可以是分开的并通过其他接口系统访问的。调制解调器647可以经由电话链路提供到远程服务器的直接连接,或者经由互联网服务提供商(ISP)提供到互联网的直接连接。网络接口648可以经由直接网络链路提供到远程服务器的直接连接,其中直接网络链路经由POP(存在点)到互联网。网络接口648可以使用无线技术来提供这种连接,包括数字蜂窝电话连接、蜂窝数字分组数据(CDPD)连接、数字卫星数据连接等。

许多其他设备或子系统(未示出)可以以类似的方式连接(例如,文档扫描仪、数码相机等)。相反,并不需要图6中所示的所有装置来实践本公开。设备和子系统可以以不同于图6所示的方式互连。如图6所示的计算机系统的操作在本领域中是公知的,并且在本申请中不再详细讨论。用于实现本公开的代码可以存储在诸如以下各项中的一个或多个之类的计算机可读存储介质中:系统存储器617、固定盘644、光盘642、或软盘638。计算机系统610上提供的操作系统可以是MS-或其他已知的操作系统。

此外,关于本文所描述的信号,本领域技术人员将认识到可以将信号从第一块直接发送到第二块,或者可以在块之间修改信号(例如,放大、衰减、延迟、锁存、缓冲、反转、滤波、或以其他方式修改)。尽管上述实施例的信号的特征在于从一个块发送到下一个块,但本公开的其他实施例可以包括代替这种直接发送的信号的经修改的信号,只要信号的信息和/或功能方面是在块之间传输的。在某种程度上,由于所涉及的电路的物理限制(例如,将不可避免地存在一些衰减和延迟),可以将在第二块处输入的信号概念化为从从第一块输出的第一信号导出的第二信号。因此,本文所使用的从第一信号导出的第二信号包括第一信号或无论是由于电路限制还是由于通过不改变第一信号的信息和/或最终功能方面的其他电路元件而对第一信号的任何修改。

用于确定是否许可对受保护数据资产的访问的示例方法

图7是方法700的流程图,其示出了结合本文所公开的系统和技术的一个实施例执行的各种动作。根据本公开还将理解的是,可以修改该方法以得出替代实施例。此外,尽管本实施例中的步骤以连续顺序示出,但是某些步骤可以以与所示顺序不同的顺序发生,某些步骤可以同时执行,某些步骤可以与其他步骤组合,并且某些步骤可以在另一实施例中被省略。

参考图1-6中示出的示例元件描述的方法700示出了可以根据本公开执行的过程。更具体地,方法700描述了用于在适当情况下许可对受保护数据资产的访问的方法。在一个实施例中,方法700可以由安全代理(例如,安全代理136)执行。

方法700开始于步骤710,其中安全代理(例如,安全代理136)接收访问受保护数据资产的请求。响应于接收到该请求,安全代理在步骤720中识别要由与受保护数据资产相关联的(一个或多个)策略评估的一个或多个准则。尽管具体准则可以根据实现方式不同而变化,但贯穿本公开讨论了一些准则的示例(例如,用户名、密码、设备类型、设备ID、UUID、物理位置、网络、当前时间等)。在步骤730,方法700然后使用该策略的相关准则来确定是否许可对已经被请求访问的受保护数据资产的访问。贯穿本公开更详细地讨论了步骤720和730的具体示例,包括以上以及以下段落。在一个实施例中,该确定可以由安全代理136进行,单独运作或与该系统的其他组件(例如,策略存储库110、数据访问控制服务器120、和加密服务器160)一起运作。在其他实施例中,可以由系统100的其他组件中的一个或多个来进行确定,然后将确定结果中继到安全代理136以进行评估和进一步处理。

在步骤740,安全代理136然后评估该确定的结果以确定是否应该允许(或许可)对受保护数据资产的访问。如果方法700在步骤740中确定应该允许(或许可)访问,则安全代理136可以执行步骤750中的其他步骤以提供对受保护数字数据资产的访问。这些步骤的示例在本公开的其他地方提供,为了便于讨论,本文中重复这些步骤中的一些(例如,获得相关的解密材料并使用这些解密材料来解密受保护数据资产,从而允许基础软件应用(例如,)在用户设备上访问、打开、和/或显示数据资产)。如果方法700在步骤740中确定不应该允许(或不许可)访问,则方法700移动到步骤760并且不允许(或许可)访问受保护数据资产(或采取任何许可访问的步骤,例如获得解密材料),在这种情况下,受保护数据资产将保持加密状态并且用户的设备将无法打开、显示、或以其他方式访问该受保护数据资产。在步骤750或步骤760之后,方法700结束。

以上描述旨在是说明性的而不应被视为是限制性的。根据本公开将理解的是,其他实施例是可能的。本领域技术人员将容易地实现提供本文公开的结构和方法所必需的步骤,并且将理解,过程参数和步骤顺序仅作为示例给出并且可以变化以实现期望的结构以及权利要求范围内的修改。在不脱离权利要求的范围的情况下,可以基于本文所阐述的描述来做出对本文公开的实施例的变型和修改,从而在所有方面给出对其等同物的充分认识。

位置功能的示例操作

如上所述,相对于本公开中所描述的系统和方法,动态位置跟踪(作为动态属性跟踪的一个示例)是用于策略创建、实施、和维持的重要属性。为了进一步辅助这种动态位置跟踪,还可以通过诸如本文所描述的方法和系统来提供位置跟踪功能。为此,这种动态位置跟踪功能可以与至少本文所描述的方法700的步骤结合使用。当与诸如本文所描述的那些属性之类的其他文档分类属性组合时,位置跟踪使得本文所公开的系统和方法能够基于文档可以被访问或不可以被访问的一个或多个位置来控制对受保护数据资产的访问。

作为一个示例,用户(例如,具有用户名“Bob”)可以经由设备(例如,他的膝上型笔记本,设备名称为“laptop”)登录系统。根据该示例,系统可以通过诸如“Bob+laptop”之类的名称来识别用户设备,从而指示用户和正在使用的设备。然后,系统可以使用位置跟踪功能(例如,由CMX提供的功能)来跟踪Bob+laptop的位置。当用户设备“Bob+laptop”执行登录时,位置事件被生成。类似地,当Bob+laptop改变位置(例如,物理地、逻辑地(例如,通过从一个网络断开然后连接到另一网络)等)时,另一位置事件被生成。诸如这些位置事件之类的位置事件由系统消费,并且为“Bob+laptop”启动位置跟踪器(Bob使用他的膝上型笔记本访问系统)。在某些实施例中,位置事件可以由推送模型或拉取模型或它们的某种组合来消费。

根据本文所描述的方法和系统的位置跟踪器可以在软件模块、硬件模块、或它们的某种组合中实现。在某些实施例中,当被实现为软件模块时,例如为用户-设备组合(例如,为“Bob+laptop”)启动位置跟踪器。这样的位置跟踪器可以存储客户端信息(例如,关于用户、设备、用户设备、和/或其他相关信息的信息)、用户设备的当前位置、以及关于这种信息的有效性的信息。当用户(例如,“Bob”)尝试使用设备(例如,“laptop”)打开受保护数据资产时,针对由跟踪器维持的信息来评估相应的策略。如果“Bob+laptop”位于该策略批准的位置(例如,Bob的办公室),则系统可以提供访问(例如,解密)受保护数据资产所需的信息(例如,解密材料)。然而,当“Bob+laptop”移动时,新的位置事件可以被生成。假设位置的这种变化足以产生这样的位置事件(例如,基于移动类型、涉及的技术及其粒度、策略的约束、以及其他这种因素),如果“Bob+laptop”然后尝试从新位置访问受保护数据资产(例如,打开文件)(或尝试维持对相关数据资产的访问),则可以验证新的位置并基于该位置来许可或拒绝(或撤销)访问。如果新的位置不是基于一个或多个适用策略的可接受的位置(例如,在本文被称为“无效”位置),则“Bob+laptop”将不被许可(例如,系统不会提供用于解密的必要的解密材料)对“Bob+laptop”正在尝试打开的受保护数据资产的访问(或将撤销对受保护数据资产的访问(例如,通过强制关闭文件并从安全代理的计算机可读存储介质(例如,存储器)中刷新相关的解密材料))。

在诸如本文描述的那些方法和系统的一个方面中,与位置事件有关的信息可以存储在非暂态计算机可读存储介质中,例如,数据库或日志文件存储在硬盘驱动器上。在一个实施例中,每个位置事件可以由“设备Id”或类似值索引,例如,网络地址(例如,介质访问控制(MAC)层地址)。在另一实施例中,每个位置事件可以由不同的值索引,例如用户名和设备Id的组合。无论用于唯一地标识记录的指定密钥如何,计算机可读存储介质(例如,数据库存储在其中)还可以存储其他信息,例如,唯一的策略标识值(例如,针对给定策略实例的通用唯一标识符(UUID))、客户端UUID(例如,表示客户端或用户的唯一值)、当前位置(例如,由相应位置事件提供)、关于一个或多个策略位置约束的信息(例如,策略准许或不准许访问受保护数据资产的物理位置)、以及指示当前位置是否有效(例如,指示位置就一个或多个适用策略而言是可接受的(与前面讨论的“无效位置”相反))的“位置有效”标志(例如,BOOLEAN值))、以及可以存储在数据库或其他存储器结构中的其他信息。

在一个实施例中,客户端位置跟踪开始于具有适用于给定客户端的位置约束的第一策略,并且结束于具有适用于其的位置约束的最后策略。客户端位置跟踪可以被配置为避免不必要的跟踪操作和对位置更新事件的处理。例如,系统可以被设计为避免创建位置更新事件,除非设备移动至少一定量(例如,距离)和/或改变接入点(例如,小区、无线接入点(WAP)等、和/或它们的组合),从而避免每次用户设备的“位置”改变时或者面临类似事件的情况下重复的位置更新。在其他实施例中,可以自动(例如,以设定的时间间隔)生成位置更新事件,从而还避免在用户设备的位置中存在重复的微小改变时重复的位置更新事件。如下面将更详细描述的,位置更新事件可以基于推送模型(其可以基于例如一个或多个适用的时间段和/或物理移动等其他潜在准则)或者拉取模型(例如,基于一个或多个适用的时间段,但其他准则也是可能的)。

在一个实施例中,由策略存储库110结合事件存储库116(和/或由系统100的一个或多个其他组件)并且在某些实施例中结合用户接口140的一个或多个组件接收客户端位置更新事件并按照如下方式处理客户端位置更新事件:系统或(一个或多个)相关系统组件基于用于相关策略索引的给定密钥值(例如,设备Id和客户端UUID的组合)来检索或“选择”相关策略实例。在检索或选择相关策略实例时,系统可以迭代被检索/选择的策略实例,针对每个策略实例更新用户设备的当前位置,将当前位置与策略所提供的位置约束进行比较以确定在每个相应策略下是否仍应允许对受保护数据资产的访问和/或在位置验证已改变的情况下更新相应策略实例中的位置有效标志值,从而避免在位置有效标志值(例如,TRUE/FALSE)并未改变时针对每个受影响的策略实例对用户设备的记录进行不必要的更新。系统可以使用诸如此类的过程来有效地定位以及(如果需要的话)更新受影响的客户端策略实例(例如,可能受位置改变影响的所有那些客户端策略实例)。

如上所述,在某些实施例中,策略实例使用两种主要方法中的一种或组合来更新:拉取方法(例如,通过诸如轮询之类的技术)和推送方法(例如,通过诸如来自推送通知的回调之类的技术)。类似地,系统可以设置为在拉取模式和/或推送模式下操作。当在拉取模式下进行操作时,例如,由系统(例如,策略服务110)以设定的时间间隔轮询每个用户设备或其他客户端/端点来验证每个相关策略实例,以获得设备的当前位置并确定该位置针对每个策略是否仍然有效。

在推送模式中,用户设备130主要负责在位置更新事件发生时更新系统100(例如,策略服务110和/或数据访问控制服务器120)。如上所述,可以基于时间、用户设备130的移动、或两者的组合等其他这种可能的事件来将位置更新事件从用户设备130推送到系统100的其他组件。当基于时间进行操作时,用户设备130(或用户设备130的组件,诸如安全代理126)可以被配置为以某时间间隔(例如,每5分钟一次或每天一次)推送位置更新事件。这些时间间隔的长度和频率可以由管理员(例如通过使用用户接口140)至少部分地基于特定策略实例所覆盖的数字数据资产的灵敏度来配置。当基于位置进行操作时,用户设备130(或用户设备130的组件,诸如安全代理126)可以被配置为基于各种基于位置的准则(例如,当用户设备130移动了某物理距离(例如,至少10英尺)时、当用户设备130穿过物理或网络边界(例如,离开房间或切换到不同网络或网络内的路由器)时、当用户设备130从一个网络连接移动到另一网络连接等)来推送位置更新事件。

无论位置更新事件如何发生,系统都可以在接收时(例如,在策略服务110处接收时)处理事件。例如,系统(例如,策略服务110)可以在事件存储库116中记录每个接收的事件,并且例如通过上述方法步骤来更新策略存储库114中的策略实例。此外,如果系统(例如,策略服务110)确定该位置不再有效,则系统(例如,策略服务110)可以向数据访问控制服务器120和/或用户设备130发送指示对相应的(一个或多个)数据资产的访问应被撤销(如果先前已被准许)或者不应提供这种访问(如果请求任何当前受保护数字数据资产)的通知。在撤销先前许可的访问的情况下,系统可以发出命令以要求安全代理136关闭和/或重新加密相应的(一个或多个)数据资产。

参考图1-图6中示出的示例元件描述的方法800示出了可以根据本公开执行的过程。更具体地,方法800描绘了根据一个实施例的用于评估一个或多个策略的过程。在一个实施例中,方法800的一个或多个步骤可以由诸如策略服务110和/或数据访问控制服务器120之类的用户设备执行,它们彼此协同工作并与诸如图1-图6中所示的其他元件一起工作。

在图8的示例方法中,对策略实施的确定在步骤810中开始,其中,通过确定哪个或哪些策略适用于给定客户端策略会话。假设至少一个策略适用于当前客户端策略会话,则方法800然后在步骤820中选择要评估的策略P(i)。(如在图8的上下文中使用并且伴随着讨论的那样以及本领域将理解的那样,“i”是用于追踪正在评估的当前策略的整数。)

在步骤820中选择策略P(i)之后,方法800然后在步骤830中通过针对诸如本公开中其他地方描述的那些之类的各种信息和输入评估每个策略约束(包括可能隐含在该策略中的任何约束)来评估该策略。在步骤840中,方法800基于步骤830中的评估结果进行确定。如果步骤840确定该策略的所有约束都被满足,则方法800进行到步骤850,在步骤850处方法800允许访问讨论中的受保护数据资产(或许可对用户设备的长期访问),然后方法800结束。

如果步骤840确定并不是该策略的所有约束均被满足,则方法800进行到步骤860。在步骤860,方法800然后确定是否存在任何其他策略P(i)。如果步骤860确定至少一个或多个策略可用,则方法800然后进行到步骤870。然后,方法800在步骤870中递增计数变量(“i”),然后返回到步骤820,在步骤820中下一个策略P(i)被选择。(尽管为了便于遵循图8中的流程图的步骤,本文包括了步骤870,但实际上这种计数变量不是必须的,但可以使用这种计数变量。)如果步骤860确定不存在其他策略,方法800然后结束。

在图8所示并且如上所述的实施例中,如果任何一个策略P(i)的约束被完全满足,则可以许可对受保护数据资产的访问。例如,在图8所示的实施例中,每个策略可以包括各种约束,例如,用户组、位置信息、和时间。在该实施例中,每个策略可以包含其自己的一组约束,但这些约束中的特定约束和可接受的值可以根据策略而变化。作为示例,第一策略可以规定在请求访问的安全代理位于特定办公室并且请求在一天的任何时间进行的情况下某个受保护数据资产可以由“执行”用户组的成员访问。第二策略可以规定在“执行”用户组的成员在一定距离内并且请求在正常营业时间期间从会议室发出的情况下相同的受保护数据资产可以由“管理”用户组的成员访问。在此示例中,如果任何策略的约束被完全满足,则可以许可对受保护数据资产的访问。

尽管未在图8中明确描绘,但也存在替代实施例。在该替代实施例中,仅在每个策略P(i)的约束都被完全满足时才许可访问。该实施例允许针对每个约束存在单独策略的情况。例如,可以存在覆盖具有访问受保护数据资产的权限的全部“用户组”的第一“用户组”策略,可以存在覆盖其中受保护数据资产可以被访问的全部可接受位置的第二“位置”策略,可以存在覆盖其中受保护数据资产可以被访问的可接受时间的第三“时间”策略等。因此,在该替代实施例中,每个策略中的约束可以彼此具有逻辑“或(OR)”关系。例如,“位置”策略可以包括指示可以在执行办公室、员工办公室、或会议室中访问受保护数据资产的约束。由于安全代理通常不能同时位于三个不同的位置,因此该策略可以包括逻辑“或”关系中的这些约束,或者作为满足“位置”策略的一系列替代方式。因此,在该实施例中,仅当来自每个策略类型(例如,用户组策略、位置策略、时间策略等)的至少一个约束被满足时,才应许可访问。

因此,在该替代实施例中,步骤810-840保持相同。然而,在该替代实施例中,如果步骤840确定给定策略P(i)的所有约束已被满足,则方法800将进行到步骤860。如果在步骤860中有任何其他策略可用,则方法800然后进行到步骤870,然后循环回到820。在该替代实施例中,只要其他策略可用并且在步骤840中没有策略失败,方法800就继续该循环。如果方法800在步骤840中没有任何策略失败的情况下迭代所有可用策略P(i),该替代实施例的方法800然后进行到访问被许可的步骤850,此时方法800的该替代实施例结束。在方法800的任何迭代期间,如果步骤840确定任何给定策略P(i)的并不是所有约束均被满足,则该替代实施例将结束而不许可对受保护数字数据资产的访问(或不许可对用户设备的长期访问)。

以上描述旨在是说明性的而不应被视为是限制性的。根据本公开将理解的是,其他实施例是可能的。本领域技术人员将容易地实现提供本文所公开的结构和方法所必需的步骤,并且将理解,过程参数和步骤顺序仅作为示例给出并且可以变化以实现期望的结构以及在权利要求范围内的修改。在不脱离权利要求的范围的情况下,可以基于本文所阐述的描述做出对本文所公开的实施例的变型和修改,从而在所有方面给出对其等同物的充分认识。

图9是示出结合本文所公开的系统和技术的一个实施例执行的各种动作的方法900的流程图。根据本公开还将理解的是,可以修改该方法以得出替代实施例。此外,尽管本实施例中的步骤以连续顺序示出,但是某些步骤可以以与所示顺序不同的顺序发生,某些步骤可以同时执行,某些步骤可以与其他步骤组合,并且某些步骤可以在另一实施例中被省略。

参考图1-图6中示出的示例元件描述的方法900示出了可以根据本公开执行的过程。更具体地,方法900描绘了根据一个实施例的用于确定具有足够粒度的位置的过程。在一个实施例中,方法900的一个或多个步骤可以由诸如用户设备130和/或位置跟踪服务器170之类的用户设备执行,它们彼此协同工作并且与诸如图1-图6中所示的其他元件一起工作。

在图9的示例过程中,确定策略实施,该过程开始于在步骤910中确定关于位置信息的(一个或多个)可用类型。然后在步骤920中确定用于一个或多个适用策略的(一个或多个)位置信息类型。然后,在步骤930中选择(一个或多个)匹配的位置信息类型。这得到将在策略应用中考虑的一组位置信息类型。然后,在步骤940中,可以按照它们的粒度对(一个或多个)匹配的位置信息类型进行排序或加权。例如,可以将较少限制的位置信息(例如,GPS信息)考虑(排序)在更多限制的位置信息(例如,超定位信息)之前,或者使较少限制的位置信息的加权稍微高于更多限制的位置信息。继续到步骤950,选择下一个最小限制的匹配的位置信息类型来用于考虑和/或分析。然后应用一个或多个适用的位置信息要求,并且在步骤960中确定一个或多个策略准则是否被满足。如果相关的准则未被满足,则在步骤970中做出关于阻止所请求的访问的指示。然后该过程结束。否则,该过程将迭代,直到必要的策略要求被满足。通过在步骤980中确定是否要考虑和/或分析更多的策略要求来完成该迭代。如果要考虑和/或分析附加的策略要求,则方法900然后循环回到步骤950。否则,如果没有更多的策略要求要考虑或分析并且如果适用的要求已被满足,则在步骤990中许可对受保护数据资产的访问。然后方法900结束。

根据本公开将理解的是,诸如本文所描述的策略之类的策略可以通知关于位置的决策,其中给定用户/设备应具有变化的粒度级别。例如,不太精确的要求意味着“更松散”的位置控制和更快的授权,并且通常会消耗更少的处理能力并且需要更少的通信,从而比更精确的要求消耗更少的带宽和更少的计算机资源。相反,更精确的位置信息意味着更严格或更精确的位置控制,这降低了未授权访问的风险,但可能需要更长的时间来授权并且可能在该过程中消耗更多带宽和更多计算资源。此外,粒度越细,系统对位置变化越敏感,但生成的位置信息越多。本文所公开的系统提供了这样的策略:可以基于预定参数和/或其他变量来指定这种位置信息的粒度要求,并且还可以在滑动标度上指定粒度要求或者将粒度要求指定为结合策略中指定的其他值和/或信息分析得出的加权值。

总之,本文公开了用于确定是否允许或继续允许对受保护数据资产的访问的各种系统和方法。例如,一种方法涉及接收访问受保护数据资产的请求,其中从第一用户设备接收该请求;确定是否许可对受保护数据资产的访问,其中该确定包括评估与第一用户设备相关联的一个或多个准则,并且该准则包括与第一策略约束相关联的第一信息;并且响应于确定要许可对受保护数据资产的访问而许可对受保护数据资产的访问。

以上描述旨在是说明性的而不应被视为是限制性的。根据本公开将理解的是,其他实施例是可能的。本领域技术人员将容易地实现提供本文所公开的结构和方法所必需的步骤,并且将理解,过程参数和步骤顺序仅作为示例给出并且可以变化以实现期望的结构以及在权利要求范围内的修改。在不脱离权利要求的范围的情况下,可以基于本文所阐述的描述做出对本文所公开的实施例的变型和修改,从而在所有方面给出对其等同物的充分认识。

其他实施例

本文所描述的系统非常适合于获得所提及的优点以及其中固有的其他优点。虽然已经通过参考特定描述来描绘、描述、和定义了这样的系统,但是这样的参考并不意味着对权利要求的限制,并且不应推断出这样的限制。本文所描述的系统能够在形式和功能上具有相当大的修改、改变、和等同物,如在考虑本公开时相关领域的普通技术人员将想到的。所描绘和描述的实施例仅是示例,并且绝不是穷举权利要求的范围。

通过使用框图、流程图、和示例,前面的详细描述已经阐述了本文所描述的系统的各种实施例。本领域技术人员将理解的是,通过使用示例示出的每个框图组件、流程图步骤、操作和/或组件可以由各种硬件、软件、固件、或它们的任何组合来(单独地和/或共同地)实现。

已经在全功能计算机系统的情境下描述了本文所描述的系统;然而,本领域技术人员将理解的是,本文所描述的系统能够以各种形式作为程序产品来分发,并且不管实际用来执行该分发的特定类型的计算机可读介质如何,本文所描述的系统同样适用。计算机可读介质的示例包括计算机可读存储介质,以及将来开发的介质存储和分发系统。

以上讨论的实施例可以由执行与实施例相关联的一个或多个任务的软件模块来实现。本文所讨论的软件模块可以包括脚本、批处理、或其他可执行文件。软件模块可以存储在机器可读或计算机可读存储介质上,例如磁性软盘、硬盘、半导体存储器(例如,RAM、ROM、和闪存型介质)、光盘(例如,CD-ROM、CD-R、和DVD)、或其他类型的存储器模块。根据实施例的用于存储固件或硬件模块的存储设备还可以包括基于半导体的存储器,其可以永久地,可移除地或远程地耦合到微处理器/存储器系统。因此,模块可以存储在计算机系统存储器内,以将计算机系统配置为执行模块的功能。其他新的和各种类型的计算机可读存储介质可用于存储本文所讨论的模块。

以上描述旨在是说明性的而不应被视为是限制性的。根据本公开将理解的是,其他实施例是可能的。本领域技术人员将容易地实现提供本文所公开的结构和方法所必需的步骤,并且将理解,过程参数和步骤顺序仅作为示例给出并且可以变化以实现期望的结构以及在权利要求范围内的修改。在不脱离权利要求的范围的情况下,可以基于本文所阐述的描述做出对本文所公开的实施例的变型和修改,从而在所有方面给出对其等同物的充分认识。

尽管已经结合若干实施例描述了本公开,但本公开不旨在限于本文所阐述的特定形式。相反,旨在覆盖可以合理地被包括在由所附权利要求限定的本公开的范围内的这些替代、修改、和等同物。

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