首页> 中国专利> 使用基于角色的访问控制来提供网络安全的方法和装置

使用基于角色的访问控制来提供网络安全的方法和装置

摘要

本发明公开了一种用于使用基于角色的访问控制来提供网络安全的方法和装置。实现该方法的网络设备例如可包括访问控制列表(700)。该访问控制列表包括访问控制列表条目(710),访问控制列表条目又包括一个和多个用户群组字段(730和740)。或者,实现该方法的网络设备例如可包括包括多个转发表条目(310)的转发表(300)。在此情形下,至少一个转发表条目包括用户群组字段(350)。

著录项

  • 公开/公告号CN1823514A

    专利类型发明专利

  • 公开/公告日2006-08-23

    原文格式PDF

  • 申请/专利权人 思科技术公司;

    申请/专利号CN200480020538.3

  • 发明设计人 迈克尔·R·史密斯;

    申请日2004-08-31

  • 分类号H04L29/06;H04L12/46;G06F1/00;

  • 代理机构北京东方亿思知识产权代理有限责任公司;

  • 代理人王怡

  • 地址 美国加利福尼亚州

  • 入库时间 2023-12-17 17:38:18

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2012-01-04

    授权

    授权

  • 2006-10-18

    实质审查的生效

    实质审查的生效

  • 2006-08-23

    公开

    公开

说明书

技术领域

本发明涉及信息网络安全领域,具体地涉及用于基于用户角色来保护用户对网络的访问的方法和装置。

背景技术

诸如无线、动态主机配置协议(DHCP)、虚拟专用网络(VPN)网关等灵活的网络访问技术允许用户从多个访问或进入点访问给定的受保护网络。对于所有形式的网络来说都是这样的,所述网络包括企业网、服务提供商网络等。同时,在提供这种访问的同时提供的安全也日益受到关注。基于远程认证拨入用户服务(RADIUS)、终端访问控制器访问控制系统(TACACS)、DIAMETER协议和其他协议的技术允许用户在进入网络时被认证。

已知通过这些网络的通信路径在概念上是分离的(即可被视为分离的虚拟路径),虽然它们经过的某些或所有网络设备(即物理网段)可能是相同的,因此,可例如使用访问控制列表(ACL)对它们分别进行控制。传统上,对网络用户所享有的访问的约束由ACL施行,其被用来处理数据包并从而控制这些用户的网络流量。在可扩展性和可管理性方面,传统ACL需要用户主机地址(作为给定的(多个)数据包的源;例如因特网协议(IP)地址)的映射相对固定,或者安全政策足够宽松以致允许所有可能的用户地址。

今天的安全ACL有若干弱点。传统上,这些ACL被应用到给定接口,并且包含将安全政策直接捆绑到网络拓扑上的IP地址。因此,诸如子网的重新划分这样的网络改变会导致安全政策被再次访问。此外,还会出现这种情况,即每次用户被认证到该网络时,网络各个部分的ACL都需要更新,以添加特定于该用户的与分配给该用户的主机的源IP地址相关联的规则。这将导致独特ACL的数量大大增加,而且显著增加了必须更新这种规则的速率。

在给定ACL中还存在这样的问题,即单个的IP地址表达导致大小的显著增加,其中条目数通常是源地址数乘以目的地地址数,再乘以许可数。因此,添加一个单个的IP地址可能对相当多的ACL的大小产生明显影响。

当客户改变网络拓扑时,ACL必须被复查。由于这些ACL可能很容易就达到几百甚至几千行的长度,因此这种复查至少不能说是微不足道的。由于这种ACL的复杂性,因此所作出的改变的可信度一般不是很高,而且ACL在被放入生产环境(production environment)之前常常需要用户的广泛测试。此外,由于在发生任何改变时,使用内容可寻址存储器(CAM)来实现ACL的平台都需要一些或全部ACL被重新编辑,因此处理成本的增加可能是很严重的,与用户数呈二次方关系。复杂度的增加使出现网络故障和/或安全漏洞的机会增加。单个的ACL限制了用户管理他们的安全政策的能力。因此,在整个企业网上放置这种ACL影响了今天的网络的可管理性。由此可见,尤其是考虑到现在需要的和将来会需要的更加灵活的访问,依靠现有的基于ACL的解决方案是很困难的。

因此需要这样的机制,其使得可对来自给定主机的网络流量进行高效识别。优选地,这样的手段应采用现有的ACL技术,同时减少或消除当前在添加主机时遇到的ACL成倍增加的问题。还优选地,这种手段将允许网络被很容易地重配置和增长,而不导致不成比例的管理负担或消耗过多的网络资源。

发明内容

在一个实施例中,公开了一种网络设备。该网络设备包括访问控制列表。该访问控制列表包括访问控制列表条目,其又包括用户群组字段。在另一实施例中,该网络设备包括转发表。该转发表包括多个转发表条目。在该实施例中,至少一个转发表条目包括用户群组字段。

在另一实施例中,公开了一种使用基于角色的访问控制来提供网络安全的方法。该方法包括将数据包的用户群组与该数据包的目的地的用户群组进行比较。

在另一实施例中,公开了一种方法,其中访问控制列表被填充以目的地用户群组标识符。该目的地用户群组标识符标识目的地的目的地用户群组。在另一实施例中,公开了一种方法,其中转发表被填充以用户群组标识符。

上面是概述,因此包含了必要的简化、概括并省略了细节;因此,本领域的技术人员将理解,该概述仅是示例性的而决非限制性的。本发明的其他方面、创造性特征和优点仅由权利要求限定,并将从下面的非限制性详细说明而变得很清楚。

附图说明

通过参照附图,本领域的技术人员将更好地理解本发明并明了其多种目的、特征和优点。

图1A是示出了根据本发明实施例的分层用户群组的示意图。

图1B是示出了根据本发明实施例的不相交的用户群组的集合的示意图。

图2是示出了用于用户认证的体系结构的框图。

图3是示出了根据本发明实施例的转发表的框图。

图4是示出了确定数据包的可应用许可的处理的示意图。

图5是示出了根据本发明实施例的许可矩阵的框图。

图6A是示出了根据本发明实施例的许可矩阵链示例的框图。

图6B是示出了根据本发明实施例的许可矩阵链的另一示例的框图。

图6C是示出了根据本发明实施例的图6A和6B中图示的许可矩阵链示例的逻辑图的框图。

图7是示出了根据本发明实施例的访问控制列表(ACL)的示例的框图。

图8A是示出了根据本发明实施例的主机方子网的示例的框图。

图8B是示出了以根据本发明实施例的方式操作图8A所示的主机方子网的示例的流程图。

图9A是示出了根据本发明实施例的服务器方子网的示例的框图。

图9B是示出了以根据本发明实施例的方式操作图9A所示的服务器方子网的示例的流程图。

图10是示出了根据本发明实施例的包括主机和服务器的网络体系结构的示例的框图。

