NIST RBAC 模型 —— 向统一标准化的努力
原文名称:The NIST Model for Role-Based Access Control Towards A Unified Standard
摘要
本文描述了一个RBAC(基于角色的访问控制)的统一模型。RBAC是一个已被证实可用于大规模授权控制应用的技术。但是,由于迄今RBAC还没有一个标准模型,对其使用和相关含义的确定造成很多不必要的混乱。NIST的模型就是希望通过整理过去的RBAC模型,已有的商业产品,以及研究原型中的思想,找出共同点,从而寻求解决目前这种混乱的情况。它致力于成为RBAC标准未来发展的基础。RBAC是一个内涵丰富且开放的技术,吸引着众多用户,研究人员和产品厂商去对它投入大量精力。NIST模型专注于RBAC已达成共识的方面,从功能上对其进行四个级别的划分:flat,hierarchical,constrained,symmetric。这四个级别是不断累积的,每一级别是在上一级别的基础上增加新的要求而成。文中也提到另一种做法:保持flat和hierarchical的级别关系,而将constrinats和symmetry作为额外特性[原文:An alternate approach comprising flag and hierarchical RBAC in an ordered sequence and two unordered features--constraints and symmetry--is also presented.]。本文还将列出NIST模型中不包含,但十分重要的其他RBAC特性。其中某些是由于业界没有达成共识,所以不适合写入此文档;其他则是在标准化之前还需要进行进一步的研究协商工作。
第1节 介绍
本文计划制定一个RBAC的标准参考模型。RBAC是一个既新而又有悠久历史的技术。虽然严格的RBAC模型最近才出现,其角色的基本概念已经作为控制权限的方法而使用了数十年。RBAC标准的缺失使得其出现了形形式式的实现,以致阻碍了RBAC的先进性的发挥。RBAC这个词本身没有一个广被认同的意义,而被不同产品厂商,用户以不同方式使用在不同的地方。本文目的就是建立这一领域的一个标准。
RBAC提供一个非常有用的抽象层次,以在业务企业级别而非个别用户级别去提升安全管理。角色基本概念很简单:根据企业里的功能角色进行权限分配,然后恰当的将一个或多个角色赋予用户。在RBAC中,访问控制是基于每个用户在企业内所拥有的角色。一个角色可以对应企业内的一种任务,职责,或者资格。相对用户信息和任务分配的频繁更改,企业内的角色是相对稳定的。因此RBAC可以提供一个强大的机制,以减少企业内分配用户权限过程中的复杂度,花销和犯错机会。由于企业内部的多个角色通常会拥有重复的权限,所以RBAC模型通常支持角色的层级结构,即一个角色可以继承另一个角色的所有权限。
RBAC支持各企业不同的安全策略,并集中到一个企业级的平台上[原文:RBAC allows for specification and enforcement of a variety of protection policies which can be tailored on an enterprise-by-enterprise basis.]。具体系统上的安全策略强化可以通过RBAC的配置来实现。这样的做法,对于访问控制和授权管理中传统的做法,如DAC和MAC(DAC和MAC中,安全策略是与访问控制模型紧密结合,不能更改的),是一个了不起的改变。由于权限管理是通过角色对企业功能进行组织,利益关系的冲突就更为明显了。因此很多RBAC模型支持角色间责任互斥的约束功能。这为管理员提供了比现有访问控制标准更为强大的功能去管理和增强企业策略。
由于客户对RBAC的需求,产品厂商都将RBAC的特性集成到他们的数据库,系统管理以及操作系统等产品中。这些开发都是在没有任何关于RBAC特性共识的情况下进行的。为了尝试严格定义RBAC的特性,出现了一系列RBAC模型及其实现(FK93,FCK95...)。这些模型都是各自为政,并没有就RBAC一些突出的特性进行标准化。因而RBAC依旧是一个不定型的概念。为了更好进一步开发和使用RBAC技术,需要订立标准。NIST的RBAC模型正是这一方向上的首次尝试。
RBAC是一个内涵丰富且开放概念,一定程度上很简单,也可以说很复杂。所以业界公认,以一个模型去概括RBAC是不现实。因为这样一来,该模型则需要包含或排除太多,和只能众多选择其中的一个。NIST的RBAC模型被组织为功能上不断增加的四个级别。这些级别是累加的,每一级别包含前一级别的要求。
1) Flat RBAC
2) Hierarchical RBAC
3) Constrained RBAC
4) Symmetric RBAC
本文以下内容织如下:第2节对NIST的RBAC模型以及其四个级别进行一个概述。第3节到第6节按顺序描述四个级别,以及对级别中包含的特性的基本原理进行说明。NIST模型专注于RBAC技术已达成共识的部分。第7节讨论NIST模型中没有包括但很重要的RBAC特性。其中某些是由于业界没有达成共识,所以不适合写入此文档;其他则是在标准化之前还需要进行进一步的研究协商工作。
第2节 概述
本节提供对NIST的RBAC模型进行一个概述,如表1中所示。对模型4个级别的基本原理也作了说明。熟悉RBAC概念和相关词汇的读者可以通过阅读本章大致了解这个模型。而对RBAC相对陌生的读者可以先跳过本节,等读完接下来几节中对模型中各级别的详细描述,再回过头来重新阅读第2节。
NIST的RBAC模型组织为四个级别,不断在功能上进行增强。这些级别是累积的,每个级别包含上一个级别的所有要求,并增加一项新的要求。以下将会描述各个级别的基础原理以及每个级别选择新增特性的考虑。更详细的描述会则在后面单独讨论各个级别的章节中。
2.1 Flat RBAC
Flat RBAC包括了RBAC最必要的几个方面。RBAC的基本概念是:用户分配给角色,许可分配给角色,用户通过角色来获得许可。NIST的RBAC模型要求用户——角色和许可——角色关系必须支持多对多。因此一个用户可以分配给不同角色,一个角色可以拥有多个用户。对于许可也类似。Flat RBAC要求用户——角色关系可以双向检索,即用户可以获取其已分配的角色,反过来角色也能获取其拥有的用户。(在Symmetric RBAC中,对于许可——角色关系也有类似要求。)最后,Flat RBAC要求用户能够同时行使多个角色上的许可。这一要求排除了那些限制用户同一时间只能激活一个角色的产品。
基本原理:Flat RBAC抓住了那些传统的基于组的访问控制特性。这些特性已经在当代的操作系统中有了很好的实现。因此这已经是一个应用广泛而成熟的技术。Flat RBAC所要求的这些特性是对于任何形式的RBAC都显然是必须实现的。定义Flat RBAC的重点在于决定排除哪些特性。Flat RBAC已经革命性地去除了很多内容,只保留最少的必需特性。尤其重要的是,这些特性都是与传统健壮的基于组的访问控制相兼容。然而反过来,由于以上的某些要求,并不是所有基于组的机制都可以满足Flat RBAC的要求。
2.2 Hierarchical RBAC
Hierarchical RBAC增加了对支持角色层级关系的要求。层级精确来说是一个定义角色之间上下级关系的偏序(原文:partial order)。这样上级角色将会拥有下级角色的所有许可。在这一方面,NIST模型划分了两个子级别。
General Hierarchical RBAC
支持在角色层级中使用任意的偏序。
Restricted Hierarchical RBAC
某些系统会在角色层级中实施限制。大多数情况下只会支持简单结构如树型,反向树型。
这两个子级别也体现在了后续的RBAC级别中,如表1所示。
角色层级可以是继承层级(一个角色的激活代表所有下级角色的激活),或者是激活层级(没有前者要求),或者两者皆有。具体实现哪种角色层级实就留待读者去决定。
基本原理:任意偏序形式的角色层级是通常在Flat RBAC上增添最实用的一个功能。这个特性在很多文献中提到,并且已经在多个产品中实现。文献[SCFY96]中对关于偏序中对传递,反射,非对称等性质的取舍问题,已有足够的讨论[原文:Justification for requiring the transitive, reflexive and anti-symmetric properties of a partial order have been amply discussed in the literature.]。这一方面已经有一个很强的共识。对于支持任意偏序带来的好处,也得到了很多的认同。尽管如此,还是有很多产品只对角色层级结构提供有局限性的支持,不过这实质上已经是Flat RBAC的功能的大大增强。因此本文对这两个子级别进行了划分。
2.3 Constrained RBAC
Constrained RBAC增加了对责任互斥(SOD)支持的要求。SOD作为一个减少欺诈机会和意外损失的手段,远在计算机出现之前已被采用,并且历经了时间的考验。SOD通过将一个动作或任务的职责和授权分散到不同的用户身上,由此提高了进行欺诈行为时的风险——因为该行为会涉及到多个人在内。许多文献中已对很多不同的SOD需求进行了阐述,包括了静态SOD(基于用户——角色关系)和动态SOD(基于角色激活机制)。NIST的RBAC模型将到底支持哪种形式的SOD留给了读者去决定。
基本原理:SOD经常被称为推动RBAC的主要动力。这一原则已经在组织的日常工作中得到实施,因此应该得到高级访问控制产品的支持。将SOD排在角色层级之后,主要是因为已有产品中角色层级是比SOD更为通常支持的特性。
2.4 Symmetric RBAC
Symmetric RBAC增加了对许可——角色关系可以双向检索的要求,这与第一级别(Flat RBAC)中对用户——角色关系的双向检索要求类似。因此可以确定一个具体许可到底分配给了哪些角色,以及一个具体角色到底拥有了哪些许可。许可——角色关系的双向检索必须保持与用户——角色关系的双向检索相当有效的性能表现。
基本原理:许可——角色关系的双向检索在第四级模型中才提出,主要因为在大型分布式的系统上,其实现较为困难。该特性有时候被称为RBAC区别与传统基于组的访问控制的一个内在特征。NIST模型从实用性方面考虑,将这一较难实现的特性放在了RBAC的较高级别模型中。

