基于NETCONF 的访问控制策略的部署机制
网为您提供硕士毕业论文。
引言(Network Configuration)是一种新的网络管理配置协议,该协议提供了安装、查、修改和删除网络设备的配置信息的机制[1] [2]。它采用可扩展标记语言(XML)对网络设备的配置数据以及协议信息进行编码,在自动化网络配置系统中NETCONF起着关键性的作
用。XML(Extensible Markup Language)是Internet环境中跨平台的,依赖于内容的技术,是当前处理结构化文档信息的有力工具。该语言是一种简单的数据存储语言,类似于由一系列简单的标签组成。
同时,在NETCONF协议中,XML文档的内容主要分为XML元素,XML中的节点和属性。其中XML元素包含开始标签“<”和结束标签“>”之间
的XML实体。XML节点包括XML元素、元素的文本内容,以及元素的属性等等。属性主要是对XML元素做出一些具体的描述。
因为属性总是被放到起始标签里,所以属性节点总是被包含在元素节点中。
随着Internet的迅猛发展,网络信息的安全也受到越来越多的关注。网络管理信息对于整个网络系统的正常
运转具有重要的作用,所以必须建立相应的访问控制策略来验证对网络管理信息的访问请求,使网络管理信息不会受到非授权的检索、修改、删除,保证网络系统的稳定。
本文首先将简单介绍何种访问控制策略才能满足NETCONF协议的要求;其次将介绍当前应用广泛的基于角的访问控制策略RBAC。由
于RBAC访问控制策略在适用至协议上的限制,本文提出了一种改进的基于规则的访问控制策略。第四章、第五章将详细介绍改进的访问控制策略的策略模型以及策略部署机制。
.NETCONF 访问控制策略的要求协议使用XML 语言描述协议操作请求和网络管理数据,所有的数据都以的形式编码,因此,NETCONF 的访问控制技术应该是面向XML 的,不仅包含细粒度还包含粗粒度和无粒度的访问控制技术。
对于一个完整的XML 文档,细粒度的访问控制技术主要是对XML 的所有子元素以及元素的属性进行访问控制。粗粒度的访问控制则主要面向于整个XML 文档,即粗粒度的访问控制对象只能是XML 文档的根结点。无粒度的访问控制对象并不是XML,而是单一的、和XML 没有关系的某
个NETCONF 操作或者能力。
只有将访问控制策略部署在网络管理系统上,网络管理系统才能对访问请求进行验证,同时访问控制策
略的部署是否合理也直接影响着访问控制操作的效率。
.RBAC 访问控制策略基于角的访问控制(RBAC)策略的基本思想是通过将权限授予角而不是直接授予主体,主体通过角指派得到客体的操作权限而实现访问控制。即把整个访问控制过程分成两步:访问权限与角相关联,角再与用户关联,从而实现了用户与访问权限的逻辑分离。
由于RBAC 实现了用户与访问权限的逻辑分离[3],因此它极大的方便了权限管理,得到了广泛应用。
访问控制策略实例由于 NETCONF 协议使用XML 语言描述协议操作请求和网络管理数据,所以基于协议的RBAC 访问控制策略也应该使用XML 语言来描述。图1 是一个RBAC 访问控制的策略实例,根节点<rbac>的每个子元素都由唯一的属性id 来标识;其中<user>为策略文档定义的合法用户,包含登录名称和密码; <role> 定义供用户扮演的角,就是相应的角名;<permission>单独定义权限,不仅包含权限类型还包含客体对象,其中属性op=“r”表示是读权限,能够读取/ycp:netconf/ycp:routing 路径下节点的所有子节点;<user-assignement>为用户分配角,例中为id 为1 的用户分配id 为的角;同样<permission-assignement>为角分配权限,例中表示为id 为1 的角分派为1 的权限。更多硕士毕业论文。访问控制虽然基于角的访问控制策略以其授权管理简单、权限变更灵活、开销低、易操作等特性获得了广泛的认可和使用[4],但需要注意的是由于一个用户通常可以担任多个角从而可以获得多个权限,而用户的多个权限之间可能会出现冲突,因此需要规定相应的冲突解决机制。这就增加了访问控制策略部署的复杂性。
同时基于角的访问控制策略在权限配置上缺乏安全和灵活的特性[5],每个权限访问类型都是针对某个节点及其所有的子孙节点而不能针对某级特定的节点进行权限配置,这使得管理员在配置权限时不够灵活,另外,权限的配置面向<scope>指定的所有的后代节点,而这其中可能带有一些不能被访问的敏感信息,这也使得系统不能得到最大限度的安全保障。
另外,基于角的访问控制机制根据访问控制策略文档的内容来验证用户的访问请求,其中访问控制策略中的权限配置是执行验证操作的核心部
分,然而RBAC 所设置的权限都是允许主体访问的权限。
,假设一个用户具有读取/ netconf/routing、/netconf/interface 以及下的所有子孙节点的权限,但是当该用户请求读取/ycp:netconf/bgp:bgp 下的所有子孙节点时,验证操作要检查为该用户分派的角对应的所有权限的<scope> ,如果到,则允许访问。但如果该用户不具有访问该节点的权利,验证操作依然要检查该用户的每个权限,这就浪费了很多时间,降低访问控制的效率。
最后,支持 NETCONF 协议的网管系统,不仅需要支持读和写的操作,同时还要支持非粒度的操作,比如<lock/unlock>、<kill-
session>、<create-subscription>、<view-notification>、、<TcpIP-monitoring>,基于角的访问控制不能实现对这些非粒度操作的访问控制,因此不能完全满足NETCONF 网管协议的要求。
.改进的基于规则的访问控制策略为了解决对 NETCONF 网络管理协议中非粒度操作的访问控制的问题,以及解决访问控制策略的权限配置不够灵活,访问控制策略不够丰富和方便的问题。本文提出了一种应用于NETCONF 网络配置协议的基于规则的访问控制快速部署机制(RuBAC),以便完成对访问控制策略的快速部署。
改进的基于规则的访问控制策略的模型基于规则的访问控制策略的模型是<;主体,权限,客体>三元素的规则集合,其中主体可以是用户也可以作为角,但在大部分情况下是角,只有在访问用户特别少的情况下才作为用户;权限就是根据需求可以进行合理的定义,比如读、写、执行等,主要的权限还是读和写;客体可以是是代表XML 文档的子孙节点或者根节点的全路径也可以是某个不面向文档的操作名称,比如kill-session。管理员根据需要灵活的生成一个三元素的规则,不同规则的有效集合则构成整个策略文档即完成一次部署。表1 列出了本文提出的供管理员部署客体的权限,这些权限不仅给策略部署更加灵活,同时也使策略部署变的更加高效。
改进的基于规则的访问控制策略的部署根据上述策略模型,我们把策略部署分为主体部署和权限部署两个部分。
主体部署:在新的访问控制策略中,主体主要是作为角来对待,每个用户都要通过分派角来实现访问控制。主体部署主要是为了明确每个主体允许访问的职能内的管理数据。
同时,同时为了部署方便允许主体之间的相互引用。
权限部署:对客体能够执行哪类操作进行权限设置,例如通常需要对客体实现读和写权限设置,其中读和写分别代表一类操作。如果客体是面
向XML 形式的数据模型,权限设置需要面向每个节点,称为有粒度的权限设置;其他不涉及XML 形式数据模型的权限设置则称为非粒度的权限设置。
为了安全,访问控制策略的部署权限只有特定的角(例如超级管理员)才能拥有。且该权限应该存在于系统启动的配置文件中。
.改进的基于规则的访问控制策略的权限部署访问控制策略的权限部署不仅是访问控制操作的核心部分,同时由于权限变动的频繁性,能否快速有效地实现权限部署也具有重要价值。本章将介绍新的访问控制策略提出的非粒度和有粒度的权限部署要求,以满足对NETCONF 协议的所有操作都可以执行访问控制的要求。
非粒度的权限部署对 NETCONF 协议中不涉及XML 文档模型的操作kill-session、create-subscription、、schema-query 和tcpIp–monitoring 等进行访问控制,需要使用执行权限来表达,表现形式“+E”表示允许该操作执行,“-E”表示拒绝该操作执行。如图3 是非粒度的权限部署。
tcpip协议是internet最基本的协议
当角被分派图3 所示的权限时就能实现非粒度(不涉及XML 文档的操作)访问控制,其访问的具体对象由相应的操作决定,如kill-session 的具体对象是其他session。
有粒度的权限部署当客体是 XML 模型时,访问权限具有两种类型:一种是读,一种是写;即在协议中get、get-config 是读操作而edit-
config、copy-conifg、delete-config 是写操作。通过对模型的节点设置读或者写操作类型,即完成权限部署。为了保证部署效率和丰富,把读和写权限的客体分为两种,1 只包含当前节点;2 本节点及所有子孙节点。
属性 op 设置为“+R”,使得管理员不需要对路径为/ycp:netconf/ycp:routing/bgp:bgp 节点的所有子孙节点一个一个进行策略部署,这种方式提高了策略部署的效率,也有利用提高验证速度从而使得访问控制更加高效。但是,管理员在部署时能够选择的部署方式不多,很多不能被访问的信息也由于必须携带子孙节点的规则使得能够被访问。
属性 op 设置为“+r”,允许管理员对某一个节点进行访问,在很大程度弥补op 为“+R”
时候的不足,它更加灵活。如果想控制访问路径为/ycp:netconf 节点的一级子节点而不是所有子孙节点时,上面的“+r”权限部署就能达到要求。这种读权限部署丰富了策略,也提高了安全性使访问控制的功能更加强大。
基于规则的写权限部署和读权限部署类似,“+R”和“+W”以及“+r”和“+w”的权限部署相互补充,不仅能提高管理员的部署效率也能最大限度的满足管理员部署策略的需求。
上述所定义的都是允许访问的权限。新的访问控制策略中加入了拒绝权限,在访问请求进行验证的时候,首先查主体对应的拒绝权限,如果访问对象全部在拒绝权限范围内,访问请求失败;如果访问对象有部分或者全部在拒绝权限之外,则再对角对应的其他允许访问的权限进行验证。是一个含有拒绝权限部署的例子,其中属性op 为“-R”表示不允许读路径为节点及子孙节点,属性op 为“+R”表示允许读路径为/ycp:netconf 节点及节点下的所有子孙节点。
一个角具有的权限,当访问请求为读取/ycp:netconf/ycp:routing 下的节点时,首先验证id 为6 的权限(op 属性为“-R”的权限)的<scope>,请求在权限范围内,因此拒绝访问,不再去对其他权限进行验证;当访问请求为读取/ycp:netconf 下的节点是,仍然要先验证据绝权限,角不允许读取/ycp:netconf/ycp:routing 下的子孙节点。因为不全在/ycp:netconf/ycp:routing 内,所以要进行其他权限的验证,由id 为7 的权限,角允许读
取/ycp:netconf 下所有的子孙节点但不包括/ycp:netconf/ycp:routing 下的子孙节点。
写权限以及执行权限和读权限相同,首先进行的是拒绝权限的验证,尤其在访问请求对象符合拒绝权限时能够大大减少访问控制的时间,提高访问控制效率。拒绝权限在一定程度上也能提高管理员的部署灵
活性,对不希望访问的客体拒绝。
.总结访问控制策略的权限部署不仅是访问控制操作的核心部分,同时由于权限变动的频繁性,能否快速有效地实现权限部署也具有重要价值。本文介绍新的访问控制策略提出的非粒度和有粒度的权限部署要求,不仅保证了NETCONF 协议的所有操作都支持访问控制,而且提供了更多的权限,使权限部署更加灵活、丰富并且安全。另外新访问控制策略提供的拒绝权限“-R”,可以直接减少验证过程,提高访问控制的效率。
最后,由于部署权限时是总是会发生冲突,所以为了避免权限冲突,管理员在部署权限时,要遵循下面两点:
一、对同一客体不要进行重复部署,尤其是出现“+R”和“+r”时,要检查权限“+R”所部署的节点中是否包含“+r”部署的节点;二、给用户分配角时,检查被分配的角和角之间的权限是否有冲突,相同客体是否被重复部署。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论