图11是根据本发明实施例,示出了数据包穿过图10所示的网络体系结构以及在其上执行的处理的示例的流程图。

图12是示出了根据本发明实施例对接受基于角色的访问控制(RBAC)的数据包所执行的处理示例的流程图,其中所述数据包是所接收的第一个这种数据包。

图13是示出了根据本发明实施例对后续接收到的接受基于角色的访问控制(RBAC)的数据包所执行的处理示例的流程图。

图14是示出了根据本发明实施例在数据包流过网络设备的数据路径时处理数据包的示例的流程图。

在不同附图中,使用相同的标号标示类似或相同的项目。

具体实施方式

下面将提供对本发明示例的详细描述,该表述不应被理解为对发明本身的限制。相反,多种变形都可能落在所附权利要求所限定的本发明的范围内。

绪论

本发明提出了一种方法和装置,其通过使用基于角色的访问控制列表(RBACL)来解决上面提到的限制,其被设计来直接解决上述问题。经网络访问许可的用户(例如具有用户标识符、服务器、因特网协议(IP)电话和其他此类网络设备的人)在传统上是基于该用户所属的(多个)群组、企业分配给该用户的(多个)角色、用户作为ISP客户所具有的(多个)特权或类似标准。应当理解,事实上,这种用户可能是具有用户标识符的人、网络设备、电信设备或需要访问通信网络的某些其他可标识设备或访问实体。RBACL通过基于生成网络流量的用户的(多个)角色来施行要被应用于该网络流量的许可,从而控制网络流量。

根据本发明的方法和装置使用群组来代表用户角色。用户被给予基于该用户的角色的一个或多个群组中的成员资格。每个群组可代表一个或多个角色。然后,应用许可列表来判定是否许可群组之间的通信。例如当网络实体(例如用户)被认证(例如作为经由802.1X协议或其他此类机制的用户认证的一部分)时,用户群组可被分配。因此,当实体认证时,实体被放入“用户群组”(UG)。认证可基于用户标识、网络中的服务器功能或其他此类特性。

然后,该信息可被用来确定对源自该实体的数据包的处置。例如,当数据包被发出到网络上时,有关源的群组的信息被插入数据包。该信息(这里也称为标签)的传送可以若干种方式实现。例如,该信息可被实现为源群组标签(指示源所属的群组的标签),但是也可采用其他方法。

当数据包穿过网络时,源群组信息与数据包中的其他信息一起被携带。在网络的出口边缘处,目的地群组可被导出。例如,在“L3”边缘(第3层网络的边缘处的网络设备)处,可通过被完全解析的主机前缀来从网络设备的转发信息库(FIB)导出目的地群组。主机前缀通过地址解析协议(ARP)被解析。在数据包被发出到网络上时,用目的地群组对ARP响应贴标签。除了重写信息以外,FIB结果还被填充以目的地群组。一旦源和目的地群组被确定,就可使用该信息来应用许可(ACL)。

本发明的主要优点包括ACL大小的成倍减少、软件ACL性能的成倍增加、网络拓扑和安全(或其他特征)政策的去耦(允许ACL在用户运动通过企业时跟随用户),以及简化的网络管理。

在认证体系结构中的角色的实现

图1A的示意图示出了根据本发明实施例的分层用户群组。分层用户群组(UG)类似于在面向对象编程中出现的类层次结构。每个子群组从其父群组处继承许可,并且用它自己的许可来扩展许可。用户群组层次结构100被示为包括若干用户群组,每个用户群组都依赖于其他的用户群组。用户群组层次结构100包括全部用户群组110、雇员群组120、顾问群组130、管理人员群组140和经理群组150。如图1A所示,这些群组在层次上彼此相关,其中经理群组150是管理人员群组140的子集,管理人员群组140是雇员群组120的子集,雇员群组120和顾问群组130是全部用户群组110的子集。以此方式,对不同资源的访问可基于用户所属的(多个)群组而被限制。例如,某个用户属于管理人员群组140。一般地,管理人员群组140中的用户将比雇员群组120中的用户具有对组织中的更多的计算和信息资源的访问权限,而比经理群组150中的用户更少的访问权限。很明显,一个人在用户群组层次结构100中位置越靠下,责任级别就越高,因此访问量就越大。

图1B的示意图示出了根据本发明实施例的不相交的用户群组的集合。当存在不重叠的、平等的和不相关的功能时,使用不相交用户群组。在RBACL的实际实现中,分层UG可使用不相交UG来实现,而且分层管理(如果存在的话)可作为负责配置RBACL的网络管理实体的责任。这些群组包括工程群组160、销售群组170和市场群组180。当存在由所讨论的群组执行的不重叠的、平等的并且不相关的功能时,可使用这种不相交用户群组。因为这些群组中的每一个的责任都与其他群组的如此不同,因此这些群组中的每一个都被预期为具有它们自己的可被给定群组的成员访问的资源集合。因此可以预期,给定群组中的用户将维护相同的许可集合,使得他们可访问相同的资源集合,但是并不限于此情形。

应当理解,多个群组的用户被放入同一群组是因为他们共享相同的许可。对群组的这一创建不意味着不发生用户群组之间或跨越用户群组的通信。其也不意味着在给定群组内没有许可施行。其仅仅意味着作为一个群组,用户将具有网络内的相同特权。

应当注意,基于角色的访问控制的实现代表了网络环境中的特殊问题。由于网络通信的双向本质,访问控制不但需要在用户(主机)与对象(服务器)之间应用,也需要在对象(服务器)与用户(主机)之间应用。这需要用户被群组化为一个角色,并且类似地,对象也被群组化为一个角色。此时,访问控制在群组间被严格应用。利用这样的去耦,网络设备可自由地移动通过网络和改变IP地址。整个网络拓扑可在不干扰现有RBACL所实现的安全政策的情况下改变。只要角色和许可保持不变,这样的改变就能在适当的地方,在不影响当全政策的情况下发生。从给定数据包的角度看,数据包仅仅是源自一个群组,目的地为另一个群组,其中这两个群组可以是也可以不是不同的。通过使用RBACL回答的问题是,基于源和目的地群组,数据包的运输是否是允许的。

RBACL的实现一般包括若干操作。这些操作包括:

1.源用户群组(SUG;或用户)确定

2.目的地用户群组(DUG;或对象)确定

3.许可确定

4.许可施行

图2的框图示出了用于用户认证的体系结构。例如当用户在网络上被认证时,可进行SUG确定。下列示例例如可利用远程认证拨入用户服务器(RADIUS)协议,其提供用于多种访问的集中认证、认证和记帐。用户认证由试图登录主机200的用户发起。用户(未示出)使得主机200充当请求者,因此发送开始消息到服务器210(也称为认证器)。服务器210用请求/身份消息来响应主机200,主机200基于用户响应对该消息响应以响应/身份消息。该响应/身份消息例如可以是典型的用户名和口令的组合。服务器210将该信息传递给认证服务器220。

