对内容保护系统或其类似物中的内容访问等进行计量的制作方法

文档序号:2821328阅读:159来源:国知局
专利名称:对内容保护系统或其类似物中的内容访问等进行计量的制作方法
技术领域
本发明涉及用于允许对对数字内容的访问,特别是内容保护系统的环境中的数字内容访问等进行计量的体系结构和方法,尤其涉及收集表示被计量的内容访问的数据并将其报告给计量服务的体系结构和方法。
(2)背景技术现在参见图1,正如所知道的那样,非常需要与诸如数字音频、数字视频、数字文本、数字资料、数字多媒体等数字内容12有关的内容保护和实施系统,在该系统中数字内容12被分发给用户。用户一旦接收到数字内容,就借助诸如个人计算机14上的媒体播放器、可移动的播放设备等适当的呈现设备来呈现或“播放”该数字内容。
一般地,分发这种数字内容12的内容所有者希望限制用户对这种分发的数字内容12所做的动作。例如,内容所有者可能希望限制用户复制这种数字内容12并将其再次分发给另外的用户,或者可能希望允许所分发的数字内容12只能被播放有限的次数、只能被播放一定的总时间、只能在一定类型的机器上播放、只能在一定类型的媒体播放器上播放、只能由一定类型的用户播放,等等。
然而,在分发已经发生之后,这种内容所有者对数字内容12只有极少的控制(如果有的话)。于是,复制保护系统10允许任意形式的数字内容12的受控呈现或播放,其中这种控制是灵活的,并可以由这种数字内容12的内容所有者定义。一般地,内容12通过任何适当的分发通道以包13的形式被分发给用户。所分发的数字内容包13可以包括用对称的加密/解密密钥(KD)加密的数字内容12(即,(KD(CDNTENT))),以及标识内容、如何获得这种内容的许可证等等的其他信息。
基于信任的复制保护系统10允许数字内容12的所有者指定在允许呈现这种数字内容12之前必须满足的规则。这种规则可以包括上述的要求和/或其他,并可以被包括在用户/用户计算设备14(在下文中,这种术语可以互换,除非环境另作要求)必须从内容所有者或其代理获得的数字许可证16中,或者这种规则可以已经被附加到内容12。例如,这种许可证16和/或规则可以包括,例如用于解密数字内容12的解密密钥(KD),该解密密钥也许是根据可由用户计算设备或其他播放设备解密的另一密钥来加密的。
一段数字内容12的内容所有者不愿把内容12分发给用户,除非该所有者可以相信用户将会遵守许可证16或其他地方中由该内容所有者指定的规则。于是,较佳的是,给用户计算设备14或其他播放设备提供一可信组件或机制18,该组件或机制18只能根据折衷规则来呈现数字内容12。
可信组件18一般有评估器20,该评估器20审查规则,并基于所审查的规则确定发起请求的用户是否拥有以探寻及其他方式呈现所请求的数字内容12的权限。应该理解,在复制保护系统10中,相信评估器20能够根据规则来实现数字内容12的所有者的希望,并且不管出于邪恶的或相反的任何目的,用户应该无法轻易改变这种可信组件18和/或评估器20。
应该理解,用于呈现内容12的规则可以基于多种因素中的任何一种来指定用户是否拥有进行这种呈现的权限,这些因素包括用户是谁、用户在哪里、用户在使用什么类型的计算设备或其他播放设备、什么显示应用程序在调用复制保护系统10、日期、时间等等。此外,规则可以将显示限制于例如预定播放次数、预定播放时间等。
规则可以根据任何适当的语言和句法来指定。例如,语言可以简单地指定必须满足的属性和值(例如,DATE必须迟于XX),或者可以根据一指定的脚本要求函数的行为(例如,IF DATE大于X,THEN DO...)。
一旦评估器20确定了规则得到满足,就可以呈现数字内容12。尤其是,为显示内容12,从诸如上述许可证16等一预定义的来源获得解密密钥(KD)),并将该解密密钥(KD)应用于来自内容包13的(KD(CONTENT))以产生实际的内容12,然后事实上呈现了实际的内容12。
注意,有时可能要求可信组件18维持与内容12的特定片段的呈现和/或特定许可证16的使用有关的状态信息。例如可以是这样的情况,特定许可证16有一播放计数要求,因此可信组件18必须记住许可证16已经被用于呈现相应的内容12多少次,或许可证16还可以用于呈现相应的内容12多少次。因此,可信组件18也可以包括至少一个持久安全存储22,在该持久安全存储22中以安全的方式持久地维持该状态信息。因此,可信组件18以持久的方式将这种状态信息存储到该安全存储22,使得即使跨越在计算设备14上使用的会话,这种状态信息也可以被维持。这种安全存储22可能位于计算设备14的可信组件18上,尽管这种安全存储22也可以位于其他地方。
在复制保护系统10中,通过加密内容12并将一组规则和该内容12关联起来,封装该内容12以供用户使用,由此只能根据规则来呈现内容12。因为只能根据规则来呈现内容12,因此可以自由地分发内容12。一般地,内容12是根据诸如上述密钥(KD)等对称密钥来加密的,以得到(KD(content)),因此(KD(content))也根据(KD)来解密,以得到内容12。这一(KD)进而被包含在与内容12相对应的许可证16中。通常,这一(KD)是根据公钥,如要在其上呈现内容12的计算设备14的公钥(PU-C)来加密的,从而得到(PU-C(KD))。但是注意,可以使用其他公钥,如用户的公钥、用户是其成员的组的公钥等等。
注意,除了限制用户可以对所分发的数字内容12所做的动作之外,内容所有者等也可能希望计量这种用户、这种计算设备等对这种内容12的使用。例如,内容所有者可能希望知道内容12已经被呈现多少次,这是由于用户以显示次数为基础付费、由于内容所有者以显示次数为基础收费,等等。相应地,内容所有者可能希望知道内容12已经被复制多少次(假定这个选项是可用的)、内容12已经被合并到另一段内容多少次(也假定这个选项是可用的)、内容被呈现了多长时间、呈现内容被的一天中的时间,等等。简而言之,内容所有者等可能希望以事实上可以被计量或计数或累积的任何方式来计量对这种内容的使用。因此,计算设备14上的可信组件18可以被用来执行这种计量功能,并将从中所获得的计量数据存储到安全存储22。
一般而言,计量可以被视为对涉及一段内容12的数量进行计数或累积,其中该数量代表要根据内容所有者等的希望来测量的一个量。正如在上面所阐明的那样,计量一般可以基于内容12通过呈现、复制、传输等被访问的次数、内容12被呈现的时间量等。当然,存在其他形式的计量,任何其他计量形式可以用于本发明,如下所述。
可以理解,计量对于包括反馈、货币基础等的许多原因来说是有用的。一个例子是,对内容所有者来说,作为内容12是否流行、是否有用、是否受到欣赏、是否受到喜爱等等的指示,关于一段内容12的使用率的统计量是重要的。另一个例子是,关于一段内容12的使用率的统计量可以用于给一段内容12的作者提供报酬,即使该作者是许许多多作者中的一个。又一个例子是,关于一段内容12的使用率的统计量可以用于计算应该付给内容所有者的币值。尤其是在后一种情况中,应该认识到,可以基于每用户基础、单次支付基础或其组合对诸如音乐作品等内容12进行许可。因此,基于许可基础,尤其是基于许可费用是否以一个固定的数量或每用户数量为基础,通过使用内容12向内容所有者生成的许可证费用可以发生根本改变。
此外,由于至今还没有执行详细的计量,提供执行这种详细计量的能力将创造以前没有的未来商业模型是完全有可能的。一个例子是,投放广告(内容12)的成本,目前主要基于一个预先设定且固定的费用,将来则可以基于通过本发明计量时所获得的广告/内容12的显示次数。另一个例子是,目前电视节目(内容12)是至少部分地基于由一个计费服务测量的其市场份额来计费的,但这种计费仅仅是基于比较少的统计抽样的估计,而使用本发明,这种计费可以基于这种节目/内容12的观众/用户的非常详细的计量测量值。
虽然注意到,尽管可以用相对直接的方式计量用户对计算设备14上的内容12的访问和使用,但是还没有用于以下目的的体系结构或方法(1)定义要计量什么,(2)定义得自计量的数据如何存储在计算设备14上,(3)定义用于从多个计算设备中的每一个收集计量数据的计量服务,或者(4)定义如何将计量数据报告给计量服务。
因此,需要有实现数据计量并将计量数据报告给计量服务的体系结构和方法。尤其是,需要有定义要计量什么、定义得自计量的数据如何被存储在计算设备14上、定义用于从多个计算设备中的每一个收集计量数据的计量服务、以及定义如何将计量数据报告给计量服务的体系结构和方法。
(3)发明内容本发明至少部分地满足上述需要,本发明中,提供一种将所累积的计量数据从客户机报告给计量服务的方法。计量数据的每个片断根据计量ID(MID)在客户机的计量数据库中进行索引,并根据内容关联ID(KID)在计量数据库中进行分索引。
在该方法中,客户机选择一特定的MID,并选择计量数据库中具有所选择的MID的计量数据的至少一部分,其中所选择的计量数据是根据KID来组织的。客户机然后基于所选择的计量数据构造质询,并将所构造的质询发送给计量服务。计量服务从质询中获得计量数据、存储计量数据、并基于质询构造响应以返回给客户机。
客户机从计量服务接收响应,并确认响应对应于该质询,其中,该响应包括质询中所选择的计量数据的KID列表。此后,客户机通过对列表中的每个KID,从计量数据库中删除具有所选择的MID和该KID的计量数据,来处理响应中的KID列表。
(4)


