CN101223549A - 根据多个许可证的聚集来操作的数字应用程序 - Google Patents

根据多个许可证的聚集来操作的数字应用程序 Download PDF

Info

Publication number
CN101223549A
CN101223549A CNA2006800255396A CN200680025539A CN101223549A CN 101223549 A CN101223549 A CN 101223549A CN A2006800255396 A CNA2006800255396 A CN A2006800255396A CN 200680025539 A CN200680025539 A CN 200680025539A CN 101223549 A CN101223549 A CN 101223549A
Authority
CN
China
Prior art keywords
license
licence
additional
attribute
father
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CNA2006800255396A
Other languages
English (en)
Inventor
N·张
R·S·艾泽霍夫
W-P·S·苏
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of CN101223549A publication Critical patent/CN101223549A/zh
Pending legal-status Critical Current

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

多个数字许可证对应于一段内容,这些许可证包括一基础许可证和至少一个附加许可证。每一附加许可证包括对该基础许可证的引用,且基础许可证和每一附加许可证中的每一个陈述了指定可如何采用该内容的规则。每一附加许可证通过其中对该基础许可证的引用来标识,且基础许可证和每一标识的附加许可证中的规则被聚集成一聚集规则集,评估该聚集规则集以确定该聚集规则集是否允许以特定方式来采用该内容。

Description