认证服务器220响应以访问质询(access-challenge)。应当注意,在认证期间,在服务器210与认证服务器220之间发生多种交换,这些仅是示例性的。这些交换将依赖于所采用的认证协议而有所不同。一旦访问质询交换完成,服务器210就通过将质询从认证服务器220转发到主机200来与主机200交互。在本示例中,主机200响应以一次口令(OTP),服务器210将该口令转发到认证服务器220。假设口令被认证服务器220接受,则认证服务器220就响应以访问接受消息,该消息使得服务器210认证主机200的网络地址。

本发明的实施例依赖于该认证处理来允许分发用户群组信息。本发明可采用例如结合图2所示的认证过程来提供将用户的群组成员资格从认证服务器220传输到入口网络访问设备的能力。在RADIUS协议中,要被传递到服务器210(并最终传递到入口交换机)的包含用户群组的供应商专用属性使用RADIUS访问接受响应。因此,当用户在网络上被认证时,进行源用户群组确定。或者,如果主机的操作系统是受信的,则用户群组可来自主机本身。如果是这种情形,则基于发出数据包的应用,每个应用可不同地对给定数据包加标签。

应当注意,在原始的IEEE 802.1X规范中,当对端口进行单个有效认证时,整个端口都被认证。然后,附接到该端口的任何主机都被认为是认证过的。以相同的方式,获得源群组标签(SGT)的最简单方法就是在第一次有效认证之后将整个端口标记为认证过的。然后,初始认证所提供的群组标识符被使用和安装在入口端口中。

图3的框图示出了根据本发明的转发表300。转发表300包括若干转发表条目(在图3中示为转发表条目310(1)-(N))。每个转发表条目310(1)-(N)都包括若干字段,其中的某些字段在图3中示出。所述字段有MAC地址字段(示为MAC地址字段320(1)-(N))、虚拟局域网(VLAN)标识符字段(示为VLAN标识符字段330(1)-(N))、端口标识符字段(示为端口标识符字段340(1)-(N)),以及用户群组标识符(标签)字段(示为用户群组标识符字段350(1)-(N))。

当媒体访问控制(MAC)地址和VLAN已在给定端口上被认证时,经由RADIUS认证而获取的用户群组被分配给MAC地址/VLAN标识符组合。该信息出现在转发表300中在MAC地址字段320(1)-(N)和VLAN标识符字段330(1)-(N)中。因此,转发表300包含MAC地址/VLAN标识符组合,该组合可被用作为查找键值,并且查找的结果提供端口标识符(例如存储在端口标识符字段340(1)-(N)中合适的一个中)和用户群组标识符(例如存储在用户群组标识符字段350(1)-(N)中对应的一个中)。转发表条目310(1)-(N)中特定的一个优选地是在入口交换机上为静态的,在此情形下,删除应由所采用的认证协议触发,而不是由一般对转发表条目所采用的陈旧标准来触发。

应当注意,在一种实现中,当数据包由主机例如主机200发送时,学习查找的第二层(被提供作为维护转发表300的网络交换机中的装配功能(rigging function)的一部分)也通过在转发表中查找数据包的内容而导出数据包的用户群组标识符。或者,交换机的学习查找的第二层可被设计为从数据包本身提取用户群组标识符。该用户群组标识符被用来标记用于识别的数据包,就如同由给定的用户群组中的用户生成的那样。这样的标签这里被称为源群组标签(SGT)。该SGT被插入数据包,以在后续的数据包处理中使用。例如,SGT可被插入第二层头部,使得该信息对第三层路由器和第二层交换机可用。

注意,变量标识符“N”被用在这里所描述的图中的多个实例中,其仅指代一系列相关或类似元素的最后一个元素。该变量标识符的重复使用并不一定意味着这些元素系列的大小之间有关联,虽然这种关联可能存在。这种变量标识符的使用不需要每个元素系列与用同一变量标识符限定的另一系列具有相同数量的元素。相反,在每种使用情形下,由“N”标识的变量(或任意其他这种标识符)可与同一变量标识符的其他情形具有相同或不同的值。

此外,关于此处所述的信号,本领域的技术人员将认识到,信号可直接从第一框传送到第二框,或者信号可在框之间被修改(例如放大、衰减、延迟、锁存、缓冲、反相、滤波或其他修改)。虽然上述实施例的信号被描述为从一个框传送到另一个,但是本发明的其他实施例可包括代替这种直接传送信号的修改后信号,只要信号的信息和/或功能性方面在框之间被传送。在某种程度上,第二框处的信号输入可被概念化为这样的信号,该信号是由于所涉及的电路的物理限制(例如某些衰减和延迟是不可避免的)而从第一框所输出的第一信号导出的。因此,如此处所使用的,从第一信号导出的第二信号包括第一信号或对第一信号的任何修改,该修改要么是由于电路限制,要么是由于通过不改变第一信号的信息和/或最终功能性方面的其他电路元件。

在合适的RBACL可被应用前,还对目的地用户群组的目的地进行确定。虽然若干机制可被用来进行这种确定,但是现在讨论两种确定目标(服务器)的DUG的方法。应当理解,每一种在某些情况下都有其自身的优点。

确定DUG的第一机制采用由地址解析协议(ARP)在地址解析期间提供的转发信息库(FIB)(即IP FIB)中的信息。对于涉及使用IP的网络流量的大多数情形来说,目的地用户群组可从FIB导出。在网络的出口网络的第三层(L3)的边缘,FIB将被填充以在执行ARP解析后的解析所得的主机前缀。由于ARP响应是FIB条目更新的触发并且需要在任何流量流到主机前被接收,因此ARP响应被用作为将目的地用户群组插入FIB条目的触发。

导出目的地用户群组的确切方法依赖于平台和网络到主机的连通性。下面是用于导出目的地用户群组的三种不同的可能情况。

在第一情况下,主机利用路由器被直接认证。在此情形下,主机直接连接到传统路由器(没有第二层网络(L2)交换的路由器)。当ARP响应被接收时,本地认证数据库将被查询,以获取用于目的地IP地址的对应用户群组。如果在本地认证数据库中没有找到条目,则默认目的地用户群组将被分配。

在第二情况下,主机利用直接连接的第二层网络(L2)交换机被直接认证。当主机利用直接连接的L2交换机认证时,路由器可在第二层网络内位于多个跳以外的地方。当ARP响应被直接连接到主机的边缘交换机接收时,数据包被上述机制之一贴以SGT标签。当ARP响应被触发ARP请求的路由器接收时,目的地用户群组将从数据包本身被取出。

在第三情况下,主机利用第三层网络(L3)交换机被直接认证。在此情形下,主机直接连接到提供认证的L3交换机和用于该主机的边缘L3接口。应当注意,术语“L3交换机”是指具有L2交换机的附加功能的路由器。当ARP响应从主机到达时,数据包被标记以来自媒体访问控制(MAC)层的SGT,VLAN学习在L2表中的查找。以此方式,L3交换机可将这种情形视为与前一情况一样。

