掌桥专利:专业的专利平台
掌桥专利
首页

用于数字权限管理的方法和系统

文献发布时间:2023-06-19 12:25:57


用于数字权限管理的方法和系统

技术领域

本公开涉及数字权限管理,并且具体地涉及作为针对任何文件类型的服务的数字权限管理。

背景技术

数字权限管理(DRM)是数字文件控制技术,该技术允许数字源的所有者(诸如,文档、文件、可执行文件或媒体等)控制对这样的数字源做什么。例如,DRM可以允许数字资源的所有者防止数字资源被复制、共享、打印、或者被编辑、以及其他选项。

通常,DRM被实现在刚性系统中,其中数字文件的源、并且因此数字文件的类型是众所周知的。在这种情况下,其他文件类型、以及针对数字文件的各种安全和审计策略是不可能的。

附图说明

参考附图,本公开将更好地被理解,其中:

图1是用于执行数字权限管理的系统的框图;

图2是用于保护DRM系统中的数字源的用户代理处的流程图;

图3是示出用于保护用户代理与服务器之间的文档和使用许可证(license)的过程的数据流图。

图4是示出用户代理与服务器之间共享文档(包括存留许可)的数据流图。

图5是示出了在与DRM系统中的服务器通信的用户代理处打开受保护的文档的数据流图;以及

图6是能够与本公开的实施例一起使用的示例计算设备或服务器的框图。

具体实施方式

本公开提供了在计算设备处用于文档权限管理的方法,该方法包括:在计算设备处,接收文档;使用内容密钥来加密文档;创建标头,该标头包括文档标识符和针对计算设备的标识符;在计算设备处存留(persist)针对文档的许可(permission);以及返回包括已加密的文档和标头的流。

本公开还提供了用于文档权限管理的计算设备,该计算设备包括:处理器;以及通信子系统,其中计算设备被配置为:接收文档;使用内容密钥来加密文档;创建标头,该标头包括文档标识符和针对计算设备的标识符;在计算设备处存留针对文档的许可;以及返回包括已加密的文档和标头的流。

本公开还提供了用于存储用于文档权限管理的指令代码的计算机可读存储介质,该指令代码当由处理器执行时:接收文档;使用内容密钥来加密文档;创建标头,标头包括文档标识符和针对计算设备的标识符;在计算设备处存留针对文档的许可;以及返回包括已加密的文档和标头的流。

根据本公开的实施例,提供了方法和系统来保护和存储针对任何文件类型的许可。在各种实施例中,第三方应用可以被使用,以安全地检索用户的许可证细节,解密用于消耗的文件,以及实施DRM限制。

受保护的文件一旦被创建,该文件就可以由意识到DRM过程的客户端打开。客户端可以关于用户的许可证而查询服务器,并且允许这样的用户打开文件,同时取决于针对该文件的DRM设置,允许或者防止诸如保存、编辑、复制、打印等选项的动作。

特别地,在所提供的实施例中,服务器侧组件可以被用于加密文件和存储许可数据。服务器侧还可以跟踪动作并且保持针对DRM动作的审计日志。

在一些情况下,服务器可以具有应用程序接口(API),以安全地检索权限管理动作。

客户端可以在意图消耗受保护的数字文件的计算设备上被提供。这样的客户端可以由DRM服务的提供方创建,或者软件开发包(SDK)可以被创建,以允许应用或软件创建方或者其他第三方创建针对他们特定应用的客户端。

现在参考图1,该图示出了用于提供能够与本公开的实施例一起使用的DRM系统的示例系统。特别地,在图1的实施例中,客户端110可以被建立在用户设备上。客户端110可以是由DRM服务的提供方构造的查看器应用、或者可以是由第三方利用SDK构造的定制,除其他选项之外。

客户端110可以与身份提供方112通信。身份提供方112是客户可以利用其认证并且获取访问令牌以发出API调用的任何系统。例如,令牌可以是电子标识符(eID)或者受系统支持的任何外部身份提供方(IdP)。

客户端110可以与API网关120通信,例如利用从身份提供方112所获取的令牌。API网关120是微服务架构中掌管API路由、请求和响应监控的公用服务、以及其他功能性的通用服务。例如,在一些情况下,请求或响应可以使用超文本传输协议(HTTP)。但是,其他协议可以被同等利用。

在一些情况下,API网关可以与认证桥接器122通信。认证桥接器122可以是作为API网关120的部分、并且掌管解析API令牌访问的服务。