- 大小: 56.4 KB
分享到:
相关推荐
本文描述了一个RBAC(基于角色的访问控制)的统一模型。RBAC是一个已被证实可用于大规模授权控制应用的技术。
本文提出了一种面向多客体的细粒度RBAC模型——ERBAC模型,旨在解决现有RBAC模型在处理复杂多客体环境下的局限性。ERBAC模型通过支持多客体和提供更细粒度的权限控制,提高了安全性和灵活性,适用于各种综合信息系统...
RBAC模型由美国国家标准与技术研究院(NIST)提出,主要包括四个组成部分: 1. **基本模型RBAC0**:定义了构成RBAC控制系统的最小元素集合,包括用户、角色、目标、操作、权限等基本数据元素。权限被赋予角色而非...
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
# 基于Python的KMeans和EM算法结合图像分割项目 ## 项目简介 本项目结合KMeans聚类和EM(期望最大化)算法,实现对马赛克图像的精准分割。通过Gabor滤波器提取图像的多维特征,并利用KMeans进行初步聚类,随后使用EM算法优化聚类结果,最终生成高质量的分割图像。 ## 项目的主要特性和功能 1. 图像导入和预处理: 支持导入马赛克图像,并进行灰度化、滤波等预处理操作。 2. 特征提取: 使用Gabor滤波器提取图像的多维特征向量。 3. 聚类分析: 使用KMeans算法对图像进行初步聚类。 利用KMeans的聚类中心初始化EM算法,进一步优化聚类结果。 4. 图像生成和比较: 生成分割后的图像,并与原始图像进行比较,评估分割效果。 5. 数值比较: 通过计算特征向量之间的余弦相似度,量化分割效果的提升。 ## 安装使用步骤 ### 假设用户已经下载了项目的源码文件 1. 环境准备:
HCIP第一次作业:静态路由综合实验
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
内容概要:本文详细介绍了Johnson-SU分布的参数计算与优化过程,涵盖位置参数γ、形状参数δ、尺度参数ξ和伸缩参数λ的计算方法,并实现了相应的Python代码。文中首先导入必要的库并设置随机种子以确保结果的可复现性。接着,分别定义了四个参数的计算函数,其中位置参数γ通过加权平均值计算,形状参数δ基于局部均值和标准差的比值,尺度参数ξ结合峰度和绝对偏差,伸缩参数λ依据偏态系数。此外,还实现了Johnson-SU分布的概率密度函数(PDF),并使用负对数似然函数作为目标函数,采用L-BFGS-B算法进行参数优化。最后,通过弹性网络的贝叶斯优化展示了另一种参数优化方法。; 适合人群:具有Python编程基础,对统计学和机器学习有一定了解的研究人员或工程师。; 使用场景及目标:①需要对复杂数据分布进行建模和拟合的场景;②希望通过优化算法提升模型性能的研究项目;③学习如何实现和应用先进的统计分布及优化技术。; 阅读建议:由于涉及较多数学公式和编程实现,建议读者在阅读时结合相关数学知识,同时动手实践代码,以便更好地理解和掌握Johnson-SU分布及其优化方法。
TSP问题的3种智能优化方法求解(研究生课程《智能优化算法》结课大作业).zip
【项目资源】: 物联网项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
【项目资源】: 单片机项目适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。
自动发布Java项目(Tomcat)Shell脚本
# 基于webpack和Vue的前端项目构建方案 ## 项目简介 本项目是基于webpack和Vue构建的前端项目方案,借助webpack强大的打包能力以及Vue的开发特性,可用于快速搭建现代化的前端应用。项目不仅完成了基本的webpack与Vue的集成配置,还在构建速度优化和代码规范性方面做了诸多配置。 ## 项目的主要特性和功能 1. 打包功能运用webpack进行模块打包,支持将scss转换为css,借助babel实现语法转换。 2. Vue开发支持集成Vue框架,能使用Vue单文件组件的开发模式。 3. 构建优化采用threadloader实现多进程打包,cacheloader缓存资源,极大提高构建速度开启热更新功能,开发更高效。 4. 错误处理与优化提供不同环境下的错误映射配置,便于定位错误利用webpackbundleanalyzer分析打包体积。
Hands-On Large Language Models - Jay Alammar 袋鼠书 《动手学大语言模型》PDF
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
# 基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统 ## 项目简介 本项目是一个基于Arduino Feather M0和Raspberry Pi的传感器数据采集与监控系统。系统通过Arduino Feather M0采集传感器数据,并通过WiFi将数据传输到Raspberry Pi。Raspberry Pi运行BalenaOS,集成了MySQL、PHP、NGINX、Apache和Grafana等工具,用于数据的存储、处理和可视化。项目适用于环境监测、物联网设备监控等场景。 ## 项目的主要特性和功能 1. 传感器数据采集使用Arduino Feather M0和AM2315传感器采集温度和湿度数据。 2. WiFi数据传输Arduino Feather M0通过WiFi将采集到的数据传输到Raspberry Pi。
资源内项目源码是来自个人的毕业设计,代码都测试ok,包含源码、数据集、可视化页面和部署说明,可产生核心指标曲线图、混淆矩阵、F1分数曲线、精确率-召回率曲线、验证集预测结果、标签分布图。都是运行成功后才上传资源,毕设答辩评审绝对信服的保底85分以上,放心下载使用,拿来就能用。包含源码、数据集、可视化页面和部署说明一站式服务,拿来就能用的绝对好资源!!! 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、大作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.txt文件,仅供学习参考, 切勿用于商业用途。
【项目资源】: 适用于从基础到高级的各种项目,特别是在性能要求较高的场景中,比如操作系统开发、嵌入式编程和底层系统编程。如果您是初学者,可以从简单的控制台程序开始练习;如果是进阶开发者,可以尝试涉及硬件或网络的项目。 【项目质量】: 所有源码都经过严格测试,可以直接运行。 功能在确认正常工作后才上传。 【适用人群】: 适用于希望学习不同技术领域的小白或进阶学习者。 可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【附加价值】: 项目具有较高的学习借鉴价值,也可直接拿来修改复刻。 对于有一定基础或热衷于研究的人来说,可以在这些基础代码上进行修改和扩展,实现其他功能。 【沟通交流】: 有任何使用上的问题,欢迎随时与博主沟通,博主会及时解答。 鼓励下载和使用,并欢迎大家互相学习,共同进步。 # 注意 1. 本资源仅用于开源学习和技术交流。不可商用等,一切后果由使用者承担。 2. 部分字体以及插图等来自网络,若是侵权请联系删除。