或者,目的地用户群组可通过静态入口ACL被确定。应当理解,当将RBACL使能的网络连接到非RBACL使能的网络时,认证基础设施将不存在于非RBACL使能的网络中。以与上述的分配源用户群组类似的方式,在此情况下,目的地用户群组需要通过相同的机制被分类。通过使用入口ACL来提供目的地用户群组分类,目的地IP地址/子网可指示目的地用户群组确定要应用的正确RBACL。应当注意,出口ACL也可被使用,只要DUG确定发生在RBACL施行之前。应当理解,往往最好使用出口ACL进行检查。

图4的示意图示出了使用上面讨论的操作来确定对给定数据包的可应用许可的处理。数据包的源用户群组(在图4中示为源用户群组(SUG)400)和目的地用户群组(示为目的地用户群组(DUG)410)被作为到许可确定处理(示为许可确定420)的输入。因此,SUG和DUG是到确定应用哪个许可的处理的输入,如上所述。许可确定420一般将采用许可列表。许可列表确定通过使用访问控制矩阵而被执行,在某些实施例中,访问控制矩阵是由源和目的地群组索引的用于提供允许的许可的列表。在这里的情形下,源用户群组和目的地用户群组被用来进行该确定。然后,许可确定420的结果在RBACL 430中被检查。因此,SUG和DUG被用来确定所应用的RBACL(许可列表)。

基于软件的许可的体系结构的示例

图5的框图根据本发明示出了许可矩阵500和许可列表510。许可矩阵500中的条目(示为许可矩阵条目520(1,1)-(N,N))中的每一个指向许可列表510中的条目(示为许可列表条目530(1)-(N))之一。许可矩阵条目(PME)520(1,1)-(N,N)中的每一个由若干源用户群组标识符540(1)-(N)之一和若干目的地用户群组标识符550(1)-(N)之一索引。很明显,源用户群组标识符540(1)-(N)中的每一个对应于许可矩阵500中的一行,而目的地用户群组标识符550(1)-(N)中的每一个对应于许可矩阵500中的一列。许可列表条目530(1)-(N)中的每一条提供一列许可,所述许可例如关于在源用户群组和目的地用户群组之间许可的网络流量种类。例如,给定源用户群组标识符为4,目的地用户群组标识符为3,则PME 520(4,3)被标识。PME 520(4,3)包括指向许可列表条目530(5)的指针。许可列表条目530(5)可包含如下许可列表:

许可tcp www

许可tcp telnet

许可tcp ftp

许可tcp ftp-data

隐含拒绝(implicit deny)

注意,这些许可与传统ACL相比一般很少。这是因为这些许可并不被应用于经过给定接口的所有网络流量,而仅被应用于两个特定用户群组之间的流量。例如,不再需要有关允许从因特网进入的流量类型的指定(接口ACL),而仅需要指定允许从因特网进入到某些服务器的流量类型(在RBACL许可列表中)。

一般地,许可矩阵将被相当稀疏地填充。但是存在这种情况,其中矩阵的特定列或行可能被完全填充。如果我们将安全政策视为源和目的地群组之间的一列许可集合,则安全政策可被定义为:

  SUG1  DUG4  许可列表A  SUG2  DUG5  许可列表B  SUG3  DUG6  许可列表C

       表1许可矩阵示例

图6A的框图根据本发明示出了许可矩阵链的示例。在此情况下,从许可矩阵500选出的指针指向若干许可列表(在图6A中示为许可列表600、许可列表610和许可列表620)中的一个,这些许可列表又依次指向另一个,并终止于隐含拒绝许可(示为图6A中的隐含拒绝630)。许可列表600、610和620的示例在上面的表1中给出。

因此可看出,许可列表620建立在许可列表610列出的许可之上,许可列表610又建立在许可列表600列出的许可列表之上。与典型的许可列表一样,列表终止于隐含拒绝,表明除非特别允许,否则没有许可被授权。

在图6A所示方式中,可通过以下方式来为许可矩阵500中的每个条目创建一列许可,所述方法即简单地组合许可列表(例如许可列表600、610和620以及其他此类许可列表)以获得所需的对许可矩阵500中的指向给定的许可列表群组的条目所代表的源用户群组和目的地用户群组组合的许可集合。

理想的特征是允许网络的安全管理员为任何与特定目的地群组通信的源群组和任何与特定源群组通信的目的地群组指定许可列表。如果群组标识符是其值中没有任何语义被编码的单个标识符,则提供群组标识符的可变掩码没有什么价值。但是,为整个群组标识符提供掩码解决了上述需要。这导致了指定许可列表的分配的4种可能形式。

SUGx  DUGy  许可列表1

任何  DUGy  许可列表2

SUGx  任何  许可列表3

任何  任何  许可列表4

应当注意,最后一个形式(任何到任何)将用ACL许可列表4填充整个矩阵。这种配置可能导致给定数据包可能需要多个许可列表被应用。理论上,矩阵指向一连串许可列表(如图6A和6B表示),其中每个许可列表被依次经过。如图所示,每个许可列表终止于隐含继续,而隐含拒绝被应用在链末端。

事实上,支持这种组合的指针结构可从许可列表本身分离,简化了指针结构并减少了许可信息的重复。下面结合图6B讨论该方法。

图6B的框图示出了这样的许可列表集合的示例,其采用分离的指针结构集合(称为链),以简化支持本发明所必需的许可列表结构集合。和以前一样,许可矩阵500中的条目是指向所需的许可列表集合的指针。但是,与图6A所示的结构不同,许可矩阵500中的给定条目指向若干指针块(在图6B中示为指针块650、655和660)之一。可以看出,指针块650指向许可列表665和指针块655。以类似方式,指针块655指向许可列表670以及指针块660。类似地,指针块660指向许可列表675,但也指向中止指针链的隐含拒绝680。很明显,使用这种方法可创建复杂的结构,允许用户通过明智地使用指针来以不同方式使用许可列表。

在图6B所示的体系结构中,许可矩阵500的每个条目指向一个指针块,例如指针块650。指针块650指向许可列表(例如许可列表665),并且指向另一指针块(例如指针块655)或者隐含拒绝(例如隐含拒绝680)。因此,每个许可列表(例如许可列表665、670和675)对于构成了最终被实现用于许可矩阵500中的给定条目的整体许可列表的任何一个指针块都是可用的。这种结构通过对可能被实现的任意类型的许可仅需要一个这样的许可列表,允许高效地使用许可列表。因此,对每个许可集合来说,系统仅实现一个指针块集合并使得这些指针块的许可列表指针指向实现所需许可集合所必需的许可列表。由于这些许可中的每一个都可被重复使用任意次,所以这种实现所消耗的空间远小于不使用这种方法所消耗的空间。

