专利名称:用于提供动态互联网协议安全策略服务的方法
技术领域:
本发明通常涉及网络通信。更具体地,本发明涉及一种用于提供动态互联网协议策略服务的方法。
背景技术:
移动节点可利用移动互联网协议(“移动IP”)从它的本地网络(homenetwork)漫游离开,并且移动节点可建立与外部网络(foreign network)的连接。移动节点可利用协议比如互联网协议安全性(“IPsec”)与它的本地网络安全地通信。IPsec可用于在外部代理(“FA”)与本地代理(“HA”)之间通信。FA能够从移动节点接收包(packet)。然后FA能够利用IPsec,例如加密来自移动节点的包,并且通过虚拟隧道(virtual tunnel)将它们转发到HA。然后HA接收这些包,并且对它们解密以找回原始消息。类似的处理可用于将包从HA发送到FA,它们能够最终发送到移动节点。
在IPsec中,可定义策略(policy)用于对应于特定FA-HA对的移动节点。该策略一般地指明用于在移动节点漫游到FA的网络时在FA与HA之间IPsec通信的参数。该策略可由HA定义和存储,并且对应的策略可由FA定义和存储。当包穿过虚拟隧道时,FA与HA能够利用它们各自的策略,以在处理该包时应用适当的IPsec参数。
为了允许移动节点漫游到不同的外部网络,并且利用IPsec继续与它的HA通信,能够一设置策略用于移动节点能利用的每个可能的FA-HA对。为FA-HA对所建立的策略应当由HA与对应的FA存储。添加移动节点能够访问的附加FA会增大需要建立的FA-HA对的数量。此外,当建立策略时,需要知道FA与HA的IP地址或其他标识符。用于定义FA-HA对的该方法不容易升级(scalable),并且需要大量时间以建立和存储所有可能的HA-FA对。
除为每个FA-HA对存储一策略之外,FA与HA均存储对应于每个可能FA-HA对的过滤器。这些过滤器能够存储在过滤器列表中,并且它们能够用以确定包是否应当接收IPsec处理。例如,当FA或HA收到包时,FA或HA能够搜索它的过滤器列表,以确定是否存在对应于该包的过滤器。如果存在过滤器,则FA或HA例如通过利用为该FA-HA对和该移动节点所定义的策略,能够将IPsec处理应用于该包。
FA或HA均存储对应于许多FA-HA对的大量过滤器,因此它的过滤器列表也会很大。当包到达FA或HA时,FA或HA搜索它的过滤器列表,以确定是否将策略服务应用于该包。搜索过滤器列表是耗时和计算密集的处理,并且会降低FA或HA处理该包的速度。
因此,存在着对在IPsec环境中提供策略服务的新的改进方法的需要。
发明内容
按照本发明的优选实施例,能够克服与互联网协议安全通信相关联的某些问题。提供一种用于提供动态互联网协议安全策略服务的方法。
本发明的一方案包括一种方法,用于动态地链接一策略以应用于外部代理与本地代理之间的互联网协议安全会话。该策略能够应用于外部代理与本地代理之间发送的包。外部代理在与本地代理建立互联网协议安全会话时可动态地链接到一策略,并且本地代理在与外部代理建立互联网协议安全会话时可动态地链接一策略。
本发明的另一方案包括一种方法,用于动态地创建一过滤器,以应用于外部代理与本地代理之间的互联网协议安全会话。外部代理可动态地建立一过滤器,该过滤器能够用于识别接收互联网协议安全处理的包。本地代理也能够创建一过滤器,该过滤器识别接收互联网协议安全处理的包。当外部代理与本地代理之间的IPsec会话结束时,该过滤器可从现行过滤器列表中去除。
适当参照附图,阅读如下的具体描述,本发明的这些以及其他方案和优点将变得更明显。
这里参照附图,描述本发明的示范性实施例,在附图中
图1是说明IP包报头的框图;图2是说明示范性移动互联网协议系统的框图;图3是说明图2的移动互联网协议系统中的示范性移动互联网协议通信的框图;图4是说明互联网协议安全认证报头的框图;图5是说明封装安全有效载荷(payload)包格式的框图;图6是说明在经过互联网协议网络的两个端点(endpoint)之间的各种端对端安全配置的框图;以及图7是用于动态链接一策略和建立一过滤器的处理的流程图。
具体实施例方式
许多不同的设备能够连接于网络和交换数据,并且各种类型的网络可用于连接设备。例如,一个或多个计算机可连接于局域网(“LAN”)。然后,连接于LAN的计算机能够经过网络交换数据。在另一实例中,无线设备可连接于蜂窝无线网络。然后无线设备可与连接于无线网络的其他设备通信。
一个或多个网络也可链接在一起,并且连接于某一网络的设备能够与连接于另一网络的设备通信。例如,LAN可通过互联网服务供应商(“ISP”)提供与互联网的连通性。类似地,蜂窝无线网络可提供与公共交换电话网(“PSTN”)或与分组数据服务节点(“PDSN”)比如互联网的连通性。一旦这些网络连接于互联网或另一网络,某一网络上的设备设备能够与另一连接网络上的设备交换数据。例如,蜂窝网络上的无线设备能够连接于PSTN上的设备或互联网上的设备。
一网络一般地支持一个或多个通信协议。通信协议通常提供用于在网络上的设备之间交换数据的格式,并且多个协议可在通信会话期间使用。除提供用于在同一网络上的设备之间交换数据的格式之外,通信协议可提供用于在连接于不同网络的设备之间交换数据的格式。
例如,传输控制协议(“TCP”)和互联网协议(“IP”)可用于在同一或不同网络上的设备之间发送数据。TCP是用于在网络比如互联网上发送数据的面向连接协议。TCP通常结合IP一起利用,并且它们提供这样的格式,用于将数据消息分成包、在一个或多个网络上将这些包传输给接收端、以及在接收端重组这些包以形成原始数据消息。
IP能够用于在同一网络上的设备之间和在不同网络上的设备之间发送数据。对于IP通信,一设备通常分配有32位的IP地址。IP地址在连接的网络上通常是全球唯一的,并且这允许目标设备通过它的IP地址被唯一地识别。数据以IP包的形式传输。IP包包括报头(header)部分和数据部分。
图1是说明IP包报头50的框图。IP包报头包括许多不同字段。版本字段52表示IP版本,比如IPv4或IPv6。互联网报头长度(“IHL”)字段54表示报头的长度。服务类型(“ToS”)字段56表示所请求的服务类型。总长度字段58表示包括IP报头50在内的IP包中所有内容的长度。标识字段60可用于包分段(fragmentation)。分段偏移字段62也用于包分段。保存时间(“TTL”)字段64可以是跳跃计数,用于限制IP包的使用期(lifetime)。协议字段66表示与IP包一起利用的协议。例如,TCP、用户数据包协议(“UDP”)、封装安全有效载荷(“ESP”)和认证报头(“AH”)是可结合IP一起利用的通用协议。也可利用其他协议。报头校验和字段68能够用于校验IP包报头50的内容。源地址字段70可包括用于发送端点的源IP地址,目标地址字段72可包括用于接收端点的IP地址。选项字段74能够用于安全、源发送、错误报告、调试、时间标记(stamping)或其他信息。IP数据可承载于选项字段74之下的IP包数据部分中。
IP包在网络上发送,并且利用报头中所含的目标设备的IP地址,适当地发送到目标设备。IP包在到达目标设备之前可穿过不同设备和经由不同网络。IP地址用于准确地经过网络发送该包,并且发送到正确的目标设备。
尽管IP提供用于唯一地识别经过多个网络的设备的方法,但是它并不提供用于确保从源设备发送的包将在目标设备成功接收的机制。由于不同因素比如数据破坏、缓冲溢出、设备故障或其他错误,包在经过网络的传输期间可能丢失。TCP能够结合IP一起利用,以确保包的可靠的端对端传输。在其他功能中,TCP处理丢失或破坏的包,并且重组次序混乱地到达其目的地的包。TCP/IP是一种在手机(handset)与媒体服务器之间建立连接的方法,并且还存在许多其他互联网或网络协议。
另一可用于发送数据的协议是移动IP,其为IP的扩展。虽然IP能够用于连接在分离网络上的设备,但是IP地址通常仅关联于一个特定网络。无线设备可分配有与该无线设备的本地网络相关联的IP地址。然而在通信会话期间,无线设备可能漫游到另一网络。
移动IP是IP协议的扩展,其允许“移动”节点在不同的IP子网络(“子网”)之间透明地移动,并且仍接收寻址于与移动节点本地网络相关联的IP地址的数据。虽然移动节点动态地改变它的网络连通性,但是这对于IP以上的协议层(例如TCP或UDP)是透明的。移动IP在1996年10月,C.Perkins的Internet Engineering Task Force Request for Comment 2002中有具体描述,这里整体并入作为参考,并且在ISBN-0-13-856246-6,1998,Prentice-Hall,J.D.Solomon的“Mobile IPThe Internet Unplugged”中有具体描述,这里整体并入作为参考。
图2是说明示范性移动IP系统124的框图。移动IP系统126包括连接于本地网络100的两个非移动网络设备102、104和移动网络设备(“移动节点”)106。然而本地网络100可包括更多或更少的非移动网络设备。它也可包括多个移动网络设备。移动节点106可优选为任一无线设备,比如便携电话、个人数字助理(PDA)、无线装备的计算机或其他设备;然而,移动节点也可能是非无线设备。非移动网络设备102、104例如也可以是包括网络接口卡(“NIC”)的计算机或其他设备。NIC通过接口与本地网络100连接并且提供与本地网络100的连通性。
在一实施例中,本地网络100是LAN,并且连接于本地网络100的网络设备102、104、106利用IEEE803.2以太网协议进行通信。在该协议中,本地网络100上的每个网络设备102、104、106分配有子网网络地址,该地址是IEEE803.2协议所支持类型的以太网地址。该子网网络地址提供用于识别每个网络设备102、104、106的机制,并且用于在本地网络100上的网络设备102、104、106之间交换数据。本地网络100并不限于利用IEEE803.2协议的LAN。存在许多不同的网络类型,并且许多不同的协议和寻址方案可用于在网络上的设备之间交换数据。也可以利用这些不同的网络类型和协议。
本地网络100经由本地代理(“HA”)108连接于外部网络110,比如互联网或内联网。本地代理108是用于本地网络100的“网关路由器”。正如现有技术中所公知的,网关利用不同的连网协议或以不同的传输性能进行操作来连接网络。同时,正如现有技术中所公知的,路由器解释网络协议之间的差异,并且将数据包发送到适当的网络节点或网络设备。通过连接于本地网络100,本地网络100上的网络设备102、104、106能够与连接于外部网络110的设备交换数据。
分配给本地网络100上每个网络设备102、104、106的子网网络地址,比如以太网地址,通常并非是全球可发送的地址。因此,它可能不支持本地网络100上的设备与连接于外部网络110的设备之间的通信。为了与连接于外部网络110的设备通信,本地网络100上的一个或多个设备也可分配有一全球地址。当该设备与外部网络上的设备通信时,该全球地址可用于识别该设备。例如,连接于本地网络100的一个或多个设备可均分配有一IP地址,该IP地址是用于与连接于外部网络110的设备交换数据的全球可发送的地址。
尽管除其子网网络地址之外,本地网络100上的网络设备102、104、106可能分配有全球可发送的地址,但是本地网络100上的网络设备102、104、106也可能利用一寻址方案来交换数据,该寻址方案支持与连接于外部网络110的设备的通信。在这种情况下,子网网络地址可全球发送,并且与全球地址相同。例如,本地网络设备102、104、106可利用IP或另一相似的协议彼此通信。由于IP能够是全球可发送的地址,所以不必给网络102、104、106分配除其子网地址之外的全球地址。
移动节点106表示为连接于本地网络100的虚线方框106,因为移动节点106会从它的本地网络100“漫游”离开并且连接于外部网络120。当移动节点106从它的本地网络100漫游离开时,它周期性地将移动IP“代理请求”消息传输到外部代理,比如外部代理(“FA”)112。外部代理112相对于移动节点的本地网络100是外部的。
图2还表示出外部网络120。外部网络120包括两个非移动节点114、116。然而该外部网络可能包括更多或更少数量的非移动节点。外部网络120还可包括一个或多个移动节点,对于这些移动节点,外部网络120用作本地网络,但这样的移动节点在图2中未示出。外部代理112存在于外部网络120上。类似于本地代理108,外部代理120是用于外部网络120的网关路由器。
外部网络设备114、116分配有外部网络120上的子网网络地址。子网网络地址可用于连接于外部网络120的设备之间的通信。如前文所述,子网网络地址可能并非是全球可发送的,并且外部网络120上的网络设备114、116还可能分配有全球可发送的地址。例如,外部网络上的一个或多个设备114、116还可分配有一IP地址。然而,子网网络设备(例如IP地址)可能是全球可发送的,并且能够用于与连接于外部网络110的设备通信。
当移动节点106从它的本地网络100离开时,它可连接于外部网络120。漫游的移动节点106从外部代理(即外部网关路由器,比如外部代理112)收听移动IP“代理广告”消息。该代理广告消息表示漫游的移动节点106现在位于外部网络120上。当漫游的移动节点106从一外部代理比如外部代理112接收到代理广告消息时,移动节点106向外部代理(例如外部代理112)以及它的本地代理(例如本地代理108)注册。该注册表示移动节点106已经从它的本地网络100漫游到外部网络120。
移动节点106利用它在本地网络100上的家庭全球(home global)地址以向外部代理112和本地代理108注册。在移动节点106注册之后,除用于外部网络120上网络设备114、116的数据包之外,外部代理112可在用于移动节点106的特定家庭全球地址接受移动节点106的数据包。外部代理112还可将外部网络120上的临时子网网络地址分配给移动节点106。
图3是说明示范性移动IP系统128中的示范性移动IP通信的框图。一旦移动节点106漫游到外部网络112并且注册它的当前位置(例如在外部网络112上和在本地网络100上),本地代理108可经由外部网络110建立去往外部代理112的“虚拟隧道”126。虚拟隧道126并非是外部代理112与本地代理108之间建立的附加物理连接,而是虚拟隧道126代表一概念上的数据路径,用于在本地代理108与外部代理120之间传输数据。虚拟隧道126能够通过将数据包装入另一数据包内并且通过添加附加的隧道包报头来建立。
在本发明的一个优选实施例中,利用IP-in-IP隧道传输。IP-in-IP隧道传输在1995年10月,W.Simpson的Internet Engineering Task Force Request forComment 1853中有更具体地描述,这里整体并入作为参考。隧道传输和数据封装还在1996年10月,C.Perkins的Internet Engineering Task Force Requestfor Comment 2003中有所讨论,这里整体并入作为参考,并且在1996年10月,C.Perkins的Internet Engineering Task Force Request for Comment 2004中有所讨论,这里整体并入作为参考。也能够建立并且也可利用其他类型的虚拟隧道,比如UDP隧道传输或双重的IP-in-IP隧道传输。
连接于外部网络110的网络设备130可能需要发送数据到移动节点106。尽管网络设备130通常表示为连接于外部网络110,但是它实际上可以是连接于网络比如LAN的计算机或另一类型的设备。然后该网络向网络设备130提供与外部网络110的连通性。
网络设备130发送一寻址于移动节点106的数据消息。这例如可通过向移动节点106发送一寻址于其全球可发送IP地址的包来完成。该包穿过外部网络110,并且发送到本地代理108。本地代理108接受寻址于其子网中设备的IP地址的包。如果移动节点106连接于本地网络100,则本地代理108转发该包到移动节点106。然而,移动节点106并未连接于本地网络100。移动节点106连接于外部网络120,该包必须从本地代理108转发到外部网络120。
移动节点106向本地代理108和外部代理112预先注册它的新子网位置。本地代理108将寻址于移动节点106的包封装为隧道包,其经过虚拟隧道126发送到外部代理112。当外部代理112接收到该隧道包时,它去除隧道包报头,并且发送该包到移动节点106。
移动节点106利用ICMP消息,周期性地传输“继续有效(keep-alive)”消息。这些消息可包括专用于移动IP的标准ICMP消息和其他ICMP消息。移动节点106能够漫游到除图3所示外部网络120之外的外部网络,并且移动节点106能够利用移动IP向其他外部代理注册。这允许移动节点106移动到多个外部网络。
互联网协议安全尽管IP提供寻址方案,用于在源设备与目标设备之间发送包,但是它不确保源设备和目标设备是访问和读取IP包的数据部分的仅有设备。其他设备可截取IP包及读取它的数据部分。为了阻止其他设备截取IP包和读取它们的数据部分,在IP通信期间采用附加的安全协议以提供IP包的安全。
互联网协议安全性(“IPsec”)是一种用于提供IP包安全的方法。IPsec在1998年11月,Kent et al.的Internet Engineering Task Force Request forComment 2401的“Security Architecture for the Internet Protocol”中有更具体地描述,这里将其整体并入作为参考,并且在2001年7月,A.Krywaniuk的Internet Engineering Task Force IP Security Working Group Draft的“SecurityProperties of the IPsec Protocol Suite”<draft-krywaniuk-ipsec-properties-00.txt>中有更具体地描述,这里将其整体并入作为参考。IPsec通常对在源端点与目标端点之间移动的IP包改善消息认证、消息完整性和消息机密性。从两个端点之间不存在连接的状态开始,安全关联(“SA”)能够基于IP而建立,从而使每个端点信任该连接的安全,并且每个端点的身份可认证至另一端点。
IPsec通常定义两个安全服务,并且每个安全服务具有相关联的报头,利用该服务将该报头添加到IP包。这两个安全服务是认证报头(“AH”)和封装安全有效载荷(“ESP”)报头。尽管IPsec定义这两个安全服务,但是更少或更多数量的安全服务也能够与IPsec一起利用。
AH对IP包提供认证和完整性保护。认证报头在1998年11月,Kent etal.的Internet Engineering Task Force Request for Comment 2402的“IPAuthentication Header”中有更具体地描述,这里将其整体并入作为参考。
图4是说明互联网协议安全认证报头200的框图。下一报头字段202是标识在AH之后下一有效载荷的类型的8位域。有效载荷长度字段202以32位的字(即4个字节)指明AH的值。保留字段206是保留的16位字段以备用。安全参数索引(“SPI”)字段208是任意32位的值,该值与目标IP地址和安全协议(例如AH或ESP)相结合,唯一地标识用于数据包的SA。序列号字段210是无符号(unsigned)的32位字段,该字段包括单调递增的计数值作为序列号。认证数据字段212是包括用于包的完整性校验值(“ICV”)的可变长度字段。
ESP提供机密性以及认证和完整性保护。封装安全有效载荷在1998年11月,Kent et al.的Internet Engineering Task Force Request for Comment 2046的“IP Encapsulating Security Payload(ESP)”中有更具体地描述,这里将其整体并入作为参考。
图5是说明ESP包格式250的框图。SPI字段252是任意32位的值,该值与目标IP地址和安全协议(例如AH或ESP)相结合,唯一地标识用于该包的SA。序列号字段254是32位的字段,该字段包括单调递增的计数值作为序列号。有效载荷数据字段256是可变长度字段,该字段包括下一报头字段262所描述的数据。填充字段258与有效载荷数据字段266一起用于加密。填充长度字段260表示紧接在其之前的许多填充字节。下一报头字段262是8位字段,该字段包括有效载荷数据字段256中所含数据的类型。认证数据字段264是可变长度字段,该字段包括通过整个ESP报头250减去认证数据字段264而计算的完整性校验值(“ICV”)。
IPsec协议报头在IP包报头50的协议字段66中被标识。IPsec协议报头指明协议类型(即AH或ESP),并且包括被称为安全参数索引(“SPI”)的数值。SPI是通过接收端点关联于SA的专用标识符。标识信息由接收端点利用,以有助于它将IP包正确地与SA相关联。IP包与SA的关联允许恰当的IPsec处理。
IPsec服务能够应用于两种模式之一,即“传送模式”或“隧道模式”。在传送模式中,通常仅加密IP包的数据。利用目标地址(例如IP目标地址72)将IP包发送到目标设备。在传送模式中,目标IP地址和源IP地址对于网络上的其他设备都是“可见的”(即未加密)。结果,另一设备能够监控在源设备与目标设备之间发送的包的数量。然而,由于数据被加密,该设备一般不能够确定IP包中的数据内容。一旦传送模式包到达它的最终目标,目标设备进行IPsec处理。例如,目标设备可按照协定的加密方法对IP包中所承载的数据解密。
在隧道模式中,通常加密整个IP包,并且沿着虚拟隧道将该包发送到目标设备。虚拟隧道能够利用作为源设备和目标设备的IPsec代理的路由器或其他网络设备来形成。源设备发送IP包到源设备端点。源设备端点加密IP包,并且将加密后的包替换成新的IP包。然后,新的IP包经过网络发送到目标设备端点。目标设备端点解密原始IP包,并且将该包转发到目标设备。利用该模式,黑客仅能确定隧道的端点。黑客无法确定隧道传送的包的实际源地址和目标地址,因而黑客无法准确地确定在两个设备之间正在发送多少包。
图6是说明在传送和隧道模式中利用AH、ESP及其组合在IP网络318(例如互联网或内联网)上的两个端点之间的各种端对端安全结构300的框图。第一端点302具有至第二端点306的安全连接304。第一示范性数据包308包括第一IP报头中的第一IP地址(“IP1”)、AH报头和上级协议数据。第二示范性数据包310包括第一IP地址、ESP报头和上级协议数据。第三示范性数据包312包括第一IP地址、AH报头、ESP报头和上级协议数据。示范性数据包308、310和312用于传送模式中。取决于期望的安全类型,一般为传送模式选定一种类型的数据包设计(308,310或312)。
在隧道模式中,第四示范性数据包314包括带有隧道IP地址(TIP)的隧道IP报头、AH报头、带有第一IP地址(“IP1”)的原始IP报头和上级协议数据。第五示范性数据包316包括带有隧道IP地址的隧道IP报头、AH报头、带有第一IP地址的原始IP报头和上级协议数据。取决于期望的安全性,一般为隧道模式选定一种类型的示范性数据包314或316。
IPsec协议建立和利用安全关联(“SA”)以识别两个端点之间的安全虚拟连接。SA是两个端点之间的单向连接,其代表单个IPsec协议模式组合。单个SA的两个终端端点(即用于传送模式的网络设备或用于隧道模式的中间设备)定义一IPsec服务所保护的安全虚拟连接。这两个端点之一发送IP包,另一端点接收IP包。由于SA是单向的,最少需要两个SA用于安全的双向通信。也能够通过组合多个SA在两个端点之间构造多层的IPsec协议。
除定义安全服务(即AH、ESP)和模式(即隧道或传送)之外,IPsec允许利用许多不同方法,用于执行加密、认证和其他功能。这些各种参数还能够在SA中定义。例如,SA可表示哪个加密方法和哪些密钥将用于IPsec通信会话中。在成功的通信能够出现在IPsec通信会话中的两个设备之间以前,应当确定用于该会话的特定SA。
建立IPsec SA的处理包括协商和认证。在协商中,两个端点协定利用哪个安全协议和模式。它们还对建立的每个SA,协定要利用的其他算法,比如具体的加密技术、关联参数值和SPI分配。该认证确保每个端点在协商期间以及在建立SA之后能够信任其他端点的身份。
已提出许多标准用于建立SA的协议,包括互联网安全关联和密钥交换协议(“ISAKMP”)、Oakley协议(“Oakley”)、以及合并ISAKMP和Oakley的互联网密钥交换(“IKE”)协议。ISAKMP在1998年11月,Maughan et al.的Internet Engineering Task Force Request for Comment 2408的“Internet Security Association and Key Management Protocol(“ISAKMP”)”中有更具体地描述,这里将其整体并入作为参考。Oakley在1998年11月,H.K.Orman的Internet Engineering Task Force Request for Comment 2412的“The OAKLEY Key Determination Protocol”中有更具体地描述,这里将其整体并入作为参考。IKE在1998年11月,Harkins et al.的Internet EngineeringTask Force Request for Comment 2409的“The Internet Key Exchange(IKE)”中有更具体地描述,这里将其整体并入作为参考。
例如,利用IKE,SA协商可作为两个端点之间信令交换的序列来进行。第一端点提出安全协议和加密算法,并且第二端点接受或反对提议。一旦信令完成并且两个端点已协定所协商的细节,则交换有关的安全参数信息,并且端点准备在单个单向SA上发送或接收。部分信令包括利用认证授权(“CA”)的认证信息的交换。
认证是基于被称为认证授权的受托第三方。参与IPsec的每个端点产生公开/私用加密密钥对,并且具有CA所“确认”的它的公开密钥。CA将端点的IP地址绑定到它的公开密钥,产生证书(certificate)并且将其返还给密钥所有人。因此,IP地址是用于将公开密钥绑定到其所有人的一个“安全名义空间”。
在SA协商期间,某一端点向另一端点提供它的证书以及已利用它的私用密钥加密过的签名。证书和签名通过公开密钥来校验。接受者(在每个端点的一方)利用来自其证书的发送者的公开密钥,以使签名和发送者权力有效,以利用它的IP地址。由于仅发送者能够访问私用密钥,所以一旦接受者验证过签名,接受者就确信发起人的“身份”。该身份可通过发起人的IP地址来确定,因为IP地址形成用于将公开密钥绑定到其所有人的安全名义空间。然而,除利用用于发起人身份的IP地址之外,还能够利用其他安全名义空间。证书签发有“保存时间”值,它们在该值之后过期并且变为无效。协商和认证的结果是用于某个单向SA的安全连接。用于双向通信的第二SA可以相似的方式注册。
策略服务IPsec能够应用于各种不同的通信会话,并且能够用于各种不同设备之间的通信会话中。为了恰当地建立IPsec会话,参与IPsec会话的设备一般应当协定IPsec会话期间要利用的参数。这些参数例如能够在将应用于IPsec会话的策略中被指定。然后,这些设备能够将这些参数应用于IPsec会话期间的通信。
例如,隧道端点比如FA或HA可从多种不同源接收包,并且这些包需要不同地进行处理。例如,隧道端点可接收作为IPsec通信会话的一部分的某些包,并且可接收并非IPsec通信会话的一部分的其他包。对于并非IPsec通信会话的一部分的包,隧道端点可按照它的IP目标地址,简单地发送该包;然而,对于作为IPsec通信会话的一部分的包,隧道端点可执行各种IPsec处理功能。
在IPsec处理功能的实例中,隧道端点可从源设备接收IP包。然后,该隧道端点加密该包,并且将它放置于发送给另一隧道端点的新IP包的数据部分中。然后,另一隧道端点接收该IP包,解密新包的数据部分,以找回原始包并且将原始包转发到目标设备。
隧道端点可附加地支持多个IPsec通信会话。每个IPsec会话可利用不同的安全协议、不同的加密密钥或其他不同的参数。因此,隧道端点不得不在不同的IPsec通信会话中将不同的处理功能应用于包。例如,某一IPsec会话利用ESP,而另一IPsec会话利用ESP和AH的组合。这两个会话可利用不同的加密算法;它们可利用不同的密钥;或者它们可具有其他不同的参数。为了恰当地服务IPsec包,隧道端点应当应用正确的处理功能用于IPsec包。
对于IPsec通信会话,每个隧道端点通常存储一策略和一过滤器用于该IPsec会话。该策略一般包括关于如何处理该IPsec会话的IPsec包的信息。例如,该策略可包括信息比如要利用的服务类型(例如AH、ESP或二者兼有)、要利用的加密类型、密钥的使用期限、解释域(“DOI”)。用以协商服务类型的规则或其他信息。策略文件还可定义IPsec会话的其他属性。比如通过识别需要IPsec处理的包,过滤器能够用于从较大的包集合中识别包的子集。例如,通过维护对应于IPsec会话的FA-HA对的列表,过滤器一般能够指明需要IPsec服务的包。过滤器还可为对应于FA-HA会话的IPsec包识别要利用的策略,或者可指明其他信息。
当隧道端点接收到一包时,隧道端点确定如何处理该包。隧道端点可维护过滤器列表。该过滤器列表能够覆盖对应于FA-HA对的可能的IPsec会话。这些对(pairs)可以各种不同方式指明,但它们优选地基于设备的IP地址指明。在隧道端点接收到包之后,它能够参照其过滤器列表中的FA-HA对,校验该包的源地址和目标地址。如果过滤器列表包括用于该IP包的过滤器,则隧道端点可处理该包。然而,如果过滤器列表不包括用于该包的过滤器,则隧道端点可简单地经过该IP包,而不应用策略,也不进行IPsec处理功能。
在一个示范性操作中,移动节点漫游到外部网络。移动节点将包发送到外部网络的外部代理。FA读取源IP地址、IP协议类型、源和目标端口以及该包的目标IP地址。然后,基于IP地址,FA搜索它的过滤器列表,以确定该IP包是否需要IPsec处理,以及应用哪个策略。基于过滤器列表,FA确定该包需要IPsec处理。然后,FA例如按照该过滤器所指示的策略来处理该包。接着,FA将该包经过该隧道发送到移动节点的HA。HA从FA接收该包,并且HA搜索它的过滤器列表,以确定输入的包是否需要IPsec处理。基于过滤器列表,HA能够确定该包需要IPsec处理和应用于该包的策略。然后,HA能够按照该过滤器所指示的策略来处理该包。
移动节点可漫游到多个不同的外部网络,并且每个外部网络具有它自己的FA。为了支持IPsec通信,应当识别多个FA-HA对。用于FA-HA对的策略和过滤器应当由FA存储,并且用于FA-HA对的对应策略和过滤器也应当由HA存储。静态定义FA-HA对并且存储它们的过滤器和策略可建立由FA和HA所存储的非常大量的信息。这还会造成处理包的延迟,因为FA或HA必须搜索大量过滤器以确定是否将IPsec处理应用于所接收的包。
为了提供更大的伸缩性和提高的处理效率,能够动态地链接用于FA-HA对的一个或多个策略,并且动态地建立一个或多个过滤器。例如,可为移动节点建立策略模板。策略模板可构造于移动节点的本地网络中,并且可由HA存储。可选地,策略模板可存储于能够由HA访问的认证、授权和记帐(“AAA”)服务器中,或者策略模板可存储于另一位置中。除存储于本地网络上之外,策略模板还可存储于外部网络中。例如,外部代理也可存储策略模板。
策略模板可存储将用于FA与HA之间的IPsec通信中的参数。当移动节点访问外部网络时,FA通过AAA进行认证程序。然后,AAA向FA指示IPsec应当用于与移动节点的通信。然后,策略模板能够动态地链接到FA,并且策略模板能够用于指明移动节点与HA之间通信的参数。例如,FA可通过建立策略实例(instance)来建立到策略模板的动态链接。策略实例可以是作用于PDSN与HA之间的具体关联性的策略模板的实例。尽管策略模板可指明FA/PDSN与HA之间的各种参数,FA和HA可附加地协商专用于包含该移动节点的会话的其他参数。例如,FA和HA可附加地协商在IPsec策略的IKE认证中所用的动态预享(pre-shared)密钥。当然也可以协商其他参数。然后,这些附加的参数可成为策略实例的一部分。因此,策略实例能够从策略模板以及协商的参数中推导。
可为对应于具体移动节点的具体FA-HA对建立一策略模板。然而,策略模板对应于特定FA-HA对也是可能的。另外,策略模板可用于多个移动节点,或者可用于多个FA-HA对。
图7是说明用于动态链接策略到FA和动态建立过滤器的示范性处理的流程图。在步骤350,移动节点请求访问外部网络。在步骤352,外部网络上的外部代理联络移动节点本地网络上的认证服务器。如果移动节点被授权连接于本地网络并且需要安全服务,则认证服务器向外部代理传达该移动节点需要IPsec服务,如步骤354所示。外部代理动态地链接到策略模板,并且能够与HA协商附加的参数。然后在步骤356,外部代理为FA-HA对建立过滤器。类似地,尽管图7中未示出,但是本地代理还为FA-HA对建立过滤器,并且能够利用移动节点的本地网络中已定义的策略。最后,在步骤358,外部代理利用动态链接的策略和动态建立的过滤器来处理包。
继续参照图3,移动节点106漫游到外部网络120,并且需要与它的本地网络100通信。例如通过与外部网络的外部代理112通信,移动节点106首先启动与外部网络120的连接。这可利用各种不同的方法完成。例如,移动节点106可拨号进入蜂窝网络,并且尝试通过向FA112(例如PDSN)发送移动IP注册请求来建立移动IP会话。移动IP注册请求可请求FA112建立与HA108的隧道。然后,FA112可连接AAA服务器(图中未示出)。AAA服务器一般属于移动节点106的本地网络100,并且能够用于确定移动节点106是否具有连接到本地网络100的许可。如果移动节点106具有连接到本地网络100的许可,则HA108会返回一包括移动节点本地IP地址的注册响应消息。然后,移动节点106无论漫游到哪儿都能够利用该IP地址。
除确定移动节点106是否具有连接到本地网络100的许可之外,AAA服务器还确定移动节点106在与本地网络100通信时是否需要安全(例如IPsec)。用于移动节点与HA108通信的安全策略通常定义于AAA服务器中,并且移动节点106一般利用AAA服务器中所定义的安全策略。AAA服务器通常仅指明移动节点106是否需要安全;它一般并不指明要利用的具体参数。例如,AAA服务器可表示移动节点106应当利用IPsec,但是它一般并不表示用于IPsec会话的具体参数。如果AAA服务器确定移动节点106需要利用IPsec,则告知FA112。然后,FA112启动与HA108的连接,并且HA能够动态地将安全策略模板链接到FA112。然后,FA112和HA108按照安全策略中所指明的具体参数,能够为该会话协商其他IPsec参数。例如,FA112和HA108可进行适当的协商程序比如IKE,以协商用于FA112与HA108之间的通信的其他参数。
FA112还可为FA-HA对动态地建立过滤器,然后该过滤器可存储于FA112所维护的过滤器列表中。然后,参照FA112所维护的过滤器,校验到达FA112的输入包。如果该包的过滤器存在,则FA112应用适当的处理;然而,如果过滤器不存在,则FA112简单地通过该节点经过该包。HA108还可为FA-HA对动态地建立过滤器,并且利用该过滤器准确地处理从FA112接收的并对应于移动节点106的包。
由于IPsec安全关联是单向的,所以能够建立两个或更多安全关联。例如,FA-HA对可为从FA112发送到HA108的包建立一个隧道,并且为从HA108发送到FA112的包建立另一隧道。可将一个或多个策略模板链接到FA112用于每个建立的隧道。例如,一个策略模板可为IPsec会话指明参数集,而第二策略模板可指明附加参数。此外,还可为每个隧道建立一个或多个过滤器。还能够仅在一个方向上建立隧道。
一旦移动节点106从外部网络120漫游离开,FA112与HA108之间的隧道会终止。然后,对应于移动节点106的FA-HA对的过滤器从FA的过滤器列表中去除。将该过滤器从FA的过滤器列表中去除,可改善FA112的性能并且加速包的处理。例如,应当参照FA的过滤器列表,校验到达FA112的输入包,以确定该包是否需要特别处理(例如IPsec处理)。如果FA112维护庞大的过滤器列表,则参照列表中的每个过滤器校验输入包会是一项费时的处理。通过为FA-HA对动态建立过滤器,并且在连接停止有效时去除该过滤器,FA的过滤器列表可仅包括用于有效连接的过滤器。这能够减少列表中存储的过滤器的数量,并且提高处理包的效率。
可利用相似的程序用于HA108以从它的过滤器列表中去除该过滤器。当移动节点106从FA112漫游离开时,HA108可为FA-HA对去除该过滤器。例如,当移动节点在移动IP会话中注册新的“转交地址(care-of-address)”时,HA108会去除该过滤器,或者表示它不再利用外部网络的FA112。通过去除不再有效的过滤器,HA108能够提高其处理处理输入包的效率。
在另一实施例中,可为FA-HA对定义多个策略或过滤器。在一个实例中,IPsec会话可具有用于Phase_1和Phase_2的策略。用于这些阶段(phase)的策略可在移动节点连接于FA时建立,然后FA将移动IP注册请求传递到HA并且获得作为反馈的响应。用于Phase_1的过滤器可包括指明FA与HA之间的ISAKMP包的参数。例如,它可指明用于FA的IP地址、用于HA的IP地址、IP协议以及源和目标端口。用于Phase_2的过滤器可包括指明FA与HA之间的隧道包的参数。例如,它可包括用于HA的IP地址、用于FA的IP地址和协议类型(例如IP-in-IP、通用路由封装(“GRE”)或其他类型)。在另一实例中,它可包括用于HA的IP地址、用于FA的IP地址、协议类型(例如UDP、TCP等)以及源和目标端口。
尽管前面的实例说明了在IPsec环境中动态地链接策略和动态地建立过滤器,但是基于策略的服务可用于各种不同系统中。例如,它们可用于网络地址转换(NAT)/端口地址转换(PAT)系统。另外,它们可应用于防火墙环境、服务质量(“QoS”)环境或其他系统中。例如在QoS中,策略模板可包括默认优先权和管制信息。AAA可将Diffserv标记和管制信息传递到PDSN。然后PDSN可从该策略模板中建立一策略实例,或者可从移动用户中选择使用该策略模板。
应当理解,这里所述的程序、处理、方法和设备并不相关或限定于任何特定类型的计算机或网络设备(硬件或软件),除非另有指明。各种类型的通用或专用计算机设备可按照这里所述的指导来使用或执行操作。尽管优选实施例的各元件已描述为以软件实施,但是在其他实施例中,以硬件或固件实施也是可选择使用的,反之亦然。
从本发明的原理能够应用于广泛多样的实施例的观点来看,应当理解所述实施例仅是示范性的,不应当被视为限制本发明的范围。例如,流程图的步骤可采用所述之外的顺序,并且更多、更少或其他元件可用于框图中。
权利要求不应当被理解为限于所述次序或元件,除非对其效果另有说明。此外,在权利要求中利用术语“设备”旨在调用35 U.S.C.§112,第6段,并且没有“设备”一词的任一权利要求并无此意图。因此,落入所附权利要求及其等效的范围和精神之内的所有实施例均被本发明请求保护。
权利要求
1.一种用于动态提供互联网协议安全策略服务的方法,包括步骤接收从一移动节点发送到一外部代理的一连接请求,其中该移动节点使用移动互联网协议;获取至少一个用于该移动节点的策略模板,其中该至少一个策略模板包括处理信息,用于在该外部代理与该移动节点的一本地代理之间发送的互联网协议安全包;与该本地代理协商互联网协议安全参数;以及建立至少一个过滤器,其中该至少一个过滤器识别在该本地代理与该外部代理之间传送的数据包,以接收互联网协议安全处理,并且其中该至少一个过滤器识别该至少一个策略模板,以应用于接收互联网协议安全处理的所述数据包。
2.如权利要求1所述的方法,还包括一计算机可读介质,在该介质中存储有用于使得一处理器执行该方法的所述步骤的指令。
3.如权利要求1所述的方法,还包括步骤将该至少一个过滤器存储于一过滤器列表中,其中该外部代理维护该过滤器列表。
4.如权利要求3所述的方法,还包括步骤终止与该移动节点的连接;以及从该外部代理过滤器列表中去除该至少一个过滤器。
5.如权利要求1所述的方法,其中,利用互联网密钥交换,协商所述安全参数。
6.如权利要求1所述的方法,其中,利用互联网安全关联和密钥管理协议,协商所述安全参数。
7.如权利要求1所述的方法,其中,该至少一个策略模板指明加密的类型。
8.如权利要求1所述的方法,其中,该至少一个策略模板指明一密钥的使用期限。
9.如权利要求1所述的方法,其中,该至少一个策略模板指明用于协商互联网协议安全服务类型的至少一个规则。
10.如权利要求1所述的方法,其中该至少一个过滤器包括一第一过滤器和一第二过滤器;以及其中该第一过滤器包括用于指明互联网安全关联与密钥管理协议包的端点的参数,并且其中该第二过滤器包括指明需要互联网协议安全服务的包的参数。
11.如权利要求1所述的方法,其中该至少一个策略模板包括用于网络地址转换/端口地址转换应用的信息。
12.如权利要求1所述的方法,其中该至少一个策略包括用于一防火墙应用的信息。
13.如权利要求1所述的方法,其中该至少一个策略包括多个策略。
14.如权利要求1所述的方法,其中该至少一个过滤器包括多个过滤器。
15.一种用于向一移动节点动态提供策略服务的方法,包括步骤接收从一外部网络上的一外部代理发送到一本地网络上的一本地代理的一认证请求,其中该认证请求指示从该本地网络漫游到该外部网络的一移动节点,并且其中该移动节点使用移动互联网协议;判定该移动节点是否需要互联网协议安全,该互联网协议安全用于在该外部代理与该本地代理之间发送的包;向该外部代理告知该移动节点需要互联网协议安全,用于在该本地代理与该外部代理之间发送的数据包;以及将用于该移动节点的至少一个安全策略模板链接到该本地代理,其中该安全策略模板指明在该外部代理与该本地代理之间的互联网协议安全通信中所用的参数。
16.如权利要求15所述的方法,还包括一计算机可读介质,在该介质中存储有用于使得一处理器执行该方法的所述步骤的指令。
17.如权利要求15所述的方法,还包括步骤建立一过滤器,其中该过滤器识别在该本地代理和该外部代理之间传送的包,以接收互联网协议安全处理,并且其中该过滤器识别该策略模板,以应用于接收互联网协议安全处理的所述包;以及将该过滤器存储于一本地代理过滤器列表中。
18.如权利要求15所述的方法,还包括步骤与该外部代理协商互联网协议安全参数。
19.如权利要求18所述的方法,其中,利用互联网密钥交换,协商所述互联网协议安全参数。
20.如权利要求18所述的方法,其中,利用互联网安全关联和密钥管理协议,协商所述互联网协议安全参数。
21.如权利要求18所述的方法,其中利用OAKLEY协议,协商所述互联网协议安全参数。
22.如权利要求17所述的方法,还包括步骤确定该移动节点已漫游离开该外部网络;以及将该过滤器从该本地代理过滤器列表中去除。
23.如权利要求17所述的方法,其中判定该移动节点是否需要互联网协议安全的步骤还包括访问一认证、授权与记帐服务器。
24.一种用于在一互联网协议安全应用中提供策略服务的方法,包括步骤从漫游到一外部网络的一移动节点接收一请求,以建立到达一本地网络的安全连接,其中该移动节点使用移动互联网协议;向该本地网络认证该移动节点;接收一指示,以将互联网协议安全用于在该本地网络上的一本地代理与该外部网络上的一外部代理之间发送的包;将用于该移动节点的一策略链接到该外部代理,其中该策略标识在该外部代理与该本地代理之间发送的互联网协议安全包所用的处理信息;与一本地代理协商互联网协议安全参数,以在该外部代理与该本地代理之间建立一虚拟隧道;建立一用于该移动节点的过滤器,其中该过滤器能够用于识别利用互联网协议安全的、在该外部代理与该本地代理之间传送的包;以及将该过滤器存储于一过滤器列表中。
25.如权利要求24所述的方法,还包括一计算机可读介质,在该介质中存储有用于使得一处理器执行该方法的所述步骤的指令。
26.如权利要求24所述的方法,还包括步骤接收一包;搜索该过滤器列表,以判定是否将互联网协议安全处理应用于该包;以及至少部分地基于该策略中含有的信息,处理该包。
27.如权利要求24所述的方法,还包括步骤确定该移动节点已漫游离开该外部网络;以及将该过滤器从该过滤器列表中去除。
28.如权利要求24所述的方法,其中该策略标识在经过该虚拟隧道发送包中所用的互联网协议安全加密的类型。
29.如权利要求24所述的方法,其中该策略指明在经过该虚拟隧道发送包中所用密钥的使用期限。
30.如权利要求24所述的方法,其中该策略指明解释规则的域,该解释规则用于协商经该虚拟隧道发送包所用的服务类型。
31.如权利要求24所述的方法,其中该移动节点是一无线计算机、一个人数字助理或一移动电话。
全文摘要
移动节点可从它的本地网络漫游到外部网络。移动节点可利用移动互联网协议进行通信,并且可利用互联网协议安全以与它的本地网络通信。外部网络上的外部代理和本地网络上的本地代理可动态地链接在外部代理与本地代理之间的互联网协议安全会话所用的策略。外部代理和本地代理可动态地建立互联网协议安全会话所用的过滤器。
文档编号G06FGK1643947SQ03805843
公开日2005年7月20日 申请日期2003年3月19日 优先权日2002年3月20日
发明者萨蒂什·阿玛拉, 默德维·维尔马 申请人:Ut斯达康有限公司