API网关120可以被配置为访问多个微服务130。例如,在图1的实施例中,微服务130的一个示例包括保护服务132。保护服务132是掌管执行文档密封的服务。特别地,保护服务132将实现DRM层要被添加到的、任何受支持的文件类型。保护服务132的主要功能是接受文档,并且以已密封的方式返回具有DRM层的文档。

图1的实施例中进一步的微服务是许可管理服务134。许可管理服务134是负责设置文档许可的服务。它存留每客户端每文档的许可,并且还能够检索以使用许可证形式的许可。使用许可证是客户端应用决定某个用户是否可以访问某个文档、以及根据哪些许可来访问该文档所要求的信息。

特别地,文档许可可以被存留在图1的实施例中的数据库136中。然而,在其他实施例中,数据库136可以是远离许可管理服务134的。

在图1的实施例中进一步的微服务是审计服务138。审计服务138负责跟踪系统中的活动。任何动作可以在审计服务中被注册,并且稍后被导出以供客户查看。所导出的数据可以被聚集为不同类型的报告。

此外,服务发现功能150是负责标识系统中不同服务的逻辑动作。服务发现功能150是图1的基于微服务的系统中的通用组件。

基于图1的实施例,文档创建方或所有者可以使用DRM来保护文档。其他用户然后可以基于针对文档所设置和存留的许可来访问、编辑、打印文档、或者对文档执行其他功能。

特别地,现在参考图2,该图示出了在客户端或者用户代理处用于保护文档的过程。图2的过程开始于框210处,并且继续进行至框220,在框220中用户代理被用于向DRM服务上传文档,诸如图1的服务。

一旦文档被上传到DRM服务,DRM服务然后可以保护文件,并且以具有文档标识符的流的形式向用户返回文件。例如,这在框230处被示出。以下关于图3提供了该文档的保护。

从框230,过程继续进行到框240,在框240中用户代理可以决定对受保护的文件做什么。例如,用户代理可以将受保护的文件保存在存储装置中、向另一应用分发将受保护的文件以供消耗、以及其他选项。保存可以由服务类型调用来达成,该服务类型调用可以能够将文件移动到任何存储环境中,包括但不限于云存储服务、被管理文件传输(managed filetransfer)、第三方应用等等。文档标识符然后可以由用户代理保存。

从框240,过程继续进行到框250并且结束。

包含受保护的文件和标头的流的创建可以例如根据图3的实施例被完成。

特别地,在图3的实施例中,用户代理310与服务器312通信。如在消息320处所见,用户代理310可以向服务器312发送文档“D”。

服务器312可以使用对称密钥以便创建连同标识符ID一起的、针对文档D的种子密钥(seeded key)。种子密钥可以被认为是针对文档的内容密钥。例如,内容密钥的创建被示出在图3的框330处。

服务器312然后可以在消息332中向用户代理310返回受保护的文档“PD”。受保护的文档以流的形式被返回,该流具有受保护的已加密的文档、以及包含文档标识符的标头。流还可以包含例如以统一资源标识符的形式的到服务器312的链接。

如上所指示的,用户代理310然后可以决定对文档做什么,包括存储文档、向应用分发文档、以及其他功能性。

在一些情况下,用户然后可能希望将受保护的文档与其他人共享。现在参考图4。在图4的实施例中,用户代理410与服务器412通信。用户代理410和服务器412可以与图3的用户代理310和服务器312相同。

在图4的实施例中,如框420处所示,用户决定与其他方共享文档。在这方面,用户代理通过提供文档标识符和针对文档的许可来通知服务器412,如消息422所示。针对文档的许可可以基于文档类型被定制。因此,针对可以对文本文件做什么的许可可以不同于针对可以对音频文件、可执行文件、或某个其他文件类型做什么的许可。

服务器412然后可以执行针对用户代理的核实(未示出),并且然后存留针对文档的所期望的许可,如框430处所示。

在一些实施例中,消息440可以被发送回给用户代理410,以指示文档许可已经被存留。

此外,在某个时刻,用户可能希望打开受保护的文档。在这种情况下,用户可以是文档的原始创建方,或者可以是原始创建方向其提供许可的用户。

现在参考图5。在图5的实施例中,用户代理与服务器512通信。在一些情况下,用户代理510可以与用户代理310或用户代理410相同。此外,在一些情况下,服务器512可以与服务器312或服务器412相同。

如框520所示,用户希望打开受保护的文档。在这种情况下,用户代理可以向服务器512发送文档ID和当前用户ID,如以消息522所示。

在服务器512处,消息522被接收,并且检查可以在框530处被执行,以确定文档许可是否存在。例如,检查可以在数据库内被做出,以确定文档ID是否存在于这样的用于已存留的许可的数据库内。如果没有,指示文档应当首先被共享的错误消息532可以被提供回给用户代理510。

