为漫游用户建立虚拟专用网络的利记博彩app

文档序号:6654780阅读:161来源:国知局
专利名称:为漫游用户建立虚拟专用网络的利记博彩app
技术领域
本发明涉及网络技术。更具体而言,本发明涉及为其IP地址预先并不被所知的用户(本领域中所知的,在这里称为“漫游用户(roadwarrior)”)建立虚拟专用网络(“VPN”)隧道。
背景技术
用户越来越多地希望经由因特网安全地访问专用网络。专用网络例如可以是家庭网络、企业或其他实体的专用网络等等。用于实现这一目的的一种常用的方法是建立VPN隧道,VPN隧道在用户看来是像是用户和专用网络之间的点对点连接,但是其并不允许未经授权的第三方“侦听”VPN隧道上的通信。在本领域中已知有若干种方法和协议来设立VPN隧道。一种公知的协议被称为因特网协议安全性(“IPSec”)。
下面参考图1描述一种用于建立已知IP地址之间的VPN隧道的方法的概述。这里,专用网络101包括用户PC 105。在本示例中,用户想要建立PC 105和专用网络121内的服务器125之间的VPN隧道。
安全网关110和120分别控制因特网115和专用网络101、121之间的通信。因此,安全网关110和120为专用网络101和121提供了防火墙和网络地址翻译功能。而且,安全网关110和120会协商期望的VPN隧道的参数,例如认证和加密的类型。安全网关110将会检测去往VPN隧道的分组(例如,由于目的地是专用网络121内的服务器125的地址),对分组加密,并以指示安全网关110和120是IP源和目的地的头部对其进行封装。安全网关120接收分组,剥离封装并对分组内容进行解密。然后,安全网关120读取目的地地址,并将分组转发到服务器125。
建立专用网络和漫游用户之间的VPN隧道是更有问题的,这主要是因为漫游用户的IP地址并不预先所知。某些方法通过利用数字证书进行认证解决了该问题。数字证书是单向散列,其是一种仅对漫游用户的PC所知的信息进行编码的方式。该散列随后被著名的认证机构“签名”,所述认证机构例如是由VeriSignTM控制的第三方认证服务器。另一方面,认证机构的公共密钥被用来查看内容并确定分组是否包括经授权的IP地址。
使用数字证书是一种有效的、但是比较烦琐的建立专用网络和漫游用户之间的VPN隧道的方法。数字证书需要一定量的底层结构,包括涉及第三方认证机构。涉及到第三方认证机构的复杂性和代价使得对于例如形成到家庭网络的VPN隧道来说利用数字证书不是最优的情形。
其他方法使得任何IP地址能够利用尤其广泛共享的机密建立VPN隧道(例如IPSec隧道)。然而,已经知道,这种广泛共享的机密可以容易地被未经授权者发现并使用。这些“共享机密”被所涉及的每个人共享,并且对于每个客户端来说不是分离的机密。
因此,希望实现用于形成漫游用户和专用网络之间的VPN隧道的改进方法,尤其是当专用网络是家庭网络时。

