对等网络的安全协议的制作方法

文档序号:7782493阅读:196来源:国知局
专利名称:对等网络的安全协议的制作方法
对等网络的安全协议
背景技术
如今的许多计算机具有支持无线通信的无线电设备。无线通信被用来例如连接到网络的接入点。通过与接入点相关联,无线计算机可以访问该网络上的设备、或者通过该网络可到达的其他网络(诸如因特网)上的设备。因此,无线计算机可以与许多其他设备交换数据,使能了许多有用的功能。为了使得计算机能够被配置为与接入点相关联,通常接入点根据标准来操作。用于连接到接入点的设备的常见标准被称为Wi-Fi。该标准由Wi-Fi联盟颁布,并且在便携式计算机中被广泛使用。存在该标准的多个版本,但是它们中任一个都可以被用来支持通过接入点的连接。无线通信还可以被用来形成无需使用接入点的、直接到其他设备的连接。这些连接有时被称为“对等”连接,并且可以被用来例如允许将计算机无线地连接到鼠标或键盘。 更一般地,对等连接可以被用来建立可以在无需要求基础设施的情况下进行通信的任何类型的一组设备。用于这些直接连接的无线通信也已经被标准化。用于这种无线通信的常见标准被称为BLUETOOTH8 (蓝牙)。在一些情况下,无线计算机可以通过接入点并发地连接到其他设备,并且作为参加对等通信的一组中的一部分。为了支持这种并发通信,一些计算机具有多个无线电设备。 最近,已经提出了一种被称为直接Wi-Fi (ffi-FI Direct)的标准,其使能作为具有使用单个无线电设备可以处理的相似无线通信的对等组的一部分的基础设施连接和通信两者。该标准也是由Wi-Fi联盟公布的,其针对基于基础设施的通信扩展流行的Wi-Fi通信标准以便支持直接连接。预期装备计算设备以支持直接连接,以便扩展其中无线计算设备可以连接到其他无线设备的情形。例如,在一起工作的计算机用户可能更加容易在无需任何具体基础设施的情况下形成允许用户共享数据的组。类似地,计算机可能更加容易无线地连接到打印机、 照相机、或提供其他期望服务的设备。

发明内容
通过配置能够操作为对等组的控制器的设备以为加入该组的每个远程设备提供独特的主密钥,在对等组中利用非常低的用户负担来实现安全通信。组控制器通过选择性地使主密钥对于要移除的设备无效,可以选择性地从该组中移除一个或多个远程设备。其它远程设备可以不被分解地或者无需重新形成组而继续在该对等组中。在从组中移除一设备时,组控制器除了使与该设备相关联的主密钥无效之外,还可以使从该主密钥生成的其它密钥无效。如果被移除的设备试图进一步作为该组的一部分进行通信,其通信将不被识别,这是因为组控制器不具有将解密这些通信的密钥。如果被移除的设备试图重新加入该组,则组控制器将不识别由该远程设备使用的主密钥。当未被识别的设备试图在没有被识别的主密钥的情况下加入该组时,组控制器可以拒绝访问,要求用户输入或采取其它安全动作。
然而,保持其主密钥的远程设备可以继续在该组中。这样的设备甚至可以与该组断开连接,并且使用其保持有效的主密钥与该组重新连接。上面是由所附权利要求限定的本发明的非限制性的总结。