根据多个许可证的聚集来操作的数字应用程序
相关申请的交叉引用
本申请要求2005年7月14日提交的题为“HIERARCHY AND EVALUATIONOF ADD-ON LICENSES”(附加许可证的分层结构和评估)的美国临时专利申请第60/699,143号的优先权,该申请通过整体引用结合于此。
技术领域
本发明涉及根据数字许可证等中陈述的权限和条件在计算设备等上操作的数字应用程序等。更具体而言,本发明涉及被聚集以便实际上形成应用程序根据其来操作的规则和权限的超集的多个这样的许可证。
发明背景
权限管理和实施对于诸如数字应用程序等数字内容而言是高度需要的,其中这种数字应用程序要被分发到一个或多个用户。典型的分发模式包括诸如磁(软)盘、磁带、光(紧致)盘(CD)等有形设备,以及诸如电子公告板、电子网络、因特网等无形介质。在由用户在其计算设备上接收到之后,这一用户可在计算设备上的适当操作***的帮助下激活该应用程序。
通常,应用程序的作者和/或发布者希望将这一应用程序分发到多个用户或接收者的每一个以交换许可证费用或某种其它考虑事项。因此,在这种情形中,应用程序可以是文字处理应用程序、电子表格应用程序、浏览器应用程序、游戏应用程序、媒体播放器应用程序、其组合等等。这一作者/发布者或其它类似的实体(以下称为“发布者”)在得到机会后可能希望限制每一用户可以对这一发布的应用程序所做的动作。例如,发布者可能希望限制用户至少以拒绝给予发布者来自第二用户的许可证费用的方式将这一应用程序复制和再分发到该第二用户。
然而,在发生了发布之后,这一发布者对应用程序即使有,也只有极少的任何真实控制。这鉴于以下事实尤其成问题:实际上每一个人计算机都包括制作这一应用程序的精确数字副本、以及将这一精确数字副本下载到可写磁盘或光盘、或将这一精确数字副本通过诸如因特网等网络发送到任何目的地所需的软件和硬件。
当然,作为分发应用程序的交易的一部分,发布者可能要求应用程序的用户/接收者承诺不会以任何不受欢迎的方式再分发这一应用程序。然而,这种承诺是容易作出又很容易违背的。发布者可能试图通过通常涉及加密和解密的若干已知安全设备中的任一种来阻止这种再分发。然而,这极少阻止适度确定的用户解密已加密的应用程序、将这一应用程序以未加密形式保存、然后再分发该应用程序。
先前已提供了权限管理(RM)和实施体系结构和方法以允许对任意形式的数字应用程序的受控操作,其中这种控制是灵活的,且可由这一应用程序的发布者来定义。通常,提供一数字许可证来操作应用程序,其中应用程序在没有这一许可证的情况下不能用有意义的方式来启动。例如,情况可以是应用程序的至少一部分被加密,并且许可证包括用于解密这一加密部分的解密密钥。另外,情况可以是许可证被绑定到用户或其计算设备,并且这一计算设备包括确保遵守许可证的条款的安全特征。
这一数字许可证通常包括支配在计算设备上对相应应用程序的使用的一组权限和条件。由此,每一许可证陈述了授予对指定功能的特定权限的策略。因此,采用数字许可证,发布者可通过提供对应于不同权限的不同许可证来向用户提供关于应用程序的不同权限。例如,发布者可能希望以较高的价格来提供应用程序的全特征版本,并以较低的价格来提供基本版本。同样,发布者可能希望提供具有特定的第一特征的版本以及没有该特征的版本、具有特定的第二特征的版本以及没有该特征的版本、具有特定的第三特征的版本以及没有该特征的版本等等。
然而,注意,在现有技术中,因为应用程序中的权限的每种变化都需要完全独立的许可证,因此由于这些权限的任意组合的数目很容易是几十、几百和几千,并且每一任意的权限组合都需要单独的一种许可证,所以向用户提供权限的任意组合是一个难题。例如,希望提供具有五个二状态权限(例如,要么存在要么缺乏的权限)的应用程序的发布者必须准备2的5次幂,即32种不同类型的许可证。同样,希望提供具有四个二状态权限和两个三状态权限(例如存在、受限或缺乏的权限)的应用程序的发布者必须准备2的4次幂乘以3的2次幂,即144种不同类型的许可证。
因此,应当理解,应用程序的变化的复杂度越大,所导致的不同类型的许可证的数目也越大。然而,重要的是,对于这种应用程序的发布者而言,提供比有限数目更多类型,可能是大约十或三十的数量级的许可证即使不是不可能也是非常困难的。简言之,提供每种类型的许可证将要求发布者维护每一类型,包括在必要时的更新和修改,并且这种维护随着类型数目的增加很容易变为过于大量的任务。
因此,存在对应用程序等的发布者等可通过数字许可方案来向用户等提供任意权限组合的方法和机制的需求,其中最小化了表示这些权限的不同类型许可证的数目。具体地,存在对关于应用程序的特定权限或权限组由用于该应用程序的单独数字许可证来表示,并且用户获得这些许可证中的一个或多个来相应地获得由其集体表示的权限或权限组的这一方法和机制的需求。结果,最小化了用于应用程序的不同类型的许可证的数目。
发明概述
上述需求至少部分地由本发明来满足,在本发明中,提供了一种以特定方式在计算设备上采用一段数字内容的方法。在该方法中,获得对应于该内容的多个数字许可证,其中这多个许可证包括一基础许可证和至少一个附加许可证。每一附加许可证中包括对该基础许可证的引用,且基础许可证和每一附加许可证中的每一个陈述了指定如何可采用内容的规则。
标识基础许可证,并通过其中对基础许可证的引用来标识每一附加许可证,并且基础许可证和每一标识的附加许可证中的规则被聚集成一聚集规则集。然后评估该聚集规则集以确定该聚集规则集是否允许以特定方式采用内容,并且如果该聚集规则集允许则采用该内容。
附图简述
当结合附图阅读时,可以更好地理解以上概述以及以下本发明的各实施例的详细描述。出于图示本发明的目的,附图中示出了当前优选的实施例。然而,应当理解,本发明不限于所示的精确排列和手段。附图中:
图1是表示其中可实现本发明的示例性非限制计算环境的框图;
图2是表示具有其中可实现本发明的各种计算设备的示例性网络环境的框图;
图3是示出根据本发明的一个实施例的包括数字许可证的基于信任的***的一个示例的实施体系结构的框图;
图4是示出根据本发明的一个实施例的诸如图3的许可证等许可证分层结构的框图,其中该分层结构包括基础许可证和附加许可证;以及
图5是示出根据本发明的一个实施例的在聚集图4的分层结构的每一许可证中陈述的规则时执行的关键步骤的流程图。
发明详述
计算机环境
图1及以下讨论旨在提供对其中可实现本发明的合适的计算环境的简要概括描述。然而,应当理解,构想了所有种类的手持式、便携式和其它计算设备来结合本发明使用。尽管以下描述了通用计算机,但是这仅是一个示例,并且本发明只需具有网络服务器互操作性和交互的瘦客户机。由此,本发明可在其中蕴含了极少或最小客户机资源的联网的主存服务的环境,例如其中客户机设备仅用作浏览器或到万维网的接口的联网环境中实现。
尽管并非所需,但本发明可经由开发者使用的,和/或包括在网络浏览软件中的应用程序编程接口(API)来实现,该网络浏览软件将在诸如程序模块等由诸如客户机工作站、服务器或其它设备等一个或多个计算机执行的计算机可执行指令的一般上下文中描述。一般而言,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等等。通常,程序模块的功能可如各个实施例中所需地组合或分布。此外,本领域的技术人员可以理解,本发明可以用其它计算机***配置来实施。适用于本发明的其它众所周知的计算***、环境和/或配置包括但不限于,个人计算机(PC)、自动提款机、服务器计算机、手持式或膝上型设备、多处理器***、基于微处理器的***、可编程消费者电子设备、网络PC、小型机、大型计算机等等。本发明也可以在其中任务由通过通信网络或其它数据传输介质链接的远程处理设备来执行的分布式计算环境中实施。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
因此,图1示出了其中可实现本发明的合适的计算***环境100的一个示例,尽管如上所述,计算***环境100仅为合适的计算环境的一个示例,并非对本发明的使用范围或功能提出任何局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有任何依赖性或需求。
参考图1,用于实现本发明的示例性***包括计算机110形式的通用计算设备。计算机110的组件可包括但不限于,处理单元120、***存储器130以及将包括***存储器的各类***组件耦合至处理单元120的***总线121。***总线121可以是若干种总线结构的任一种,包括存储器总线或存储器控制器、***总线以及使用各类总线体系结构的任一种的局部总线。作为示例而非局限,这类体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线、以及***部件互连(PCI)总线(也称为背板(Mezzanine)总线)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是可由计算机110访问的任一可用介质,包括易失性和非易失性介质、可移动和不可移动介质。作为示例而非局限,计算机可读介质包括计算机存储介质和通信介质。计算机存储介质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失性和非易失性,可移动和不可移动介质。计算机存储介质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它介质。通信介质通常具体化为诸如载波或其它传输机制等已调制数据信号中的计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送介质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信介质包括有线介质,如有线网络或直接连线连接,以及无线介质,如声学、RF、红外和其它无线介质。上述任一的组合也应当包括在计算机可读介质的范围之内。
***存储器130包括易失性和/或非易失性存储器形式的计算机存储介质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出***133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,它通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问和/或当前正在操作的数据和/或程序模块。作为示例而非局限,图1示出了操作***134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失性/非易失性计算机存储介质。仅作示例,图1示出了对不可移动、非易失性磁介质进行读写的硬盘驱动器141,对可移动、非易失性磁盘152进行读写的磁盘驱动器151,以及对可移动、非易失性光盘156,如CD ROM或其它光介质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失性/非易失性计算机存储介质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字录像带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到***总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到***总线121。
上文讨论并在图1中示出的驱动器及其关联的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图1中,示出硬盘驱动器141储存操作***144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作***134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作***144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如键盘162和定点设备161(通常指鼠标、跟踪球或触摸垫)向计算机110输入命令和信息。其它输入设备(未示出)可包括话筒、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至***总线121的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。
监视器191或其它类型的显示设备也通过接口,如视频接口190连接至***总线121。诸如北桥(Northbridge)等图形接口182也可连接到***总线121。北桥是与CPU或主机处理单元120通信的芯片组,并承担了加速图形端口(AGP)通信的责任。一个或多个图形处理单元(GPU)184可以与图形接口182通信。在这一点上,GPU 184一般包括诸如寄存器存储等片上存储器存储,并且GPU 184与视频存储器186通信。然而,GPU 184仅是协处理器的一个示例,且因此计算机110中可包括各种协处理设备。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至***总线121,而视频接口190又与视频存储器186通信。除监视器191之外,计算机也可包括其它***输出设备,如扬声器197和打印机196,它们通过输出***接口195连接。
计算机110可以使用到一个或多个远程计算机,如远程计算机180的逻辑连接在网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它常见的网络节点,并通常包括许多或所有相对于计算机110所描述的元件,尽管在图1中仅示出了存储器存储设备181。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或用于通过WAN 173,如因特网建立通信的其它装置。调制解调器172可以是内置或外置的,它通过用户输入接口160或其它适当的机制连接至***总线121。在网络化环境中,相对于计算机110所描述的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图1示出远程应用程序185驻留在存储器设备181上。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它手段。
本领域的普通技术人员可以理解,计算机110或其它客户机设备可作为计算机网络的一部分来部署。在这一点上,本发明涉及具有任意数量的存储器或存储单元以及在任意数量的存储单元或卷上发生的任意数量的应用程序和进程的任何计算机***。本发明可应用于具有部署在具有远程或本地存储的网络环境中的服务器计算机和客户机计算机的环境。本发明也可应用于具有编程语言功能、解释和执行能力的独立计算设备。
分布式计算便于通过计算设备和***之间的直接交换共享计算机资源和服务。这些资源和服务包括信息交换、高速缓存存储和文件的盘存储。分布式计算利用了网络连接,从而允许客户机充分利用其集体能力来有益于整个企业。在这一点上,各种设备可具有可交互以蕴含用于可信图形流水线的本发明的认证技术的应用程序、对象或资源。
图2提供了示例性网络化或分布式计算环境的示意图。分布式计算环境包括计算对象10a、10b等,以及计算对象或设备110a、110b、110c等。这些对象可包括程序、方法、数据存储、可编程逻辑等等。这些对象可包括诸如PDA、电视机、MP3播放器、电视机、个人计算机等的相同或不同设备的各部分。每一对象可通过通信网络14与另一对象通信。该网络本身可包括向图2的***提供服务的其它计算对象和计算设备。根据本发明的一个方面,每一对象10或110可包含可以请求用于可信图形流水线的本发明的认证技术的应用程序。
可以理解,诸如110c等对象可以主存在另一计算设备10或110上。由此,尽管所描述的物理环境可以将连接的设备示为计算机,然而这一说明仅是示例性的,并且该物理环境可替换地被描绘或描述为包括诸如PDA、电视机、MP3播放器等各种数字设备,诸如接口、COM对象等的软件对象。
有各种支持分布式计算环境的***、组件和网络配置。例如,计算***可以通过有线或无线***、局域网或广泛分布的网络连接在一起。当前,许多网络耦合至因特网,后者为广泛分布的计算提供了基础结构并包含许多不同的网络。
在家庭网络环境中,有至少四个全异的网络传输媒体,其每一个可支持一种唯一的协议,这些媒体如电力线、数据(无线和有线)、语音(如,电话)和娱乐媒体。诸如电灯开关和电器设备等大多数家庭控制设备可使用电力线来连接。数据服务可通过宽带(如,DSL或电缆调制解调器)进入家庭,并可在家庭内使用无线(如,HomeRF或802.11B)或有线(如,家庭PNA、Cat 5、甚至是电力线)连接来访问。语音话务可通过有线(如,Cat 3)或无线(如,蜂窝电话)进入家庭,并可在家庭中使用Cat 3连线来分布。娱乐媒体可通过卫星或电缆进入家庭,并通常在家庭中使用同轴电缆来分布。IEEE 1394和DVI也作为用于媒体设备群集的数字互联而浮现。可作为协议标准浮现的所有这些网络环境和其它环境可被互联来形成可通过因特网连接到外部世界的内联网。简言之,存在各种全异的源用于数据的存储和传输,并因此向前发展,计算设备需要走在数据处理流水线的所有部分处保护内容的方式。
因特网通常指使用TCP/IP协议套件的网络和网关的集合,该协议在计算机联网领域中是公知的。TCP/IP是“传输控制协议/互联网协议”的缩写。因特网可被描述为由执行允许用户通过网络交互和共享信息的联网协议的计算机互连的地理上分布的远程计算机网络的***。由于这类广泛分布的信息共享,诸如因特网等远程网络至今发展成一种开放式***,开发者可对该开放式***设计用于执行专用操作或服务的应用程序,在本质上没有限制。
由此,网络基础结构启用了诸如客户机/服务器、对等或混合体系结构等大量网络拓朴结构。“客户机”是使用它所不相关的另一类或组的服务的类或组的成员。由此,在计算时,客户机是进程,即,粗略地而言是一组请求由另一程序提供的服务的指令或任务。客户机进程使用所请求的服务,而无需“知道”关于其它程序或服务本身的任何工作细节。在客户机/服务器体系结构中,尤其是网络化***中,客户机通常是访问由另一计算机,如服务器提供的共享网络资源的计算机。在图2的示例中,计算机110a、110b等可以被认为是客户机,而计算机10a、10b等可以被认为是服务器,其中服务器10a、10b等维护随后在客户机计算机110a、110b等中复制的数据。
服务器通常是可通过远程网络,如因特网访问的远程计算机***。客户机进程可以在第一计算机***中为活动,而服务器进程可以在第二计算机***中活动,它们通过通信介质彼此通信,由此提供了分布式功能并允许多个客户机利用服务器的信息收集能力。
客户机和服务器可使用由协议层提供的功能彼此通信。例如,超文本传输协议(HTTP)是一种结合万维网(WWW)使用的常见协议。通常,计算机网络地址,如统一资源定位符(URL)或互联网协议(IP)地址,可用于彼此标识服务器或客户机计算机。网络地址可被称为统一资源定位符地址。例如,通信可在通信介质上提供。具体地,客户机和服务器可经由TCP/IP连接彼此耦合以进行高性能通信。
由此,图2示出了其中可采用本发明的具有通过网络/总线与客户机计算机通信的服务器的示例性网络化或分布式环境。更详细地,根据本发明,多个服务器10a、10b等经由通信网络/总线14互连,通信网络/总线14可以是LAN、WAN、内联网、因特网等,它具有多个客户机或远程计算设备110a、110b、110c、110d、110e等,如便携式计算机、手持式计算机、瘦客户机、联网设备或其它设备,如VCR、TV、烤箱、灯、加热器等等。由此,构想本发明可应用于任何计算设备,期望结合这些设备来处理、储存或呈现来自可信源的安全对象。
例如,在其中通信网络/总线14是因特网的网络环境中,服务器10可以是客户机110a、110b、110c、110d、110e等通过诸如HTTP等多种已知协议中的任一种与其通信的web服务器。服务器10也可用作客户机110,这可以是分布式计算环境的特征。通信可以在适当时是有线或无线的。客户机设备110可以通过或不通过通信网络/总线14通信,并可具有与其相关联的独立通信。例如,在TV或VCR的情况下,可以有或没有其控制的网络化方面。每一客户机计算机110以及服务器计算机10可以具备各种应用程序模块或对象135,并具有对各种类型的存储元件或对象的连接或访问,在这些存储元件或对象上可储存文件,或者可向其下载或迁移文件的各部分。由此,本发明可以用于具有可访问计算机网络/总线14或与其交互的客户机110a、110b等,以及可与客户机计算机110a、110b等交互的服务器计算机10a、10b等,以及其它类似的设备111和数据库20的计算机网络环境中。
权限管理(RM)综述
如已知的,并且现在参考图3,权限管理(RM)和实施对于要分发给用户的数字应用程序32或其它内容32而言是高度需要的。在用户接收到之后,该用户在适当计算设备34等的帮助下实例化应用程序32。
通常,分发这一数字应用程序32的应用程序作者或发布者(以下称为“发布者”)44希望限制用户可对该分发的应用程序32能做的动作。例如,发布者44可能希望限制用户将这一应用程序32复制和再分发到第二用户,或可能希望允许所分发的应用程序32仅被启动有限次数、或仅启动特定的总时间、仅在特定类型的机器上启动、仅在特定类型的呈现平台上启动、仅由特定类型的用户启动等等。
然而,在发生了分发之后,该发布者44对应用程序32即使有,也只有极小的控制。因此,RM***40允许对应用程序32的受控启动,其中这一控制是灵活的,并且可由该应用程序32的发布者44定义。通常,应用程序32以包33的形式通过任何适当的分发渠道被分发给用户。所分发的包33可包括用对称加密/解密密钥(KD)加密的应用程序32或其一部分(即,(KD(AP))),以及标识应用程序32、如何获取用于该应用程序32的许可证等的其它信息。
基于信任的RM***30允许应用程序32或另一应用程序的发布者指定在允许该应用程序32在用户的计算设备34上启动之前必须满足的规则。这一许可证规则例如可包括上述时间要求和/或次数要求等等,并且还可陈述用户对于应用程序32所具有的权限,诸如打印或复制的能力和/或使用应用程序32的特定特征的能力等等。无论如何,这些规则可被包含在用户/用户的计算设备34(这些术语可互换使用,除非环境有另外的要求)必须从发布者或其代理获得的数字许可证或使用文档(以下称为“许可证”)36中。这一许可证36还包括用于解密应用程序32的已加密部分的解密密钥(KD),该部分可能是根据可由用户的计算设备34解密的密钥来加密的。如可从图3中见到的,这一加密密钥可以是用户的计算设备34的公钥(PU-BB),并且可假定用户的计算设备34具有可用于解密(PU-BB(KD))的相应私钥(PR-BB)。
应用程序32的发布者44可信任用户的计算设备34将遵守由该发布者44在许可证36中指定的规则,即,除非满足了许可证36中的规则,否则应用程序32不会被启动,并且仅准许用户采用规则中所述的权限。因此,较佳的是,向用户的计算设备34提供一可信组件或机制38,它除了根据与应用程序32相关联的并由用户获得的许可证36中所包含的许可证规则之外,不会启动应用程序32。
可信组件38通常具有许可证评估器40,它确定许可证36是否有效,审阅该有效许可证36中的许可证规则,并基于所审阅的许可证规则来确定作出请求的用户是否具有以所寻求的方式启动相应的应用程序32的权限等。应当理解,许可证评估器40在RM***30中是可信的,以根据许可证36中的规则来实现应用程序32的发布者44的愿望,并且用户不应能够出于不论是恶意还是其它的任何目的来轻易地更改这些可信元件。
应当理解,许可证36中的规则可基于若干因素中的任一个来指定用户是否具有启动应用程序32的权限,这些因素包括用户是谁、用户在何处、用户使用什么类型的计算设备34、什么操作***正在调用RM***30、日期、时间等。另外,许可证36的规则可将许可证36限于例如预定次数的启动、或预定的操作时间。由此,可信组件38可能需要参考计算设备34上的时钟42。
规则可根据任何适当的语言和句法在许可证36中指定。例如,语言可以简单地指定必须满足的属性和值(例如,DATE(日期)必须晚于X),或可要求根据指定脚本的函数执行(例如,IF DATE大于X,THEN DO...)。
在许可证评估器40确定许可证36有效并且用户满足其中的规则之后,可启动应用程序32或其相关部分。具体地,为启动应用程序32,从许可证36获得解密密钥(KD),并将其应用于来自包33的(KD(AP))以得到实际应用程序32,并且然后实际上以许可证36中所述的方式来启动实际应用程序32。
如上所述,具有(PU-BB(KD))的许可证36实际上授权拥有(PR-BB)的实体访问(KD),且由此访问根据这一(KD)加密的应用程序32,当然要假设该实体遵守许可证36中所述的所有条件。然而,应当理解,在RM***30内可存在其它类型的许可证36。
例如,可以理解,在一种情形中,应用程序32的发布者44可授权一个或多个特定许可证发放者46通过提供具有发布许可证36p的许可证发放者46来发放用于应用程序32的许可证36。可以理解,这一发布许可证36p类似于许可证36,这表现在该发布许可证36p同样包括用于解密此处根据许可证46的公钥(PU-BB)加密的应用程序32的解密密钥(KD)。同样,发布许可证36p同样包括用于呈现内容32的规则。然而,此处,这些规则要被***到由许可证发放者46发放的许可证36中,并且不是特别适用于该许可证发放者46。
然而,注意,发放许可证36p可以实际上包括实际适应于许可证发放者46的其它规则。因此,许可证发放者46应以类似于用户的计算设备34的方式随许可证评估器40包括一可信组件38。重要的是,所提供的每种类型的许可证36、36p等(以下称为“许可证36”)通常包括用于认证/验证目的的数字签名,并且每一数字签名在兑现许可证36之前由可信组件38确认。当然,如果任何确认失败,则该过程结束并且不兑现许可证36。
在单独类型的许可证36中聚集权限
如上所述,发布者44可能希望向用户提供单独购买关于特定应用程序32等的不同权限集的灵活性,由此用户可按需累积并聚集不同的权限集以用所寻求的方式来操作应用程序。例如,发布者44可能希望与第二种类型的许可证36中的复制权限分离地在第一种类型的许可证36中提供打印权限,并且同样可能希望在第三种类型的许可证36中提供在扬声器上播放声音以及在监视器上播放视频这两种权限,并且还可能希望在第四种类型的许可证36中提供一最小权限集。由此,要以最小方式操作应用程序32的用户将获得第四种类型的许可证36,并且如有所需,当需要或期望相应的权限时,将获得和“附加”关于第一、第二和第三种类型的许可证中的任一个或全部。
因此,应当理解,在本发明中,应用程序32在任一时刻根据一个或多个许可证36中所述的权限来操作,其中许可证36中的权限和其它规则实际上被聚集以形成关于应用程序32的规则和权限的超集。这一聚集的规则和权限的超集与现有技术的不同,在现有技术中,应用程序32在任一时刻基于一个且仅一个许可证36来操作。
作为一个更具体的示例,考虑这样一个实例:应用程序32被安装在计算设备34上,该计算设备34包括一基本启动或“基础”许可证36,该许可证向计算设备34处的应用程序32的用户提供了基本权限,诸如实例化应用程序32的权限、操作应用程序32的基本功能的权限、以及从应用程序32打印的权限,但没有提供其它权限,诸如将数据从应用程序32复制到别处的权限。另外,基础许可证36可以旨在在不购买应用程序32的情况下向用户给出其预览,但仅可预览15天的时限。在这一情况下,许可证36可以至少概念上看似如下:
<基础许可证>
...
<权限>
   <实例化>是</实例化>
      <条件>
      ...
      </条件>