相反地,如在框530处所确定的,如果文档许可确实存在,则服务器512可以创建与已存留的许可匹配的使用许可证,如框530处所示。

服务器512然后可以将使用许可证提供回给用户代理510,如由消息542所示。

在用户代理510处,检查在框550处可以被做出,以确定文档是否可以基于使用许可证被解密。如果是,则在用户代理处的过程可以继续进行到框552,其中文档被显示,并且文档的使用基于使用许可证中的许可被约束。

相反,在框550处,如果文档不能被解密,则在用户代理510处的过程继续进行至框560,其中当前文档不能被显示的通知被提供。

再次参考图3,该图示出了基于图5的实施例的各种加密操作。特别地,使用许可证请求以消息340被示出。消息340包括针对文档的标识符和针对用户的标识符。例如,针对用户的标识符可以是如从图1的实施例中的身份提供方112所接收的令牌。

此外,用户代理310可以创建包括公开密钥和私有密钥的非对称密钥对。消息340可以包括所创建的密钥对的公开密钥。

服务器312在340处接收消息,并且然后可以使用在服务器处已知的对称密钥来创建针对使用许可证的一次性种子密钥,如框350所示。

在框352处,服务器然后可以利用给定公开密钥来将所生成的一次性种子签名。其可以进一步附着使用许可证,并且利用被存储在服务器312处的数字证书来将使用许可证签名。例如,在一些情况下,数字证书可以来自受信任的证书机构。

服务器312然后可以向用户代理310发送消息354,该消息354包含在如在框350处和框352处所生成并且被签名的使用许可证。

在框360处,用户代理310可以使用来自先前所生成的密钥对的私有密钥来提取一次性种子密钥。

一旦种子密钥被提取,其然后就可以被用于解密使用许可证,如框362处所示。

被提取的使用许可证然后可以在框364处被验证。具体地,与使用许可证一起被使用的签名可以被核实。一旦被核实,内容密钥就可以从使用许可证被提取。

一旦内容密钥被提取,其就可以被用于解密原始文档,如框366处所示。

用户代理然后可以基于使用许可证来控制文档的被许可的使用。特别地,用户代理可以仅允许与包括权限管理层的应用共享文档,以控制数字文档或文件的使用。例如,如上所指示,这样的权限管理可以包括防止用户保存未加密的文档、与他方共享文档、打印文档、编辑文档、播放文件、提取文档、执行某些文档、以及其他选项。在某些情况下,时间限制可以被包括在文档中,该时间限制指示在文档必须被删除之前用户代理被允许访问文档多久。其他使用许可是可能的。

如本领域技术人员将理解的,使用许可证可以针对每个数字源类型而被定制,并且可以基于DRM服务的提供方或第三方客户端开发者而被实现。例如,文本文档可以允许对文档的编辑、文档的打印、文档的保存或共享的约束、以及其他选项。相对地,经压缩的文件可以允许对提取经压缩的文件内的文档的约束、对文档的压缩以及对经压缩的文件的共享的约束、以及其他选项。音乐或视频文档可以提供对文件可以在用户计算设备处被播放的次数以及共享或复制许可的约束,以及其他选项。在这种情况下,当文件类型被添加到DRM服务时,能够被配置的使用许可的类型可以被枚举。

基于上面的图1至图5,DRM服务被提供,其中任何文件类型可以在DRM服务内被配置。在每种情况下,数字源可以被提供给服务器,服务器可以加密源并且将具有标头的流提供回给用户代理。在本文所描述的实施例中,标头会至少包含针对文档的标识符,该标识符会在服务器处唯一地标识文档。例如,标识符可以是通用唯一标识符(UUID)。

在一些情况下,标头可以包含针对服务器的标识符,该标识符用于存留针对文档的许可。例如,标头可以包含针对这样的服务器的嵌入的通用资源指示符(URI)。但是,除URI以外的其他标识符可以被提供。

用户侧的客户端可以关于用户的许可证而查询服务器,并且允许服务根据许可证打开数字源,从而允许或防止对数字源的动作。

执行图1至5的实施例的服务器或用户代理可以是任何计算设备、网络节点或元件,或者可以是计算设备、网络节点或元件的组合。例如,关于图6提供了可以执行上述实施例的一个简化的服务器。

在图6中,服务器610包括处理器620和通信子系统630,其中处理器620和通信子系统630协作以执行本文所描述的实施例的方法。

