常用的访问控制权限模型DAC RBAC

news2024/11/24 7:53:06

常用的访问控制权限模型DAC RBAC

文章目录

  • 常用的访问控制权限模型DAC RBAC
    • Linux 自主访问控制与强制访问控制
      • 术语概念
      • 存取访问控制 Access Control
        • 自主访问控制
        • 强制访问控制
    • 基于角色的权限控制模型RBAC
      • 模型管理方法
        • RBAC0的管理命令
        • RBAC0的系统支持方法
        • RBAC0的高级审查持方法

Linux 自主访问控制与强制访问控制

术语概念

  • 主体Subject,系统中能够发起行为的实体,比如人、进程、设备等。访问的发起者。

  • 客体Object,被动的行为承受者,比如目录和文件等。访问的接受者。

存取访问控制 Access Control

是规范和控制各类主体访问本系统的客体的决策和实施过程。

存取访问控制的实现机制分为访问控制矩阵和多级访问控制,存取访问控制策略则可分为自主访问控制(Discretionary access control,简称DAC)和强制访问控制(Mandatory Access Control,简称MAC)。自主访问控制和强制访问控制一般分别基于访问控制矩阵和多级访问控制机制来实现。

自主访问控制

在计算机安全中,自主访问控制(英语:discretionary access control,缩写DAC)由《可信计算机系统评估准则》[1]所定义的访问控制中的一种类型。它是一种决定主体是否拥有权访问客体的一种访问约束机制,它是根据主体(如用户、进程或 I/O 设备等)的身份和他所属的组限制对客体的访问。所谓的自主指拥有访问权限的主体,可以直接(或间接)地将访问权限赋予其他主体(除非受到强制访问控制的限制)。

DAC是基于访问控制矩阵机制实现的,由于访问控制矩阵的庞大和维护性能低下,所以太一般使用访问控制矩阵的简化结果,即访问权限表(capablities List,简称CL)或访问控制表(Access Control List,简称ACL)来实现。

访问权限表是为每一个主体维护一张权限表,标明此主体可以访问客体的权限明细,使用较少。

访问控制表是为每一个客体维护一张权限明细表,标明此客体可以被哪些主体执行哪些权限,绝大数操作系统采用的自主访问控制。

区别:

  • 鉴权的主体不同,CL针对主体,ACL针对客体。
  • 保存的位置不同,CL保存在系统的最高层,用户和文件相关联的位置。ACL一般依附于文件系统。
  • CL多用于分布式系统,ACL对用于集中式系统。

在Linux中的访问控制表,将用户划分为客体所有者和所有者同组用户,其他组用户也就是通过文件属性中的属主(拥有者)和属组(拥有组)进行分类。每类用户分别采用一个3位的二进制数来表示对其的存取权限,权限为读(r或者数字4),写(w或者数字2),执行(x或者数字1)。
在这里插入图片描述

典型755权限

文件所有者可读可写可执行,文件所属组用户可读不可写可执行,其他用户可读不可写可执行.
在这里插入图片描述

强制访问控制

将系统中的信息从安全等级和范畴集两方面进行管理,保证每个用户只能访问那些被标明可以访问的信息。

在强制访问控制机制下,每个主体与每个客体都拥有相应的安全属性(安全等级和范畴)。在主体访问客体时,会比较主体以客体的安全属性,并根据强制访问的规则,来确定是否允许主体访问客体。主体与客体的安全属性的配置是严格管理的,不是任何用户,通过简单的授权命令可以改变的。

多级安全策略

安全等级从高至低为:绝密级(Top Secret)、秘密级(Secret)、机密级(Condfidential)和公开级(Unclassified)四个级别。

范畴级与系统的应用领域及信息特征相关联。

BLP安全模型中的基本规则

  • 规则一:一个主体对客体进行读访问的必要条件是,主体的安全级不低于客体的安全级且主体的范畴集包含客体的范畴集,主体只能向下读,不能向上读。
  • 规则二:一个主体对客体进行写访问的必要条件是,客体的安全级不低于主体的安全级且客体的范畴集包含主体的范畴集,主体只能向上写,不能向下写。

基于角色的权限控制模型RBAC

Role-based Access Control 简称RBAC。基本思想是对系统操作的各种权限不直接赋予用户,在用户集合和权限集合之间增加一个角色集合,将用户与角色关联起来,角色与权限关联起来,通过角色来控制用户的的权限控制。

权限集合
角色集合
用户集合
Privilege1
Privilege2
Privilege3
Privilege4
Privilege5
Role1
Role2
Role3
User1
User2
User3