<基本功能>是</基本功能>
      <条件>
      …
        </条件>
     <打印>是</打印>
        <条件>
         ...
        </条件>
 <权限>
 ...
 <到期日>
     <首次使用后的天数>15</首次使用后的天数>
 </到期日>
 ...
 <分层结构>
     <家族id>基础</家族id>
     <父>[空]</父>
 </分层结构>
...
</基础 许可证>
注意,以上基础许可证36仅以肯定的方式陈述了权限,因此没有陈述未提供的权限,诸如复制数据的权限。然而,这些权限可以改为以肯定和否定的方式来陈述而不脱离本发明的精神和范围。
更重要的是,注意,除了权限信息和到期日信息之外,以上基础许可证36还陈述了分层结构信息,包括设为“基础”的家族id属性和设为空的父属性。在本发明的一个实施例中,采用这种家族和基础属性来定义以上基础许可证36在一许可证36的分层结构内的位置,这些许可证集体地实际上可被组合以聚集其中的规则。具体地,采用家族id属性“基础1来将以上基础许可证36标识为“基础”,而空父属性示出“基础”没有父并且因此是基础许可证36。
因此,采用以上基础许可证36,作为一个实例,如果在应用程序32的预览的15天之后的某一点处,用户希望获得使用应用程序32一年的权限,则该用户可获得包含作为对基础许可证36的附加的权限的适当许可证36,其中这一“附加”许可证36中所述的权限实际上要被附加到基础许可证36中所述的权限:
<附加A许可证>
<权限>
   [空]