图6C的框图根据本发明示出了图6A和6B所示的许可矩阵链示例的逻辑图。如二示例中所示,许可矩阵500的给定条目以上面讨论的方式指向若干许可列表(在图6C中示为许可列表690、692和694)中的第一个,所述若干许可列表终止于隐含拒绝696。

因此,在基于软件的实现中,可采用基于树、基于哈希表或其他此类查找结构,所述查找是对关于源和目的地用户群组的连接的匹配。查找结果是指向ACL链的指针。这些ACL以它们在链中出现的顺序被经过。这些ACL在逻辑上被视为一个被链在一起的ACL。

在很多ACL实现中,两种手段常常被采用。一种手段是基于网络处理器(软件)的模型。这种实现类似于软件实现并可受益于该手段。另一种手段是使用基于CAM的解决方案。下文集中讨论基于CAM的实现。

使用基于角色的访问控制列表实现的基于硬件的许可体系结构的示例

基于CAM的实现提供了并行查找的优点和掩码字段的能力。并行查找提供了高的、可预测的和一致的性能。不幸的是,单个查找为设备的软件编程制造了大量麻烦,因为典型实现假设了顺序处理。

如果平台支持的群组数量很小(例如小于256),则许可矩阵的ASIC实现使用片上存储器可能是可行的。在此情况下,矩阵的输出提供了这样的标志(例如流标志),该标志然后可被用来以类似于传统的基于CAM的ACL实现的方式来执行CAM查找。

但是,可能的情形是要被支持的群组数将大得多,使得片上实现不可行。因此,许可确定和许可施行一般被一起实现在CAM查找自身内。使用用于RBACL查找的单个流标志,源和目的地群组可被放入CAM流说明中源和目的地网络地址(例如IP地址)处。

图7的框图根据本发明示出了访问控制列表(ACL)的示例,并示作访问控制列表700。访问控制列表700包括若干条目(称为访问控制列表条目或ACE),其在图7中示为访问控制列表条目710(1)-(N)。ACE 710(1)-(N)中的每一个都包括例如流标志(在图7中示为流标志字段720(1)-(N))、源用户群组(SUG)标识符(在图7中示为SUG字段730(1)-(N))、目的地用户群组(DUG)标识符(在图7中示为DUG字段740(1)-(N)),以及其他流说明(在图7中示为其他流说明字段750(1)-(N))。已知例如ACL 700这样的ACL可使用内容可寻址存储器(CAM)来实现,更具体而言可采用三重CAM(TCAM)来实现,从而提供快速和高效的信息查找。可选的流标志(也称为ACL标志,在流标志字段720(1)-(N)中的合适的一个中被维护)被提供,以区分同一设备中的RBACL和传统接口ACL。仅采用RBACL的设备将不需要这一字段。

采用RBACL及其操作的示例网络

图8A的框图根据本发明示出了主机方子网和认证体系结构的示例。在此体系结构中,主机800经由交换机820与子网810通信。登录到主机800的用户以与结合图2所示和所讨论的方式,经由交换机820被认证服务器830认证。因此,例如,用户登录到主机800并经由交换机820被认证服务器830认证。在该认证期间,用户的用户群组被识别并作为源群组标签(SGT)被分配给用户,该标签对应于用户的角色(例如工程、管理、市场、销售等)。

更具体而言,用户可以是工程角色。主机800发起认证(例如通过IEEE 802.1X协议)。在RADIUS协议下,认证服务器830向用户质询用户标识和口令的组合。在成功认证后,RADIUS访问接受向用户分配对应于工程角色的SGT“5”。

用户计算机(主机800)的MAC、VLAN被插入L2表并被标记为安全MAC地址。表2示出了被填充以该信息后的第2层表。

  MAC  VLAN标识符  端口  用户群组  1234.ABCD.1234  4  PortA1  5

                        表2第2层表示例

图8B的流程图示出了图8A所示的主机方子网的操作示例。处理开始于主机800发起认证处理(步骤850)。接下来,从认证服务器830发出质询,以向用户质询其用户名和口令(再次以结合图2所描述的方式)(步骤855)。响应于该质询,用户提供他们的用户名和口令(步骤860)。然后,确定是否认证服务器830可认证该用户(步骤865)。如果用户不能被认证,则确定是否允许用户重新输入其用户名和口令(步骤870)。如果该信息的重新输入可接受,则处理循环到认证服务器830质询用户(步骤855)。否则(例如如果该重新输入已被允许了最多次数或根本不被允许),处理结束。

或者,如果用户被认证(步骤865),则用户被允许登录,并且访问接受被转发到主机800(步骤875)。此外,SGT基于用户的(多个)角色被分配(步骤880)。其与其他信息一起被用来填充交换机820所维护的第2层表(即转发表或相似构造)(步骤885)。这完成了用户登录处理。

注意,如这里讨论的其它图一样,图8B的流程图示出了根据本发明实施例的处理。应当理解,这里讨论的操作可由计算机系统用户或由专用硬件模块所执行的步骤直接输入的命令组成,但是优选实施例包括软件模块执行的步骤。这里所指的步骤的功能可对应于模块或模块的部分的功能。

这里所指的操作可以是模块(例如软件、固件或硬件模块)或模块的部分。例如,虽然所述实施例包括软件模块和/或包括手工输入的用户命令,但是各个示例模块可以是专用硬件模块。这里讨论的软件模块可包括脚本、批处理或其他可执行文件,或这些文件的组合和/或部分。软件模块可包括编码在计算机可读介质上的计算机程序或其子例程。

此外,本领域的技术人员将认识到,模块之间的边界仅是示例性的,而且可替换实施例可合并多个模块或对模块功能进行可替换的分解。例如,这里讨论的模块可被分解为子模块,以作为多个计算机进程并且可选地在多个计算机上被执行。此外,可替换实施例可组合特定模块或子模块的多个实例。此外,本领域的技术人员将认识到,在示例实施例中描述的操作仅是示例性的。操作可被合并,或者操作的功能可被分布在根据本发明的附加操作中。

此外,这些动作可被实施在实现这些功能的电路的结构中,例如复杂指令集计算机(CISC)的微代码、被编入可编程或可擦除/可编程器件的固件、现场可编程门阵列(FPGA)的配置、门阵列或全定制专用集成电路(ASIC),等等。

流程图的每个框可由模块(例如软件模块)或模块的部分或计算机系统用户执行。因此,上述方法、其操作和用于其的模块可在被配置为执行所述方法的操作的计算机系统上执行,并且/或者从计算机可读介质被执行。该方法可被实施在用于配置计算机系统以执行该方法的机器可读和/或计算机可读介质中。因此,软件模块可被存储在计算机系统存储器中或被传送到计算机系统存储器,以将计算机系统配置为执行模块的功能。

