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

常用的访问控制权限模型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.hqwc.cn/news/20752.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Table Recognition Metric: 表格识别算法评测工具包及相关评测基准数据集

Table Recognition Metric 该库用于计算TEDS指标,用来评测表格识别算法效果。可与魔搭-表格识别测试集配套使用。TEDS计算代码参考:PaddleOCR 和 DAVAR-Lab-OCR 使用说明: Install package by pypi.pip install table_recognition_metricRu…

【SCI一区】互联燃料电池混合动力汽车通过信号交叉口的生态驾驶双层凸优化(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

支付宝接入

支付宝接入 python-alipay-sdk pycryptodome一、电脑网站支付 1.1 获取支付宝密钥 沙箱网址 1.APPID 2.应用私钥 3.支付宝公钥1.2 存放密钥 在与 settings.py 的同级目录下创建 pem 文件夹pem 文件夹下创建 app_private_key.pem 和 alipay_public_key.pem app_private_key…

python pytest脚本执行工具

pytest脚本执行工具 支持获取当前路径下所有.py脚本 添加多个脚本,一起执行 import tkinter as tk from tkinter import filedialog import subprocess import os from datetime import datetimedef select_script():script_path filedialog.askopenfilename(fil…

11. 利用Tomcat服务器配置HTTPS双向认定

文章目录 Tomcat配置HTTPS1.为服务器生成证书2.为客户端生成证书3.让服务器信任客户端证书4.将该文件导入到服务器的证书库,添加为一个信任证书使用命令如下:5.查看证书库6.让客户端信任服务器证书7.配置tomcat8.验证 Tomcat配置HTTPS 1.启动cmd控制台&…

使用Pytorch加载预训练模型及修改网络结构

Pytorch有自带的训练好的AlexNet、VGG、ResNet等网络架构。详见官网 1.加载预训练模型 import torch import torchvision import torch.nn as nn import torch.optim as optim import torch.nn.functional as F import torchvision.transforms as transforms import torchvis…

逆波兰式是什么?

1. 逆波兰式是什么? 逆波兰式,也称逆波兰记法(Reverse Polish Notation,缩写为RPN),是一种在数学和计算机科学中用于表示算术表达式的方法。它的特点是操作符在操作数的后面,不需要括号来改变运…

DevOps基础服务2——Jenkins

文章目录 一、基本了解1.1 CI/CD介绍1.2 基于Docker的CI/CD 二、安装jenkins三、页面管理3.1 当前系统用户配置3.2 系统配置3.3 全局工具配置3.4 插件管理3.4.1 安装插件3.4.2 上传插件 3.5 用户设置3.6 查看日志3.7 汉化设置 一、基本了解 DEVOPS概念: DevOps是一种…

网络ping丢包什么原因(附解决方案)

​  数据包丢失是一种网络问题,当通过网络(或设备之间或通过 Internet)传输的数据包在传输过程中丢失或丢弃并且无法到达目的地时,就会发生这种情况。简单来说,数据包丢失是指数据包无法通过互联网从发送者成功传输到接收者。 如何检测数据…

LiveGBS流媒体平台GB/T28181功能-支持UDP、TCP被动、TCP主动模式流传输模式之间有什么区别?

LiveGBS流媒体平台-国标流媒体服务几种流传输模式UDP、TCP被动、TCP主动模式区别是什么 1、背景1、GB28181流传输模式1.1、UDP1.2、TCP 被动1.3、TCP 主动 2、切换流传输模式2.1、编辑2.2、下拉切换 3、搭建GB28181视频直播平台 1、背景 国标GB28181协议中,视频流到…

eNSP-VRRP虚拟路由器冗余技术

VRRP-虚拟路由器冗余技术 文章目录 VRRP-虚拟路由器冗余技术一、拓扑结构二、基本配置三、测试验证四、知识点详解1.VRRP路由器2.报文格式3.工作过程 一、拓扑结构 二、基本配置 R1: #配置ip <Huawei>sys [Huawei]sys r1 [r1]int g0/0/0 [r1-GigabitEthernet0/0/0]ip a…

Perl 7 - 使用 Perlbrew 管理perl 版本

文章目录 关于 Perlbrew安装 Perlbrew使用 perlbrew 安装/管理 perl 版本 关于 Perlbrew 官网&#xff1a;https://perlbrew.pl 相关文档&#xff1a; App::perlbrew https://metacpan.org/pod/App::perlbrew Perlbrew 是一个工具&#xff0c;用于管理您$HOME 目录(或您指定的…