<权限>
...
<到期日>
   <首次使用后的天数>365</首次使用后的天数>
</到期日>
...
<分层结构>
   <家族id>附加A</家族id>
   <父>基础</父>
</分层结构>
...
</附加A许可证>
注意,以上附加A许可证36没有陈述任何附加权限,而是仅陈述了应用程序32的到期日现在是对这一附加A许可证36的首次使用后的365天,即一年。还要注意,附加A许可证36陈述了分层结构信息,该信息包括设为“附加A”的家族id属性以及设为基础的父属性。由此,采用家族id属性“附加A”来将附加A许可证36标识为“附加A”,并且父属性“基础”示出被标识为“基础”的基础许可证36是附加A许可证36的父。
以类似的方式,如果在某一点处用户希望获得前述复制权限,则该用户可获得包含这一权限作为对基础许可证36的附加的另一适当许可证36,其中这一“附加”许可证36中所述的权限集实际上要被附加到基础许可证36中所述的权限集:
<附加B许可证>
...
<权限>
   <复制>是</复制>
      <条件>
      ...
      </条件>
<权限>
<到期日>
   [空]
</到期日>
...
<分层结构>
   <家族id>附加B</家族id>
   <父>基础</父>
</分层结构>
...
</附加B许可证>
注意,以上附加B许可证36仅陈述了复制权限而没有对到期日作出任何改变。还要注意,附加B许可证36陈述了分层结构信息,该信息包括被设为“附加B”的家族id属性,以及被设为基础的父属性。由此,采用家族id属性“附加B”来将附加B许可证36标识为“附加B”,并且父属性“基础”示出被标识为“基础”的基础许可证36是附加B许可证36的父。
同样,以类似的方式,如果在某一点处用户希望获得使用应用程序32十年的权限,则该用户获得包含这一权限作为对附加A许可证36的附加的适当许可证36,其中这一“附加”许可证36中所述的权限实际上要被附加到基础许可证36和附加A许可证36中所述的权限:
<附加C许可证>
...
<权限>
   [空]
