基于身份的网络策略实现的制作方法

文档序号:7914876阅读:186来源:国知局
专利名称:基于身份的网络策略实现的制作方法
基于身份的网络策略实现
背景技术
计算机和诸如PDA (个人数字助理)、外部驱动等(本文统一称为计算设备)之类的基于计算机的设备是在一个或多个计算设备之间的通信会话中的对等端点。例如,一个计算设备(例如客户端)和第二计算设备(例如服务器)是由计算设备或计算设备中一个或两个的一个或多个用户发起的种种通信会话中的对等端点。两个对等端点之间的通信会话中数据分组遍历的路径经常包括一个或多个中介。中介是调度和/或穿过对等端点之间的通信的硬件或软件。示范性中介包括但不限于交换机、路由器、负载均衡器、网守(gate keeper)等。期望对等端点之间的通信路径中的中介能够识别端点用户。进一步期望对等端点之间的通信路径中的中介能够认证正在利用(employ)认证并潜在地利用加密协议的端点用户。因此,有利的是,在功能上实现用于对等端点之间的通信路径中的中介识别对等端点的一个或两个并认证对等端点的一个或两个和/或它们的用户的系统和过程。如果用于对等端点识别和认证的系统和过程被包括在用于对等端点通信、认证和/或加密协议的现有系统和过程内,这进一步是有利且便利的,因此不需要设计并实现全新的协议。认证对等端点的中介能力可以提供对所传输的数据流量的附加的安全保护,因为通信会话的通信路径中的中介将对数据流量来自/去往被期望和/或预期的谁有信心。识别对等端点的中介能力可以支持网络流量处理的增强粒度,因为它将使得中介能够对通过它们传输的数据流量实现并实施基于身份的规则。

发明内容
该发明内容被提供以通过简化形式引入对下文在具体实施方式
中进一步描述的概念的选择。该发明内容并非旨在标识要求保护的主题的关键或必要特征,也非旨在被用作对确定要求保护的主题的范围的辅助。本文所讨论的实施例包括用于实现在通信会话中在两个对等端点之间的数据流量的基于身份的处理的系统和方法论。在实施例中,两个对等端点之间的通信会话的通信路径中的中介通过在转发被对等端点用来建立通信会话的(多个)握手消息之前添加中介印记来修改所述(多个)握手消息。在实施例中,中介可以随后使用它们的中介印记来识别在对等端点之间传输的消息,其可以用于识别对等端点的一个或两个。在实施例中,中介随后还可以使用它们的中介印记来识别在对等端点之间传输的认证对等端点和/或提供将被用于加密随后在这些对等端点之间传输的数据分组的加密信息的消息。在这些实施例中,中介可以获取必要信息以识别和认证对等端点并识别在特定通信会话的对等端点之间传输的数据分组。 在实施例中,对等端点传输在它们的(多个)握手消息中以及在它们的认证和/或加密协议消息中的一个或多个中的中介印记。在实施例中,对等端点的一个或两个使用中介印记生成中介可以译解的并连同相应的证书一起使用的哈希签名,以认证对等端点。在实施例中,对等端点认证向在处理对等端点数据流量中基于身份的规则应用提供增强的安全和确实性。