模型基于多对多原则设计

  1. 一个用户可以拥有多个角色
  2. 一个角色可以授予多个用户
  3. 一个角色可以拥有多个权限
  4. 一个权限可以被多个角色包含

NIST(美国国家标准与技术院)标准的RBAC拥有4级模型:

  1. RBAC0:Core RBAC 基础模型

    最少的元素集合。包含Users(用户)、Roles(角色)、Objects(控制对象)、Operations(操作)、Permissions(权限许可)五个基本数据元素。
    在这里插入图片描述

    此模型要求:

    • 每个角色至少拥有一个权限
    • 用户至少拥有一个角色
  2. RBAC1:Hierarchal RBAC 角色层次模型

    引入角色间的继承关系,关系分为一般继承关系和受限继承关系。一般继承关系允许角色间进行多继承。受限继承关系是进一步要求角色继承关系是一个树结构,实现角色间的单继承。

  3. RBAC2:Constraint RBAC 角色限制模型

    静态职责分离(SSD)关系与动态职责分离 (DSD) 关系

    在此模型中增加了责任分离关系。约束规定了权限被赋予角色时,或者角色被赋予用户时必须遵守的强制性规则。

    • 互斥角色:用户只能分配互斥角色集合中至多一个角色。
    • 基数约束:一个角色被分配的用户数量有限;一个用户至多拥有多少个角色;一个角色被赋予的权限数量有限;以控制高级权限在系统中的分配。
    • 先决条件角色:仅当用户拥有一个角色A,可以分配给角色B给用户;仅当角色拥有权限1时,才允许分配权限2给当前角色。
    • 运行时互斥:一个用户同时拥有多个角色,在运行是不能激活多个角色。
  4. RBAC3:Combines RBAC 统一模型

    这个模型同时拥有RBAC1和RBAC2。即提供角色间的继承关系,又提供责任分离关系。

模型管理方法

RBAC0的管理命令

  • 增加用户
  • 删除用户
  • 增加角色
  • 删除角色
  • 分配用户角色
  • 删除用户角色
  • 授予角色的许可
  • 撤销角色的许可

RBAC0的系统支持方法

  • 创建用户session
  • 删除用户Session
  • 添加激活用户角色
  • 删除激活用户角色
  • 检查角色的权限
  • RBAC0的复查方法
  • 检查角色分配的用户
  • 检查用户分配的角色

RBAC0的高级审查持方法

  • 检查角色分配的权限许可
  • 检查用户分配的角色的权限许可
  • 检查激活角色的Sessions
  • 检查Session的选项许可
  • 检查角色允许的对对象的操作
  • 检查用户允许的对对象的操作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/749476.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

❤️创意网页:经典透明登录页面(好看易学易用)

✨博主:命运之光 🌸专栏:Python星辰秘典 🐳专栏:web开发(简单好用又好看) ❤️专栏:Java经典程序设计 ☀️博主的其他文章:点击进入博主的主页 前言:欢迎踏入…

thinkphp模型递归查询

效果图: 查询代码: use app\model\Menu;function getMenuList(string $uid) {$list Menu::where(pid, $uid)->select();foreach ($list as $val) {$val[children] getMenuList($val->uid);}return $list; }function getMenuBelong(string $uid)…

springboot人事管理系统

本项目在开发和设计过程中涉及到原理和技术有: B/S、java技术和MySQL数据库等等;将按以下章节进行开发设计; 绪论;剖析项目背景,说明研究的内容。 开发技术;系统主要使用了java技术,b/s模式和myspl数据库,并…

如何操作MySQL数据库数据

目录 一、MySQL数据库概念 数据 表(数据表) 数据库 数据库管理系统 数据库的建立和维护功能 数据定义功能 数据操纵功能 数据库的运行管理功能 通信功能 数据流向 二、主流数据库分类 1.SQL Server 数据库 (微软分公司产品&…

【力扣算法11】之 8. 字符串转换整数 (atoi) python

文章目录 问题描述示例1示例2示例3提示 思路分析代码分析完整代码详细分析运行效果截图调用示例运行结果 完结 问题描述 请你来实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C 中的 atoi 函数)。 函数 m…

基于scrcpy的Android群控项目重构,集成Appium服务执行自动化测试用例

系列文章目录 基于scrcpy的Android群控项目重构 基于scrcpy的Android群控项目重构 进阶版 基于scrcpy的Android群控项目重构,获取Android屏幕元素信息并编写自动化事件(视频) 基于scrcpy的Android群控项目重构,获取Android屏幕…

大数据与视频技术的融合趋势将带来怎样的场景应用?