<权限>
...
<到期日>
    <首次使用后的年数>10</首次使用后的年数>
</到期日>
...
<分层结构>
   <家族id>[空]</家族id>
   <父>附加A</父>
</分层结构>
</附加C许可证>
注意,以上附加C许可证36没有陈述附加权限,而是仅陈述了应用程序32的到期日现在是该附加C许可证36的首次使用后的十年。还要注意,附加A许可证36陈述了分层结构信息,该信息包括空家族id属性和设为附加A的父属性。由此,空家族id属性防止附加C许可证36在该分层结构内被标识,其结果是没有其它许可证36可将其用作父,而父属性“附加A”示出被标识为“基础”的基础许可证36是附加C许可证36的父。
可以理解,基于所有上述许可证36中的分层结构信息,可形成一表示这些许可证36的总体分层结构的树,如图4所示。该树和由其表示的分结构提供了至少两个特征。首先,该分层结构内的每一许可证36只能在许可证36为父并且该许可证36的父子关系存在时被采用,由此一路回到基础许可证36。由此,作为一个示例,如果用户获得了基础许可证36和附加C许可证36而没有附加A许可证36,则该附加C许可证36将不可操作,因为它没有通过附加A许可证36链接到基础许可证36。
其次,许可证36在该分层结构内的位置可用于协商这些许可证36中的规则和权限之间的冲突。例如,情况可以是分层结构内的一个许可证36特别地提供了一特定权限,而该分层结构内的另一许可证36特别地拒绝了该特定权限。在这一情况下,许可证36之间的冲突可根据至少部分地取决于许可证36在该分层结构内各自的位置的预定冲突规则来解决。例如,这些规则可规定子许可证36取代父许可证36,或较年轻的兄弟许可证36取代较老的兄弟许可证36。如可以理解的,这种冲突规则可以是任何适当的冲突规则而不会脱离本发明的精神和范围。这种冲突规则一般对相关公众是已知的,并且因此无需在此详细描述。
如现在可以理解的,通过以如上所述的方式使用基础许可证36和附加许可证36,发布者44或许可证发放者46等可用一个或多个附加许可证36中的附加或更改的规则和权限来修改特定的基础许可证36所授予的规则和权限。此处要注意,这一修改除了添加和以其它方式改变现有权限之外,可包括撤消、限制、移除、删除以及以其它方式影响权限。因此,采用附加许可证36可在稍后的时间单独分发/销售/提供应用程序32或其它内容32的新功能,而没有必须再分发应用程序32或许可证36的大量时间和花费。
一般而言,附加许可证36可修改任何先前的生成(父、祖父等)许可证6的任何规则,包括其中所述的任何权限和条件,而不会脱离本发明的精神和范围。例如,情况可以是基础许可证36授予了仅采用最小成本的、以及在相对较短的使用时间内的相对基本的权限,并且仅允许使用计算设备34上的有限量的存储器。在这些情况下,基础许可证36的一个或多个可用附加许可证36可将授予的权限扩展到相对较宽的范围,基础许可证36的一个或多个可用附加许可证36可扩展使用时间段,并且基础许可证36的一个或多个可用附加许可证36可扩展要使用的存储器量。当然,其它附加许可证36可提供这些权限的组合。
注意,在诸如图4所示的许可证36的任何分层结构内,可能有一个以上基础许可证36可用。因此,情况可以是附加许可证36指定一个以上父。在这一情况下,情况可以是分层结构中仅基础许可证36及其附加许可证36被选中用于应用程序32。或者,情况可以是选择该分层结构中的一个以上或全部基础许可证36及其附加许可证36来用于应用程序32。
还要注意,附加许可证36可在受该附加许可证36中包含的解密密钥(KD)保护的应用程序32内实行权限,或者可在受该附加许可证36的先前的生成许可证36中包含的解密密钥(KD)保护的应用程序32内实行权限。尤其是,在后一情况下,可以理解,存在恶意实体将其自己设计的“欺诈”附加许可证36***到许可证36的分层结构中的可能,其中欺诈附加许可证36将用于扩展该先前的生成许可证36中所述的权限。
因此,在本发明的一个实施例中,分层结构中的每一许可证36根据引导回该恶意实体正常情况下不能访问的根授权机构的公钥来数字地签署。由此,恶意实体应当不能以从这一根授权机构开始延伸的证书链来获得数字证书,并且不能基于该数字证书来签署欺诈附加许可证36。因此,确认诸如图4所示的分层结构中的每一许可证36时的一步是验证该许可证36的签名基于从该根授权机构开始延伸的证书链而得到确认。
在本发明的一个实施例中,该分层结构中的每一许可证根据引导回单个根授权机构的公钥来数字地签署,并且实际上每一所发放的这样的许可证36具有对应的公钥-私钥对。因此,在这一实施例中,采用父许可证36的私钥来数字地签署其每一子许可证36,并且每一这样的子许可证36的数字签名由此根据其父许可证36的公钥而得到确认。因此,这一公钥应当被包括在该父许可证36内。相应地,确认诸如图4所示的分层结构中的每一许可证36包括获得该许可证36的父许可证36的公钥,并采用所获得的公钥来确认该许可证36的数字签名。
现在转向图5,根据本发明的一个实施例示出了用于采用诸如来自图4的分层结构的基础许可证36以及从其扩展的附加许可证36的一种可能的方法。最初,在计算设备34处通过接收对要在该计算设备34上实例化或用其它方式呈现或采用的应用程序32等的选择而在计算设备34处模拟这一方法(步骤501)。计算设备34将注意到应用程序32等是受RM保护的,且因此将采用图3的可信组件38等来获得批准和协助以实际上启动所选应用程序32。
由此,基于所选的应用程序32,可信组件38将从相关联的许可证存储等(未示出)中标识其中对应于该所选的应用程序32的每一许可证(步骤503),其中所标识的许可证36可能包括至少一个基础许可证36和一个或多个附加许可证36。注意,这一标识可用任何适当的方式来执行而不会脱离本发明的精神和范围。例如,应用程序32可以用特定的参考ID来标记,并且每一对应的许可证36也包含该参考ID。
无论如何,采用所有标识的许可证36,可信组件38然后组装诸如图4的树以建立所标识的许可证36之间的分层关系。具体地,可信组件38从所标识的许可证36中标识每一基础许可证36(步骤505),选择所标识的基础许可证36之一(步骤507),然后确认所选的基础许可证(步骤509)。如可以理解的,如在步骤507处从多个这样的基础许可证36中选择基础许可证36可用任何适当的方式来执行而不会脱离本发明的精神和范围。例如,该选择可基于所标识的基础许可证36的某一次序,诸如基于其中包括的发放数据、其中包括的许可证ID、其中包括的优先级值等。类似地,如在步骤509处确认所选的基础许可证36也可用任何适当的方式来执行而不会脱离本发明的精神和范围。例如,这一确认可包括检查其数字签名是否得到确认、许可证36是否过期、以及是否满足使用许可证36的任何条件。
如果所选的基础许可证36没有在步骤509处得到确认,则控制返回到步骤507,选择另一标识的基础许可证36。然而,假定所选的基础许可证36在步骤509处的确得到确认,则将所选基础许可证36中所述的规则和权限聚集成一聚集许可证36的表示(步骤511)。如可以理解的,这一表示将包含来自被发现为在所组装的分层树中的所有许可证36的权限和规则。
之后,该方法通过在所确认的基础许可证36内标识家族属性(如果有)的值(步骤513)来继续。因此,基于所标识的家族属性值,可信组件38标识对应于所选应用程序32并具有所标识的家族属性值作为父属性值的每一附加许可证36(步骤515)。如可以理解的,每一这样标识的附加许可证在步骤509处得到确认(步骤517),并且假定确认成功,将附加许可证36中所述的规则和权限聚集成聚集许可证36的表示(步骤519)。如上所述,在如此聚集的过程中,根据至少部分地取决于许可证36在该分层结构中各自的位置的预定冲突规则来协商多个许可证36中的规则和权限之间的冲突。
现在应当理解,该方法在必要时对于每一确认的附加许可证重复。具体地,对每一如此确认的附加许可证,该方法通过如步骤513处在所确认的附加许可证36内标识家族属性(如果有)的值来继续。然后,基于所标识的家族属性值,可信组件38再次如步骤515处那样标识对应于所选应用程序并具有所标识的家族属性值作为父属性值的每一附加许可证36,如步骤509和517处那样确认每一如此标识的附加许可证,并且假定确认成功,如步骤519处那样将附加许可证36中所述的规则和权限聚集成聚集许可证36的表示。由此,应当理解,该方法对每一确认的附加许可证36迭代所需的次数,以及所需的分层树的层次,直到完全形成分层树并且完全形成聚集许可证36的表示。一旦完全形成,则由许可证评估器40评估该聚集许可证36的表示以确定关于应用程序32所寻求的每一动作是否被准许(步骤521)。
注意,在根据图5的方法形成许可证36的分层树的过程中,如果在步骤509和517处父许可证36无法得到确认,则该父许可证36的所有子许可证36以及实际上该父许可证36的所有未来生成都不被考虑。由此,如果许可证A具有子许可证B并且子许可证B进而具有子许可证C,则A的确认失败实际上使得B和C也无效。同样,如果A得到确认但是B没有得到确认,则B的确认失败实际上使得C也无效,但是A仍有效。
还要注意,在本发明的一个实施例中,许可证36可指定一个以上父许可证36。如果是这样,则情况可以是一个父得到确认,而其它父没有得到确认,其结果是许可证36通过确认的父而非无效的父来到达。同样,情况可以是所有父许可证都必须得到确认以到达许可证36,或者可采用更复杂的逻辑规则。在后一情况下,这些逻辑规则可以在许可证36的适当部分中陈述。作为该逻辑规则的一个示例,许可证可指定必须被如下确认的父许可证的组合:
(许可证A或许可证B)且(许可证C且(许可证D或许可证E))
在这一情况下,适当的父候选许可证必须在发放时根据许可证36的逻辑表达式来确认以便被评估。
结论
实现结合本发明执行的过程所需的程序设计是相对直截了当的,并且应当为相关程序设计公众所明白。因此,这一程序设计没有被附加于此。因此,可采用任何特定的程序设计来实现本发明而不会脱离其精神和范围。
在本发明中,应当理解,可对上述实施例作出改变而不脱离其发明概念。更值得注意的是,尽管本发明是按照用于数字应用程序32的许可证36来陈述的,但是这一许可证36也可用于任何其它形式的数字内容32,包括但不限于音频内容、视频内容、文本内容、流内容、多媒体内容等。因此,应当理解,本发明不限于所公开的具体实施例,而是旨在覆盖落入所附权利要求书定义的本发明的精神和范围之内的修改。

