首页 / 专利库 / 专利权 / 第I章 / 国际申请 / 请求书 / 发明名称 / 用于CCN对象的解耦名称安全绑定

用于CCN对象的解耦名称安全绑定

阅读:459发布:2020-05-12

专利汇可以提供用于CCN对象的解耦名称安全绑定专利检索,专利查询,专利分析的服务。并且本 发明 公开了一种数据托管系统,其便于将解耦名称绑定到数据对象。在操作期间,系统能够接收命令以产生将新名称绑定到数据对象的解耦名称。系统基于数据对象的内容为数据对象产生散列,使得不基于数据对象的名称产生散列。系统然后获得用于签署数据对象的私钥,并通过使用私钥加密数据对象的散列和新名称产生数据对象的解耦名称。这一解耦名称将新名称绑定到数据对象。在客户端基于网络名称 请求 数据对象时,系统能够返回与数据对象的内容相关联的解耦名称。客户端能够使用解耦名称验证数据对象。,下面是用于CCN对象的解耦名称安全绑定专利的具体信息内容。

1.一种计算机实现的方法,包括:
由计算装置接收命令,以产生用于数据对象的解耦名称,其中所述命令包括要绑定到所述数据对象的新名称:
基于所述数据对象的内容为所述数据对象产生散列,其中不基于所述数据对象的名称产生所述散列:
获得用于签署所述数据对象的私钥:以及
通过使用所述私钥加密所述数据对象的散列和所述新名称产生所述数据对象的解耦名称,其中所述解耦名称将所述新名称绑定到所述数据对象。
2.根据权利要求1所述的方法,其中,所述数据对象包括内容中心网络(CCN)的内容对象。
3.一种存储指令的非暂态计算机可读存储介质,所述指令在由计算机执行时,今所述计算机执行一种方法,所述方法包括:
接收命令,以产生用于数据对象的解耦名称,其中所述命令包括要绑定到所述数据对象的新名称:
基于所述数据对象的内容为所述数据对象产生散列,其中不基于所述数据对象的名称产生所述散列:
获得用于签署所述数据对象的私钥:以及
通过使用所述私钥加密所述数据对象的散列和所述新名称产生所述数据对象的解耦名称,其中所述解耦名称将所述新名称绑定到所述数据对象。
4.根据权利要求3所述的存储介质,其中,所述数据对象包括内容中心网络(CCN)的内容对象。
5.一种计算机实现的方法,包括:
由客户端计算装置基于数据对象的网络名称请求所述数据对象:
接收与所述数据对象的内容相关联的解耦名称,其中所述解耦名称包括与所述数据对象的网络名称不同的第二名称,并包括基于所述数据对象的内容的散列值和所述第二名称产生的签名:以及
验证所述解耦名称。
6.根据权利要求5所述的方法,其中,接收所述解耦名称涉及接收作为独立于所述数据对象的数据对象的相应解耦名称。
7.根据权利要求5所述的方法,其中,接收所述解耦名称涉及接收嵌入所述数据对象中的相应解耦名称。
8.根据权利要求5所述的方法,其中,接收所述解耦名称涉及接收包括至少一个解耦名称的清单。
9.根据权利要求8所述的方法,还包括:
从所述清单中的解耦名称获得对象散列值:
散布针对所述对象散列值识别的数据对象的兴趣:以及
响应于散布所述兴趣,获得其散列值匹配所述解耦名称的对象散列值的无名称数据对象。
10.一种计算机系统,包括:
一个或多个处理器:
存储器:以及
耦合到所述一个或多个处理器的计算机可读介质,所述一个或多个处理器存储指令,所述指令在由所述一个或多个处理器执行时,今所述计算系统执行一种方法,所述方法包括:
基于用于数据对象的网络名称请求所述数据对象:
接收与所述数据对象的内容相关联的解耦名称,其中所述解耦名称包括与所述数据对象的网络名称不同的第二名称,并包括基于所述数据对象的内容的散列值和所述第二名称产生的签名;以及
验证所述解耦名称。

说明书全文

用于CCN对象的解耦名称安全绑定

技术领域

[0001] 本公开总体上涉及内容中心网络。更具体而言,本公开涉及向数据对象绑定名称。

背景技术

