低等待时间的对等体会话建立的制作方法

文档序号:7914120阅读:105来源:国知局
专利名称:低等待时间的对等体会话建立的制作方法
低等待时间的对等体会话建立
背景技术
在很多计算场景中,两个或更多可相互访问(例如通过有线或无线网络)的设备可以尝试建立一个经过加密和/或认证的通信会话,其中所述会话通过加密来防止窃听或敏感信息泄露,通过认证来使每个设备可以核实接收到的消息是由另一个设备产生。举个例子,可以实施诸如RSA算法之类的非对称密码加密(cryptographic)密钥交换算法,以允许两个设备交换会话公钥,所述公钥可以与相应(且作为秘密保持)的私钥结合使用,以便能在通信会话期间实现经过加密和认证的通信。当两个设备尝试建立这种通信会话时,可以使用握手协议来识别所支持的协议以及交换密钥。例如,每一个设备可以实施传输层安全(TLS)协议来发起握手;公开和选择加密算法、压缩算法、公钥以及认证证书;以及使用经过协商的算法来用信号通告通信开始。 一旦确定了通信会话的细节,则设备可以建立安全连接,并且可以在经过加密的信道上开始通信。

发明内容
本发明内容是为了以简化形式引入在以下的具体实施方式
中将被进一步描述的概念的选择而提供的。本发明内容的目的既不是确定所保护主题的关键因素或必要特征, 也不是用来限制所保护主题的范围。在通信会话的逻辑(logistics)协商过程中,包括传输层安全(TLS)协议在内的很多握手处理允许扩展的健壮性。然而,这种健壮性有可能施加各种成本,例如实施复杂度以及随后的出现安全性缺陷的可能性。此外,设备有可能需要交换若干消息来完成协商,其中每个消息可能包括一个在连接设备的网络上进行的来回行程。这种信息交换有可能很慢或者易于失败,并且在低带宽、高等待时间和/或不可靠的连接(例如可能包含被丢弃的消息的低接收蜂窝网络)上尤其如此。一种备选的技术包括交换数量相对较少的消息来建立通信会话。这里公开的一组这样的技术包括将代表会话邀请的单个信息集合(例如单个消息)从源设备递送到目标设备,其中该消息规定的是源设备的一个或多个候选地址以及源设备产生的会话密钥。客户端设备可以接收该会话邀请,如果选择允许建立通信会话(并且核实了会话邀请的细节,例如将设备和/或用户认证为发起了通信会话),那么它可以使用自己的会话密钥以及目标设备的一个或多个候选地址来回复。源设备和目标设备中的每一个都会使用源会话密钥以及目标会话密钥来确定可供这两个设备用于会话的会话密钥。在交换了足够信息集合来启用安全的通信会话之后,源设备可以发起通信会话,并且目标设备可以采用同样的方法进行答复。由此,安全的通信会话可以在设备之间交换的消息数量减少(并且有可能减至最小) 的情况下建立,从而缩短等待时间以及减小通信会话建立失败的可能性。在该方案中还可以实施和包含其他安全特征。举例来说,在建立安全通信会话之前掩盖源设备和目标设备的实际地址可能是行得通的;例如,在握手处理过程中可以使用不同的(例如匿名的)地址, 在此期间,设备可以安全地传送在通信会话期间要使用的每一个地址的其他(非匿名)地址。为了完成前述和相关目标,后续的描述和附图阐述了某些说明性的方面和实施方式。这些阐述指示的是可以使用一个或多个方面的各种方式中的一些方式,并且从结合附图考虑时的后续详细描述中,本公开的其它方面、优点和新颖特征将会变得清楚。