Claims (18)

1.一种以特定方式在计算设备上采用一段数字内容的方法,所述方法包括:
获得对应于所述内容的多个数字许可证,所述多个数字许可证包括一基础许可证和至少一个附加许可证,每一附加许可证中包括对所述基础许可证的引用,所述基础许可证和每一附加许可证中的每一个陈述了指定可如何采用所述内容的规则;
标识所述基础许可证;
通过其中对所述基础许可证的引用来标识每一附加许可证;
将所述基础许可证和每一所标识的附加许可证中的规则聚集成一聚集规则集;
评估所述聚集规则集以确定该聚集规则集是否允许以所述特定方式来采用所述内容;以及
如果所述聚集规则集如此允许,则采用所述内容。
2.如权利要求1所述的方法,其特征在于,所述基础许可证中包括一家族id属性,且每一附加许可证中包括一父属性,所述基础许可证的家族id属性标识了一许可证分层结构内的基础许可证,并且每一附加许可证的父属性将所述基础许可证标识为所述附加许可证的分层父,所述方法包括通过确定所述基础许可证的家族id属性的特定值并定位其父属性被设为所述基础许可证的家族id属性的特定值的每一附加许可证来标识每一附加许可证。
3.如权利要求1所述的方法,其特征在于,所述基础许可证和每一附加许可证中的每一个中都包括一家族id属性和一父属性,所述家族id属性标识了所述许可证,而所述父属性标识了所述许可证的任何分层父以定义所述许可证在一许可证分层结构内的位置,所述方法包括通过其父属性被设为空值的基础许可证来标识所述基础许可证,并通过确定所述基础许可证的家族id属性的特定值并定位其父属性被设为所述基础许可证的家族id属性的特定值的每一附加许可证来标识每一附加许可证。
4.如权利要求1所述的方法,其特征在于,评估所述聚集规则集来确定该聚集规则集是否允许以所述特定方式来采用所述内容包括采用预定冲突规则来协商来自冲突许可证的规则之间的任何冲突,所述冲突规则至少部分地基于所述冲突许可证在一许可证分层结构内的各自的位置来解决每一冲突。
5.如权利要求1所述的方法,其特征在于,所述内容是根据包含在至少一个所述许可证内的解密密钥(KD)来加密和解密的,所述方法包括通过从包含(KD)的所述许可证中检索(KD)并用(KD)来解密所述内容来采用所述内容。
6.如权利要求1所述的方法,其特征在于,每一许可证包括根据引导回一公共根授权机构的公钥产生的数字签名,所述方法还包括基于从这一公共根授权机构开始延伸的证书链来验证每一许可证的签名得到确认。
7.如权利要求1所述的方法,其特征在于,每一附加许可证是第一级附加许可证,所述方法包括:
获得对应于所述内容的多个数字许可证,所述多个许可证包括一基础许可证、至少一个第一级附加许可证、以及至少一个第二级附加许可证,每一第一级附加许可证中包括对所述基础许可证的引用,每一第二级附加许可证中包括对所述第一级附加许可证之一的引用,所述基础许可证和每一附加许可证中的每一个陈述了指定可如何采用所述内容的规则;
标识所述基础许可证;
通过其中对所述基础许可证的引用来标识每一第一级附加许可证;
通过其中对所述第一级附加许可证之一的引用来标识每一第二级附加许可证;
将所述基础许可证和每一标识的附加许可证中的规则聚集成一聚集规则集;
评估所述聚集规则集以确定该聚集规则集是否允许以所述特定方式来采用所述内容;以及
如果所述聚集规则集如此允许,则采用所述内容。
8.如权利要求7所述的方法,其特征在于,所述基础许可证和每一附加许可证中的每一个中都包括一家族id属性和一父属性,所述家族id属性标识了所述许可证,而所述父属性标识所述许可证的任何分层父以定义所述许可证在一许可证分层结构内的位置,所述方法包括通过其父属性被设为空值的基础许可证来标识所述基础许可证,通过确定所述基础许可证的家族id属性的特定值并定位其父属性被设为所述基础许可证的家族id属性的特定值的每一附加许可证来标识每一第一级附加许可证,以及通过确定每一第一级附加许可证的家族id属性的特定值并定位其父属性被设为所述第一级附加许可证中任一个的家族id属性的特定值的每一附加许可证来标识每一第二级附加许可证。
9.如权利要求7所述的方法,其特征在于,评估所述聚集规则集来确定该聚集规则集是否允许以所述特定方式来采用所述内容包括采用预定冲突规则来协商来自冲突许可证的规则之间的任何冲突,所述冲突规则至少部分地基于所述冲突许可证在一许可证分层结构内的各自的位置来解决每一冲突。
10.一种其上储存有计算机可执行指令的计算机可读介质,所述指令实现一种以特定方式在计算设备上采用一段数字内容的方法,所述方法包括:
获得对应于所述内容的多个数字许可证,所述多个数字许可证包括一基础许可证和至少一个附加许可证,每一附加许可证中包括对所述基础许可证的引用,所述基础许可证和每一附加许可证中的每一个陈述了指定可如何采用所述内容的规则;
标识所述基础许可证;
通过其中对所述基础许可证的引用来标识每一附加许可证;
将所述基础许可证和每一所标识的附加许可证中的规则聚集成一聚集规则集;
评估所述聚集规则集以确定该聚集规则集是否允许以所述特定方式来采用所述内容;以及
如果所述聚集规则集如此允许,则采用所述内容。
11.如权利要求10所述的介质,其特征在于,所述基础许可证中包括一家族id属性,且每一附加许可证中包括一父属性,所述基础许可证的家族id属性标识了一许可证分层结构内的基础许可证,并且每一附加许可证的父属性将所述基础许可证标识为所述附加许可证的分层父,所述方法包括通过确定所述基础许可证的家族id属性的特定值并定位其父属性被设为所述基础许可证的家族id属性的特定值的每一附加许可证来标识每一附加许可证。
12.如权利要求10所述的介质,其特征在于,所述基础许可证和每一附加许可证中的每一个中都包括一家族id属性和一父属性,所述家族id属性标识了所述许可证,而所述父属性标识了所述许可证的任何分层父以定义所述许可证在一许可证分层结构内的位置,所述方法包括通过其父属性被设为空值的基础许可证来标识所述基础许可证,并通过确定所述基础许可证的家族id属性的特定值并定位其父属性被设为所述基础许可证的家族id属性的特定值的每一附加许可证来标识每一附加许可证。
13.如权利要求10所述的介质,其特征在于,评估所述聚集规则集来确定该聚集规则集是否允许以所述特定方式来采用所述内容包括采用预定冲突规则来协商来自冲突许可证的规则之间的任何冲突,所述冲突规则至少部分地基于所述冲突许可证在一许可证分层结构内的各自的位置来解决每一冲突。
14.如权利要求10所述的介质,其特征在于,所述内容是根据包含在至少一个所述许可证内的解密密钥(KD)来加密和解密的,所述方法包括通过从包含(KD)的所述许可证中检索(KD)并用(KD)来解密所述内容来采用所述内容。
15.如权利要求10所述的介质,其特征在于,每一许可证包括根据引导回一公共根授权机构的公钥产生的数字签名,所述方法还包括基于从这一公共根授权机构开始延伸的证书链来验证每一许可证的签名得到确认。
16.如权利要求10所述的介质,其特征在于,每一附加许可证是第一级附加许可证,所述方法包括:
获得对应于所述内容的多个数字许可证,所述多个许可证包括一基础许可证、至少一个第一级附加许可证、以及至少一个第二级附加许可证,每一第一级附加许可证中包括对所述基础许可证的引用,每一第二级附加许可证中包括对所述第一级附加许可证的引用,所述基础许可证和每一附加许可证中的每一个陈述了指定可如何采用所述内容的规则;
标识所述基础许可证;
通过其中对所述基础许可证的引用来标识每一第一级附加许可证;
通过其中对所述第一级附加许可证之一的引用来标识每一第二级附加许可证;
将所述基础许可证和每一标识的附加许可证中的规则聚集成一聚集规则集;
评估所述聚集规则集以确定该聚集规则集是否允许以所述特定方式来采用所述内容;以及
如果所述聚集规则集如此允许,则采用所述内容。
17.如权利要求16所述的介质,其特征在于,所述基础许可证和每一附加许可证中的每一个中都包括一家族id属性和一父属性,所述家族id属性标识了所述许可证,而所述父属性标识所述许可证的任何分层父以定义所述许可证在一许可证分层结构内的位置,所述方法包括通过其父属性被设为空值的基础许可证来标识所述基础许可证,通过确定所述基础许可证的家族id属性的特定值并定位其父属性被设为所述基础许可证的家族id属性的特定值的每一附加许可证来标识每一第一级附加许可证,以及通过确定每一第一级附加许可证的家族id属性的特定值并定位其父属性被设为所述第一级附加许可证中任一个的家族id属性的特定值的每一附加许可证来标识每一第二级附加许可证。
18.如权利要求16所述的介质,其特征在于,评估所述聚集规则集来确定该聚集规则集是否允许以所述特定方式来采用所述内容包括采用预定冲突规则来协商来自冲突许可证的规则之间的任何冲突,所述冲突规则至少部分地基于所述冲突许可证在一许可证分层结构内的各自的位置来解决每一冲突。
CNA2006800255396A 2005-07-14 2006-07-11 根据多个许可证的聚集来操作的数字应用程序 Pending CN101223549A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US69914305P 2005-07-14 2005-07-14
US60/699,143 2005-07-14
US11/259,677 2005-10-26