处理器620被配置为执行可编程逻辑,该可编程逻辑可以连同数据一起被存储在服务器610上,并且在图6的示例中被示为存储器640。存储器640可以是任何有形的非瞬态计算机可读存储介质,诸如DRAM、闪存、光学(例如CD、DVD等)、磁性(例如磁带)、闪存驱动器、硬盘驱动器或者本领域已知的其他存储器。在一个实施例中,处理器620也可以完全以硬件来被实现,并且不需要任何被存储的程序以执行逻辑功能。

备选地,或附加于存储器640,服务器610可以例如通过通信子系统630来访问来自外部存储介质的数据或可编程逻辑。

通信子系统630允许服务器610与其他设备或网络元件通信。

在一个实施例中,服务器610的各种元件之间的通信可以通过内部总线660。然而,其他形式的通信是可能的。

本文所描述的实施例是具有与本申请的技术的元素对应的元素的结构、系统或方法的示例。该书面描述可以使本领域技术人员能够制作和使用具有同样与本申请的技术的元素对应的备选元素的实施例。因此,本申请的技术的预期范围包括与本文所述的本申请的技术无异的其他结构、系统或方法,并且进一步包括与如本文所描述的本申请的技术具有非实质性差异的其他结构、系统或方法。

虽然操作以特定次序被描绘在附图中,但是这不应当被理解为要求这样的操作以所示出的特定次序或者顺序次序被执行,或者要求所有图示的操作被执行以达成期望的结果。在某些情形下,多任务和并行处理可以被采用。此外,上述实现中的各种系统组件的分离不应当被理解为在所有实现中都要求这种分离,并且应当理解,所描述的程序组件和系统一般可以被一起集成到单个软件产品中、或者被打包成多个软件产品。在一些情况中,功能可以完全在硬件中被执行,并且这样的解决方案可以是软件解决方案的功能等效体。

此外,在各种实现中被描述和图示为分立或分开的技术、系统、子系统和方法可以与其他系统、模块、技术或方法组合或集成。被显示或讨论为与彼此耦合或直接耦合、或者通信的其他项可以通过某个接口、设备或中间组件间接耦合或通信,无论是电力地、机械地还是以其他方式。改变、替换和更改的其他示例由本领域技术人员可确定并且可以被做出。

虽然以上具体实施方式已经示出、描述和指出了应用于各种实现的本公开的基本新颖特征,但是将理解,所示系统的形式和细节的各种省略、替换和改变可以由本领域技术人员做出。此外,方法步骤的次序不由它们在权利要求中出现的次序所暗示。

当向/从电子设备发送消息时,这样的操作可以不是立即的或者直接来自服务器的。它们可以从支持本文所描述的设备/方法/系统的服务器或其他计算系统基础设施同步或异步地被传送。前述步骤可以全部或部分地包括去往/来自设备/基础设施的同步/异步通信。此外,来自电子设备的通信可以是到网络上的一个或多个端点。这些端点可以由服务器、分布式计算系统、流处理器等服务。内容交付网络(CDN)也可以向电子设备提供通信。例如,除了典型的服务器响应之外,服务器还可以供给或指示针对内容交付网络(CDN)的数据以等待电子设备在稍后的时间(诸如电子设备的后续活动)下载。因此,数据可以直接从服务器或其他基础设施(诸如分布式基础设施或CDN)被发送,作为系统的部分或者与系统分离。

通常,存储介质可以包括以下任意或一些组合:半导体存储器设备,诸如动态或静态随机存取存储器(DRAM或SRAM)、可擦除可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)和闪存;磁盘,诸如固定磁盘、软盘和可移除磁盘;另一磁介质,包括磁带;光学介质,诸如光盘(CD)或数字视频盘(DVD);或者其他类型的存储设备。注意,以上所讨论的指令可以被提供在一个计算机可读或机器可读存储介质上,或者备选地可以被提供在分布在可能具有多个节点的大型系统中的多个计算机可读或机器可读存储介质上。这样的(多个)计算机可读或机器可读存储介质被认为是物品(或制品)的部分。物品(或制品)可以指任何被制造的单个组件或多个组件。(多个)存储介质可以或者位于运行机器可读指令的机器中,或者位于远程站点处,机器可读指令可以通过网络从该远程站点被下载用于执行。

在前述描述中,许多细节被阐述,以提供对本文所公开的主题的理解。然而,实现可以在没有这些细节中的一些细节的情况下被实践。其他实现可以包括对上述细节的修改和变化。所附权利要求旨在涵盖这种修改和变化。

相关技术
  • 数字权限管理客户端系统及方法和数字权限管理系统
  • 用于加密数字内容的数字权限管理的方法和系统
技术分类

06120113293654