视频技术和AI技术的融合是一种新兴的技术趋势,它将改变视频行业的运作方式。视频技术和AI技术的融合主要包括以下几个方面: 1)人脸识别技术 人脸识别技术是AI技术的一个重要应用场景。它可以通过对视频中的人脸进行识别和分析,实…

Spark(23):SparkStreaming之DStream转换

目录 0. 相关文章链接 1. DStream转换概述 2. 无状态转化操作 2.1. Transform 2.2. join 3. 有状态转化操作 3.1. UpdateStateByKey 3.2. WindowOperations 0. 相关文章链接 Spark文章汇总 1. DStream转换概述 DStream 上的操作与 RDD 的类似,分为 Transf…

测试计划(详细版)

目录 简介 测试计划的目的 测试计划的作用 范围 编写条件 注意事项 评审总结 参考模版 测试策略 简介 数据和数据库完整性测试 接口测试 集成测试 功能测试 用户界面测试 性能评测 负载测试 强度测试 容量测试 安全性和访问控制测试 故障转移和恢复测试 …

【linux】“gdb“调试方法与技巧

"gdb"调试方法与技巧 一、什么是gdb?二、gdb的使用进入gdb调试list/l 查看源码l/list行号list/l函数名 run/r运行break(b)设置断点info break查看断点信息finishn/next单条执行s/step进入函数调用p 变量set var修改变量的值continue/cdisable breakpionts…

基于javaweb旅游景点线路预定系统设计与实现

1.引言 随着我国人们生活水平的不断提高,旅游逐渐成为人们工作之余,进行放松压力,调节情绪的首要选择。近几年,我国旅游游客规模不断扩大,使旅游业得到快速发展,但也带来了更激烈竞争。面对更复杂的旅游业…

一分钟让你学会如何判断文件是否结束

文章目录 前言ferror函数feof函数ferror函数与feof函数搭配使用 前言 在所有的文件输入输出函数中,我们介绍了一系列的与文件的顺序读写有关的函数,它们调用成功与失败时的返回值各不相同,为了能更好地记忆这些函数,我们将这些函…

react使用SVGA特效 常用api

下载插件 npm install svgaplayerweb --save react中代码 import React, { useEffect } from react; import SVGA from svgaplayerweb const Svga () > {const bofang () > {var player new SVGA.Player(#demoCanvas);//创建实例var parser new SVGA.Parser(#demo…

【经验贴】项目管理过程中最容易忽略的问题,你踩了几个?

“有没有一句话送给刚入行的项目经理?” 随着毕业季的到来,最近发现越来越多类似的话题,评论区成了众多项目经理自嘲的“据点”,部分新手项目经理看完可能要重新考虑下职业规划了。 “要重点关注客户的需求,而不是项…

Android蓝牙协议栈fluoride(一) - 概述

发展 Android 4.2之前的版本采用Linux官方的蓝牙协议栈BlueZ,Android 4.2开始使用google和Broadcom共同开发的Bluedroid来替代BlueZ,但早期的Bluedroid并不完善,存在较多问题,更新迭代后将其更名为fluoride。接下来的系列文章将逐…

接口测试之深入理解HTTPS

前言 随着网络安全问题越来越被重视,HTTPS协议的使用已经逐渐主流化。目前的主流站点均已使用了HTTPS协议;比如:百度、淘宝、京东等一二线主站都已经迁移到HTTPS服务之上。而作为测试人员来讲,也要需时俱进对HTTPS协议要有一定的…

分布式调用与高并发处理 Dubbo分布式调用

一、Dubbo概念 1.1 什么是分布式系统 单机架构 一个系统业务量很小的时候所有的代码都放在一个项目中就好了,然后这个项目部署在一台服务器上,整个项目所有的服务都由这台服务器提供。 缺点: 服务性能存在瓶颈代码量庞大,系统臃…

未跟踪的文件: (使用 “git add <文件>...“ 以包含要提交的内容)怎么移除这些内容

有时候我们常常修改一些内容 手动就是:rm -rf system/core/healthd/images/.png 怎么丢弃呢? git clean -f . 删除这种文件

微信小程序设置底部导航栏

微信小程序设置底部导航栏 1、前言2、图标准备3、小程序tabbar设置 1、前言 我们先来看下效果图: 注意: 导航栏数量最多5个,最少两个。 2、图标准备 阿里图标库 http://www.iconfont.cn/collections/show/29 我们进入该网站,选…

第九章(1):循环神经网络与pytorch示例(RNN实现股价预测)

第九章(1):循环神经网络与pytorch示例(RNN实现股价预测) 作者:安静到无声 个人主页 作者简介:人工智能和硬件设计博士生、CSDN与阿里云开发者博客专家,多项比赛获奖者,发…