用于对服务提供安全访问的系统和方法

文档序号:7884545阅读:327来源:国知局
专利名称:用于对服务提供安全访问的系统和方法
技术领域
本发明公开了一种用于对服务器上的服务提供授权用户访问的系统和方法。
背景技术
虚拟私有网络(VPN)是控制访问以允许客户端连接的通信环境。VPN创建计算机通信私有范围和/或经由不安全通信网络(诸如互联网)提供私有网络的安全扩展。互联网协议安全性(IPsec)、第2层隧道协议(L2TP)和安全套接字层(SSL)是用于在通信网络(诸如互联网)上建立VPN的加密协议以确保安全访问VPN中给授权用户的数据和服务的实例。 SSL是应用层协议,且将公开密钥和对称密钥加密的组合用于使数据包安全。SSL保护在通信主机之间发送的数据,但不保护通信主机的身份。L2TP是用于建立VPN的隧道协议。L2TP本身不提供任何加密或保密,且L2TP通常结合IPsec协议来使用以提供加密和保密。IPsec协议族为互联网协议(IP)层上的流量提供安全性服务。如本领域众所周知,互联网协议(IP)数据包未内建安全性机制。IPsec被设计为能实现在IP网络上使用IP数据包的安全私有通信。IPsec协议族能实现保密性、源认证和数据完整性。IPsec使用认证标头(AH)协议和封装安全性有效载荷(ESP)协议来提供流量安全性。AH和ESP协议在题为“用于封装安全性有效载荷(ESP)和认证标头(AH)的加密算法实现要求(CryptographicAlgorithm Implementation Requirements for Encapsulating Security Payload(ESP)and Authentication Header (AH))”的RFC4835中被描述,将其内容结合于此供参考。IPsec提供两个操作模式以跨通信网络交换数据,即隧道模式和传输模式。传输模式仅保护IP数据包的数据,而隧道模式保护包括IP标头的整个IP数据包。因此,除IP数据包的数据之外,隧道模式提供主机的身份保护。IPsec协议以及传输模式和隧道模式在题为“用于互联网协议的安全架构(Security Architecture for the Internet Protocol)”的RFC4301中被描述,将其内容结合于此供参考。ESP协议和AH协议的安全性特征仅可在通信主机之间有现有安全性关联(SA)时使用。SA为一组算法(诸如安全散列算法I (SHAl))和参数(诸如安全性密钥),所述安全性密钥被用于加密和认证在一个方向上的给定IP数据包流。因此,对于双向通信,IP数据包流由一对SA确保安全。SA是在两个实体之间描述实体如何使用安全性服务来进行安全通信的关系。在无限制情况下,在形成SA的通信方之间的协定包括: 加密算法; 认证算法;.IPsec操作模式,即,隧道模式或传输模式;以及 会话密钥和会话密钥的有效期。IPsec使用安全性参数索引(SPI )、安全性关联数据库(SADB)索引以及在数据包标头中的目标地址来唯一识别对于给定出站IP数据包的安全性关联。对于入站数据包执行类似程序,其中,IPsec从安全性关联数据库采集解密和验证密钥。如上所讨论,若通信主机之间有现有SA,则IP数据包仅可由IPsec确保安全和保护。SA可手动创建,例如由系统管理员创建,或者SA可自动创建。IPsec将互联网密钥交换(IKE)协议用于动态建立和配置在通信主机之间的SA。IKE使用迪菲-赫尔曼(Diffie-Hellman)密钥交换来设置共享会话秘密,从共享会话秘密推导出加密密钥。此外,IKE使用公开密钥技术或预共享密钥以能使通信主机相互手动认证。IKE分两个阶段操作,即第I阶段和第2阶段。第I阶段通过使用迪菲-赫尔曼密钥交换算法来建立安全认证通信信道,以产生共享密钥来加密通信主机之间的其他IKE通信。第I阶段协商产生单个双向互联网安全性关联和密钥管理协议(ISAKMP) SA。第I阶段可在主模式(其保护通信主机的身份)或积极模式(其不保护通信主机的身份)下操作。在第2阶段期间,通信主机使用在第I阶段建立的安全信道来协商代表其他服务(如IPsec)的SA。在设置中,诸如在通信主机正在建立用于IPsec通信的SA的情况下,第2阶段执行至少两次以创建两个单向SA,一个入站和一个出站。应当理解,根据通信主机之间的通信约定,第2阶段可执行多于两次。IKE协议的第I阶段和第2阶段在题为“互联网密钥交换(IKE) (The InternetKey Exchange (IKE))”的RFC2409、题为“用于互联网密钥交换的算法第I版本(IKEvl)(Algorithms for Internet Key Exchange version I (IKEvl)),,的 RFC4109、题为“互联网密钥交换(IKEv2)协议(Inernet Key Exchange (IKEv2) Protocol)” 的 RFC4306 和题为“使用具有互联网密钥交换第2版本(IKEv2)协议的加密有效载荷的认证加密算法(UsingAuthenticated Encryption Algorithms with the Encrypted Payload of the InternetKey Exchange version2 (IKEv2)Protocol)”的RFC5282中被描述,将其内容结合于此供参考。若两个通信主机正在使用基于IPsec VPN的实施的标准或者在两个通信端上二者均在使用相同IPsec协议族的专有实施,则上述IPsec架构高效工作。然而,一些厂商的IPsec实施是专有的,该IPsec实施往往不兼容其他厂商的IPsec实施。因此,用户被限制使用兼容专有IPsec软件客户端与使用相同IPsec的专有实施的网络建立VPN连接。在设置中,诸如在客户端正在从限制平台(诸如iPhone )建立VPN连接的情况下,用户安装专有软件的能力也被限制。因此,根据该设置,用户可能与利用IPsec协议的专有实施的网络无法建立VPN连接。此外,限制平台(如iPhone )也可限制用户使用IPsec协议族的某些特征的能力,例如,限制平台可能仅允许传输模式下的VPN连接。因此,根据该设置,通信网络和用户的身份被暴露。

发明内容
根据本公开的一个方面,提供了一种根据所附权利要求所述的全局服务器、方法和通信系统。本文所述实施方式涉及提供对由终止终端提供到授权发起终端的服务的安全访问。在一种实施方式中,提供了一种用于向发起终端提供对由终止终端经由通信网络提供的服务的认证访问的服务器,该服务器能够针对由所述终止终端提供的服务来识别和认证发起终端,基于所述发起终端通过服务器的成功认证,对服务的所述访问经由服务器被提供给发起终端。因此,在本文描述的实施方式中,通过与由终止终端提供的服务有关的服务器识别和认证发起终端。因此,服务器用作终止终端的存在点,且仅允许认证终端访问终止终端的服务。在一些实施方式中,终止终端是私有网络,且服务器用作私有网络的存在点。实际上,服务器用作代理实体,该代理实体认证与由私有网络提供的服务有关的发起终端。在一种实施方式中,服务器包括通信模块,其用于接收和处理来自发起终端的密钥交换发起消息以与终止终端建立加密通信信道,该通信模块响应所接收的密钥交换发起消息,由此针对所接收的密钥交换发起消息执行加密通信建立处理,该加密通信建立处理包括:1.认证发起终端;以及i1.在发起终端被成功认证的情况下,将与所接收的密钥交换发起消息相对应的密钥生成数据发送到终止终端,所述密钥生成数据基于与发起终端相关联的数据来识别。因此,根据一种实施方式,服务器响应接收密钥交换发起消息,认证与所接收的密钥交换发起消息相关联的发起终端,以及将与所接收的密钥交换发起消息相对应的密钥生成数据(keying data)发送到终止终端。密钥生成数据能使发起终端和终止终端建立加密通信信道。因此,该实施方式能基于发起终端通过服务器的成功认证来使给定发起终端与给定终止终端建立加密通信信道。实际上,用作终止终端的存在点的服务器能实现发起终端与终止终端之间的加密通信信道的建立。以此方式,服务器扩展了代理协商方的灵活性,以易于在认证发起终端与终止终端之间建立加密通信信道。因此,在给定发起终端与给定终止终端的通信协议能力之间不匹配的情况下,服务器可易于建立加密通信信道。在另一实施方式中,服务器被配置为基于预定条件来选择性执行加密通信信道建立处理。加密通信信道建立处理的选择性执行扩展了基于超越认证的标准而丢弃来自发起终端的请求的能力。例如,服务器可被配置为拒绝来自发起终端的基于已对于恶意软件存在性而扫描给定发起终端的确定来请求与给定终止终端建立加密通信信道的请求。在另一设置中,服务器被配置为在加密通信信道上中继在给定发起终端与给定终止终端之间的数据包,所述加密通信信道已基于给定发起终端通过服务器的成功认证来建立。因此,该设置能使服务器用作给定加密通信信道上的加密数据包中继节点,通过服务器易于建立所述加密通信信道。加密数据包可基于预定通信条件来选择性发送或转发到终止终端。所接收的加密数据包的该选择性转发扩展了对通过服务器建立的加密通信信道的基于策略的管理的灵活性。在另一实施方式中,诸如在服务器还被配置为使用与所接收的加密数据包的通信协议不同的通信协议来产生第二加密数据包的情况下,服务器将所产生的第二加密数据包发送到相应的发起终端或相应的终止终端。以此方式,服务器移除在给定发起终端和给定终止终端的通信协议中的任何不一致性。这种不一致性的实例在给定发起终端上基于行业标准的客户端被用于建立具有基于非标准的安全连接建立处理的专有实施的安全连接的情况下可见。应当理解,在没有服务器调解的情况下,该情况下的给定发起终端与给定终止终端无法建立安全连接。在另一设置中,服务器被配置为基于源自归属代理的数据来认证发起终端,所述归属代理可访问通信网络,且被设置为保持与发起终端有关的数据。这扩展了从除了给定发起终端之外的实体获取与给定发起终端的认证有关的数据的灵活性。在另一实施方式中,服务器被设置为重新发送所接收的加密数据包,所接收的加密数据包向给定发起终端的发送已失败。响应预定事件,诸如预定时间量的经过,由服务器执行重新发送。这减少了所接收的加密数据包向给定发起终端的失败发送的数量。应当理解,由给定发起终端经历的暂时失去连接也会导致给定加密数据包的发送失败。此外,以此方式,增加所接收的加密数据包的失败发送数量的暂时性问题被减少。根据本发明的其他方面,服务器被实施为单个计算装置或者被实施为包括一群计算装置的分布式系统。服务器被配置为单个装置或者一群装置,以执行与前述功能相对应的方法,且实际上,所述一个或多个装置配置有能执行相应步骤的计算机代码。根据参照附图做出的仅以实例方式给出的以下描述,其他特征和优点将变得显而易见。