结合附图进行阅读,可以更好地理解上述的发明内容和下面的本发明实施例的详细描述。为例示本发明,附图中示出当前较佳的实施例。然而应该理解,本发明不限于所示出的精确的配置和手段。附图中图1是示出基于信任的系统的一个例子的实施体系结构的方框图,该系统包括具有计量数据库的客户机,以及从客户机接收数据的计量服务;图2是表示一个通用计算机系统的方框图,其中可结合本发明的诸方面和/或其诸部分;图3是一方框图,依照本发明的一个实施例示出了图1中的数字内容、一个或多个绑定到该内容的数字许可证和计量数据库中的计量数据之间的关系;以及图4是一流程图,依照本发明的一个实施例示出了图1中的客户机和计量服务在将计量数据从该客户机报告给该计量服务时所执行的关键步骤。
(5)具体实施方式
计算机环境图1和下面的讨论旨在提供可在其中实现本发明和/或其诸部分的适用的计算环境的简要一般描述。尽管并非必需,仍将在由诸如客户机工作站或服务器等计算机执行的程序模块等计算机可执行指令的一般上下文中描述本发明。通常,程序模块包括完成特定的任务或实现特定的抽象数据类型的例程、程序、对象、数据结构等等。而且,应该明白,本发明和/或其诸部分可以用其他计算机系统配置来实践,其他计算机系统配置包括手持式设备、多处理器系统、基于微处理器或可编程的消费者电子产品、网络PC、小型计算机、大型计算机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程的存储器设备中。
如图2中所示,示例性通用计算系统包括常规个人计算机120或其类似物,包括处理单元121、系统存储器122、以及把包括系统存储器在内的各种系统组件耦合至处理单元121的系统总线123。系统总线123可以是若干总线结构类型中的任一种,包括存储器总线或存储器控制器、外围总线以及使用多种总线体系结构的任一种的本地总线。系统存储器包括只读存储器(ROM)124和随机存取存储器(RAM)125。基本输入/输出系统(BIOS)126存储在ROM 124内,它包括帮助例如在启动过程中在个人计算机120内的元件之间传输信息的基本例程。
个人计算机120还可以包括用于对硬盘(未示出)进行读写的硬盘驱动器127、用于对可移动磁盘129进行读写的磁盘驱动器128、用于对诸如CD ROM或其他光学介质等可移动光盘131进行读写的光盘驱动器130。硬盘驱动器127、磁盘驱动器128和光盘驱动器130分别通过硬盘驱动器接口132、磁盘驱动器接口133和光盘驱动器接口134连接到系统总线123。诸驱动器及其相关的计算机可读介质为个人计算机120提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。
尽管在此所描述的示例性环境使用了硬盘、可移动磁盘129和可移动光盘131,但是应该明白,可以存储计算机可访问数据的其他类型的计算机可读介质也可以用于示例性的操作环境。这种其他类型的介质包括磁带盒、闪存卡、数字视频盘、伯努利盒式磁带、随机存取存储器(RAM)、只读存储器(ROM)等等。
多个程序模块可以存储在硬盘、磁盘129、光盘131、ROM 124和RAM 125中,包括操作系统135、一个或多个应用程序136、其他程序模块137和程序数据138。用户可以通过诸如键盘140和定位设备142等输入设备向个人计算机120输入命令和信息。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其他的输入设备往往通过耦合至系统总线121的串行端口接口146连接至处理单元121,但也可以通过其他接口,如并行端口、游戏端口或通用串行总线(USB)连接。监视器147或其他类型的显示设备也通过接口,如视频适配器148连接至系统总线123。除了监视器147之外,个人计算机可以包括其他外围输出设备(未示出),如扬声器、打印机等等。图2的示例性系统也包括主机适配器155、小型计算机系统接口(SCSI)总线156和连接到SCSI总线的外部存储设备162。
个人计算机120可以工作在使用到一台或多台远程计算机,如远程计算机149的逻辑连接的网络化环境中。远程计算机149可以是另一台个人计算机、服务器、路由器、网络PC、对等设备或其他公共网络节点,并且一般包括与个人计算机120相关的许多或所有上述元件,尽管图2中仅例示了存储器存储设备150。图2中所描述的逻辑连接包括局域网(LAN)151和广域网(WAN)152。这种网络环境常见于办公室、企业范围的计算机网络、内联网和因特网。
当用于LAN网络环境时,个人计算机120通过网络接口或适配器153连到LAN 151。当用于WAN网络环境时,个人计算机120一般包括调制解调器154或用于通过WAN 152,如因特网建立通信的其他装置。可以内置或外置的调制解调器154经过串行端口接口146连接到系统总线123。在网络化的环境中,与个人计算机120相关的所述程序模块或其诸部分可以存储在远程存储器存储设备中。应该明白,所示出的网络连接是示例性的,可以使用在计算机之间建立通信链路的其他装置。
对内容12的访问进行计量本发明中,根据要计量什么的定义,对依照内容保护系统10的计算设备14上的内容12的访问进行计量,并且将得自计量的数据存储到计算设备14或其他地方。这种计量数据被周期性地报告给计量服务24(图1),尤其根据一设定过程被报告给这种计量服务24,其中,计量服务24从多个计算设备14中的每一个收集计量数据。
注意,内容保护表示用于保护数字内容12,使得不能以与内容所有者和/或提供者的希望不一致的方式使用这种内容12的一系列方法和技术。这些方法包括复制保护(CP)、链接保护(LP)、条件访问(CA)、权限管理(RM)和数字权限管理(DRM)等等。任一内容保护系统10的基础是,只有可信应用程序可以用未保护形式访问受保护内容12,其中,可信应用程序确保对受保护内容12的使用的隐式和/或显式规则的正确遵守。通常,通过以某种方式进行加密来保护内容12,其中,只有可信方才能解密内容12。
在最严格的意义上,复制保护特别地应用于驻留在存储设备中的内容12,而链接保护应用于通过传输介质上在应用程序/设备之间流动的内容12。条件访问可以被认为是一种形式比较复杂的链接保护,其中在传输过程中加密高级程序、信道和/或电影。只向已经为访问这种内容12而付费的订户提供解密内容12所需的密钥。
数字权限管理是一个可扩展的体系结构,其中涉及内容12的特定片段的经批准的使用的规则是显式的,绑定到或关联于内容12本身。DRM机制可以支持比其他方法更丰富和更有表现力的规则,同时在内容的个别片段或甚至是内容的子成分的级别上提供更强的控制和灵活性。数字权限管理系统的一个例子发表在于1999年4月12日提交的美国专利申请第09/290,363号以及于1999年3月27日提交的美国临时申请第60/126,614号,其中每个专利申请都在此整体引用作为参考。
权限管理是一种在组织上基于可以保护内容12以使得只能在组织或其子集中访问的DRM形式。权限管理系统的一个例子被发表在于2002年6月28日提交的美国专利申请第10/185,527号、第10/185,278号和第10/185,511号,其中每个专利申请都在此整体引用作为参考。
定义要计量什么在本发明的一个实施例中,在计算设备14上的可信组件18的控制和支持下,在使用许可证16来呈现相应的内容12期间,执行计算设备上的计量。在这一实施例中,如果许可证16包括一计量标签,如可以用于基于XML(可扩展标记语言)的许可证16的计量标签等,则对内容12的使用/访问/呈现进行计量。因此应该明白,计量是相对于内容12来执行的,尽管是否计量的决策是以许可证16的计量标签的存在为基础的。
例如,许可证16的下列部分包括一MID(计量ID)标签,而且因此相应的内容12在显示该内容12期间由可信组件18来计量<LICENSE version=“2.0.0.0”>
…<LICENSORINFO>
…<DATA>
…<KID>FgA3Mep5+UiW5yB2CuevGg==</KID>
<MID>UiW5yBMep2CuevGg5+FgA3==</MID>