[0002] 在典型的内容中心网络(CCN)架构中,内容对象具有名称和内容。无论何时针对内容对象创建散列,都基于内容对象的内容以及其名称产生散列。那么,在发布者签署内容对象时,发布者通过加密绑定内容对象的名称和内容的散列来产生签名。因此,内容对象中的签名将内容对象的名称绑定到其内容。
[0003] 而且,可以基于其散列值请求一些内容对象。例如,用于数据收集的典型清单可以包括用于数据收集中多个内容对象的散列,并可以包括用于这些散列值的每个的签名。获得清单的实体能够使用清单中的散列值请求清单中列出的个体内容对象。不过,即使可以通过其散列值请求内容对象,但内容对象仍然连接到特定名称,因为散列是部分基于这个网络名称产生的。
[0004] 这些散列值使得难以将其他名称绑定到内容对象而不会与内容对象的签名或其散列值发生冲突。在典型的CCN架构中向现有内容对象分配新名称要求生成将新名称绑定到现有内容对象数据的副本的新内容对象。当前不能将一条内容分配到多个签署的名称。发明内容
[0005] 一个实施例提供了一种数据托管系统,其便于将解耦名称绑定到数据对象。这个解耦名称包括用于数据对象的名称,并包括将名称绑定到数据对象的散列值的签名。在操作期间,系统能够接收命令以产生用于数据对象的解耦名称。命令可以包括新名称以绑定到数据对象。系统基于数据对象的内容为数据对象产生散列,使得不基于数据对象的名称产生散列。系统然后获得用于签署数据对象的私钥,并通过使用私钥加密数据对象的散列和新名称产生数据对象的解耦名称。
[0006] 在一些实施例中,所述数据对象包括内容中心网络(CCN)的内容对象或信息中心网络(ICN)的内容对象。
[0007] 在信息中心网络中,每条内容都是逐个命名的,且每条数据都绑定到唯一的名称,所述名称将数据与任何其他条数据(例如,同一数据的其他版本或来自其他源的数据)区分开。这个唯一名称允许网络装置通过散布请求或兴趣来请求数据,所述请求或兴趣指出唯一的名称,并能够获得与数据的存储位置、网络位置、应用和传输手段无关的数据。命名数据网络(NDN)或内容中心网络(CCN)是ICN架构的范例;以下术语描述NDN或CCN架构的元件:
[0008] 内容对象:单条命名数据,绑定到唯一名称。内容对象是“持久的”,这意味着内容对象能够在计算装置之内或在不同计算装置之间来回移动但不会变化。如果内容对象的任何成分变化,做出改变的实体创建新的包括更新的内容的内容对象,并将新内容对象绑定到新的唯一名称。
[0009] 唯一名称:CCN中的名称通常与位置无关且唯一地标识内容对象。数据转发装置能够使用名称或名称前缀向产生或存储内容对象的网络节点转发分组,不论内容对象的网络地址或物理位置是什么。在一些实施例中,名称可以是分层结构化可变长度的标识符(HSVLI)。HSVLI可以被分成几个等级成分,可以通过各种方式构造它们。例如,可以按照左侧前缀更大的方式构造各个名称成分parc、home、ndn和test.txt,以形成名称“/parc/home/ndn/text.txt”。于是,名称“/parc/home/ndn”可以是“/parc/home/ndn/test.txt”的“父母”或“前缀”。可以使用另外的成分在内容项的不同版本之间,例如合作文档之间进行区分。
[0010] 在一些实施例中,名称可以包括标识符,例如从内容对象的数据(例如,校验和值)和/或从内容对象的名称的元素导出的散列值。在美国专利申请No.13/847,814(标题为“ORDERED-ELEMENT NAMING FOR NAME-BASED PACKET FORWARDING”,发明人Ignacio Solis,提交于2013年3月20日)中描述了基于散列的名称。名称也可以是平坦标签。在下文中,使用“名称”是指用于名称数据网络中一条数据的任何名称,例如分级名称或名称前缀、平坦名称、固定长度名称、任意长度名称、或标签(例如,多协议标签交换(MPLS)标签)。
[0011] 兴趣:指明对一条数据请求的分组,并包括用于这条数据的名称(或名称前缀)。数据消费者能够在信息中心网络内散布请求或兴趣,CCN/NDN路由器能够向能提供所请求数据以满足请求或兴趣的存储装置(例如,高速缓存服务器)或数据生产者传播。
[0012] 在一些实施例中,ICN系统可以包括内容中心网络(CCN)架构。不过,本文公开的方法还适用于其他ICN架构。在美国专利申请No.12/338,175(标题为“CONTROLLING THE SPREAD OF INTERESTS AND CONTENT IN A CONTENT CENTRIC NETWORK”,发明人Van L.Jacobson和Diana K.Smetters,提交于2008年12月18日)中描述了一种CCN架构。
[0013] 在一些实施例中,系统能够接收访问数据对象的请求,使得请求包括针对内容的网络名称。系统基于用于内容的网络名称选择数据对象,并基于用于内容的散列选择解耦名称。系统然后向请求数据对象的实体至少返回解耦名称。
[0014] 在这些实施例的一些变化中,在至少返回解耦名称的同时,系统将数据对象和解耦名称作为独立对象返回。
[0015] 在这些实施例的一些变化中,在至少返回解耦名称的同时,系统能够创建新数据对象,新数据对象包括原始数据对象的内容,还包括解耦名称,并返回包括解耦名称的新数据对象。
[0016] 在这些实施例的一些变化中,在至少返回解耦名称的同时,系统产生包括解耦名称的清单并返回清单。
[0017] 在这些实施例的一些变化中,数据对象请求可以包括兴趣消息,兴趣消息包括用于数据对象的网络名称或新名称。
[0018] 一个实施例提供了一种客户端装置,所述客户端装置能够基于为数据对象接收的解耦名称验证数据对象。在操作期间,客户端能够基于数据对象的网络名称请求数据对象。响应于发送请求,客户端能够接收与数据对象的内容相关联的解耦名称。解耦名称包括与数据对象的网络名称不同的第二名称,并包括基于数据对象的内容的散列值和第二名称产生的签名。客户端然后验证解耦名称。
[0019] 在一些实施例中,在接收解耦名称的同时,客户端能够从数据对象接收作为独立数据对象的相应解耦名称。
[0020] 在一些实施例中,在接收解耦名称的同时,客户端能够接收嵌入数据对象中的相应解耦名称。
[0021] 在一些实施例中,在接收解耦名称的同时,客户端能够接收包括至少一个解耦名称的清单。
[0022] 在这些实施例的一些变化中,客户端从清单中的解耦名称获得对象散列值,并散布针对对象散列值标识的数据对象的兴趣。然后,响应于散布所述兴趣,客户端能够获得其散列值匹配所述解耦名称的对象散列值的无名称数据对象。附图说明
[0023] 图1示出了根据实施例,便于向数据对象分配解耦名称的示范性网络环境。
[0024] 图2示出了根据实施例的典型内容中心网络的内容对象。
[0025] 图3A示出了根据实施例,包括解耦名称的数据对象。
[0026] 图3B示出了根据实施例,包括解耦名称的无名称数据对象。
[0027] 图4给出了流程图,示出了根据实施例用于为数据对象产生解耦名称的方法。
[0028] 图5给出了流程图,示出了根据实施例,对请求可能与一个或多个解耦名称相关联的数据对象做出响应的方法。
[0029] 图6示出了根据实施例,独立于其关联的数据对象而返回的解耦名称。
[0030] 图7给出了流程图,示出了根据实施例请求可能与一个或多个解耦名称相关联的数据对象的方法。
[0031] 图8示出了根据实施例,便于向数据对象分配解耦名称的示范性设备。
[0032] 图9示出了根据实施例,便于向数据对象分配解耦名称的示范性计算机系统
[0033] 在附图中,相似的附图标记表示相同的附图要素。