图1是网络环境的示意图;图2是另一网络环境的示意图;图3是示出图2的全局服务器的组件的框图;图4是示出通过通信网络建立的加密通信信道的框图;图5是由图2所示组件执行的处理的示意性流程图;图6是示出当根据互联网密钥交换(IKE)第I版本(Vl)操作时由图2所示组件执行的步骤的时序图;图7是示出当根据基于IKEvl预共享秘密的客户端认证来操作时由图2所示组件执行的步骤的时序图;图8是示出当根据基于IKEvl公开密钥签名的客户端认证来操作时由图2所示组件执行的步骤的时序图;图9是示出当根据基于IKEvl公开密钥加密的客户端认证来操作时由图2所示组件执行的步骤的时序图;图10是示出当根据基于IKEvl修订版公开密钥加密的客户端认证来操作时由图2所示组件执行的步骤的时序图;图11是示出当根据IKEvl积极模式来操作时由图2所示组件执行的步骤的时序图;图12是示出当根据IKEv2来操作时由图2所示组件执行的步骤的时序图;图13是示出当在IKE中认证用户时由图2所示组件执行的步骤的时序图;图14是示出当在IKEvl中建立另一安全性关联(SA)时由图2所示组件执行的步骤的时序图;图15是示出当在IKEv2中建立另一 SA时由图2所示组件执行的步骤的时序图;图16是示出加密信道建立过程的概览的流程图;以及图17是示例性全局服务器的功能框图。
具体实施例方式本文所述实施方式涉及基于由位于私有网络外部的实体执行的认证和通信密钥协商在发起终端与私有网络之间的虚拟私有网络(VPN)的建立。更具体地,实施方式涉及调解在客户端与服务器端之间的VPN会话建立,使得发起终端或客户端在调解全局服务器实体处被认证以用于安全访问由终止终端、私有网络或服务器提供的服务。下文中详细描述VPN会话建立中涉及的处理,但首先参照图1描述网络环境概览,图1示出了说明常规通信网络101的框图,通过常规通信网络101在发起终端102或远程访问客户端与私有网络105之间建立安全VPN连接。此外,提供了对如何使用常规技术建立安全性关联(SA)的描述。通信网络101被配置为能实现访问客户端102与私有网络105之间的数据包通信。访问客户端102是能使用由终止终端提供的安全服务的远程装置。在无限制情况下,访问客户端102可包括远程台式计算机、智能手机(诸如iPhone )、计算机网络和膝上型计算机。某些VPN连接类型(诸如互联网协议安全性(IPsec))需要访问客户端102使用专门被配置为与给定私有网络105建立VPN连接的客户端软件来访问私有网络105的服务,而其他连接类型(诸如超文本传输协议安全(HTTPS))不需要专门配置的客户端软件。在设置中,诸如在访问客户端105包括计算机网络的情况下,到私有网络105的单个VPN连接能使计算机网络中的每台计算机访问私有网络105的服务。VPN连接可通过计算机网络中的任何计算机或专门被分配与私有网络建立VPN连接的任务的计算机(诸如网关)来建立。私有网络105包括防火墙106,以基于预定网络策略选择性允许流量进入私有网络105。私有网络105也包括网关103,网关103被设置为处理来自远程访问客户端102的所有入站VPN数据包。网关103是私有网络105到远程访问客户端102的存在点,并处理来自远程访问客户端的入站数据包,包括VPN连接发起请求和密钥交换消息。此外,私有网络105包括服务器104,该服务器104被设置为将数据或服务提供给远程访问客户端。防火墙106、服务器104和网关103的操作可通过单独网络实体来执行或者被组合为单个网络实体。VPN连接发起请求可从私有网络105端或远程访问客户端102端发送。如根据常规系统,当从远程访问客户端102发送VPN连接请求时,远程访问客户端102开始发起VPN连接建立或加密通信建立处理。请求被路由到私有网络的存在点,诸如网关103,私有网络随后处理入站的VPN连接建立请求。在一种设置中,诸如在入站的VPN连接建立请求是IPsec连接建立请求的情况下,网关103确定远程访问客户端102与私有网络105之间是否有现有SA。如上所述,IPsec将互联网密钥交换(IKE)协议用于在通信主机之间动态建立和配置SA。在远程访问客户端102与私有网络105之间没有现有SA的情况下,私有网络105的存在点(诸如网关103)和远程访问客户端102发起IKE通信交换,以在通信主机、远程访问客户端102与私有网络105之间建立SA。在由远程访问客户端102发起IKE通信交换且通信主机使用IKEvl来设置发起SA的设置中,远程访问客户端102将密钥交换发起消息发送到私有网络105。密钥交换发起消息包括标头和用于与私有网络105建立SA的建议。私有网络105的存在点(诸如网关103)通过发送指示属性选择的消息来响应密钥交换发起消息,SA应基于属性选择来建立。密钥交换发起消息和密钥交换发起响应中的标头包括发起方cookie (cookie-1)和响应方cookie (cookie-R)。发起方cookie和响应方cookie通常被称为互联网安全性关联和密钥管理协议(ISAKMP)防堵塞cookie。远程访问客户端102随后利用发起方密钥(KEi)和随机数(Noncei)的公开值来响应。响应接收KEi和Noncei,网关103利用响应方密钥(KE,)和另一随机数(Nonce,)的公开值来响应。通信主机随后计算一组密钥(SKEYID、SKEYID_a, SKEHD_d和SKEHD_e),所述密钥被用于确保通信主机之间的任何进一步通信安全。密钥SKEHD_a被用于认证IKE第2阶段消息,SKEYID_d被用于推导出在IKE第I阶段和第2阶段中的其他密钥,以及SKEHD_e被用于加密在IKE第I阶段中的任何进一步消息以及所有IKE第2阶段消息。共享密钥SKEYID被用于确定SKEHD_a、SKEYID_d和SKEHD_e。密钥SKEHD的计算取决于认证协议。在无限制情况下,认证协议可以是预共享密钥、公开密钥签名、公开密钥加密或修订的公开密钥加密。在认证协议是预共享密钥协议的设置中,由计算主机、网关103和远程访问客户端102计算的密钥、密钥生成数据或密钥生成资料为:SKEYID=prf (预共享-密钥 I Noncei I Noncer)SKEYID_d=prf (SKEYID, KEiKEr I cookie-1 I cookie-R I 0)SKEYID_a=prf (SKEYID, SKEYID_d I KEiKEr I cookie-1 I cookie-R I I)SKEYID_e=prf (SKEYID, SKEYID_a I KEiKEr I cookie-1 I cookie-R I 2)其中,函数prf为伪随机函数,以及KEiKEr为共享秘密。响应共享密钥的产生,远程访问客户端102发送其利用密钥SKEHD_e加密的识别和认证数据。在成功认证远程访问客户端102之后,网关103发送利用密钥SKEHD_e加密的私有网络105的识别和认证数据。私有网络105的成功认证标志着第I阶段交换结束,且通信主机随后可开始第2阶段交换以设置单向IPsec SA。第2阶段或快速模式消息交换可由通信主机中的任一个发起。在第2阶段消息交换由远程访问客户端102发起的情况下,远程访问客户端102发送第一消息,该第一消息包括标头、第一散列(Hash1XSA建议、发起方随机数(Nonce2i)、发起方密钥(KE2i)和识别数据(IDui, IDur)0第一消息中的识别数据和发起方密钥是可选的;识别数据在快速模式下由发起方用于指示快速模式协商是代表通信端的代理协商,IDui0在识别数据和发起方密钥包括在第一消息中的情况下,随后响应主机必须发送相应的响应方值(即IDuiUDur和KE2J以继续协商。发起主机使用在第I阶段消息交换期间产生的秘密共享密钥SKEYID_e来加密除标头之外的消息的全部内容。作为私有网络105的实际存在点的网关103通过将第二消息发送到远程访问客户端102来响应,第二消息包括第二标头、第二散列(Hash2)、SA选择、响应方随机数(NonCe&)、响应方密钥(KE&)和识别数据(IDu1、IDur)0如上所讨论,除第二标头之外,消息内容利用秘密共享密钥SKEHD_e来加密。响应接收第二消息,远程访问客户端102发送第三消息,该第三消息包括第三标头和利用秘密共享密钥SKEHD_e加密的第三散列(Hash3),其标志着第2阶段交换结束。通信主机如下产生第一散列、第二散列和第三散列:
Hash1=Prf (SKEYID_a,消息-1D I SA I Nonce2i I [KE2i] I [IDui I IDur])Hash2=prf (SKEYID_a,消息-1D I Nonce2i I SA I Nonce2r I [KE2J I [IDui IIDurDHash3=prf (SKEYID_a,消息-1D I Nonce2i I Nonce2r)若识别数据和密钥数据存在于第一消息和第二消息中,则识别数据([IDui IIDur])和密钥数据(KE21、KE2r)仅用在散列计算中。第一散列、第二散列和第三散列由通信主机用于认证相应的第一消息、第二消息和第三消息。在设置中,诸如在通信主机参与第I阶段和第2阶段消息交换以建立安全IPsecVPN通信信道的情况下,通信主机为单向SA中的每一个计算通信密钥或KEYMAT。KEYMAT如下计算:KEYMAT=prf (SKEYID_d, [KE2iKE2J I 协议 I SPI I Nonce2i I Nonce2r)其中,KE2iKE2,为共享秘密。若在第2阶段消息交换期间发送密钥,则所述密钥KE2i和KE2,被用在散列计算中。KEYMAT中的协议是由响应通信主机从由发起通信主机提供的建议列表选择的安全性协议。SPI是安全性参数索引。由于每个发起方和响应方选择其自己的有关安全性协议的SPI,所以SPI使给定KEYMAT成为单向。安装于用户终端上的VPN客户端软件易于在用户终端和给定私有网络之间建立VPN连接。一些平台(诸如Windows 和iPhone )具有内置未配置VPN客户端软件,该客户端软件可利用给定私有网络的配置属性来配置。如果可用,用户也可获取关于给定平台的第三方未配置VPN客户端,并利用给定私有网络的连接属性来配置第三方未配置VPN客户端。给定私有网络也可将VPN客户端提供给利用给定私有网络的配置属性预先配置的用户。然而,一些平台(诸如iPhone )不允许用户安装第三方未配置VPN客户端或预配置VPN客户端,因此使用户除了使用内置VPN客户端之外别无选择。VPN实施需要根据给定私有网络的配置属性来专门配置的给定VPN客户端软件,从而能与给定私有网络建立VPN连接。转到图2,除上述常规组件之外,当根据本发明实施方式配置时,通信网络101包括服务器,下文中称为全局服务器201,该全局服务器201用作私有网络105到远程访问客户端102的存在点。全局服务器201代表私有网络105参与与远程访问客户端102的IKE第I阶段消息交换,且认证远程访问客户端102。在远程访问客户端102被成功认证的情况下,全局服务器201将请求传送到私有网络105,私有网络105随后确定与远程访问客户端105的安全通信的参数。实际上,全局服务器201代表私有网络105认证入站通信请求,以及私有网络105确定用于每一个认证请求的安全通信的参数。因此,全局服务器201易于在远程访问客户端102与私有网络105之间建立安全通信信道或加密通信路径。在设置中,诸如在用户可获取预配置VPN客户端的情况下,用户可将客户端软件安装于它们的远程访问客户端102上,以能经由全局服务器201与私有网络105通信。也可单独使VPN客户端软件和一组配置属性对用户可用。在无限制情况下,可在便携式数据携带介质(诸如光盘)上经由互联网以及经由专门的应用程序商店(诸如Apple Appstore)为用户提供可用的预配置VPN客户端软件、未配置VPN客户端软件和用于VPN客户端软件的配置设定。
在经由私有网络105内的配置服务器202为用户提供可用的配置设定的设置中,用户使用无客户端VPN通信会话(诸如HTTPS (SSL/TLS上的HTTP))来获取配置设定。可直接进行远程访问客户端102与配置服务器202之间的通信会话,而无需通过全局服务器201。在替代性设置中,诸如在用户不知道配置服务器202的位置的情况下,用户可经由全局服务器201与配置服务器202建立VPN通信会话。全局服务器201在该设置中用作流量重定向器,且不涉及通信密钥的建立。远程访问客户端102可被配置为将VPN连接建立请求发送到全局服务器201或私有网络105。在设置中,诸如在远程访问客户端102被配置为与私有网络105直接通信的情况下,路由装置被配置为将VPN连接建立请求从远程访问客户端102路由到全局服务器201。尽管IPsec协议族提供广泛的特征范围,但许多厂商已开发了他们自己的IPsec协议族的专有实施。专有实施能使厂商提供高度定制的解决方案以及扩展IPsec协议族的方式,例如,IPsec协议族限制由相同实体执行的认证和IKE第2阶段操作。这在某些设置中可能不期望,诸如在未在私有网络105中的网关认证远程访问客户端102和单独装置的情况下,即,私有网络105内的数据服务器104与远程访问客户端102建立VPN数据通信会话。此外,专有平台之间的互操作性的缺乏带来了严重问题,例如,访问客户端102必须安装一系列专有软件客户端以与一系列私有网络通信。此外,限制平台(诸如iPhone )限制软件客户端在平台上的安装。因此,限制平台和专有服务器软件的组合导致给定访问客户端102无法与私有网络105通信。全局服务器201被配置为克服VPN网络的这些互操作性问题。具体地,全局服务器201被设置为授权给定远程访问客户端102与私有网络105建立安全VPN通信会话,且随后易于在远程访问客户端102与私有网络105之间建立安全VPN通信会话。如上所讨论,可通过用作代表通信实体的代理实体来进行IKE协议的第2阶段消息交换。然而,在IKE协议的第I阶段消息交换期间没有这种规定可用于通信主机。本文所述实施方式在第I阶段消息交换期间提供代理协商实体。转到图3,更详细地描述了全局服务器201的设置。全局服务器201包括以下的组合:包括标准操作系统组件的处理组件、存储器、处理器、输入/输出接口和永久存储器。此外,全局服务器201包括常规VPN设置组件,诸如隧道代理组件,所述VPN设置组件将VPN设置处理能力提供给全局服务器201。隧道代理组件响应接收VPN连接发起消息,代理一组属性,VPN通信会话基于该属性来建立。以此方式,隧道代理组件有助于在通信主机102、105之间建立动态连接协定。在无限制情况下,通信主机102、105之间的协定包括VPN通信会话类型(诸如IPsec)和协议转换协定(诸如IPv4协议数据包中隧穿(tunnel)的IPv6协议数据包)。除IPsec协议族之外,隧道代理组件也被设置为使用隧道建立协议(TSP)或隧道信息控制(TIC)协议来通信。此外,全局服务器201包括VPN处理软件组件301,该VPN处理软件组件301被设置为在远程访问客户端102与私有网络105之间建立初始SA。在设置中,诸如在通信主机102、105将在初始SA建立期间建立的共享密钥用于任何进一步通信的情况下,通信主机102、105使用初始SA密钥来加密待传送数据,并经由全局服务器201将它们发送到接收通信主机。在该设置中,在通信主机102、105之间传送的安全数据可通过全局服务器201来访问,且若全局服务器201陷入危险,则数据有危险。在替代性设置中,诸如在通信主机102、105在初始SA建立之后计算用于加密数据的其他密钥的情况下,通信主机102、105之间的通信无法访问全局服务器201。在该设置中,全局服务器201仅将任何通信中继到相应的接收方。VPN软件处理组件301为发起终端(在本实施方式中为远程访问客户端102)提供对由终止终端或网关103经由通信网络101提供的服务的认证访问。全局服务器201能针对由终止终端或私有网络105提供的服务来识别和认证发起终端,终止终端属于私有网络105。在发起终端102被全局服务器201成功认证的情况下,为发起终端102提供对由终止终端105提供的服务的访问。VPN软件处理组件301包括通信模块,其用于接收和处理从发起终端102接收到的密钥交换发起消息。密钥交换发起消息由发起终端102发送,以与终止终端建立加密通信信道。响应接收密钥交换发起消息,通信模块针对所接收的密钥交换发起消息执行加密通信建立处理。加密通信建立处理包括认证发起终端102。在发起终端102被成功认证的情况下,VPN软件处理组件301将与所接收的密钥交换发起消息相对应的密钥生成数据发送到终止终端。密钥生成数据、密钥数据或密钥生成资料由VPN软件处理组件301基于与发起终端相关联的数据来识别。图4示出了在远程访问客户端102与私有网络105之间建立安全VPN连接的设置。可以看出,发送到私有网络105的任何通信消息均由防火墙106筛选,且若通信消息满足一组预定条件,则防火墙106将通信发送到私有网络105。在在远程访问客户端102与全局服务器201之间已成功协商初始SA的情况下,私有网络105使用初始SA来与远程访问客户端102协商其他SA。在初始SA协商期间,全局服务器201用作私有网络105到远程访问客户端102的存在点。实际上,全局服务器201用作用于私有网络105的第I阶段IKE消息交换的代理协商方。图5示出了由在处理加密通信信道发起请求或密钥交换发起请求中涉及的实体执行的处理。当发起终端(在本实施方式中为远程访问客户端102)发送加密通信信道发起请求(步骤501)时,加密通信信道建立处理开始。本领域技术人员应理解,加密通信信道发起请求可由远程访问客户端102发送到私有网络105的实际存在点或全局服务器201。加密通信信道发起请求的目的地由远程访问客户端102基于远程访问客户端102上的连接模块的配置设定来确定,所述连接模块参与建立对由私有网络105提供的服务的安全访问。在加密通信信道发起请求被发送到私有网络105的实际存在点的设置中,消息重定向意味着诸如由通信网络101使用路由器来将加密通信信道发起请求重定向到全局服务器201。响应接收加密通信信道发起请求,VPN处理软件组件301发起加密通信建立处理以能够认证远程访问客户端102 (步骤502)。在加密通信信道发起请求包括与远程访问客户端102有关的认证数据的设置中,VPN处理软件组件301使用所述认证数据来认证远程访问客户端102。在另一设置中,诸如在加密通信信道发起请求不包括与远程访问客户端102有关的认证数据的情况下,VPN处理软件组件301发起与远程访问客户端102的消息交换,以获取与远程访问客户端102有关的认证数据。在VPN处理软件组件301能够获取与远程访问客户端102有关的认证数据的情况下,在步骤503处VPN处理软件组件301验证所述认证数据,以认证与加密通信信道发起请求相关联的远程访问客户端102。在认证未成功的情况下,在步骤504处VPN处理软件组件301拒绝加密的通信信道发起请求。VPN处理软件组件301也可产生说明拒绝加密的通信信道发起请求的原因的错误或信息消息,并将所产生的错误或信息消息发送到远程访问客户端102。VPN处理软件组件301可维护与入站加密通信信道发起请求中的每一个的处理结果有关的日志:VPN处理软件组件301添加有关与拒绝的加密通信信道发起消息相关联的远程访问客户端102的信息。VPN处理软件组件301被设置为通过监测识别给定远程访问客户端102的先前加密通信信道发起请求的日志信息来产生远程访问客户端102的黑名单。这随后能使VPN处理软件组件301基于识别先前拒绝的加密通信信道发起请求的日志信息来拒绝来自给定远程访问客户端102的入站加密通信信道发起请求。在另一设置中,诸如在VPN处理软件组件301被设置为产生密钥生成数据以认证给定远程访问客户端102的情况下,VPN处理软件组件301基于加密通信信道发起请求以及形成在VPN处理软件组件301与远程访问客户端102之间的消息交换的一部分的任何其他消息来产生密钥生成数据。在步骤504处,在VPN处理软件组件301能成功认证与给定加密通信信道发起消息相关联的给定远程访问客户端102的情况下,VPN处理软件组件301将所产生的密钥生成数据发送到私有网络105的实际存在点,诸如网关103。在VPN处理软件组件301不产生与加密通信信道发起请求消息有关的密钥生成数据的设置中,VPN软件处理组件301基于未加密的认证信息来认证远程访问客户端102。在认证信息被加密的情况下,VPN软件处理组件301将远程访问客户端的加密认证数据发送到负责产生与在全局服务器201处接收到的加密通信信道发起请求有关的密钥生成数据的实体(未示出)。所述实体也可认证远程访问客户端102。可替代地,VPN软件处理组件301连同密钥生成实体一起认证远程访问客户端102。在步骤504处,在VPN软件处理组件301成功认证远程访问客户端的情况下,VPN软件处理组件301被配置为易于在远程访问客户端102与私有网络105之间建立安全通信信道。在全局服务器201被设置为协商代表私有网络105的密钥生成数据的设置中,远程访问客户端102和私有网络105可使用由全局服务器201协商的密钥生成数据来相互直接通信,以在没有全局服务器201的任何参与的情况下确保发送的通信消息安全。在另一设置中,诸如在全局服务器201用作代理协商方和中继节点的情况下,在远程访问客户端102与私有网络105之间经由全局服务器201建立安全通信信道。在步骤507处由私有网络105经由建立的安全通信信道发送到远程访问客户端102的通信消息被发送到全局服务器,该全局服务器随后将通信消息进一步中继到远程访问客户端102。在步骤507处加密的通信消息利用由VPN软件处理组件301提供的密钥生成数据来加密。响应接收加密通信消息,在步骤509处,远程访问客户端102为加密通信信道计算密钥生成数据。本领域技术人员应理解,在接收通信消息之前,远程访问客户端102可产生密钥生成数据。在步骤509之后,在私有网络105与远程访问客户端102之间交换的另一通信消息利用密钥生成数据来加密,从而在私有网络105与远程访问客户端102之间建立一条或多条加密通信信道,其中,密钥生成数据用作对于所建立的加密通信信道的共享密钥。本领域技术人员应理解,密钥生成数据也可被用于确保远程访问客户端102与全局服务器201之间以及全局服务器201与私有网络105之间的通信安全。本领域技术人员也应理解,私有网络105和远程访问客户端102可协商用于确保在远程访问客户端102与私有网络105之间传送的通信数据安全的其他密钥。在私有网络105与远程访问客户端102之间交换以协商任何这种其他密钥的另一通信消息利用密钥生成数据来加密。由于其他密钥在通信主机(即,远程访问客户端102与私有网络105)之间直接协商,且全局服务器201仅用作中继节点,所以所述其他密钥无法访问全局服务器201。因此,利用另一密钥确保安全的另一通信消息由全局服务器201中继,而无需对另一通信消息的内容的任何访问。因此,在全局服务器201陷入危险的情况下,利用另一密钥确保安全的任何通信消息的内容不会陷入危险。转到图6,描述了根据IKE第I版本的密钥生成数据的协商。根据IKE第I阶段,密钥生成数据被协商为初始SA协商的建立的一部分。第I阶段IKE第I版本消息交换以从远程访问客户端102到私有网络105的存在点的第一消息作为开始。由于全局服务器201用作私有网络105的存在点,所以第一消息被路由到全局服务器201。在步骤6.1处,包括标头以及用于形成初始SA的建议列表的第一消息由远程访问客户端102发送到全局服务器201。响应接收第一消息,VPN软件处理组件301将第二消息发送到远程访问客户端102,第二消息包括标头以及来自由远程访问客户端102在第一消息中建议的SA建议列表的选择。远程访问客户端102随后产生发起方密钥(KEi)和发起方随机数(Noncei)t5在步骤6.3处,远程访问客户端102将包括标头、发起方密钥和发起方随机数的消息发送到全局服务器201。响应接收发起方密钥和发起方随机数,全局服务器201产生响应方密钥(KEJ和响应方随机数(Nonce,)。应当理解,仅发起方密钥(KEi)和响应方密钥(KE,)的公开值在通信主机(即,远程访问客户端102与全局服务器201)之间被交换。在步骤6.4处,全局服务器发送包括标头、响应方密钥和响应方随机数的消息。本领域技术人员应理解,全局服务器201可在步骤6.2与步骤6.4之间的任何阶段产生响应方密钥和响应方随机数。在远程访问客户端102与全局服务器201之间成功交换密钥和随机数的情况下,全局服务器201和远程访问客户端102产生用于确保进一步通信安全的一组密钥生成资料、密钥数据或密钥生成数据。用于产生密钥数据的计算算法取决于由远程访问客户端102和全局服务器201为了相互认证的目的而协定的认证算法。密钥数据包括一组三个共享密钥。第一密钥(SKEHD_a)被用于认证在密钥交换协议的第2阶段期间交换的消息。第二密钥(SKEnD_d)被用于推导第I阶段消息交换中的其他密钥以及在第2阶段消息交换期间产生的一组密钥。第三密钥(SKEHD_e)被用于加密在第I阶段消息交换期间的任何其他消息以及在第2阶段消息交换期间发送的消息。在认证协议是预共享密钥协议的设置中,密钥数据如下产生:SKEYID=prf (预共享-密钥 I Noncei I Noncer)
SKEYID_d=prf (SKEYID, KEiKEr I cookie-1 I cookie-R I 0)SKEYID_a=prf (SKEYID, SKEYID_d I KEiKEr I cookie-1 I cookie-R I I)SKEYID_e=prf (SKEYID, SKEYID_a I KEiKEr I cookie-1 I cookie-R I 2)其中,KEiKE,为共享秘密。本领域众所周知,由远程访问客户端102和全局服务器201两者基于发起方密钥(KEi)和响应方密钥(KEJ的至少公开值以及发起方密钥(KEi)或响应方密钥(KEJ的它们相应的私有值来独立推导出共享秘密。在成功产生密钥之后,在步骤6.6处,远程访问客户端102将包括其利用密钥SKEYID_e加密的身份(IDi)和认证数据(Authi)的消息发送到全局服务器201。所述消息还包括未加密标头。响应接收消息,全局服务器201基于认证数据来认证远程访问客户端102 (步骤 6.7)。在成功验证客户端的情况下,全局服务器201利用密钥SKEHD_e来加密私有网络105的身份(ID,)和认证数据(Authr),并将加密身份数据和加密认证数据发送到远程访问客户端102 (步骤6.8)。远程访问客户端102随后通过验证加密认证数据来认证私有网络105。私有网络105的成功认证标志着第I阶段消息交换结束。全局服务器201随后将密钥数据发送到与私有网络105相关联的VPN处理实体(步骤6.9)。在私有网络105的实际存在点是网关103的设置中,全局服务器201将密钥数据发送到网关103。本领域技术人员应理解,私有网络中的任何实体(包括网关103、服务器104或配置服务器202)可用作私有网络的实际存在点。除密钥生成数据之外,全局服务器201也可发送识别远程访问客户端102的网络地址(例如,客户端源IP地址和客户端目的地IP地址)的数据以及识别所选SA建议的数据。在第I阶段消息交换期间产生的密钥数据能使私有网络105与远程访问客户端
102协商其他SA。因此,全局服务器201用作用于私有网络105的代理存在点,且全局服务器201代表私有网络105协商初始SA。实际上,代理实体代表另一实体协商密钥交换协议。由于私有网络105仅从远程访问客户端102接收访问请求,远程访问客户端102已由全局服务器201成功认证,所以私有网络105的资源不花费在处理虚假和无效访问请求上。因此,私有网络105的处理资源(将不会花费在处理虚假和无效访问请求上)被保存。此外,全局服务器201通过将私有网络105的身份和位置仅揭示给真正的远程访问客户端102来保护私有网络105的位置详细信息。转到图7,更详细地描述了根据基于预共享秘密的认证的SA协商,所述认证是IKEvl中的客户端认证模式之一。在步骤7.1和7.2处,消息执行SA参数协商。远程访问客户端102通过将用于建立SA的建议列表发送到全局服务器201的VPN软件处理组件301来发起消息交换。VPN软件处理组件301将来自建议列表的选择传送到远程访问客户端102。在VPN软件处理组件301不支持由远程访问客户端102提出的任何建议的情况下,VPN软件处理组件301拒绝整个建议列表,并将错误消息发送到远程访问客户端102 (未示出)。在认证模式是预共享密钥的设置中,VPN软件处理组件301从建议列表中选择包括基于预共享密钥的认证的建议。在步骤7.3和步骤7.4处,远程访问客户端102与全局服务器201随后交换发起方密钥(KEiX发起方随机数(NonceiX响应方密钥(KEJ和响应方随机数(Nonce,)。响应接收响应方密钥(KE,)和响应方随机数(Nonce,),远程访问客户端102产生用于确保其他通信消息安全的密钥数据。
如上所讨论,根据IKEvl中的预共享秘密认证模式的密钥数据如下产生:SKEYID=prf (预共享-密钥 I Noncei I Noncer)SKEYID_d=prf (SKEYID, KEiKEr I cookie-1 I cookie-R I 0)SKEYID_a=prf (SKEYID, SKEYID_d I KEiKEr I cookie-1 I cookie-R I I)SKEYID_e=prf (SKEYID, SKEYID_a I KEiKEr I cookie-1 I cookie-R I 2)其中,KEiKEr为共享秘密。在基于预共享秘密的认证中,通信主机102、105基于发起方散列(Hashi)和响应方散列(Hash,)来相互认证,发起方散列(Hashi)和响应方散列(Hash,)计算如下:Hashi=Prf (SKEYID, KEi I KEr I cookie-1 I cookie-R I SA I IDi)Hashr=prf (SKEYID, KEr I KEi I cookie-R I cookiel I SA I IDr)其中,KEi和KE,是发起方密钥和响应方密钥的公开值。用于计算发起方散列和响应方散列的SA是在步骤7.1处由远程访问客户端102发送的SA有效载荷。响应成功推导出密钥数据和发起方散列,在步骤7.6处,远程访问客户端102发送包括未加密标头以及利用密钥SKEHD_e加密的发起方ID和发起方散列的消息。响应接收加密的发起方ID和加密的发起方散列,VPN软件处理组件301计算密钥数据。本领域技术人员应理解,VPN软件处理组件301可在步骤7.4与步骤7.7之间的任何阶段产生密钥数据。VPN软件处理组件301通过计算发起方散列本身且比较所产生的发起方散列与所接收的发起方散列来认证远程访问客户端102。在所计算的发起方散列与所接收的发起方散列不相等的情况下,远程访问客户端102被确定为认证已失败。VPN软件处理组件301随后拒绝对加密通信信道的请求,并将错误消息发送到远程访问客户端102。在认证成功,即所计算的发起方散列等于所接收的发起方散列的情况下,VPN软件处理组件301计算响应方散列(Hashr),并将响应方散列(Hash。连同私有网络105的身份详细信息(1 ) 一起发送到远程访问客户端102 (步骤7.8)。在VPN软件处理组件301不知道私有网络105的身份详细信息的情况下,VPN软件处理组件301从私有网络105的实际存在点(诸如服务器104或网关103)获取私有网络105的身份详细信息(ID,)。响应身份详细信息(ID,)和响应方散列(Hash,)向远程访问客户端102的成功发送,VPN软件处理组件301将密钥数据发送到私有网络105的实际存在点(步骤7.9)。远程访问客户端102在接收响应方散列之后认证私有网络105,并在认证成功的情况下,在远程访问客户端102与私有网络105之间建立加密通信会话。除密钥数据之外,VPN软件处理组件301还可将发起方密钥、响应方密钥、发起方cookie、响应方cookie、发起方ID、客户端源IP地址、客户端目的地IP地址、识别所选SA建议和SA有效载荷的数据发送到私有网络105的实际存在点,诸如服务器104或网关103。

图8描述了根据IKEvl中基于数字签名的认证的SA建立,且因此与图6和图7中的实施方式的不同之处在于,本实施方式描述认证客户端的另一替代性模式。与基于预共享秘密的认证一样,SA建立处理以在步骤8.1和步骤8.2处执行SA参数协商作为开始。除了形成初始SA参数协商的一部分的其他参数之外,远程访问客户端102和VPN软件处理组件301协定使用用于相互认证的数字签名和用于计算数字签名的算法。在建立SA参数之后,在步骤8.3和步骤8.4处,远程访问客户端102和VPN软件处理组件301交换发起方密钥(KEi)、发起方随机数(Noncei)、响应方密钥(KEr)和响应方随机数(Noncer)。响应接收响应方密钥(KEJ和响应方随机数(Nonce,),远程访问客户端102产生用于确保其他通信消息安全的密钥数据。根据IKEvl中数字签名认证模式的密钥数据如下产生:SKEYID=prf (Noncei I Noncer, KEiKEr)SKEYID_d=prf (SKEYID, KEiKEr I cookie-1 I cookie-R I 0)SKEYID_a=prf (SKEYID, SKEYID_d I KEiKEr I cookie-1 I cookie-R I I)SKEYID_e=prf (SKEYID, SKEYID_a I KEiKEr I cookie-1 I cookie-R I 2)其中,KEiKEr为共享秘密。与预共享秘密认证模式一样,远程访问客户端102和VPN软件处理组件301也产生发起方散列(Hashi)和响应方散列(Hash,)。所述散列计算如下:Hashi=Prf (SKEYID, KEi I KEr I cookie-1 I cookie-R I SA I IDi)Hashr=prf (SKEYID, KEr I KEi I cookie-R I cookiel I SA I IDr)其中,KEi和KEr为发起方密钥和响应方密钥的公开值。远程访问客户端102随后基于在初始SA参数协商期间协定的数字签名算法来产生发起方数字签名(SigiX发起方数字签名在发起方散列上计算。远程访问客户端102利用密钥SKEHD_e来加密数字签名、发起方ID和发起方证书,并将这些加密值连同未加密标头一起发送到VPN软件处理组件301。发起方证书是远程访问客户端102的公开密钥证书,且由VPN软件处理组件301用于验证发起方签名。发送证书是可选的,且在步骤8.6处证书未包括在消息中的情况下,VPN软件处理组件301从证书保留实体获取发起方证书。响应接收在步骤8.6处发送的消息,VPN软件处理组件301计算密钥数据并认证远程访问客户端102。基于数字签名来执行认证。在远程访问客户端102成功认证的情况下,VPN软件处理组件301计算响应方散列(Hash。和响应方签名(SigJ。VPN软件处理组件301还利用密钥SKEHD_e来加密响应方签名(SigJ、响应方证书(CertJ和私有网络ID(ID,),并将加密数据发送到远程访问客户端102(步骤8.8),远程访问客户端102随后基于响应方签名来认证私有网络105。VPN软件处理组件301随后将密钥数据发送到私有网络的实际存在点,诸如网关
103(步骤 8.9)。图9描述了根据IKEvl中基于公开密钥加密的认证的SA建立,并提供了客户端认证的另一模式。与基于预共享秘密的认证一样,SA建立处理以在步骤9.1和步骤9.2处执行SA参数协商作为开始。如根据图9中的实例,除形成初始SA参数协商的一部分的其他参数之外,远程访问客户端102和VPN软件处理组件301协定使用用于相互认证的公开密钥加密。一旦远程访问客户端102和VPN软件处理组件301协定了基于公开密钥加密的认证,远程访问客户端102即从证书保留实体获取包括私有网络105的公开密钥的公开密钥证书。在获取私有网络105的公开密钥证书之后,远程访问客户端102利用私有网络105的公开密钥(PKk)来加密发起方随机数(Noncei)和发起方身份(IDi)15加密数据连同未加密标头、未加密发起方密钥(KEi)和第一散列(Hash1) —起被发送到VPN软件处理组件301。第一散列是包括私有网络105的公开密钥的私有网络105的公开密钥证书的散列。第一散列是可选的,且被用于将公开密钥被用于加密发起方随机数和发起方ID的情况告知响应方。由于发起方随机数和发起方ID利用私有网络105的公开密钥来加密,所以发起方随机数和发起方ID仅可利用私有网络105的私有密钥来解密。在全局服务器201访问私有网络105的私有密钥的设置中,VPN软件处理组件301解密发起方ID和发起方随机数。在另一设置中,诸如在全局服务器201不访问私有网络105的私有密钥的情况下,在步骤9.4处,VPN软件处理组件301将第一散列、加密发起方随机数和加密发起方ID发送到私有网络105的实际存在点,诸如网关103。网关随后解密加密的发起方随机数和加密的发起方ID。在另一设置中,诸如在网关103被设置为将解密的发起方随机数和解密的发起方ID以未加密形式发送到VPN软件处理组件301的情况下,在步骤9.5处,网关将解密的发起方随机数和解密的发起方ID发送到VPN软件处理组件301。在另一设置中,诸如在网关103被设置为将解密的发起方随机数和解密的发起方ID以加密形式发送到VPN软件处理组件301的情况下,网关103利用秘密共享密钥来加密解密的发起方随机数和解密的发起方ID,并在步骤9.5处将重新加密的发起方ID和重新加密的发起方随机数发送到VPN软件处理组件301。响应接收重新加密的发起方ID和重新加密的发起方随机数,VPN软件处理组件301利用秘密共享密钥来解密重新加密的发起方ID和重新加密的发起方随机数。一旦VPN软件处理组件301访问解密的发起方ID,VPN软件处理组件301即基于发起方ID从证书保留实体获取包括远程访问客户端102的公开密钥的公开密钥证书。一旦VPN软件处理组件301获取了远程访问客户端102的公开密钥,VPN软件处理组件301即利用远程访问客户端102的公开密钥来加密私有网络ID (IDr)和响应方随机数(NonceJ。在VPN软件处理组件301不访问私有网络ID的情况下,VPN软件处理组件301从私有网络105的实际存在点(诸如网关103)获取私有网络ID。在步骤9.6处,VPN软件处理组件301将加密数据连同未加密标头和未加密响应方密钥(KEJ —起发送到远程访问客户端102。在步骤9.6处响应接收消息,远程访问客户端102解密响应方ID和响应方随机数。远程访问客户端102随后可如下计算密钥数据:SKEYID=prf (hash (Noncei I Noncer), cookie-1 I cookie-R)SKEYID_d=prf (SKEYID, KEiKEr I cookie-1 I cookie-R I 0)SKEYID_a=prf (SKEYID, SKEYID_d I KEiKEr I cookie-1 I cookie-R I I)SKEYID_e=prf (SKEYID, SKEYID_a I KEiKEr I cookie-1 I cookie-R I 2)其中,KEiKEr为共享秘密。在SKEYID计算中的散列函数是在初始SA参数协商期间协定的散列算法。与预共享秘密认证模式一样,远程访问客户端102也如下产生发起方散列(Hashi)和响应方散列(Hash1J:Hashi=Prf (SKEYID, KEi I KEr I cookie-1 I cookie-R I SA I IDi)Hashr=prf (SKEYID, KEr I KEi I cookie-R I cookie -1 I SA I IDr)其中,KEi和KEr为发起方密钥和响应方密钥的公开值。响应发起方散列的成功产生,在步骤9.8处,远程访问客户端102将发起方散列和标头发送到VPN软件处理组件301。响应接收发起方散列,VPN软件处理组件301产生密钥数据和响应方散列(Hash,)。应理解,VPN软件处理组件301可在步骤9.6与步骤9.9之间的任何阶段产生密钥数据,且在步骤9.7处,VPN软件处理组件301以与远程访问客户端102相同的方式推导出密钥数据。VPN软件处理组件301随后产生发起方散列以认证远程访问客户端102。在认证成功的情况下,VPN软件处理组件301产生响应方散列,并将响应方散列发送到远程访问客户端102(步骤9.10),响应方散列随后由远程访问客户端102用于认证私有网络105。VPN软件处理组件301也将密钥数据发送到私有网络105的实际存在点,诸如网关103 (步骤 9.11)。图10描述了根据IKEvl中基于修订版公开密钥加密的认证的SA建立,并作为客户端认证的另一模式。与基于公开密钥加密的认证方法一样,SA建立处理以在步骤10.1和步骤10.2处执行SA参数协商作为开始。除形成初始SA参数协商的一部分的其他参数之外,远程访问客户端102和VPN软件处理组件301协定将修订版公开密钥加密用于相互认证。一旦远程访问客户端102和VPN软件处理组件301协定了基于修订版公开密钥加密的认证,远程访问客户端102即从证书保留实体获取包括私有网络105的公开密钥的公开密钥证书。在获取私有网络105的公开密钥证书之后,远程访问客户端102利用私有网络105的公开密钥(PKk)来加密发起方随机数(Noncei)t5随后,远程访问客户端102如下计算发起方对称密钥:gXj=prf (Noncei, cookie-1)远程访问客户端102随后利用发起方对称密钥来加密发起方密钥(KEi)、发起方ID (IDi)和包括发起方公开密钥的发起方公开密钥证书(Certi)15远程访问客户端102随后将未加密标头连同对称密钥加密的数据和公开密钥加密的发起方随机数一起发送到VPN软件处理组件301。在全局服务器201访问私有网络105的私有密钥的设置中,VPN软件处理组件301解密发起方随机数。在另一设置中,诸如在全局服务器201不访问私有网络105的私有密钥的情况下,在步骤10.4处,VPN软件处理组件301将第一散列和加密的发起方随机数发送到私有网络105的实际存在点,诸如网关103。所述网关随后解密加密的发起方随机数。在另一设置中,诸如在网关103被设置为将解密的发起方随机数以未加密形式发送到VPN软件处理组件301的情况下,在步骤10.5处,网关将解密的发起方随机数发送到VPN软件处理组件301。在另一设置中,诸如在网关103被设置为将解密的发起方随机数以加密形式发送到VPN软件处理组件301的情况下,网关103利用秘密共享密钥来加密解密的发起方随机数,并随后在步骤10.5处,将重新加密的发起方随机数发送到VPN软件处理组件301。响应接收重新加密的发起方随机数,VPN软件处理组件301利用秘密共享密钥来解密重新加密的发起方随机数。一旦VPN软件处理组件301访问解密的发起方随机数,VPN软件处理组件301即使用与由远程访问客户端102使用的相同的计算过程来推导出发起方对称密钥。在推导出发起方对称密钥之后,VPN软件处理组件301解密加密的发起方密钥、加密的发起方ID和加密的发起方公开密钥证书。VPN软件处理组件301随后基于响应方随机数(Nonce,)来如下推导出响应方对称密钥(gxr):gxr=prf (Noncer, cookie-R)VPN软件处理组件301随后利用响应方对称密钥来加密私有网络ID (IDr)和响应方密钥(KEr),且利用远程访问客户端105的公开密钥来加密响应方随机数。在VPN软件处理组件301不访问私有网络ID的情况下,VPN软件处理组件301从私有网络105的实际存在点(诸如网关103)获取私有网络ID。在步骤10.6处,VPN软件处理组件301随后将加密数据和未加密标头发送到远程访问客户端102。响应接收加密数据,远程访问客户端102使用其私有密钥来解密响应方随机数。一旦解密了响应方随机数,远程访问客户端102使用与由VPN软件处理组件301使用的相同的计算过程来推导出响应方对称密钥。在推导出响应方对称密钥之后,远程访问客户端解密响应方ID和响应方密钥。远程访问客户端102随后如下计算密钥数据:SKEYID=prf (hash (Noncei I Noncer), cookie-1 I cookie-R)SKEYID_d=prf (SKEYID, KEiKEr I cookie-1 I cookie-R I 0)SKEYID_a=prf (SKEYID, SKEYID_d I KEiKEr I cookie-1 I cookie-R I I)SKEYID_e=prf (SKEYID, SKEYID_a I KEiKEr I cookie-1 I cookie-R I 2)其中,KEiKEr为共享秘密。SKEYID计算中的散列函数是在初始SA参数协商期间协定的散列算法。与预共享秘密认证模式一样,远程访问客户端102也如下产生发起方散列(Hashi)和响应方散列(Hash1J:Hashi=Prf (SKEYID, KEi I KEr I cookie-1 I cookie-R I SA I IDi)Hashr=prf (SKEYID, KEr I KEi I cookie-R I cookie -1 I SA I IDr)其中,KEi和KE,为发起方密钥和响应方密钥的公开值。响应发起方散列的成功产生,在步骤10.8处,远程访问客户端102将发起方散列和标头发送到VPN软件处理组件301。响应接收发起方散列,VPN软件处理组件301产生密钥数据、发起方散列(Hashi)和响应方散列(Hash,)。应理解,VPN软件处理组件301可在步骤10.6与步骤10.9之间的任何阶段产生密钥数据、发起方散列和响应方散列,且在步骤10.7处,VPN软件处理组件301以与远程访问客户端102相同的方式推导出密钥数据。VPN软件处理组件301使用发起方散列来认证远程访问客户端102。在认证成功的情况下,VPN软件处理组件301将密钥数据发送到私有网络105的实际存在点(诸如网关103)。VPN软件处理组件301也将所产生的响应方散列(Hash。发送到远程访问客户端102,响应方散列(Hash。随后由远程访问客户端102用于认证私有网络105。图11描述了根据积极模式IKEvl消息交换的初始SA建立,且因此与先前实施方式的不同之处在于,本实施方式比先前实施方式需要更少被交换的消息来建立SA。消息交换以远程访问客户端102发送第一消息作为开始(步骤11.1),第一消息包括用于在远程访问客户端102与私有网络105之间形成初始SA的建议列表。除SA建议之外,第一消息包括发起方密钥(KEJ、发起方随机数(NonceiX发起方ID (IDi)和标头。本领域技术人员应理解,第一消息的内容可利用私有网络公开密钥或响应方对称密钥来加密。由于全局服务器201用作私有网络105的存在点,所以第一消息由VPN软件处理组件301来接收。响应接收所述消息,VPN软件处理组件301推导出响应方随机数(Nonce,)和响应方密钥(KEJ,并计算密钥数据(步骤11.2)。如上所讨论,密钥数据的计算取决于在远程访问客户端102与VPN软件处理组件301之间协定的认证方法。在认证协议是预共享密钥协议的设置中,密钥数据如下产生:SKEYID=prf (预共享-密钥 I Noncei I Noncer)SKEYID_d=prf (SKEYID, KEiKEr I cookie-1 I cookie-R I 0)SKEYID_a=prf (SKEYID, SKEYID_d I KEiKEr I cookie-1 I cookie-R I I)SKEYID_e=prf (SKEYID, SKEYID_a I KEiKEr I cookie-1 I cookie-R I 2)其中,KEiKEr为共享秘密。VPN软件处理组件301随后推导出响应方认证数据。如上所讨论,认证数据取决于所协定的认证机制。例如,若所协定的认证机制是预共享秘密,则认证数据如下推导:Hashi=Prf (SKEYID, KEi I KEr I cookie-1 I cookie-R I SA I IDi)Hashr=prf (SKEYID, KEr I KEi I cookie-R I cookie-1 I SA I IDr)其中,Hashi是发起方认证数据,Hashr是响应方认证数据,以及KEi和KEr是发起方密钥和响应方密钥的公开值。响应成功推导出响应方认证数据,VPN软件处理组件301发送第二消息,该第二消息包括从由远程访问客户端102提供的建议列表、响应方密钥、响应方随机数、私有网络105的ID和响应方认证数据中选出的SA建议(步骤11.3)。在VPN软件处理组件301不访问私有网络ID的情况下,VPN软件处理组件301从私有网络105的实际存在点(诸如网关103)获取私有网络ID。响应接收第二消息,远程访问客户端102使用与由VPN软件处理组件301使用的相同过程来推导出密钥数据、发起方认证数据和响应方认证数据(步骤11.4)。远程访问客户端102随后认证私有网络105,且响应成功认证,将发起方认证数据(Authi)发送到VPN软件处理组件301 (步骤11.5)。响应接收发起方认证数据,VPN软件处理组件301认证远程访问客户端102 (步骤
11.6),且响应成功认证,将密钥数据发送到私有网络105 (步骤11.7)。转到图12,详细描述了根据IKE第2版本的初始SA建立。远程访问客户端102通过发送IKE_SA_INIT消息来发起消息交换(步骤12.1), IKE_SA_INIT消息包括标头、用于形成初始SA的建议列表、发起方密钥(KEi)和发起方随机数(Noncei)t5远程访问客户端102将IKE_SA_INIT消息发送到私有网络105的存在点。由于全局服务器201正用作私有网络105的存在点,所以IKE_SA_INIT消息由VPN软件处理组件301来接收和处理。响应接收IKE_SA_INIT消息,VPN软件处理组件301准备消息IKE_SA_INIT_RESP。IKE_SA_INIT_RESP消息包括标头、从由远程访问客户端102提供的建议列表选出的SA建议、响应方密钥、响应方随机数和证书请求(步骤12.2)。IKE_SA_INIT_RESP中的证书请求是可选的。随后,远程访问客户端102和VPN软件处理组件301如下推导出共享密钥种子(SKEYSEED):SKEYSEED=prf (Noncei I Noncer, gir)其中,#为来自密钥交换(KEi和KE,)的共享秘密,且被表示为必要时按照大端(big endian)顺序填充零以使其符合模数(modulus,系数)长度的八位字节的字符串。远程访问客户端102和VPN软件处理组件301随后如下计算七个其他秘密(步骤
12.3和步骤12.5)或密钥数据:{SK_d I SK_ai I SK_ar I SK_ei I SK_er I SK_pi I SK_pr}=prf+ (SKEYSEED,Noncei I Noncer I SAProposal I SAChoice)从函数prf+ 的产生的位顺序采用量 SK_d、SK_a1、SK_ar、SK_e1、SK_er、SK_pi 和SK_pr。密钥SK_d被用于推导出用于在该初始SA下建立的其他子SA的新密钥。密钥SK_ai和SK_ar被用作用于认证后续交换的分量消息的完整性保护算法的密钥。密钥SK_ei和SK_er被用于加密和解密任何其他消息。当产生认证数据时,使用密钥SK_pi和SK_pr。流量流的两个方向使用不同密钥:用于保护来自远程访问客户端102的消息的密钥为SK_ai和SK_ei,以及用于保护来自私有网络105的消息的密钥为SK_ar和SK_er。响应成功产生密钥数据,远程访问客户端102利用密钥SK_ei来加密数据,该数据包括远程访问客户端ID、远程访问客户端证书、对私有网络证书的请求、远程网络客户端认证数据、用于形成子SA或另一 SA的建议列表以及一组流量选择符。若在步骤12.2处,在消息IKE_SA_INIT_RESP中请求证书,则远程访问客户端证书包括在消息IKE_SA_INIT_RESP中。消息IKE_SA_INIT_RESP中的证书请求是可选的。本领域技术人员应理解,认证数据基于在远程访问客户端102与VPN软件处理组件301之间协定为所选SA建议的一部分的特定认证算法。用于形成子SA的建议列表与基于该消息交换而推导出的另一 SA有关,且该组流量选择符为建议的子SA定义流量策略。远程访问客户端102随后将包括未加密标头和加密数据的IKE_AUTH消息发送到VPN软件处理组件301 (步骤12.4)。响应接收IKE_AUTH消息,VPN软件处理组件301解密认证数据,并验证认证数据。在认证数据未被成功验证的情况下,VPN软件处理组件301拒绝对在远程访问客户端102与私有网络105之间建立SA的请求。在远程访问客户端102的认证数据被成功验证的情况下,VPN软件处理组件301将包括密钥数据、远程访问客户端ID、用于形成子SA (SA.2)的建议和一组流量选择符(TSpTSr)的消息发送到私有网络105的实际存在点(步骤12.6和步骤12.8)。在私有网络105的实际存在点是网关103的设置中,网关103响应从VPN软件处理组件301接收消息,基于建议和一组流量选择符来推导出用于子SA的密钥生成资料。用于子SA的密钥生成资料如下推导:KEYMAT=prf+ (SK_d, Noncei I Noncer)网关103也基于远程访问客户端102与VPN软件处理组件301之间协定的认证算法来推导出与私有网络105有关的认证数据。网关103随后利用密钥SK_er来加密私有网络ID、私有网络证书、私有网络认证数据、从与子SA (SAr2)有关的建议列表选出的建议以及一组子SA流量选择符(TSp TSr),并在消息IKE_AUTH_RESP中将加密数据发送到VPN软件处理组件301 (步骤12.9)。
响应接收IKE_AUTH_RESP消息,VPN软件处理组件301将消息转发到远程访问客户端102,远程访问客户端102随后基于包括的认证数据来认证私有网络105,并推导出子SA (步骤 12.10)。在私有网络105被远程访问客户端102成功认证的情况下,私有网络105和远程访问客户端105经由代理协商方(即全局服务器201)已成功建立初始SA和子SA。通信主机(S卩,远程访问客户端102和私有网络105)的成功认证以及与初始SA有关的密钥数据的产生标志着在IKE第I版本和第2版本两者中的IKE消息交换的第I阶段结束。除成功认证和密钥数据的产生之外,IKE v2也产生子SA。然而,应当理解,远程访问客户端102的认证不包括认证用户,当发起对安全连接的请求时,用户处于远程访问客户端102的控制之下。用户认证可由私有网络105内的任何实体(诸如服务器104或网关104)或外部信任实体(诸如全局服务器201)来进行。用户认证可使用合适的认证协议来执行,诸如IKE内的扩展认证(XAUTH)。XAUTH机制在题为“IKE内的扩展认证(XAUTH) (Extended Authentication within IKE (XAUTH))”的 IETF 互联网草案中被描述,将其内容结合于此供参考。在全局服务器201负责认证处于远程访问客户端102的控制下的用户的设置中,VPN软件处理组件301响应成功认证远程访问客户端102,请求用户认证凭据,诸如用户名和口令。对用户认证的请求可捎带有包括私有网络105的认证数据的消息,诸如在步骤
6.8、步骤7.8、步骤8.8、步骤9.10、步骤10.10、步骤11.3和步骤12.10处的消息,或者对用户认证凭据的请求可由VPN软件处理组件301在私有网络105认证数据的发送之后的任何阶段发送。响应接收对认证凭据的请求,远程访问客户端102获取用户认证凭据,并将所获取的用户凭据发送到VPN软件处理组件301。VPN软件处理组件301验证所接收的用户认证凭据,并将认证结果发送到远程访问客户端102,远程访问客户端102可发送确认认证结果的另一消息。在用户被成功认证的情况下,VPN软件处理组件301允许来自远程访问客户端102的用户的对安全连接的请求,并将包括认证结果的消息发送到私有网络105的实际存在点。由于这些消息在初始SA建立之后被交换,所以这些消息通过来自与初始SA有关的密钥数据的密钥SKEYDI_E、SK_er或SK_ei中的一个来加密。在另一设置中,网关103负责认证处于远程访问客户端102的控制下的用户。这现将参照图13来描述:网关103响应从VPN软件处理组件301接收密钥数据,在步骤13.1处发送对用户认证凭据的请求。用于认证用户的消息交换通过来自与初始SA有关的密钥数据的密钥SKEYDI_e、SK_er或SK_ei中的一个来加密。该请求在VPN软件处理组件301处接收,VPN软件处理组件301还将请求发送到远程访问客户端102。远程访问客户端102从用户获取用户认证凭据,并在步骤13.3处将所获取的用户凭据发送到VPN软件处理组件301。在步骤13.4处,VPN软件处理组件301将加密认证凭据中继到网关103。网关103随后验证处于远程访问客户端102的控制下的用户的认证凭据,且若成功验证,则网关103允许由远程访问客户端102的用户的安全连接请求。在步骤13.5处,网关103随后经由VPN软件处理组件301将包括认证结果的消息发送到远程访问客户端102。在步骤13.7处,远程访问客户端102确认认证结果。在远程访问客户端102的用户以及远程访问客户端102被成功认证的情况下,通信主机102、105随后发起消息交换以建立其他SA。应当理解,根据IKE第2版本,另一 SA或子SA被建立为初始SA消息交换的一部分。然而,如上述所讨论,IPSEC安全连接需要建立至少两个其他SA。因此,根据IKE第I版本和第2版本,通信主机102、105协商至少一个其他SA。为在具有动态IP地址的远程访问客户端102与私有网络105之间实施IPSecVPN,网关103上的IPSec策略将必须被动态管理。这是因为,每当给定远程访问客户端102与私有网络105建立安全连接时,给定远程访问客户端102的IP地址将改变。然而,IPSec策略的动态管理可通过向给定的所认证的远程访问客户端102提供根据私有网络105的连接设定来避免。例如,根据私有网络105的内部IP地址范围,具有IP地址“192.168.0.25”的给定远程访问客户端被提供新IP地址“150.0.0.2”。由于私有网络105的策略管理实体(诸如防火墙106)已知内部IP地址范围,所以在具有未在私有网络105的内部IP地址范围内的IP地址的给定远程访问客户端102的成功认证之后,私有网络的策略管理实体将不必动态改变。该连接设定的分配可在初始SA建立之后的任何阶段执行。在题为“ ISAKMP配置方法”的IETF互联网草案中描述的已知的模式配置消息交换可被用于根据私有网络105来推动连接设定;该消息交换可被用于为远程访问客户端102提供设定,诸如私有网络105的内部IP地址范围(上文所述)以及私有网络DNS服务器的IP地址。图14示出了用于根据IKE第I版本的另一 SA建立的消息交换。与第I阶段IKE第I版本一样,用于建立另一 SA的消息交换、第2阶段消息交换或快速模式消息交换可由通信主机102、105中的任一个发起。在由远程访问客户端102发起用于建立另一 SA的消息交换的设置中,远程访问客户端102准备第一消息,该第一消息包括用于建立另一 SA的建议列表以及发起方随机数(Nonce2i)0若期望完全正向保密(PFS),则第2阶段消息交换提供迪菲-赫尔曼密钥交换的选择,如第I阶段中。在期望PFS的情况下,第一消息还包括发起方密钥(KE2iX第2阶段消息交换可由代表通信主机的代理协商方(诸如全局服务器201)来执行。在第2阶段消息交换由代理协商方执行的情况下,第一消息还包括远程访问客户端102的身份(IDui)和/或相应的通信主机的身份(IDm)。远程访问客户端随后利用来自相应初始SA的密钥数据的密钥SKEHD_e来加密SA建议列表、发起方随机数、发起方密钥(如果包括)和远程访问客户端ID (如果包括)。第一消息还包括第一散列,第一散列如下产生:Hash1=PrfXSKEYID_a,消息-1D I SAProposal I Nonce2i I [KE2i I IDui I IDur])其中,括弧“[]”中的参数是可选的,且若它们已包括在第一消息中,则仅包括在产生中,以及KE2i包括发起方密钥和响应方密钥的公开值。远程访问客户端102还将标头附加到第一消息,并经由VPN软件处理组件301将第一消息发送到私有网络105。在网关103是私有网络105的实际存在点的设置中,在步骤14.2处,VPN软件处理组件301将第一消息路由到网关103。响应接收第一消息,网关103解密第一消息的内容,并使用第一散列来认证第一消息。在消息被成功认证的情况下,网关103利用来自相应的初始SA的密钥数据的密钥SKEHD_e来加密从第一消息中的SA建议列表选出的SA建议(SAChoice)、响应方随机数(Nonce2i)、响应方密钥(KE2,)(如果发起方密钥包括在第一消息中)以及远程访问客户端102的ID (IDui)和私有网络105的ID (IDur)(如果ID数据包括在第一消息中)。网关103将第二散列和加密数据添加到第二消息,第二散列(Hash2)如下产生:Hash2=prf( SKEYID_a,消息-1D I Nonce2i I SAChoice I Nonce2r I [KE2i I IDui IIDurD其中,KE2i包括发起方密钥和响应方密钥的公开值。网关103还将标头添加到第二消息,并在步骤14.3处经由VPN软件处理组件301将第二消息发送到远程访问客户端102。响应接收第二消息,远程访问客户端102解密第二消息的加密数据,并使用第二散列来认证第二消息。在第二消息被成功认证的情况下,远程访问客户端102如下产生第三散列(Hash3):Hash3=Prf (SKEYID_a, 0 I 消息-1D I Nonce2i I Nonce2r)远程访问客户端102将第三散列添加到第三消息,并在步骤14.5处经由VPN软件处理组件301将第三消息发送到网关103。在上述消息交换成功的情况下,通信主机102、105 (即,远程访问客户端102和网关103)产生用于确保在协商的另一 SA下发送的通信安全的密钥。用于该产生的SA的密钥为: KEYMAT=prf (SKEYID_d, [KE2iKE2J I 协议 I SPI I Nonce2i I Nonce2r)其中,SPI为安全性参数索引,以及KE2iKE^为共享秘密。在密钥KE2i和KE&在第2阶段消息交换期间未被交换的情况下,来自第I阶段消息交换的发起方密钥(KEi)和响应方密钥(KEJ被用于产生密钥KEYMAT。一旦已产生KEYMAT,即认为建立了另一 SA。图15示出了用于根据IKE第2版本建立子SA的消息交换。用于建立另一子SA的消息交换或第2阶段消息交换可由通信主机102、105中的任一个发起。在由远程访问客户端102发起第2阶段消息交换的设置中,远程访问客户端102利用来自相应的初始SA的密钥数据的密钥SK_ei来加密数据,该数据包括用于建立另一 SA的建议列表、用于形成另一新SA的指示(N)、发起方随机数(Nonce2i)和用于要创建的另一SA的一组流量选择符(TS1、TSr)o在步骤12.4和步骤12.8处,在基于通信主机102、105之间协定的算法来创建另一 SA的情况下,用于形成另一新SA的指示以及一组流量选择符不包括在加密数据中。在期望PFS的情况下,加密数据还包括发起方密钥(KE2i)。远程访问客户端102随后产生包括标头和加密数据的第一消息,并在步骤15.1处将第一消息发送到VPN软件处理组件301。在私有网络105的实际存在点是网关103的设置中,在步骤15.2处,VPN软件处理组件301将第一消息发送到网关103。响应接收第一消息,网关103解密加密的数据,并通过验证对另一新SA的请求是否已包括在消息中来确定该请求是否与另一新SA的建立有关。在第一消息与建立另一新SA的请求无关的情况下,网关103利用来自与初始SA有关的密钥数据的密钥SK_er来加密数据,该数据包括响应方随机数(NonCe&)、响应方密钥(KE&)(如果发起方密钥包括在第一消息中)和从SA建议列表选出的SA建议(SAChoice)。在第一消息与建立另一新SA的请求有关的情况下,由网关103产生的加密数据还包括一组流量选择符(TS1、TSr )。
网关103随后产生包括所产生的加密数据和标头的第二消息,并经由VPN软件处理组件301将第二消息发送到远程访问客户端102。在远程访问客户端102处第二消息的成功接收标志着第2阶段消息交换的结束。通信主机102、105随后计算用于确保在创建的另一 SA下发送的数据安全的密钥。在不期望PFS的情况下,用于创建的另一 SA的密钥如下产生:KEYMAT=prf (SK_d I Nonce2i I Nonce2r)在期望PFS的情况下,用于创建的另一 SA的密钥如下产生:KEYMAT=prf+ (SK_d, KE2iKE2r, Nonce2i I Nonce2r)其中,KE2iKE&为共享秘密。转到图16,描述了向授权用户提供对由私有网络105内的实体提供的服务的安全访问的处理的概览。如上所讨论,VPN软件处理组件301认证入站请求以从远程访问客户端102建立加密通信信道,且在远程访问客户端102被成功认证的情况下,VPN软件处理组件301将控制交付给私有网络105的实际存在点,从而易于认证访问由私有网络105提供的服务。在步骤1601处,全局服务器201接收对通过建立初始SA的方式建立加密通信信道、初始SA或安全连接的请求。初始SA将由VPN软件处理组件301和远程访问客户端102使用图6至图12中描述的处理来建立。响应接收请求,VPN软件处理组件301基于指定远程访问客户端102与私有网络105之间的关系的数据来确定入站请求对应于私有网络105,即私有网络105为终止终端。指定远程访问客户端102和私有网络105之间的关系的数据由全局服务器201存储于数据库DBl或内部存储器中。指定关系的数据另外识别私有网络的实际存在点,诸如网关103和服务器104。在至少一些实施方式中,全局服务器201还包括策略管理器302。策略管理器302被设置为例如基于某些预定条件来选择性执行加密通信建立处理。预定条件通过基于除认证参数之外的标准而选择性允许入站安全连接请求来扩展全局服务器201的能力。一种该预定条件取决于是否已针对恶意软件的存在性而扫描给定远程访问客户端102。在尚未针对恶意软件的存在性而扫描给定远程访问客户端102的情况下,拒绝源自给定远程访问客户端102的请求。策略管理器302还可确保恶意软件扫描结果与私有网络105的策略兼容。在结果不兼容的情况下,VPN软件处理组件301被设置为拒绝建立初始SA的入站请求。如上所讨论,VPN软件处理组件301维护对来自给定远程访问客户端102的安全连接请求结果的记录。策略管理器302使用识别与给定远程访问客户端102有关的结果的数据来验证基于识别源自给定远程访问客户端102的先前对安全连接的请求结果的数据是否应允许对另一安全连接的请求。例如,私有网络105可利用少于的三次建立安全连接的先前失败尝试来限制访问远程访问客户端102。在远程访问客户端102是便携式装置(诸如移动电话或膝上型计算机)的情况下,策略也可包括验证便携式装置是否不在识别丢失或被盗便携式终端的列表上。应当理解,除认证远程访问客户端102之外,策略管理器302扩展了与给定安全连接请求相关联的给定远程访问客户端102的授权。与入站安全连接请求的监督有关的策略可被调整为给定终止终端(诸如私有网络105)的策略。在远程访问客户端102满足私有网络105的策略且在步骤1602处被成功认证的情况下,VPN软件处理组件301通过与远程访问客户端102建立初始SA且产生密钥数据或密钥生成数据来允许入站请求,密钥数据或密钥生成数据包括与所接收的安全连接请求有关的一组密钥。如上所讨论,VPN软件处理组件301基于认证参数(诸如根据图6实例的Authi)来认证与入站的对安全连接的请求相关联的远程访问客户端102。从以上讨论应当理解,用于认证给定远程访问客户端102的认证参数可包括在安全连接的入站请求中,即密钥交换发起消息,或者可在由远程访问客户端102发送的另一密钥交换消息中被发送到VPN软件处理组件301。从与图6有关的讨论也应当理解,密钥数据可由VPN软件处理组件301基于包括在对加密通信信道的请求发起消息或由远程访问客户端102发送到VPN软件处理组件301的另一消息中的数据来产生。响应成功产生与加密通信信道的入站请求有关的密钥数据,VPN软件处理组件301被设置为将所产生的与给定的对加密通信信道的入站请求相关联的密钥数据传递到被识别为与加密通信信道的入站请求相关联的终止终端。在加密通信信道的入站请求被识别为与私有网络105相关联的设置中,VPN软件处理组件301识别与私有网络105相关联的实际存在点,诸如网关103或服务器104。在另一设置中,诸如在网关103被识别为与私有网络105相关联的实际存在点的情况下,VPN软件处理组件301将与所允许的加密通信信道的入站请求有关的密钥数据发送到网关103。响应接收密钥数据,网关103利用来自所接收的密钥数据的密钥来加密发送到远程访问客户端102的任何数据包。应当理解,由远程访问客户端102发送到网关103的任何数据包基于来自密钥数据的密钥来加密,且网关103使用来自所接收的密钥数据的密钥来解密从远程访问客户端102接收的加密数据包的内容。在另一设置中,诸如在网关103和远程访问客户端102需要协商的其他SA的情况下,网关103响应接收密钥数据,参与与远程访问客户端102的消息交换以建立用于保护在私有网络105与远程访问客户端102之间传送的数据的其他SA。网关103基于由VPN软件处理组件301提供的密钥数据来确保作为用于建立其他SA的消息交换的一部分而被发送到远程访问客户端102的消息安全。从与图6至图12有关的段落应当理解,远程访问客户端102在初始SA建立期间已产生密钥数据,且也基于该密钥数据来确保发送到网关103的消息安全。由于经由全局服务器201在私有网络105与远程访问客户端102之间建立了初始SA,所以基于与初始SA有关的密钥数据来确保安全的通信消息也可访问全局服务器201。因此,协商其他SA的好处在于,全局服务器201不访问为确保在该另一 SA下传送的数据安全而开发的通信密钥。此外,安全连接协议(诸如IPsec)需要至少两个单向SA来通信,因此在这种协议下对于传递数据需要另一 SA建立。在远程访问客户端102与私有网络105之间已建立安全连接的情况下,在安全连接上由远程访问客户端102发送到私有网络105的消息首先在VPN软件处理组件301处接收,VPN软件处理组件301随后将消息发送到所识别的私有网络105的实际存在点。VPN软件处理组件301也负责将源自私有网络105的另一消息路由到相应的远程访问客户端102。因此,VPN软件处理组件301接收在安全连接上发送的消息,并基于识别在给定加密通信信道与给定发起终端和给定终止终端之间的关系的数据来路由所接收的加密数据包。VPN软件处理组件301可将识别给定加密通信信道与给定发起终端和给定终止终端之间的关系的数据存储于数据库或内部存储器中。可替代地,VPN软件处理组件301可从上述ISAKMP抗堵塞cookie获得识别给定加密通信信道与给定发起终端和给定终止终端之间的关系的数据。如上所讨论,可从IKE消息的标头获得ISAKMP抗堵塞cookie。在另一实施方式中,策略管理器302被设置为基于某些预定通信条件来选择性执行所接收的加密数据包的发送。例如,若所接收的加密数据包满足预定通信条件,则在所建立的安全连接上接收到的加密数据包被发送到相应的私有网络105。在一种设置中,通信条件取决于所接收的加密数据包的完整性。策略管理器302可验证加密数据包的未加密标头的完整性,以验证给定的所接收的加密数据包是否满足基于通信条件来确定的完整性要求。通信条件对于终止终端是特定的,且被存储于全局服务器201的数据库DBl中或内部存储器中。若所接收的加密数据包满足通信条件,则VPN软件处理组件301将加密数据包发送到相应的私有网络。然而,若不满足通信条件,则所接收的加密数据包被丢弃。在至少一些实施方式中,全局服务器201还包括中间件组件303。中间件组件303被设置为根据所识别的终止终端(诸如私有网络105)的通信协议来转换所接收的加密数据包的协议。在所接收的加密数据包被确定为基于与相关联的私有网络105的通信协议不同的协议的情况下,中间件组件303被设置为使用第二通信协议来产生第二加密数据包,使得第二通信协议与所接收的加密数据包的第一通信协议不同。中间件组件303随后将第二加密数据包发送到所识别的终止终端,诸如私有网络105。若所接收的加密数据包的另一通信协议与远程访问客户端102的通信协议不同,则中间件组件303还被设置为响应从私有网络105接收加密数据包,根据远程访问客户端102的通信协议来产生另一加密数据包。若密钥交换消息的通信协议不同于与所接收的密钥交换消息相关联的所识别的终止终端的另一通信协议,则中间件组件303也被设置为产生另一密钥交换消息。中间件组件303也被设置为去除在给定数据包中与相应通信主机不兼容的任何实施特定参数。例如,若厂商在网关103中实施与远程访问客户端102的客户端软件不兼容的厂商特定IKE消息,则中间件组件303去除任何这种不一致字段,以确保由通信主机接收到的数据包与在通信主机终端处的安全连接的特定实施兼容。如上所述,VPN软件处理组件301将加密数据包路由到相应的通信主机,如由识别通信主机102、105之间的关系的数据来识别。在VPN软件处理组件301无法将数据包传递到相应的通信主机或终止终端的情况下,VPN软件处理组件301响应预定事件,可尝试重新发送加密数据包。在预定事件与来自给定的相应通信主机的指示有关的设置中,所述指示表明给定的相应通信主机能够接收所接收的加密数据包。响应暂时连接问题,诸如在移动装置上由给定的相应通信主机经历的暂时接收丢失,可产生该指示。预定事件也可与经过指定时间段有关。当远程访问客户端102是被配置为根据下一代无线通信来通信的移动通信装置时,远程访问客户端102与当前接入点相关联,使得当前接入点将远程访问客户端102的当前关联点识别为通信网络101。这种远程访问客户端102与归属代理相关联,归属代理可经由通信网络101访问且被设置为保持与远程访问客户端102有关的数据。在该设置中,VPN软件处理组件301响应从远程访问客户端102接收加密通信信道请求,基于源自归属代理的数据来认证远程访问客户端。本领域众所周知,由于当在安全连接上通信时给定移动通信装置可改变当前接入点的事实,这导致数据包无法传递,直至改变的接入点被传送到相应节点,所以移动通信装置容易在安全连接上产生连接性问题。在该情况下,VPN软件处理组件301可基于源自归属代理的数据来识别与移动通信装置相关联的当前接入点。因此,在给定移动通信装置改变接入点的情况下,VPN软件处理组件301基于源自归属代理的数据来确定改变的接入点。在远程访问客户端102是移动通信装置且给定加密数据包向远程访问客户端102的传递已失败的情况下,VPN软件处理组件301基于在归属代理处的可用性来尝试重新发送给定加密数据包,数据识别与远程访问客户端102相关联的新接入点。本文所述功能(例如,关于一个或多个附图)在一些方面可对应于在所附权利要求中类似指定的“用于…装置”功能。参照图17,全局服务器201被表示为一系列相互关联的功能模块。图17是示例性全局服务器201的功能框图。如图所示,全局服务器201可包括处理模块1705、存储模块1710、接收模块1715、发送模块1720和验证模块1725。处理模块1705在一些方面可至少对应于例如处理器和/或VPN处理软件,如本文所讨论。存储模块1710在一些方面可至少对应于例如存储器,如本文所讨论。产生的接收模块1715在一些方面可至少对应于例如处理器、接收器、收发器和/或VPN处理软件,如本文所讨论。发送模块1720在一些方面可至少对应于例如处理器、发送器、收发器和/或VPN处理软件,如本文所讨论。验证模块1725在一些方面可至少对应于例如处理器和/或VPN处理软件。图17的模块的功能可以与本文教导相一致的各种方式来实施。在一些方面,这些模块的功能可被实施为一个或多个电气组件。在一些方面,这些模块的功能可被实施为包括一个或多个处理器组件的处理系统。在一些方面,这些模块的功能可使用例如一个或多个集成电路(例如ASIC)中的至少一部分来实施。如本文所讨论,集成电路可包括处理器、软件、其他相关组件或它们的某个组合。这`些模块的功能也可以如本文教导的某个其他方式来实施。上文所述的前述实例性实施方式可以许多方式来实施,诸如用于由处理器执行的程序指令、逻辑电路、专用集成电路、固件等。例如,实施方式可被实施为一个或多个软件或固件应用程序、计算机实施的方法、存储于计算机可用介质上用于在一个或多个处理器(例如,CPU、微控制器)或无线基站中的其他计算装置上执行的程序产品。上述实施方式应被理解为本发明的说明性实例。可设想本发明的其他实施方式。例如,当本发明的实施方式已在单个网络实体上实施时,应当理解,本发明的实施方式可在通过通信网络互连的多个网络实体上实施。也应当理解,网络实体的各种组件和装置可常驻于一群单独实体上,使得该群单独实体对于外部实体表现为单个实体。应当理解,当本发明的实施方式已基于密钥交换协议来实施时,本发明的实施方式可在任何加密通信信道设置处理上实施,其中,发起终端的认证可由代理协商方执行。应当理解,与任何一种实施方式相关来描述的任何特征可单独或结合所述的其他特征来使用,且也可结合任何其他实施方式中的一个或多个特征或者任何其他实施方式的任何组合来使用。此外,在不脱离在所附权利要求中限定的本发明的范围的情况下,也可采 用上文未描述的等同物和变形例。
权利要求
1.一种用于向发起终端提供对由终止终端经由通信网络提供的服务的认证访问的服务器,所述服务器包括通信模块,所述通信模块用于接收和处理来自所述发起终端的密钥交换发起消息以建立与所述终止终端的加密通信信道,所述通信模块响应所接收的密钥交换发起消息,由此针对所述所接收的密钥交换发起消息执行加密通信建立处理,所述加密通信建立处理包括: ·1.认证所述发起终端;以及 .在所述发起终端被成功认证的情况下,将与所述所接收的密钥交换发起消息相对应的密钥生成数据发送到所述终止终端,所述密钥生成数据基于与所述发起终端相关联的数据来识别。
2.根据权利要求1所述的服务器,其中,所述认证基于从所述发起终端接收到的另一消息来执行,所述另一消息包括认证参数。
3.根据前述权利要求中任一项所述的服务器,其中,所述终止终端基于指定了给定发起终端与给定终止终端之间的关系的数据来获得。
4.根据前述权利要求中任一项所述的服务器,其中,所述密钥生成数据基于包括在所述所接收的密钥交换发起消息中的数据来获得。
5.根据权利要求1至3中任一项所述的服务器,其中,所述密钥生成数据基于包括在所述所接收的密钥交换发起消息和另一消息中的数据来获得,所述另一消息包括密钥生成数据产生参数。
6.根据前述权利要求中任一项所述的服务器,其中,所述服务器被配置为经由安全通信信道将所述密钥生成数据传送到所述终止终端。
7.根据前述权利要求中任一项所述的服务器,其中,所述服务器被配置为基于至少一个预定条件来选择性执行所述加密通信建立处理,在满足所述预定条件的情况下执行所述加密通信建立处理。
8.根据权利要求7所述的服务器,其中,所述预定条件包括验证是否已针对恶意软件的存在性而扫描所述发起终端,在所述发起终端上已发生过所述扫描的情况下满足所述预定条件。
9.根据权利要求7或8所述的服务器,其中,所述预定条件包括验证是否允许所述发起终端建立所述加密通信信道。
10.根据前述权利要求中任一项所述的服务器,其中,在所述发起终端与所述终止终端之间已建立所述加密通信信道的情况下,且响应在所述服务器处从所述发起终端接收加密数据包,所述服务器被配置为经由安全通信信道将所接收的加密数据包发送到所述终止终端。
11.根据权利要求10所述的服务器,其中,所述服务器被配置为基于至少一个预定通信条件来选择性执行所述所接收的加密数据包向所述终止终端的发送,在满足所述预定通信条件的情况下,执行所述所接收的加密数据包的所述发送。
12.根据权利要求11所述的服务器,其中,所述预定通信条件包括验证所述所接收的加密数据包的完整性。
13.根据前述权利要求中任一项所述的服务器,其中,在所述发起终端与所述终止终端之间已建立所述加密通信信道的情况下,且响应从所述发起终端接收加密数据包,所述服务器被配置为使用与所述所接收的加密数据包的通信协议不同的通信协议来产生第二加密数据包,并将所述第二加密数据包发送到所述终止终端。
14.根据前述权利要求中任一项所述的服务器,其中,在所述发起终端与所述终止终端之间已建立所述加密通信信道的情况下,且响应从所述终止终端接收加密数据包,所述服务器被配置为经由所述加密通信信道将所述所接收的加密数据包发送到所述发起终端。
15.根据前述权利要求中任一项所述的服务器,其中,在所述发起终端与所述终止终端之间已建立所述加密通信信道的情况下,且响应从所述终止终端接收加密数据包,所述服务器被配置为使用与所述所接收的加密数据包的通信协议不同的通信协议来产生另一加密数据包,并将所述第二加密数据包发送到所述发起终端。
16.根据前述权利要求中任一项所述的服务器,其中,响应接收所述密钥交换发起消息,所述服务器被配置为使用与所述所接收的密钥交换发起消息的通信协议不同的通信协议来产生第二密钥交换发起消息,并将所述第二密钥交换发起消息发送到所述终止终端。
17.根据前述权利要求中任一项所述的服务器,其中,所述服务器被配置为基于源自归属代理的数据来认证所述发起终端,所述归属代理可访问所述通信网络,且被配置为保持与所述发起终端有关的数据。
18.根据权利要求17所述的服务器,其中,在所述发起终端改变与所述通信网络的当前接入点的情况下,所述服务器基于源自所述归属代理的所述数据来确定所述发起终端的改变后的接入点。
19.根据权利要求14所述的服务器,其中,在所述所接收的加密数据包向所述发起终端的传递失败的情况下,所述服务器被配置为响应预定事件,将所述所接收的加密数据包重新发送到所述发起终端。
20.根据权利要求19所述的服务器,其中,所述预定事件包括来自所述发起终端的指示,所述指示表明所述发起终端能够接收所述加密数据包。
21.根据权利要求18和19所述的服务器,其中,所述预定事件包括在所述归属代理处的更新数据,所述数据识别与所述发起终端相关联的新接入点。
22.根据权利要求19至21中任一项所述的服务器,其中,所述预定事件包括经过指定的时间段。
23.一种用于在通信网络中的发起终端与终止终端之间建立加密通信信道的方法,所述方法包括由所述通信网络中的服务器执行处理,所述处理包括: 1.从所述发起终端接收包括认证参数的密钥交换消息; i1.验证所述认证参数;以及 ii1.响应所述认证参数的验证,将与密钥交换发起消息相对应的密钥生成数据发送到所述终止终端,所述密钥生成数据由所述终止终端用于加密发送到所述发起终端的另一数据包。
24.根据权利要求23所述的方法,其中,所述密钥交换消息是密钥交换发起消息。
25.根据权利要求23或24所述的方法,包括基于指定了给定发起终端与给定终止终端之间的关系的数据来获得所述终止终端。
26.根据权利要求23至25中任一项所述的方法,包括基于源自所述密钥交换消息的数据来获得所述密钥生成数据。
27.根据权利要求24所述的方法,包括基于源自所述密钥交换发起消息的数据来获得所述密钥生成数据。
28.根据权利要求23至27中任一项所述的方法,包括经由安全通信信道将所述密钥生成数据发送到所述终止终端。
29.根据权利要求23至28中任一项所述的方法,包括基于至少一个预定条件来选择性执行用于建立加密通信信道的方法,在满足所述预定条件的情况下,执行加密通信建立方法。
30.根据权利要求29所述的方法,所述预定条件包括验证是否已针对恶意软件的存在性而扫描所述发起终端,在所述发起终端上已发生过所述扫描的情况下满足所述预定条件。
31.根据权利要求29或30所述的方法,所述预定条件包括验证是否允许所述发起终端建立所述加密通信信道。
32.根据权利要求23至31中任一项所述的方法,在所述发起终端与所述终止终端之间已建立所述加密通信信道的情况下,且响应在所述服务器处从所述发起终端接收加密数据包,所述方法包括经由安全通信信道将所接收的加密数据包发送到所述终止终端。
33.根据权利要求32所述的方法,包括基于至少一个预定通信条件来选择性执行所述所接收的加密数据包向所述终止终端的发送,在满足所述预定通信条件的情况下,执行所述所接收的加密数据包的所述发送。
34.根据权利要求33所述的方法,所述预定通信条件包括验证所述所接收的加密数据包的完整性。
35.根据权利要求23至34中任一项所述的方法,在所述发起终端与所述终止终端之间已建立所述加密通信 信道的情况下,且响应在所述服务器处从所述终止终端接收加密数据包,所述方法包括使用与所述所接收的加密数据包的通信协议不同的通信协议来产生第二加密数据包,并将所述第二加密数据包发送到所述终止终端。
36.根据权利要求23至35中任一项所述的方法,在所述发起终端与所述终止终端之间已建立所述加密通信信道的情况下,且响应在所述服务器处从所述终止终端接收加密数据包,所述方法包括经由所述加密通信信道将所述所接收的加密数据包发送到所述发起终端。
37.根据权利要求23至36中任一项所述的方法,在所述发起终端与所述终止终端之间已建立所述加密通信信道的情况下,且响应在所述服务器处从所述终止终端接收加密数据包,所述方法包括使用与所述所接收的加密数据包的通信协议不同的通信协议来产生另一加密数据包,并将所述第二加密数据包发送到所述发起终端。
38.根据权利要求23至37中任一项所述的方法,响应在所述服务器处接收所述密钥交换消息,所述方法包括使用与所接收的密钥交换消息的通信协议不同的通信协议来产生第二密钥交换消息,并将所述第二密钥交换消息发送到所述终止终端。
39.根据权利要求23至38中任一项所述的方法,包括基于源自归属代理的数据来认证所述发起终端,所述归属代理可访问所述通信网络,且被配置为保持与所述发起终端有关的数据。
40.根据权利要求39所述的方法,在所述发起终端改变与所述通信网络的当前接入点的情况下,所述方法包括基于源自所述归属代理的所述数据来确定所述发起终端的改变后的接入点。
41.根据权利要求36所述的方法,在所述所接收的加密数据包向所述发起终端的传递失败的情况下,所述方法包括响应预定事件,将所述所接收的加密数据包重新发送到所述发起终端。
42.根据权利要求41所述的方法,所述预定事件包括来自所述发起终端的指示,所述指示表明所述发起终端能够接收所述加密数据包。
43.根据权利要求40和41所述的方法,所述预定事件包括在所述归属代理处的更新数据,所述数据识别与所述发起终端相关联的新接入点。
44.根据权利要求41至43中任一项所述的方法,所述预定事件包括经过指定的时间段。
45.一种计算机程序或一套计算机程序,包括一组指令,所述指令被配置为使计算机或一套计算机执行根据权利要求23所 述的方法。
全文摘要
本发明公开了一种用于向发起终端(102)提供与由终止终端(104)经由通信网络提供的服务有关的认证访问的系统和方法。在一个方面,全局服务器(201)包括通信模块,其接收和处理来自发起终端的密钥交换发起消息(501)以与终止终端建立加密通信信道。通信模块响应所接收的密钥交换发起消息,针对所接收的密钥交换发起消息执行加密通信建立处理。该加密通信建立处理包括认证发起终端(503);以及在发起终端被成功认证的情况下(504),将与所接收的密钥交换发起消息相对应的密钥生成数据发送到终止终端(505)。密钥生成数据基于与发起终端相关联的数据来识别。本发明可应用于IKE/Ipsec VPN连接。
文档编号H04L29/06GK103155512SQ201180038108
公开日2013年6月12日 申请日期2011年6月17日 优先权日2010年6月1日
发明者尼克·翁, 尼蒂什·约翰, 朱利安·孙 申请人:良好科技公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1