图1是描绘了源设备与目标设备之间的非对称密码加密密钥对的生成和交换的例示情景的图示。图2是描绘了在安全的通信会话上源设备与目标设备之间使用非对称密码加密密钥对来交换消息的例示情景的图示。图3是根据传输层安全(TLS)协议的例示版本进行的源设备与目标设备的握手交互的图示。图4是根据这里提出的技术进行的源设备与目标设备的握手交互的图示。图5是示出了由源设备与目标设备建立通信会话的例示方法的流程图。图6是示出了由目标设备与源设备建立通信会话的例示方法的流程图。图7是包含了被配置成实现这里阐述的一个或多个指配(provision)的处理器可执行的指令的例示计算机可读介质的图示。图8是在可部署的计算环境内部表示的、可以根据这里讨论的技术来建立通信会话的一组设备的图示。图9是描绘被配置成存储公共证书的证书服务器的例示情景的图示,在建立通信会话的时候,所述公共证书可以供源设备和/或目标设备访问。图10是描绘了在源设备与目标设备之间使用源现时(source nonce)来建立通信会话的例示情景的图示。图11示出的是可以实施这里阐述的一个或多个指配的例示计算环境。
具体实施例方式现在将参考附图来描述所要保护的主题,其中相同的附图标记始终用于指代相同的部件。在以下描述中,出于解释的目的而对众多的具体细节进行了阐述,以便提供对所要保护的主题的全面理解。然而可能明显的是,所要保护的主题是可以在没有这些具体细节的情况下实施的。在其他实例中,为了帮助描述所要保护的主题,结构和设备是以框图形式显示的。在计算领域中,很多情景都包括在对等设备,例如在两台经由互联网相连的计算机或是两个经由无线局域网络连接的两个无线通信设备,之间建立通信会话。在这些情景中,设备有可能尝试经由安全信道来建立通信会话,以便对设备之间的通信进行加密。此外,设备还有可能尝试以一种避免在建立安全的通信会话之前可能难以被安全交换的相互共享的口令的方式来加密数据。由此,设备有可能能够通过发送未加密的消息而在物理网络上进行通信,但其有可能希望设计一个“覆盖”网络,借助该网络,经过加密的消息能在物理网络上发送和接收,但每一个设备可以自动加密和解密所述消息,从而为在每个设备上执行的应用呈现一个介于设备之间且没有窃听危险的虚拟网络。
图1-2共同给出的是一个描绘了尝试以安全方式建立和使用通信会话的源设备 12 (例如发起通信会话请求的客户端)和目标设备14 (例如接收请求以开始通信会话的服务器)的例示情景。在图1的例示情景10中,源设备12和目标设备14通过使用诸如RSA 算法之类的描绘非对称密钥密码加密的加密算法16来产生和交换在确保安全通信会话的过程中涉及的某些信息。这种算法被配置成产生包含了公钥和私钥的密码加密密钥对,其中所述密钥对具有两个属性私钥不能用公钥识别;以及使用公钥加密的消息只能用私钥解密。作为附加优点,消息可以用私钥来以密码加密方式“被签名”,并且可以使用公钥核实该签名,由此核实消息作者为私钥持有者(以及证实消息内容)。在准备安全通信会话的过程中,源设备12可以使用加密算法16来产生源私钥20和源公钥18,并且目标设备14可以使用加密算法16来产生目标公钥22以及目标私钥M。然后,源设备12会将源公钥18传送到目标设备14,同时秘密保留源私钥20,以及目标设备14会传送目标公钥22到源设备 12,同时秘密保留目标私钥24。图2给出的是例示情景30,其中该情景描绘的是源设备12和目标设备14使用这些密钥对来以阻止窃听的安全方式交换消息,同时还避免共享口令的安全难题(例如在建立通信会话之前交换共享口令来加密通信会话的难题)以及允许核实特定消息的作者和内容。按照图1的例示情景10,源设备12已经生成了已与目标设备14共享的源公钥18以及保持秘密的源私钥20,并且目标设备14已经生成了已与源设备12共享的目标公钥22以及保持秘密的目标私钥24。在这个例示情景30中,源设备12和目标设备14现在参与到一个通信会话32中,通过该会话,消息34可以安全地从源设备12传送到目标设备14。例如,通信会话32可以在诸如互联网之类的可能出现窃听的不可信网络上建立;相应地,源设备12 和目标设备14由此只会经由通信会话32来递送可能不易于被第三方读取、更改或伪造的加密消息。在这个例示情景30中,源设备12首先使用目标公钥22来加密消息34,以便产生加密消息36。源设备12还使用源私钥20来对加密消息36进行签名,以便产生经过加密和签名的消息38。这个经过加密和签名的消息38可以经由通信会话32而被传送到目标设备 14。即使第三方可以窃听通信会话32并且可以读取经过加密和签名的消息38,但由于第三方不可以获得目标私钥24,因此,所截获的消息34是不能被解密的。相比之下,当目标设备 14接收到经过加密和签名的消息38时,目标设备14使用目标私钥M来产生解密消息40。 此外,目标设备14可以使用源公钥18来核实解密消息40的作者(也就是核实所述解密消息40由诸如源设备12之类的可以获得源私钥20的设备生成)和/或核实解密消息40的内容没有被可能窃听通信会话32的第三方更改。作为这个例示情景30的结果,目标设备 14接收已经由拦截和/或被第三方篡改的可核实概率很低的不可信信道(例如互联网)传送的经解密和核实的消息42。图1-2的例示情景中示出的技术可用于经由安全的通信会话来交换加密消息,但是交换公钥信息以建立通信会话的方式还有可能包括附加考虑因素。作为第一示例,一个设备认证另一个设备以使第三方不能简单地在密钥交换开端模仿所述另一个设备会是很理想的。举个例子,第三方可以拦截来自源设备12的建立通信会话32的请求,并且可以在模仿目标设备14的同时与源设备12进行密钥交换。此外,在“中间人攻击”中,第三方还可以模拟源设备12,以及请求与目标设备14建立第二通信会话32。如果成功发起这两个通信会话32,那么第三方可以将接收自一个通信会话32的所有消息34全都传递到另一个通信会话32中,从而在源设备12与目标设备14之间呈现安全的通信信道32的样子,但可以完全获得由此交换的消息34。为了降低这种可能性,源设备12可以尝试对目标设备14进行认证,例如对照接收自可信源的公共证书来测试目标设备14的身份并识别目标设备14, 这是第三方所不能满足的。作为第二示例,不能解密消息的第三方仍旧可以通过“重放攻击(r印lay attack)”来干扰源设备12和/或目标设备14,其中第三方捕获传送至通信会话32的一个或多个经过加密和签名的消息38,以便在以后将其重传到接收设备。接收设备则有可能无法辨认出这些重放消息是先前接收的消息的副本,并且有可能遵照该消息行事。举个例子, 如果源设备12向目标设备14发送一个建立认证所述源设备12的通信会话32的请求,那么第三方可以捕获该消息,并且将其从不同地址重传至目标设备14。即便第三方不能解密该请求内容,来自单独地址的重传请求(包括源设备12的加密证书)也有可能被目标地址 14成功接受,由此提示目标设备14与模仿源设备12的第三方建立通信会话32。为了降低这种安全风险的威胁,源设备12和/或目标设备14可以在各种消息中包含一个“现时 (nonce)”,其中所述现时包括一个用于对消息34、通信会话32等等呈现区别特性的一次性标识符(通常是随机生成的),以使接收设备可以识别重传的消息。由于这些及其他考虑因素,可以对在源设备12与目标设备14之间建立通信会话 32的特定方式进行设计,以使其不仅仅涉及密钥信息交换,而且还涉及相关信息交换。在很多情景中,这种有时被称为“握手”的建立通信会话32的方式可以包括以一种具有良好结构和交互性的方式来交换大量信息。图3给出的是一个例示情景50,其中该情景描绘的是在传输层安全(TLS)密码加密协议中使用的、在源设备12与目标设备14之间进行的通信会话的“握手”建立。源设备 12再次产生源公钥18和源私钥20,而目标设备14产生目标公钥22和目标私钥M。根据一个依照TLS协议的相对较简化的“握手”交互,源设备12通过向目标设备14发送一个消息52来发起交互,其中所述消息被编码成“客户端问候”消息,该消息标识客户端12使用的TLS版本以及源现时。目标设备14则使用同样标识服务器12使用的TLS版本及目标现时的“服务器问候,,消息52来进行回应。目标设备14还发送一个“证书,,消息52,其中该消息在一些情景中可以包括目标公钥22,然后,目标设备14向源设备12发送一个“服务器问候结束”消息52。源设备12使用描绘源公钥18的“客户端密钥交换”消息52来进行回复,并且随后发送“改变密码规格”消息52,表明由源设备12发送的后续消息52依照所交换的证书来加密。最后,源设备12发送“结束”消息52,表明所述源设备12已经完成其握手交互部分。而目标设备14使用类似的“改变密码规格”消息52以及“结束”消息52来做出响应,由此完成握手交互以及建立安全的通信信道32。在这个相对较简化的握手交互过程中,源设备12和目标设备14交换大量信息。该交互可以包括交换九个消息52,其中每个消息都具有供发送设备使用的特定格式,并且在接收设备中引发特定行为。握手交互的复杂度有可能增大复杂度发生的概率(例如,在以不正确的顺序交换消息52的情况下导致的出乎意料或非预期的结果,消息52的递送失败,以及可供第三方滥用的时机)。此外,每一个消息52都包括一个经由网络的传输延迟,由此招致大量的等待时间,而所述等待时间有可能延迟源设备12与目标设备14之间的通信信道32的建立。虽然可以使用一些技术来减少被交换的消息52的数量(例如,通过对图3的例示情景50中的相关消息52的集合进行分组,可以将被交换的消息的数量减少到四个),但是通信信道的附加特征(例如特定的TLS版本和特定的加密算法16的协商)有可能进一步增加为了完成握手所要交换的消息52的数量。此外,此类消息的生成、传输、接收、解码和处理还在源设备12和目标设备14上施加计算负担,在连接数量可能很大的情景中(例如在一大组对等设备之间进行的对等数据传送,在该传送中,设备有可能动态地建立和保持数以百计的连接),建立连接的延迟及计算负担可能会超出可接受的范围。相应地,在仍然启用这里讨论的一些特征(例如防止中间人攻击或重放攻击)的同时降低握手交互的复杂度、从而允许以低到理想水平的等待时间和计算成本来建立通信会话32会是很理想的。一种用于减小等待时间的技术包括减少在建立通信会话32的过程中交换的消息52的数量。例如,握手交互可以被设计成允许每一个设备向其他设备递送定义其安全通信会话32的部分的单个信息集合,由此允许以单次交换消息52开始进行通信会话32。图4给出的是描绘这些技术的实施例的例示情景60,其中源设备12和目标设备 14可以使用单次信息交换来建立通信会话32。例如,源设备12和目标设备14可以包括具有处理器88并且在诸如互联网或局域网(LAN)之类的有线或无线通信网络上通信的计算机。在这个示例情景60中,源设备12是能通过源公共证书66识别的,并且目标设备14是能通过目标公共证书72识别的。这些公共证书可以由一个可信服务器(例如被配置成存储公共证书以及促成由其他设备来认证设备的认证服务器)保持,或者可以采用其他方式来交换。举例来说,源公共证书66可以包含源证书公钥62,其与通过已知并认证的源设备12 秘密保持的源证书私钥64相对应;并且举例来说,目标公共证书72可以包含目标证书公钥 68,其与通过已知并认证的目标设备14秘密保持的目标证书私钥70相对应。在与其他设备进行的通信会话32的过程中,设备不能使用这些公共证书中包含的密钥对来对消息52 进行加密,但是,所述密钥对可以为设备认证而保留。源设备12可以获得包含了目标证书公钥68的目标公共证书72,并且目标设备14可以获得包含了源证书公钥62的源公共证书66。此外,源设备12可以具有特定网络上的源地址78,例如为互联网或LAN接入分配的 TCP/IP地址,并且目标设备14可以具有处于相同网络上的目标地址80,其可以供每一个设备用以将消息52寻址到另一个设备。例如,可以在目标公共证书72中指定目标地址80,从而在目标设备14在目标地址80处可访问且拥有目标证书私钥70的情况下认证目标设备 14的身份。当源设备12 (例如从用户那里)接收到要求发起与目标设备14的通信会话的请求时,源设备12可以采用以下方式来发起握手。首先,源设备12可以生成源会话密钥70,该密钥可以用于加密和解密只用于与目标设备14进行的通信会话32的消息52。源设备12 可以预备一个包含了源会话密钥74和源地址78的会话邀请82,并且可以使用目标公共证书72内部的目标证书公钥68来加密消息。然后,该会话邀请82可以作为发起通信会话32 的请求而被传送到目标设备14。当目标设备接收到会话邀请82时,该目标设备可以使用目标证书私钥70来解密会话邀请82,并且可以确定是否接受发起通信会话32的邀请。如果目标设备14接受该邀请,那么目标设备14可以生成目标会话密钥76。通过使用源会话密钥74和目标会话密钥
976,目标设备14可以生成可用于加密最终通信会话32的会话密钥86。举例来说,会话密钥86可以包括对称密钥,例如用于加密和解密消息的Rijndael密钥。例如,该对称密钥可以包括源会话密钥74和目标会话密钥76的简单级联(concatenation)。在生成了目标会话密钥76之后,目标设备14可以预备包含了目标会话密钥76和目标地址80的会话接受 84,其中所述会话接受可以用源公共证书66来编码。然后,目标设备14可以将所述会话接受84传送到源设备12。当接收到会话接受84时,源设备12还可以使用源会话密钥74和目标会话密钥76来生成会话密钥86。然后,源设备12可以发起与目标地址14的、用会话密钥86加密的通信会话,并且可以像在图2的例示情景30中那样通过通信会话32来交换消息。以这种方式,源设备12和目标设备14仅仅使用两个消息52就可以交换用于发起通信会话32的相关信息,由此减少了握手的等待时间和计算负担。此外,使用目标公共证书 72可以便于向源设备12认证目标设备14的身份,同时不会在握手中包含附加消息52的交换。此外,在这些技术的改进中(在图4中并未示出),如果目标设备14在接收到会话邀请82的时候发起与源设备12的通信会话,那么可以进一步减少建立通信会话32的等待时间。在这个实施例中,会话接受84可以是在已建立的通信信道内发送的,由此将握手缩减至单个消息52的交换,并且减小了握手的等待时间和计算负担。图5给出的是这些技术的第一实施例,其中该实施例是作为供具有处理器88和源地址78,以及源公钥62和源私钥64的源设备12来建立通信会话32的例示方法90给出的。由此,源设备12是用包含源公钥62的源公共证书66表示的。通信会话32是与具有目标公共证书72和目标地址80的目标设备14建立的。举例来说,该例示方法90可以作为保存在源设备12的存储器中的指令集来实现。该例示方法90始于92,并且包括在处理器88上执行94被配置成实施这里给出的技术的指令。特别地,所述指令可以被配置成生成96源会话密钥。这些指令还可以被配置成向目标设备14传送98包含了源地址78和源会话密钥74的会话邀请82,其中该会话邀请82是用目标公共证书72 (例如包含在目标公共证书72中的目标证书公钥68)加密的。该指令还可以被配置成在从目标设备12接收到 100包含目标地址80和目标会话密钥76的会话接受84时,使用源公共证书66来解密102 该会话接受84,以及使用源会话密钥74和目标会话密钥76来生成104会话密钥86。最后, 该指令可以被配置成发起106与处于会话接受84中指定的目标地址80处的目标设备14 的通信会话32,其中该通信会话32是用会话密钥86加密的。在通过传送会话邀请82以及接收会话接受84而与目标设备14交换了密钥信息之后,例示方法90因此利用数量减少的消息52与目标设备14建立通信会话32,从而在108处结束。图6给出的是这些技术的第二实施例,其中该实施例是作为供具有处理器88、目标公共证书72和目标地址80的目标设备14与具有源公共证书66的源设备12来建立通信会话32的例示方法110示出的。例如,该例示方法110可以作为保存在目标设备14的存储器中的指令集来实现。所述例示方法110始于112,并且包括在处理器88上执行114 被配置成实施这里给出的技术的指令。更具体地说,这些指令可以被配置成在从源设备 12接收到包含源地址78和源会话密钥74的会话邀请82的时候,使用目标公共证书72来解密118会话邀请82,以及生成120目标会话密钥76。所述指令可以被配置成使用源会话密钥74和目标会话密钥76来产生122会话密钥86。该指令还可以被配置成向源设备12 传送IM包含了目标地址80和目标会话密钥76的会话接受84,其中所述会话接受84是用源公共证书66加密的。最后,该指令可以被配置成在从源设备12接收到通信会话32的启动的时候,发起1 与处于源地址76的源设备12进行的通信会话32,其中所述通信会话32是用会话密钥86加密的。由此,在通过接收会话邀请82和传送会话接受84来与源设备12交换了密钥信息之后,该例示方法110将会使用数量减少的消息52来与源设备12 建立通信会话32,从而在1 处结束。另一个实施例包括一种计算机可读介质,其中该介质包括被配置成应用这里给出的技术的处理器可执行的指令。在图7中示出了可以采用这些方式设计的例示计算机可读介质,其中实施方式130包括其上编码有计算机可读数据134的计算机可读介质132(例如 CD-R、DVD-R或硬盘驱动器盘片)。计算机可读数据134转而包括被配置成根据这里阐述的原理工作的计算机指令集136。在一个这样的实施例中,处理器可执行指令136可以被配置成执行与目标设备建立通信会话的方法,例如图5的例示方法90。在另一个这样的实施例中,处理器可执行指令136可以被配置成执行与源设备建立通信会话的方法,例如图6的例示方法110。本领域普通技术人员可以设计出被配置成依照这里给出的技术工作的众多这样的计算机可读介质。这里讨论的技术可以结合众多方面的变化来设计,并且一些变化相对于这些和其他技术的其他变化而言,可能显现出附加的优点和/或减少缺点。此外,一些变体可以组合实施,并且一些组合可以通过协同合作来表现附加的优点和/或减少的缺点。这些变体可被并入各种实施例(例如图5的例示方法90和图6的例示方法110),以便为此类实施例给予单独和/或协同的优点。可以在这些技术的实施例中改变的第一个方面涉及的是可以使用这里给出的这些技术的情景。作为第一个示例,这些技术可以用于在经由诸如互联网或局域网(LAN)之类的有线网络或是经由诸如蜂窝网之类的无线网络所连接的计算机之间以一种有效的(以及低等待时间的)方式来建立安全的通信会话。这些技术还可以用于在经由有线或无线设备网络所连接的设备之间以一种有效的(以及低等待时间的)方式来建立安全通信会话,其中举例来说,所述网络可以是通用串行总线(USB)集线器或是诸如蓝牙之类的个人局域网 (PAN)0这些设备还可以由相同的用户或是不同的用户操作。作为第二个示例,这些技术可以用于建立多种类型的通信会话,包括服务器/客户端布置,其中作为客户端工作的源设备12尝试与作为服务器工作的目标设备14进行联系,以及对等布置,其中源设备12和目标设备14作为分布式数据共享方案中的对等体工作。这些技术的进一步实施例可以连接两个以上的设备;举例来说,通过使用这里讨论的技术的一些变体,可以在源设备12与一组目标设备14 (每一个设备都使用相同的共享密钥对,或者每一个设备都具有单独的密钥对等等)之间建立多播通信会话。作为第三个示例,很多类型的加密算法可以用于生成非对称密码加密密钥对,以便使用这些密钥对来加密和解密消息52。可以使用这些技术的特定情景包括在可部署计算环境中所表示的设备之间的消息交换。最新的尝试是开发出以相容的、可部署和可扩展的方式来提供针对处于一群设备中的计算环境的访问的技术。这些技术还寻求在协作设备之间提供公共的应用集合,以及一种用于管理此类设备中的应用的采购、安装、使用和卸载的集中服务。该应用集合在各种设备中未必是相同的;举例来说,工作站可以包含在手机设备上可能不能良好运行的高性能应用(例如照片编辑软件和图形密集的游戏),并且手机设备可以包括与非便携工作站不相关的便携应用(例如基于GPS的地图软件)。然而,很多应用和与之相关的数据对象都是可以在此类设备之间共享的(例如被配置成管理用户日历对象的日历应用),并且计算环境可以被适配成使得能够在此类设备之间进行应用和数据对象的分发和同步。由此可以明了的是,计算机系统可以有利地以一种使得能够在设备集合之间部署计算环境的方式表示。在一种这样的技术中,计算环境——包含应用集合、应用资源以及由此使用的数据对象——用一种可被递送给设备以根据设备能力呈现(render)的方式表示。这些对象包括计算机系统的数据对象,例如用户创建的用户文件和数据,以及包括用户计算环境的无数设备的表示。以这种方式表示的计算环境可以被递送给任意设备并且以适合于设备的能力的方式来呈现。举个例子,工作站可以作为健壮和通用计算环境来呈现信息,而公共工作站则可以通过网络浏览器来呈现不同的计算环境体验(例如作为可以在用户会话结束时丢弃的虚拟机),并且手机可以提供具有针对手机相关信息(例如联系人、日历和导航数据)的更快速访问的简洁接口(leaner interface)。此外,信息集合更新(例如偏好变更和其内包含的数据文件更新)可被应用于信息集合的规范源(canonical source),并且由此传播到该信息集合将被送抵的所有其他设备。图8示出的是一个这样的情景140,其中计算环境可以由可存储和管理对象层级 144的计算环境主机142托管(host)。计算环境主机142还可以代表各种设备以不同的方式呈现对象层级144,例如代表手机设备146、个人笔记本计算机150以及公共工作站154, 此外还可以代表具有不同访问权限的不同类型的用户。计算环境更新可被反向传播到计算环境主机142,并且可以自动与其他设备同步。由此,计算环境可以因此作为包含了独立于设备的表示(“云”)的云计算架构而被设计和展现,其中所述独立于设备的表示被表述成跨形成针对相同计算环境(具有特定于设备的属性)的协作门户网格的所有设备(“客户端”) 的一致呈现。对于这里讨论的技术来说,对象层级144中表示的设备可以使用这里讨论的技术以安全有效的方式来建立通信会话32。本领域普通技术人员可以设计出很多可以使用这里讨论的技术的情景。可以在这些技术的实施例中改变的第二个方面涉及获取目标设备14的目标公共证书72的方式,源设备12可以使用该证书来加密会话邀请82。在一个实施方式中,目标公共证书72可以从证书服务器获取,所述服务器可以被配置成存储各种公共证书,包括目标公共证书72。例如,大型组织可以实施包含了可供该组织使用的各种已知设备的公共证书的证书服务器,例如通过局域网(LAN)可访问的计算机。在一个这样的实施例中,代表此类设备的计算环境主机142可以被配置成将目标公共证书72保存在可易于被源设备12访问的对象层级144内。通过首先在证书服务器上查询目标设备14的公共证书,并且然后使用所提供的公共证书来加密会话邀请82,在网络上工作的源设备12可以尝试与特定的目标设备14建立通信会话。由于其他设备无法在没有获得与所提供的目标公共证书72相对应的目标证书私钥70的情况下解密会话邀请82,因此,如果接收到相应的响应,那么该技术认证目标设备14。然而,证书服务器可能代表一个安全弱点,这是因为如果受到第三方损害,那么大量设备的认证都可以被第三方伪造;此外,证书服务器本身也有可能需要被认证。作为替换的技术,各种设备的目标公共证书72可通过任何适当的渠道提供给源设备 12,例如电子邮件、文件传送或是物理存储介质。无论源设备12如何实现获得对目标公共证书72的访问,都可以相应地使用这里讨论的技术。与此相反,在一些实施例中,如果目标设备14被配置成只与已知的源设备12建立通信会话32,那么目标设备14可以查阅源公共证书(其还可以由证书服务器162提供)而在握手期间认证源设备12。这些技术的附加改进涉及公共证书的高速缓存。例如,源设备12可以包含一个证书高速缓存,其中可以存储在发起通信会话32的过程中获取的(例如来自证书服务器的)目标公共证书72,并且在以后发起与相同目标设备14的后续通信会话的时候,所述证书可以用于重新认证目标设备14。这种高速缓存可以通过减少特定设备14的目标公共证书72的冗余检索来进一步改善这些技术的效率。例如还可以通过建立各个目标公共证书72的有效期以及从证书高速缓存中驱除过期的目标公共证书72来维护高速缓存以提升安全性。图9给出的是描绘了与这里讨论的技术相结合的第二方面的这些变体中的一些的例示情景160。在这个例示情景160中,证书服务器162可以被配置成存储包括特定目标设备14的目标公共证书72的公共证书。可以访问证书服务器162的源设备12可以尝试发起与目标设备14的第一通信会话166,并且由此可以查询证书服务器162来获取目标公共证书72。然而,源设备12还可以包含被配置成存储公共证书的证书高速缓存164,并且在获取了目标设备14的目标公共证书72时,源设备12可以被配置成将目标设备14的目标公共证书72保存在证书高速缓存164中。然后,在建立第一通信会话166的时候,源设备12可以使用目标公共证书来认证目标设备14。随后(例如在第一通信会话166结束之后),源设备12可以尝试发起与目标设备14的第二通信会话168。与从证书服务器162那里重新获取目标公共证书72不同,源设备12可以从证书高速缓存164中检索目标公共证书72,在建立第二通信会话168的时候该证书可以用来重新认证目标设备14。由此,这种高速缓存可以通过避免目标公共证书72的冗余获取来提高建立第二通信会话168的效率。 在实施这里讨论的技术时,本领域普通技术人员可以设计出很多用于实施公共证书的递送和使用的技术。可以在这些技术的实施例中改变的第三个方面涉及的是开发用来对在握手之后在源设备12与目标设备14之间建立的通信会话32进行加密的会话密钥86的方式。作为第一个示例,会话密钥86可以包括对称密钥,其可能是随机产生的并且依照对称加密算法 (例如Rijndael算法)来使用,由此使用相同的密钥来加密和解密消息。由于使用对称密钥的计算负担可能要远远小于使用非对称密钥的计算负担,因此,对于确保通信会话32的安全性而言,对称密钥可能是理想的。然后,会话密钥86可以通过如下方式来生成例如,生成包含第一随机生成的密钥(例如随机选择的整数或字符串)的源会话密钥74,生成包含第二随机生成的密钥的目标会话密钥76,以及使用第一随机生成的密钥和第二随机生成的密钥来生成对称的随机会话密钥(例如通过级联随机生成的密钥)。作为第二个示例,可以生成一组会话密钥。由于对称密钥与非对称密钥相比较可能更易于破解,因此,较为理想的是在通信会话32期间交替轮换(rotate through)—组密钥(例如其中源设备12和目标设备14被配置成周期性地切换到会话密钥集合中的下一个密钥)。举个例子,会话密钥86可以生成为包含了至少两个会话密钥的会话密钥集合,其中每一个会话密钥都不同于其他会话密钥,但是仍旧是使用源会话密钥和目标会话密钥(以不同的方式)生成的。在开始时,通信会话32初始可以通过第一会话密钥来加密,并且该设备可以被配置成以某种方式(例如周期性地)来从会话密钥集合中选择第二会话密钥,并且使用第二会话密钥来加密通信会话32。在实施这里讨论的技术的时候,本领域普通技术人员可以设计出众多生成和使用会话密钥的方式。可以在这些技术的实施例中改变的第四个方面涉及发起通信会话的方式。作为第一个示例,源设备12可以在接收到会话接受84之后发起与目标设备14的通信会话32。作为第二个示例,目标设备14可以改为在发送了会话接受84之后发起与源设备12的通信会话32。作为第三个示例,即便在发送会话接受84之前,目标设备14也可以发起通信会话 32,并且可以改成在建立了通信会话32之后发送会话接受84。这种技术可以有效地允许设备在仅仅发送了单个消息之后建立通信会话;例如,源设备12可以向目标设备14发送会话邀请82,然后可以被配置成等待由目标设备14发起通信会话32,在通信会话32内其后是会话接受84。在实施这里讨论的技术的时候,本领域普通技术人员可以设计出众多在设备之间发起通信会话的方式。可以在这些技术的实施例中改变的第五个方面涉及包含了在不同用户操作的设备之间建立通信会话32的情景。如果设备是由同一个用户操作的,那么所涉及的基于身份的安全顾虑有可能相对较少;然而如果源设备12由源用户操作并且目标设备14由目标用户操作,那么这一个用户或两个用户有可能希望在发起通信会话32之前认证另一个用户的身份。例如,目标用户有可能已将目标设备14配置成仅仅与源设备14的特定一组源用户12共享数据,并且由此可将目标设备14配置成拒绝与未知或是已知但是未被认证的用户建立通信会话32。在一个这样的实施例中,源设备12提供的会话邀请82可以包括可认证源设备12的源用户的身份的源用户认证码(authenticator),例如口令或密码加密签名。由此,目标设备14可以被配置成使用源用户认证码来核实源用户,以及在认证了源用户之后发起与源设备12的通信会话32。与此相反,目标设备14提供的会话接受84可以包括目标用户认证码,所述认证码可以认证目标设备14的目标用户的身份;并且源设备12 可以被配置成使用目标用户认证码来核实目标用户,以及在认证了目标用户之后发起与目标设备14的通信会话32。在实施这里讨论的技术的时候,本领域普通技术人员可以设计出众多用于认证用户的技术。可以在这些技术的实施例中改变的第六个方面涉及可以在多个地址访问源设备 12和目标设备14之一或是这二者的情景。在第一个这样的情景中,源设备12和目标设备14能够同时跨多个网络相互访问,例如跨诸如蓝牙网络之类的个人局域网(PAN)、诸如 802.11 (WiFi)网络之类的局域网(LAN)以及诸如互联网之类的广域网(WAN)。该物理网络还可以包括其他类型的网络,例如节点可以充当服务器、客户端和/或与其他对等体相对的一个或多个对等体的超级对等体(super-peer)网络。在第二个情景中,目标设备14在某个范围的地址上都是可被访问的,并且对于源设备12来说,可优选的是使用与其他地址相比的特定地址(例如通过端口 80访问的HTTP信道而不是通过端口 21访问的FTP信道) 来与目标设备14联系。在这些和其他情景中,源设备12可以向目标设备14 (例如作为会话邀请82的一部分)公开一组可以访问源设备的源候选地址,并且在建立通信会话32的时候,目标设备14可以从源候选地址中选择源地址76,并且可以使用所选择的源地址76来发起通信会话32。与此相反并且附加地,目标设备14可以向源设备12 (例如作为会话接受84的一部分)公开一组可以访问目标设备的目标候选地址,并且在建立通信会话32的时候,源设备12可以从源候选地址中选择一个目标地址80,并且可以使用所选择的源地址80 来发起通信会话32。
在第六个方面的第二变体中,理想的是其中一个设备或是两个设备在握手处理过程中使用第一地址,以及在通信会话过程中使用第二 (不同)地址。举个例子,如果设备之一或是两者都使用与该设备相关联的地址来进行握手,那么握手过程的窃听者有可能能够使用这些地址来识别设备的位置、识别设备之间的事务和/或例如利用拒绝服务攻击来干扰通信会话。取而代之的是,设备之一或是这两个设备都可以尝试使用一个地址(例如匿名地址)来进行握手过程,一旦认证并且安全建立了通信会话,则使用另一个地址(例如非匿名地址)来进行所述通信会话。举例来说,会话接受84可以包括与源设备12向其发送会话邀请82的目标设备14的目标地址80不同的候选目标地址,并且源设备12可以发起与在该候选目标地址处的目标设备14的通信会话32。与此相反,会话邀请82可以包括与从其发送会话邀请82的源设备12的源地址78不同的候选源地址,并且源设备12可以从所述候选源地址发起与目标设备14的通信会话32。在一个这样的情景中,匿名服务器可以允许设备声明一个暂时地址,以便与另一个设备握手。可以明了的是,这种匿名处理在不减损由每一个设备对其他设备或其用户的身份的认证的情况下可能是可行的;举个例子,即使设备可以使用匿名地址,它可以仍然是通过公共证书认证的。在实施这里讨论的技术的时候,本领域普通技术人员可以设计出众多公开、从中选择和使用多个可以用以访问源设备12和/ 或目标设备14的地址的方式。可以在这些技术的实施例中改变的第七个方面涉及使用一个或多个现时来提高通信信道32的安全性。现时是由源设备12和/或目标设备14生成并包含在消息52中以便有区别地标识消息52、通信会话32等等的区别标识符。使用现时可以使得“重放攻击”更加困难,在所述攻击中,第三方可以捕获由发送方生成的经过加密的消息,并且可以将所述经过加密的消息重传至接收方,以便损害通信会话32的安全性或是更改接收设备的行为。 作为第一个示例,源设备12可以被配置成生成源现时(例如随机或顺序数字或字符串),所述源设备可以将所述源现时包含在会话邀请82中,从而有区别地标识会话邀请82。当接收到会话邀请82时,目标设备14可以被配置成核实源现时(例如通过确认其先前没有接收到具有相同源现时的会话邀请82)。当核实了源现时的时候,目标设备14可以向源设备12 传送会话接受84,并且可以将所述源现时记录在一组先前接收的源现时中。此外,目标设备14可以将源现时包含在会话接受84中,这样可以在响应对会话邀请82的时候进一步认证目标设备14的身份(例如,第三方有可能尝试通过重放先前接收的会话接受84来模仿目标设备14,但是会话接受84中的失配源现时可以将该模仿向源设备12警告)。作为替换或附加地,目标设备14可以生成可包含在会话接受84中的目标现时,并且在接收到会话接受 84时,源设备12可以在发起与目标设备14的通信会话32之前核实所述目标现时。图10给出的是例示情景170,其中该情景描绘的是尝试根据这里给出的技术来建立通信会话32的源设备12和目标设备14,并且还描绘了源现时172的运用。源设备12可以通过生成以及向目标设备14发送用目标公共证书72加密的会话邀请82来请求发起通信会话32。然而,该会话邀请82可以包括(除了其他元素之外)源现时172,例如随机生成的数字。目标设备14可以接收会话邀请82,并且确认其先前没有接收到过描绘源现时172 的会话邀请82。在成功确认了源现时172时,目标设备14可以生成并且向源设备12发送用源公共证书66加密并且包含了(除了其他元素之外)源现时172的会话接受84。在发起通信会话32之前,源设备12可以核实在会话接受84中接收的源现时172与在会话邀请82中发送的源现时172相匹配。将源现时172包含在图10的例示情景170中可以在至少两个方面提升通信会话 32的安全性。首先,第三方174可以拦截会话邀请82,并且随后可以通过向目标设备14重传会话邀请84来尝试发起与目标设备14单独的通信会话32,由此模仿源设备12。目标设备14可以将被重传的会话邀请82中包含的源现时172识别为先前在会话邀请82的首次传输中已由源设备12接收,并且由此可以拒绝发起与第三方174的通信会话32。其次,第三方174可以捕获在发起第一通信会话的过程中从目标设备14传送到源设备12的会话接受84。在源设备12后续尝试与目标设备14建立第二通信会话的过程中,第三方174随后可以通过重传会话接受84来尝试模仿目标设备14,但是第二会话邀请82中的源现时172 将无法与由第三方174在重传的会话接受84中返回的源现时172相匹配,由此会向源设备 12警告所述模仿。在实施这里讨论的技术的时候,本领域普通技术人员可以设计出由源设备12和/或目标设备14所生成的现时的众多用途。虽然以特定于结构特征和/或方法操作的语言描述了本主题,但是应该理解,所附权利要求中限定的主题未必局限于上述具体特征或行为。相反,以上描述的具体特征和行为是作为用于实施权利要求的例示形式而公开的。本申请中使用的术语“组件”、“模块”、“系统”、“接口”等等一般旨在指代计算机相关的实体,或是硬件、软硬件组合、软件或是执行中的软件。举例来说,组件可以是但不局限于在处理器上运行的进程、处理器、对象、可执行文件、执行线程、程序和/或计算机。作为例证,在控制器上运行的应用和控制器都可以是组件。一个或多个组件可以驻留在进程和 /或执行线程内,并且组件可被定位在一个计算机上和/或分布在两个或更多计算机之间。此外,所要保护的主题可以作为使用了标准的编程和/或工程技术的方法、装置或制品来实施,以便产生软件、固件、硬件或是其任何组合,从而控制计算机来实施所公开的主题。这里使用的术语“制品”旨在包含可以从任何计算机可读设备、载体或媒介访问的计算机程序。当然,本领域技术人员将会认识到,在不脱离所要保护的主题的范围或精神的情况下,可以进行针对该配置的众多修改。图11和后续讨论提供的是实施这里阐述的一个或多个指配的实施例的适当计算环境的简要概括性描述。图11的操作环境仅仅是适当的操作环境的一个示例,其并非意在暗示任何对于操作环境的使用或功能的范围的限制。例示的计算环境包括但不局限于个人计算机、服务器计算机、手持或膝上型设备、移动设备(例如移动电话、个人数字助理(PDA)、 媒体播放器等等)、多处理器系统、消费类电子设备、迷你计算机、大型计算机、包含了以上任意系统或设备的分布式计算环境等等。实施例是在由一个或多个计算设备执行的“计算机可读指令”的通用上下文中描述的,但这并不是必需的。计算机可读指令可以经由计算机可读媒介来分发(在下文中讨论)。计算机可读指令可以作为执行特定任务或是实施特定抽象数据类型的程序模块来实施,例如函数、对象、应用编程接口(API)、数据结构等等。通常,在各种环境中可以根据需要来组合或分布计算机可读指令的功能。图11示出的是系统180的示例,其中该系统包括被配置成实施这里提供的一个或多个实施例的计算设备182。在一个配置中,计算设备182包括至少一个处理单元186和存储器188。根据计算设备的确切配置和类型,存储器188可以是易失性的(例如RAM)、非易失性的(例如ROM、闪存等等)或是这二者的某种组合。在图11中用虚线184示出了这种配置。在其他实施例中,设备182可以包括附加特征和/或功能。例如,设备182还可以包括附加(例如可移除和/或不可移除)存储装置,其包括但不局限于磁存储装置、光学存储装置等等。在图11中用存储装置190示出了这些附加存储装置。在一个实施例中,用以实施这里提供的一个或多个实施例的计算机可读指令可以处于存储器装置190中。存储装置 190还可以存储用于实施操作系统、应用程序等等的其他计算机可读指令。举例来说,所述计算机可读指令可被加载在存储器188中,以便由处理单元186执行。这里使用的术语“计算机可读媒介”包括计算机存储媒介。计算机存储媒介包括在存储诸如计算机可读指令或其他数据之类的信息的任意方法或技术中实施的易失性和非易失性以及可移除和不可移除的媒介。存储器188和存储装置190是计算机存储媒介的示例。计算机存储媒介包括但不局限于RAM、R0M、EEPR0M、闪存或其他存储技术、CD-ROM、数字多功能盘(DVD )或其他光学存储装置、磁盒、磁带、磁盘存储装置或其他磁存储设备、或是其他任何可以用于存储预期信息并且可以被设备182访问的介质。任何这样的计算机存储媒介都可以是设备182的一部分。设备182还可以包括允许设备182与其他设备通信的一个或多个通信连接196。 所述一个或多个通信连接196可以包括但不局限于调制解调器、网络接口卡(NIC)、综合网络接口、射频发射机/接收机、红外端口、USB连接、或是用于将计算设备182连接到其他计算设备的其他接口。一个或多个通信连接196可以包括有线连接或无线连接。所述一个或多个通信连接196可以发射和/或接收通信媒介。术语“计算机可读媒介”可以包括通信媒介。通信媒介通常会将计算机可读指令或其他数据包含在诸如载波或其他传输机制之类的“调制数据信号”中,并且包括任何信息递送媒介。术语“调制数据信号”可以包括以在该信号中编码信息的方式来设置或改变其特性的一个或多个的信号。设备182可以包括一个或多个输入设备194,例如键盘、鼠标、笔、语音输入设备、 触摸输入设备、红外摄像机、视频输入设备和/或其他任何输入设备。在设备182中还可以包括一个或多个输出设备192,例如一个或多个显示器、扬声器、打印机和/或其他任何输出设备。一个或多个输入设备194以及一个或多个输出设备192可以经由有线连接、无线连接或是其任何组合连接到设备182。在一个实施例中,来自另一计算设备的输入设备或输出设备可被用作计算设备182的一个或多个输入设备194或是一个或多个输出设备192。计算设备182的组件可以通过各种互连来连接,例如总线。这种互连可以包括外设组件互连(PCI),例如PCI Express、通用串行总线(USB)、火线(IEEE 1394)、光学总线结构等等。在另一个实施例中,计算设备182的组件可以由网络互连。例如,存储器188可以包括位于由网络互连的不同物理位置的多个物理存储单元。本领域技术人员将会认识到,用于存储计算机可读指令的存储设备可以分布在网络上。例如,可经由网络198访问的计算设备200可以存储用于实施这里提供的一个或多个实施例的计算机可读指令。计算设备182可以访问计算设备200,以及下载一部分或是所有的计算机可读指令来执行。作为替换,计算设备182可以根据需要下载计算机可读指令块,或者一些指令可以在计算设备182处执行,而一些指令则可以在计算设备200处执行。
在这里提供了不同的实施例操作。在一个实施例中,所描述的一个或多个操作可以构成保存在一个或多个计算机可读媒介上的计算机可读指令,如果计算设备执行该指令,那么所述指令会导致计算设备进行所描述的操作。用以描述一些或所有操作的顺序不应该被解释成是暗示这些操作必须依赖于该顺序。并且得益于本描述的本领域技术人员将会明了替换的排序。更进一步,应该理解的是,在这里提供的每一个实施例中是不必给出所有的操作的。此外,这里使用的单词“例示”意味着充当示例、实例或例证。在这里作为“例示” 描述的任何方面或设计不必被理解成是优于其他的方面或设计。相反,使用单词“例示” 的目的是为了以一种具体的形式来给出概念。本申请中使用的术语“或”旨在表示兼“或” (inclusive “or”)而不是异“或” (exclusive “or”)。换言之,除非另外规定或者可以从上下文中清楚了解,否则“X使用A或B”意指任一自然的包容性排列。也就是说,如果X使用 A ;X使用B ;或者X同时使用A和B,那么在前述任一实例中均满足“X使用A或B”。此外, 对于在本申请和所附权利要求中使用的冠词“一”和“一个”来说,除非另外规定或者从上下文中清楚指向单数形式,否则所述“一”和“一个”通常可以被解释成是指“一个或多个”。此外,虽然本公开是对照一个或多个实施方式显示和描述的,但对本领域其他技术人员来说,在阅读和理解了本说明书以及附图时,等同变更和修改都是可以想到的。本公开包括所有这些修改和变更,并且只受后续权利要求范围的限制。特别地,对于上述组件 (例如元件、资源等等)执行的各种功能来说,除非另外指示,否则用于描述此类组件的术语旨在与执行所述组件的特定功能的任何组件相对应(例如在功能上等价),即便不与所公开的用于执行这里示出的公开例示实施方式中的功能的结构上相等价。此外,虽然本公开的特定特征是对照若干实施方式中的仅仅一种公开的,但是该特征可以与其他实施方式的一个或多个其他特征相结合,因为这种结合对于任意给定或特定的应用来说有可能是理想和有利的。此外,对于在具体实施方式
或权利要求中使用的术语“包括”、“具有”、“具备”、“带有”或是其变体来说,此类术语与术语“包括” 一样旨在是包含性的。
权利要求
1.一种通过具有处理器(88 )和源私钥(64 )的源设备(12 )与具有目标公共证书(74 ) 的目标设备(14)建立通信会话(32 )的方法(90 ),该方法(90 )包括在处理器(88)上执行(94)指令,所述指令被配置成 生成(96)源会话密钥(74);向目标设备(14)传送(98)包含了源地址(78)和源会话密钥(74)的会话邀请(82),该会话邀请(82)用目标公共证书(72)加密;以及在从目标设备(14)接收到(100 )包含目标地址(78 )和目标会话密钥(76 )的会话接受 (84)时使用源私钥(64 )来解密(102 )所述会话接受(84 ),使用源会话密钥(74)和目标会话密钥(76 )生成(104)会话密钥(86 );以及发起(106)与处于目标地址(78)的目标设备14的通信会话(32),所述通信会话(32) 用会话密钥(86)加密。
2.根据权利要求1所述的方法,所述源设备和所述目标设备是在由计算环境主机托管的可部署计算环境中表示的。
3.根据权利要求1所述的方法所述源会话密钥包括第一随机生成的密钥; 所述目标会话密钥包括第二随机生成的密钥;以及所述会话密钥包括使用所述第一随机生成的密钥和所述第二随机生成的密钥来生成的对称随机会话密钥。
4.根据权利要求1所述的方法生成所述会话密钥包括生成包含了至少两个会话密钥的会话密钥集合,各个会话密钥使用所述源会话密钥和所述目标会话密钥来生成,并且与所述会话密钥集合中的其他会话密钥是不同的;发起通信会话包括发起与处于所述目标地址的所述目标设备的通信会话,该通信会话用第一会话密钥加密;以及该方法包括在发起所述通信会话之后 从所述会话密钥集合中选择第二会话密钥,以及使用所述第二会话密钥来加密所述通信会话。
5.根据权利要求1所述的方法 所述源设备由源用户操作;所述目标设备由目标用户操作; 所述会话接受包括目标用户认证码,以及发起所述通信会话包括使用所述目标用户认证码来核实所述目标用户,以及一旦核实了所述目标用户,则与所述目标设备发起通信会话,该通信会话用会话密钥加密。
6.根据权利要求1所述的方法 所述源设备包括证书高速缓存; 该指令被配置成在获取了所述目标设备的目标公共证书时,将所述目标公共证书存储在所述证书高速缓存中,以及通过从所述证书高速缓存中检索目标公共证书来与目标设备建立后续通信会话。
7.根据权利要求1所述的方法所述会话接受包括至少两个候选目标地址,以及与所述目标设备发起通信会话包括在至少两个候选目标地址中选择至少一个目标地址,以及发起与处于至少一个所选择的目标地址的目标设备的通信会话,所述通信会话是用会话密钥加密。
8.根据权利要求1所述的方法所述会话接受包括与所述源设备向其发送会话邀请的目标设备的目标地址不同的候选目标地址;以及发起所述通信会话包括发起与处于所述候选目标地址的所述目标设备的通信会话, 所述通信会话用会话密钥加密。
9.根据权利要求1所述的方法 所述指令被配置成生成源现时,以及所述会话邀请包括所述源现时。
10.根据权利要求1所述的方法 所述会话接受包括目标现时;以及发起所述通信会话包括核实所述目标现时,以及当核实了所述目标现时的时候,发起与所述目标设备的通信会话,所述通信会话用会话密钥加密。
11.一种通过具有处理器(88)和目标私钥(70)的目标设备(14)与具有源公共证书 (66)的源设备(12)建立通信会话(32)的方法(110),该方法(110)包括在处理器(88)上执行(114)指令,所述指令被配置成 在从源设备(12)接收(116)到包含源会话密钥(74)的会话邀请(82)时 使用目标私钥(70 )来解密(118 )会话邀请(82 ); 生成(120)目标会话密钥(76);使用源会话密钥(74)和目标会话密钥(76 )来生成(122 )会话密钥(86 );以及向源设备(12 )传送(24 )包含了目标地址(78 )和目标会话密钥(76 )的会话接受(84 ), 所述会话接受(84)用源公共证书(66)加密;以及在从源设备(12)接收到通信会话(32)的发起时,发起(1 )与处于源地址(78)的源设备(12 )的通信会话(32 ),所述通信会话(32 )用会话密钥(86 )加密。
12.根据权利要求11所述的方法所述会话邀请包括与所述源设备从其发送会话邀请的源设备的源地址不同的候选源地址;以及发起所述通信会话包括发起与处于所述候选源地址的源设备的通信会话,所述通信会话用会话密钥加密。
13.根据权利要求11所述的方法所述目标设备是可以在至少两个候选目标地址访问的; 所述会话接受包括所述至少两个候选目标地址;以及由所述源设备向至少一个候选目标地址发起通信会话。
14.根据权利要求11所述的方法 所述会话邀请包括源现时;以及该指令被配置成,在接收到会话邀请时 核实所述源现时,以及当核实了所述源现时的时候,向所述源设备传送所述会话接受。
15.一种包含了指令的计算机可读存储介质(132),当该指令在由源用户操作的源设备(12)的处理器(88)上执行,并且所述源设备包含证书高速缓存(164)和源私钥(64), 以及具有至少一个源地址(78),被表示在由计算环境主机(142)托管的可部署计算环境(144)中,并且还表示一个由目标用户操作且具有至少一个目标地址(78)的目标设备 (14),所述源设备(12)可以使用包含至少一个公共证书的证书服务器(162),并且所述至少一个公共证书包括识别目标设备(14)的目标公共证书(72)时,所述指令通过以下处理来与目标设备(14 )建立通信会话(32 ):从证书服务器(162)获取目标设备(14)的目标公共证书(72); 将目标公共证书(72)存储在所述证书高速缓存(164)中; 产生源会话密钥(74); 产生源现时(172);向目标设备(14)传送包含了至少一个源地址(78)、源会话密钥(74)以及源现时(172) 的会话邀请(82),所述会话邀请(82)用目标公共证书(72)加密;当从目标设备(14)接收到包含至少一个候选目标地址(78)、目标会话密钥(76)、目标现时以及目标用户认证码的会话接受(84)时 使用源私钥(64)来解密会话接受(84); 核实所述目标现时;使用所述目标用户认证码来核实所述目标用户;以及在核实了所述目标用户和所述目标现时的时候 在至少两个候选目标地址(78 )中选择至少一个目标地址(78 ), 使用源会话密钥(74)和目标会话密钥(76 )来生成会话密钥(86 ),以及发起与处于所选择的目标地址(78)的目标设备(14)的通信会话(32),所述通信会话 (32)用会话密钥(86)加密;以及通过从证书高速缓存(164)中检索目标公共证书(72)来与目标设备(14)建立后续通信会话(32)。
全文摘要
源设备和目标设备可以尝试形成安全的通信会话,据此可以在诸如互联网之类的不可信网络上传送加密消息。然而,在建立通信会话的过程中,众多消息的交换有可能涉及大量的等待时间和计算资源,在描绘众多通信会话(例如对等通信会话)的情景中尤其如此。可以设计用于发起通信会话的技术,使得能够使用仅两个交换消息或者甚至使用从源设备被传送到目标设备的单个消息来发起通信会话。在没有增加通信会话发起过程中涉及的消息的数量的情况下,这些技术的一些实施例还可以允许包含有利的安全特征,例如经由公共证书来检测中间人攻击的认证,以及包含用于检测重放攻击的现时。
文档编号H04L9/32GK102577230SQ201080047316
公开日2012年7月11日 申请日期2010年9月24日 优先权日2009年10月21日
发明者D.斯蒂尔, T.加尔文 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1