Publications (1)

Publication Number Publication Date
CN101223549A true CN101223549A (zh) 2008-07-16

Family

ID=39632424

Family Applications (1)

Application Number Title Priority Date Filing Date
CNA2006800255396A Pending CN101223549A (zh) 2005-07-14 2006-07-11 根据多个许可证的聚集来操作的数字应用程序

Country Status (1)

Country Link
CN (1) CN101223549A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101772026B (zh) * 2010-01-08 2014-03-19 中兴通讯股份有限公司 一种扩展许可证控制授权的方法及***
CN106934254A (zh) * 2017-02-15 2017-07-07 ***股份有限公司 一种开源许可证的分析方法及装置

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101772026B (zh) * 2010-01-08 2014-03-19 中兴通讯股份有限公司 一种扩展许可证控制授权的方法及***
CN106934254A (zh) * 2017-02-15 2017-07-07 ***股份有限公司 一种开源许可证的分析方法及装置
CN106934254B (zh) * 2017-02-15 2020-05-26 ***股份有限公司 一种开源许可证的分析方法及装置

Similar Documents

Publication Publication Date Title
KR100984440B1 (ko) 디지탈 라이센스 발행 방법 및 컴퓨터 판독 가능 기록 매체
RU2392659C2 (ru) Гибкая архитектура лицензирования в системе управления авторским правом
KR100949657B1 (ko) 유연한 권리 템플릿을 이용하여 권리 관리 시스템에서디지털 컨텐츠에 대한 서명된 권리 라벨(srl)을 얻기
US7747533B2 (en) Digital application operating according to aggregation of plurality of licenses
JP4750352B2 (ja) デジタルコンテンツに対応するデジタルライセンスを取得する方法
KR101298293B1 (ko) 제1 플랫폼으로부터 제2 플랫폼으로의 디지털 라이센스이주
TWI413908B (zh) 用於授證應用程式之彈性授證架構
CN100576148C (zh) 用于提供安全服务器密钥操作的***和方法
US8700533B2 (en) Authenticating licenses for legally-protectable content based on license profiles and content identifiers
CN1531253B (zh) 在drm结构中登记/子登记数字权利管理(drm)服务器
JP4418648B2 (ja) デジタルコンテンツとサービスの使用ライセンスを発行するためのシステムおよびその方法
US7685642B2 (en) System and method for controlling rights expressions by stakeholders of an item
RU2331917C2 (ru) Выдача лицензий на использование средства публикации в автономном режиме в системе управления правами на цифровое содержимое drm
KR20040073357A (ko) 디지탈 권한 관리(drm) 시스템에 따른, 조직과 같은규정된 집단 내에서의 디지탈 콘텐트 출판
CN101398875A (zh) 软件发行商信任扩展应用程序
KR20210037274A (ko) 저작물 관리 장치 및 방법
CN101243469A (zh) 从第一平台到第二平台的数字许可证迁移
AU2003240981B9 (en) System and method for supplying and managing rights expressions
CN101223549A (zh) 根据多个许可证的聚集来操作的数字应用程序
Brennan Music Copyright Management using Smart Contracts and Tokenization on the Ethereum Blockchain
Chong et al. LicenseScript-A language and framework for calculating licenses on information over constrained domains
Chan A Digital Rights Management System for Educational Content Distribution
EP2341460A1 (en) System and method for managing usage rights expressions
CA2547713A1 (en) System and methods for resolving license dependencies and for authenticating licenses

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20080716