对等网络中的安全分层名字空间的制作方法

文档序号:6416066阅读:135来源:国知局
专利名称:对等网络中的安全分层名字空间的制作方法
技术领域
本发明一般涉及计算机系统,尤其涉及目录服务的安全和映射特点。
背景技术
对等网络指使用个人计算机不仅用于基于客户机的计算任务。更具体地,对等计算调节这一事实,现代个人计算机具有快处理器、大存储器以及大硬盘,而当执行诸如电子邮件和web浏览的常见的计算任务时,没有一个是被充分使用的。当个人计算机既担当客户机又担当服务器时,它担当“对等体”的角色。
许多应用的典型计算模型是客户机/服务器模型。服务器计算机通常具有巨大的资源,并且响应来自客户机计算机的对资源和数据的请求。客户机计算机启动对来自服务器的资源或数据的请求。计算的客户机/服务器模型的一个较好的示例是web浏览。因特网上的web服务器通常是高端专用服务器计算机,具有十分快的处理器(或多处理器)以及庞大的硬盘阵列。web服务器储存与web站点关联的所有内容(HTML文件、图形、音频和视频文件等等),并倾听察看特定web页上的信息进来的请求。当一个页被请求时,web服务器向请求客户机发送该页及其关联的文件。
客户机/服务器和对等网络之间的一个对照点是域名服务(DNS)的使用。服务器计算机通常在DNS中注册,使客户机计算机能够将名字解析为服务器计算机的因特网协议地址。客户机计算机通常未在DNS中注册,因为许多客户机具有瞬时连接且连接不可预知的时间,并且对每一连接可以被分配一个新的因特网协议地址。同时,客户机计算机不具有共享的资源,并且不响应对资源的请求。因此,其它计算机不需要解析客户机计算机的名字。用于客户机计算机的DNS地址记录是不需要的。
另一方面,对等体计算机具有共享的资源。然而,它们仍具有瞬时连接。对等体计算机可以使用DNS动态更新来注册它们的名字,然而,因特网上很少DNS服务器支持DNS动态更新。为成功用于对等网络,对等体计算机不依赖于现有的DNS基础结构。因此,为将对等体名字解析为其地址并且不依赖于DNS,可以使用一种称为对等体名字解析协议(PNRP)的机制,或其它对等体名字解析协议,如P-GRID。
对等名字解析和DNS都有问题,例如,当名字空间改变时,DNS具有高管理成本;对等名字解析协议被局限在将对等体名字解析为IP地址、协议名字和端口标识。需要一种用于名字解析和名字映射的方法,提供增强的结果,而具有较低的管理成本。

发明内容
因此,本发明提供了一种执行查找的方法,允许将对等体名字解析为任意数据片段,并提供对DNS的安全替代。该方法还支持多个名字空间根。在一个实施例中,该方法通过首先生成与名字空间关联的一个或多个加密密钥来允许进行查询。然后,该方法提供使用加密密钥之一来创建权限。接着,该方法提供通过请求与一个或多个名字空间关联的权限使该一个或多个名字空间能够引用该权限,来发表对等类型解析,使名字空间的名字解析为权限。对期望通信的任一其它名字空间,该方法提供发表命名与其它名字空间关联的权限和一个或多个名字的解析以解析为一个或多个其它权限。该方法也提供通过发布权限和服务名字提供服务,来接受IP地址、协议名字和端口。
依照一个实施例的另一方法针对通过因特网实现服务。该方法包括对服务生成一个或多个密钥来提供权限。下一步,请求顶级域的管理员发布对服务的解析。下一步,将该权限委托给服务的分组;并通过因特网发布服务。发布服务包括发布标识服务的端口号、协议名字和IP地址的解析。
另一实施例针对一种操作名字解析服务的方法,包括将权限和名字的组合解析为第二权限;并将该第二权限解析为进一步的权限或最终结果,如任意数据、端口、协议名字或IP地址。由此,名字解析包括委托的权限的分层或链式查找,与要求委托的权限的IP地址无关。
参考附图阅读以下说明性实施例的详细描述,可以更清楚本发明的另外的特点和优点。