这样的计算机系统一般根据程序(一列在内部存储的指令,例如特定应有程序和/或操作系统)来处理信,并经由I/O设备产生作为结果的输出信息。计算机进程一般包括执行中(运行中)的程序或程序的部分、当前程序值和状态信息,以及操作系统用来管理进程的执行的资源。父进程可繁殖其他子进程,以帮助执行父进程的整体功能。因为父进程专门地繁殖子进程来执行父进程的整体功能的一部分,因此子进程(以及孙子进程等)所执行的功能有时可被描述为是由父进程执行的。

这样的计算机系统一般包括“并发”执行的多个计算机进程。通常,计算机系统包括能够交替地支持很多活动进程的单个处理单元。虽然多个进程可能显得是在并发执行,但是在任意给定时间点,仅有一个进程被所述单个处理单元实际执行。通过迅速改变进程执行,计算机系统给出并发的进程执行的表象。计算机系统在各个执行阶段的多个进程间复用计算机系统的资源的能力被成为多任务。具有多个处理单元的系统(其根据定义可支持真实的并发进程)被称为多处理系统。当多个活动进程在多任务和/或多处理环境中被执行时,这些进程通常被称为并发执行。

这里描述的软件模块可被这样的计算机系统例如从计算机可读介质接收。计算机可读介质可以是永久地、可移除地或远程地耦合到计算机系统。计算机可读介质可以不排他地包括例如以下几种介质中的任意种:磁存储介质,包括盘和磁带存储介质;光存储介质,例如致密盘介质(例如CD-ROM、CD-R等)和数字视频盘存储介质;非易失性存储器存储存储器,包括基于半导体的存储器单元,例如闪存、EEPROM、EPROM、ROM或专用集成电路;易失性存储介质,包括寄存器、缓冲器或缓存、主存储器、RAM等;以及数据传输介质,包括计算机网络点到点电信以及载波传输介质。在基于UNIX的实施例中,软件模块可被实现在下述文件中,所述文件可以是设备、终端、本地或远程文件、套接字、网络连接、信号或通信或状态改变的其他简易方法(expedient)。其他新的和各种计算机可读介质可被用来存储和/或发送这里讨论的软件模块。

图9A的框图根据本发明示出了服务器方子网的示例。在该示例中,服务器900通过交换机920耦合到子网910。交换机920还将服务器900耦合到认证服务器930,服务器930提供试图登录和访问子网910的实体的认证。在此情况下,与图8A和8B所示的用户认证形成对比,这里的处理是认证服务器930对服务器900的认证。

服务器900以与用于认证用户的主机计算机(主机800)的方式类似的方式而被认证。服务器900和认证服务器930采用用来认证身份或服务器900的认证协议(例如IEEE 802.1X)。服务器(服务器900)的MAC、VLAN被插入第二层表,并被标记为安全MAC地址。表3示出了被填充以该信息后的第二层表。

  MAC  VLAN标识符  端口  用户群组  5678.1234.DCBA  100  PortB5  6

                      表3第2层表示例

图9B的流程图示出了图9A所示的服务器方子网的操作示例。该处理开始于服务器900发起认证处理(步骤950)。一旦认证被发起,认证服务器930就经由交换机920质询服务器900(步骤955)。作为响应,服务器900经由交换机920向认证服务器930提供认证信息。然后,认证服务器930确定是否服务器900已被正确地认证(步骤965)。如果服务器900在这次认证处理中失败,则处理进行到末尾,服务器900不被允许经由网络访问其他网络节点或被其他网络节点访问。

但是,如果服务器900被认证(步骤965),则通过认证服务器930转发访问接受到交换机920和服务器900,服务器900被允许访问网络。此外,群组标签(更具体而言是DGT(但是从服务器900的角度看是SGT))基于服务器900的(多个)角色在交换机920处被分配给服务器900(步骤975)。应当理解,事实上,有关用户群组是源还是目的地用户群组的问题是从所讨论的数据包的方向来看的。这与其他信息一起被用于填充交换机920的第二层表(步骤980)。

图10的框图示出了包括主机1005和服务器1010的网络体系结构1000的示例。在图8A和8B所示的方式中,主机1005经由交换机1020被认证服务器1015认证。交换机1020还提供主机1005到子网1025的访问。在图9A和9B的所示的方式中,服务器1010经由交换机1035被认证服务器1030认证。交换机1035还提供到(和从)子网1040的服务器1010访问。子网1025和1040经由企业核心1050而可通信地彼此耦合。子网1025经由路由器1055访问企业核心1050,类似地,子网1040经由路由器1060访问企业核心1050。

图10还示出了具有内容1075的数据包1070。数据包1070被主机1005传送到交换机1020。在认证处理期间,基于认证服务器1015提供的信息,源用户群组信息以源群组标签1080的形式被交换机1020添加到数据包1070,以创建数据包1085。如图10所示,数据包1085包括内容1075和SGT 1080。数据包1085经过子网1025到达路由器1055。路由器1055通过企业核心1050将数据包1085路由到路由器1060。路由器1060经由子网1040将数据包1085提供给交换机1035(从而提供给服务器1010)。交换机1035至少部分基于认证服务器1030提供给服务器1010的DUG信息,确定是否将数据包1085传递到服务器1010。应当理解,可替换地,路由器1060也可承担该确定任务并进行确定。

现在给出数据包1075/数据包1085经过网络体系结构1000的特定示例。认证之后,主机1005可在网络上发送数据包(例如数据包1075)。由于在本示例中,RBACL被应用于第三层网络,因此用户试图发送到他的本地子网(例如子网1025)以外的任何数据包都将经历RBACL检验。应当理解,交换机1020和1035也可采用第二层域中的RBACL(例如分别在子网1025和1040中)。但是在此情形下,可能需要进行调节,例如以类似于VLAN ACL(VACL)的形式,将RBACL基于数据包的第三层寻址。

如果数据包1085是要从主机1005被发送到服务器1010的第一数据包,则将对目的地触发ARP处理。对数据包1085的发送开始于SUG(在此情形下值为5)从SGT 1080被取出。在路由器1055中对具有数据包1085的目的地的数据包进行FIB查找指示数据包应被转发到的下一跳。该下一跳信息例如可以是用于路由器1060的MAC重写信息或用于路由器1055和路由器1060之间的路由器的重写信息。这可在示出了具有这种内容的FIB的表4中看出。

  CAM            存储器  前缀  用户群组  下一跳信息  3.4.X.X  ---  重写  2.3.X.X  ---  X.X.X.X  ---

               表4示例FIB(路由器1055)

应当注意,在该示例中,前缀信息被包含在CAM中,而用户群组和下一跳信息被包含在标准存储器(例如SRAM)中。该查找是通过使用前缀来确定检验存储器中的哪个条目而被执行的。

注意,当数据包1075(较晚数据包1085)从主机1005被发送时,数据包1075未被贴标签。在此示例中,在进入交换机1020后,数据包1075被贴以SGT 1080标签(其指示用户群组为5)。该用户群组以上面讨论的方式从入口交换机(交换机1020)中的第二层表被获取。然后,该数据包(现在包括SGT 1080,被称为数据包1085)经由从其提供的路由和交换,通过网络体系结构1000被发送。