</DATA>
…</LICENSORINFO>
…</LICENSE>
注意,与MID标签(以下称为“MID”)相关联的数据可以是用基64(base64)编码的16字节标识。在本发明一个实施例中,这种MID标识了与许可证16有关的所收集的计量数据的接收者,正如将会在下面更详细地描述的那样。也要注意,KID标签标识了许可证16所绑定的内容12,并且至少在一些实例中,与该KID标签(以下称为“KID”)相关联的数据可以表示一个值,从该值中可导出用于解密内容12的内容密钥(KD)。
可信组件18可以收集关于内容12的使用的任何特定类型的计量数据而不背离本发明的精神和范围。在本发明的一个实施例中,可信组件18为每种呈现权限(播放、复制、传输、编辑等等)维持安全存储22中的计数,并在权限被用于访问内容12时递增每个这种计数。注意,安全存储22被用于存储计量数据,以防止用户或其他人能够篡改这种计量数据。否则,例如基于每用户基础收费的恶意用户可以改变计量数据以反映比真实情况少的使用。
在本发明的一个备选实施例中,MID标签可以在其中包括关于要对哪些权限进行计数的数据(未示出)和/或关于要测量的内容12的使用和如何测量的其他方面的数据(也未示出)。因此,正如所间接提到的那样,可信组件18可以执行诸如内容12被呈现的时间量、开始呈现的次数、停止呈现的次数、呈现过程中击键或鼠标移动的次数等等的计量,并将适当的计量数据存储在安全存储器22中。
存储得自计量的数据应该明白,结合使用呈现(即访问)内容12的相应许可证16,可信组件18收集关于一段内容12的计量数据,并将这种所收集的数据适当地存储到安全存储22中,如图3中所示。也应该明白,除此之外,可信组件18可以收集关于呈现许可证16的使用的许可证数据,并且也可以将这种所收集的数据适当地存储到安全存储22中(未示出)。
在本发明的一个实施例中,如图3所示,根据许可证16中触发产生计量数据的计量的MID,并根据相应的被计量内容12的KID,可信组件18将安全存储22中的计量数据存储在计量数据库26中,正如在这种许可证16中所阐明的那样。尤其是,根据作为主要索引的这种MID和作为次要索引的这种KID,可信组件18将安全存储22中的计量数据存储在计量数据库26中。因此,对于带有特定MID和KID、用于呈现具有特定KID的一段内容12的许可证16的任何特定使用,可信组件18在安全存储器22中更新数据库26中相应的MID、KID索引以反映该使用。例如,如果这种内容被播放两次并被复制一次,可信组件18可以在安全存储器22的数据库26中相应的MID、KID索引下递增播放计数两次并递增复制计数一次。
注意,多个许可证16中的每一个都可以允许呈现内容12的相同片段,但其中可以具有相同或不同的MID。因此,如果两个这种许可证16中的每一个都具有相同的MID并被用来播放一段内容12一次,则在MID、KID索引下的播放计数由于两次播放而被递增两次。相应地,如果两个这种许可证16中的每一个有不同的MID(MID1和MID2),并被用来播放一段内容12一次,则在MID1、KID索引下的播放计数由于一次播放而被递增一次,而在MID2、KID索引下的播放计数由于一次播放也被同样地递增一次。
计量服务可以理解,由可信组件18在安全存储器22中的计量数据库26中的所累积计量数据被周期性地转发到一集中式计量服务24,由此计量服务24可以从多个计算设备接收计量数据并适当地处理该计量数据。这种处理可以是任何适当的处理而不背离本发明精神和范围。例如,如果一段内容12的作者要基于每用户基础收取版权费,则计量服务可以总计一段时间内相对于该段内容12的所有使用计数,并将其报告给作者和/或收取版权费的实体。或者,计量服务可以仅接收并存储计量数据,供执行处理的另一服务检索,或者可以将所存储的计量数据周期性地转发给另一服务。
无论实际上是哪个服务处理计量数据,应该明白,由于计量数据的每个片段根据其MID、KID索引被存储在计量数据库26中,这种数据片段可以被转发给带有这种MID、KID索引的计量服务24,并也可根据该MID、KID索引进行处理。因此,处理所转发的计量数据可以根据MID、KID索引来执行。因此,并且作为例子,如果一段内容12的内容所有者在内容12的诸片段的所有使用的总计达到了一个特定值时,收取无息费用(flat fee),这种总计可以基于与计量数据相关联的KID索引来执行,其中计量数据与通过并达到计量服务24的该段内容12相对应。
在本发明的一个实施例中,多个计量服务28可以被例示,以接收所转发的计量数据,而且基于与这种计量数据的每一片段相关联的MID,计量数据的这些片段被转发给特定的计量服务24。可以理解,每个计量服务24可以与一个或多个MID相关联,并因此接收与这种一个或多个MID相关联的计量数据。
MID和计量服务24的之间的关联可以由发布包括MID在内的计量证书30、诸如URL(统一资源定位器)等相应的计量服务24的标识、公钥(PU-M)和签名的内容管理授权机构来建立。因此,如果仅要向计量服务24标识特定的MID,则每个计算设备14上要将具有与其相关联的特定MID的计量数据报告给相应的计量服务24的可信组件18就必须具有相应的计量证书30。通常,在初始化时和/或作为常规更新的一部分,可以向可信组件18提供一个或多个计量证书30。
将计量数据报告给计量服务随着时间的推移,计算设备14(以下记为“客户机14”)累积其计量数据库26中的计量数据,并因此应该可以周期性地将这种计量数据报告给一个或多个计量服务28。报告周期的周期性可以是任何适当的周期而不背离本发明的精神和范围。例如,这种周期性可以是每日、每周、每两周、每月等等。或者,这种周期性可以基于计量数据库26达到特定的大小或其中具有特定数量的计量数据。
在报告计量数据时,客户机14可以报告其计量数据库26中所累积的所有计量数据,或者可以只报告计量数据库26中所累积的计量数据的一部分。尤其是,在本发明的一个实施例中,客户机14在每计量证书30的基础上报告其计量数据库26中所累积的计量数据。因此,如果客户机14没有与计量数据库26中的特定的计量数据相对应的计量证书30,则不报告这种特定的计量数据。
现在参见图4,无论如何,在本发明的一个实施例中,客户机14根据以下过程,在每计量证书30的基础上报告其计量数据库26中所累积的计量数据。初步地,客户机14选择一个特定的计量证书30,并基于其签名验证该计量证书30(步骤401),然后从所验证的计量证书30中确定其中所阐明的MID(步骤403)。此后,基于这种MID,客户机14选择计量数据库26中具有与其相关联的这种MID的计量数据的至少一部分,并将其复制到一预定格式(步骤405)。
注意,由于计量数据库中的所有计量数据主要是基于与其相关联的MID来索引的,因此具有特定的相关联的MID的计量数据至少在逻辑意义上应该被放置在一起,因此选择具有特定的相关联的MID的计量数据应该是一个相对简单的任务。也要注意,由于计量数据库中的所有计量数据其次是基于与其相关联的KID来索引的,因此应该已经根据相关联的KID组织了所选择的计量数据。因此,所选择的计量数据应该是根据KID而被组织的计数等的列表,并且例如可以被置于XML格式,如下所示<KID0>
<COUNT1>a</COUNT1>
<COUNT2>b</COUNT2>
<COUNT3>c</COUNT3>
</KID0>
<KID1>
<COUNT4>d</COUNT4>
<COUNT5>e</COUNT5>
</KID1>
<KID2>
<COUNT6>f</COUNT6>
</KID2>
注意,客户机14的计量数据库26中的计量数据可能已经是XML格式,在这种情况下,这种计量数据可以被原样复制到质询中。
在本发明的一个实施例中,带有格式化的所选择计量数据的客户机14基于格式化的计量数据和计量证书30构造质询(步骤407)。这种质询可以例如包括来自计量证书30的MID、来自计量证书30的相应计量服务24的URL其他标识、为质询选择的事务ID(TID)以及格式化计量数据。注意,为了保护格式化计量数据不被其他实体查看,质询中的这种格式化计量数据应该根据一对称密钥进行加密,以得到(passkey(metereddata)),并且密钥本身应该置于质询中,该质询是根据来自计量证书30的(PU-M)加密的,以得到(PU-M(passkey))。这种密钥可以是任何适当的密钥而不背离本发明的精神和范围。例如,密钥可以部分地由客户机14以单向可再生的方式从MID导出。
注意,TID可以是用基64编码的16字节标识,而且,每当成功地发送和响应质询且从计量数据库26中删除相应的计量数据时,随机地生成TID,正如下面将更详细地阐明的一样。正如下面将更详细地阐明的一样,一旦成功地完成对MID的早先的质询,客户机14就已经生成了MID的当前质询的TID,并已经根据当前质询的MID将这种所生成的TID存储到计量数据库26中,以供与MID的当前质询有关的检索和使用。
在特定情况下,客户机14可能无法构造质询以包含所有格式化计量数据。例如,如果客户机14是带有有限存储器的相对简单的设备,则质询的大小可能受到客户机14中可用的缓冲空间的限制。如果事实上客户机14无法构造质询以包含所有格式化计量数据,则质询可以包括一设置部分数据标志。正如下面将更详细地阐明的一样,对于所接收的质询是否包含所有格式化计量数据,接收质询的计量服务24可以有也可以没有任何特定的关注,但计量服务24在响应质询时将包括设置部分数据标志,以提醒客户机14发送带有另外的格式化计量数据的另一质询。
如上所述,质询中的格式化计量数据包括由密钥加密以免被其他实体查看的格式化计量数据。以类似的方式,应该根据密钥将质询或至少其部分散列为散列值,并且该散列值应该被包括在质询中,以检测其他实体进行的任何修改。应该明白,如果质询或至少其部分在导出散列值之后被修改,不管有意还是无意,该散列值将无法被验证。
上述所构造的带有格式化计量数据的质询的一个例子如下所示<METERDATA type=“challenge”>
<DATA>
<MID>UiW5yBMep2CuevGg5+FgA3==</MID>
<TID>Mep2CuevGgUiW5yB5+FgA3==</TID>
<PASSWORD>encrypted,base64 password</PASSWORD>
<RECORDS>
<KID value=“KID1”>
<ACTION value=“Play”>5</ACTION>
</KID>
<KID value=“KID2”>
<ACTION value=“Play”>71</ACTION>
<ACTION value=“Burn”>2</ACTION>
</KID>
…</RECORDS>
<PARTIALDATA>set</PARTIALDATA>
</DATA>
<HASH>
<HASHALGORITHM type=“HMAC”/>
<VALUE>
Base64-encoded hash</VALUE>
</HASH>
</METERDATA>
注意,通过与METERDATA标签一起包括设定给质询的类型属性,来如此标识质询。
由客户机14所构造的质询通过它们之间诸如网络连接等适当连接被发送给计量服务24(步骤409)。这种连接可以是任何连接而不背离本发明的精神和范围。例如,在一种情况下,连接可以是客户机/计算设备14经由诸如因特网等网络通过诸如HTTP等相互可接受的协议直接与计量服务24对话。在另一种情况下,其中客户机14和计量服务24直连(tether),连接可以是诸如USB-1394等直接连接技术。
一旦接收到,计量服务24就将计量(PR-M)应用于来自所接收的质询的(PU-M(passkey)),以获得密钥(步骤411),并基于所获得的密钥验证来自所接收的质询的散列值(步骤413)。如果由于某些原因不能验证散列值,计量服务24可以向客户机14请求相同MID的另一质询,或者可以简单地忽略该质询,在这种情况下客户机14继续为该MID累积计量数据,直到下一个报告周期终止,此时客户机14发送一个质询,以实际上报告来自前面两个报告周期的MID的计量数据。
假定散列值确实可以验证,则计量服务24可以将(passkey)应用于来自所接收的质询的(passkey(metereddata)),以获得计量数据(步骤415),并以适当的方式存储所获得的计量数据(步骤417)。注意,可以用任何适当的方式执行存储所获得的计量数据而不背离本发明的精神和范围。存储的特定位置和方法主要与检索和使用这种所存储的计量数据的另一服务32(图1)有关。
为完成该事务,计量服务基于质询构造响应以返回给客户机14(步骤419)。正如将会看到的那样,基于该响应,客户机14从该客户机14的计量数据库26中删除作为质询的基础的所选择的计量数据。
无论如何,在本发明的一个实施例中,所构造的响应的内容类似于相应的质询的内容,并且事实上可以包含复制到其中的质询的某些部分。因此,响应可以例如包括来自质询的MID和TID,以及格式化计量数据的至少一部分。注意,对于最后一项,计量服务24只需要通过响应告知客户机14已经处理了带有特定KID的计量数据,并不需要包括实际的已处理计量数据。因此,应该被包括在响应中的格式化计量数据的部分是所处理的计量数据的KID列表。
同上,为了保护响应中的KID列表不被其他实体查看,可以根据从质询得到的密钥或另一密钥来加密该列表,尽管应该认识到,如果认为这种列表实际上是不敏感的就可以不需要加密。如果使用了来自质询的密钥,如果客户机14可以从MID或某一其他来源中导出该密钥,则这种密钥就不需要以加密的形式放置在响应中。
如上所述,如果客户机14不能构造质询以包含所有格式化计量数据,则质询就在其中包括一个设置部分数据标志。在这种情况下,接收质询并对其响应的计量服务24在响应中包括该设置部分数据标志以提醒客户机14发送带有另外的格式化计量数据的另一质询。最后,应该根据密钥将响应或其至少一部分散列为一散列值,该散列值应该被包括在响应中,以检测其他实体进行的任何修改。应该明白,如果响应或其至少一部分在导出散列值之后被修改,不管有意还是无意,该散列值将无法验证。
所构造的响应的一个例子如下所示<METERDATA type=“response”>
<DATA>
<MID>UiW5yBMep2CuevGg5+FgA3==</MID>
<TID>Mep2CuevGgUiW5yB5+FgA3==</TID>
<COMMAND>RESET</COMMAND>
<RECORDS>
<KID value=“KID1”/>
<KID value=“KID2”/>
…</RECORDS>
<PARTIALDATA>set</PARTIALDATA>
</DATA>
<HASH>
<HASHALGORITHM type=“HMAC”/>
<VALUE>
Base64-encoded hash</VALUE>
</HASH>
</METERDATA>
注意,通过与METERDATA标签一起包括设定给响应的类型属性,来如此标识响应。也要注意,响应包括一RESET(复位)命令,正如下面将会看到的,该RESET命令本质上是使得客户机14可以从其计量数据库26中删除所选择的计量数据的准许。
由计量服务24所构造的响应通过计量服务24和客户机13之间的连接被发送给客户机14(步骤421)。一旦被接收到,客户机14就通过再次导出密钥或检索已保存的密钥副本来获得密钥,并基于所获得的密钥验证来自所接收的响应的散列值(步骤423)。如果由于某些原因不能验证散列值,客户机14可以向计量服务24请求相同质询的另一个响应,或者可以简单地忽略该响应,在这种情况下客户机14继续为MID累积计量数据,直到下一个报告周期终止,此时客户机14发送质询,以实际上报告来自前面两个报告周期的MID的计量数据。
假定散列值确实可以验证,则客户机14就确认响应中的TID和MID与存储在计量数据库26中的TID和相同的MID相匹配(步骤425)。于是,如果有必要,客户机14将密钥应用于来自所接收的响应的经加密的KID列表以获得这种列表,并通过对列表中的每个KID,从计量数据库26中删除带有该MID、KID索引的计量数据(步骤427),来处理该KID列表。因此,一旦成功地报告计量数据,就从计量数据库26中清除这种计量数据,使得在下一个报告周期中可以累积新的计量数据。
注意,可以用任何适当的方式执行计量数据的删除而不背离本发明的精神和范围。例如,可以删除MID、KID索引及其相关联的所有数据,或者留下MID、KID索引,仅删除与其相关联的数据。
一旦成功地处理了响应的列表中的所有KID,正如上面所提到的那样,客户机14生成MID的下一个质询的TID,并根据当前质询的MID将这种所生成的TID存储到计量数据库26中,以供与MID的下一个质询有关的检索和使用(步骤429)。可以理解,当MID首先被引入到计量数据库26中时,这种TID的预生成需要为每个MID初始生成一个TID。
现在可以理解,在质询中TID的使用和所得的响应确保了由客户机14报告的所累积的计量数据不被计量服务24计数多次。尤其是,如果由于某些原因,带有来自第一个报告周期的计量数据的第一个质询被计量服务24接收并存储,但客户机14无法接收来自计量服务24的响应,该客户机将无法为质询的MID生成新的TID,并将不删除第一个报告周期的计量数据。在这种情况下,不生成新TID的结果是,带有来自第一个报告周期和下一个报告周期的计量数据的MID的下一个质询将被计量服务24接收、存储和处理。然而,由于下一个质询将具有与第一个质询相同的TID,计量服务24不应该以复制来自第一个报告周期的计量数据的方式,存储下一个质询中所阐明的来自第一个报告周期和下一个报告周期的计量数据,以及第一个质询中所阐明的来自第一个报告周期的计量数据。应该明白,这样做将会对来自第一个报告周期的计量数据计数两次。相反,计量服务24应该用下一个质询中所阐明的来自第一个报告周期和下一个报告周期的计量数据重写第一个质询中所阐明的来自第一个报告周期的计量数据。结果,来自第一个报告周期的计量数据事实上没有被计数两次。当然,为使计量服务24识别带有与第一个质询相同的TID的下一个质询,计量服务24应该维持一TID及其相关联的计量数据的数据库。
最后,一旦为质询的MID生成新的TID,客户机14确定响应是否包括一设置部分数据标志(步骤431)。如果是这样,客户机14有关于质询的MID的、要报告给计量服务24的另外的计量数据,并因此构造和发送一个或多个另外的质询以报告另外的计量数据,如步骤405-431所示。注意,这种另外的质询即使不是立即也是迅速地被发送出去,不用等到下一个报告周期终止。
注意,直到此时都没有假定对计量服务24标识了客户机14。事实上,如基于隐私方面的顾虑,保存来自计量服务的客户机14的标识可能是明智或甚至是必要的。然而,如果至少部分地由于客户机14的一个用户例如已经同意基于被计量的使用率来支付费用,客户机14正在将计量数据报告给计量服务24,则仅当要确保其用户为这种被计量的使用率适当地付费时,才事实上应该向计量服务标识客户机。通常,这种标识是通过在质询中包括一个标识客户机14、用户等的数字证书而得到,其中数字证书包括公钥(PU-U)和签名,其中签名当然可以被验证。因此,不是在质询中包括基于密钥的散列,而是质询可以包含基于(PR-U)、并且可基于来自所包括的数字证书的(PU-U)来验证的签名。以类似的方式,可以是这种情况,即,不是在响应中包括基于密钥的散列,而是,响应可以包含基于与计量证书30相关联的私钥(PR-M)、并且可基于来自这种计量证书30的相应(PU-M)来验证的签名。
结论本发明可以实践于任何适当的客户机14和计量服务24,假定这种客户机14和计量服务24可以使用其中的可信组件18。现在应该明白,借助于在此所描述的本发明,可以对客户机14处内容12的访问和其他使用进行计量,并可以适当地将计量数据报告给计量服务24,以实现计量服务24或另一个服务32可以使用这种计量数据的任何目的。
实现关于本发明所执行的进程所需的程序设计相对简单,对有关的程序设计人员来说应该是显而易见的。因此,没有在此附上这种程序设计。于是,任何特定的程序设计可以用于实现本发明而不背离本发明的精神和领域。
在前面的描述中可以看到,本发明包括一种新的和有用的体系结构和方法,该体系结构和方法实现了计量数据并将计量数据从客户机14报告给计量服务24。该体系结构和方法定义了要计量什么、得自计量的数据如何被存储到计算设备14上、用于从多个计算设备14中的每一个收集计量数据的计量服务以及如何将计量数据报告给计量服务24。
应该明白,可以改变上面所描述的实施例而不背离其发明思想。于是大体上,应该理解,本发明不限于所述特定实施例,但旨在覆盖由权利要求书所定义的本发明的精神和范围中的修改。
权利要求
1.一种将所累积的计量数据从客户机报告给计量服务的方法,计量数据的每个片断根据一计量ID(MID)在客户机的计量数据库中被索引,并根据一内容关联ID(KID)在计量数据库中被分索引,所述方法包括所述客户机选择一特定的MID;选择所述计量数据库中具有所选择的MID的计量数据的至少一部分,所选择的计量数据是根据KID来组织的;基于所选择的计量数据构造一质询;向所述计量服务发送所构造的质询,由此所述计量服务从所述质询获得计量数据、存储所述计量数据、并基于所述质询构造一响应以返回给所述客户机;从所述计量服务接收响应,所述响应包括所述质询中所选择的计量数据的KID列表;确认所述响应对应于所述质询;以及通过对所述列表中的每个KID,从所述计量数据库中删除具有所选择的MID和所述KID的计量数据,处理所述响应中的KID列表。
2.如权利要求1所述方法,其特征在于,包括构造所述质询,以包括所述MID;所述计量服务的位置标识;为所述质询选择的事务ID(TID);以及所选择的计量数据。
3.如权利要求2所述的方法,其特征在于,包括构造所述质询以包括根据一对称密钥加密的所选择的计量数据以产生(passkey(metereddata)),并进一步包括根据所述计量服务的公钥(PU-M)加密的密钥以产生(PU-M(passkey)),由此,所述计量服务可以将一对应于(PU-M)的私钥(PR-M)应用于来自所述质询的(PU-M(passkey))以获得所述密钥、可以将所获得的密钥应用于来自所述质询的(passkey(metereddata))以获得所述计量数据、并且可以存储所获得的计量数据。
4.如权利要求3所述的方法,其特征在于,包括构造所述质询以进一步包括一基于所述密钥从所述质询的至少一部分的散列导出的散列值,由此,如果此后所述质询的至少一部分被修改,则所述散列值将无法验证,并且由此,所述计量服务可以基于所述密钥来验证来自所述质询的散列值。
5.如权利要求2所述的的方法,其特征在于,包括,如果所述客户机不能构造质询以包含所述计量数据库中对选择的MID的所有累积的计量数据,则构造所述质询以进一步包括一设置部分数据标志。
6.如权利要求1所述的方法,其特征在于,包括接收所述响应,所述响应包括所述质询中阐明的MID;所述质询中阐明的事务ID(TID);以及所述质询中阐明的所选择的计量数据的至少一部分。
7.如权利要求6所述的方法,其特征在于,包括接收所述响应,所述响应包括所选择的计量数据的至少一部分的KID列表。
8.如权利要求6所述的方法,其特征在于,包括接收所述响应,所述响应包括根据一对称密钥加密的所选择的计量数据的至少一部分以产生(passkey(metereddata)),并且所述方法还包括,所述客户机获得所述密钥并将所获得的密钥应用于来自所述响应的(passkey(metereddata))以获得所述计量数据的至少一部分。
9.如权利要求8所述的方法,其特征在于,包括接收所述质询,所述质询还包括一基于所述密钥从所述响应的至少一部分的散列导出的散列值,并且所述方法还包括所述客户机基于所述密钥验证来自所述响应的散列值。
10.如权利要求6所述的方法,其特征在于,如果所述质询包括一设置部分数据标志,则接收进一步包括一设置部分数据标志的所述响应,所述设置部分数据标志表示所述客户机不能构造质询以包含所述计量数据库中对所选择的MID的所有累积的计量数据,以及所述客户机因此具有关于所述质询的所选择MID的另外的计量数据要报告给所述计量服务。
11.如权利要求10所述的方法,其特征在于,还包括,如果所述响应包括所述设置部分数据标志选择所述计量数据库中具有所选择的MID的另外的计量数据的至少一部分基于所选择的另外的计量数据构造一另外的质询;以及将所构造的另外的质询发送给所述计量服务。
12.如权利要求6所述的方法,其特征在于,确认所述响应对应于所述质询包括确认所述响应中的TID和MID与存储在所述计量数据库中的TID和所选择的MID相匹配。
13.如权利要求1所述的方法,其特征在于,还包括,接收一根据所选择的MID存储在所述计量数据库中的事务ID(TID)并构造所述质询以包括所述TID、从所述计量服务接收进一步包括所述TID的响应,以及一旦处理了所述响应中的KID列表就为所述MID的下一个质询生成一新的TID,并根据所选择的MID将所生成的TID存储到所述计量数据库中,用于与所述MID的下一个质询有关的检索和使用。
14.一种将累积的计量数据从客户机报告给计量服务的方法,计量数据的每个片断都根据一计量ID(MID)在所述客户机的计量数据库中被索引,并根据一内容关联ID(KID)在所述计量数据库中被分索引,所述方法包括客户机选择一特定的计量证书,并从中确定一在其中阐明的MID;从所选择的计量证书中选择所述计量数据库中带有所确定的MID的计量数据的至少一部分,所选择的计量数据是根据KID来组织的;基于所选择的计量数据和所选择的计量证书构造一质询;将所构造的质询发送给所述计量服务,由此所述计量服务从所述质询中获得所述计量数据、存储计量数据、并基于所述质询构造一响应以返回给所述客户机;从所述计量服务接收响应,所述响应包括所述质询中所选择的计量数据的KID列表;确认所述响应对应于所述质询;以及通过对所述列表中的每个KID,从所述计量数据库中删除带有所确定的MID和所述KID的计量数据,处理所述响应中的KID列表。
15.如权利要求14所述的方法,其特征在于,包括构造所述质询,以包括来自所述计量证书的MID;来自所述计量证书的计量服务的位置标识;为所述质询所选择的事务ID(TID);以及所选择的计量数据。
16.如权利要求15所述的方法,其特征在于,包括构造所述质询以包括根据一对称密钥加密的所选择的计量数据以产生(passkey(metereddata)),并进一步包括根据来自所述计量证书的公钥(PU-M)加密的密钥以产生(PU-M(passkey)),由此所述计量服务可以将对应于(PU-M)的私钥(PR-M)应用于来自所述质询的(PU-M(passkey))以获得所述密钥、可以将所获得的密钥应用于来自所述质询的(passkey(metereddata))以获得所述计量数据、并且可以存储所获得的计量数据。
17.如要求15所述的方法,其特征在于,包括,如果所述客户机不能构造所述质询以包含所述计量数据库中对来自所选择的计量证书的所确定的MID的所有累积的计量数据,则构造所述质询以进一步包括一设置部分数据标志。
18.如权利要求14所述的方法,其特征在于,包括接收所述响应,所述响应包括所述质询中阐明的MID;所述质询中阐明的事务ID(TID);以及所述质询中阐明的所选择的计量数据的至少一部分。
19.如权利要求18所述的方法,其特征在于,包括,如果所述质询包括一设置部分数据标志,则接收进一步包括一设置部分数据标志的所述响应,所述设置部分数据标志表示,所述客户机构造所述质询以包含所述计量数据库中对来自所选择的计量证书的所确定的MID的所有累积的计量数据,以及,所述客户机因此具有关于所述质询的所确定MID的另外的计量数据要报告给所述计量服务。
20.如权利要求19所述的方法,其特征在于,包括,如果所述响应包括所述设置部分数据标志选择所述计量数据库中的带有来自所选择的计量证书的所确定的MID的另外的计量数据的至少一部分;基于所选择的另外的计量数据和所选择的计量证书,构造一另外的质询;以及将所构造的另外的质询发送给所述计量服务。
全文摘要
计量数据被累积,并根据一计量ID(MID)和一内容关联ID(KID)在客户机的计量数据库中被索引。客户机选择一特定的MID以及计量数据库中具有所选择的MID的计量数据,并基于所选择的计量数据构造一质询且将该质询发送给计量服务。计量服务从质询获得计量数据、存储该计量数据、并构造一响应。客户机接收包括质询中所选择的计量数据的KID列表的响应,并通过对列表中的每个KID,从计量数据库中删除具有所选择的MID和该KID的计量数据,来处理该KID列表。
文档编号G10K15/02GK1690913SQ20051006670
公开日2005年11月2日 申请日期2005年4月22日 优先权日2004年4月23日
发明者B·B·卡特, B·P·埃文斯, C·P·斯特罗姆, M·J·帕克斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1