发明内容
本发明提供了用于为漫游用户建立VPN隧道的方法和设备。漫游用户首先发起与安全网关的安全认证会话。在某些这种实现方式中,漫游用户提供用户名/口令对,安全网关将该用户名/口令对与已被授权发起VPN隧道的用户名的数据库相比较。在认证了漫游用户后,安全网关随后确定漫游用户的IP地址,并将被认证用户和分配给漫游用户的共享机密相关。如果漫游用户使用了正确的共享机密来请求建立VPN隧道,则安全网关将会建立VPN隧道。
本发明的某些实现方式提供了一种建立虚拟专用网络隧道的方法。该方法包括以下步骤从其IP地址预先并不被所知的用户接收与安全网关形成加密隧道的第一请求;形成加密隧道;认证用户;确定用户的IP地址;建立IP地址和授权给用户的第一共享机密之间的对应关系;从用户接收形成虚拟专用网络隧道的第二请求,该请求包括第二共享机密;确定第一共享机密是否与第二共享机密相匹配;以及当第一共享机密与第二共享机密相匹配时形成虚拟专用网络隧道。
第一请求可以是形成基于安全套接字层的超文本传输协议会话的请求。认证步骤可以包括接收并核实来自用户的用户名/口令对。第二请求可以是形成IPSec隧道的请求。建立步骤可以包括将由用户提供的用户名和口令与用户名、口令和共享机密的数据库相比较。
第二请求可以包括基于第二共享机密的散列化函数。确定第一共享机密是否与第二共享机密相匹配的步骤可以包括尝试对第二请求的至少一部分解密。建立步骤可以包括在IPSec表中输入IP地址和第一共享机密。该条目可以是在发生预定事件(如经过预定时间)后删除的临时条目。虚拟专用网络隧道优选地在临时条目被删除时拆掉。
本发明的某些实施例提供了一种包含在机器可读介质中的计算机程序。该计算机程序包括用于控制安全网关执行以下步骤的指令从其IP地址预先并不被所知的用户接收与安全网关形成加密隧道的第一请求;形成加密隧道;认证用户;确定用户的IP地址;建立IP地址和授权给用户的第一共享机密之间的对应关系;从用户接收形成虚拟专用网络隧道的第二请求,该请求包括第二共享机密;确定第一共享机密是否与第二共享机密匹配;以及第一共享机密与第二共享机密匹配时形成虚拟专用网络隧道。
第一请求可以是形成基于安全套接字层的超文本传输协议会话的请求。认证步骤可以包括接收并核实来自用户的用户名/口令对。第二请求可以是形成IPSec隧道的请求。建立步骤可以包括将由用户提供的用户名和口令与用户名、口令和共享机密的数据库相比较。第二请求可以包括基于第二共享机密的散列化函数。确定第一共享机密是否与第二共享机密相匹配的步骤可以包括尝试对第二请求的至少一部分解密。
本发明的替换实施例提供了一种安全网关。该安全网关包括配置为与因特网通信的第一端口;配置为与专用网络通信的第二端口;以及一个或多个处理器。这一个或多个处理器配置为执行以下操作经由第一端口从其IP地址预先并不被所知的用户接收与安全网关形成加密隧道的第一请求;形成加密隧道;认证用户;确定用户的IP地址;建立IP地址和授权给用户的第一共享机密之间的对应关系;从用户接收形成虚拟专用网络隧道的第二请求,该请求包括第二共享机密;确定第一共享机密是否与第二共享机密相匹配;以及当第一共享机密与第二共享机密相匹配时形成虚拟专用网络隧道。
本发明的其他实现方式提供了建立虚拟专用网络隧道的方法。该方法包括以下步骤从其IP地址预先并不被所知的用户接收与安全网关形成加密隧道的第一请求;形成加密隧道;认证用户;确定用户的IP地址;建立IP地址和数字证书的对象之间的对应关系;从用户接收形成虚拟专用网络隧道的第二请求,该请求包括数字证书;确定数字证书的对象是所期望的对象;以及当数字证书的对象是所期望的对象时形成虚拟专用网络隧道。