具体实施方式

[0034] 进行如下的描述,以使得本领域任何技术人员能够实现和使用所述实施例,并且在特定应用及其要求的上下文中提供。对所公开实施例的各种修改对于本领域的技术人员而言将容易显而易见,可以将本文中定义的一般原理应用于其他实施例和应用而不脱离本公开的精神和范围。因此,本发明并不限于所示出的实施例,而是要符合与本文所公开的原理和特征一致的最宽范围。
[0035] 概述
[0036] 本发明的实施例提供了一种内容管理系统,所述内容管理系统解决了向数据对象绑定多个名称的问题。例如,诸如用户或在线服务的实体可能需要一条内容具有多个名称,从而可能允许通过其多个名称的任一个访问内容,或允许不同实体签署和命名同一条内容。
[0037] 为了实现这个目的,实体基于一条内容自身而不是基于内容的名称为其产生散列。这一实体能够利用其私钥将名称加密绑定到内容,以基于其针对内容的名称和内容的散列产生签名。在一些实施例中,这一实体能够利用它们用于访问内容(例如,在访问无名称对象时)的同一散列来产生签名;它们不需要为内容重新计算散列。
[0038] 其他实体还可以利用它们自己的私钥产生它们自己用于内容的解耦名称,以产生将不同名称加密绑定到内容散列的签名。因此,内容能够具有用于加密绑定到内容的每个名称的签名,不论实体是否绑定(例如,签署)名称和散列。
[0039] 在一些实施例中,内容生产者能够处理请求的网络名称以确定向客户端返回哪些数据对象,而不论使用哪些名称存储数据对象。例如,内容生产者可以是在名称前缀“/bank/statements/Ignacio/statement_date”下存储客户报表的行,其中“statement date”指定报表的月份和年份。客户端能够通过散布针对名称前缀“/bank/Ignacio/recent_statement”的请求或兴趣来请求其最新的报表。银行能够基于请求的名称元素确定用户正在请求的信息类型,并搜索最近的报表以返回到客户端,即使在报表的名称不匹配请求的网络名称时也是如此。
[0040] 一旦内容生产者选择了数据对象以为请求返回,内容生产者就能够利用包括请求名称的名称,并利用有效载荷来创建返回对象,有效载荷包括所请求的数据对象和一个或多个均将名称加密绑定到数据对象的解耦名称。这使得内容生产者能够基于其用于存储数据对象的唯一标识符来签署数据对象。即使客户端的请求包括不同的网络名称,客户端也能够使用解耦名称的签名来验证数据对象。
[0041] 相反,传统的CCN架构使用内容对象的名称来转发内容对象,并将内容对象匹配到兴趣。因此,内容对象的名称被网络的转发器使用,被产生内容对象的应用使用,被正在请求内容对象的应用使用,并被验证内容对象的安全代理使用。这使得传统CCN架构不能允许利用加密绑定到数据对象的多个名称的任一个来访问、转发或验证数据对象。
[0042] 示范性网络环境
[0043] 图1示出了根据实施例,便于向数据对象分配解耦名称的示范性网络环境100。计算环境100可以包括计算机网络102,计算机网络102可以包括任何将各种计算装置彼此接口连接的有线或无线网络,例如经由一项或多项技术(例如,蓝牙、Wi-Fi、蜂窝、以太网、光纤等)实现的计算机网络。网络102可以包括内容中心网络。在一些实施例中,网络102可以包括因特网。
[0044] 计算环境100还可以包括客户端装置108,客户端装置108可以包括能够通过网络102散布兴趣并接收内容对象的任何计算装置。例如,客户端装置108可以包括智能电话
108.1、平板计算机108.2和/或个人计算装置108.m(例如,膝上计算机)。具体而言,客户端装置108能够散布能跨过网络102散布兴趣的兴趣,以获得数据对象。
[0045] 在一些实施例中,计算环境100可以包括内容生产者104,内容生产者104能够为一个或多个客户端装置托管数据或服务。例如,内容生产者104能够从客户端装置108接收并处理请求或兴趣。在内容生产者104接收到请求时,内容生产者104能够基于请求的名称和/或搜索标准选择一条数据,而不论用于存储所选这条数据的名称如何。内容生产者能够使用解耦名称将数据的本地名称绑定到数据,并签署数据及其用于数据的本地名称。
[0046] 回忆在典型的CCN架构中,通过网络返回的内容对象需要具有匹配请求内容对象的兴趣的名称或名称前缀的名称或名称前缀。在一些实施例中,网络102能够使用一个名称转发数据,应用或客户端装置能够使用不同的名称(例如,解耦名称)请求内容并验证其真实性。
[0047] 因此,内容生产者104能够通过产生内容对象来向客户端装置108返回数据,所述内容对象包括来自客户端对数据的请求的网络名称(例如,兴趣名称),并且其有效载荷包括所述这条数据和解耦名称。CCN上沿返回路径的路由器能够使用内容对象的网络名称向客户端装置108返回内容对象,客户端装置108能够使用解耦名称验证内容对象的数据。
[0048] 例如,客户端装置108上的应用能够产生请求一条数据的兴趣,例如名称为“/PARC/ccn.doc”的兴趣,以从“/PARC”域请求ccn.doc。客户端装置108然后在网络102之内散布兴趣,然后向能够满足兴趣“/PARC/ccn.doc.”的内容生产者104转发兴趣。内容生产者104然后使用名称“/PARC/ccn.doc”判断哪些本地数据可用于满足兴趣,并产生包括兴趣名称并在有效载荷中包括文献“ccn.doc”的内容对象。
[0049] 注意,在内容生产者104搜索要返回的数据时,内容生产者不限于搜索匹配名称前缀“/PARC”或“/PARC/ccn.doc.”的现有数据。在一些实施例中,内容生产者能够获得已知与“ccn.doc”相关联的文档“/PARC_Storage/ccn_v5.doc”并产生包括“ccn_v5.doc”的内容对象。内容生产者能够通过产生将任何名称绑定到所述文档的签署解耦名称来签署文档“ccn_v5.doc”,并产生内容对象以包括这个解耦名称。解耦名称中的名称可以包括,例如,网络名称“/PARC/ccn.doc”、存储器名称“/PARC_Storage/ccn_v5.doc”或内容生产者104用于签署文档的任何其他名称。
[0050] 在一些实施例中,即使内容生产者106不托管或未产生这条数据,另一个内容生产者106也可以产生用于内容生产者104托管的这条数据的解耦名称。例如,客户端装置108能够向受信任实体(例如,内容生产者106)发送请求,以获得用于数据的签署名称。这一请求能够利用数据(而非数据名称)的对象散列识别数据。受信任实体能够通过查找与这一对象散列相关联的签署名称前缀来处理这一请求,并向客户端装置108返回这一解耦名称。解耦名称包括数据的对象散列值、受信任实体用于数据的名称以及将名称绑定到数据的对象散列值的签名。
[0051] 在一些实施例中,使用解耦名称允许内容生产者104向新位置移动或拷贝内容,并向内容分配新名称,例如与新位置相关联的名称。例如,如果内容生产者104将文档“ccn.doc”移动到域“/PARC/CSL”上的服务器,即使内容对象被加密绑定到名称“/PARC/ccn.doc”,同一内容对象也能够满足对“/PARC/CSL/ccn.doc”的请求。内容对象具有名称“/PARC/CSL/ccn.doc”,但具有将内容对象的内容绑定到“/PARC/ccn.doc”的加密签名。于是,内容对象现在可以具有网络名称,并能够具有与网络名称不同的签署名称。
[0052] 作为另一范例,如果内容生产者104对应于托管银行报表的银行服务器,客户端装置108能够通过向内容生产者104散布针对报表的兴趣来检索银行报表。内容生产者104能够使用任何标准来选择要返回到客户端装置108的匹配内容;被返回的数据不需要匹配CCN兴趣的名称或名称前缀。用户可以散布包括如下查询的兴趣:“/bank/ignacio/statement/?month=oct&balance<10000。”即使签署名称可能不满足兴趣,内容生产者104也能够处理查询以在用户的银行报表中搜索匹配搜索标准的任何报表。一旦内容生产者104发现一条匹配的数据,内容生产者104就产生并返回包括兴趣名称并在内容对象的有效载荷中包括匹配数据和对应的数据解耦名称的内容对象。
[0053] 图2示出了根据实施例的典型内容中心网络的内容对象200。具体而言,内容对象200包括网络名称202、数据204和基于网络名称202和数据204的散列产生的签名。
[0054] 图3A示出了根据实施例,包括解耦名称的数据对象300。具体而言,数据对象300包括网络名称302、数据304和解耦名称306。解耦名称306包括名称310、从数据304计算的数据散列312和基于数据散列312产生的签名308。数据散列312和签名308都不是基于网络名称302或名称310产生的。
[0055] 在一些实施例中,网络名称302可以包括,例如客户端装置用于存取数据304的名称。另一方面,名称310可以包括持久绑定到数据304且由产生解耦名称306的实体签署的名称。如果多个实体已向数据304绑定解耦名称,内容生产者能够产生数据对象300以包括多个解耦名称。
[0056] 在一些实施例中,内容对象可以是不包括用于数据的网络名称的无名称对象。不过,数据仍然能够通过包括签署的解耦名称来自我证明,签署的解耦名称是由受信任实体(例如,数据的内容生产者或主机)签署的并被绑定到无名称对象。
[0057] 图3B示出了根据实施例,包括解耦名称的无名称数据对象350。具体而言,数据对象350包括数据352和解耦名称354。解耦名称354包括名称358、从数据356计算的数据散列360以及基于数据散列360产生的签名356。数据散列360和签名356都不是基于名称358产生的。
[0058] 图4给出了流程图,示出了根据实施例用于为数据对象产生解耦名称的方法400。在操作期间,内容生产者能够接收命令以将新名称绑定到数据对象(操作402)。为了处理请求,内容生产者基于数据对象的内容而非基于数据的名称产生数据对象的散列(操作404)。
注意,基于数据对象的内容产生散列允许内容生产者将新名称加密绑定到内容,而不论当前用于存储内容的名称如何。
[0059] 内容生产者能够通过获得用于签署数据对象的私钥来产生这种加密绑定(操作406),并利用私钥加密新名称和数据对象的散列,以将新名称绑定到数据对象的内容(操作
408)。内容生产者存储解耦名称(操作410)。
[0060] 返回具有解耦名称的数据对象
[0061] 在一些实施例中,客户端能够暗中接收解耦名称,例如,在客户端接收包括一个或多个解耦名称的数据对象时,如图3中所示。或者,客户端能够将数据对象和任何关联的解耦名称作为独立对象接收,每个都经由其自己的网络名称被访问。例如,在处理来自客户端的请求之后,内容生产者能够返回包括指向签署解耦名称的指针(例如,网络名称)的数据对象。客户端能够利用指针获得签署的解耦名称,并能够使用签署的解耦名称验证数据对象。
[0062] 图5给出了流程图,示出了根据本发明实施例,对请求可能与一个或多个解耦名称相关联的数据对象做出响应的方法500。在操作期间,内容生产者接收请求,以访问数据对象(操作502)。这一请求可以包括唯一地标识数据对象的网络名称,例如,用于数据对象的CCN名称(例如,HSVLI)。内容生产者然后基于网络名称从数据仓库选择数据对象(操作504),并判断是否存在与数据对象的内容相关联的解耦名称(操作506)。如果不存在解耦名称,内容生产者仅返回数据对象以满足请求(操作508)。
[0063] 不过,如果不存在针对数据对象的解耦名称,内容生产者从存储仓库获得解耦名称(操作510),并向客户端装置返回数据对象和解耦名称以满足请求。例如,内容生产者能够判断需要与数据对象一起还是之分开返回解耦名称(操作512)。内容生产者能够基于管理员预设的配置或基于请求中的指示,判断其需要如何返回解耦名称。
[0064] 如果内容生产者要独立返回解耦名称,内容生产者继续将数据对象和解耦名称作为独立的数据对象返回(操作514)。否则,如果内容生产者要将数据对象和解耦名称一起返回,内容生产者能够产生新数据对象,新数据对象包括嵌入数据对象中的解耦名称(操作516),并返回新数据对象(操作518)。
[0065] 在一些实施例中,客户端能够将针对一条内容的数据对象和任何关联的解耦名称作为独立对象接收,每个都经由其自己的网络名称被访问。这样允许独立存储内容及其解耦名称,并由不同实体托管和服务。
[0066] 图6示出了根据实施例,独立于其关联的数据对象650而返回的解耦名称624。例如,在处理来自客户端的请求之后,内容生产者能够返回数据对象600,数据对象600包括两个参考(例如,网络名称):包括针对所签署解耦名称624的网络名称622的安全绑定参考604;以及包括用于这条数据654的网络名称652的数据参考(例如,具有数据的内容对象,其自身可以不包括用于数据的签名)。如果数据被作为无名称对象存储,数据参考606可以包括数据654的散列值。客户端然后能够使用参考604请求包括签署解耦名称624的数据对象
620,并使用参考606请求包括数据654的数据对象650。客户端然后通过独立的数据对象接收解耦名称624和数据654。
[0067] 图7给出了流程图,示出了根据实施例请求可能与一个或多个解耦名称相关联的数据对象的方法700。在操作期间,客户端能够从内容生产者请求数据对象(操作702)。在客户端接收到包括数据对象的响应时(操作704),客户端能够分析响应,以判断响应是否还包括或参考解耦名称(操作706)。
[0068] 倘若如此,客户端装置能够获得解耦名称(操作708)。例如,客户端装置能够直接从接收自内容生产者的响应获得解耦名称。或者,客户端能够从响应获得对解耦名称的援引,能够发出独立的请求以在独立的数据对象中接收针对所请求数据对象的解耦名称。客户端然后验证解耦名称(操作710)。如果解耦名称有效,客户端能够接受数据对象(操作712)。不过,如果验证不成功,客户端可以执行补救行动(操作714),例如拒绝数据对象,提示用户决定是否接受数据对象或执行另一种补救行动。
[0069] 具有解耦名称的清单
[0070] 发布者能够在各个副本服务器或托管服务器间托管很多无名称内容对象。这些无名称内容对象是真正无位置的对象,因为它们不包括名称,从而没有暗示的路由。发布者能够为无名称内容对象或无名称内容对象的集合创建清单(或清单体系)。这样允许发布者向请求这些内容对象的客户端提供清单(或清单体系的根清单),使得客户端能够产生兴趣,以请求无名称内容对象。在美国专利申请No.14/337,026(代理文献号No.PARC-20140480US01,标题为“SYSTEM FOR DISTRIBUTING NAMELESS OBJECTS USING SELF-CERTIFYING NAMES”,发明人Marc Mosko,提交于2014年7月21日)中描述了清单。
[0071] 清单(或根清单)可以包括可用于唯一地标识无名称内容对象或其他非根清单的内容对象散列(COH)值。清单还包括用于托管清单并还可以托管无名称内容对象的服务器的网络名称或名称前缀。
[0072] 在一些实施例中,清单可以包括指向一个或多个数据对象的解耦名称。例如,不论其名称是什么,清单都能够通过其散列值而指向其他清单或内容(例如,内容对象)。内容可以是由内容生产者产生的数据对象,例如用户的移动电话拍摄的照片。移动电话能够计算数据对象的散列,并能够生成将名称加密绑定到数据对象的散列的解耦名称,还能够生成包括这一解耦名称的清单。这一清单可以在任何域名空间或名称前缀间存储,例如用于用户移动电话、其个人计算机、在线存储仓库(例如Dropbox)或在线服务(例如,在线社交网络)的名称前缀。
[0073] 数据消费者能够通过首先从能够提供清单的任何域名空间获得清单来获得数据对象。例如,数据对象可以针对用户的移动电话命名为“/isolis/pictures/101.jpg”的照片。如果用户通过在线服务(例如,Yahoo!Inc.提供的照片托管服务Flickr)共享照片,在线服务能够返回清单,所述清单包括将照片的名称和签名绑定到照片COH的解耦名称。在数据消费者接收到清单时,消费者能够使用解耦名称获得照片的COH,并确定用于照片的名称绑定。
[0074] 在一些实施例中,例如,能够由托管清单的在线服务通过包括绑定到清单的COH的解耦名称来签署清单。而且,已经由用户的移动电话产生了用于照片的解耦名称。因此,在数据消费者接收清单时,消费者能够使用清单的签名验证清单确实来自在线服务,并能够使用清单中照片的解耦名称验证对象自身的真实性(例如,验证照片自身来自用户的移动电话)。因此,可以使用解耦名称验证照片,不论提供清单的实体为何,且不论照片托管在哪里或从哪个域名空间接收的照片。
[0075] 在一些实施例中,数据对象可以具有不同实体加密绑定到数据对象的多个名称。例如,如果数据对象是包括多个人的照片,照片中的每个人都能够为照片产生独立的解耦名称,解耦名称是利用那个人的私钥签署的。其他用户能够使用COH获得照片,并能够使用来自照片中某人的解耦名称验证照片(例如,验证这个人确实在照片中)。
[0076] 可以将这些解耦名称对象独立存储和散布(例如,像其自己的对象那样)在清单中(清单可以包括针对不同对象或同一对象的解耦名称),或嵌入它们命名的对象中。例如,照片托管服务能够允许各个用户在照片中“标记”它们自己。然后,在用户查看或下载照片时,托管服务能够返回照片对象,所述照片对象包括来自对照片进行数字签名的照片中每个人的独立解耦名称对象。或者,在线服务能够产生包括这些来自照片中每人的独立解耦名称对象的清单。
[0077] 图8示出了根据实施例,便于向数据对象分配解耦名称的示范性设备800。设备800可以包括多个模,多个模块可以经由有线或无线通信信道彼此通信。设备800可以利用一个或多个集成电路实现,可以包括比图8所示那些更少或更多模块。此外,设备800可以被集成到计算机系统中,或实现为能够与其他计算机系统和/或装置通信的独立装置。具体而言,设备800能够包括通信模块802、散列计算模块804、名称绑定模块806、清单生成模块808和数据验证模块810。
[0078] 在一些实施例中,通信模块802能够向客户端发送数据对象的解耦名称,和/或能够从内容生产者接收解耦名称。散列计算模块804能够为数据对象的内容计算散列,而不考虑数据对象的名称。名称绑定模块806能够利用发布者的密钥将名称绑定到数据对象,以签署数据对象的名称和散列。清单生成模块808能够产生包括一个或多个与对象集合中的一个或多个数据对象相关联的解耦名称的清单。数据验证模块810能够通过验证数据对象的解耦名称中的签名来验证数据对象。
[0079] 图9示出了根据实施例,便于向数据对象分配解耦名称的示范性计算机系统902。计算机系统902包括处理器904、存储器906和存储装置908。存储器906可以包括易失性存储器(例如,RAM),易失性存储器充当被管理存储器并可用于存储一个或多个存储池。此外,计算机系统902可以耦合到显示装置910、键盘912和定点装置914。存储装置908能够存储操作系统916、数据管理系统918和数据926。
[0080] 数据管理系统918可以包括在由计算机系统902执行时能够今计算机系统902执行本公开中描述的方法和/或过程的指令。具体而言,数据管理系统918可以包括用于向客户端发送数据对象的解耦名称的指令,和/或能够从内容生产者(通信模块920)接收解耦名称。此外,数据管理系统918可以包括用于为数据对象的内容计算散列而不考虑数据对象的名称的指令(散列计算模块922)。数据管理系统918还可以包括利用发布者的密钥将名称绑定到数据对象,以签署数据对象的名称和散列的指令(名称绑定模块924)。
[0081] 数据管理系统918可以包括用于产生清单的指令,所述清单包括一个或多个与对象集合中的一个或多个数据对象相关联的解耦名称(清单生成模块922)。数据管理系统918还可以包括通过验证数据对象的解耦名称中的签名来验证数据对象的指令(数据验证模块924)。
[0082] 数据926可以包括本公开所述方法和/或过程需要作为输入或产生作为输出的任何数据。具体而言,数据926能够存储至少数据对象的集合以及用于数据对象的一组解耦名称。
[0083] 在该具体实施方式中描述的数据结构和代码通常储存在计算机可读存储介质上,该计算机可读存储介质可以是能够存储由计算机系统使用的代码和/或数据的任何设备或介质。计算机可读存储介质包括,但不限于易失性存储器、非易失性存储器、诸如磁盘驱动器、磁带、CD(光盘)、DVD(数字多用盘或数字视频盘)的磁和光存储装置或其他能够存储现在已知或以后开发的计算机可读介质的介质。
[0084] 在具体实施方式部分中描述的方法和工艺可实施为能够存储在如上所述的计算机可读存储介质中的代码和/或数据。当计算机系统读取并执行计算机可读存储介质上存储的代码和/或数据时,计算机系统执行具体化为数据结构和代码并存储于计算机可读存储介质内的方法和过程。
[0085] 此外,上述方法和过程可以包括在硬件模块中。例如,硬件模块可以包括,但不限于专用集成电路(ASIC)芯片、现场可编程阵列(FPGA)和其他现在已知或以后开发的可编程逻辑器件。在激活硬件模块时,硬件模块执行硬件模块之内包括的方法和过程。
高效检索全球专利

专利汇是专利免费检索,专利查询,专利分析-国家发明专利查询检索分析平台,是提供专利分析,专利查询,专利检索等数据服务功能的知识产权数据服务商。

我们的产品包含105个国家的1.26亿组数据,免费查、免费专利分析。

申请试用

分析报告

专利汇分析报告产品可以对行业情报数据进行梳理分析,涉及维度包括行业专利基本状况分析、地域分析、技术分析、发明人分析、申请人分析、专利权人分析、失效分析、核心专利分析、法律分析、研发重点分析、企业专利处境分析、技术处境分析、专利寿命分析、企业定位分析、引证分析等超过60个分析角度,系统通过AI智能系统对图表进行解读,只需1分钟,一键生成行业专利分析报告。

申请试用

QQ群二维码
意见反馈