控制应用程序权限的方法及控制器的制造方法

文档序号:10515464阅读:348来源:国知局
控制应用程序权限的方法及控制器的制造方法【专利摘要】本发明实施例提供了一种控制应用程序权限的方法,本方法应用于SDN领域,包括:控制器接收应用程序的访问请求,所述控制器判断所述访问请求是否属于与所述应用程序对应的权限清单,其中所述权限清单是指对资源的操作的权限;如果所述访问请求属于所述权限清单,所述控制器允许所述应用程序进行访问。本发明实施例中,控制器判断应用程序的访问请求是否属于与该应用程序对应的权限清单,这样根据权限清单限制该应用程序的访问权限,进而能够避免应用程序的恶意攻击,保障网络安全。【专利说明】控制应用程序权限的方法及控制器
技术领域
[0001]本发明实施例设及通信领域,并且更具体地,设及一种控制应用程序权限的方法及控制器。【
背景技术
】[0002]软件定义网络(SoftwareDefine化twork,SDN)是一种控制和转发相分离的网络架构,将网络的控制功能集中在控制器上,并在控制器的上层部署应用程序(Application,APP)。运样,上层的应用程序可W通过控制器实现对网络的访问。[0003]但是,由于应用程序的来源众多,且控制器无法获知应用程序的来源是否可靠,运样容易导致非安全的应用程序对控制器的攻击,并造成对网络的恶意的破坏,从而可能会带来网络安全威胁。【
发明内容】[0004]本发明实施例提供一种控制应用程序权限的方法,能够避免应用程序的恶意攻击,保障网络安全。[0005]第一方面,提供了一种控制应用程序权限的方法,包括:控制器接收应用程序的访问请求;所述控制器判断所述访问请求是否属于与所述应用程序对应的权限清单,其中所述权限清单是指对资源的操作的权限;如果所述访问请求属于所述权限清单,所述控制器允许所述应用程序进行访问。[0006]结合第一方面,在第一方面的第一种可能的实现方式中,在所述控制器接收应用程序的访问请求之前,还包括:[0007]所述控制器接收所述应用程序发送的权限请求;[000引所述控制器根据所述权限请求,生成与所述应用程序对应的所述权限清单。[0009]结合第一方面的第一种可能的实现方式,在第一方面的第二种可能的实现方式中,所述根据所述权限请求,生成与所述应用程序对应的所述权限清单,包括:[0010]根据所述权限请求,采用权限过滤器,生成所述权限清单;[0011]其中,所述权限过滤器包括至少一个原子过滤器,所述至少一个原子过滤器中的一个原子过滤器用于表示对所述控制器的应用程序接口API调用的一个属性维度的过滤表达式。[0012]结合上述第一方面的任一种可能的实现方式,在第一方面的第Ξ种可能的实现方式中,所述根据所述权限请求,生成与所述应用程序对应的所述权限清单,包括:根据安全约束判断所述权限请求是否合法,其中,所述安全约束用于表示所述控制器所开放的权限的范围;当确定所述权限请求合法时,生成所述权限清单。[0013]结合第一方面或者上述第一方面的任一种可能的实现方式,在第一方面的第四种可能的实现方式中,[0014]所述判断所述访问请求是否属于与所述应用程序对应的权限清单,包括:[0015]将所述访问请求转化为析取范式,并将所述权限清单转化为合取范式;[0016]判断所述析取范式是否属于所述合取范式;[0017]所述如果所述访问请求属于所述权限清单,所述控制器允许所述应用程序进行访问,包括:[0018]如果所述析取范式属于所述合取范式,所述控制器允许所述应用程序进行访问。[0019]第二方面,提供了一种控制器,包括:[0020]接收单元,用于接收应用程序的访问请求;[0021]判断单元,用于判断所述接收单元接收的所述访问请求是否属于与所述应用程序对应的权限清单,其中所述权限清单是指对资源的操作的权限;[0022]执行单元,用于在所述判断单元确定所述访问请求属于所述权限清单时,允许所述应用程序进行访问。[0023]结合第二方面,在第二方面的第一种可能的实现方式中,所述接收单元,还用于接收所述应用程序发送的权限请求;所述执行单元,还用于根据所述权限请求,生成与所述应用程序对应的所述权限清单。[0024]结合第二方面的第一种可能的实现方式,在第二方面的第二种可能的实现方式中,所述执行单元,具体用于:根据所述权限请求,采用权限过滤器,生成所述权限清单;[0025]其中,所述权限过滤器包括至少一个原子过滤器,所述至少一个原子过滤器中的一个原子过滤器用于表示对所述控制器的应用程序接口API调用的一个属性维度的过滤表达式。[0026]结合第二方面的任意一种可能的实现方式,在第二方面的第Ξ种可能的实现方式中,所述执行单元,具体用于:[0027]根据安全约束判断所述权限请求是否合法,其中,所述安全约束用于表示所述控制器所开放的权限的范围;当确定所述权限请求合法时,生成所述权限清单。[0028]结合第二方面或者上述第二方面的任意一种可能的实现方式,在第二方面的第四种可能的实现方式中,[0029]所述判断单元,具体用于:将所述访问请求转化为析取范式,并将所述权限清单转化为合取范式;判断所述析取范式是否属于所述合取范式;[0030]所述执行单元,具体用于:在所述判断单元确定所述析取范式属于所述合取范式时,允许所述应用程序进行访问。[0031]本发明实施例中,控制器判断应用程序的访问请求是否属于与该应用程序对应的权限清单,运样根据权限清单限制该应用程序的访问权限,进而能够避免应用程序的恶意攻击,保障网络安全。【附图说明】[0032]为了更清楚地说明本发明实施例的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可W根据运些附图获得其他的附图。[0033]图1是本发明一个实施例的控制应用程序权限的方法的流程图。[0034]图2是本发明另一个实施例的控制应用程序权限的方法的流程图。[0035]图3是本发明一个实施例的控制器的结构框图。[0036]图4是本发明另一个实施例的控制器的结构框图。【具体实施方式】[0037]下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。[0038]图1是本发明一个实施例的控制应用程序权限的方法的流程图。图1所示的方法包括:[0039]101,控制器接收应用程序的访问请求。[0040]102,所述控制器判断所述访问请求是否属于与所述应用程序对应的权限清单,其中所述权限清单是指对资源的操作的权限。[0041]103,如果所述访问请求属于所述权限清单,所述控制器允许所述应用程序进行访问。[0042]本发明实施例中,控制器判断应用程序的访问请求是否属于与该应用程序对应的权限清单,运样根据权限清单限制该应用程序的访问权限,进而能够避免应用程序的恶意攻击,保障网络安全。[0043]可理解,本发明实施例所示的方法应用于SDN领域,相应地,本发明实施例所示的控制器是指SDN中的控制器。[0044]可选地,控制器中存储有与所述应用程序对应的权限清单。该权限清单可W是由管理员进行预配置的,或者是由控制器根据自身所开放的权限范围进行预配置的。[0045]应注意,本发明对权限清单的形式不作限定。例如,权限清单可W是清单的形式,或者可W是列表的形式,或者也可W是集合的形式,等等。本发明实施例不应该将权限清单的名称作为对其形式的限定。[0046]或者,可选地,在101之前,还可W包括:控制器生成与所述应用程序对应的权限清单。作为一例,控制器可W接收所述应用程序发送的权限请求;根据所述权限请求,生成与所述应用程序对应的所述权限清单。[0047]本发明实施例中,应用程序对控制器的访问包括对资源的访问,其中,所述资源包括W下中的至少一种:流表、拓扑、统计信息和错误、组表、流量整形、操作系统、入包(化cket_in)和出包(Packet_out)。如表一所示。对资源的操作可W是读或写或事件回调。本发明实施例中,权限清单可W用于表示对资源的操作的权限。如表一所示的第Ξ列包括本发明实施例所定义的权限。[004引表一[0049][0050]为了对表一所示的权限的范围进行限定,本发明实施例定义了权限语言,具体地,权限语言及其含义如下所述:[0化1]阳RM:声明权限的名称;[0052]LIMITING:声明开始限定权限;[0053]AND:与操作,二元操作符,两个均为真时才为真;[0054]OR:或操作,二元操作符,只要有一个为真时即为真;[0055]NOT:否定操作,一元操作符,表示当前的否定;[0化6]IP_SRC(V6或V4):IP源地址,其值可w是一个整型变量,也可w是一个IP格式的字符串;[0化7]IP_DST(V6或V4):IP目的地址,其值可W是一个整型变量,也可W是一个IP格式的字符串;[0化引TCP_SRC:TCP源地址,其值可W是一个整型变量,也可W是一个IP格式的字符串;[0化9]TCP_DST:TCP目的地址,其值可W是一个整型变量,也可W是一个IP格式的字符串;[0060]MASK:子网掩码,其值可W是一个整型变量,也可W是一个IP格式的字符串;[0061]WILDCARD:通配符匹配;[0062]DROP:丢弃当前包;[0063]FORWARD:转发当前包;[0064]MODIFY:修改当前包,具体使用时需要限定可W修改的域;[0065]0WN_FL0WS:所有权权限,只允许查看和修改APP自身创建的流表规则;[0066]ALL_FL0WS:所有权权限,允许查看和修改所有的流表规则;[0067]GR0UP_FL0W:所有权权限,只允许查看和修改APP自身创建的组表规则;[006引ALL_GR0UP_FL0WS:所有权权限,允许查看和修改所有的组表规则;[0069]METER_FL0W:所有权权限,只允许查看和修改APP自身创建的meter_^ble规则;[0070]ALL_METER_FLOWS:所有权权限,允许查看和修改所有的meter_^ble规则;[0071]MAX_PRI0R口Y:限制可W创建或修改的规则的最大优先级;[0072]MIN_PRI0R口Y:限制可W创建或修改的规则的最小优先级;[0073]MAX_RULE_C0UNT:限制在一个交换机上的规则的数目;[0074]FR0M_PKT_IN:只允许在回复packet-in消息时对外发送数据包;[0075]ARBITRARY:允许在任何情况下对外发送数据包;[0076]SW口CH:限定可W操作的交换机,具体使用时可W是一个或者一组交换机,同时与LINK合用,限定可W操作的链路;[0077]LINK:限定可W操作的链路,具体使用时可W是一条或一组链路;[0078]ALL_SW口邸ES:允许操作所有的交换机;[00巧]B0畑ER_SW口C肥S:允许操作边界交换机;[0080]VIRTUAL限定可W操作的虚拟交换机;[0081]SINGLE_BIG_SW口CH:限定为单个虚拟的交换机;[0082]ALL_ADJACENT_LINKS:限定为所有与该交换机直接相邻的链路;[0083]PATHS_AS_LINKS:限定为该交换机直接或间接相邻的链路;[0084]EVENT_INT邸CEPTI0N:允许监听截获回调事件;[0085]M0DIFY_EVENT_0畑邸:允许修改回调事件被APP处理的顺序;[0086]FL0W_LEVEL允许查看流级别的统计信息;[0087]P0RT_LEVEL允许查看端口级别的统计信息;[0088]SW口CH_LEVEL允许查看交换机级别的统计信息;[0089]运样,可W利用上述权限语言,来描述和定义应用程序的访问权限。[0090]具体地,本发明实施例中,控制器在生成权限清单时,可W先根据安全约束判断权限请求是否合法;当确定所述权限请求合法时,生成所述权限清单。其中,所述安全约束用于表示所述控制器所开放的权限的范围。运里,控制器所开放的权限的范围可W是由管理员预先定义并配置在该控制器上的。[0091]可理解,若控制器确定所述权限请求不合法时,不生成权限清单,进而不允许该应用程序进行访问。[0092]本发明实施例中,应用程序的权限请求可W理解为一种粗略的权限清单,是一种全有或全无的授权方式,即全部通过或者全部不通过,粒度较粗。那么,相应地,控制器所生成的权限清单可W理解为一种细化后的权限清单,用于限制权限的范围。[0093]进一步地,控制器生成权限清单可W包括:根据所述权限请求,采用预定义的权限语法规则,生成所述权限清单。[0094]具体地,控制器可W根据权限请求W及所述安全约束,采用预定义的权限语法规贝1J,生成所述权限清单。[00M]运里,所述预定义的权限语法规则可W表示为权限过滤器。那么,可理解,控制器生成权限清单可W包括:控制器根据所述权限请求,采用权限过滤器,生成所述权限清单。或者,控制器可W根据权限请求W及所述安全约束,采用权限过滤器,生成所述权限清单。[0096]本发明实施例中,所述权限过滤器包括至少一个原子过滤器,所述至少一个原子过滤器中的一个原子过滤器用于表示对所述控制器的应用程序接口(ApplicationInterface,API)调用的一个属性维度的过滤表达式。[0097]原子过滤器可W为过滤表达式的构建块。应用程序对控制器的API调用通常与一定数量的参数和运行时的属性相关联,例如流表项的匹配字段和目标交换机。原子过滤器可W根据API调用的特定属性维度划分API调用。不同的原子过滤器检查不同的属性维度,因此不同的原子过滤器是相互独立的。通常情况下,一个原子过滤器是一个包含特定属性的权限的子集。[0098]应注意,本发明实施例对属性维度的划分方式不作限定,举例来说,可W按照如表一所示的资源确定属性维度。例如,属性维度可W包括:流、拓扑、事件回调、统计、组表和流量整形。[0099]其中,属性维度是指权限设及的方面.流是指权限可W设及到的流,比如权限1可操作哪些数据流,权限2可操作哪些流;拓扑是指权限是否可W获取到网络拓扑,可获得物理拓扑还是虚拟拓扑;事件回调是指权限是否具有事件回调的权限,事件回调是指如触发packet_in消息上报控制器;统计是说权限是否能够获得交换机中的统计数据,如已转发了多少byte;组表是指权限是否具有下发组表项的权利(groupentry);流量整形是指权限是否具有下发流量整形表项的权利(meterentry),如限定某端口出口流量300M.[0100]原子过滤器可W进一步包括:流过滤器、拓扑过滤器、事件回调过滤器、统计过滤器、组表过滤器和流量整形过滤器。具体地,运些过滤器的含义可W如下所述。[0101](a)、流过滤器:流过滤器作用于特定流参数的API调用。因此,流过滤器可W与权限管理中流表的资源相关联。流过滤器检查几种类型的输入。[0102]具体地,可W将API调用时的参数与过滤器参数进行比较。过滤器参数值可为一个特定值或者一个范围,范围可W使用逐位掩码来表示。[0103]例如:[0104]阳Μread_flow_^bleLIMITING[0105]IP_DST10.13.0.0MASK255.255.0.0[0106]那么运个应用程序只能看到在特定子网的流表项。[0107]此外,还可W提供对通配字段的检查。当与read_flow_table权限相关联时,应用程序可W看到的流表项的匹配字段的位数。当与insed_flow或delete_flow权限相关联时,可W确保应用程序产生恰当的通配位。例如,一个只处理数据包低8位IP目的地址的负载平衡APP应具有W下权限:[010引阳RMinsed_flowLIMITING[0109]WILDCARDIP_DST255.255.255.0[0110]表示任何新插入的规则的IP目的地址的高24位必须是通配符,只有该IP目的地址的低8位的可W被指定。因此任何数据包的IP目的地址的高24为都不能被该APP修改,而只有该IP目的地址的低8位可W被该APP进行修改。[0111]本发明实施例中,流过滤器可W进一步包括:动作过滤器、所有权过滤器、优先级过滤器、表大小过滤器和包流出过滤器。[0112]其中,动作过滤器标识的是在一个特定域丢弃、转发和修改流的行为。所有权过滤器识别和跟踪所有现有流的发行人。优先级过滤器限制了一个应用程序可W设置其流规则的最大/最小优先级值。表大小过滤器限制应用程序可W放到一个交换机的规则的最大数量。包流出过滤器,如果设置为FR0M_PKT_IN,可W防止应用程序发行任意的数据层的数据包(即不是回应packet_in的数据包)。[0113]可理解,属性维度也可W包括动作、所有权、优先级、表大小和包流出。[0114]可见,本发明实施例中,流过滤器可W限制流表的可见性或操作性。[0115](b)、拓扑过滤器:拓扑过滤器检查一个应用程序看到并操作的交换机和链接。拓扑过滤器可W工作在物理拓扑结构,或者也可W工作在所创建的一个虚拟拓扑结构。[0116]本发明实施例中,拓扑过滤器可W进一步包括:物理拓扑过滤器和虚拟拓扑过滤器。[0117]其中,物理拓扑过滤器可W将物理交换机和链路的子集暴露给一个应用程序。[011引例如;[0119]阳RMvisible_topologyLIMITING[0120]SW口CHBO畑ER_SW口CHESLINKPATHS_AS_LINKS[0121]允许应用程序查看包括拓扑结构中所有的边界交换机和他们之间的每对路径。[0122]虚拟拓扑过滤器可W将整个网络看成一个大型交换机,或者将整个网络分割成多个虚拟网络。[0123]例如;[0124]阳RMvisible_topologyLIMITING[0125]VIRTUALSINGLE_BIG_SW口CHLINKALL_ADJACENT_LINKS[0126]允许应用程序将网络拓扑结构看作一个单一的大型交换机。[0127]可理解,属性维度也可W包括物理拓扑和虚拟拓扑。[01%](C)、事件回调过滤器:事件回调过滤器可W用于检查在事件回调的过程中两个特定的应用程序行为,分别为1)拦截回调事件,2)修改回调事件被应用程序处理的顺序。[0129]本发明实施例中,事件回调过滤器可W进一步包括:事件侦听过滤器和事件顺序过滤器。[0130]其中,事件侦听过滤器可W检查一个应用程序是否可W拦截回调事件,即防止事件被其他应用程序处理。事件顺序过滤器可W检查API调用是否尝试修改回调事件被应用程序处理的顺序。[0131]可理解,属性维度也可W包括事件侦听和事件顺序。[0132](d)、统计过滤器:可W限制一个应用程序的可见数据到Ξ个级别中的一个或几个,其中,Ξ个级别包括:流级(FL0W_LEWL)、端口级(P0RT_LEVEL)和交换机级(SWITCH_LEVEL)。可见,统计过滤器是唯一有效地作用在rea^statistics权限上的过滤器。[0133](e)、组表过滤器:可W设置APP是否可W下发组表的权限。在开放流(openflow)中,组表可用于组播、多路径、故障恢复等。[0134]例如;[01巧]阳RMinse;rt_g;roup_table_ent;ryLIMITING[0136]IP_DST10.13.0.0MASK255.255.0.0[0137]限制只能对特定的子网才可W插入(insert)组表项(g;roup_table_ent;ry)[0138](f)、流量整形过滤器:可W限制APP只有对特定的交换机的特定端口才可W进行流量整形。在openflow中,控制器可对网络中的流进行整形,如将10M的端口限速为3M。[0139]例如;[0140]阳RMinsed_meter_^ble_ent巧LIMITINGSW口CH1[0141]限制只有对交换机1才可W插入meter表项。[0142]本发明实施例中,当权限过滤器包括多个原子过滤器时,所述多个原子过滤器之间通过逻辑运算符进行连接。[0143]其中,逻辑运算符包括和(AND)、或(OR)、否(NOT)。[0144]例如,可W授予APPread_f1ow_tab1e的权限,但只限制到先前由该APP发布的流,或影响子网10.13.0.0/16:[0145]阳RMread_flow_^bleLIMITING0WN_FL0WS0R[0146]IP_SRC10.13.0.0MASK255.255.0.0ORIP_DST10.13.0.0MASK255.255.0.0[0147]运样,本发明实施例中,控制器可W利用权限过滤器生成权限清单。[0148]例如;[0149]ERMpkt_inLIMmiNGEVENT_INT邸CEPTI0NANDFR0M_PKT_IN[0150]允许监听截获回调事件,允许在回复地t-in消息的前提下发送地t-out消息。[0151]再例如:[0152]阳RMpkt_inLIM口TINGEVENT_INT邸CEPTI0NANDARB口RARY[0153]允许监听截获回调事件,允许在任何情况下发送地t-out消息。[0154]具体地,本发明实施例中,控制器中可W包括约束引擎,并由该约束引擎生成权限清单。[0155]可理解,与应用程序对应的权限清单是指:控制器对该应用程序所开放的一系列权限范围的集合。[0156]在图1所示的实施例中,101中的访问请求可W是APP对API的访问请求。那么,在101之后,控制器可W根据该对API的访问请求对应到特定的权限上。[0157]具体地,控制器中可W预存储有"API/权限"的对应关系,运样,控制器可W查找该对应关系,确定与访问请求所对应的权限。[0158]举例来说,该对应关系可W如表二所示。[0159]表二[0160][0161]~相应地,可W理解,在102中,控制器判断访问请求是否属于权限清单,可W包括控制器判断与访问请求所对应的权限是否属于权限清单。[0162]102中,如果访问请求是对API调用的一个属性维度的访问请求,那么102可W与权限清单中的对应的原子过滤器的过滤表达式进行比较。[0163]也就是说,原子过滤器可W直接比较。例如,同一种原子过滤器,需要比较具体参数,如对应统计过滤器,需要比较属于FL0W_LEVEL、P0RT_LEVEL或者SW口CH_LEVEL。[0164]不同种类的原子过滤器显然不相同。对于不同种类的原子过滤器,判断包含的规则也不完全相同,如统计过滤器SWITCH_LEVEL包含了化0W_LEV化和P0RT_LEV化,而P0RT_LEVEL包含了FL0W_LEVEL。而流过滤器中的action过滤中DROP和F0RWA畑就不能互相包含。[0165]应注意,本发明实施例中,对原子过滤器之间的比较的方式不再寶述。[0166]如果访问请求是对API调用的多个属性维度的访问请求,那么102可W与权限清单中的对应的由逻辑运算符连接的多个原子过滤器的过滤表达式进行比较。那么,102可W包括:将所述访问请求转化为析取范式,并将所述权限清单转化为合取范式;判断所述析取范式是否属于所述合取范式。[0167]例如:假设权限清单可W表示为A,访问请求可W表示为B。那么,判断访问请求是否属于权限清单可W等价为,判断A是否包含B。[0168]第一步,将A转化为合取范式(aandbandCand…),将B转化为析取范式(Xoryorzor···)ο[0169]其中,转化过程是通过利用离散数学中命题公式的双重否定律、德摩根定律和分配律等来完成的。[0170](1)将A转化为合取范式。[0171]先运用否定律,递归分解not操作。[0172]例如:not(aandb)=〉(nota)o;r(notb)。[0173]再运用分配律,递归分解or操作。[0174]例如:(aandb)orc=〉(aorc)and(borC)。[0175](2)将B转化为析取范式。[0176]先运用否定律,递归分解not操作。[0177]例如:not(aorb)=〉(nota)and(notb)。[0178]再运用分配率,递归分解or操作。[0179]例如:(aorb)andc=〉(aandc)o;r(bandc)。[0180]应注意,本发明实施例中,将A转化为合取范式,将B的转化为析取范式的方式可W参见现有技术,为避免重复,运里不再寶述。[0181]第二步,判断合取范式是否包含析取范式。[0182]具体地,需判断合取范式的每一个子句是否都包含析取范式的每一个子句。[0183]例如,假设合取范式表示为alanda2anda3ancl···的形式,析取范式表示为xlorx2orx3...的形式,那么,需判断是否满足ai包含xj。其中,i=l,2,3,,,;j=l,2,3···。[0184]应注意,若al=alloral2,xl=xllandxl2。那么,在判断al是否包括xl时,需要满足al1包括xl1且al1包括;或者al2包括xl1且al2包括。[0185]应注意,本发明实施例中,关于判断合取范式是否包含析取范式的方式,可W参见与逻辑判断有关的现有技术,为避免重复,运里不再寶述。[0186]作为一例,在102中,假设权限清单可W表示为A,访问请求可W表示为B。并且,A和B可W表示如下。[0187]A={[0188]阳RMread_statisticsLIMITINGSWITCH-LEVEL[0189]阳Μnetwork_accessLIMITING[0190]IP_DST192.168.0.(MASK255.255.0.0[0191]}[0192]B={[0193]阳RMread_statisticsLIMITINGP0RT_LEVEL[0194]阳RMnetwork_accessLIMITING[0195]IP_DST192.168.1.(MASK255.255.255.0[0196]orIP_DST192.168.2.OMASK255.255.255.0[0197]}[019引那么,判断B是否属于A,即判断是否满足B<=A。[0199]首先可W将A转化为合取范式,即:[0200]A=〉(SW口CH_LEVEL)and(IP_DST192.168.0.0MASK255.255.0.0);[0201]将B转化为析取范式,即:[0202]B=〉(P0RT_LEV化and((IP_DST192.168.1.0MASK255.255.255.0))or(P0RT_LEVELand((IP_DST192.168.2.OMASK255.255.255.0))〇[0203]然后,便可W通过判断合取范式是否包含析取范式,来确定A是否包含B,进而确定访问请求是否属于权限清单。[0204]具体地,本发明实施例中,控制器中可W包括权限引擎,并由该权限引擎执行102中的判断过程。[0205]运样,控制器通过判断访问请求是否属于权限清单,来判断应用程序的访问是否合法。如果确定访问请求属于权限清单,便可W执行103。[0206]图2是本发明实施例的控制应用程序权限的方法的流程图。其中,如果102中控制器经过判断之后,确定访问请求不属于权限清单,可W进一步执行104,即,控制器不允许该应用程序进行访问。[0207]或者,也可W理解为,若控制器确定访问请求不属于权限清单,可W认为该应用程序的访问不合法,即该应用程序可能存在对控制器进行恶意攻击的可能性,便阻止该应用程序的进一步访问,进而能够保障网络的安全。[0208]图3是本发明一个实施例的控制器的结构框图。图3所示的控制器300包括接收单元301、判断单元302和执行单元303。[0209]接收单元301,用于接收应用程序的访问请求。[0210]判断单元302,用于判断接收单元301接收的所述访问请求是否属于与所述应用程序对应的权限清单,其中所述权限清单是指对资源的操作的权限。[0211]执行单元303,用于在判断单元302确定所述访问请求属于所述权限清单时,允许所述应用程序进行访问。[0212]本发明实施例中,控制器判断应用程序的访问请求是否属于与该应用程序对应的权限清单,运样根据权限清单限制该应用程序的访问权限,进而能够避免应用程序的恶意攻击,保障网络安全。[0213]本发明实施例中,应用程序对控制器的访问包括对资源的访问,其中,所述资源包括W下中的至少一种:流表、拓扑、统计信息和错误、组表、流量整形、操作系统、入包(F*acket_in)和出包(Packet_out)。对资源的操作可W是读或写或事件回调。[0214]可选地,控制器中存储有与所述应用程序对应的权限清单。该权限清单可W是由管理员进行预配置的,或者是由控制器根据自身所开放的权限范围进行预配置的。[0215]可选地,作为一个实施例,接收单元301,还用于接收所述应用程序发送的权限请求;执行单元303,还用于根据所述权限请求,生成与所述应用程序对应的所述权限清单。[0216]本发明实施例中,权限清单可W用于表示对资源的操作的权限。如前述的表一所示的第Ξ列包括本发明实施例所定义的权限。[0217]具体地,执行单元303,用于根据所述权限请求,采用权限过滤器,生成所述权限清单。[0218]其中,所述权限过滤器包括至少一个原子过滤器,所述至少一个原子过滤器中的一个原子过滤器用于表示对所述控制器的API调用的一个属性维度的过滤表达式。[0219]可理解,所述权限过滤器可W包括多个原子过滤器,并且多个原子过滤器之间通过逻辑运算符连接。[0220]可选地,作为另一个实施例,执行单元303具体用于根据安全约束判断所述权限请求是否合法,其中,所述安全约束用于表示所述控制器所开放的权限的范围;当确定所述权限请求合法时,生成所述权限清单。[0221]可选地,作为另一个实施例,判断单元302,具体用于:将所述访问请求转化为析取范式,并将所述权限清单转化为合取范式;判断所述析取范式是否属于所述合取范式。执行单元303,具体用于:在判断单元302确定所述析取范式属于所述合取范式时,允许所述应用程序进行访问。[0222]控制器300能够用于实现前述图1或图2的实施例中由控制器执行的方法,为避免重复,运里不再寶述。[0223]图4是本发明另一个实施例的控制器的结构框图。图4所示的控制器400包括处理器401、接收器402、发送器403和存储器404。[0224]接收器402,用于接收应用程序的访问请求。[0225]处理器401,用于判断接收器402接收的所述访问请求是否属于与所述应用程序对应的权限清单,其中所述权限清单用于表示对资源的操作的权限。[0226]处理器401,还用于在确定所述访问请求属于所述权限清单时,允许所述应用程序进行访问。[0227]本发明实施例中,控制器判断应用程序的访问请求是否属于与该应用程序对应的权限清单,运样根据权限清单限制该应用程序的访问权限,进而能够避免应用程序的恶意攻击,保障网络安全。[0228]控制器400中的各个组件通过总线系统405禪合在一起,其中总线系统405除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图4中将各种总线都标为总线系统405。[0229]上述本发明实施例掲示的方法可W应用于处理器401中,或者由处理器401实现。处理器401可能是一种集成电路忍片,具有信号的处理能力。在实现过程中,上述方法的各步骤可W通过处理器401中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器401可W是通用处理器、数字信号处理器化igitalSi即alProcessor,DSP)、专用集成电路(ApplicationSpecificIntegratedCircuit,ASIC)、现成可编程口阵列(FieldProgrammableGateArray,FPGA)或者其他可编程逻辑器件、分立口或者晶体管逻辑器件、分立硬件组件。可W实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可W是微处理器或者该处理器也可W是任何常规的处理器等。结合本发明实施例所公开的方法的步骤可W直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可W位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器404,处理器401读取存储器404中的信息,结合其硬件完成上述方法的步骤。[0230]可W理解,本发明实施例中的存储器404可W是易失性存储器或非易失性存储器,或可包括易失性和非易失性存储器两者。其中,非易失性存储器可W是只读存储器(Read?onlyMemo巧,ROM)、可编程只读存储器(ProgrammableROM,PROM)、可擦除可编程只读存储器巧rasablePR0M,EPR0M)、电可擦除可编程只读存储器化lectricallyEPR0M,EEPR0M)或闪存。易失性存储器可W是随机存取存储器(RandomAccessMemory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(StaticRAM,SRAM)、动态随机存取存储器(DynamicRAM,DRAM)、同步动态随机存取存储器(SynchronousDRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(DoubleDataRateSDRAM,孤RSDRAM)、增强型同步动态随机存取存储器巧nhancedSDRAM,ESDRAM)、同步连接动态随机存取存储器(SynchlinkDRAM,SLDRAM)和直接内存总线随机存取存储器(DirectRambusRAM,DRRAM)。本文描述的系统和方法的存储器404旨在包括但不限于运些和任意其它适合类型的存储器。[0231]可W理解,本发明实施例中的发送器403可W用于将处理器401的执行结果发送至与该控制器400进行通信的设备。例如,应用程序或者交换机等。[0232]可W理解的是,本文描述的运些实施例可W用硬件、软件、固件、中间件、微码或其组合来实现。对于硬件实现,处理单元可W实现在一个或多个专用集成电路(ApplicationSpecificIntegratedCircuits,ASIC)、数字信号处理器(DigitalSi即alProcessing,DSP)、数字信号处理设备(DSPDevice,DSPD)、可编程逻辑设备(ProgrammableLogicDevice,PLD)、现场可编程口阵列(Field-ProgrammableGateArrayJPGA)、通用处理器、控制器、微控制器、微处理器、用于执行本申请所述功能的其它电子单元或其组合中。[0233]当在软件、固件、中间件或微码、程序代码或代码段中实现实施例时,它们可存储在例如存储部件的机器可读介质中。代码段可表示过程、函数、子程序、程序、例程、子例程、模块、软件分组、类、或指令、数据结构或程序语句的任意组合。代码段可通过传送和/或接收信息、数据、自变量、参数或存储器内容来稿合至另一代码段或硬件电路。可使用包括存储器共享、消息传递、令牌传递、网络传输等任意适合方式来传递、转发或发送信息、自变量、参数、数据等。[0234]对于软件实现,可通过执行本文所述功能的模块(例如过程、函数等)来实现本文所述的技术。软件代码可存储在存储器单元中并通过处理器执行。存储器单元可W在处理器中或在处理器外部实现,在后一种情况下存储器单元可经由本领域己知的各种手段W通信方式禪合至处理器。[0235]本发明实施例中,应用程序对控制器的访问包括对资源的访问,其中,所述资源包括W下中的至少一种:流表、拓扑、统计信息和错误、组表、流量整形、操作系统、入包(F*acket_in)和出包(Packet_out)。对资源的操作可W是读或写或事件回调。[0236]可选地,控制器中存储有与所述应用程序对应的权限清单。该权限清单可W是由管理员进行预配置的,或者是由控制器根据自身所开放的权限范围进行预配置的。[0237]可选地,作为一个实施例,接收器402,还用于接收所述应用程序发送的权限请求;处理器401,还用于根据所述权限请求,生成与所述应用程序对应的所述权限清单。[0238]本发明实施例中,权限清单可W用于表示对资源的操作的权限。如前述的表一所示的第Ξ列包括本发明实施例所定义的权限。[0239]具体地,处理器401,用于根据所述权限请求,采用权限过滤器,生成所述权限清单。[0240]其中,所述权限过滤器包括至少一个原子过滤器,所述至少一个原子过滤器中的一个原子过滤器用于表示对所述控制器的API调用的一个属性维度的过滤表达式。[0241]可理解,所述权限过滤器可W包括多个原子过滤器,并且多个原子过滤器之间通过逻辑运算符连接。[0242]可选地,作为另一个实施例,处理器401具体用于根据安全约束判断所述权限请求是否合法,其中,所述安全约束用于表示所述控制器所开放的权限的范围;当确定所述权限请求合法时,生成所述权限清单。[0243]可选地,作为另一个实施例,处理器401具体用于:将所述访问请求转化为析取范式,并将所述权限清单转化为合取范式;判断所述析取范式是否属于所述合取范式。在确定所述析取范式属于所述合取范式时,允许所述应用程序进行访问。[0244]控制器400能够用于实现前述图1或图2的实施例中由控制器执行的方法,为避免重复,运里不再寶述。[0245]本领域普通技术人员可W意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够W电子硬件、或者计算机软件和电子硬件的结合来实现。运些功能究竟w硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可W对每个特定的应用来使用不同方法来实现所描述的功能,但是运种实现不应认为超出本发明的范围。[0246]所属领域的技术人员可W清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可W参考前述方法实施例中的对应过程,在此不再寶述。[0247]在本申请所提供的几个实施例中,应该理解到,所掲露的系统、装置和方法,可W通过其它的方式实现。例如,W上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可W有另外的划分方式,例如多个单元或组件可W结合或者可W集成到另一个系统,或一些特征可W忽略,或不执行。另一点,所显示或讨论的相互之间的禪合或直接禪合或通信连接可W是通过一些接口,装置或单元的间接禪合或通信连接,可W是电性,机械或其它的形式。[0248]所述作为分离部件说明的单元可W是或者也可W不是物理上分开的,作为单元显示的部件可W是或者也可W不是物理单元,即可W位于一个地方,或者也可W分布到多个网络单元上。可W根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。[0249]另外,在本发明各个实施例中的各功能单元可W集成在一个处理单元中,也可W是各个单元单独物理存在,也可W两个或两个W上单元集成在一个单元中。[0250]所述功能如果W软件功能单元的形式实现并作为独立的产品销售或使用时,可W存储在一个计算机可读取存储介质中。基于运样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用W使得一台计算机设备(可W是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ReacK)nlyMemo巧,ROM)、随机存取存储器(RandomAccessMemory,RAM)、磁碟或者光盘等各种可W存储程序代码的介质。[0251]W上所述,仅为本发明的【具体实施方式】,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
的技术人员在本发明掲露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应W权利要求的保护范围为准。【主权项】1.一种控制应用程序权限的方法,其特征在于,包括:控制器接收所述应用程序发送的权限请求;所述控制器确认所述权限请求所包含的属性维度,其中,所述属性维度包括流、拓扑、事件回调、统计、组表和流量整形中的至少一种;所述控制器获取与所述权限请求所包含的属性维度相对应的权限子集,其中,每个属性维度包含至少一个权限子集;所述控制器将与所述权限请求所包含的属性维度相对应的权限子集组成所述应用程序的权限清单;其中,所述权限清单是指对资源的操作的权限;其中,所述资源包括流表、拓扑、统计信息和错误、组表、流量整形、入包和出包中的至少一种;其中,对资源的操作包括读、写以及事件回调中的至少一种;所述控制器接收应用程序的访问请求;所述控制器判断所述访问请求所要求的权限是否属于所述应用程序的权限清单;如果所述访问请求属于所述权限清单,所述控制器允许所述应用程序进行访问。2.根据权利要求1所述的方法,其特征在于,所述控制器将与所述权限请求所包含的属性维度相对应的权限子集组成所述应用程序的权限清单之前,所述方法还包括:所述控制器根据安全约束判断所述权限请求是否合法,其中,所述安全约束用于表示所述控制器所开放的权限的范围;当确定所述权限请求合法时,所述控制器将与所述权限请求所包含的属性维度相对应的权限子集组成所述应用程序的权限清单。3.根据权利要求1或2所述的方法,其特征在于,所述判断所述访问请求所要求的权限是否属于所述应用程序的权限清单,包括:将所述访问请求转化为析取范式,并将所述权限清单转化为合取范式;判断所述析取范式是否属于所述合取范式;所述如果所述访问请求所要求的权限属于所述权限清单,所述控制器允许所述应用程序进行访问,包括:如果所述析取范式属于所述合取范式,所述控制器允许所述应用程序进行访问。4.一种控制器,其特征在于,包括:接收单元,用于接收所述应用程序发送的权限请求;确认单元,用于确认所述权限请求所包含的属性维度,其中,所述属性维度包括流、拓扑、事件回调、统计、组表和流量整形中的至少一种;获取单元,用于获取与所述权限请求所包含的属性维度相对应的权限子集,其中,每个属性维度包含至少一个权限子集;所述获取单元,还用于将与所述权限请求所包含的属性维度相对应的权限子集组成所述应用程序的权限清单;其中,所述权限清单是指对资源的操作的权限;其中,所述资源包括流表、拓扑、统计信息和错误、组表、流量整形、入包和出包中的至少一种;其中,对资源的操作包括读、写以及事件回调中的至少一种;所述接收单元,还用于接收应用程序的访问请求;判断单元,用于判断所述访问请求所要求的权限是否属于所述应用程序的权限清单;执行单元,用于如果所述访问请求属于所述权限清单,允许所述应用程序进行访问。5.根据权利要求4所述的控制器,其特征在于,所述判断单元,用于根据安全约束判断所述权限请求是否合法,其中,所述安全约束用于表示所述控制器所开放的权限的范围;所述获取单元,用于当确定所述权限请求合法时,将与所述权限请求所包含的属性维度相对应的权限子集组成与所述应用程序对应的权限清单。6.根据权利要求4或5所述的控制器,其特征在于,所述判断单元,用于将所述访问请求转化为析取范式,并将所述权限清单转化为合取范式;所述判断单元,还用于判断所述析取范式是否属于所述合取范式;所述执行单元,用于如果所述析取范式属于所述合取范式,允许所述应用程序进行访问。7.-种控制器,其特征在于,所述控制器包括处理器、接收器和存储器,所述存储器用于存储待执行的代码,所述处理器执行所述所述代码以执行以下步骤;所述接收器,用于接收应用程序发送的权限请求和访问请求;所述处理器,用于确认所述权限请求所包含的属性维度;获取与所述权限请求所包含的属性维度相对应的权限子集,其中,每个属性维度包含至少一个权限子集;将所述权限请求所包含的属性维度相对应的权限子集组成所述应用程序的权限清单;判断所述访问请求所要求的权限是否属于所述应用程序的权限清单;如果所述访问请求属于所述权限清单,允许所述应用程序进行访问;所述存储器,用于存储所述属性维度,其中,所述属性维度包括流、拓扑、事件回调、统计、组表和流量整形中的至少一种;所述存储器,还用于存储所述权限清单,其中,所述权限清单是指对资源的操作的权限;其中,所述资源包括流表、拓扑、统计信息和错误、组表、流量整形、入包和出包中的至少一种;其中,对资源的操作包括读、写以及事件回调中的至少一种。8.根据权利要求7所述的控制器,其特征在于,所述处理器,用于根据安全约束判断所述权限请求是否合法,其中,所述安全约束用于表示所述控制器所开放的权限的范围;当确定所述权限请求合法时,将所述与权限请求所包含的属性维度相对应的权限子集组成与所述应用程序对应的权限清单。9.根据权利要求8或9所述的控制器,其特征在于,所述处理器,用于将所述访问请求转化为析取范式,并将所述权限清单转化为合取范式;还用于判断所述析取范式是否属于所述合取范式;如果所述析取范式属于所述合取范式,允许所述应用程序进行访问。【文档编号】H04L29/06GK105871811SQ201610077940【公开日】2016年8月17日【申请日】2016年2月3日【发明人】李金明,陈焰,胡成臣【申请人】华为技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1