在出口路由器(路由器1060)处,执行FIB查找。如果FIB查找命中本地附接的子网,则搜集邻接(glean adjacency)使得为所需服务器(例如服务器1010)生成ARP请求。ARP请求从路由器1060被发送到服务器1010。然后,ARP响应从服务器1010被发送。入口L2交换机(交换机1040)将用于服务器1010的SUG(或者被网络体系结构1000的交换机/路由器(例如主机1005)用来作为被发送到服务器1010的数据包的DUG,其被设置为用户群组为6)插入ARP响应(在L2头部中)。路由器1060接收ARP响应,并用解析后的主机前缀来填充FIB。重写信息包含来自ARP响应的主机MAC地址和目的地用户群组(6)。得到的FIB的示例如下表所示

  CAM            存储器  前缀  用户群组  下一跳信息  3.4.1.1  6  重写  3.4.X.X  ---  搜集  X.X.X.X  ---

          表5 ARP响应和填充后的示例FIB内容

在数据包1085是从主机1005到服务器1010的后续数据包的情形下,所讨论的表应已被填充。一旦路由器1060的FIB包含被完全解析的主机前缀,则到服务器1010的下一数据包将经历访问控制。(在本示例的本发明实施例中,触发ARP解析的第一数据包被丢弃。)当后续数据包从主机1005到达路由器1060时,路由器1060已经处理了与相关的源和目的地群组有关的信息。SUG(5)从后续数据包的SGT被提取,DUG(6)通过FIB查找被发现。

此时,执行ACL查找。假设基于CAM的实现被采用,则到CAM中的查找键值包含数据包信息以及源和目的地用户群组(5和6)。在本示例中,在两个群组之间仅许可web流量(tcp端口80)。示例RBACL条目在表6中示出。

  SUG  DUG  流说明  结果  5  6  TCP端口80  许可  7  8  TCP端口23  拒绝  任意  任意  任意  拒绝

                表6示例RBACL内容

因为在该示例中,后续数据包实际上是web流量(去往TCP端口80),因此合适的CAM条目被命中并且数据包到子网1040的传送(继而经由交换机1035到服务器1010)被许可。但是,进一步说明,如果后续数据包是Telnet数据包(去往TCP端口23),则数据包将命中CAM中的任意—任意条目,其将不许可这种传送(有效地实现了软件AC1中存在的隐含拒绝)。现在结合图11、12、13和14来提供对上文中描述的操作的更概括的讨论。

图11的流程图示出了数据包经过例如被描述为网络体系结构1000的网络的过程的概括性示例。在此情况下,过程开始于主机1005发送数据包(例如数据包1070)(步骤1100)。于是,所发送的数据包被传送过本地交换机(例如交换机1020),其对数据包贴以源用户群组信息标签(例如SGT)(步骤1105)。然后,标签数据包(例如数据包1085)经过本地子网(例如子网1025)(步骤1110)。在经过本地子网后,数据包经过近处网络设备(例如路由器1060)(步骤1115)。此时,注意,路由器1055将数据包路由通过给定的中间网络(例如企业核心1050)(步骤1120)。在经过中间网络之后,数据包被远处网络设备(例如路由器1055)接收(步骤1125)。在远处网络设备处,基于角色的访问控制处理被执行(步骤1130)。这种处理结合图12、13和14被详细描述。

然后,确定是否给定数据包已通过了被执行的RBAC处理(步骤1135)。如果数据包没能通过RBAC检验(即被执行的RBAC处理),则数据包被丢弃(步骤1140)。本领域的技术人员将很清楚,其他动作可响应于这样的结果而被执行。或者,如果给定数据包通过了RBAC检验(步骤1135),则数据包被允许经过远处网络设备(步骤1150),然后经过远处子网(例如子网1040)(步骤1160)。然后,数据包经过远处交换机(例如交换机1035)(步骤1170)。最后,数据包到达目的地服务器(例如服务器1010)(步骤1180)。

图12的流程图示出了在数据包是所接收的第一个这种数据包时,网络设备例如路由器1060对该数据包执行的RBAC处理的示例。该处理开始于接收要使用本发明处理的数据包(步骤1200)。首先,数据包的SGT被提取(步骤1210)。接下来,查找被执行以确定数据包应被如何处置(步骤1220)。然后,确定是否给定数据包的目的地地址指示需要RBAC处理(步骤1230)。如果目的地地址指示不需要RBAC处理,则远处路由器根据需要对数据包执行其他处理,并合适地路由该数据包(步骤1235)。

但是,如果数据包的目的地地址指示RBAC处理将被执行,则远处路由器发送地址解析协议(ARP)请求到目的地服务器(例如服务器1010)(步骤1240)。服务器响应以ARP响应(步骤1250)。接下来,远处交换机将对应于服务器的群组的DGT(或SGT,从服务器1010的角度看)插入ARP响应(步骤1260)。远处路由器接收该ARP响应(包括指示服务器1010的DUG的DGT(或SGT,从服务器1010的角度看))(步骤1270),并利用该信息来填充其转发信息库(FIB)(步骤1280)。如前所述,然后,远处路由器执行所需的任何其他处理,并合适地路由数据包(步骤1235)。应当注意,事实上,该路由可以包括如果RBACL指示网络设备将拒绝到给定数据包的访问则丢弃该数据包。

图13的流程图根据本发明示出了对下述数据包执行的处理示例,该数据包是在图12的数据包之后被接收的,但仍然经历RBAC处理。与前面一样,该处理开始于接收给定数据包(步骤1300)。也与前面一样,数据包的SGT被提取(步骤1310)。查找被网络设备(例如路由器1060)执行,以确定给定数据包如何被处置(步骤1320)。然后,确定是否数据包的目的地地址指示需要RBAC处理(步骤1330)。如果数据包的目的地地址未指示需要RBAC处理,则远处网络设备在必要时执行其他处理,并合适地路由数据包(步骤1340)。

但是,如果远处网络设备确定数据包的目的地地址指示需要RBAC处理,则远处网络设备执行转发信息库(FIB)查找,以确定DUG(步骤1350)。然后,在出口ACL处理期间,远处网络设备确定是否RBACL条目指示给定数据包应被拒绝(步骤1360)。如果RBACL条目指示数据包应被拒绝,则数据包被丢弃(步骤1370)。或者,如果RBACL条目指示数据包应被转发,则远处网络设备在必要时执行其他处理并合适地路由给定数据包(步骤1340)。

图14的流程图示出了当给定数据包流过实现本发明的网络设备(例如路由器1060)的数据路径时,对该数据包的处理的示例。处理开始于数据包通过输入安全ACL(步骤1400)。一般地,用户创建这样的ACL,以防止造成已知威胁的数据包进入给定网络设备。接下来,网络设备的输入特征答复给定数据包(步骤1410)。网络设备的输入特征例如可包括传输控制协议(TCP)截取、服务器负载平衡、入侵检测、防火墙功能、web缓存重定向、加密/解密、输入QOS标记/管辖(policing)、基于政策的路由等。应当理解,这些特征中的大部分都专用于入口接口或覆写网络设备中可能进行的路由判决。