图1是示出由因特网连接的两个专用网络的网络图。
图2A是指示用于实现本发明的一种环境的网络图。
图2B是概述根据本发明某些方面的方法的流程图。
图3是示出本发明某些方面所用的数据库的内容的表。
图4是示出本发明某些方面所用的数据库的内容的表。
图5是概述根据本发明某些方面的方法的流程图。
图6示出了可配置来实现本发明某些方面的网络设备的简化版本。
具体实施例方式
在下面的描述中,给出了大量具体细节以提供对本发明的完全理解。但是,本领域技术人员很清楚,没有这些具体细节中的某些或全部也可以实施本发明。另外,公知的过程步骤没有详细描述,以避免淡化本发明。
图2A是指示用于实现本发明的一种环境的网络图。这里,漫游用户252正操作设备250,设备250在本示例中是笔记本计算机。设备250经由因特网255与安全网关260通信。漫游用户252希望在设备250和专用网络265的服务器270之间建立VPN隧道。
图2B是提供了本发明某些实现方式的高层描述的流程图。方法200的步骤从安全网关的角度加以描述。在步骤205中,安全网关经由因特网接收来自要认证的漫游用户(例如,来自由图2A的漫游用户252操作的设备250)的请求,以在漫游用户和安全网关(例如,图2的安全网关260)之间形成加密隧道。
在本示例中,安全网关在步骤205中接收发起HTTPS(基于安全套接字层的超文本传输协议,或者基于SSL的HTTP)会话的请求,并且在步骤210中根据https协议形成加密隧道。如本领域技术人员所知的,HTTPS是一种由NescapeTM开发的并且内置到Netscape的浏览器中的协议。HTTPS实质上被内置到每一种现代的浏览器中,并且是经由因特网进行的所有安全金融事务的基础。
HTTPS对用户页面请求和返回到用户的页面进行加密和解密。HTTPS使用Netscape的安全套接字层(SSL)作为其HTTP应用层下的子层。请求被负责处理https请求的守护程序(daemon)处理,守护程序例如可以是HTTP守护程序、HTTPS守护程序或者两者的组合。本领域技术人员将意识到,存在各种其他的认证方法,如由Radius、CRYPTOCardTM、RSATM的SecurID和Secure ComputingTM的SafeWord提供的方法。这些方法一般要求安装并维护附加的硬件和专用软件。
在步骤215中,漫游用户被认证。加密隧道被用来根据本领域技术人员已知的方法发送来自漫游用户的认证信息(例如,用户名/口令对)。尽管图2B暗示漫游用户总是会被成功认证,但是应当理解,如果漫游用户没有向安全网关提供正确的认证信息的话,则情况就不是这样。例如,漫游用户可能被给予预定次数的尝试以在安全网关拒绝请求前提供该信息。
在步骤220中,安全网关确定漫游用户的IP地址。在某些实现方式中,安全网关通过运行JavaTM小应用程序来执行步骤220。然而,也可以使用其他浏览器脚本方法,如来自微软的ActiveX或C#。这也可以通过简单地检查HTTPS请求分组的源地址而实现在不允许NAT地址翻译的实现方式中。用户激活的设备250上的程序可以查询其自身的IP地址,并将该信息以加密或不加密格式发送到安全网关260。
安全网关随后建立在步骤220中确定的IP地址和与漫游用户相关联的共享机密之间的对应关系。该过程的示例将参考图3和4描述。图3是示出在可由安全网关访问的数据库中认证信息可以如何与共享机密相关联的表。数据库中的信息是提前提供的,即在漫游用户发起图2中所示的处理之前提供的。在该示例中,表300包括用户名字段305、口令字段310和共享机密字段315。参考行320,漫游用户JoeB具有口令“Kibble”和关联的共享机密325。本领域技术人员将认识到,共享机密325可以是数字、字母等的任意串。
通过参考图3中所示的数据库,安全网关可以建立在215中确定的用户名和适当的共享机密325(在本示例中是JoeB的被授权共享机密)之间的对应关系。另外,安全网关可以建立在215中确定的用户名和在220中建立的IP地址之间的对应关系。利用以上两种对应关系,安全网关可以转而建立共享机密325和IP地址220之间的对应关系。该对应关系由图4所示的表示出,图4所示的表包括IP地址字段405和共享机密字段410。JoeB的IP地址415与授权给他使用的共享机密325相关联。如本领域技术人员将会意识到的,图3和4可以是同一数据结构的一部分。在图4中示意性地示出的数据库在VPN提供之前不需要存在。在一种实现方式中,将特定IP地址概念性地链接到特定共享机密的数据库是IPSec软件的配置文件。该实现方式必须具有用于IPSec软件的独立数据库和用于“粘合”软件的另一数据库。
再次参考图2B,方法200(从安全网关的视角看)的下一步(230)是接收形成漫游用户和在由安全网关控制的专用网络(例如,图2A中所示的专用网络265)内的设备之间的VPN隧道的请求。该请求包括漫游用户(或者至少设备250)所知的共享机密,但是共享机密不需要以口令形式发送。本领域技术人员将意识到,共享机密可以以各种方式结合在内。在优选实施例中,共享机密被用作输入以形成请求的至少一部分,例如用作散列化操作的结果。然而,对于基于IPSec的实现方式,共享机密必须以标准方式发送/解释。
在步骤235中,安全网关确定包括在请求中的共享机密是否与授权给漫游用户使用的共享机密相同。例如,安全网关可以基于安全网关是否可以成功地对来自JoeB的请求(或其一部分)解密来接受或拒绝该请求。在本示例中,解密是基于授权给JoeB并且对应于他的当前IP地址(见图4)的共享机密325进行的。然而,在步骤235中可以使用用于验证由漫游用户提供的共享机密的任何方便的方法。
如果请求已经实现了正确的共享机密,则安全网关形成所请求的VPN隧道(步骤245)。如果不是,则拒绝请求(步骤240)。某些实施例可以允许漫游用户在步骤210中形成的隧道被拆掉之前发出多个请求,而其他实施例则即使在只有单个请求被拒绝的情况下也会拆掉隧道。
根据本发明的优选实现方式,安全网关只临时地将漫游用户的IP地址与被授权共享机密相关联。例如,当基于来自漫游用户JoeB的请求而形成VPN隧道时,图4所示的IP地址415和其相应的共享机密优选地由网关仅在VPN隧道存在的期间存储。
图5是示出根据本发明某些实现方式的拆掉VPN隧道的过程的流程图。在步骤505中,已经建立了VPN隧道。在步骤510中,安全网关确定是否发生预定事件。该事件例如可以是VPN隧道已经形成预定时间段,VPN隧道上没有流量的时间达到预定时间段,来自用户的请求等等。如果发生,则VPN隧道被拆掉(步骤515),并且漫游用户的IP地址/共享机密被从图4的数据库中删除(步骤520)。本领域技术人员将会意识到,步骤520可以在步骤515之前发生。
图6示出了可以配置来实现本发明的某些方法的网络设备的示例。网络设备660包括主中央处理单元(CPU)662、接口668和总线667(例如PCI总线)。通常,接口668包括适合于与适当介质通信的端口669。在某些实施例中,一个或多个接口668包括至少一个独立处理器674,并且在其他实例中还包括易失性RAM。独立处理器674例如可以是ASIC或任何其他适当的处理器。根据某些这种实施例,这些独立处理器674执行这里所描述的逻辑的至少某些功能。在某些实施例中,一个或多个接口668控制诸如媒体控制和管理之类的通信密集任务。通过为通信密集任务提供单独的处理器,接口668允许主微处理器662高效地执行其他功能,如路由计算、网络诊断、安全功能等。
接口668一般作为接口卡提供(有时称作“线路卡”)。一般而言,接口668控制通过网络发送和接收数据分组,并且有时还支持与网络设备660一起使用的其他外设。可以提供的接口有FC接口、以太网接口、帧中继接口、线缆接口、DSL接口、令牌环接口等。另外,也可以提供各种甚高速接口,例如,快速以太网接口、G比特以太网接口、ATM接口、HSSI接口、POS接口、FDDI接口、ASI接口、DHEI接口等。
当在合适的软件或固件的控制下动作时,在本发明的某些实现方式中,CPU 662可以负责实现与期望的网络设备的功能相关联的特定功能。根据某些实施例,CPU 662在软件控制下完成所有这些功能,所述软件包括操作系统(例如,由Cisco Systems,Inc.开发的专有操作系统Cisco IOS等)和任何合适的应用软件。
CPU 662可以包括一个或多个处理器663,例如,来自Motorola微处理器族或者MIPS微处理器族的处理器。在替换实施例中,处理器663是专门设计的硬件,用于控制网络设备660的操作。在特定实施例中,存储器661(例如,非易失性RAM和/或ROM)还形成CPU 662的一部分。但是,存在多种可以将存储器耦合到系统的方式。存储器块661可以用于各种目的,例如,缓存和/或存储数据、编程指令等。
不考虑网络设备的配置,可以采用一个或多个存储器或存储器模块(例如,存储器块665)配置来存储数据、用于通用网络操作的程序指令和/或与这里所述的技术的功能相关的其他信息。程序指令例如可以控制操作系统和/或一个或多个应用的操作。
由于这种信息和程序指令可以用来实现这里所述的系统/方法,所以本发明涉及计算机可读介质,所述计算机可读介质包括程序指令、状态信息等,用于执行这里所述的各种操作。机器可读介质的示例包括但不限于磁介质,例如硬盘、软盘和磁带;光介质,例如CD-ROM盘;磁光介质;以及专门配置为存储并执行程序指令的硬件设备,例如只读存储器器件(ROM)和随机访问存储器(RAM)。本发明还可以实现在通过适当介质传输的载波中,所述介质例如是频道、光线路、电线等。程序指令的示例包括机器代码,例如由编译器产生的机器代码,以及包含可由计算机利用解释器执行的高级代码的文件。
尽管图6示出的系统图示了本发明的一个特定网络设备,但是该网络设备绝不是可在其上实现本发明的唯一的网络设备体系结构。例如,通常使用具有单个处理器的体系结构,该处理器处理通信和路由计算等。此外,也可以与该网络设备一起使用其他类型的接口和介质。接口/线路卡之间的通信路径可以是基于总线的(如图6所示),或者基于交换结构的(例如,交叉开关)。
其他实施例一般而言,本发明的技术可以实现在软件和/或硬件上。例如,它们可以被实现在操作系统内核中、独立的用户进程中、绑定到网络应用的库包中、专门构造的机器上、或者网络接口卡上。在本发明的特定实施例中,本发明的技术可以实现在诸如操作系统之类的软件中,或者在操作系统上运行的应用中。
本发明的技术的软件或者软件和/或硬件的混合实现可以被实现在由存储在存储器中的计算机程序有选择地激活或重配置的通用可编程机器上。这种可编程机器可以是设计为处理网络流量的网络设备,例如,上面参考图6描述的网络设备。在替换实施例中,本发明的技术可以实现在通用网络主机上,例如,个人计算机或工作站。此外,本发明可以至少部分实现在网络设备或通用计算设备的板卡(例如,接口卡)上。
尽管在这里示出并描述了本发明的说明性实施例和应用,但是可以作出仍在本发明的原理、范围和精神内的各种变动和修改,并且在研读本申请后,本领域技术人员将清楚这些变动和修改。
例如,尽管这里描述的本发明使用共享机密作为认证方法,但是本发明并不局限于此。本发明的替换实现方式例如使用数字证书来用于认证目的。根据某些这种实现方式,在其IP地址预先并不被所知的用户和数字证书的对象之间建立对应关系。如果数字证书的对象是所期望的对象,则将会建立VPN隧道。
因此,本实施例应当被认为是说明性的,而非限制性的,并且本发明不受限于这里给出的细节,而是可以在所附权利要求书的范围和等同物内作出修改。
权利要求
1.一种建立虚拟专用网络隧道的方法,所述方法包括从其IP地址预先并不被所知的用户接收与安全网关形成加密隧道的第一请求;形成所述加密隧道;认证所述用户;确定所述用户的IP地址;建立所述IP地址和授权给所述用户的第一共享机密之间的对应关系;从所述用户接收形成虚拟专用网络隧道的第二请求,所述请求包括第二共享机密;确定所述第一共享机密是否与所述第二共享机密相匹配;以及当所述第一共享机密与所述第二共享机密相匹配时形成所述虚拟专用网络隧道。
2.如权利要求1所述的方法,其中所述第一请求包括形成基于安全套接字层的超文本传输协议会话的请求。
3.如权利要求1所述的方法,其中所述认证步骤包括接收并核实来自所述用户的用户名/口令对。
4.如权利要求1所述的方法,其中所述第二请求包括形成IPSec隧道的请求。
5.如权利要求1所述的方法,其中所述建立步骤包括将由所述用户提供的用户名和口令与用户名、口令和共享机密的数据库相比较。
6.如权利要求1所述的方法,其中所述第二请求包括基于所述第二共享机密的散列化函数。
7.如权利要求1所述的方法,其中所述确定所述第一共享机密是否与所述第二共享机密相匹配的步骤包括尝试对所述第二请求的至少一部分解密。
8.如权利要求1所述的方法,其中所述建立步骤包括在IPSec表中创建条目,所述条目包括所述IP地址和所述第一共享机密。
9.如权利要求8所述的方法,其中所述条目是在发生预定事件后删除的临时条目。
10.如权利要求9所述的方法,其中所述预定事件包括经过预定时间。
11.如权利要求9所述的方法,还包括在所述临时条目被删除时拆掉所述虚拟专用网络隧道的步骤。
12.一种包含在机器可读介质中的计算机程序,所述计算机程序包括用于控制安全网关执行以下步骤的指令从其IP地址预先并不被所知的用户接收与安全网关形成加密隧道的第一请求;形成所述加密隧道;认证所述用户;确定所述用户的IP地址;建立所述IP地址和授权给所述用户的第一共享机密之间的对应关系;从所述用户接收形成虚拟专用网络隧道的第二请求,所述请求包括第二共享机密;确定所述第一共享机密是否与所述第二共享机密相匹配;以及当所述第一共享机密与所述第二共享机密相匹配时形成所述虚拟专用网络隧道。
13.如权利要求12所述的计算机程序,其中所述第一请求包括形成基于安全套接字层的超文本传输协议会话的请求。
14.如权利要求12所述的计算机程序,其中所述认证步骤包括接收并核实来自所述用户的用户名/口令对。
15.如权利要求12所述的计算机程序,其中所述第二请求包括形成IPSec隧道的请求。
16.如权利要求12所述的计算机程序,其中所述建立步骤包括将由所述用户提供的用户名和口令与用户名、口令和共享机密的数据库相比较。
17.如权利要求12所述的计算机程序,其中所述第二请求包括基于所述第二共享机密的散列化函数。
18.如权利要求12所述的计算机程序,其中所述确定所述第一共享机密是否与所述第二共享机密相匹配的步骤包括尝试对所述第二请求的至少一部分解密。
19.一种安全网关,包括用于从其IP地址预先并不被所知的用户接收与安全网关形成加密隧道的第一请求的装置;用于形成所述加密隧道的装置;用于认证所述用户的装置;用于确定所述用户的IP地址的装置;用于建立所述IP地址和授权给所述用户的第一共享机密之间的对应关系的装置;用于从所述用户接收形成虚拟专用网络隧道的第二请求的装置,所述请求包括第二共享机密;用于确定所述第一共享机密是否与所述第二共享机密相匹配的装置;以及用于当所述第一共享机密与所述第二共享机密相匹配时形成所述虚拟专用网络隧道的装置。
20.一种安全网关,包括配置为与因特网通信的第一端口;配置为与专用网络通信的第二端口;以及配置为执行以下操作的至少一个处理器经由所述第一端口从其IP地址预先并不被所知的用户接收与安全网关形成加密隧道的第一请求;形成所述加密隧道;认证所述用户;确定所述用户的IP地址;建立所述IP地址和授权给所述用户的第一共享机密之间的对应关系;从所述用户接收形成虚拟专用网络隧道的第二请求,所述请求包括第二共享机密;确定所述第一共享机密是否与所述第二共享机密相匹配;以及当所述第一共享机密与所述第二共享机密相匹配时形成所述虚拟专用网络隧道。
21.一种建立虚拟专用网络隧道的方法,所述方法包括从其IP地址预先并不被所知的用户接收与安全网关形成加密隧道的第一请求;形成所述加密隧道;认证所述用户;确定所述用户的IP地址;建立所述IP地址和数字证书的对象之间的对应关系;从所述用户接收形成虚拟专用网络隧道的第二请求,所述请求包括所述数字证书;确定所述数字证书的对象是所期望的对象;以及当所述数字证书的对象是所期望的对象时形成所述虚拟专用网络隧道。
全文摘要
本发明提供了用于为其IP地址预先并不被所知的用户(“漫游用户”)建立VPN隧道的方法和设备。漫游用户首先发起与安全网关的安全认证会话。在某些这种实现方式中,漫游用户提供用户名/口令对,安全网关将该用户名/口令对与已被授权发起VPN隧道的用户名的数据库相比较。在认证了漫游用户后,安全网关随后确定漫游用户的IP地址,并将IP地址、用户和分配给漫游用户的共享机密相关。如果漫游用户使用了正确的共享机密来请求建立VPN隧道,则安全网关将会建立VPN隧道。
文档编号G06F17/00GK101076796SQ200580001384
公开日2007年11月21日 申请日期2005年1月13日 优先权日2004年1月15日
发明者布鲁斯·穆恩, 马克·恩赖特 申请人:思科技术公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1