本专利申请要求2003年11月14日提交的名为“网络上的安全动态凭证分发(Secure Dynamic Credential Distribution Over a Network)”的美国临时专利申请号60/520,209的优先权。
本专利文档的揭示的一部分可包含受版权保护的资料。版权所有者不反对该专利文档或专利揭示的任何人如其出现在专利商标事务所的专利文档或记录中那样的传真复制,但是无论如何都保留所有的版权。以下公告应当应用到本文档:Copyright2003,Microsoft Corp.
具体实施方式
综述
第二计算装置对数字内容的请求是当第二装置希望自动接收从第一计算装置动态生成的安全分发的凭证的时刻的示例。随着web服务和移动web服务的出现,对数字内容的这类请求继续增长。已向遍及整个家庭在各种设备(如,电子家庭远程媒体设备、智能显示器、xBox、袖珍PC、便携式DVD设备等)上传送娱乐体验(如,TV、音乐、视频、照片、DVD等)的世界引入了一种网络化设备的广阔生态***。然而,在这类内容能够被传送到请求计算装置之前,在请求装置和具有内容的装置之间出现凭证交换等,以确认请求装置。如上所述,存在着与现有登录技术关联的某些风险。本发明认识到当已在装置之间建立信任时可避免这些风险。因此,本发明提供了一种用于仅在请求装置的登录在网络上出现之前以简单的方式通过网络向请求装置自动分发凭证的一般框架。
示例性网络化环境
本领域的普通技术人员可以理解,本发明可结合任一计算机或可作为计算机网络的一部分的其它客户机或服务器装置,或在分布式计算环境中实现。在这一点上,本发明涉及具有任意数量的存储器或存储单元,以及在任意数量的存储单元或存贮媒体上出现的任意数量的应用程序和进程的任一计算机***或环境,它可结合依照本发明的安全动态凭证分发来使用。本发明可应用到具有在网络环境或分布式计算环境中展开的服务器计算机和客户机计算机的环境中。本发明也可应用到具有编程语言功能,用于结合远程或本地服务生成、接收和发送信息的解释和执行能力的独立计算装置。由于数字媒体的网络资源越来越多地增长,本发明尤其涉及在网络或分布式计算环境中操作的计算装置,并由此,依照本发明用于安全并动态地分发凭证的技术可以巨大功效应用于这些环境中。
分布式计算通过在计算装置和***之间交换提供了计算机资源和服务的共享。这些资源和服务包括信息交换、文件的高速缓存存储和盘存储。分布式计算利用了网络连接性,允许客户机调节其集体能力和存储,以有益于整个企业。在这一点上,各种计算装置可具有包含可依照本发明实现的仅在登录前的凭证的动态请求和传送的应用程序、对象或资源。
图2A提供了一个示例性网络化或分布式计算环境的示意图。分布式计算环境包括计算对象10a、10b等,以及计算对象或装置110a、110b、110c等。这些对象可包括程序、方法、数据存储、可编程逻辑等等。对象可包括同一或不同设备的部分,设备如PDA、音频/视频设备、MP3播放器、TV、个人计算机等等。每一对象可通过通信网络14与另一对象进行通信。该网络本身可包括向图2A的***提供服务的其它计算对象和计算装置,并且本身表示多个互连网络。依照本发明的一个方面,对象10a、10b等,或110a、110b、110c等的每一个可包含利用诸如API等接口或其它对象、软件、固件和/或硬件请求或使用依照本发明的过程的应用程序。
也可以理解,诸如110c等对象可主含在另一计算装置10a、10b等,或110a、110b等上。由此,尽管所描述的物理环境可示出连接的装置为计算机,这一说明仅为示例性的,也可选地描述物理环境包括诸如PDA、电视机、MP3播放器等各种数字设备、诸如接口、COM对象等软件对象、或可结合媒体经验使用的任一设备。
有各种支持分布式计算环境的***、组件和网络配置。例如,计算***可通过有线或无线***、通过局域网或广域网连接在一起。当前,许多网络耦合至因特网,它为广泛分布的计算提供了基础结构,并包含许多不同的网络。任一基础结构可用于与依照本发明的安全动态凭证分发相关的示例性通信。
在家庭网络环境中,至少有四个全异的网络传输媒质,它们的每一个都支持唯一的协议,如电力线、数据(有线或无线)、语音(如,电话)和娱乐媒体。诸如电灯开关等大多数家庭控制设备和电器可使用电力线用于连接。数据服务可作为宽带(如,DSL或电缆调制解调器)进入家庭,并可在家庭内使用无线(如,家庭RF或802.11B)或有线(如,家庭PNA、Cat 5、以太网、甚至是电力线)连接来访问。语音通信可作为有线(如,Cat 3)或无线(如,蜂窝电话)进入家庭,并可在家庭内使用Cat 3配线分布。娱乐媒体或其它图形数据可通过卫星或电缆进入家庭,并通常在家庭内使用同轴电缆分布。IEEE 1394和DVI也是用于媒体设备群的数字互连。所有这些网络环境和作为协议标准出现的其它事物可互连以形成可通过因特网连接到外界的网络,如内联网。简言之,存在各种全异的源用于数据的存储和传输,并因此前进,计算装置需要共享诸如所访问或使用的与程序对象关联的数据等数据的方法,从而请求或利用用于依照本发明安全并动态地分发凭证的过程。
因特网通常指使用TCP/IP协议组的网络和网关的集合,该协议组在计算机网络的领域中是已知的。TCP/IP是“传输控制协议/互联网协议”的缩写。因特网可被描述为由执行允许用户通过网络进行交互并共享信息的网络协议的计算机互连的地理上分布的远程计算机网络的***。由于这一广泛分布的信息共享,诸如因特网等远程网络更一般地演变成一种开放***,开发者可为其设计用于执行本质上没有限制的专用操作或服务的软件应用程序。
由此,网络基础结构启用了一组网络拓扑的主机,如客户机/服务器、对等或混合体系结构。“客户机”是使用它不相关的另一类或组的服务的一类或组的成员。由此,在计算中,客户机是进程,即,概略地为请求由另一程序提供的服务的一组指令或任务。客户机进程使用请求的服务,而无需“知晓”关于其它程序或该服务本身的工作细节。在客户机/服务器体系结构中,尤其是在网络化***中,客户机通常是访问由另一计算机,如,服务器提供的共享网络资源的计算机。在图2A的示例中,计算机110a、110b等可被认为是客户机,计算机10a、10b等可被认为是服务器,其中,服务器10a、10b等维护随后在客户机110a、110b等中复制的数据,尽管任一计算机可被认为是客户机、服务器或两者,取决于环境。例如,计算机110a可以是媒体中心版本(MCE)主机PC,计算装置10a、10b等可以是远程媒体消费装置。这些计算装置的任一个可处理数据或请求服务或任务,这些数据、服务或任务可包含用于依照本发明安全并动态地分发凭证的技术。
服务器通常是可通过诸如因特网等远程或本地网络访问的远程计算机***。客户机进程可在第一计算机***中活动,服务器进程可在第二计算机***中活动,它们通过通信媒质彼此进行通信,由此提供了分布式功能,并允许多个客户机利用服务器的信息收集能力。依照本发明的技术使用的任一软件对象可在多个计算装置或对象中分布。
客户机和服务器使用协议层提供的功能彼此通信。例如,超文本传输协议(HTTP)是结合万维网(WWW)或“Web”一起使用的常见协议。例如,远程桌面协议(RDP)是用于远程计算的常见协议。通常,诸如互联网协议(IP)地址的计算机网络地址或诸如通用资源定位符(URL)等其它参考可用于向彼此标识服务器或客户机计算机。网络地址可以指URL地址。可通过通信媒质提供通信,如,客户机和服务器可通过用于高容量通信的TCP/IP连接彼此耦合。
由此,图2A示出了可在其中采用本发明的一个示例性网络化或分布式环境,其中,服务器通过网络/总线与客户机计算机通信。更详细地,依照本发明若干服务器10a、10b等通过通信网络/总线14与若干客户机或远程计算装置110a、110b、110c、110d、110e等互连,通信网络/总线14可以是LAN、WAN、内联网、因特网等等,客户机或远程计算装置可以如便携式计算机、手持式计算机、薄客户机、网络化器件,或诸如VCR、TV、烤箱、灯、加热器等依照本发明的其它设备。由此,当涉及存储、用户接口、呈现等时,考虑本发明可应用到具有唯一的媒体能力的任一计算装置。
例如,在通信网络/总线14是因特网的网络环境中,服务器10a、10b等可以是web服务器,客户机110a、110b、110c、110d、110e等通过诸如HTTP等若干已知的协议的任一种与其进行通信。服务器10a、10b等也可担当客户机110a、110b、110c、110d、110e等,这是分布式计算环境的特性。
因地制宜地,通信可以是有线或无线的。客户机装置110a、110b、110c、110d、110e等可以通过或不通过通信网络/总线14通信,并且可具有与其关联的独立通信。例如,在TV或VCR的情况下,可以有或没有其控制的网络化方面。每一客户机计算机110a、110b、110c、110d、110e等以及服务器计算机10a、10b等可具备各种应用程序模块或对象135,并具备与各种类型的存储元件或对象的连接或访问,在这些元件和对象上可储存文件或数据流,或向其下载、发送或移植文件或数据流的部分。任意一个或多个计算机10a、10b、110a、110b等可负责维护和更新数据库20或其它存储元件,如用于储存依照本发明处理的数据的数据库或存储器20。由此,本发明可在具有客户机计算机110a、110b等和服务器计算机10a、10b等的计算机网络环境中使用,客户机计算机可访问计算机网络/总线14并与其交互,服务器计算机可与客户机计算机110a、110b等以及其它类似的装置和数据库20进行交互。
示例性计算装置
图2B和以下讨论旨在提供可结合其实现本发明的合适的计算环境的简要一般描述。然而,应当理解,考虑各种手持式、便携式和其它计算装置和计算对象可结合本发明使用,即,计算环境中可请求资源或可体验媒体的任何地方。尽管下文将通用计算机描述为示例性主机,然而这仅是一个示例,本发明可使用具有网络/总线互操作性和交互的薄客户机来实现。由此,本发明可在几乎不包含或包含了最少的客户机资源的网络化主含服务的环境中实现,如,在其中客户机装置仅担当到网络/总线的接口,如放置在设备中的对象的网络化环境。本质上,可储存数据或可从其检索或向另一计算机发送数据的任何地方是用于操作依照本发明的安全动态凭证分发的期望或合适的环境。
尽管并非所需,本发明可通过操作***来实现,由装置或对象的服务的开发者使用,和/或包括在结合依照本发明的凭证传送或接收操作的应用程序软件中。软件可在诸如由客户机工作站、服务器或其它装置等一个或多个计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。一般而言,程序模块包括例程、程序、对象、组件、数据结构等等,执行特定的任务或实现特定的抽象数据类型。通常,程序模块的功能可组合或如需要在各种实施例中分布。此外,本领域的技术人员可以理解,本发明可以使用其它计算机***配置和协议来实践。适合使用本发明的其它众所周知的计算***、环境和/或配置包括但不限于:个人计算机(PC)、自动提款机、服务器计算机、手持式或膝上设备、多处理器***、基于微处理器的***、可编程消费者电子设备、网络PC、电器、灯、环境控制元件、小型机、大型机等等。本发明也可以在分布式计算环境中实践,其中,任务由通过通信网络/总线或其它数据传输媒质连接的远程处理设备来执行。在分布式计算环境中,程序模块可以位于本地和远程计算机存储媒质中,包括存储器存储设备,客户机节点进而可担当服务器节点。
由此,图2B示出了可在其中实现本发明的合适的计算***环境100的一个示例,尽管如上所述,计算***环境100仅为合适的计算环境的一个示例,并非建议对本发明的使用范围或功能的局限。也不应将计算环境100解释为对示例性操作环境100中示出的任一组件或其组合具有依赖或需求。
参考图2B,用于实现本发明的另一示例性***包括以常规计算机110形式的通用计算装置。计算机110的组件包括但不限于,处理单元120、***存储器130以及将包括***存储器的各类***组件耦合至处理单元120的***总线121。***总线121可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、***总线以及使用各类总线结构的局部总线。作为示例而非局限,这类结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线以及***部件互连(PCI)总线(也称为Mezzanine总线)。
计算机110通常包括各种计算机可读媒质。计算机可读媒质可以是可由计算机110访问的任一可用媒质,包括易失和非易失媒质、可移动和不可移动媒质。作为示例而非局限,计算机可读媒质包括计算机存储媒质和通信媒质。计算机存储媒质包括以用于储存诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任一方法或技术实现的易失和非易失,可移动和不可移动媒质。计算机存储媒质包括但不限于,RAM、ROM、EEPROM、闪存或其它存储器技术、CDROM、数字多功能盘(DVD)或其它光盘存储、磁盒、磁带、磁盘存储或其它磁存储设备、或可以用来储存所期望的信息并可由计算机110访问的任一其它媒质。通信媒质通常在诸如载波或其它传输机制的已调制数据信号中包含计算机可读指令、数据结构、程序模块或其它数据,并包括任一信息传送媒质。术语“已调制数据信号”指以对信号中的信息进行编码的方式设置或改变其一个或多个特征的信号。作为示例而非局限,通信媒质包括有线媒质,如有线网络或直接连线连接,以及无线媒质,如声学、RF、红外和其它无线媒质。上述任一的组合也应当包括在计算机可读媒质的范围之内。
***存储器130包括以易失和/或非易失存储器形式的计算机存储媒质,如只读存储器(ROM)131和随机存取存储器(RAM)132。基本输入/输出***133(BIOS)包括如在启动时帮助在计算机110内的元件之间传输信息的基本例程,通常储存在ROM 131中。RAM 132通常包含处理单元120立即可访问和/或当前正在操作的数据和/或程序模块。作为示例而非局限,图2B示出了操作***134、应用程序135、其它程序模块136和程序数据137。
计算机110也可包括其它可移动/不可移动、易失/非易失计算机存储媒质。仅作示例,图2B示出了对不可移动、非易失磁媒质进行读写的硬盘驱动器141、对可移动、非易失磁盘152进行读写的磁盘驱动器151以及对可移动、非易失光盘156,如CD-ROM或其它光媒质进行读写的光盘驱动器155。可以在示例性操作环境中使用的其它可移动/不可移动、易失/非易失计算机存储媒质包括但不限于,磁带盒、闪存卡、数字多功能盘、数字视频带、固态RAM、固态ROM等等。硬盘驱动器141通常通过不可移动存储器接口,如接口140连接到***总线121,磁盘驱动器151和光盘驱动器155通常通过可移动存储器接口,如接口150连接到***总线121。
图2B讨论并示出的驱动器及其关联的计算机存储媒质为计算机110提供了计算机可读指令、数据结构、程序模块和其它数据的存储。例如,在图2B中,示出硬盘驱动器141储存操作***144、应用程序145、其它程序模块146和程序数据147。注意,这些组件可以与操作***134、应用程序135、其它程序模块136和程序数据137相同,也可以与它们不同。这里对操作***144、应用程序145、其它程序模块146和程序数据147给予不同的标号来说明至少它们是不同的副本。用户可以通过输入设备,如键盘162和定位设备161(通常指鼠标、跟踪球或触摸板)向计算机110输入命令和信息。其它输入设备(未示出)可包括麦克风、操纵杆、游戏垫、圆盘式卫星天线、扫描仪等等。这些和其它输入设备通常通过耦合至***总线的用户输入接口160连接至处理单元120,但是也可以通过其它接口和总线结构连接,如并行端口、游戏端口或通用串行总线(USB)。图形接口182,如Northbridge,也可连接至***总线121。Northbridge是与CPU或主机处理单元120进行通信的芯片组,并承担加速图形端口(AGP)通信的责任。一个或多个图形处理单元(GPU)184可与图形接口182进行通信。在这一点上,GPU 184一般包括片上存储器,如注册表存储,并且GPU 184与本发明的应用程序变量可对其影响的视频存储器186进行通信。然而,GPU 184仅是协处理器的一个示例,计算机110内可包括各种协处理设备,并可包括各种过程阴影,如像素阴影和顶点阴影。监视器191或其它类型的显示设备也通过接口,如视频接口190连接至***总线121,进而可与视频存储器186进行通信。除监视器191之外,计算机也包括其它***输出设备,如扬声器197和打印机196,通过输出***接口195连接。
计算机110可以在使用到一个或多个远程计算机,如远程计算机180的逻辑连接的网络化或分布式环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点,并通常包括许多或所有上述与计算机110相关的元件,尽管在图2B中仅示出了存储器存储设备181。图2B描述的逻辑连接包括局域网(LAN)171和广域网(WAN)173,但也可包括其它网络/总线。这类网络环境常见于家庭、办公室、企业范围计算机网络、内联网以及因特网。
当在LAN网络环境中使用时,计算机110通过网络接口或适配器170连接至LAN 171。当在WAN网络环境中使用时,计算机110通常包括调制解调器172或其它装置,用于通过广域网173,如因特网建立通信。调制解调器172可以是内置或外置的,通过用户输入接口160或其它合适的机制连接至***总线121。在网络化环境中,描述的与计算机110相关的程序模块或其部分可储存在远程存储器存储设备中。作为示例而非局限,图2B示出远程应用程序185驻留在存储器设备181上。可以理解,示出的网络连接是示例性的,也可以使用在计算机之间建立通信链路的其它装置。
示例性装置
图2C以及以下讨论旨在提供可结合本发明的安全动态凭证分发的使用主含或请求对内容的访问的装置的合适的计算环境的简要一般描述。然而,应当理解,考虑各种手持式、便携式和其它计算装置和计算对象可结合本发明使用,即,装置希望主含或请求该装置的媒体体验的传送的任何地方。这些装置在媒体能力方面的差异利用了本发明的重大优点一通过理解请求计算装置的凭证令远程媒体体验适合不同的远程装置。
尽管并非所需,本发明可通过操作***部分地实现,由装置或对象的服务的开发者使用,和/或包括在结合本发明的组件操作的应用程序软件中。软件可在诸如由客户机工作站、服务器或其它装置等一个或多个计算机执行的程序模块等计算机可执行指令的一般上下文环境中描述。本领域的技术人员可以理解,本发明可以使用其它计算机***配置和协议来实践。
由此,图2C示出了可在其中实现本发明的合适的计算***环境100a的一个示例,尽管如上所述,计算***100和100a仅为用于依照本发明的凭证分发的合适的两个示例,并非建议对本发明的使用范围或功能的局限。也不应将计算环境100或100a解释为对示例性操作环境100或100a中示出的任一组件或其组合具有依赖或需求。
参考图2C,用于实现本发明的第二示例性装置包括计算机100a形式的通用计算装置。计算机110a的组件可包括但不限于,处理单元120a、***存储器130a以及将包括***存储器的各类***组件耦合至处理单元120a的***总线121a。***总线121a可以是若干种总线结构类型的任一种,包括存储器总线或存储器控制器、***总线以及使用各类总线结构的局部总线。
计算机110a通常包括各种计算机可读媒质。如上所述,计算机可读媒质可以是可由计算机110a访问的任一可用媒质。***存储器130a可包括以易失和/或非易失存储器形式的计算机存储媒质,如只读存储器(ROM)和随机存取存储器(RAM)。基本输入/输出***(BIOS)包括如在启动时帮助在计算机110a内的元件之间传输信息的基本例程,通常储存在存储器130a中。存储器130a通常还包含处理单元120a立即可访问或者当前正在操作的数据和/或程序模块。作为示例而非局限,存储器130a也可包括操作***、应用程序、其它程序模块和程序数据。
计算机110a也可包括其它可移动/不可移动、易失/非易失计算机存储媒质,可通过诸如接口等不可移动存储器接口连接到***总线121a,磁盘驱动器或光盘驱动器通常通过诸如接口等可移动存储器接口连接到***总线121a。
用户可通过各种输入设备向计算机110a输入命令和信息。图形子***也可连接至***总线121a。监视器或其它类型的显示设备也通过接口,如输出接口150a连接到***总线121a,它进而可与视频存储器进行通信。除监视器之外,计算机也可包括其它***输出设备,如扬声器和打印机,可通过输出接口150a连接。
计算机110a可在使用到一个或多个其它远程计算机,如远程计算机170a的逻辑连接的网络化或分布式环境中操作,它进而可具有与装置110a不同的媒体能力。远程计算机170a可以是个人计算机、服务器、路由器、网络PC、对等设备或其它公用网络节点、或任一其它远程媒体消费或传输设备,并可包括上文描述的与计算机110a相关的任一或所有元件。图2C描述的逻辑连接包括网络171a,如局域网(LAN)或广域网(WAN),但也可包括其它网络/总线。这类网络环境常见于家庭、办公室、企业范围计算机网络、内联网和因特网。
因此,上述通用计算机仅为示例,本发明可使用具有网络/总线互操作性和交互的任一客户机实现。由此,本发明可在几乎不包含或包含最少客户机资源的网络化主含服务的环境中实现,如,客户机装置仅担当到网络/总线的接口,如放置在设备中的对象的网络化环境。本质上,可储存数据或可从其检索或向另一计算机发送数据的任何地方都是用于操作依照本发明的技术的期望或合适的环境。
示例性分布式计算框架或体系结构
鉴于个人计算活动与因特网的交汇,已经发展并且正在发展各种分布式计算框架。个人和商业用户同样地拥有用于应用程序和计算设备的无缝的互操作和web激活的接口,使得计算活动越来越面向web浏览器和网络。
例如,MICROSOFT的管理代码平台,即.NET,包括服务器、构件服务如基于web的数据存储、以及可下载设备软件。通常来说,.NET平台提供(1)令整个范围的计算设备共同工作并在所有设备上自动更新并同步化用户信息的能力,(2)提高的web站点交互能力,通过大量使用XML而不是HTML来实现,(3)从用于各种应用,如电子邮件,或软件,如Office.NET的管理的中央起点到用户的具有产品和服务的定制访问和传送的特点的在线服务,(4)中央化数据存储,将增加对信息访问以及用户和设备间的信息同步的效率和简易性,(5)整合各种通信媒质,如电子邮件、传真和电话的能力,(6)对开发员来说,创建可重复使用模块的能力,借此提高生产力并降低编程错误数,以及(7)还有其它跨平台和语言综合特性。
尽管此处的某些示例性实施例是结合驻留在计算设备上的软件描述的,但也可以通过操作***、应用程序接口(API)或“中间人”对象、控制对象、硬件、固件、中间语言指令或对象等来实现本发明的一个或多个部分,使本发明的方法可以在由诸如.NET代码等管理代码启用,以及其它分布式计算框架中的所有语言和服务来包括、支持或访问。
自动登录前凭证的动态和安全分发
如上所述,本发明提供了在登录前,由向其寻求登录或访问的主机计算机通过网络自动向请求方装置分发登录凭证,以访问主机计算机的内容、资源和/或服务,如开始请求方装置和主机计算机之间的会话的***和方法。
由此,本发明允许主机机器以安全的方式控制客户机凭证。有利的是,主机可在频繁的基础上旋转凭证,以提高安全性,而无需客户机参与旋转。此外,采用本发明,客户机不需要保留凭证用于任何重大的时间段,也不需要包括与完成该行动关联的安全和存储机制。
图3A示出了本发明的示例性实施例,并一般描述了依照本发明仅在登录前的安全动态凭证分发。如步骤A所示,由于装置之间的先前的交换,第一装置C1,如主机装置,信任来自第二装置,如客户机装置的通信,即,在步骤A已在装置之间建立的信任。建立信任的一个示例性方法是输入与用户关联的生物测定信息,使得它在两个装置上共享。建立信任的其它示例性方法包括令用户向装置之一输入可信代码,该代码在另一装置上接收以建立共享机密。类似地,用户可向两装置***或输入同一硬件组件,如记忆棒或USB存储器设备,以依照确认过程在装置间建立信任。建立信任的另一示例性方法可包括第二装置C2和第一装置C1之间的“设置”过程,(i)它促使由第二装置C2拥有的公钥储存在第一装置C1中,以及(ii)从而第一装置C1确保从第二装置C2获取的公钥的确是来自第二装置,而非打算窃听第一装置C1分发的登录凭证的“欺诈”装置。这一公钥的可信交换可以本领域的普通技术人员已知的许多不同的方式发生。例如,某年某月某日提交的名为“使用网络外输入代码的内容的可信网络传输(Trusted Network Transfer ofContent Using Off Network Input Code)”的共同转让的共同待批的美国申请号XX/YYY,ZZZ(′ZZZ申请)描述了用于使用简单用户输入代码从网络中的一个计算装置向第二计算装置传输诸如公钥等内容,由此在装置之间建立可信通信的***和方法。在各种实施例中,′ZZZ令***能够使用网络内容交换带外输入的简单代码从网络中的一个计算机向另一个传输和接收诸如加密密钥信息的内容。
在步骤B,在第一装置C1和第二装置C2建立信任之后的某一时刻,第二装置C2作出对包含验证交换的第一装置C1的资源的请求。依照本发明,由于第一装置C1具有来自可信的第二装置C2的公钥,如步骤C所示,第一装置C1自动生成登录凭证,并使用该公钥加密这些凭证,用于在步骤D在网络上的凭证的安全分发。
接收凭证之后,在步骤E,第二装置C2使用对应的私钥解密该凭证,并且同样在步骤E,在不需要储存凭证的情况下,登录对象自动生成对包装该凭证的第一装置C1的登录请求,并依照用于登录请求的关联的验证协议在适当时重新加密(如,通过共享的公钥)。在步骤F,登录请求从第二装置C2发送到第一装置C1,而无需储存在第二装置C2上。在一个实施例中,为额外的保护,登录对象结合其操作利用保护的存储器空间。在步骤G,登录成功,依照所建立的访问级别和许可在第一装置C1和第二装置C2之间开始依照步骤B的请求的专用通信。
应当注意,依照本发明,来自第一装置C1的经加密的凭证(以及结合登录凭证一起发送的任何其它信息)可不受保护地储存在第一装置C1上,或在网络上自由分布,因为仅第二装置C2可对它们进行解密。因此,其后,每次当第二装置C2希望登录到第一装置C1时,第二装置C2发送指示登录期望的网络消息,第一装置C1然后用经加密的凭证回复。第二装置C2使用其私钥解密该凭证,然后直接使用这些凭证登录回第一装置C1。有利的是,凭证稍后可由第一装置C1在任何时刻重新生成,并然后用来自第二装置C2的公钥重新加密。由此,下次当第二装置C2试图登录时,第二装置C2动态地获取新凭证,并使用它们来登录。
图3B示出了在其中第一计算装置C1和第二计算装置C2之间的通信实现上述过程的示例性***。在300,第一装置C1以建立第二装置C2的可信度的方式,如通过′ZZZ申请的的方法,从第二装置C2接收公钥。在310,在建立信任之后的某一时刻,响应于预定义的事件(如,来自第二装置C2的请求),第一装置310动态地生成登录凭证,并在320用第二装置C2的公钥加密该凭证。在330,经加密的凭证在网络上发送到第二装置C2。在340,第二装置C2解密该凭证,并在350重加密并擦除该凭证,而同时依照适当的登录协议发出登录请求。在370,第一装置解密该凭证,并在380通过确定该凭证的有效性处理登录请求。如果凭证有效,则在390,安全登录成功。如果无效,则在385,流程失败,因为登录不成功。
图4A和4B示出了示例性非限制流程图,它表示结合依照本发明的通过网络的安全动态凭证分发的实施例所执行的过程和所遵循的协议,其中,客户机装置希望开始与主机装置的会话。因此,如果已在主机和客户机之间建立了信任,则本发明可应用到建立会话的情形。
为简要描述,会话是当用户账号使用与该账号关联的凭证登录到机器上时在操作***中创建的环境。当用户登录时,创建会话;当用户注销时,会话结束。一旦登录,会话对该用户账号存在,直到他们手动或由OS强制登出。在一个实施例中,对于由第二装置信任的第一装置希望用一组凭证登录到第二装置的情形,本发明提供了用于向第一装置动态生成并安全分发用于开始这一会话的一组凭证的***和方法,其中,凭证不储存或暴露在请求方装置上。
图4A和4B的部分通过虚线椭圆和对应的类似标号(如,图3A对步骤B的标号变成图4A-B中标号BB,图4A的步骤D的标号变成图4A-B中的DD,等等)被认为是图3A的框图的非限制实现。由此,步骤B的请求对应于区域BB,其中,由客户机(图4A)调用RDPInitRQ来开始与主机(图4B)的会话。在图4B中,步骤C对应于区域CC,示出了涉及主机装置的登录凭证的动态生成的通信和过程,以及客户机的公钥对加密的相应使用。步骤D一般在区域DD中示出,其中,由于客户机公钥的加密,登录请求以安全的方式从主机发送到客户机(图4B),并由客户机(图4A的区域DD)接收。在如图4A的区域EE所示的接收并解密凭证之后,结合建立与主机装置的会话,客户机用经解密的凭证通过与区域FF关联的过程自动登录到主机,并且如一般由区域GG的过程示出的,当使用凭证的自动登录成功时,活动会话开始。
然而,应当清楚,图4A和4B仅从处理、接口和协议的观点示出了可出现在装置之间的示例性通信的一个实现,并且应当强调,本发明可使用各种其它过程、协议、接口等来实现。例如,可以理解,许多算法可采用无穷数量的数学形状和形式,并且从软件观点来看关键的考虑是该算法是否以任何显式或隐式的形式执行了期望的功能。此外,数据结构也可采用许多形式,并且由此,例如,可以各种方式定义类型、名字、类等等。例如,以下表I示出了用于图4A和4B中引用的变量的一些示例性实现选择,但是与本发明相一致,这些实现细节并不意味着限制本发明。
DvcPubKey |
256字节int |
NULL |
装置的公钥 |
LogonKey |
128位对称密钥 |
NULL |
用DvcPubKey加密的对称“会话”密钥;用于加密LogonCreds |
LogonCreds |
var长度位字段 |
NULL |
用DvcUsrAcct的LogonKey加密的NT用户账号凭证 |
表I一用于登录凭证的示例性变量
由此,应当清楚,图4A和4B示出了本发明的示例性、非限制实现,并且本发明应当参考所附权利要求书来定义。
有多种方法来实现本发明,如适当的API、工具箱、驱动程序代码、操作***、控制、独立或可下载软件对象等等,它们令应用程序和服务能够使用依照本发明的动态安全凭证分发。本发明从API(或其它软件对象)的观点,并从通过本发明的机制生成、处理、接收或发送凭证的软件或硬件对象来考虑本发明的使用。由此,此处所描述的本发明的各种实现可具有完全硬件、部分硬件部分软件以及软件方面。
如上所述,尽管结合各种计算装置和网络体系结构描述了本发明的示例性实施例,其基础概念可应用到期望仅在登录之前自动并安全地分发凭证的任何计算装置或***。例如,本发明的算法和硬件实现可应用到计算装置的操作***,作为装置上的单独对象、作为另一对象的部分、作为可重复使用控制、作为可从服务器下载的对象、作为装置或对象和网络之间的“中间人”、作为分布式对象、作为硬件、在存储器中、上述任一个的组合等来提供。尽管此处可选择示例性编程语言、名字和示例作为各种选择的代表,然而这些语言、名字和示例并不意味着局限。本领域的普通技术人员可以理解,有各种方式来提供实现本发明的各种实施例所实现的相同、类似或等效功能的对象代码和名称。
如上所述,此处所描述的各种技术可结合硬件或软件,或在适当时用两者的组合来实现。由此,本发明的方法和装置,或其某一方面或部分可采用包含在有形媒质,如软盘、CD-ROM、硬盘或任一其它机器可读存储媒质中的程序代码(即,指令)的形式,其中,当程序代码被加载到诸如计算机等机器中并由其执行时,该机器变为用于实践本发明的装置。在可编程计算机上执行程序代码的情况下,计算装置一般包括处理器、处理器可读的存储媒质(包括易失和非易失存储器和/或存储元件)、至少一个输入设备以及至少一个输出设备。可实现或使用本发明的凭证分发机制,如通过使用数据处理API、可重复使用控制等的一个或多个程序较佳地以高级过程语言或面向对象的编程语言来实现,以与计算机***进行通信。然而,如期望,程序可以汇编语言或机器语言实现。在任一情况下,语言可以是已编译或已解释语言,并可与硬件实现相组合。
本发明的方法和装置也可通过以通过某一传输媒质,如通过电线或电缆、通过光纤或通过任一其它形式的传输来发送的程序代码的形式实施的通信来实践,其中,当程序代码由机器,如EPROM、门阵列、可编程逻辑器件(PLD)、客户机计算机等接收、加载并执行时,该机器变为用于实践本发明的装置。当在通用处理器上实现时,程序代码与处理器组合以提供操作来调用本发明的功能的唯一装置。另外,结合本发明使用的任何存储技术可不变地为硬件和软件的组合。
尽管结合各种附图的较佳实施例描述了本发明,然而可以理解,可以在不脱离本发明的情况下使用其它类似的实施例,或向描述的实施例作出修改和添加以实现本发明的同一功能。例如,尽管在网络化环境,如对等或分布式网络化环境的上下文中描述了本发明的示例性网络环境,本领域的普通技术人员可以认识到,本发明不限于此,并且本申请所描述的方法可应用到任何计算装置或环境,如游戏控制台、手持式计算机、便携式计算机等等,不论它们是有线还是无限的,并可应用到通过通信网络连接,并跨网络交互的任意数量的这类计算装置。此外,应当强调,考虑到了各种计算机平台,包括手持式设备操作***和其它应用专用操作***,尤其是当无线网络化设备的数量继续增长的时候。
尽管示例性实施例涉及在特定协议和通信的环境中使用本发明,然而本发明不限于此,而是相反,可实现任一协议来提供依照本发明的动态安全凭证分发。此外,本发明可在多个处理芯片或设备中或跨其上实现,并可跨多个设备类似地实现存储。因此,本发明不应当局限于任何单个的实施例,而是相反,应当依照所附权利要求书的宽度和范围进行解释。