现在将参考旨在说明而非限制本发明的某些实施例和示例的附图来描述这些和其他特征,并且其中
图IA描绘了具有两个对等端点和各种中介的示范性通信会话。图IB描绘了附加了新中介的图I的示范性通信会话。图2图示了中介在没有认证和加密的通信会话中识别对等端点的通信协议的实施例。图3A、3B、3C和3D描绘了可以被中介修改的用于对等端点的通信协议消息的实施 例。图4图示了中介印记的实施例。图5图示了中介在具有认证和加密的通信会话中认证和识别对等端点的通信协议的实施例。图6A和6B描绘了用于对等端点向中介认证它们自己的通信协议消息的实施例。图7A-7C图示了发起者对等端点在通信会话中向一个或多个中介识别和认证它自己的逻辑流程的实施例。图8A-8C图示了响应者对等端点在通信会话中向一个或多个中介识别和认证它自己的逻辑流程的实施例。图9A-9D图示了中介在通信会话中识别和认证对等端点的逻辑流程的实施例。图10是可以处理软件(即程序代码或指令)的示范性基本计算设备系统的框图。
具体实施例方式在下面的描述中,为了解释的目的,阐述了许多特定细节以便提供对本文所述的实施例的透彻理解。然而,对本领域技术人员而言,显然,这些实施例可以在没有这些特定细节的情况下被实施。在其他情况中,公知的结构和设备以框图的形式被示出以便避免不必要的晦涩费解。自始至终使用的任何和所有标题仅是为了易于解释,而不是为了任何限制性用途。图IA描绘了在两个对等端点(客户端100和服务器110)之间的示范性网际协议(IP)通信会话。在图IA的示例中,三个中介Il 115,12 120和13 125沿着客户端-服务器(C->S)通信方向130位于客户端100与服务器110之间。在实施例中,中介是调度和/或穿过对等端点之间的通信(即IP分组)的硬件和/或软件。示范性中介包括但不限于交换机、路由器、负载均衡器、网守等。在图IA的示例中,一个中介14 135沿着服务器-客户端(S->C)通信方向140位于客户端100与服务器110之间。在实施例中,通信会话在两个对等端点(发起者和响应者)之间。在图IA的示例中,客户端100是发起者,而服务器110是响应者。在其中对等端点或实体(例如图IA的客户端100和服务器110)之间的认证或在端点实体之间传输的有效载荷(即数据流量)或数据分组160的加密都未被使用的实施例中,中介可以确定发起者和/或响应者的身份以用于在流过它们的数据分组160上实施基于身份的策略或规则175。参照图2,在该实施例中,发起者100经由在发起者100与响应者110之间的通信路径中的(多个)中介210向响应者110发送未加密的握手消息230,以在发起者100与响应者110之间建立通信信道或会话。使用图IA的示例,客户端100经由
Il115、12 120和13 125中介向服务器110发送握手消息230。参照图3A,握手消息230的实施例具有头部310。在该握手消息230实施例的一个方面,头部310包括发起者(例 如客户端100)COOkie 305。在一个实施例中,发起者cookie305由可以用于指明用于尝试被实例化的通信会话的发起者100的数据(例如一个或多个数字或数字对)构成。在一个实施例中,发起者cookie 305将发起者100表征为与用于特定通信会话的数据流量相关联的对等端点。在另一个实施例中,握手消息230包括足以指明相同的两个端点之间的相关流量和可以用于区分发起者100的数据。在一个实施例中,当握手消息230从发起者100沿着C_>S通信方向130被传输到中介Il 115、中介12 120和中介13 125,最后被传输到端点响应者110时,每个中介Il115、12 120和13 125均可以查看握手消息230并且获得发起者cookie 305。以此方式,在C->S通信方向130上的每个中介210均可以识别在发起者的IP (网际协议)地址之外的发起者100。在一个实施例中,在C->S通信方向130上的查看握手消息230并获得发起者cookie 305的每个中介210存储发起者cookie 305和/或从中得到的信息,以用于发起者100与响应者110之间的当前通信会话。在一个实施例中,当握手消息230被第一中介210 (例如Il 115)接收时,Il 115在将现在修改的握手消息240沿着C->S通信方向130传递到下一个实体(即中介210或对等端点)之前将中介印记附加或另外嵌入或包括在其中。在一个实施例中,当在C->S通信方向130上每个附加的中介210接收到修改的握手消息240时,每个中介210在将修改的握手消息240沿着C->S通信方向130传递到下一个实体之前将中介印记附加到该修改的握手消息240。在该实施例中且参照图3B的修改的握手消息240,当Il 115接收到握手消息230时,它将中介Il印记322附加到握手消息230并将修改的握手消息240沿着C_>S通信方向130传递到下一个实体12 120。在该实施例和示例中,当12 120接收到修改的握手消息240时,它附加中介12印记324并将修改的握手消息240沿着C_>S通信方向130传递到下一个实体13 125。在该实施例和示例中,当13 125接收到修改的握手消息240时,它附加中介13印记326并将修改的握手消息240传递到端点响应者110。参照图4,由中介210添加的中介印记400的实施例具有随机数(nonce)字段410,其包含用于中介210的唯一随机数,例如随机数415。在一个实施例中,随机数是随机或伪随机的数。在可替代实施例中,随机数可以是其他随机的、伪随机的或特定的标识符。在一个实施例中,存储在随机字段410中的随机数是长度可变的。在一个实施例中,中介印记400具有供未来使用的保留字段420。在一个实施例中,中介印记400具有随机数大小字段430,其指示随机数字段410中的随机数(例如随机数415)的大小(例如大小425)。在一个实施例中中介印记400具有类型字段440。在一个实施例中,类型字段440包含中介印记类型的指示。
参照图2,在一个实施例中,当响应者110接收到修改的握手消息240时,它其中包括响应者cookie 335,并且将修改的握手消息250沿着S_>C通信方向140往回传输到发起者(例如客户端100)。参照图3C,在一个实施例中,响应者110将响应者cookie 335添加到修改的握手消息250的头部310。在一个实施例中,响应者cookie 335由可以用于指明用于尝试被实例化的通信会话的响应者110的数据(例如一个或多个数字或数字对)构成。在一个实施例中,响应者cookie 335将响应者110表征为与用于特定通信会话的数据流量相关联的对等端点。在另一个实施例中,当响应者110接收到修改的握手消息240时,它其中包括可以用于区分响应者110的数据,并且将修改的握手消息250沿着S->C通信方向140往回传输到发起者100。在可替代实施例中,当响应者110接收到修改的握手消息240时,它将新握手消息250格式化。在该可替代实施例中,新握手消息250具有与图3C的握手消息250的实施例相似的内容,相似之处在于它具有包括发起者cookie 305和响应者cookie 335或其他用于区分发起者100和响应者110的其他数据的头部,并且它包括来自中介Il 115、中介12120和中介13 125的中介印记322、324和326。在该可替代实施例中,新握手消息250可以包含与先前参考图3C讨论的修改的握手消息250不同的头部内容和/或值。在该可替代实施例中,新握手消息250还或可替代地可以包含与先前参考图3C讨论的修改的握手消息250不同的有效载荷内容和/或值。在一个实施例和图IA的示例中,当握手消息250从服务器110沿着S_>C通信方向140被传输到中介14 135之后传输到端点客户端100时,14 135可以观看握手消息250并获得发起者、客户端、cookie 305和响应者、服务器、cookie 335。以此方式,在S_>C通信方向140上的每个中介210可以识别在发起者的IP地址之外的发起者100。以此方式,在S->C通信方向140上的每个中介210还可以识别在响应者的IP地址之外的响应者110。在一个实施例中,在S->C通信方向140上的获得发起者cookie 305的每个中介210存储发起者cookie 305和/或从中得到的信息以用于在发起者(客户端)100与响应者(服务器)110之间的当前通信会话。在一个实施例中,在S_>C通信方向140上的获得响应者cookie335的每个中介210存储响应者cookie 335和/或从中得到的信息以用于在发起者100与响应者110之间的当前通信会话。在一个实施例中,当握手消息250在S_>C通信方向140上被中介14 135接收到 时,14 135在将修改的握手消息260传递到端点客户端100之前将中介印记328附加或另外嵌入或包括于此。如图3D所不,修改的握手消息260的实施例具有14 135中介印记328。在该实施例和图IA的示例中,当客户端100从14 135接收到修改的握手消息260时,客户端100可以确定在它与服务器110之间存在4个中介。在该实施例和示例中,客户端100还可以使用中介印记322、324、326和328来识别(至少在名义上)客户端100与服务器110之间的这四个当前中介(S卩Il 115, 12 120, 13 125和14 135)。中介信息可以被客户端100用于多种目的,包括但不限于控制C->S通信方向130路径以求期望的通信性能。再次参照图2,在一个实施例中,当发起者(客户端)100接收到修改的握手消息260时,客户端100沿着C->S通信方向130将修改的握手消息260往回回波(echo)到响应者(服务器)110。
在一个实施例中,当修改的握手消息260从客户端100沿着C_>S通信方向130被传递到中介Il 115、12 120和13 125且之后被传递到端点服务器110时,每个中介Il115、12 120和13 125均可以查看修改的握手消息260并获得响应者(例如服务器110)cookie 335。以此方式,在C_>S通信方向130上的每个中介210均可以识别在响应者的IP地址之外的响应者110。在一个实施例中,在C->S通信方向130上的查看修改的握手消息260并获得响应者cookie 335的每个中介210存储响应者cookie 335和/或从中得到的信息,以用于发起者100与响应者110之间的当前通信会话。在一个实施例中,在C_>S通信方向130上的每个中介Il 115、12 120和13 125可以通过验证中介的相应印记(例如322、324或326)包括在修改的握手消息260中来确定修改的握手消息260用于与原始握手消息230或修改的握手消息240相同的通信会话。在一个实施例和图IA的示例中,当服务器110接收到包含用于客户端100与服务 器HO之间的每一个中介210的中介印记322、324、326和328的修改的握手消息260时,服务器110可以确定在它与客户端100之间存在4个中介210。在该实施例和示例中,服务器110还可以使用中介印记322、324、326和328来识别(至少在名义上)客户端100与服务器110之间的这四个当前中介(S卩Il 115,12 120,13 125和14 135)。中介信息可以被服务器110用于多种目的,包括但不限于控制S->C通信方向140路径以求期望的通信性能。在可替代实施例中,不是每个中介210都可以具有用于识别通信会话中的对等端点的用途。例如,在一些可替代实施例中,一个或多个中介210 (例如12 120)将以相同的方式处理穿过它的每个数据分组160,并且因此无需区分任何特定通信会话中涉及的对等端点。在这些可替代实施例中,不关注对等端点身份的一个或多个中介210不需要查看握手消息230或修改的握手消息240、250或260,也不需要获得发起者cookie 305或响应者cookie 335。仍然在其他可替代实施例中,一个或多个中介210可以仅关注识别通信会话中的一个对等端点(例如客户端100)。例如,一个或多个中介210可以被预配置成了解对等端点之一(例如服务器110)的身份,因为该对等端点对中介210而言总是相同的。作为另一个示例,一个或多个中介210可以被配置成基于通信会话中仅一个对等端点的身份针对数据分组160实施基于身份的规则175。在这些可替代实施例的一个方面,中介210将不存储用于中介210不关注的对等端点的cookie或从中得到的信息。在其中对等端点(例如图IA的客户端100和服务器110)之间的认证协议被使用的实施例中,中介210可以识别并认证一个或两个对等端点以用于在它们之间传输的数据流量160上实施基于身份的策略或规则175。参照图5,在该实施例中,发起者(例如客户端)100经由在发起者100与响应者110之间的通信路径中的(多个)中介210向响应者(例如服务器)110传输握手消息230。使用图IA的示例,客户端100经由Il 115、12 120和13125中介向服务器110发送握手消息230。如图3A所示,在一个实施例中,握手消息230包括头部310,该头部包括发起者cookie 305。在另一个实施例中,握手消息230包括足以指明相同的两个对等端点之间的相关流量并且可以用于区分发起者100的数据。在一个实施例中,握手消息230的头部310是明文形式的,即它是未加密的。在一个实施例中,当握手消息230被第一中介210 (例如Il 115)接收时,Il 115在将现在修改的握手消息240沿着C->S通信方向130传递到下一个实体(即中介210或对等端点)之前将中介印记附加或另外嵌入或包括在其中。在一个实施例中,当在C->S通信方向130上每个附加的中介210接收到修改的握手消息240时,每个中介210在将修改的握手消息240沿着C->S通信方向130传递到下一个实体之前将中介印记附加到修改的握手消息240。在该实施例中且参照图3B的修改的握手消息240,当Il 115接收到握手消息230时,它将中介Il印记322附加到握手消息230并将修改的握手消息240沿着C_>S通信方向130传递到下一个实体12 120。在该实施例和示例中,当12 120接收到修改的握手消息240时,它附加中介12印记324并将修改的握手消息240传递到下一个实体13 125。在该实施例和示例中,当13 125接收到修改的握手消息240时,它附加中介13印记326并将修改的握手消息240传递到端点响应者110。参照图4,由中介210添加的中介印记400的实施例具有随机数字段410,其包含用于中介210的唯一随机数(例如随机数415)。在一个实施例中,随机数是随机或伪随机的数。在可替代实施例中,随机数可以是其他随机的、伪随机的或特定的标识符。在一个实施例中,存储在随机字段410中的随机数是长度可变的。在一个实施例中,中介印记400具有供未来使用的保留字段420。在一个实施例中,中介印记400具有指示随机数的大小(例如大小425)的随机数大小字段430。在一个实施例中,中介印记400具有类型字段440。在一个实施例中,类型字段440包含中介印记类型的指示。在该实施例的一个方面,用于附加到修改的握手消息240的中介印记的类型字段440包含指示中介印记400是认证请求印记的身份。在一个实施例中,零(0)435的印记类型指示中介印记400是认证请求印记。再参照图5,在一个实施例中,当响应者110接收到修改的握手消息240时,它将响应者cookie 335添加到其中并且将修改的握手消息250沿着S_>C通信方向140往回传输到发起者(例如客户端100)。参照图3C,在一个实施例中,响应者110将响应者cookie 335添加到修改的握手消息250的头部310。在另一个实施例中,当响应者110接收到修改的握手消息240时,它其中包括可以用于区分响应者110的数据并且将修改的握手消息250沿着S->C通信方向140往回传输到发起者100。在一个实施例中,响应者110将可以用于区分它的数据添加到修改的握手消息250的头部310。在一个实施例中,修改的握手消息250的头部310是明文形式的,即它是未加密的。在可替代实施例中,当响应者110接收到修改的握手消息240时,它将新握手消息250格式化。在该可替代实施例中,新握手消息250具有与图3C的握手消息250的实施例相似的内容,相似之处在于它具有包括发起者cookie 305和响应者cookie 335的头部或可替代地用于区分发起者100和响应者110的数据,并且它包括来自中介Il 115、中介12120和中介13 125的中介印记322、324和326。在该可替代实施例中,新握手消息250可以包含与先前参考图3C讨论的修改的握手消息250不同的头部内容和/或值。在该可替代实施例中,新握手消息250还或可替代地可以包含与参考图3C讨论的修改的握手消息250不同的有效载荷内容和/或值。、
在一个实施例中,当在S_>C通信方向140上的中介210接收到从响应者110传输的握手消息250时,每个中介210在将修改的握手消息260沿着S->C通信方向140传递到下一个实体(中介210或对等端点)之前将中介印记附加或另外嵌入或包括于此。因此,在一个实施例中且参照图IA和5,当握手消息250在S_>C通信方向140上被中介14 135接收到时,14 135在将修改的握手消息260传递到端点客户端100之前向握手消息250附加中介印记328。如图3D所示,修改的握手消息260的实施例具有14 135 中介印记328。在该实施例和图IA的示例中,当客户端100从14 135接收到修改的握手消息260时,客户端100可以确定在它与服务器110之间存在4个中介210。在该实施例和示例中,客户端100可以使用中介印记322、324、326和328来识别(至少在名义上)客户端100与服务器110之间的这四个当前中介210 (即Il 115、12 120、13 125和14 135)。在一个实施例中,当发起者(客户端)100接收到修改的握手消息260时,客户端100沿着C_>S通信方向130将修改的握手消息260往回回波到响应者(服务器)110。在一个实施例中,在C_>S通信方向130上的每个中介Il 115、12 120和13 125可以通过验证中介的相应印记(例如322、324或326)包括在修改的握手消息260中来确定修改的握手消息260用于与原始握手消息230或修改的握手消息240相同的通信会话。在一个实施例和图IA的示例中,当服务器110接收到包含用于客户端100与服务器110之间的每一个中介210的中介印记322、324、326和328的修改的握手消息260时,服务器110可以确定在它与客户端100之间存在4个中介210。在该实施例和示例中,服务器110还可以使用中介印记322、324、326和328来识别(至少在名义上)客户端100与服务器110之间的这四个当前中介,S卩Il 115、12 120、13 125和14 135。在一个实施例中,发起者(例如客户端)100和/或响应者(例如服务器)110向中介210认证它们自己。在一个实施例中,发起者100和响应者110使用验证者tx消息(其中每一个在本文中也被称为验证tx)来认证它们自己。在一个实施例中验证tx包括签名。在一个实施例中,验证tx包括证书。在一个实施例中,对等通信会话中的发起者100首先为了认证的目的传输其验证者tx消息。在其中对等端点之间的数据分组传输要被加密的实施例中,响应者110命令(多个)密钥来加密这些传输。在图IA的示例中,当客户端100发起与服务器110的通信过程时客户端100是发起者,而服务器110是响应者。在图IA的示例中,响应者(服务器110)命令(多个)密钥加密在客户端100与服务器110之间传输的数据分组。使用图IA的示例并再次参照图5,在一个实施例中,发起者(客户端)100格式化发起者验证tx 500并将其传输到响应者(服务器)110。参照图6A,发起者验证tx的实施例500包含iverify分组680。iverify分组680的实施例包含发起者签名615。iverify分组680的实施例包含发起者证书620。在一个实施例中,发起者签名615已经被与中介210可以辨识和信任的发起者证书620相关联的私钥所标记。在一个实施例中,当中介210接收到发起者验证tx 500时,它们可以从iverify分组680提取和使用发起者签名615和发起者证书620以证实发起者签名615与发起者证书620关联,并且因此认证发起者100是它所宣称的。在另一个实施例中,当中介210接收到发起者验证tx 500时,它们可以从iverify分组680提取并使用发起者签名615以及连同它们已经存储的发起者证书或它们已经存储的发起者证书信息来证实发起者签名615与发起者证书或发起者证书信息关联,从而认证发起者100。在一个实施例中,在认证发起者100的过程中,中介210还识别在中介210具有的在用于通信会话的数据流的环境内指明发起者100的信息(例如IP地址和发起者cookie305)之外的发起者100。在实施例中,发起者证书620或所存储的发起者证书或证书信息(在本文中统一被称为发起者证书620)可以识别使用或另外控制发起者100设备的用户,例如约翰史密斯(John Smith)。在实施例中,发起者证书620还或可替代地可以识别发起者100设备,例如设备描述和/或唯一设备id。在实施例中,发起者证书620还或可替代地可以识别用户的属性(例如用户职业、用户雇主、用户的就业团体等)和/或发起者100设备的属性(例如个人计算机、手持式设备、计算设备制造商/型号等)。在实施例中,发起者证 书620还或可替代地可以识别用户和/或发起者100设备的位置(locality),例如美国、华盛顿、雷德蒙、ABC公司8号楼等等。在实施例中,发起者证书620还或可替代地可以识别其他用户和/或发起者100设备信息和/或其任意组合。在一个实施例中,发起者签名615是签署的签名值。在该实施例的一个方面,签名值是散列算法660的结果。散列算法660的实施例将发起者cookie 305、响应者cookie335、中介印记(例如中介印记322、324、326和328)和发起者安全参数索引(SPI) 685用作输入。在一个实施例中,发起者SPI 685识别用于C->S通信方向130的安全参数,并且结合发起者IP地址而被用于识别所实现的安全关联(SA)。在一个实施例中,SA是用于提供安全数据连接的安全参数的逻辑组。在一个实施例中,在发起者100与响应者110之间,经由发起者100与响应者110之间的一个或多个通信先前协商散列算法660。在一个实施例中,中介印记用于生成发起者签名615的签名值的用途支持到对等端点生成的签名值的每中介输入。在该实施例中,发起者100可以利用单个发起者签名615向所有中介210提供发起者身份的证明。在可替代实施例中,发起者签名615和/或签名值是具有相同或其他输入的其他算法的结果。在一个实施例中,iverify分组680内容是明文形式,即iverify分组是未加密的。在一个实施例中,发起者验证tx 500包含头部605。在一个实施例中,发起者验证tx 500包含一个或多个控制分组610。在该实施例的一个方面,(多个)控制分组610被发起者100和响应者110用来建立用于它们之间的传输的安全数据信道。在该实施例的一个方面,(多个)控制分组610还或可替代地被发起者100和响应者110用来向彼此认证它们自己。在该实施例的一个方面,(多个)控制分组610还或可替代地被用来建立要用于发起者100与响应者110之间的传输的加密(cryptography)。在一个实施例中,发起者验证tx 500包含发起者协商信息(ineginfo)分组625。在一个实施例中,ineginfo分组625包含用于散列算法660的id (标识)。在一个实施例中,ineginfo分组625还包含发起者SPI 685。如先前所述,在一个实施例中,发起者SPI685识别用于C->S通信方向130的安全参数,并且结合发起者IP地址来识别所实现的安全关联(SA)。在一个实施例中,ineginfo分组625的内容是明文形式。
在一个实施例中,发起者验证tx 500包含发起者100与响应者110之间的通信路径中的每个中介210的中介印记。在一个实施例中,发起者验证tx 500中的中介印记是明文形式。在一个实施例中,当发起者验证tx 500从客户端100沿着C_>S通信方向130被传输到中介Il 115、12 120和13 125且之后被传输到端点服务器110时,每个中介Il 115、
12120和13 125均可以识别其中介印记并确定发起者验证tx 500是中介210现在正在跟踪的、发起者100与响应者110之间的通信会话的一部分。在一个实施例中,在C_>S通信方向130上的中介210可以使用发起者签名615和发起者证书620来尝试识别并认证客户端100。在一个实施例中,中介210可以访问散列算法660的id和发起者SPI 685,因为它们在ineginfo分组625中未被加密。在一个实施例中,中介210可以访问所有中介印记(例如印记322、324、326和328)。在一个实施例中,中 介210可以访问发起者cookie 305和响应者cookie 335和/或从中得到的信息。因此,在一个实施例中,中介210具有用于解码发起者签名615和证实发起者签名615与发起者证书620适当关联的必要信息。在一个实施例中,中介Il 115接收发起者验证tx 500并且可以使用发起者签名615和发起者证书620来尝试识别并认证客户端100。如果发起者签名615是有效的,即发起者签名615与发起者证书620关联,则中介Il 115已经认证了发起者100。在一个实施例中,中介12 120在接收到发起者验证tx 500时可以使用发起者签名615和发起者证书620来尝试识别并认证客户端100。如果发起者签名615是有效的,则中介12 120已经认证了发起者100。在一个实施例中,中介13 125在接收到发起者验证tx 500时可以使用发起者签名615和发起者证书620来尝试识别并认证客户端100。如果发起者签名615是有效的,则中介13 125已经认证了发起者100。再次参照图5,在一个实施例中,当对等端点响应者(例如服务器)110接收到发起者验证tx 500时,响应者110将发起者验证tx 500沿着S->C通信方向140往回回波到发起者100。以此方式,在S->C通信方向140上的中介210可以认证发起者100。在一个实施例和图IA和5的示例中,当发起者验证tx 500沿着S_>C通信方向140被传输时,中介14 135可以识别其中介印记并确定发起者验证tx 500是14 135现在正在跟踪的发起者100与响应者110之间的通信会话的一部分。在一个实施例中,在S_>C通信方向140上的中介210可以使用发起者签名615和发起者证书620以尝试识别并认证客户端100。在一个实施例中,中介210可以访问散列算法660的id和发起者SPI 685,因为它们在ineginfo分组625中未被加密。在一个实施例中,中介210可以访问所有中介印记,因为它们在发起者验证tx 500中未被加密。在一个实施例中,中介210可以访问发起者cookie 305和响应者cookie 335和/或从中得到的信息。因此,在一个实施例中,中介210具有用于解码发起者签名615和证实它与发起者证书620关联的必要信息。在一个实施例中,认证发起者100的每个中介210存储发起者cookie 305和/或从中得到的信息以用于发起者100与响应者110之间的当前通信会话。在一个实施例中,认证发起者100的每个中介210存储发起者IP地址以用于发起者100与响应者110之间的当前通信会话。在一个实施例中,认证发起者100的每个中介210存储发起者证书620和/或从中得到的信息以用于发起者100与响应者110之间的当前通信会话。在一个实施例中,认证发起者100的每个中介210存储发起者SPI 685以用于发起者100与响应者110之间的当前通信会话。在一个实施例中,认证发起者100的每个中介210存储来自ineginfo分组625的散列id,其识别用于在发起者100与响应者110之间沿着C->S通信方向130通信的散列算法660。使用图 的示例并再次参照图5,在一个实施例中,响应者(例如服务器110)格式化响应者验证tx 530并且将其传输到发起者(例如客户端100)。在该实施例的一个方面,响应者110在将发起者验证tx 500往回回波到发起者100之后将响应者验证tx 530传输到发起者100。参照图6B,响应者验证tx 530的实施例包含rverify分组690。在一个实施例中rverify分组690包含响应者签名645。在一个实施例中,rverify分组690包含响应者证书 650。在一个实施例中,响应者签名645已经被与中介210可以辨识和信任的响应者证书650相关联的私钥所签署。在一个实施例中,当中介210接收到响应者验证tx 530时,它们可以从rverify分组690提取并使用响应者签名645和响应者证书650以证实响应者签名645与响应者证书650中预期的关联,并且因此认证响应者110是它所宣称的。在另一个实施例中,当中介210接收到响应者验证tx 530时,它们可以从rverify分组690提取并使用响应者签名645连同它们已经存储的响应者证书或它们已经存储的响应者证书信息,证实响应者签名645与响应者证书或响应者证书信息关联,从而认证响应者 110。在一个实施例中,在认证响应者100的过程中,中介210还识别在中介210具有的在用于通信会话的数据流的环境内指明响应者110的信息(例如IP地址和响应者cookie335)之外的响应者110。在实施例中,响应者证书650或所存储的响应者证书或证书信息(在本文中统一被称为响应者证书650)可以识别使用或另外控制响应者110设备的用户,例如约翰史密斯(John Smith)。在实施例中,响应者证书650还或可替代地可以识别响应者110设备,例如设备描述和/或唯一的设备id。在实施例中,响应者证书650还或可替代地可以识别用户的属性(例如用户职业、用户雇主、用户的就业团体等)和/或响应者110设备的属性(例如个人计算机、手持式设备、计算设备制造商/型号等)。在实施例中,响应者证书650可以还或可替代地识别用户和/或响应者110设备的位置,例如美国、华盛顿、雷德蒙、ABC公司8号楼等等。在实施例中,响应者证书650还或可替代地可以识别其他用户和/或响应者110设备信息和/或其任意组合。在一个实施例中,响应者签名645是签署的签名值。在该实施例的一个方面,签名值是散列算法670的结果。散列算法670的实施例将发起者cookie 305、响应者cookie335、中介印记(例如中介印记322、324、326和328)和响应者(例如服务器)id (服务器id)692用作输入。在该实施例的一个方面,服务器id 692是在服务器的管理域内的响应者服务器110的唯一标识符。在该实施例的一个方面,服务器id 692是以管理方式设置或制定的任意身份值。在该实施例的一个方面,服务器id 692的长度是六十四(64)比特。在该实施例的可替代方面,服务器id 692是响应者110的IP地址。
在一个实施例中,服务器id 692结合响应者IP地址识别所实现的安全关联(SA)。散列算法的可替代实施例670将发起者cookie 305、响应者cookie 335、中介印记和响应者安全參数索引(SPI)用作输入。在一个实施例中,响应者SPI识别用于s->c通信方向140的安全參数,并且结合响应者IP地址识别所实现的安全关联(SA)。在一个实施例中,在发起者100与响应者110之间,经由发起者100与响应者110之间的ー个或多个通信先前协商散列算法670。在一个实施例中,中介印记用于生成响应者签名645的签名值的用途支持到对等端点生成的签名值的每中介输入。在该实施例中,响应者Iio可以利用单个响应者签名645向所有中介210提供响应者身份的证明。在可替代实施例中,响应者签名645和/或签名值是具有相同或其他输入的其他算法的結果。 在一个实施例中,rverify分组690内容是明文形式,即它们是未加密的。在一个实施例中,响应者验证tx 530包含头部635。在一个实施例中,响应者验证tx 530包含ー个或多个控制分组640。在该实施例的ー个方面,(多个)控制分组640被发起者100和响应者110用来建立用于它们之间的传输的安全数据信道。在该实施例的ー个方面,(多个)控制分组640还或可替代地被发起者100和响应者110用来向彼此认证它们自己。在该实施例的ー个方面,(多个)控制分组640还或可替代地被用来建立要用于发起者100与响应者110之间的传输的加密(cryptography)。在一个实施例中,响应者验证tx 530包含响应者协商信息(rneginfo)分组655。在一个实施例中,rneginfo分组655包含用于散列算法670的id (标识)。在一个实施例中,rneginfo分组655包含服务器id 692。在可替代的实施例中,rneginfo分组655包含响应者SPI。如先前所述,在一个实施例中,服务器id 692或响应者SPI结合响应者IP地址被用来识别所实现的安全关联(SA)。在可替代实施例中,响应者散列算法670可以使用服务器id 692或响应者SPI。在该可替代实施例的一方面,rneginfo分组655包含用于服务器id 692值的字段和用于响应者SPI 592值的字段,其中一个字段包含正确值,而另ー个字段是零(0)。以此方式,在该可替代实施例中,中介210可以分辨散列算法670是使用服务器id 692还是响应者SPI,因为rneginfo分组655中仅ー个对应字段值将是非零。在一个实施例中,rneginfo分组655的内容是明文形式。在一个实施例中,响应者验证tx 530包含发起者100与响应者110之间的每个中介210的中介印记。在一个实施例中,响应者验证tx 530中的中介印记是明文形式。在一个实施例和图IA和5的示例中,当响应者验证tx 530从服务器110沿着s->c通信方向140被传输到中介14 135且之后被传输到端点客户端100吋,14 135可以识别其中介印记并确定响应者验证tx 530是中介210现在正在跟踪的、响应者110与发起者100之间的通信的一部分。在一个实施例中,在S_>C通信方向140上的中介210可以使用响应者签名645和响应者证书650以尝试识别并认证服务器110。在一个实施例中,中介210可以访问散列算法670的id和服务器id 692,因为它们在rneginfo分组655中未被加密。在一个实施例中,中介210可以访问所有中介印记。在一个实施例中,中介210可以访问发起者cookie305和响应者cookie 335和/或从中得到的信息。因此,在一个实施例中,中介210具有用于解码响应者签名645和证实它与响应者证书650关联的必要信息。在一个实施例中,中介14 135可以查阅响应者验证tx 530并且使用响应者签名645和响应者证书650来尝试识别和认证服务器110。如果响应者签名645是有效的,即响应者签名645与响应者证书650关联,则中介14 135已经认证响应者110。再次參照图5,在一个实施例中,当对等端点发起者(例如客户端)100接收到响应者验证tx 530时,发起者100将响应者验证tx 530沿着C->S通信方向130往回回波到响应者110。以此方式,在C->S通信方向130上的中介210可以识别和认证响应者110。在一个实施例中,当响应者验证tx 530从客户端100沿着C_>S通信方向130被传输到中介210且之后被传输到端点服务器110时,每个中介Il 115、12 120和13 125均可以识别其中介印记并确定响应者验证tx 530是中介210现在正在跟踪的、发起者100与响应者110之间的通信会话的一部分。 在一个实施例中,在C_>S通信方向130上的中介210可以使用响应者签名645和响应者证书650以尝试识别并认证服务器110。在一个实施例中,中介210可以访问散列算法670的id和服务器id 692,因为它们在rneginfo分组655中未被加密。在一个实施例中,中介210可以访问所有中介印记,因为它们在响应者验证tx 530中未被加密。在ー个实施例中,中介210可以访问发起者cookie 305和响应者cookie 335和/或从中得到的信息。因此,在一个实施例中,中介210具有用于解码响应者签名645和证实它与响应者证书650关联的必要信息。在一个实施例中,认证响应者110的每个中介210存储响应者cookie 335和/或从中得到的信息以用于发起者100与响应者110之间的当前通信会话。在一个实施例中,认证响应者110的每个中介210存储响应者IP地址以用于发起者100与响应者110之间的当前通信会话。在一个实施例中,认证响应者Iio的每个中介210存储响应者证书650和/或从中得到的信息以用于发起者100与响应者110之间的当前通信会话。在一个实施例中,认证响应者110的每个中介210存储服务器id 692或可替代地存储响应者SPI,以用于发起者100与响应者110之间的当前通信会话。在一个实施例中,认证响应者110的姆个中介210存储来自rneginfo分组655的散列id,其识别用于在发起者100与响应者110之间沿着S->C通信方向140通信的散列算法670。在一个实施例中,当服务器110将发起者验证tx 500往回回波到客户端100并且客户端100接收到它吋,客户端100可以认为所有中介210都已经接收到发起者验证tx500并且可以使用它来识别和认证客户端100。在一个实施例中,客户端100使用计时器来接收从服务器110返回的回波的发起者验证tx 500。在一个实施例中,如果客户端计时器期满(expire),则客户端向服务器110重传发起者验证tx 500。在该实施例中,服务器110将任何发起者验证tx 500往回回波到客户端100。在一个实施例中,客户端100将重试一次以求被发送到服务器110和从服务器110发送的成功的发起者验证tx 500。在可替代实施例中,客户端100重试其他次数,例如两次、五次等以求被发送到服务器110和从服务器110发送的成功的发起者验证tx 500。在又一个可替代实施例中,当客户端计时器期满时,客户端将不会进行重试以求被发送到服务器110和从服务器110发送的成功的发起者验证tx 500ο
在一个实施例中,当客户端100将响应者验证tx 530往回回波到服务器110并且服务器110接收到它时,服务器110可以认为所有中介210都已经接收到响应者验证tx530并且可以使用它来识别和认证服务器110。在一个实施例中,服务器110使用计时器来接收从服务器110返回的回波的响应者验证tx 530。在一个实施例中,如果服务器计时器期满(expire),则服务器向客户端100重传响应者验证tx 530。在该实施例中,客户端110将任何响应者验证tx 530往 回回波到服务器110。在一个实施例中,服务器110将重试一次以求被发送到客户端100和从客户端100发送的成功的响应者验证tx 530。在可替代实施例中,服务器110重试其他次数,例如两次、五次等以求被发送到客户端100和客户端100发送的成功的响应者验证tx 530。在又一个可替代实施例中,当服务器计时器期满时,服务器将不会进行重试以求被发送到客户端100和从客户端100发送的成功的响应者验证tx 530。在一个实施例中,一旦发起者验证tx 500和响应者验证tx 530被中介210接收并成功处理,则中介210具有在当前通信会话的发起者100与响应者110之间传输的后续数据分组160上实施基于身份的规则175的必要信息。在一个实施例中,中介210接收发起者100与响应者110之间传输的数据分组160并且使用数据分组160中的发起者SPI或响应者服务器id或可替代地响应者SPI来识别用于特定发起者/响应者通信会话的数据分组160并相应地将任意建立的基于身份的规则175应用到数据分组160。在其中发起者SPI或响应者服务器id或可替代地响应者SPI受到完整性保护的实施例中,中介210存储了能够确定完整性散列值的信息以识别所包括的发起者SPI或响应者服务器id或可替代地响应者SPI,从而允许中介210随后将任何建立的基于身份的规则175相应地应用到数据分组160。在一个实施例中,中介210可以验证在两个对等端点之间传输的数据分组160的完整性。在一个实施例中,中介210可以使用它们通过识别用于加密的数据分组160的发起者和/或响应者SPI或响应者服务器id和/或发起者和/或响应者IP地址已被篡改或否则被改变、来验证通信会话中两个对等端点之间的数据分组160的能力,来减轻由替代攻击所造成的损害。例如,ー个已知的替代攻击情境涉及攻击者选择可以向中介210正确显现的IP地址和/或SPI或服务器id。在一个实施例中,中介210可以确定包含改变的信息的数据分组160被攻击者而非合法对等端点发送。验证数据分组完整性结合识别并认证对等端点的能力允许中介210提供更加增强的安全的鲁棒数据流量路径和处理。在另ー个实施例中,中介210可以检测包含改变的信息的数据分组160被攻击者用如下方式发送通过使用它从握手/认证消息获得的数据来访问通信会话的相关加密密钥以便看到数据分组160内部并验证其真实性。在一个实施例中,中介210已经存储了用于区分两个或更多个在相同的对等端点(且因此相同的端点IP地址)之间的同时发生的通信会话的信息。例如,用户数据分组160流量(例如用户访问电子邮件、用户访问互联网等)可以与由对等端点的一个或两个的硬件发送的系统数据分组160流量(S卩非用户发起的(多个)通信)同时发生。在该示例和实施例中,用户发起的通信会话将具有发起者SPI/响应者服务器id或可替代地响应者SPI、组合,其不同于系统发起的通信会话的发起者SPI或响应者服务器id或可替代地响应者SPI、组合。
作为另ー个示例,在客户端100与服务器110之间可能同时存在两个或更多个用户数据分组流量通信会话,例如用户访问它们的电子邮件,同时參加与另ー个用户的会议会话。在该示例和实施例中,每个用户数据分组流量通信会话将具有唯一的发起者SPI/响应者服务器id或可替代地响应者SPI、与其相关联的组合。作为另ー个示例,两个不同用户可以同时登录到与相同服务器110通信的相同客户端100。在该示例和实施例中,每个用户发起的通信将通过专有的(exclusive)发起者SPI/响应者服务器id或可替代地响应者SPI、组合来唯一地识别。在所有这些示例和实施例中,接收在发起者100与响应者110之间传输的数据分组160的中介210使用数据分组160中的IP地址连同发起者SPI或响应者服务器id或可替代地响应者SPI以及其存储的信息将数据分组160与特定发起者/响应者通信会话相关联。在这些示例和实施例中,如果数据分组160信息是正确的,则中介210将任何基于身份的规则175相应地应用到数据分组160。在其中在通信会话中两个对等端点之间传输的数据分组160在通信会话的初始 化时被加密的实施例中,对等端点(例如客户端100和服务器110)没有任何共享的秘密。在一个实施例中,两个对等端点都连接到网络并向网络认证。在一个实施例中,作为该连接和认证协议的一部分,授权令牌和安全策略被提供给客户端100和服务器110.在一个实施例中,安全策略描述了需要什么安全和应当如何将安全策略应用到对等端点之间的后续数据通信。在一个实施例中,用于通过认证和加密发起者100与响应者110之间的数据流的每个IP分组来保护IP通信安全的IPsec (网际协议安全)协议是经认证的网际协议或等价于、相似于或基于其上的协议。在一个实施例中,IPsec协议具有主模式(mm),该主模式中mm安全关联(SA)建立在对等端点之间以加密附加的认证和加密密钥协议流量。在IPsec协议_的实施例中,利用安全通信信道的期望終止点认证发起者设备和/或用户。在IPsec协议mm的实施例中,终止(响应者110)端点利用发起者100认证它自己。在一个实施例中,由发起者100和响应者110使用的IPsec协议具有快速模式(qm),在该快速模式中用于保护通信会话数据分组安全的安全关联(SA)被协商和建立。在一个实施例中,协商的qm SA具有一使用期限,在该使用期限之后需要qm SA密钥更新(rekey)(在本文中也被称为密钥更新事件)。在一个实施例中,发起者验证tx 500和响应者验证tx 530针对姆一个qm SA密钥更新而被传输。在该实施例的ー个方面,响应者110无需且没有在针对qm SA密钥更新传输的响应者验证tx 530中发送rverify分组690。在一个实施例中,中介210检查流过它们的qm SA密钥更新通信。在一个实施例中,当识别新qm时,中介210存储相应的发起者验证tx 500和响应者验证tx 530中所包含的信息,如前所讨论,用于识别对等端点之间的通信会话的后续数据分组160并对其应用基于身份的规则175。在该实施例的ー个方面,其中响应者110没有在针对qm SA密钥更新传送的响应者验证tx 530中发送rverify分组690,中介210使用先前包括在通信会话的对等端点之间的第一响应者验证tx 530中的响应者服务器id 692。在可替代实施例中,不是每个中介210都可以具有用于通信会话中对等端点的身份的用途。例如,在可替代实施例中,一个或多个中介210 (例如12 120)将以相同方式处理穿过它的每一通信,并且因此无需知道对等端点的身份。在该可替代实施例中,不关注对等端点身份的ー个或多个中介210不需要查看握手消息230、修改的握手消息240、250或260、发起者验证tx 500或响应者验证tx 530,并且可以将这些消息看作穿过消息。在该可替代实施例的ー个方面,不关注对等端点身份的ー个或多个中介210将不在任何握手消息240、250或260中包括它们的中介印记,并且它们的中介印记将不包括在发起者验证tx500或响应者验证tx 530中,也将不用在散列算法660或散列算法670中。在第二可替代实施例中,一个或多个中介210可以只关注通信会话中ー个对等端点(例如客户端100)的身份。例如,一个或多个中介210可以被预配置成了解一个对等端点(例如服务器110)的身份,因为该对等端点对该中介210而言保持不变。作为另ー个示例,一个或多个中介210可以被配置成基于通信会话中仅一个对等端点的身份将基于身份的规则175应用于数据分组160流量。在该第二可替代实施例的ー个方面,中介210仅需 要存储识别特定通信会话的对等端点之间传输的数据分组160所必需的信息并基于ー个对等端点的身份对其应用基于身份的规则175。在可替代实施例中,在对等端点传输其证书的过程中从事身份曝光(identityexposure)的组织(其可以有效地广播对等端点的身份)可以使用身份是⑶ID (全局唯一标识符)或SID (安全标识符)的证书。在一个实施例中,GUID是用于提供基本唯一的參考数字的标识符。在一个实施例中,SID是在登录过程期间被分配且用于识别诸如网络中的用户或用户群之类的主体的唯一名称,即字母数字字符串。在一个实施例中,组织具有如下模式,其中认证令牌可以表现得像智能卡。在该实施例的一个方面,发起者证书620和/或响应者证书650可以是包括宣称(claims)的处理认证标记。在一个实施例中,新中介210可以变成包含在两个对等端点之间的通信会话中。例如,新中介210可以在对等端点已经向彼此和该通信会话中涉及的初始在线中介认证了它们自己且安全关联(SA)已经被协商和建立之后在线。作为另ー个示例,路由变更可以重新路由通信会话中的数据分组160流量,使得它现在穿过新中介210。參照图1B,变成包含在所建立的通信会话中的新中介210的示例描绘了已经在图IA的客户端100与服务器110之间在S->C通信方向140上在线的新中介15 155。在这些示例和实施例中,任何新中介210 (例如中介15 155)必须辨别对等端点(例如客户端100和服务器110)中一个或两者的身份,以便能够对在它们之间发送的数据分组160施加基于身份的规则175。在一个实施例中,到现有通信会话的新中介210请求对等端点重新运行身份和认证协议。在一个实施例中,新中介210 (例如中介15 155)在对等端点之间传输的任何数据分组160中设置标志,其指示中介210被新近加入并且身份和认证协议被请求重新运行。在可替代实施例中,新中介210附加新分组到在对等端点之间传输的数据分组160,其指示中介210请求重新运行身份和认证协议。在又一个可替代实施例中,新中介210生成孤立的重新运行传输,其将该传输沿着中介210包括在其中的通信方向传输到对等端点以请求重新运行身份和认证协议。在其他可替代实施例中,可以使用其他格式来向对等端点发信号通知中介210请求重新运行身份和认证协议。在一个实施例中,首先接收中介210对重新运行身份和认证协议的请求的对等端点变成了新发起者并且图2或图5的协议被重新运行。在一个实施例中,如果要接收中介210对重新运行身份和认证协议的请求的第一对等端点在初始身份和认证协议通信期间不是发起者,则该对等端点(即响应者110)将向原始发起者100转发发起图2或图5的身份和认证协议的通知。在该实施例的ー个方面,响应者110可以转发指示下一个被发送的数据分组160中的重新运行请求到发起者100,可以将指示重新运行请求的分组附加到下一个传输的数据分组160,可以将孤立的重新运行传输转发到发起者100,等等。在一个实施例中,通信会话中的一个对等端点可以被配置成向中介210认证它自己,同时另ー个对等端点未被如此配置。在该实施例和图5的示例中,未被配置成向中介210认证它自己的对等端点将在其相应的验证tx (例如发起者验证tx 500或响应者验证tx 530)中不包括验证分组,例如iverify分组680或rverify分组690或协商信息分组,例如ineginfo 635或rneginfo 655。在该实施例和示例中,发起者100与响应者110之间的通信路径中的中介210将仅能够应用与已知的对等端点的身份关联的、基于身份的规则175,所述已知的对等端点即被配置成且能够向中介210认证它自己的对等端点。图7A-7C图示了发起者对等端点向通信会话中涉及的一个或多个中介实现对等 端点的识别和认证的逻辑流的实施例。尽管下面的讨论是相对于本文中描绘的系统进行的,所述操作可以在其他系统中实现。而且,本文所述的操作不限于所示的顺序。此外,在其他可替代实施例中可以执行更多或更少的操作。參照图7A,在实施例中,在决策框700处,做出关于是否建立了与另ー个对等端点(响应者)的通信会话以及数据分组是否从该另ー个对等端点接收到的确定。如果是,则在一个实施例中,发起者处理所接收的数据分组702。在决策框704处,做出关于发起者是否具有要传输到响应者的数据流量的确定。如果是,发起者将要被发送的下一个数据分组传输到响应者706。在一个实施例中,无论发起者是否具有要传输的数据分组,该逻辑返回到决策框700,在其中再次做出关于是否建立了与另ー个对等端点的通信会话以及数据分组是否已被接收的确定。如果在决策框700处不存在与另ー个对等端点(响应者)建立的当前通信会话并且/或者数据分组当前尚未被接收,则在一个实施例中在决策框708处,做出关于是否与另ー个对等端点(响应者)建立通信会话以及是否存在要传输的数据分组的确定。如果是,发起者将要被发送的下一个数据分组传输到响应者712。在一个实施例中,该逻辑返回到决策框700。如果在决策框708处不存在与另ー个对等端点(响应者)建立的当前通信会话并且/或者不存在要传输的当前数据分组,则在一个实施例中在决策框712处,做出关于是否建立与另ー个对等端点的新通信会话的确定。如果是,在一个实施例中发起者格式化包括发起者cookie 714的握手消息并且将格式化的握手消息传输到响应者对等端点716。图3A描绘了被发起者(例如客户端100)格式化和传输的示范性握手消息230的实施例。在另ー个实施例中,发起者对握手消息格式化,该握手消息包括足以指明相同端点之间的相关流量和可以用于区分发起者714的数据。在该另ー个实施例中,发起者将格式化的握手消息传输到响应者对等端点716。如果在决策框712处不存在与另ー个对等端点建立的新通信会话,则在ー个实施例中且參照图7B,在决策框718处,做出关于从响应者发送的握手消息是否已被接收到的确定。如果是,在一个实施例中,从响应者接收的握手消息包含发起者cookie、响应者cookie和用于位于发起者与响应者之间的姆一个中介的中介印记。图3D中描绘了由发起者(例如客户端100)接收的示范性握手消息260的实施例。在另ー个实施例中,所接收的从响应者传输的握手消息包含足以区分发起者的数据、足以区分响应者的数据以及用于介于发起 者与响应者之间的每一个中介的中介印记。在一个实施例中,发起者收集或另外聚集所接收的握手消息中的所有中介印记720。在一个实施例中,所收集的中介印记被输入到用于发起者端点认证的散列算法。在一个实施例中,发起者将握手消息往回回波到响应者721。參照图7C,在一个实施例中,发起者格式化新的发起者验证tx 750。图6A中描绘了示范性发起者验证tx 500的实施例。在一个实施例中发起者设置发起者验证tx计时器752。在一个实施例中,发起者使用发起者验证tx计时器来确定它是否在预定义的时间限制内接收到从响应者往回回波的发起者验证tx。在一个实施例中,发起者将格式化的发起者验证tx传输到响应者754。再次參照图7B,在决策框718处如果接收到来自响应者的握手消息,则在ー个实施例中,在决策框722处,做出关于所回波的发起者验证tx是否已被接收的确定。如果是,在一个实施例中,发起者禁止(disable)验证tx计时器724,因为在验证tx定时器期满之前已经接收到所回波的发起者验证tx。在一个实施例中,在决策框726处,做出关于密钥更新事件是否正在发生、即发起者和响应者是否正在建立用于它们当前通信会话的数据传输的新加密(cryptographic)密钥的确定。如果密钥更新事件正在发生,则在ー个实施例中发起者建立用于当前通信会话的新SA 728。如前所述,在一个实施例中,SA (安全关联)是用于提供在两个对等端点之间的安全数据连接的安全參数的逻辑组。在一个实施例中,如果没有密钥更新事件当前正在进行,则发起者在接收所回波的发起者验证tx时将等待响应者验证tx。如果在决策框722处没有回波的发起者验证tx已被接收,则在一个实施例中,在决策框730处,做出关于是否已经从响应者对等端点接收到初始的、第一响应者验证tx的确定。图6B描绘了示范性响应者验证tx 530的实施例。如果初始响应者验证tx已被接收,则在一个实施例中发起者建立用于它自己与响应者对等端点之间的通信会话的SA 732。在一个实施例中,发起者在建立用于与响应者的现存通信会话的当前SA的过程中使用来自响应者验证tx的信息和參数732。在一个实施例中,发起者在接收到用于通信会话的初始响应者验证tx之后将响应者验证tx往回回波到响应者734。在一个实施例中,随后发起者使用SA将数据分组传输到响应者736。如果在决策框730处没有接收到用于发起者与响应者之间的当前通信会话的初始响应者验证tx,则參照图7C,在一个实施例中在决策框738处做出关于发起者验证tx计时器是否已经期满的确定。如果是,在一个实施例中在决策框740处,做出关于是否允许重试传输发起者验证tx的确定。如果是,在一个实施例中,发起者再次设置发起者验证tx计时器752并且将发起者验证tx传输到响应者754。如果在决策框740处不允许重试传输发起者验证tx,则在ー个实施例中,与响应者的通信会话的建立失败742。在决策框738处,如果发起者验证tx计时器尚未期满,则在一个实施例中在决策框744处,做出关于与响应者的通信会话是否被建立且发起者是否已接收到响应者验证tx的确定。在一个实施例中,如果在发起者与响应者之间建立了通信会话并且发起者接收到响应者验证tx,则发起密钥更新事件,即发起者和响应者将建立用于它们的当前通信会话的数据传输的新加密密钥。如果在发起者与响应者之间建立了通信会话并且发起者接收到响应者验证tx,则在ー个实施例中发起者将响应者验证tx往回回波到响应者748。在ー个实施例中,发起者格式化新的发起者验证tx 750,设置发起者验证tx计时器752,并且将发起者验证tx传输到响应者754。在决策框744处,如果在发起者与另ー对等端点之间没有建立通信会话和/或发起者尚未接收到响应者验证tx,则在ー个实施例中在决策框746处,做出关于新中介是否正在用信号通知在发起者与响应者之间的通信路径中它的存在的确定。在一个实施例中,到现有通信会话的新中介请求对等端点重新运行身份和认证协议(其先前用于向中介识别和认证对等端点),即发起新身份和认证事件。在一个实施例中,新中介设置对等端点之间的任何数据分组中指示该中介是新近加入的标志(flag),并且请求身份和认证事件。在可替代实施例中,新中介将新分组附加到对等端点之间的数据分组,用信号通知新中介请求 身份和认证事件。在另ー个可替代实施例中,新中介生成孤立的重新运行传输,它将其沿着中介包括在其中的通信方向发送到对等端点以请求身份和认证事件。在又一个可替代实施例中,可以利用其他格式来向至少ー个对等端点发信号通知中介请求身份和认证事件。如果在决策框746处,确定了新中介正在用信号通知发起者与响应者之间的通信方向上它的存在,则參照图7A,在一个实施例中,发起者格式化包括发起者cookie 714或可替代地指明发起者的数据的握手消息,并且将该握手消息传输到响应者716。图8A-8C图示了响应者对等端点对通信会话中涉及的一个或多个中介实现对等端点的识别和认证的逻辑流的实施例。尽管下面的讨论是相对于本文中描绘的系统进行的,但是所述操作可以在其他系统中实现。而且,本文所述的操作不限于所示的顺序。此外,在其他可替代实施例中可以执行更多或更少的操作。參照图8A,在实施例中,在决策框800处,做出关于是否建立与另ー个对等端点(发起者)的通信会话以及是否已经从该另ー个对等端点接收到数据分组的确定。如果是,则在ー个实施例中,响应者处理所接收的数据分组802。在决策框804处,做出关于响应者是否具有要传输的数据分组的确定。如果是,响应者将要被发送的下一个数据分组传输到发起者806。在一个实施例中,无论响应者是否具有要传输的数据分组,该逻辑返回到决策框800,在其中再次做出关于是否建立与另ー个对等端点的通信会话以及数据分组是否已被接收的确定。如果在决策框800处不存在与另ー个对等端点建立的当前通信会话并且/或者数据分组当前尚未被接收,则在一个实施例中在决策框808处,做出关于是否建立与另ー个对等端点(发起者)的通信会话以及SA计时器是否期满的确定。在一个实施例中,响应者使用SA计时器确定何时发起新密钥更新事件以建立用于当前发起者/响应者通信会话的数据传输的新加密密钥。如果建立了与发起者的通信会话并且SA计时器已经期满,在一个实施例中,响应者建立用于当前发起者/响应者通信会话的新SA 810。在一个实施例中,响应者格式化新的响应者验证tx 812。图6B中描绘了示范性响应者验证tx 530的实施例。在一个实施例中,响应者设置了响应者验证tx计时器814。在一个实施例中,响应者使用响应者验证tx计时器来确定它是否在预定义的时间限制内接收到从发起者往回回波的响应者验证tx。在一个实施例中响应者将响应者验证tx传输到发起者816。如果在决策框808处不存在当前针对发起者和响应者建立的通信会话和/或SA计时器尚未期满,则在一个实施例中并參照图8B,在决策框818,做出关于是否建立了与另一个对等端点(发起者)的通信会话且响应者是否具有要传输的数据分组的确定。如果是,在一个实施例中,响应者将下ー个要发送的数据分组传输到发起者820。在一个实施例中,该逻辑转到决策框800。 如果在决策框818处不存在与另ー个对等端点建立的现存通信会话并且/或者当前不存在要传输的数据分组,则在一个实施例中在决策框822处,做出关于是否接收到了来自发起者的、没有响应者cookie或可替代地响应者区分数据的握手消息。如果是,在一个实施例中响应者通过添加响应者cookie或可替代地可以用于区分响应者的数据来修改所接收的握手消息824。图3C描绘了示范性响应者修改的握手消息250的实施例。在可替代实施例中,响应者对包括如下内容的新握手消息进行格式化来自所接收的握手消息的发起者cookie、响应者cookie和包含在所接收的握手消息内的任何中介印记。在另ー个可替代实施例中,响应者对包括如下内容的新握手消息进行格式化可以用于区分发起者的、包含在所接收的握手消息中的数据、可以用于区分响应者的数据以及包含在所接收的握手消息中的任何中介印记。在一个实施例中,响应者将包含发起者cookie、响应者cookie或可替代地区分发起者和响应者的数据的握手消息传输到发起者826。在一个实施例中,该逻辑返回到决策框800。如果在决策框822处没有接收到具有响应者cookie或可替代地区分响应者的数据的握手消息,则在ー个实施例中在决策框828处,做出关于是否已经接收到来自发起者的、包括响应者cookie或可替代地区分响应者的数据的握手消息的确定。图3D描绘了包括响应者cookie 335并从发起者100传输的示范性握手消息260的实施例。如果在决策框828处接收到了具有响应者cookie或可替代地区分响应者的数据的握手消息,则在ー个实施例中在发起者-响应者和响应者-发起者通信方向上的所有中介现在已经接收到包含可以用于区分发起者和响应者的数据的消息。在一个实施例中,具有响应者cookie或可替代地区分响应者的数据的握手消息还包含发起者与响应者之间的所有中介的中介印记。在一个实施例中,响应者收集或另外聚集所接收的握手消息中的所有中介印记830。在一个实施例中,所收集的中介印记被输入到用于响应者端点认证的散列算法。如果在决策框828处没有接收到具有响应者cookie或区分响应者的数据的握手消息,则在ー个实施例中在决策框832处做出关于发起者验证tx是否已被接收的确定。图6A描绘了示范性发起者验证tx 500的实施例。如果发起者验证tx已被接收,则在ー个实施例中,响应者将发起者验证tx往回回波到发起者834。參照图8C,在一个实施例中在决策框854处,做出关于密钥更新事件是否正在发生的确定。如果是,在一个实施例中,响应者设置用于当前发起者/响应者通信会话的新SA会话的SA会话计时器856。如果在决策框854处不存在密钥更新事件,则在ー个实施例中并參照图8A,响应者建立用于发起者/响应者通信会话的新SA 810。在一个实施例中,响应者格式化新响应者验证tx 812,设置响应者验证tx计时器814并且将响应者验证tx传输到发起者816。再次參照图SB,如果在决策框832处没有接收到发起者验证tx,则在ー个实施例中并參照图8C,在决策框836处做出关于从发起者往回回波的响应者验证tx是否已被接收的确定。如果是,在一个实施例中响应者禁止响应者验证tx计时器838,因为它已经在响应者验证tx计时器期满之前成功地接收到从发起者往回回波的响应者验证tx。在决策框840处,做出关于密钥更新事件是否正在发生的确定。如果不是,在一个实施例中,响应者建立用于发起者与响应者之间的新SA会话的SA会话计时器842。如果在决策框840处,正在发生密钥更新事件,则在ー个实施例中,当接收到从发起者往回回波的响应者验证tx时,响应者现在等待发起者验证tx。图6A中描绘了示范性发起者验证tx 500的实施例。如果在决策框836处没有接收到回波的响应者验证tx,则在ー个实施例中在决策框844处做出关于响应者验证tx计时器是否已期满的确定。如果是,在一个实施例中在决策框846处做出关于是否允许重试传输响应者验证tx的确定。如果是,在一个实施例中并參照图8A,响应者再次设置响应者验证tx计时器814并将响应者验证tx传输到发起者816。如果在决策框846处,不允许重试传输响应者验证tx,则在ー个实施例中,与发起者的通信会话的建立失败848。如果在决策框844处响应者验证tx计时器尚未期满,则在ー个实施例中在决策框850处,做出关于新中介是否发信号通知在发起者与响应者之间的通信路径中它的存在的确定。在一个实施例中,到现有通信会话的新中介请求对等端点重新运行先前用于识别并向中介认证对等端点的身份和认证协议,即新身份和认证事件被发起。如果在决策框850处,新中介正在发信号通知在发起者与响应者之间的通信路径中它的存在,则在ー个实施例中,响应者通知发起者在用于当前通信会话的对等端点之间发起新身份和认证事件852。在该实施例的ー个方面,响应者将指示中介的存在的中介信号在从响应者传输到发起者的下一个数据分组中或利用该数据分组传递到发起者。在可替代实施例中,响应者在接收到新中介正在加入通信会话路径的中介信号时变成发起者并且开始与原始发起者(其现在充当响应者)的新身份和认证事件。图9A-9D图示了在两个对等端点(即发起者和响应者)之间的通信路径中的中介实施(effect)对等端点的识别和认证以例如用于对在对等端点之间传输的数据分组实现基于身份的规则的逻辑流程的实施例。尽管下面的讨论是相对于本文所描述的系统进行的,但是所述操作可以在其他系统中实现。而且,本文所示的操作不限于所示的顺序。此外,在其他可替代实施例中,可以执行更多或更少的操作。參照图9A,在一个实施例中,两个对等端点(例如客户端和服务器)之间的通信路径中的中介接收源自对等端点之一的消息900。在一个实施例中在决策框902处,做出关于所接收的消息是否包含该中介的中介印记的确定。如果是,在决策框904处,做出关于所接收的消息是否是握手消息的确定。中介(例如图IA的Il 115)可以接收的示范性握手消息实施例包括图3A的示范性握手消息230和图3D的示范性握手消息260。
如果在决策框904处确定了所接收的消息是对等端点之间的握手消息,则在ー个实施例中,中介从握手消息获得对等端点的IP地址并存储该IP地址906。在一个实施例中,中介从握手消息获得发起者cookie和(如果包含在握手消息内)响应者cookie并将其存储。在可替代实施例中,中介从握手消息获得区分发起者的数据和(如果包含在握手消息内)区分响应者的数据和识别如在发起者与响应者之间的握手消息流量的数据并将其存储906。在一个实施例中,发起者将所接收的消息在通信路径中转发908。然后在一个实施例中结束对当前接收的握手消息的处理910。如果在决策框902处所接收的消息不包含中介印记,则在一个实施例中在决策框912处,做出关于所接收的消息是否是握手消息的确定。如果是,在一个实施例中,中介从握手消息获得对等端点的IP地址、发起者cookie以及(如果包含在当前握手消息内)响应者cookie并将其存储914。在可替代实施例中,中介从握手消息获得区分发起者的数据和(如果包含在当前 握手消息内)区分响应者的数据以及识别如在发起者与响应者之间的握手消息流量的数据并将其存储914。在一个实施例中,中介生成将要添加到握手消息的中介印记916。图4描绘了示范性中介印记400的实施例。在一个实施例中,中介利用所接收的握手消息包括其中介印记918并将现在修改的握手消息在通信路径中传输908。然后在一个实施例中,随后结束对当前接收的握手消息的处理910。如果在决策框912处确定了所接收的消息不是握手消息,则在ー个实施例中并參照图9B,在决策框920处做出关于所接收的消息是否是去往/来自当前存储的对等端点组合(例如当前存储的IP地址组合)的确定。在该实施例中,在决策框920处,做出关于中介是否认识到当前所接收的消息去往/来自的对等端点的身份。如果是,在一个实施例中,中介使用所接收的消息中的IP地址和/或所接收的消息中的指明消息在发起者与响应者之间的数据来确定所接收的消息的发起者和响应者924。在一个实施例中,中介使用在用于当前通信会话的发起者和响应者的身份和认证事件期间收集的所存储的发起者/响应者信息,以识别其一部分是所接收的消息的特定通信会话925。在一个实施例中,在决策框926处,中介做出关于所接收的消息中的信息对所接收的消息似乎为其一部分的特定通信会话的对等端点而言是否是有效的确定(例如替代攻击是否似乎要发生)。以此方式,在一个实施例中,在决策框925处,中介验证据称在所建立的通信会话的两个对等端点之间正在传输的数据分组的完整性。如果在决策框926处,数据分组的诸如ー个或两个地址和/或ー个或ニ个SPI之类的信息已被篡改,或者否则被认为无效,则在一个实施例中,中介记录错误927,以及对当前接收的数据分组消息的处理结束 910。在一个实施例中,中介可以确定包含改变的信息的数据分组已由攻击者而不是合法的对等端点发送。验证数据分组完整性结合识别和认证对等端点的能力允许中介提供更加增强的安全的鲁棒的数据流量路径和处理。在另ー个实施例中,中介可以通过使用它先前从握手和/或认证消息获得的信息访问通信会话的相关加密密钥以便看到数据分组内部以验证其完整性,来检测数据分组包含改变的信息并且因此可以被认为由攻击者发送。
在一个实施例中,通过在其通信方向路径上发送独立消息到对等端点,中介可以记录指示所接收的消息信息错误的数据分组错误。如果在决策框926处,在所接收的数据分组中没有发现错误或没有感知到无效信息,则在ー个实施例中,在处理用于在通信路径中进ー步传输的所接收的数据分组的过程中,中介基于发起者和/或响应者身份将任何建立的基于身份的规则应用于数据分组928。在一个实施例中,数据分组依照对其应用的基于身份的规则在通信会话的通信路径中被传输928。在一个实施例中结束对当前所接收的数据分组的处理910。如果在决策框920处所接收的消息不是去往和/或来自当前由中介存储的对等端点组合,则在ー个实施例中,中介可以认为它新近加入了两个对等端点之间的现有通信会话。在一个实施例中,中介向一个或两个对等端点发信号通知它新近加入通信路径并且它请求发起身份和认证事件以便中介识别和认证ー个或两个对等端点922。在一个实施例中,中介在正在对等端点之间传输的数据分组中设置标志,指示中介新近加入对等端点的通信路径中并且它请求身份和认证事件922。在可替代实施例中,中介将新分组附加到正在对等端点之间传输的数据分组以发信号通知中介请求身份和认证事件922。在第二可替代实施例中,中介生成孤立重新运行传输,它将其沿着该中介被包括在其中的通信方向发送到对等端点以请求身份和认证事件922。在第二可替代实施例中,中介同样将原始的所接收的数据分组沿着适当的通信方向转发922。在其它可替代实施例中,可以利用其他格式向至少ー个对等端点发信号通知中介请求身份和认证事件。在一个实施例中,然后结束对当前接收的数据分组的处理910。回顾图9A,如果在决策框904处当前接收的消息不是握手消息,但它包含该中介的中介印记,则在一个实施例中并參照图9C,在决策框930处做出关于所接收的消息是否是发起者验证tx的确定。图6A描绘了示范性发起者验证tx 500的实施例。如果新近接收的消息是发起者验证tx,则在ー个实施例中,中介从发起者验证tx获得散列id和发起者SPI或服务器id和中介印记。在一个实施例中,中介使用存储的正被建立当前通信会话的发起者和响应者的信息和从发起者验证tx获得的信息来译解发起者签名并确定发起者签名是否正确地与发起者证书或发起者证书信息关联936。在ー个实施例中,发起者验证tx中的发起者签名是签署的签名值。在一个实施例中,所签署的签名值是散列算法在发起者cookie、响应者cookie和中介印记上的结果。在一个实施例中,发起者验证tx包含ineginfo分组中的散列id和发起者SPI或服务器id。在一个实施例中,中介具有它需要用来译解发起者签名并尝试将其与发起者证书或发起者证书信息关联的信息。在一个实施例中,在决策框938处,中介确定签名是否是真实的,即所译解的发起者签名是否正确地与发起者验证tx中所包括的证书、所存储的发起者证书或所存储的发起者证书信息关联。如果是,则中介已经利用发起者证书信息或发起者证书中的信息识别 了发起者,并且也认证了发起者935。在一个实施例中,中介将发起者SPI或服务器id与发起者关联,并且存储来自发起者验证tx的发起者SPI或服务器id和散列id以供未来在证明数据分组和将基于身份的规则应用到当前通信会话传输的数据分组中使用940。在一个实施例中,中介将ー个或多个基于身份的规则与所识别的发起者关联以在处理在发起者与响应者对等端点之间传输的数据分组中使用941。在一个实施例中,中介在发起者与响应者之间的通信路径中转发发起者验证tx 942。在一个实施例中,结束对当前接收的发起者验证tx消息的处理910。如果在决策框938处,中介已经确定发起者签名是无效的或不真实的,则在ー个实施例中,中介记录错误944。在一个实施例中,结束对当前接收的无效的发起者验证tx消息的处理910。如果在决策框930处,所接收的消息不是发起者验证tx,则在决策框932处,做出关于所接收的消息是否是响应者验证tx的确定。图6B描绘了示范性响应者tx 530的实施例。如果新近接收的消息是响应者验证tx,则在ー个实施例中并參照图9D,中介从响应者验证tx获得散列id、响应者服务器id或SPI和中介印记。在一个实施例中,中介使用存储的用于当前正被建立的通信会话的发起者和响应者的信息以及从响应者验证tx获得的信息来译解响应者签名并确定所译解的响应者签名是否正确地与响应者证书或响应者证书イ目息关联,948。 在一个实施例中响应者验证tx中的响应者签名是所签署的签名值。在一个实施例中,所签署的签名值是散列算法在发起者cookie、响应者cookie和中介印记上的結果。在一个实施例中,响应者验证tx包含rneginfo分组中的散列id和响应者服务器id或SPI。在一个实施例中,中介具有它需要用来译解响应者签名并尝试将其与响应者证书或响应者证书彳目息关联的彳目息。在一个实施例中,在决策框950处,中介确定响应者签名是否是真实的,即所译解的响应者签名是否正确地与响应者验证tx中所包括的响应者证书、所存储的响应者证书或所存储的响应者证书信息关联。如果是,则中介已经利用响应者证书信息或响应者证书中的信息识别了响应者,并且也认证了响应者952。在一个实施例中,中介将响应者服务器id或SPI与响应者关联,并且存储来自响应者验证tx的响应者服务器id或SPI和散列id以供未来在证明所接收的数据分组和将基于身份的规则应用到当前通信会话传输的数据分组中使用954。在一个实施例中,中介将ー个或多个基于身份的规则与所识别的响应者关联以在处理在发起者与响应者之间传输的数据分组中使用956。在一个实施例中,中介还或可替代地可以将ー个或多个基于身份的规则与所识别的响应者和先前识别的发起者关联以在处理发起者与响应者之间传输的数据分组中使用956。在一个实施例中,中介在发起者与响应者之间的通信路径中将响应者验证tx转发958。在一个实施例中,对当前接收的响应者验证tx消息的处理结束910。如果在决策框950处,中介已经确定响应者签名是无效的或不真实的,则在ー个实施例中,中介记录错误960。在一个实施例中,结束对无效的响应者验证tx消息的处理910。再次參照图9C,如果在决策框932处所接收的消息不是响应者验证tx,则在ー个实施例中,中介不能识别所接收的消息。在一个实施例中结束对未知消息的处理910。计算设备系统配置
图10是图示其上可以实现实施例的示范性计算设备系统1000的框图。该计算设备系统1000包括总线1005或用于传送信息的其他机构,以及与总线1005耦合以用于处理信息的处理单元1010。计算设备系统1000还包括系统存储器1015,其可以是易失性的或动态的,比如随机存取存储器(RAM),非易失性的或静态的,比如只读存储器(ROM),或闪存或ニ者的某种组合。系统存储器1015耦合到总线1005以用于存储信息和要被处理单元1010执行的指令,并且还可以用于存储在处理单元1010执行指令期间的临时变量或其他中间信息。系统存储器1015经常包含操作系统和ー个或多个程序,并且还可以包括程序数据。在一个实施例中,诸如磁盘或光盘之类的存储设备1020也耦合到总线1005以用于存储包括含有指令和/或数据的程序代码的信息。计算设备系统1000 —般地包括ー个或多个显示设备1035,比如但不限于显示屏(如阴极射线管(CRT)或液晶显示器(LCD))、打印机以及ー个或多个扬声器,以用于向计算设备用户提供信息。计算设备系统1000 —般地还包括ー个或多个输入设备1030,比如但不限于键盘、鼠标、轨迹球、笔、(多个)语音输入设备和触摸输入设备,计算设备可以使用输入设备向处理单元1010传送信息和命令选择。所有这些设备在本领域是已知的并且在这里不需要详细讨论。处理单元1010执行系统存储器1015中所包含的一个或多个程序指令的一个或多个序列。这些指令可以从另一个计算设备可读介质读取到系统存储器1015中,所述另ー个计算设备可读介质包括但不限于存储设备1020。在可替代实施例中,硬布线电路代替软件程序指令或与之结合地使用。该计算设备系统环境不限于硬件电路和/或软件的任意特定组合。如本文所使用的术语“计算设备可读介质”意指可以參与向处理单元1010提供程序指令以供执行的任何介质。这种介质可以采用许多形式,包括但不限于存储介质和传输介质。存储介质的示例包括但不限于,RAM、ROM、EEPR0M、闪存、CD-ROM、数字通用盘(DVD)、盒式磁带、磁带、磁盘存储,或任何其他磁性介质、软盘、弾性盘、打孔卡、纸带,或具有孔洞、存储器芯片或卡盘模式的任何其他物理介质。计算设备系统1000的系统存储器1015和存储设备1020是存储介质的进一歩的示例。传输介质的示例包括但不限于,有线介质(比如同轴电缆、铜线和光纤)和无线介质(比如光学信号、声学信号、RF信号和红外信号)。计算设备系统1000还包括耦合到总线1005的ー个或多个通信连接1050。(多个)通信连接1050在局域网(LAN) 1065和/或广域网(WAN)(包括万维网或因特网1070)上提供从计算设备系统1000到其他计算设备的双向数据通信耦合。(多个)通信连接1050的示例包括但不限于综合业务数字网(ISDN)卡、调制解调器、LAN卡和能够发送和接收电、电磁、光、声学、RF或红外信号的任何设备。由计算设备系统1000接收的通信可以包括程序指令和程序数据。由计算设备系统1000接收的程序指令在它们被接收时可以由处理单元1010执行,和/或存储在存储设备1020或其他非易失性存储器中以供稍后执行。结论
尽管本文描述了各种实施例,但是这些实施例仅通过示例呈现并且不g在限制要求保护的主题的范围。许多保持在所附权利要求的范围内的变形是可能的。这样的变形在检查本文的说明书、附图和权利要求之后是清楚的。因此,要求保护的主题的宽度和范围没有被限制于除了所附权利要求及其等价物限定之外。权利要求
1.一种用于实现通信会话中两个对等端点中至少一个的对等端点识别的方法,该方法包括 生成中介印记; 将所述中介印记添加到源自对等端点的第一消息以生成修改的第一消息,其中源自对等端点的第一消息由两个对等端点在建立这两个对等端点之间的通信会话中使用; 在所述通信会话的通信路径中传输所述修改的第一消息; 接收源自两个对等端点的第一个的、包括所述中介印记和用于两个对等端点的所述第一个的签名标识的消息; 使用用于两个对等端点的所述第一个的签名标识和用于两个对等端点的所述第一个的证书信息来认证两个对等端点的所述第一个的身份; 使用用于两个对等端点的所述第一个的证书信息识别两个对等端点的所述第一个; 将一个或多个基于身份的规则与两个对等端点的所述第一个的身份关联; 接收源自两个对等端点的所述第一个的、包括数据流量的数据消息; 确定源自两个对等端点的所述第一个的、包括数据流量的数据消息是两个对等端点之间的通信会话传输的数据分组以及该数据分组是由所识别的对等端点传输的;以及将所述一个或多个基于身份的规则中的至少一个应用于数据分组的处理。
2.权利要求I的用于实现通信会话中两个对等端点中至少一个的对等端点识别的方法,其中两个对等端点的所述第一个是客户端且两个对等端点的第二个是服务器。
3.权利要求I的用于实现通信会话中两个对等端点中至少一个的对等端点识别的方法,进一步包括 接收从两个对等端点的所述第二个传输的、包括所述中介印记和用于两个对等端点的所述第二个的签名标识的消息; 使用用于两个对等端点的所述第二个的签名标识和用于两个对等端点的所述第二个的证书信息来认证两个对等端点的所述第二个的身份; 使用用于两个对等端点的所述第二个的证书信息识别两个对等端点的所述第二个;将一个或多个基于身份的规则与两个对等端点的所述第一个的身份以及两个对等端点的所述第二个的身份关联; 接收源自对等端点的第二数据消息,其中该第二数据消息包括数据流量; 确定源自所述对等端点的、包括数据流量的所述第二数据消息是两个对等端点之间的通信会话传输的第二数据分组以及该第二数据分组是由所识别的对等端点传输的;以及将所述一个或多个基于身份的规则中的至少一个应用于第二数据分组的处理。
4.权利要求3的用于实现通信会话中两个对等端点中至少一个的对等端点识别的方法,其中用于两个对等端点的所述第一个的签名标识包括根据散列算法生成的签署值,该散列算法的输入包括中介印记,并且其中用于两个对等端点的所述第二个的签名标识包括根据散列算法生成的签署值,该散列算法的输入包括中介印记。
5.权利要求4的用于实现通信会话中两个对等端点中至少一个的对等端点识别的方法,其中每个散列算法的输入包括在通信会话中的两个对等端点之间的通信路径中的每个中介的中介印记。
6.权利要求4的用于实现通信会话中两个对等端点中至少一个的对等端点识别的方法,其中所接收的源自两个对等端点的所述第一个的、包括中介印记和两个对等端点的所述第一个的签名标识的消息进一步包括发起者SPI,并且其中用于生成两个对等端点的所述第一个的签名标识的散列算法的输入进一步包括发起者SPI。
7.权利要求I的用于实现通信会话中两个对等端点中至少一个的对等端点识别的方法,其中所接收的源自两个对等端点的所述第一个的、包括中介印记和两个对等端点的所述第一个的签名标识的消息进一步包括含有两个对等端点的所述第一个的证书信息的证书。
8.权利要求I的用于实现通信会话中两个对等端点中至少一个的对等端点识别的方法,进一步包括 验证源自两个对等端点的所述第一个的、包括数据流量的数据消息的完整性;以及 只有在源自两个对等端点的所述第一个的包括数据流量的数据消息的完整性被成功验证的情况下,才在两个对等端点之间的通信路径中传输源自两个对等端点的所述第一个的包括数据流量的数据消息。
9.权利要求I的用于实现通信会话中两个对等端点中至少一个的对等端点识别的方法,进一步包括 从两个对等端点之一接收消息,但缺少对两个对等端点中任一个的识别;以及 传输关于新中介在两个对等端点之间的通信会话的通信路径中的指示符。
10.权利要求I的用于实现通信会话中两个对等端点中至少一个的对等端点识别的方法,其中中介印记包括含有唯一随机值的随机数字段。
11.一种其中存储有计算设备可执行指令的计算设备可读介质,该计算设备可执行指令在被计算设备的处理器执行时、实施用于实现识别在包括含有中介的通信路径的通信会话中的两个对等端点中的至少一个的方法,该计算设备可读介质包括 用于通信会话的通信路径中的中介接收源自两个对等端点之一的第一消息的计算设备可执行指令; 用于通信会话的通信路径中的中介生成中介印记并将该中介印记添加到源自两个对等端点之一的第一消息的计算设备可执行指令; 用于通信会话的通信路径中的中介将添加了中介印记的第一消息传输到通信会话的通信路径中的下一个实体的计算设备可执行指令; 用于通信会话的通信路径中的中介接收源自两个对等端点之一的第二消息的计算设备可执行指令,其中第二消息包括该中介的中介印记、用于两个对等端点之一的签名标识和用于两个对等端点之一的证书; 用于通信会话的通信路径中的中介使用用于两个对等端点之一的签名标识和用于两个对等端点之一的证书来认证两个对等端点之一的身份的计算设备可执行指令;以及 用于通信会话的通信路径中的中介使用用于两个对等端点之一的证书来识别两个对等端点之一的计算设备可执行指令。
12.权利要求11的计算设备可读介质,其中用于通信会话的通信路径中的中介生成中介印记的计算设备可执行指令包括用于在所生成的中介印记中包括该中介的唯一随机值的计算设备可执行指令。
13.权利要求11的计算设备可读介质,进一步包括用于通信会话的通信路径中的中介使用第二消息中的信息译解签名标识以生成译解的签名值的计算设备可执行指令;以及 用于通信会话的通信路径中的中介将译解的签名值与用于两个对等端点之一的证书关联以认证两个对等端点之一的身份的计算设备可执行指令。
14.权利要求11的计算设备可读介质,其中用于两个对等端点之一的签名标识包括由散列算法生成的值,其中该散列算法输入包括中介印记。
15.权利要求11的计算设备可读介质,进一步包括 用于通信会话的通信路径中的中介将一个或多个基于身份的规则与两个对等端点之一的身份关联的计算设备可执行指令; 用于通信会话的通信路径中的中介接收源自两个对等端点之一的数据分组的计算设备可执行指令;以及 用于通信会话的通信路径中的中介将与两个对等端点之一的身份关联的至少一个基于身份的规则应用于在通信会话的通信路径中传输的数据分组的处理的计算设备可执行指令。
全文摘要
增强的网络数据传输安全和个性化数据传输处理可以通过在两个对等(peer)端点之间的通信路径中单独具有识别和认证对等端点中的一个或两者的能力的中介来实现。通信会话建立、对等端点身份处理和认证以及数据流量加密协议被修改以允许中介跟踪用于特定通信会话的对等端点之间的通信并获得信息以认证对等端点以及识别在它们之间传输的数据流量。中介可以使用对等端点中一个或两者的身份来实施基于身份的规则以便处理通信会话的对等端点之间的数据流量。
文档编号H04L9/32GK102668450SQ201080054602
公开日2012年9月12日 申请日期2010年11月5日 优先权日2009年12月2日
发明者B.斯万德, D.R.西蒙, P.门内西斯 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1