尽管所附权利要求书使用特殊性阐明了本发明的特点,然而结合附图阅读以下详细描述,能够最好地理解本发明及其目的和优点,附图中图1是一般说明了本发明所驻留的示例性计算机系统的结构图;图2是依照本发明的一个实施例的系统的结构图;图3所示是对等类型解析的结构图;图4所示是依照本发明的一个实施例的方法的流程图。
具体实施例方式
转向附图,其中,相同的标号表示相同的元件,说明本发明在合适的计算环境中实现。尽管并非所需,本发明将在计算机可执行指令的一般语境下描述,计算机可执行指令如程序模块,由个人计算机执行。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。此外,本领域的技术人员可以理解,本发明可以采用其它计算机系统配置来实践,包括手持式设备、多处理器系统、基于微处理器或可编程消费者电子设备、网络PC、小型机、大型机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程存储器存储设备中。
图1说明了适合在其中实现本发明的计算系统环境100的一个示例。计算系统环境100仅为合适的计算环境的一个示例,并非建议对本发明的使用或功能的范围的任何局限。也不应将计算环境100解释为具有关于示例性操作环境100中说明的任一组件或其组合的依赖或需求。
本发明可以使用众多其它通用或专用计算系统环境或配置来操作。适合使用本发明的众所周知的计算系统、环境和/或配置包括但不限于个人计算机、服务器计算机、手持式或膝上设备、平板设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费者电子设备、网络PC、小型机、大型机、包括任一上述系统或设备的分布式计算环境等等。
本发明可在计算机可执行指令的一般语境下描述,计算机可执行指令如程序模块,由个人计算机执行。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和/或远程计算机存储媒质中,包括存储器存储设备。
参考图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给予不同的数字来说明至少它们是不同的副本。用户可以通过输入设备,如输入板或电子数字化仪164、麦克风163、键盘162和指向设备161(通常指鼠标、轨迹球或触摸板)向计算机110输入命令和信息。其它输入设备(未示出)可包括操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至系统总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至系统总线121。监视器191也可以与触摸屏面板或其类似物集成。注意,监视器和/或触摸屏面板可以物理地耦合至结合计算设备110的外壳,如平板类型的个人计算机。另外,诸如计算设备110的计算机也包括其它外围输出设备,如扬声器197和打印机196,通过输出外围接口194或其类似物连接。
计算机110可以在使用到一个或多个远程计算机,如远程计算机180的逻辑连接的网络化环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机110相关的元件,尽管在图1中仅说明了存储器存储设备181。图1描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但是也可以包括其它网络。这类网络环境常见于办公室、企业范围计算机网络、内联网以及因特网。例如,在本发明中,计算机系统110可包括数据从其移植的源机器,并且远程计算机180可包括目标机器。然而注意,源和目标机器不需要通过网络或任何其它装置连接,但是作为替代,数据可以通过能够由源平台写并可由一个或多个目标平台读的任一媒质移植。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或其它装置,用于通过WAN 173,如因特网建立通信。调制解调器172可以是内置或外置的,通过用户输入接口160或其它合适的机制连接至系统总线121。在网络化环境中,描述的与计算机110相关的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图1说明了远程应用程序185驻留在存储器设备181上。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
在以下的描述中,将参考由一个或多个计算机执行的行动和操作的符号表示来描述本发明,除非另外指示。由此,可以理解,这类行动和操作有时候也被称为计算机执行的,包括计算机的处理单元对以结构化形式表示的数据的电信号的操作。这种操作对数据进行转化或在计算机的存储器系统的单元上维护该数据,从而以本领域技术人员都理解的方式重新配置或改变了计算机的操作。维护数据的数据结构是存储器的物理单元,具有由数据的格式定义的特定属性。然而,尽管本发明在上述上下文中描述,它并不意味着局限,如本领域的技术人员所理解的,也可以以硬件实现后文所描述的各种行动和操作。
参考图2,结构图说明了对等网络体系结构200。如图所示,体系结构200可以耦合至Win32应用编程接口(API)202、WinSock API 204以及提供加密支持的API 206。体系结构200包括制图组件208,负责维护一组称为图形的已连接节点,并提供跨图形的数据的注满和复制。制图组件208使用注满和同步组件210、存储组件212和图形维护组件214。
体系结构200还包括组合组件216。组合组件216可以被实现为图形顶层缺省提供的安全层。安全层定义了组创建、邀请和到组的连接之后的安全模型。另外,可以配置组合组件216来将PNRP调节为名字解析协议,并使多个应用能够共享同一图形。组合组件216使用组安全218以及组安全服务提供者(SSP)子组件220。
体系结构200还包括名字服务提供者(NSP)组件222。NSP组件222提供了访问任意名字服务提供者的机制。由此,如本领域的技术人员所理解的,对特定名字服务提供者的参考被理解为示例性的。在Windows对等网络的情况下,对等应用使用NSP接口来访问PNRP。
体系机构200还包括PNRP组件224,提供了对等名字解析;以及身份管理器226,允许对等身份的创建和管理。
图2包括微软TCP/IP版本6协议228。微软TCP/IP版本6协议(IPv6)是示例性的,并提供了Windows对等网络通过其操作的传输。
PNRP组件224使用对等名字解析协议,允许对等名字被解析为IP地址、协议和端口。更具体地,为在对等体之间通信,每一对等体必须能够发现彼此的存在,并从名字或其它类型的标识符解析彼此的网络位置(地址、协议和端口)。对等体如何发现彼此并解析彼此的名字来通信因瞬时连接和DNS中地址记录的缺乏而复杂化。
对等网络解析协议,如P-Grid和PNRP对名字解析提供了分布式且无服务器的名字解析和对等发现方案。PNRP如DNS一样提供了遍及云(cloud)储存在计算机上的名字的完整列表。与DNS不同,没有提供名字解析的服务器。每一对等体在其高速缓存中储存该列表的一部分,并可以引用其它对等体。中央服务器不用来解析名字。然而,PNRP并不是严格地无服务器的,因为有一个种子节点计算机来便于初始化。
与使用名字相反,诸如DNS中完全合格的域名,PNRP使用标识符来标识对等实体。标识符仅为数字,因此,并不遇到语言和商标或版权问题。PNRP允许每一单独的对等体计算机、用户、组、设备、服务或其它类型的对等体节点具有其自己的对等体标识符。标识符的列表在使用多级高速缓存和参考系统的对等体间分布,使名字解析的规模大至上亿个标识符,而在每一节点上需要最小的资源。
PNRP是用于在对等体之间发送消息来进行名字解析和对等体发现的协议。PNRP使用多个云,其中,云是使用特定范围的地址的一组计算机。范围是其中地址为唯一的网络区域。PNRP云基于IPv6地址的地址范围。云可以包括全球云,与全球IPv6地址范围相应,并表示整个IPv6因特网上的所有计算机。只有一个单个的全球云。站点特定云对应于站点的IPv6地址范围和站点本地地址。站点是定义了地理或拓扑边界的组织网络的一部分。可以有多个站点特定云。“连接本地”(link-local)云对应于“连接本地”IPv6地址范围和“连接本地”地址。“连接本地”云用于特定连接,通常与本地挂连的子网相同。可以有多个“连接本地”云。
对等体名字和对等ID对等体名字是通信的端点,可以是计算机、用户、组、服务或希望解析为IPv6地址的别的东西。对等体名字可以注册为不安全的和安全的。不安全的名字仅为易受电子欺骗的文本串,因为任何人可以注册重复的不安全名字。不安全名字最好在专用或其它安全网络中使用。安全名字仅可由所有者注册,并采用证书和数字签名来保护。
PNRP标识符可以是256比特长,并包括一组高位128比特,称为对等标识符,为分配给端点的对等名字的散列。
端点的对等体名字具有以下格式Authority.Classifier(权限.分类符)。对于安全的名字,Authority(权限)是以十六进制字符的对等体名字的公钥的安全哈希算法(SHA)散列。对于不安全名字,Authority是单个字符“0”。Authority通常是基64-编码的二进制数据(base64-encoded binary data)。由此,Authority提供了令对等体名字安全的方法。可以询问对等体名字的发布者来提供与权限所基于的公钥相应的私钥的所有权的证明。特别地,在PNRP中发布的数据通常使用权限私钥来签名(在(地址,协议名字,端口号)元组的具体情况中,发布的数据被称为经证明的对等体地址(CPA))。
Classifier(分类符)是标识应用的串,并可以是达150字符长度的Unicode(统一代码)串。
低位的128比特用于服务定位,为唯一地标识同一云中的相同对等标识符的不同实例的生成数字。
对等标识符和服务定位的256比特的组合允许多个PNRP标识符从单个计算机注册。
对每一云,每一对等体节点管理PNRP标识符的高速缓存,包括其自己的注册PNRP标识符和随时间高速缓存的条目。位于云中所有对等体节点上的PNRP标识符的整个组包括分布散列表。此外,给定PNRP标识符的条目可以位于多个对等体上。PNRP高速缓存中的每一条目包含PNRP标识符、CPA以及注册节点的IPv6地址。CPA是自签名的证书,为PNRP标识符提供了验证保护,并包含应用端点信息(地址、协议号和端口号)。
因此,名字解析进程包括将PNRP标识符解析为CPA。在获取CPA之后,可以开始与期望端点的通信。由此,PNRP为节点提供了发布“<对等体名字>→<数据>”关联的方法,使其它节点能够搜索对等体名字并确定数据。
名字解析当对等体希望将对等体名字解析为其地址、协议和端口号时,它基于对等体名字构造对等标识符。本领域中有若干种对等解析协议,这里的讨论参考PNRP作为示例性协议。然而,从本揭示得益的本领域的技术人员可以理解,其它解析协议可以从这里的实施例得益。
对等体在其自己的高速缓存中检查条目,查找匹配对等标识符的条目。如果找到,对等体向对等体发送PNRP请求(Request)消息,并等待响应。这一行为确保与其通信的对等体节点在云中为活动的。如果未找到,对等体向与具有最接近匹配要解析的对等标识符的对等标识符的条目相应的对等体发送PNRP请求消息。接收PNRP请求消息的节点检查其自己的高速缓存。如果找到,则将该请求转发到预期节点,预期节点通过请求路径发送回响应。如果未找到,则向与具有最接近匹配要解析的对等标识符的对等标识符的条目相应的对等体发送PNRP请求消息,依此类推,直到找到正确的对等体。更具体地,对等体知道对等标识符的范围,包括高于及低于标识符范围的那十个,并且为了明确起见,简化了上述说明和以下的示例。通过对等体的图形来导航所需要的实际中继段数是log(对等标识符的数字空间)。
现在参考图3,一组对等体节点提供了名字解析的一个示例。对等体A 310具有其自己的PNRP标识符(200)条目以及PNRP标识符450和500。从一个节点到另一个的箭头指箭头始发的节点在其高速缓存中具有箭头指向的节点的条目。
在该示例中,假定对等体A 310想要解析PNRP ID 800。对等体A 310向具有最接近800的PNRP ID的节点发送PNRP请求消息,该消息由对等体C 320保留,因为500在数字上比对等体A 310保留的其它条目更接近800。如图所示,对等体C 320不具有PNRP ID 800的条目,并且不具有更接近800的条目。对等体C 320向对等体A发送回响应来指示这一事实。
由于450是下一个在数字上更接近800的PNRP ID,对等体A 310向节点对等体B 330发送PNRP请求消息,因为它注册了PNRP ID 450。对等体B 330将该请求转发到注册了PNRP ID 800的IP地址,为对等体E 340。尽管对等体B在其高速缓存中具有对等体E的条目,然而高速缓存条目的存在并不确保对等体E当前在网络上可用。因此,对等体E 300向对等体B 330发送回响应。对等体B 330然后向对等体A 310发送回响应。依照名字解析过程,具有PNRP ID 350的对等体D 350不接收任何消息。为避免转发PNRP请求消息中的循环,每一消息包含已转发该请求的对等体的列表。当转发PNRP请求消息时,其内容被用来填充转发该消息的节点的高速缓存。当通过返回路径发送回响应时,其内容也被用来填充节点高速缓存。
PNRP的一个问题是为与对等体通信,权限必须对对等体是已知的。权限是一个较大的数字,没有解析协议来避免必须将权限传递给对等体想要与其通信的其它对等体。响应是安全的,因为它们被绑定在RSA密钥上,并可以证明是安全的。PNRP也使authority.name(权限.名字)能够提供IP地址并限制在定位端口上。
上述示例说明了PNRP如何为对等体节点映射对等体名字。这里的实施例提供了一种一般化PNRP的系统和方法来支持将对等体名字映射到任意的数据片段。这里描述的实施例调节了PNRP映射的能力来提供域名服务(DNS)的安全替代。在DNS中,顶级域(TLD)由已分配名字和数字的因特网团体(ICANN)管理。因特网的DNS允许用户使用容易记住的域名(如“www.icann.org”)而不是在因特网上分配给每一计算机的全为数字的IP地址(如192.0.34.65)来引用web站点和其它资源。每一域名由一系列由点分隔的字符串(称为“标签”)组成。域名中最右边的标签称为“顶级域”(TLD)。
DNS形成一个类似树的层次。每一TLD包括许多二级域(如能够在“www.iann.org”中找到的“ICANN”);每一二级域可以包括许多三级域(“www.icann.org”中的“www”),等等。
操作每一TLD(包括维护TLD中的二级域的注册)的责任被委托给特定的组织。这些组织被称为“注册操作员”、“负责人”或简单地为“被委托者”。
DNS提供了根名字服务,包括.com、.info、.net、.gov等等的服务。例如,对www.microsoft.com的请求将首先定位“com”,然后该请求被转发到若干负责“com”的服务器之一。这些服务器然后搜索与“microsoft”相关联的地址。负责microsoft.com的服务器然后提供www.microsoft.com的“www”部分的地址。DNS的一个问题是在“microsoft.com”空间中创建自己的名字是不可行的。另外,为改变一个名字,系统管理员必须运行地址并且通过经若干机器的传播来通知服务器,这是不合时的。
简单公钥基础结构(SPKI)是规定仅能够可信地要求我的密钥的设备是该密钥的创建者的系统。这由其它设备来决定是否要相信一个设备。例如,设备可以提供密钥对,如(myname,mypublickey)privatekey((我的名字,我的公钥)私钥),下标标识名字和密钥是签名的。设备也可以使用其它设备所知的密钥(myname,youmame,yourpublickey,mypublickey)myprivatekey((我的名字,你的名字,你的公钥,我的公钥)我的私钥)来签署证书。其它设备也可以为其自己的密钥(yourname,yourpublickey)yourprivatekey((你的名字,你的公钥)你的私钥)发表证书。由此,如果设备想要检索你的公钥并且该设备信任发布该密钥的设备,则该设备不需要直接从该密钥的所有者检索该密钥。
在SPKI中,如果用户想要找出一个密钥,则可以查询具有该密钥的另一证书来证明身份并提供联系该密钥的所有者的方法,也可以查询该所有者。SPKI一般提供,提供公钥和名字能够提供一个密钥,SPKI允许分层结构来定位所期望的公钥。
为本揭示的目的,使用符号[]来表示权限。使用{}[auth]({}[权限])来表示使用权限私钥来签名。这里的实施例针对通过提供名字和权限能够产生第二权限([auth],name)→(auth2)(([权限],名字)→(权限2))而不指定IP地址来支持多个名字空间的根名字服务。如果需要IP地址,则可以将查找的结果用于另一查找,直到将IP地址提供为结果。
参考图4,流程图说明了依照一个实施例的方法。块410提供为机器或名字空间生成密钥。密钥可以是SPKI类型密钥,从而使用自签名的证书来提供验证,一些证书可以格式化为X.509证书。块420提供散列生成的公钥来创建权限[A]。可以对其尺寸不相关的系统使用公钥的任一可核实防冲突减小变换或实际公钥。
块430提供通过请求与一个或多个名字空间关联的权限令一个或多个名字空间能够引用该权限来发表对等类型的解析,使名字空间的名字解析为权限。由此,如果有通信与权限参考所期望的具有名字N1、N2…NN的其它名字空间S1、S2、…SN,请求这些名字空间的权限使用诸如PNRP([S1].N1)→A,([S2].N2)→A…([SN].NN)→A的对等名字解析协议来发表,使名字N1、N2能够解析为A(权限)。块440提供,对期望通信的任一其它权限,发表命名与其它权限关联的权限和名字并提供其它权限的解析。由此,对期望通信的具有名字空间N1、N2…NN的任一其它权限A1、A2…AN,发表对([A].N1)→A1;([A].N2)→A2…([A].NN)→AN的解析。块450提供,对提供的任一服务,发布权限和服务名字,并返回一个或多个IP地址、协议名字和端口的最终结果。由此,对任一提供的服务,发布([A].servicename)→(IPaddress,protocol name,port)(([A].服务名字)→(IP地址,协议名字,端口号))。
也可以解析服务来提供所期望的任意数据。例如,计算机可以使用这里描述的实施例来对不同的项目集合跟踪清单。依照一个实施例,可以通过分层名字空间来定位项目。在一个示例中,可以使用顶级的公司来组织层次。下一级可以是公司内的仓库。每一仓库能够支持识别零件名字的级。零件名字级能够支持清单级和价格级等等。每一清单级和价格级能够解析为标识现有的存货。作为对提供端口名字、协议和IP地址的替代,依照该实施例,例如,查询可以解析为最终结果,如提供有关可用性的数据。在一个实施例中,最终结果可以是公司提供最低价格并有可用产品的查询,在这一情况下,最终结果可以是始发的公司。
在一个实施例中,用来定位IP地址、端口和协议名字的权限可以从对等网络的高速缓存中检取。然而,如果从高速缓存中检取IP地址、端口和协议名字,需要进一步的解析来达到所有者以作出询问。
遵循依照一个实施例的方法,服务能够生成服务密钥来提供权限,如权限=散列(服务的公钥)。下一步,服务可以请求ICANN.com的权限或TLD的另一管理员来发布([com],服务)→散列(服务的公钥)。下一步,依照该方法,服务向名字空间,如分组([服务],分组)→散列(分组公钥)委托权限。下一步,服务提供发布web服务([服务].www)→(IP地址,TCP,80)。
由此,为使用ICANN实现该方法并使用该方法来提供域名服务,ICANN能够具有公有/私有密钥对并使用公钥来导出权限[ICANN]。ICANN然后能够提供每一TLD的管理员生成一密钥对,以及关联的权限([com]、[edu]、[org]等等)。ICANN然后发布每一TLD的绑定{[ICANN].com→[com]}[ICANN]{[ICANN].edu→[edu]}[ICANN]{[ICANN].org→[org]}[ICANN]在另一示例中,Microsoft创建密钥对,并向com域的管理员提供权限[Microsoft]。该管理员然后发布{[com].microsoft→[Microsoft]}[com]Microsoft管理员从而能够为外部可见的Microsoft服务而不是主机{[Microsoft].www→(地址,TCP,80)}[Microsoft]发布CPA。由此,该方法提供了端口和协议信息而不仅是地址。通过启用对服务的解析,该方法比诸如DNS的仅对主机解析的查找方法更有用。注意,[ICANN]仅是一个可能的根权限,并且可以容易地创建其它权限。可以设立在不同地址范围内操作的本地名字空间。
提供的方法比DNS类型的查找更有优势。例如,该方法使用签名的名字,比DNS提供附加的安全。
该方法也比诸如PNRP的典型的对等名字解析协议更有优势。如之前所描述的,PNRP可以通过全球PNRP云实现。如果所有发布者参加全球PNRP云,则当初级/二级名字服务器记录改变并且更高级域管理员必须更新其配置并且对DNS高速缓存的变化必须传播时,不需要具有初级/二级名字服务器记录而增加维护人员的管理负担。依照这里提供的方法所执行的查找导致减轻的管理员责任。“上行”管理员需要改变记录的唯一时间是当有人创建新密钥对且收回旧权限时,这仅在严重的安全破坏事件中发生。
另外,与当前的查找方法不同,能够仅通过创建新权限来委托权限而轻微地支持动态地址。例如,如果Microsoftweb服务器使用动态主机控制协议(DHCP)分配的地址,则服务器也能够具有密钥对。密钥对令服务器能够生成权限[www],Micorsoft管理员能够发布{[Microsoft].www→[www]}[Microsoft],而不需要更新实际的IP地址。
无论何时向web服务器分配新地址,它发布{[www].→(地址,TCP,80)}[www]由此,该方法提供了一种动态DNS类型的查找,其中,每一主机能够自由地更新细节,而不需要更新中央服务器。在该方法的一个实施例中,动态查找可以导致权限的环型链,其中,最后的权限和第一个权限是同一个。例如,其它服务的第一个售主能够提供一个权限,作为对查询的响应,其中,该权限与操作来为具有预定质量的售主提供查找的服务关联。如果第一售主具有预定质量的一个或多个,则返回的权限包括第一售主的权限,作为对查询的响应。
鉴于可以应用本发明原理的许多可能的实施例,可以认可,这里参考附图描述的实施例仅为说明性的,并非对本发明的范围的局限。例如,本领域的技术人员认可,以软件示出的说明的实施例的元件可以以硬件实现,反之亦然,或者可以在不脱离本发明的精神的情况下对说明的实施例进行布置和细节上的修改。因此,这里描述的本发明考虑能够处于所附权利要求书及其等效技术方案的范围之内的所有这类实施例。
权利要求
1.一种允许连接的设备之间的查找的方法,其特征在于,所述方法包括生成与名字空间相关联的一个或多个加密密钥;使用所述加密密钥之一创建权限;通过请求与一个或多个名字空间关联的权限令所述一个或多个名字空间能够引用所述权限,来发表对等类型的解析,使所述名字空间的名字解析为所述权限;以及对期望通信的任一其它名字空间,发表命名与所述其它名字空间关联的权限和一个或多个名字的解析,来解析为所述其它权限的一个或多个。
2.如权利要求1所述的方法,其特征在于,所述连接的设备是对等网络云的一部分。
3.如权利要求1所述的方法,其特征在于,所述对等类型解析是指对期望通信和参考的具有名字N1、N2…NN的一个或多个名字空间S1、S2…SN,对所述名字空间作出权限的请求,来发表([S1].N1)→A、([S2].N2)→A…([SN].NN)→A,以使名字N1、N2…NN解析为所述权限。
4.如权利要求1所述的方法,其特征在于,它还包括对任一服务,发布所述权限和服务名字来接收提供数据的最终结果。
5.如权利要求1所述的方法,其特征在于,它还包括对任一服务,发布所述权限和服务名字来接收IP地址、协议名字和端口。
6.如权利要求1所述的方法,其特征在于,它还包括通过向与一个或多个附加的地址关联的另一名字委托所述权限,动态地改变与所述权限关联的一个或多个地址。
7.如权利要求1所述的方法,其特征在于,所述查询解析为任意数据、主机和服务之一。
8.如权利要求1所述的方法,其特征在于,创建所述权限包括执行所述加密密钥的散列,所述加密密钥为来自私钥—公钥对的公钥。
9.一种通过因特网实现服务的方法,其特征在于,所述方法包括对所述服务生成一个或多个密钥来提供权限;请求顶层域的管理员发布对所述服务的解析;向所述服务的分组委托所述权限;以及通过因特网发布所述服务。
10.如权利要求9所述的方法,其特征在于,所述权限是所述生成的密钥之一的散列。
11.如权利要求9所述的方法,其特征在于,委托所述权限包括创建引用所述权限的第二权限。
12.如权利要求9所述的方法,其特征在于,发布所述服务包括发布标识最终结果的解析。
13.如权利要求12所述的方法,其特征在于,所述最终结果是所述服务的任意数据、端口号、协议名字和IP地址中的一个或多个。
14.一种操作名字解析服务的方法,其特征在于,所述方法包括将权限和名字的组合解析为第二权限;以及将所述第二权限解析为进一步的权限或最终结果。
15.如权利要求14所述的方法,其特征在于,所述最终结果是任意数据。
16.如权利要求14所述的方法,其特征在于,所述最终结构是端口、协议名字和IP地址。
17.如权利要求14所述的方法,其特征在于,所述名字解析服务处于对等系统中,所述解析与需要解析为IP地址不相关。
18.如权利要求14所述的方法,其特征在于,所述名字解析服务处于目录名字服务(DNS)中,所述解析与需要解析为IP地址不相关。
19.一种实现名字解析协议的数据结构,其特征在于,所述数据结构包括与公钥关联的权限组件,所述公钥是私钥—公钥对的一部分;以及与所述私钥—公钥对的所有者的名字空间关联的名字组件,其中,所述权限组件和所述名字组件能够解析为第二权限或机器地址。
20.如权利要求19所述的数据结构,其特征在于,所述权限组件和所述名字组件能够解析为端口号、协议名字和IP地址。
21.如权利要求19所述的数据结构,其特征在于,所述权限组件和所述名字组件能够解析为任意数据。
22.如权利要求19所述的数据结构,其特征在于,IP地址、协议名字和端口的一个或多个能够从高速缓存中检索。
23.一种计算机可读媒质,在其中储存了用于执行允许连接的设备之间的查找的行动的指令,其特征在于,所述行动包括生成与名字空间关联的一个或多个加密密钥;使用所述加密密钥之一创建权限;通过请求与一个或多个名字空间关联的权限令所述一个或多个名字空间能够引用所述权限,来发表对等类型解析,使所述名字空间的名字解析为所述权限;以及对于期望通信的任一其它名字空间,发表命名与所述其它名字空间关联的所述权限和一个或多个名字的解析,来解析为所述其它权限的一个或多个。
24.如权利要求23所述的计算机可读媒质,其特征在于,所述连接的设备是对等网络云的一部分。
25.如权利要求23所述的计算机可读媒质,其特征在于,所述对等类型解析指对期望通信和参考的具有名字N1、N2…NN的一个或多个名字空间S1、S2、…SN,为所述名字空间作出权限请求来发表([S1].N1)→A、([S2].N2)→A…([SN].NN)→A,使名字N1、N2……NN解析为所述权限。
26.如权利要求23所述的计算机可读媒质,其特征在于,所述行动还包括对任一服务,发布所述权限和服务名字来接受任意数据、IP地址、协议名字和端口中的一个或多个。
27.如权利要求23所述的计算机可读媒质,其特征在于,所述行动还包括通过向与一个或多个附加的地址关联的另一名字委托所述权限来动态地改变与所述权限关联的一个或多个地址。
28.如权利要求23所述的计算机可读媒质,其特征在于,所述查找解析为主机和服务。
29.如权利要求23所述的计算机可读媒质,其特征在于,所述查找解析为任意数据。
30.如权利要求23所述的计算机可读媒质,其特征在于,创建所述权限包括执行所述加密密钥的散列,所述加密密钥为来自私钥—公钥对的公钥。
31.一种计算机可读媒质,在其中储存了用于执行通过因特网实现服务的行动的指令,其特征在于,所述行动包括生成所述服务的一个或多个密钥来提供权限;请求顶层域的管理员发布对所述服务的解析;向所述服务的分组委托所述权限;以及通过因特网发布所述服务。
32.如权利要求31所述的计算机可读媒质,其特征在于,所述权限是所述生成的密钥之一的散列。
33.如权利要求31所述的计算机可读媒质,其特征在于,委托所述权限包括创建引用所述权限的第二权限。
34.如权利要求31所述的计算机可读媒质,其特征在于,发布所述服务包括发布标识所述服务的端口号、协议名字和IP地址的解析。
35.一种计算机可读媒质,在其中储存了用于执行操作名字解析服务的行动的指令,其特征在于,所述行动包括将权限和名字的组合解析为第二权限;将所述第二权限解析为进一步的权限或最终结果。
36.如权利要求35所述的计算机可读媒质,其特征在于,所述最终结果是任意数据、端口、协议名字和IP地址中的一个或多个。
37.如权利要求35所述的计算机可读媒质,其特征在于,所述名字解析服务处于对等系统中,所述解析与需要解析为IP地址无关。
38.如权利要求35所述的计算机可读媒质,其特征在于,所述名字解析服务处于目录名字服务(DNS)中,所述解析与需要解析为IP地址无关。
全文摘要
提供了一种方法和数据结构,通过委托的权限的分层或链式查找启用名字解析,与需要委托的权限的IP地址无关。在一个实施例中,该方法通过首先生成与名字空间关联的加密密钥提供查找。使用所述加密密钥之一创建权限。下一步,该方法提供通过请求与名字空间关联的权限令名字空间能够引用该权限,来发表对等类型解析,使名字空间的名字能够解析为该权限。对于其它期望的名字空间,该方法提供发布命名与其它名字空间关联的权限和名字的解析,来解析为其它权限。对于服务,发布权限和服务来接受最终结果,如任意数据、IP地址、协议名字或端口。
文档编号G06F15/00GK1578230SQ200410058929
公开日2005年2月9日 申请日期2004年7月21日 优先权日2003年7月21日
发明者G·A·维勒 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1