附图不意图被按比例绘制。在附图中,由相似的标号来表示在各个图中图示的每个相同或近似相同的组件。为了简化,在每个图中可以不标记出每个组件。在附图中,
图IA是第一时间的例示性对等组的略图IB是在一设备已经被从该组中移除时在第二时间的例示性对等组的略图; 图IC是用户可以通过其输入用于从对等组移除设备的命令的图形用户界面的略图; 图2是可以充当图IA的组的组控制器的例示性计算设备的高级框图; 图3是在图2的计算设备内控制与该组中的远程设备的交互的组件的例示性实施例的框图4A是图3的密钥存储器的例示性实施例的示意性表示; 图4B是图3的密钥存储器的替代实施例的示意性表示;
图5A和5B在被标记为A的点处连接时形成了控制对等组的计算设备的操作的例示性方法的流程图;以及
图6是可以在其中实现本发明实施例的例示性计算设备的功能性框图。
具体实施例方式发明人已经认识并理解到需要增强对等组中的安全性。由于对等组变得更为普遍并且被利用诸如Wi-Fi Direct协议之类的更强能力的协议来形成,因此使用方案可能产生敏感的安全问题。然而,不希望增强安全性,而干扰对等组使用的容易性。因此,发明人已经认识并理解到解决安全问题而没有对用户造成显著影响的技术。在对等组中,通过装备能够充当该组的控制器的设备来为连接到该组的每个远程设备生成独特的主密钥,可以增强安全性。控制设备还可以被配置为选择性地将要从该组中移除的设备的主密钥无效,由此避免被移除的设备稍后重新连接到该组并且有可能访问不意图被该被移除的设备的用户观看的数据或产生其它安全问题。其它的远程设备(主密钥对其保持有效)可以保持在对等组中,并且甚至可以在该组中断开连接并且稍后重新连接。使用用于实现控制对等组的设备的已知技术,以及用于支持独特的主密钥的生成、分发和选择性无效和用于支持选择用于验证远程设备的适当的独特的主密钥的修改, 可以容易地实现这样的控制设备。可以包括用于提供用户界面的组件,通过该用户界面,用户可以控制主密钥的选择性无效。然而,每个远程设备可以以传统方式接收并使用其独特的主密钥,使得即使利用具有传统配置的远程设备也能够提供增强的安全性。作为使用传统的对等技术可能怎样出现敏感的安全问题的示例,图1例示了依据对等协议形成的对等组。这样的对等协议可以在不要求任何基础设施的情况下允许多个无线设备连接。在图IA的示例中,五个设备已经依据该协议加入了组110A。在该示例设备120中,一个设备充当为该组的控制器。该控制器可以执行允许其它无线设备加入该组的功能。 这些功能可以包括例如为组中每个设备供应组地址,使得可以向所述设备路由信息。另外, 组控制器可以为该组中的其它无线设备供应安全信息,所述安全信息允许在那些设备加入或重新加入该组时验证它们。此外,可以使用安全信息来加密在控制该组的设备和该组中的其它设备之间的通信。任何合适的设备可以控制组。在图IA所例示的实施例中,设备120是通用计算设备,诸如膝上型计算机。这样的设备可以被容易地配置为执行如这里所描述的控制操作。例如,通过适当地配置计算设备中的通信软件,这样的计算设备可以被配置为执行与对等组的控制相关联的操作。然而,应理解,控制该组的计算设备的形式对于本发明而言不是至关重要的。相反,依据一些对等协议(包括Wi-Fi Direct协议)可以通过在寻求形成组的设备之间进行协商来标识控制组的设备,使得任何适当装备的设备可以充当组控制器。在图1的示例中,远程设备132、134、136和140已经与计算设备120 —起加入组 IlOA0作为依据对等协议在这些设备之间协商的结果、或者基于任何其它合适选择准则,已经确定计算设备120为组IlOA的控制器,已经确定远程设备132、134、136和140为客户端。 因此,计算设备120已经为远程设备132、134、136和140每一个供应了用于与作为对等组 IlOA的一部分的计算设备120通信的地址和密钥。可以依据已知标准或以任何其它合适方式执行组IlOA的形成和操作。作为示例,计算设备120可以生成用于远程设备132、134、136和140每一个的主密钥。传统地,为被组IlOA承认的每个设备提供相同的主密钥。可以使用协议将主密钥分发给被授权加入组IlOA的每个设备,所述协议使用加密技术来避免未被授权的实体获得主密钥。在被称为Wi-Fi保护设置(WPS)的协议中反映了这种加密技术的示例。在该协议中,用户可以向计算设备120中输入远程设备的PIN或其它标识信息。如果远程设备类似地可以证明其具有该标识信息的副本,则该信息输入向计算设备120表明该远程设备被用户授权加入组110A。PIN或其它标识信息的输入向计算设备120提供了不可由附近的其它设备获得的、与远程设备共享的信息。因此,该信息可以被用于对计算设备120和寻求加入网络IlOA 的远程设备之间交换的通信进行加密。通过使用基于该信息的加密技术,计算设备120可以安全地将用于组IlOA的主密钥传递给被授权加入组IlOA的远程设备。一旦远程设备具有用于组IlOA的主密钥,该远程设备就可以进入与计算设备120 的进一步交换,以便生成瞬时密钥(transient key)。尽管相同的主密钥通常被用于组中的每个远程设备,但是可以为每个设备生成不同的瞬时密钥。该瞬时密钥然后可以被用来对在远程设备(该瞬时密钥是针对该远程设备而生成的)和计算设备120 (充当组IlOA的控制器)之间交换的通信进行加密和解密。可以根据任何适合的协议执行计算设备120和远程设备之间的交换,依据该交换生成了瞬时密钥。适合协议的示例为Wi-Fi保护访问(WPA2)协议。依据该协议的消息交换除了生成用于远程设备的瞬时密钥之外,还可以被用来验证一设备具有该组的主密钥。相应地,临时从组IlOA断开连接的设备可以重新加入该组,而无需进一步的用户验证。这样的能力可能对于包含便携式电子设备的组而言尤其有用。由于在移动设备移动(有时只有10或50英尺)时通常利用低功率通信来执行对等联网,形成组的设备可能失去通信的能力。然而,在设备被带回附近时,用户可能意图使所述设备重新连接以重新形成组。为了重新形成组,具有组主密钥的远程设备可能依据WPA2协议或由该组使用的其它协议,与充当组控制器的设备交换通信,使得具有主密钥的远程设备被对于充当组控制器的设备验证,并且为该设备生成新的瞬时密钥。申请人:已经认识并理解到形成以及稍后重新形成组的此灵活性尽管在一些情形下是期望的,但是在其它情形下可能是不期望的。图IA例示了其中充当组IlOA的控制器的计算设备120在远程设备132、134、136和140靠近的附近的情形。这些远程设备可以表示被计算设备120的用户使用的其它设备。例如,远程设备132可以是智能电话。远程设备134可以是照相机,远程设备136可以是打印机。无论何时计算设备120移动到这些远程设备附近,计算设备120的用户可能意图使计算设备120重新形成包括远程设备132、134 和136中任一个或全部的组。例如,以此方式,计算设备120的用户可能能够在打印机(被表示为远程设备136)上打印。类似地,用户可能能够从被表示为远程设备134的照相机中上传图片,或者将联系信息与被表示为远程设备132的智能电话同步。只要计算设备120的用户控制远程设备,通过在无需进一步的用户动作的情况下允许重新形成组,产生很少的安全风险。然而,如果计算设备120的用户允许另一远程设备加入该组,即使该远程设备是从该组断开连接的,其可能在任何时间重新加入该组,这可能不是计算设备120的用户期望或喜欢的行为。例如,计算设备102的用户可以授权远程设备140 (表示另一便携式计算设备)加入组110A。可以给出这样的验证使得临时允许计算设备140的用户使用设备136来打印文档或访问组IlOA中的另一远程设备。可以给出这样的授权使得允许计算设备140的用户与计算设备120交换文件或某种其它有限量的信息。然而,一旦这些动作完成,具体地, 如果远程设备从组IlOA中断开连接,计算设备120的用户既不可能期望也不希望远程设备 140重新加入组IlOA0远程设备在无需用户授权的情况下加入组的能力可能在一些情况下产生安全问题。例如如果操作远程设备140的第三方可以访问计算设备120或组IlOA内其它远程设备上的信息,则可能产生安全问题。此外,如果远程设备140可以访问组IlOA内其它设备上的信息,则可能出现安全问题。此外,如果远程设备140可以通过计算设备120访问来自计算设备120或组IlOA中其它远程设备的服务,则可能出现安全问题。作为具体示例,Wi-Fi Direct协议允许计算设备(诸如计算设备120)作为对等组的成员,而同时连接到诸如可能存在于企业中的基础设施网络。如果使用远程设备140的第三方可以访问计算设备120所连接的其它网络,则可能合成安全问题。利用对等组的传统实现方式(其中每个远程设备获得用于该组的主密钥的副本), 如果计算设备120的用户即使知道需要完全移除一远程设备,从该组中移除该设备将需要解散该组并形成新的对等组。图IB示出了已经形成包括远程设备132、134和136而排除了远程设备140的新组110B。通过重复该组形成步骤可以形成这样的组,所述步骤包括获得用户验证以承认设备132、134和136每个进入组。申请人:已经认识并理解到,对于用户而言,形成新组以便移除远程设备可能是不期望的。因此,在一些实施例中,计算设备120或可以充当组控制器的其它设备可以被配置为使得可以从组中移除远程设备。从该组中移除的设备可能不能在没有来自用户的重新授
7权的情况下重新加入组。作为示例,计算设备120可以利用表示图形用户界面的组件来配置,通过所述图形用户界面,用户可以输入用于从组中移除远程设备的命令。图IC示出了图形用户界面 150,用户可以通过其输入这样的命令。在图IC的示例中,用户界面150可以是由在计算设备120的操作系统内运行的设备管理器组件表现的用户界面的一部分。这样的用户界面可以是响应于用户输入(其指示期望提供与在计算设备120中安装的或耦接到计算设备120的设备相关的命令)而表现的。 通过这样的设备管理器界面,用户可以选择与管理在包含计算设备120的组中的无线设备相关的显示区域160。在所例示的实施例中,通过图标在显示区域160中例示了在组IlOA中有效的每个设备。在该示例中,图标162表示远程设备132。图标164表示远程设备134。图标166表示远程设备136。图标170表示远程设备140。另外,显示区域160包括图标168。以看上去与图标162、164、166和170不同的方式示出了图标168。图标168的不同视觉表现可以表示在显示区域160被呈现的时间与图标168相对应的设备不是有效地连接在组IlOA中。在该示例中,图标168被示出为灰色的并且以虚影形式出现。然而,可以使用未有效连接在该组中的设备的任何合适表示。在该示例中,灰色的图标表示已经被给出了组IlOA的主密钥并且可以在稍后时间重新加入组IlOA的设备。图IC例示了用户通过用户界面150可以输入可以将设备置于断开连接状态的命令。例如,用户通过操纵鼠标或其它人类接口设备可以选择图标。响应于这种选择,计算设备120可以表现菜单,允许用户输入控制所选设备的连接的命令。在图IC所例示的状态中,用户已经选择了与远程设备140相对应的图标170。作为响应,计算设备120已经表现了菜单180。菜单180在该示例中包含用于选择多个命令之一的选项。在该示例中,示出了在两个命令(命令182和184)之间选择的选项。命令182对应于断开连接命令。在用户选择断开连接命令182时,计算设备120 可以采取排除远程设备140作为组IlOA的部分进行通信的动作。该动作例如可以包括使被远程设备140用来对与计算设备120交换的信息进行加密或解密的瞬时密钥无效。尽管该瞬时密钥的无效临时性地排除远程设备140参加组110A,但是其不排出远程设备140重新加入该组。具体地,远程设备可以使用其之前已经获得的主密钥来重新加入该组,并且接收新的瞬时密钥来替换向响应于断开连接命令182的用户选择而被无效的瞬时密钥。为了排除远程设备140重新加入组110A,用户可以从菜单180中选择命令184。命令184是移除命令。在选择了移除命令184之后,计算设备120可以替代使为远程设备140 生成的瞬时密钥无效或除此之外,而使由远程设备140使用的主密钥无效。在其中向加入组中的所有远程设备提供相同的主密钥的传统系统中,使用于远程设备140的主密钥无效将使用于组IlOA中的所有远程设备的主密钥无效。因此,移除设备将要求为用户期望保持加入组的远程设备重新建立组IlOB (图1B)。重新形成组需要对于每个设备执行密钥生成和分发协议(诸如WPS协议)。还将必须重复WPA2协议、或用于对等组的其它协议。由于WPS协议要求用户交互,因此形成新组IlOB可能是不期望的。为了避免要求用户形成新组作为排除被移除的设备重新加入组的方式,在一些实施例中,计算设备120可以被配置以为加入组IlOA的每个远程设备提供独特的主密钥。可以通过为每个设备重复密钥生成协议而为每个设备生成独特的主密钥。此后,在远程设备寻求向计算设备120验证时,计算设备120可以访问用于该设备的合适主密钥。该独特的主密钥然后可以被用来验证该设备,并且生成用于该设备的瞬时密钥。此后,如在传统的对等协议中那样,可以执行计算设备120和远程设备之间的通信,直至遇到触发计算设备120 从组中移除远程设备的事件为止。这样的触发事件例如可以是用户选择命令184 (图1C)。与触发从组中移除设备的事件无关,响应于这样的事件,计算设备120可以使被分配给要移除的设备的主密钥无效。使用于远程设备的主密钥无效排除了该远程设备重新加入组。然而,由于加入组IlOA中的所有其它远程设备可能具有独特的主密钥,因此使用于远程设备140的主密钥无效不影响被分配给其它设备(诸如远程设备132、134和136)的主密钥的有效性。因此,那些远程设备不受远程设备140的移除的影响。计算设备120可以以任何适当的方式来配置,以便根据对等协议为每个加入组的远程设备提供独特的主密钥。图2是计算设备210的架构的示例,其可以表示计算设备(诸如计算设备120,其可以充当对等组的控制器)的实施例。图2在高级别上例示了可以被操作来传送和/或接收信息的计算设备210的架构,所述信息作为与加入对等组的远程设备的交换的一部分。在图2的示例中,计算设备 210包括无线电设备250。无线电设备250可以被适配为发送和接收无线通信。无线电设备250例如可以被用于在高于2 GHz且低于6 GHz的频谱中的无线通信。这样的频率适合用于依据Wi-Fi Direct协议的通信。然而,应理解,可以使用任何合适的频谱和任何合适的协议。在图2的示例中,例示了应用220。应用220可以生成供无线传输的信息,或者可以处理无线接收的信息。在所例示的实施例中,该信息可以被发送到加入对等组的一个或多个远程设备,或者可以被从加入对等组的一个或多个远程设备接收。因此,应用220可以表示生成或处理在对等组中交换的信息的任何合适应用。其可以是例如用于处理照片的应用、或生成供打印的文本的文字处理应用。然而,在一些情况下,应用220可以执行任何合适动作,包括连接对等组中的设备或与对等组中的设备断开连接的动作。作为示例,在一些实施例中,被描述为由用户进行的动作可以由用户通过发起应用220的运行而间接地进行。在图2的示例中,应用220与操作系统230形成接口。在一些实施例中,操作系统 230可以是通用操作系统,诸如WINDOWS 操作系统。在计算设备210运行除了应用220之外的应用时可能期望这样的配置。然而,在其中计算设备210被具体地配置为作为对等组的一部分而进行通信的实施例中,操作系统230可能具有更有限的功能性。与操作系统230是专用操作系统还是通用操作系统无关,在所例示的实施例中, 操作系统230的功能是提供以下服务促进由应用220处理的信息的无线传输和接收。对于传输而言,操作系统230可以从应用220接收用于与附近设备建立连接的请求。此后,操作系统230可以从应用220接收表示要在该连接上传输的音频/视频内容的数据流。这样的连接可以使用如在本领域中已知的技术来形成。在所例示的示例中,该连接可以是直接的设备到设备的连接。然而,可以使用任何合适的技术。在所例示的实施例中,操作系统230包括网络栈沈2。网络栈262可以执行如在本领域已知的用于无线通信的功能,包括依据被用作无线通信的一部分的不同协议层来连续地格式化来自应用220的数据。网络栈262可以通过连续地检查与各个协议层的兼容性并移除依据那些协议层添加的头部和其它信息来对所接受的信息执行逆操作,从而恢复应用 220意图使用的数据。可以使用本领域已知的技术来执行这样的处理。为了发送和接收数据,栈262可以与一个或多个无线电设备交互,例示了其中的无线电设备250。可以通过软件(在图2中被表示为驱动程序M0)来控制无线电设备250。 这里,驱动程序240包括接口 M2,通过该接口,操作系统230可以向驱动程序240发出命令,并且通过该接口,驱动程序240可以报告状态并向操作系统230通知所接收的数据。接口 242可以以任何合适的方式实现,包括根据已知标准的方式。这种已知标准的示例被称为NDIS,但是该标准对于本发明而言不是至关重要的。接口 242可以支持不取决于无线电设备250的构造的格式的多个命令。这些命令可以包括用于配置无线电设备250以某些频率进行传输、或为要传输的码元使用某些调制机制或错误控制编码的命令。另外,驱动程序240可以通过接口 242接收供无线电设备250 传输的数据。与具体命令无关,驱动程序240可以将接口 242的标准化格式的命令转换为施加于无线电设备250的具体控制信号。另外,驱动程序240可以被编程以执行与无线连接相关联的某些低级功能。例如,在接收到分组时,驱动程序240可以检查该分组被适当地格式化。如果该分组被适当地格式化,则驱动程序240可以控制无线电设备250生成确认。相反,如果分组未被适当地格式化,则驱动程序240可以控制无线电设备250传送否定确认。然而,驱动程序MO以及一些实例中的无线电设备250可以自动地执行与建立和保持无线连接相关联的低级功能,而可以在操作系统230或应用220的控制下执行高级功能。在一些实施例中,应用220或操作系统230可以提供用户界面,使得由计算设备210的用户提供无线通信的最终控制。可以以任何合适方式修改图2中例示的架构来配置计算设备210,以便发出、使用和选择性地使用于加入对等组的每个设备的独特的主密钥无效。例如,可以在应用220、操作系统230内或者在驱动程序MO内合并用于控制计算设备210的这种操作的组件。在一些实施例中,可以在无线电设备250中实现控制器的功能中的一些或全部。因此,被配置用于实现控制器功能的具体组件对于本发明而言不是至关重要的。图3例示了可以被合并到计算设备210的架构的任何合适部分的控制器310。控制器310例如可以被合并到操作系统230中。作为具体示例,控制器310可以被合并到网络栈沈2中。然而,应理解,不需要在计算设备210的架构的单个部分中实现控制器310的所有组件。例如控制器310的组件可以被分布在多个组件上。在所例示的示例中,控制器310包括接口 312、314和316,其被配置用于连接到栈 262的部分,在所述部分中,表示依据对等协议的无线通信的帧可以被转向(divert)控制器310,并且这样的帧可以被传递到栈沈2以供无线传输。在所例示的实施例中,可以将接口 312、314和316每个整合到栈沈2中,使得依据由计算设备210实现的对等协议的帧可以在控制器310和栈262之间传递。尽管例示了三个接口,但是应理解可以提供任何数量的接口。例如,可以提供单个接口或可以提供多于三个接口,以适应控制器310和栈262之间的不同类型的交互。此外,应理解,这些接口的形式对本发明而言不是至关重要的,并且接口的具体形式可以取决于控制器310的实现。例如,可以将所述接口实现为所定义的应用编程接口(API),可以以调用接口的方式来实现控制器310。然而,在其它实施例中,接口 312,314和316可以是任何其它形式的连接。图3例示了可以利用多个组件来实现控制器310。图3可以表示控制器310的软件架构,其中所标明的组件中的每个被实现为分离的模块,诸如动态链接库。然而,每个组件的具体结构对于本发明而言不是至关重要的,并且在实现控制器310的功能性时可以使用任何合适的结构。在图3的例示实施例中,控制器310包括密钥设置组件320。密钥设置组件320可以在设备的设置阶段期间控制与远程设备的交互,在所述阶段,控制器310和远程设备每个得到用于该远程设备的相同的独特的主密钥。设置组件320可以以任何适合方式与远程设备交互。作为一个示例,设置组件320 可以经由接口 312和栈262进行交互,使得构成计算设备210和远程设备之间的消息交换的帧可以传递到设置组件320供处理,或者可以由设置组件320生成供传输到远程设备。 传递通过接口 312供设置组件320处理的具体消息可以取决于被用于所形成的对等组的协议。作为一个示例,这些消息可以被格式化为由对等协议定义的管理帧。这些帧中的一个或多个可以包括指示在该协议中未明确提供的请求或对请求的响应的信息元素。例如,初始消息可以指示来自远程设备的获得用于加入组或在组内通信的主密钥的请求。其它消息可以包括响应,这样的密钥是由该响应生成的。响应于这样的消息,密钥设置组件320可以确定远程设备是否被授权接收主密钥。密钥设置组件320可以部分地基于与远程设备的消息交换来确定该远程设备是否被授权。密钥设置组件320可以访问附加的验证信息以便确定该远程设备是否被授权接收主密钥。验证信息的那些附加源可以包括与用户的交互。这样的交互可以通过用户接口部件350来执行或者可以以任何其它合适方式执行。在一些实施例中,例如,密钥设置组件 320可以通过用户界面350提示用户提供与被授权远程设备相关联的PIN或其它合适标识码。密钥设置组件320可以使用该标识码来检验从远程设备接收的消息是否是使用相同的标识码生成的。然而,应理解,验证信息的具体源对于本发明而言不是至关重要的,并且不需要通过用户界面由用户直接提供。作为这样的验证信息的替代源的示例,计算设备210 可以保持被授权设备的PIN号码的存储设备(未示出),密钥设置组件320在从寻求加入对等组的设备接收到对主密钥的请求时,可以访问该存储设备。由密钥设置组件320处理的具体消息对于本发明而言不是至关重要的。在一些实施例中,如果远程设备被授权接收主密钥,则密钥设置组件320可以被配置为在接收到对主密钥的请求并将主密钥传递给远程设备时实现Wi-Fi保护设置协议(WPS)。在远程设备被授权接收主密钥时,为了获得主密钥,密钥设置组件320可以与密钥生成器322交互。密钥生成器322可以响应于来自密钥设置组件320的请求,利用加密技术来生成密钥。密钥生成器322可以根据已知加密原理操作,并且可以使用如本领域中已知的技术来实现密钥生成器322。然而,与实现对等组的传统的无线计算设备相反,密钥生成器322和密钥设置组件320可以交互,使得对于请求加入该组的每个远程设备生成独特的主密钥。密钥设置组件320可以记录独特的主密钥,以供随后在验证远程设备中使用。在图3的示例中,密钥设置组件320将主密钥记录在密钥存储设备340中。密钥存储设备340 可以表示计算设备210上的或计算设备210可访问的任何合适的计算机存储介质。密钥存储设备340可以以非易失性存储介质(诸如硬盘)来实现,并且例如可以被格式化为文件或由计算设备210上的文件管理系统保持的其它数据结构。然而,在其它实施例中,密钥存储设备340可以是以加密格式存储的,并且可以在非易失性存储介质中不具有容易识别的结构。因此,应理解,密钥存储设备340的具体实现对于本发明而言不是至关重要的。控制器310内的其它组件可以执行与同对等组相联系的一个或多个远程设备的交互相关联的其它功能,包括使用密钥存储设备340中的主密钥和选择性地使主密钥无效。例如,图3示出了控制器310还可以包括验证和瞬时密钥组件330。验证和瞬时密钥组件330可以与寻求与对等组中的其它设备连接的远程设备交互。验证和瞬时密钥组件可以使寻求连接作为组的成员的远程设备具备该组的有效主密钥。因此,验证和瞬时密钥组件330可以与密钥存储设备340交互,以检验该远程设备访问了该组的有效主密钥。在验证了远程设备时,验证和瞬时密钥组件可以生成一个或多个瞬时密钥用于对与远程设备的通信进行加密和/或解密。作为生成瞬时密钥的一部分, 验证和瞬时密钥组件330可以与远程设备交互。因此,验证和瞬时密钥组件330被示出为具有接口 314,其可以连接到栈沈2 (图2)或允许验证和瞬时密钥组件330与远程设备交换消息的其它合适组件。所交换的消息允许远程设备生成与由验证和瞬时密钥组件330生成的密钥匹配的瞬时密钥或多个瞬时密钥。以此方式,验证和瞬时密钥组件330可以将瞬时密钥或多个瞬时密钥提供给远程设备。验证和瞬时密钥组件330可以使用适合于用于形成组的对等协议的消息与远程设备进行交互。在一些实施例中,验证和瞬时密钥组件330可以依据WPA2协议实现四路握手,并且因此可以被使用本领域已知的技术来实现。然而,与用作对等组的控制器的传统计算设备相反,验证和瞬时密钥组件330可以访问密钥存储设备340来获得试图连接对等组的远程设备的独特的设备密钥。验证和瞬时密钥组件330可以以任何合适方式取得可应用于远程设备的独特的主密钥。例如,图4A例示了在密钥存储设备340中保持的数据的可能组织,其可以允许瞬时密钥组件330中的验证以便获得用于该远程设备的合适的独特的主密钥。在图4A的示例中,数据集410表示密钥存储设备340中的用于已经为其生成了独特的主密钥的那组远程设备的信息。在该示例中,每个远程设备由数据集410中的记录表示。在图4A中,例示了四个记录412A、412B、412C和412D,记录412A…412D中的每一个对应于一个远程设备。在该示例中,每个记录具有相同的格式。采用所例示的记录412A,该记录包含多个字段。在该示例中,示出了三个字段,字段420、422和424。字段422存储指示与记录412A 相关联的远程设备的主密钥的值。字段420包含可以被用来标识远程设备的值。在该示例中,字段420存储表示远程设备的媒介访问控制(MAC)地址的值。依据一些对等协议,发送或意图接收帧的设备的MAC地址被合并到帧中。因此,密钥设置组件320在其生成用于远程设备的独特的主密钥时可以访问该远程设备的MAC地址。当密钥设置组件320生成独特的主密钥并将记录写入密钥存储设备340时,其可以在该记录中包括该远程设备的MAC地址的值。验证和瞬时密钥组件330可以类似地接收远程设备的MAC地址,连同来自寻求被验证为在对等组中连接的部分的远程设备的消息。因此,验证和瞬时密钥组件330可以通过将从远程设备接收的MAC地址与在数据集410中存储的MAC地址进行比较来标识用于远程设备的适当主密钥。然而,其它机制也是可能的。例如,图4B例示了可以构成密钥存储设备340的数据集450的替代实施例。数据集450在该示例中包含与数据集410的结构类似的结构。例示了多个记录452A、452B、452C和452D。每个这种记录可以对应于已经为其生成了主密钥的远程设备。采用所例示的字段452,每个记录可以包括诸如字段460、462和464之类的字段。字段460可以包含主密钥的值。在该示例中,字段462和464不包含与字段420(图 4A冲的标识信息相当的标识信息。相反,字段462和464包含可以在其它操作中使用的信息。例如,字段462可以包含定义生成主密钥所处的时间的值。这样的信息例如可以被用于以下实施例,其中在某一阈值时段之后密钥过期或者另外设备被从组中移除。字段464 可以包含例如在呈现诸如用户界面150之类的用户界面时有用的信息。字段464例如可以包含为其生成了主密钥的设备的代码或其它描述。这样的信息可以被用户接口组件350用来选择在接口 150中使用的图标。在该示例中,数据集450不包括远程设备的MAC地址或其它直接标识。尽管如此, 验证和瞬时密钥组件330可以使用数据集450来确定请求验证的远程设备是否具有有效的主密钥。作为由验证和瞬时密钥组件330应用来确定远程设备是否具有有效密钥的协议的一部分,验证和瞬时密钥组件330在远程设备发送的数据块上执行加密功能。依据验证和瞬时密钥组件330使用的协议,期望远程设备利用有效的主密钥来对具有验证和瞬时密钥组件330已知的值的数据块进行加密。如果验证和瞬时密钥组件330可以对从远程设备接收到的数据块进行解密以生成该已知值,则它验证该远程设备。因此,即使验证和瞬时密钥组件330不知道该远程设备使用的具体主密钥,如果数据集450中的主密钥中的任一个可以被用来对所接收的数据块进行解密以便生成期望值,则验证和瞬时密钥组件330可以得出结论该远程设备访问了有效的主密钥,由此验证该远程设备。因此,在其中未在数据集450中存储用于远程设备的特定标识符的实施例中,验证和瞬时密钥组件330通过测试数据集中的多个主密钥直至标识出可以被用来适当地对数据块进行解密的主密钥,可以标识该适当主密钥。此后,可以将该主密钥用于远程设备的瞬时密钥的生成。与验证和瞬时密钥组件330标识用于请求连接到对等组的设备的适当主密钥所依据的方式无关,一旦标识了适当主密钥,验证和瞬时密钥组件330就可以使用该主密钥来向远程设备提供瞬时密钥,以供连接到对等组。图3例示了控制器310包括组拥有者控制组件360。组拥有者控制组件360可以执行如本领域中已知的用于操作为对等组的控制器的计算设备的操作。在所例示的实施例中,设备210可以被编程来依据Wi-Fi Direct协议操作。在该协议中,形成组的设备可以交换消息,通过所述消息,所述设备之一被标识为组拥有者。组拥有者执行组的控制功能, 包括供应形成组的一部分的设备,使得所述设备可以适当地发送和接收数据。在所例示的实施例中,组拥有者还参与在被接纳到该组的设备之间路由数据。可以由组拥有者控制组件360执行这些操作、以及任何其它适当操作。
13
由组拥有者控制组件360执行的操作可能需要从在对等组中连接的远程设备中的一个或多个远程设备发送和接收数据。可以以加密格式来传递这样的数据。因此,组拥有者控制组件360可以通过加密/解密组件362耦合到接口 316。接口 316可以将加密/ 解密组件362耦合到栈沈2 (图2)或计算设备210的促进与远程设备无线地进行的信息交换的传输和接收的其它组件。可以以任何适当方式(包括使用本领域中已知的组件)来实现组拥有者控制组件 360和加密/解密组件362。这些组件可以操作使得可以利用为在对等组中连接的远程设备生成的瞬时密钥来对与该远程设备交换的数据帧或其它帧进行加密。加密/解密组件362 可以以任何适当方式访问这样的瞬时密钥。例如,验证和瞬时密钥组件330可以生成密钥表、或者将瞬时密钥与被远程设备用来作为对等组的一部分进行通信的地址相链接的其它适当数据结构。作为一个示例,图4A例示了数据集410中的记录412A,412B, 412C和412D每一个可以包括字段,诸如包含用于由该记录表示的远程设备的瞬时密钥字段424。在该示例中,字段420中的MAC地址可以被用来从数据集410中选择适当记录,使得可以标识瞬时密钥用于对数据进行加密或解密。然而,不要求将瞬时密钥存储在与主密钥相同的数据存储设备中。在一些实施例中,可以在易失性存储器中存储瞬时密钥,例如使得在计算设备210 掉电的情况下不保持瞬时密钥。而且,不要求将瞬时密钥链接到MAC地址。在一些实施例中,可以将瞬时密钥链接到在每个远程设备被接纳到对等组时被分配给所述每个远程设备的组地址。与标识瞬时密钥所依据的方式无关,加密/解密组件362可以使用瞬时密钥来对在组拥有者控制组件360和远程设备之间交换的帧进行加密和解密。可以使用如在本领域中已知的技术或以任何其它适当方式来执行这些操作。图3还例示了控制器310可以包括用户界面组件350。用户界面组件350可以表现一个或多个用户界面,通过该用户界面可以从用户获得信息。例如,用户界面组件350可以表现用户界面150 (图1C)来接收关于从对等组将远程设备断开连接或移除远程设备的用户输入。另外,用户界面组件350可以形成与用户的界面,以便获得被密钥设置组件320 或控制器310的其它组件使用的信息或命令。可以使用如本领域中已知的技术或以任何其它适当方式来实现用户界面组件 350。用户界面组件350可以被配置为以任何适当方式响应于用户输入。例如,响应于通过用户界面150接收的指示要从对等组移除远程设备的用户输入,用户界面组件350可以修改密钥存储设备340以便使与要移除的设备相关联的主密钥无效。用户界面组件350可以以任何适当方式使主密钥无效。在一些实施例中,用户界面组件350可以通过从与该设备相关联的记录中删除主密钥的值或者删除整个记录,来使密钥无效。然而,可以使用表明主密钥已经被无效的任何适当机制。例如,用户界面组件350可以将一值写入与该主密钥相关联的记录,以便指示该密钥已经被无效。相反,响应于通过用户界面350接收的用于将远程设备从对等组断开连接的用户信息,用户界面350可以将主密钥值留在密钥存储设备340中不动。而是,用户界面组件可以删除瞬时密钥、或者被用来建立与要断开连接的远程设备的连接的其它数据结构。但是, 将主密钥留在密钥存储设备340中允许被断开连接的设备在稍后时间重新连接。
图3中例示的组件、或者任何其它适当组件可以交互以便控制计算设备210执行安全操作的方法,在所述方法中,可以选择性地将远程设备从组中移除。图5A和图5B在被标记为A的点处结合时表示这种安全操作方法的流程图。在图5A的示例中,方法500在块510开始,其中远程设备被发现。可以以任何适当方式执行设备的远程发现,并且可以通过运行方法500的计算设备或该远程设备启动该设备的远程发现。可以以任何适当方式执行块510的处理。在所例示的实施例中,可以使用如本领域中已知的被指定为对等协议的一部分的技术来执行该处理。例如,块510处的处理可以包括发送和/或响应管理帧。作为示例,块510处的发现可以包括传送信标和/或接收探测请求。因此,计算设备标识远程设备期望参与对等通信所采取的具体动作对于本发明而言不是至关重要的。与标识设备所依据的方式无关,处理可以进行到决策块520。在决策块520,取决于在块510处标识的远程设备是否对于运行处理500的计算设备是已知的,处理500可能分支。在该示例中,在作为之前已经被接纳为由运行处理500的计算设备控制的对等组的成员的设备时,认为该设备是已知的。如果这样,处理500从决策块520分支以执行子处理550 (图5B)。在所发现的设备未知的情形下,处理500从决策块520前进到子处理522。在子处理522,运行处理500的计算设备和远程设备可以进一步交换管理帧以协商组拥有者。可以在被设备用来形成对等组的对等协议中指定被执行为子处理522的一部分的协商。因此, 可以如本领域中已知地执行子处理522。在该示例中,依据Wi-Fi Direct协议执行协商,使得作为协商的结果,所述设备之一将被标识为组拥有者,并且将执行对等组的控制功能。在完成子处理522中的协商时,处理继续到决策块522。在决策块522处,取决于在522中进行的组拥有者协商的结果,处理500可能分支。如果运行处理500的计算设备未被选择为组拥有者,处理500可以从决策块5M 分支到子处理530。在运行处理500的设备未被标识为组拥有者的情形下,为了接收独特的主密钥,不需要对设备的部分的特殊动作。因此,在处理从决策块5M分支到子处理530 时,子处理530内的操作可以是如适合于被指定为具有对等网络中客户端设备的作用的计算设备的传统操作。子处理530内的处理可以导致客户端验证作为在子处理522中进行的协商的结果的被选择为组拥有者的设备以及与之相关联。另外,子处理530可以包括如在传统的对等网络中的供应步骤。与所采取的特定步骤无关,在运行子处理530时,可以装备计算设备与所选择的组拥有者通信。因此,处理500可以从子处理530前进到子处理532,其中运行处理500的计算设备和在块510发现的远程设备可以使用如本领域中已知的技术来通信。这样的通信可以继续任何时间量,但是在通信完成时,处理500可以结束。相反,作为子处理522中协商的结果,在运行处理500的计算设备被标识为组拥有者时,处理从决策块5M分支到决策块M0。决策块540处的处理可以以任何适当方式确定在块510处发现的设备是否被授权加入由运行处理500的设备控制的组。作为示例,可以提供指示该设备是否被授权的用户输入。输入可以是可以指示设备是否被授权的、允许在与远程设备的通信中使用加密功能的形式。例如,运行处理500的控制设备可以发送包含操作为挑战句(challengephrase)的文本或数字代码的消息。远程设备可以利用PIN或从验证信息中取得的其它值来对该挑战句进行加密,以便对该挑战句执行加密功能。加密功能可以包含加密、数字签名、哈希功能或其它适当加密功能。与所执行的具体加密功能无关,远程设备然后可以将适当处理后的挑战句发送回控制设备。该控制设备可以基于由用户提供的验证信息对该挑战句执行类似操作。如果由控制设备生成的处理后的值匹配由远程设备返回的值,则控制设备可以认为该远程设备被授权连接到对等组。然而,应理解,基于由用户提供的验证信息的这种消息交换仅仅是控制设备可以使用来确定远程设备是否被授权加入组的方法的一种示例。与授权被无效所依据的方式无关,如果远程设备未被授权访问该组,则处理可以从决策块540分支到处理结束, 使得远程设备未被授权访问对等组。相反,如果作为决策块540处的处理的结果,控制设备确定远程设备被授权加入对等组,则处理从决策块540分支到块M2。在块M2,控制设备可以生成并存储用于该远程设备的独特的主密钥。可以以任何适当方式生成该主密钥,诸如通过使用随机数发生器、 以及/或者通过包含一个或多个加密功能的计算。与生成主密钥所依据的方式无关,处理500可以进行到子处理M4。在子处理M4, 可以将主密钥分发到远程设备。可以以任何适当方式执行子处理M4。在一些实施例中,控制设备可以使用Wi-Fi保护设置协议(WPS)将主密钥传递到远程设备。与密钥被分发所依据的方式无关,处理500可以前进到子处理550 (图5B)。子处理550可能需要验证寻求加入对等组的设备。图5B例示了在子处理550中执行的处理是相同的,而与处理500是从子处理M4 (其中远程设备接收独特的主密钥)还是从决策块520 (其中可以确定远程设备已经具有主密钥)到达子处理550无关。因此,子处理550被示出为在块552开始,在块552,控制设备检查远程设备是否具有有效的主密钥。在其中远程设备刚刚被通过子处理544分配了主密钥的实施例中,可以绕过该处理。在其中在块552处执行处理的实施例中,控制设备可以通过消息交换检查寻求加入对等组的远程设备是否具有有效的主密钥。例如,消息交换可能需要在控制设备和远程设备之间交换信息,该信息允许控制设备确定该远程设备是否已经使用有效的主密钥执行了加密功能。可以依据任何适当协议执行这种通信交换。在一些实施例中,可以根据已知协议(诸如WPA2协议)执行子处理550。在这样的实施例中,可以依据该协议在块552处执行处理,但是所使用的具体协议对于本发明而言不是至关重要的。然而,在块552处的处理与用于检查远程设备的主密钥的有效性的传统处理之间的区别在于在块552,控制设备可以选择与远程设备相对应的适当主密钥。可以以任何适当方式选择在块552处由控制设备使用的主密钥。在一些实施例中,控制设备可以基于与远程设备相关联的标识符来访问密钥存储设备,诸如密钥存储设备340 (图3)。然而,在其它实施例中,控制设备可以依序相对于在密钥存储设备中存储的每个有效主密钥来尝试使被远程设备使用的主密钥有效,直至被远程设备应用的主密钥相对于密钥存储设备中的密钥有效,在该情况下,使密钥有效;或者控制设备相对于在密钥存储设备中的所有主密钥未成功地尝试使被远程设备使用的主密钥有效,在该情况下,远程设备被确定为不具有有效的主密钥。与在块522处被用来使主密钥有效的技术无关,处理500可以继续到决策块554,取决于该有效的结果,在决策块阳4中处理可以分支。如果作为块552处的处理的结果,控制设备确定远程设备不具有有效的主密钥,则处理可以从决策块544分支到处理500的结束,而无需远程设备能够连接到对等组。相反,如果远程设备被确定为具有有效的主密钥,则处理可以从决策块5M继续到块556。在块556,控制设备可以生成可以被分发到远程设备的一个或多个瞬时密钥。在块556处生成的瞬时密钥可以使能远程设备和控制设备之间的通信。如果例如生成了多个瞬时密钥,可以将一个瞬时密钥用于控制设备,而另外的密钥可以用于与对等组中的其它设备的通信。可以以任何适当方式生成瞬时密钥。在其中依据WPA2协议执行子处理550的实施例中,可以依据该协议执行块556处的处理。然而,可以使用任何适当机制来生成瞬时密钥并将那些瞬时密钥分发到远程设备。与在块556处生成的瞬时密钥的数量无关,在块558中可以存储它们以供将来用于对与该远程设备的通信进行加密或解密。处理500然后可以继续到子处理560。在子处理560期间,控制设备和远程设备可以使用在块556处生成的瞬时密钥进行通信。子处理560可以包括任何适当步骤。在所例示的示例中,子处理560内的处理以块562开始。在块562,控制设备可以使用在块556生成的瞬时密钥对用于传输到远程设备的数据进行加密。要传输到远程设备的具体数据对于本发明而言不是至关重要的,并且可以取决于远程设备和控制设备两者的特性。此外,在块 562处使用瞬时密钥对数据进行加密所依据的方式对本发明而言也不是至关重要的。加密可以提供保密性、验证、或完整性、或这些功能的某种组合。与在块564处如何和为何利用瞬时密钥对数据加密无关,在块564处,加密后的数据可以被传输到远程设备。可以以任何适当方式执行块564处的加密数据的传输。然而, 在依据标准协议形成对等组的实施例中,块564处的传输可以依据标准协议。在所例示的实施例中,通信子处理560还可以包括从远程设备接收数据。在该情形下,也可以使用在块 556生成并传送到远程设备的瞬时密钥来对所接收的数据进行加密。因此,可以利用用于该远程设备的瞬时密钥来对在块566接收的数据进行加密。在块568处,控制设备可以也使用瞬时密钥来对所接收的数据进行解密。所接收的数据然后可以被用于控制设备中。数据的具体使用对于本发明而言不是至关重要的,并且数据可以投入任何适当使用。处理500然后可以继续到决策块570。在决策块570,取决于是否已经检测到指示应当从对等组移除远程设备的触发事件,处理可以分支。触发设备的示例可以是用户输入。 作为具体示例,用户可以从控制设备上的用户界面中选择命令184 (图1C)。然而,任何其它适当事件可以充当触发。例如,图4B例示了 数据集450中的包含关于远程设备的信息的记录可以包括时间值,诸如字段462中例示的时间值。在一些实施例中,用于从对等组中移除远程设备的适当触发可以是预定量时间的经过。例如可以依据字段462中的值来确定该时间。与具体触发事件无关,如果检测到触发事件,则处理500从决策块570分支到块 572。在块572处,控制设备可以使与远程设备相关联的主密钥无效。可以以任何适当方式执行在块572处的处理。在一些实施例中,可以通过从密钥存储设备(诸如密钥存储设备340)中删除主密钥,来使主密钥无效。然而,在其它实施例中,可以通过在与该密钥相关联的记录中设置标志、或者以任何其它适当方式来使该密钥无效。在块572处使主密钥无效之后,处理500可以继续到块582,在块582,也使与该远程设备相关联的瞬时密钥无效,诸如通过删除使其无效。在删除瞬时密钥之后,处理500可以结束。在处理在已经经过块572和582之后到达结束时,远程设备将不能进一步如子处理560中那样进行通信,这是因为其将没有瞬时密钥来对数据进行加密和解密。此外,远程设备将不能通过重复子处理550建立可以被用于通信的瞬时密钥以重新建立通信。如果远程设备寻求重新建立通信,其将被迫通过决策块M0,在决策块540处,其必须被重新授权获得新的主密钥。然而,图5A和5B例示了处理可以到达处理500的结束所通过的步骤的其它顺序。 例如,如果在决策块570处没有接收到用于移除远程设备的指示,则处理可以前进到决策块580。在决策块580,取决于通信是否已经完成,处理500可以分支。如果没有完成,则处理可以循环返回,其中可以重复子处理560的一些或全部。相反,如果通信完成,则处理可以从决策块580分支到块582。在块582处,可以删除被分配给该远程设备的瞬时密钥,并且然后处理500可以结束。在其中处理没有运行块 572而到达结束的情形下,远程设备可以保持有效的主密钥。然而,该远程设备可能缺少瞬时密钥,这是因为它们在块582处被删除,然而远程设备可以恢复作为对等组的一部分的通信,而无需其它明确的用户授权。例如,如果在稍后时间,远程设备试图重新建立通信,处理可以通过决策块520直接分支到子处理550,在子处理550,由于远程设备保持有效的主密钥,因此远程设备可以接收新的瞬时密钥。以此方式,处理500例示了可以选择性地移除作为对等组的一部分的远程设备的主密钥所依据的方式。尽管图5A和5B描绘了控制设备和单个远程设备之间的交互,然而应理解可以对于形成对等组的多个远程设备中的每一个重复处理500。用于每个远程设备的处理可以是独立的。因此,对于一个远程设备的主密钥的选择性无效不影响由其它远程设备保持的主密钥的有效性。因此,可以依据图5A和5B的处理来选择性地移除远程设备。然而,应理解, 图5A和5B例示了示例性的处理,可以使用任何适当处理来选择性地从对等组中移除一个或多个远程设备。图6例示了可以在其上实现本发明的适当的计算系统环境600的示例。计算系统环境600仅仅是适当的计算环境的一个示例,并且不意图建议对于本发明的使用范围或功能性范围的任何限制。计算环境600也不应被解释为关于在示例性操作环境600中例示的组件中的任一组件或任何组合具有任何依赖性或要求。本发明可操作于多种其它通用或专用计算系统环境或配置。可以适合于用于本发明的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子器件、网络 PC、小型计算机、大型计算机、包括以上系统或设备中任一个的分布式计算环境、等等。计算环境可以运行计算机可运行指令,诸如程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。本发明还可以在分布式计算环境中实现,其中,通过经由通信网络链接的远程处理设备执行任务。在分布式计算环境中,程序模块可以位于本地和远程计算机存储介质(包括存储器存储设备)两者中。
参考图6,用于实现本发明的示例性系统包括计算机610形式的通用计算设备。计算机610的组件可以包括但不限于处理单元620、系统存储器630、和系统总线621,该系统总线621将包括系统存储器的各个系统组件耦合到处理单元620。系统总线621可以是若干种总线结构中的任一种,所述若干种总线结构包括存储器总线或存储器控制器、外设总线、以及使用多种总线架构中任一种的本地总线。通过示例而非限制,这样的架构包括工业标准架构(ISA)总线、微通道体系结构(MCA)总线、增强ISA (EISA)总线、录像电子标准协会(VESA)本地总线、和也被已知为Mezzanine总线的外设组件互连(PCI)总线。计算机610典型地包括多种计算机可读介质。计算机可读介质可以是计算机610 可以访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。通过示例而非限制,计算机可读介质可以包括计算机存储介质和通信介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其它数据之类的信息的易失性和非易失性介质两者、可移动和不可移动介质两者。计算机存储介质包括但不限于RAM、R0M、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多用途盘(DVD)或其它光盘存储装置、盒式磁带、磁带、磁盘存储装置或其它磁存储设备、或者可以被用来存储期望信息并且可以被计算机610访问的任何其它介质。通信介质典型地以调制数据信号 (诸如载波或其它传输机制)形式来体现计算机可读指令、数据结构、程序模块或其它数据, 并且包括任何信息传输介质。术语“调制数据信号”意味着以下信号,以将信息编码到信号中的方式设置或改变了所述信号的特征中的一项或多项。通过示例而非限制,通信介质包括有线介质(诸如有线网络或直接有线连接)、和无线介质(诸如声、RF、红外和其它无线介质)。上面的任何的组合也应被包括在计算机可读介质的范围之内。系统存储器630包括易失性和/或非易失性存储器形式的计算机存储介质,诸如, 只读存储器(ROM) 631和随机存取存储器(RAM) 632。包含诸如在启动期间帮助在计算机 610内的各元件之间传输信息的基本例程的基本输入/输出系统633 (BIOS)典型地被存储在ROM 631中。RAM 632典型地包含刚刚可被处理单元620访问和/或目前正在被操作的数据和/或程序模块。通过示例而非限制,图6例示了操作系统634、应用程序635、其它程序模块636和程序数据637。计算机610还可以包括其它的可移动/不可移动、易失性/非易失性计算机存储介质。仅仅通过示例,图6例示了 硬盘驱动器640,其从或向不可移动的非易失性的磁性介质读取或写入;磁盘驱动器651,其从或向可移动的非易失性的磁盘652读取或写入;以及光盘驱动器655,其从或向可移动的非易失性的光盘656 (诸如CD ROM或其它光学介质)读取或写入。可以在示例性操作环境中使用的其它可移动/不可移动的、易失性/非易失性的计算机存储介质包括但不限于盒式磁带、闪存卡、数字多用途盘、数字录像带、固态RAM、 固态ROM等等。硬盘驱动器641典型地通过不可移动的存储器接口(诸如接口 640)连接到系统总线621,并且磁盘驱动器651和光盘驱动器655典型地通过可移动的存储器接口(诸如接口 650)连接到系统总线621。上述的且在图6中例示的驱动器和它们相关联的计算机存储介质提供了计算机可读指令、数据结构、程序模块和用于计算机610的其它数据的存储。在图6中,例如,硬盘驱动器641被例示为存储操作系统644、应用程序645、其它程序模块646、和程序数据647。 注意,这些组件可以与操作系统634、应用程序635、其它程序模块636、和程序数据637相同,或者与操作系统634、应用程序635、其它程序模块636、和程序数据637不同。这里向操作系统644、应用程序645、其它程序模块646、和程序数据647给出了不同的数字,以便至少例示它们是不同的副本。用户可以通过输入设备向计算机610输入命令和信息,所述输入设备诸如键盘662和指向设备661 (通常被称为鼠标、轨迹球、或触摸板)。其它输入设备 (未示出)可以包括麦克风、操纵杆、游戏板、卫星天线、扫描仪等。这些和其它输入设备经常通过与系统总线耦合的用户输入接口 660连接到处理单元620,但是可以利用其它接口和总线结构(诸如并行端口、游戏端口、或通用串行总线(USB))连接。监视器691或其它类型的显示设备也经由接口(诸如视频接口 690)连接到系统总线621。除了监视器之外,计算机还可以包括其它外部输出设备,诸如可以通过输出外设接口 695连接的扬声器697和打印机 696。计算机610可以使用到一个或多个远程计算机(诸如远程计算机680)的逻辑连接操作在联网环境下。尽管在图6中仅仅例示了存储器存储设备681,远程计算机680可以是个人计算机、服务器、路由器、网络PC、对等设备或其它通用网络节点,并且典型地包括上面相对于计算机610描述的元件中的许多个元件或全部元件。图6中所描绘的逻辑连接包括局域网(LAN) 671和广域网(WAN) 673,但是还可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内部网和因特网中是常见的。当在LAN联网环境下使用时,计算机610通过网络接口或适配器670连接到LAN 671。当在WAN联网环境下使用时,计算机610典型地包括调制解调器672或用于在WAN 673 (诸如因特网)上建立通信的其它部件。调制解调器672 (可以是内部的或外部的)可以经由用户输入接口 660或其它适当机制连接到系统总线621。在联网环境下,相对于计算机610 或其部分描绘的程序模块可以存储在远程存储器存储设备中。通过示例而非限制,图6例示了驻留在存储器设备681上的远程应用程序685。将理解,所示出的网络连接是示例性的,而且可以使用建立计算机之间的通信链路的其它手段。因此已经描述了本发明的至少一个实施例的若干方面,应理解,对于本领域技术人员而言将容易出现各种更改、修改和改进。这样的更改、修改和改进意图作为本公开的一部分,并且意图在本发明的精神和范围之内。因此,以上描述和附图仅仅是示例。可以以多种方式中的任何方式来实现本发明的上述实施例。例如,可以使用硬件、 软件或其组合来实现实施例。在以软件实现时,可以在任何适当处理器或处理器集合(无论提供在单个计算机中还是分布在多个计算机中)上运行软件代码。这样的处理器可以被实现为集成电路,在一个集成电路组件中有一个或多个处理器。然而,可以使用任何适当形式的电路来实现处理器。此外,应理解,可以以多种形式中的任何形式来体现计算机,诸如机架安装计算机、桌上型计算机、膝上型计算机或平板计算机。另外,可以在通常不被看作计算机但是具有适当处理能力的设备(包括个人数字助理(PDA)、智能电话、或任何其它适当的便携式或固定电子设备)中嵌入计算机。而且,计算机可以具有一个或多个输入和输出设备。这些设备尤其可以被用来表现用户接口。可以被用来提供用户接口的输出设备的示例包括用于输出的视觉表现的打印机或显示屏幕、以及用于输出的听觉表现的扬声器或其它声音生成设备。可以被用于用
20户接口的输入设备的示例包括键盘和指向设备,诸如鼠标、触摸板和数字平板。作为另一示例,计算机可以通过语音识别或以其它听觉格式来接收输入信息。这样的计算机可以通过以任何适当形式的一个或多个网络互连,包括局域网或广域网,诸如企业网络或因特网。这样的网络可以基于任何适当技术,并且可以根据任何适当协议操作,并且可以包括无线网络、有线网络或光纤网络。而且,这里列出的各种方法或处理可以被编码为可在一个或多个处理器(采用多种操作系统或平台中的任何一种)上运行的软件。另外,可以使用多种适当编程语言和/或编程或脚本工具中任一种来编写这样的软件,并且这样的软件还可以被编译为可运行机器语言代码、或在框架或虚拟机上运行的中间代码。在该方面,本发明可以被体现为编码有一个或多个程序的计算机可读存储介质 (或多个计算机可读介质)(例如,计算机存储器、一个或多个软盘、紧致盘(CD)、光盘、数字视频盘(DVD)、磁带、闪存、现场可变成门阵列或其它半导体器件中的电路配置、或其它非临时的有形的计算机存储介质),所述程序在一个或多个计算机或其它处理器上运行时,执行实现上面讨论的本发明的各个实施例的方法。计算机可读存储介质或多个不同计算机可读存储介质可以是可运输的,使得在其上存储的程序或多个程序可以被载入到一个或多个计算机或其它处理器上,以便实现上面讨论的本发明的各个方面。如这里所使用的,术语“非临时计算机可读存储介质”仅仅涵盖可以被考虑为制造品(即制造产品)或机器的计算机可读介质。替代地或附加地,本发明可以被体现为除了计算机可读存储介质之外的计算机可读介质,诸如传播信号。这里在一般意义下使用术语“程序”或“软件”,以便指代任何类型的计算机代码或计算机可运行指令的集合,其可以被采用来编程计算机或其它处理器以便实现上面讨论的本发明的各个方面。另外,应理解,根据本实施例的一个方面,在被运行时执行本发明的方法的一个或多个计算机程序不需要驻留在单个计算机或处理器上,而是可以以模块方式分布在多个不同计算机或处理器上以便实现本发明的各个方面。计算机可运行指令可以为许多形式,诸如被一个或多个计算机或其它设备运行的程序模块。通常,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、 组件、数据结构等等。典型地,如在各个实施例中期望的,程序模块的功能性可以被组合或分布。而且,数据结构可以以任何适当形式存储在计算机可读介质中。为了简化例示,数据结构可以被示出为具有通过在数据结构中的位置而相关的字段。这样的关系可以类似地通过向字段存储分配计算机可读介质中的位置(其传达字段之间的关系)来实现。然而,可以使用任何适当机制来建立数据结构的字段中信息之间的联系,包括通过使用指针、标签或建立数据元素之间的联系的其它机制。可以单独地、组合地、或者以未在上述实施例中具体讨论的多种布置来使用本发明的各个方面,并且因此本发明的各个方面在其应用方面不限于在上面描述中提出的或在图中例示的细节和组件布置。例如,可以以任何方式将在一个实施例中描述的方面与在其它实施例中描述的方面组合。而且,本发明可以被体现为方法,已经提供了该方法的示例。可以以任何适当方式对被执行为方法的一部分的动作进行排序。因此,可以构造其中以与所例示的顺序不同的顺序来执行动作的实施例,所述不同的顺序可以包括同时执行一些动作,即使这些动作在例示性实施例中被示出为顺序的动作。权利要求中使用诸如“第一”、“第二”、“第三”等的顺序性术语来修整权利要求元素本身不暗示任何优先级、优先、或一个权利要求元素相对于另一元素的顺序、或者执行方法动作所依据的时间顺序,而仅仅被用作标签来将具有某一名称的一个权利要求元素与具有相同名称(但使用了顺序性术语)的另一权利要求元素区分开,从而区分权利要求元素。而且,这里使用的措辞和术语用于描述的目的,并且不应被认为是限制。这里,“包括”、“包含”或“具有”、“含有”、“涉及”及其变型的使用意味着涵盖其后列出的项目及其等同物、以及附加项目。
权利要求
1.一种操作被配置为对等组中的控制设备的无线计算设备(120)的方法,该方法包括利用第一设备执行密钥生成处理(544),由此将第一主密钥提供给第一设备; 利用第二设备执行密钥生成处理,由此将第二主密钥提供给第二设备,第二主密钥与第一主密钥不同;形成包括第一无线设备和第二无线设备作为客户端(530)的对等组,该形成包括 基于第一主密钥验证第一无线设备, 基于第一主密钥生成第一瞬时密钥, 基于第二主密钥验证第二无线设备,以及基于第二主密钥生成第二瞬时密钥;与作为该对等组的一部分的第一无线设备和第二无线设备交换数据(532),该交换包括利用第一瞬时密钥对发送到第一无线设备的数据进行加密,以及利用第二瞬时密钥对发送到第二无线设备的数据进行加密。
2.如权利要求1所述的方法,还包括使第一主密钥和第一瞬时密钥无效,由此从该对等组中移除第一无线设备。
3.如权利要求2所述的方法,还包括在使第一主密钥和第一瞬时密钥无效之后,与作为该对等组的一部分的第二无线设备交换数据。
4.如权利要求1所述的方法,还包括与至少第一无线设备执行组拥有者协商,由此该无线计算设备被选择为组拥有者。
5.如权利要求2所述的方法,其中该方法还包括将第一主密钥和第二主密钥存储在密钥存储设备中;以及使第一主密钥无效包括从该密钥存储设备中删除第一主密钥。
6.一种计算设备,包括 无线电设备(250);至少一个处理器;计算机存储介质,其包括用于在至少一个处理器上运行的计算机可运行组件,该计算机可运行组件包括对等控制组件(360 ),被配置为依据对等协议与一个或多个远程设备交互以提供组; 密钥生成器(322),该密钥生成器被配置为与多个远程设备中的每个远程设备进行交互,以便为所述多个远程设备中的每个远程设备生成独特的主密钥; 验证组件(330),该验证组件被配置为确定试图加入由对等控制组件控制的对等组的远程设备是否具有有效的主密钥,以及在该远程设备具有有效的主密钥时,与该远程设备进行交互以便基于该有效的主密钥生成用于该远程设备的瞬时密钥。
7.如权利要求6所述的计算设备,其中计算设备还包括数据存储设备,用于存储由密钥生成器生成的主密钥; 验证组件通过利用数据存储设备中的密钥处理从试图加入由对等控制组件控制的对等组的远程设备接收的消息,来确定该远程设备是否具有有效的主密钥。
8.如权利要求7所述的计算设备,其中该计算机可运行组件还包括用于响应于从对等组中移除远程设备的用户输入而从数据存储设备中移除密钥的组件。
9.如权利要求8所述的计算设备,其中验证组件被配置为通过依据WPA2协议执行握手,来确定试图加入对等组的远程设备是否具有有效的主密钥。
10.如权利要求6所述的计算设备,其中无线电设备操作在高于2GHz且低于6GHz的频带中。
全文摘要
一种操作为对等组中的控制器的无线计算设备,其被配置为为加入该组的每个设备生成独特的主密钥。该无线计算设备可以使用所述独特的主密钥来选择性地将远程设备从组中移除,使得该远程设备稍后不能重新加入该组。每个具有保持有效的主密钥的其它远程设备可以从该组断开连接,并且可以稍后重新连接到该组而无需表达用户动作。为了支持这样的行为,无线设备可以提供用户界面,通过该用户界面,用户通过提供选择性地将远程设备从组中断开连接或移除的命令,可以管理所连接的远程设备。
文档编号H04L29/06GK102427457SQ201110423068
公开日2012年4月25日 申请日期2011年12月16日 优先权日2010年12月16日
发明者A. 哈桑 A., 费尔盖拉斯 H., K. 德赛 M., 古普塔 Y. 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1