接下来,执行反向路径转发(RPF)检验(步骤1420)。在执行RPF检验时,网络设备(例如路由器1060)确定是否给定数据包在下述接口被接收,所述接口是网络设备将被预期用其来将单播数据包转发回传入数据包的源的接口。一般地,如果RPF检验成功,则路由器经由图14所示的其余动作将数据包转发到其想去的目的地。或者,如果RPF检验失败,则数据包被丢弃。

因此,在RPF检验通过时,然后,路由器执行路由查找(步骤1430)。接下来,基于角色的ACL查找被执行(步骤1440)。此时,基于用户的SUG(如数据包的SGT所指示,或经由ACL静态分配)和服务器的DUG(通过FIB查找(从前一数据包的SGT导出)导出或静态分配)的查找被用来确定是否允许对数据包的访问。

一旦数据包基于SUG/DUG组合而被允许访问,然后,输出特征就被应用到数据包(步骤1450)。可被实现的输出特征的示例例如包括入侵检测、流量整形、密码加密和解密、因特网协议(IP)记帐等。然后,输出安全ACL所控制的限制被应用(步骤1460)。输出安全ACL控制数据包的转发以确保在被网络设备处理后,被潜在地更改了的数据包不对网络设备的输出方的(多个)子网的安全造成威胁。以类似方式,可应用额外的输出特征(步骤1470)。

本发明的优点示例

以其最简单的形式,RBACL提供网络设备的群组之间的访问控制。群组分配基于所讨论的企业中的个体或设备的角色。通过将RBAC概念应用于网络,用户在若干重要方面受益。根据本发明的手段的优点包括改善了网络的可扩展性、提高了网络配置的灵活性和提高了网络的可管理性。

首先,可扩展性解决了当用户被添加到网络时,资源消耗成倍增长的问题。例如,本发明通过成倍地减小ACL的大小而解决了ACL“爆炸”的问题。一般地,ACL的大小(在ACL条目(ACE)的数量方面)已从:

ACE数=源地址数*目的地地址数*许可数减少到:

ACE数=源群组数*目的地群组数*许可数

在三个元素(源、目的地、许可)中,许可数通常是三者中较小的。可以看出,有理由预期:

源地址数>>源群组数而且:

目的地地址数>>目的地群组数

在此情形下,乘法项之一是较小的数,而另两个乘法项已被显著减小,成倍地减小了ACE数。例如,在ACL中,如果我们假设20个不同的源(客户端PC或子网)、5个不同的目的地(服务器)和它们之间的4个许可(允许web、FTP和SMTP邮件),这将创建具有400个ACE的ACL。如果我们假设源都是同一群组(这是合理的,因为源要么是群组成员,要么被隐含拒绝),而且目的地都是同一群组(在同一推理下),则使用RBACL的同一示例将仅使用4个ACE,在大小方面减小了两个数量级。

本发明的实现的进一步改善可扩展性的方面是RBACL许可集合可用比现有ACL有效得多的方式被重新使用。例如,假设工程群组被允许对工程web服务器群组的TCP端口80(www)访问。该许可列表由1个ACE(许可www)组成,并拒绝所有其他流量。同一许可列表可被重用于对市场web服务器群组通信的市场群组。这种重用传统ACL是不可能的。

本发明的一个辅助优点是,由于与现有ACL比较,RBACL的大小被显著减小,因此大小的减小导致软件性能的显著提高,该提高与ACL大小的减小成正比。换言之,可预期与传统的ACL相比软件RBACL的性能提高(可能是成倍提高)。

RBACL的另一主要优点是网络拓扑从安全政策去耦,为网络流量控制提供了灵活得多的手段。虽然ACL已在网络设备中存在了很长时间,但是ACL没能在整个企业中使用。目前,ACL主要布置在网络周缘上,一般是在企业和因特网之间。大多数企业中体验到的频繁改变使得ACL的实现和使用成为不可管理的命题。所述频繁的改变的一些示例包括:

1.用户不断更新网络地址(例如经由DHCP更新IP地址)

2.用户的物理移动性

3.子网形成(sub-netting)

4.对企业网络的一般拓扑进行频繁改变

5.频繁添加新设备/用户到网络

RBACL提供的灵活性允许用户移动到网络中的任意位置,而不对安全政策造成任何不希望的影响。一旦被认证和分配给用户群组,许可就可被应用,不论用户在网络中位置如何。RBACL本身不改变,因为相关群组和安全政策保持不变。在某种意义上,用户的安全政策在网络中跟随着他们。不论用户在哪里登录或用户连接到的物理交换机/路由器如何,所应用的安全政策都保持不变。

RBACL所提供的可管理性可能是它最大的优点。这与RBACL在可扩展性和灵活性方面提供的优点紧密相关。RBACL提供的可扩展性通过允许网络管理员查看RBACL和理解其效果(即RBACL试图达到的目标)而改善了网络管理。利用可能有几百甚或几千行长的传统ACL,精确地理解将对给定流进行什么操作几乎是不可能的。

RBACL的减小了的大小还允许RBACL被安装在整个企业网的路由器/交换机上。网络拓扑从被实现的安全政策去耦使得可将同一RBACL移动到网络中的任意位置,因为RBACL不受网络拓扑的影响。网络地址和入口/出口接口不影响RBACL的定义。这实现了整个网络上(因此是企业上)的用户移动,因为他们的许可将被施行在所有网络设备中。

当用户被添加到网络或新服务器被安装时,传统的ACL必须被更新,以包括新用户/设备。这涉及很高的成本,尤其是当ACL变得越来越大时。每次改变都有出现网络故障或安全漏洞的危险。该危险与ACL的大小成正比地增大。此外,随着ACL的大小增大,软件性能成正比地下降。在大组织中,当ACL需要被更新时,组织的安全小组必须评估和插入合适的条目。然后,该修改后的ACL被组织测试。最后,通过与组织的网络管理小组的协调,被修改和测试的ACL将被安装。这种处理的成本可能是巨大的。在类似情况下,使用RBACL,新服务器被简单地添加到合适的群组。ACL没有改变,而且适合于该群组的许可将被自动应用。

虽然已示出和描述了本发明的具体实施例,但是本领域的技术人员将很清楚,基于这里的教导,可在不脱离本发明及其更广泛的方面的情况下作出改变和修改,因此,所附权利要求是要将所有这种改变和修改包括在本发明的真实精神和范围内。此外,虽然本发明已参照具体实施例被具体示出和描述,但是本领域的技术人员应当理解,形式和细节的上述和其他改变可在不脱离本发明的精神和范围的情况下作出。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号