访问控制系列

目录

一、基本概念

1.客体与主体

2.引用监控器与引用验证机制

3.安全策略与安全模型

4.安全内核

5.可信计算基

二、访问矩阵

三、访问控制策略

1.主体属性

2.客体属性

3.授权者组成

4.访问控制粒度

5.主体、客体状态

6.历史记录和上下文环境

7.数据内容

8.决策层次

9.策略扩展


一、基本概念

1.客体与主体

客体是一种蕴涵或接收信息得被动实体。例如,操作系统中的文件、目录、管道、消息、信号量、进程和内存页等,数据库系统中的库、表和字段等,信息网络中的通信线路和计算节点等,都是信息系统中的常见客体。

主体是一种主动实体,它的活动引起信息在客体之间流动。例如,用户、用户组和进程等。在信息系统中,最基本的主体是用户(包括一般用户和系统管理员、系统安全员、系统审计员等特殊用户)。

在操作系统中,进程(包括用户进程和系统进程)一般有着双重身份,它即可能是主体,也可能是客体。当一个进程运行时,它必定直接或间接地为某一用户服务,处理该用户地操作要求,而用户的所有操作请求都要通过进程来代理其进行。进程既是用户行为的客体,又是其访问对象的主体。例如,在编辑一个文件时,编辑器进程代表用户执行文件编辑操作,相当于用户行为,它是客体;而相当于它所编辑的文件,它又是主体。

2.引用监控器与引用验证机制

引用监控器是一种对主体访问客体的行为进行仲裁的抽象装置,是访问控制机制的理论基础。访问控制数据库中存放主体、客体、主体对客体的访问模式等信息,引用监控器以访问数据库中的信息为依据,对主体访问客体的行为进行安全判决。显然,随着主体和客体的产生、删除或其权限的变更,访问控制数据库中的内容要做相应的增删或修改。引用监控器的关键需求是控制主体对客体的每一次访问,并对安全敏感事件进行审计。

引用监控器的具体实现称为引用验证机制,它是实现引用监控起思想的硬件和软件的组合,引用验证机制需要同时满足一下三个原则:

(1)必须具有自我保护能力;

(2)必须总是处于活跃状态;

(3)必须设计得足够小,以利于分析和测试。

第一个原则保证引用验证机制即使受到攻击也能保持自身得完整性;第二个原则保证主体对客体得所有引用,都应得到引用验证机制得仲裁;第三个原则保证引用验证机制得实现是正确的。

3.安全策略与安全模型

安全策略是一种声明,它将系统状态划分为安全态(或称已授权态)和非安全态(或称未授权态)。安全系统是一种始于安全态,且不会进入非安全态的系统。而如果系统进入了非安全态,则称其发生了一次安全破坏。

安全策略由一整套严密的规则组成,这些规则是实施访问控制的依据。说一个信息系统是安全的,是指它满足特定的安全策略。同样进行信息系统的安全设计和开发时,也要围绕一个给定的安全策略进行。许多系统的安全控制失效,主要不是因为程序错误,而是没有明确的安全策略。

安全模型是对安全策略所表达的安全需求得简单、抽象和无歧义得描述。它为安全策略和安全策略的实现机制的关联提供了一种框架。Anderson指出,要开发安全系统首先必须建立系统的安全模型。安全模型给出了安全系统的形式化定义,并且正确地综合系统地各类因素,包括系统的使用方式、使用环境类型、授权定义、共享资源和共享类型等。

4.安全内核

在引用监控器思想的基础上,Anderson定义了安全内核的概念。安全内核是指系统中与安全性实现相关的部分,包括引用验证机制和授权管理机制等部分。安全内核是实现引用监控器概念的一种技术,其理论依据是:在一个大型的操作系统中,仅有一小部分软件是用于安全目的。所以,可用其中与安全相关的软件,来构成操作系统的一个可信内核,称为安全内核。安全内核法是建立安全操作系统的一种最常用的方法。

大多数情况下,安全内核是一个简单的系统,如同操作系统为应用程序提供服务一样,它为操作系统提供服务。而且正如操作系统给应用程序施加限制,安全内核也同样对操作系统施加限制。当安全策略完全由安全内核而不是由操作系统实现时,仍需要操作系统维持系统的正常运行,并防止由于应用程序的致命错误而引发的拒绝服务。但是操作系统和应用程序的任何错误均不能破坏安全内核的安全策略。

5.可信计算基

操作系统的安全依赖于一些具体实施安全策略的可信的软件和硬件。这些软件、硬件和负责系统安全管理的人员一起组成了系统的可信计算基(TCB)。具体来说可信计算基由一下几部分组成。

(1)操作系统的安全内核。

(2)具有特权的程序和命令。

(3)处理敏感信息的程序,如系统管理命令等。

(4)与TCB实施安全策略有关的文件。

(5)其他有关的固件、硬件和设备。这里要求为使系统安全,系统的固件和硬件部分必须能可信地完成它们的设计任务。原因在于固定和硬件故障,可能引起信息的丢失、改变或生产违反安全策略的事件。因此把安全操作系统中的固件和硬件也作为TCB的一部分来看待。

(6)负责系统管理的人员。由于系统管理员的误操作或恶意操作也会引起系统的安全性问题,因此他们也被看做是TCB的一部分。系统安全管理员必须经过严格的培训,并慎重地进行系统操作。

(7)保障固件和硬件正确的程序和诊断软件。

以上所列的TCB的各组成部分中,软件部分是安全操作系统的核心内容,它们完成下述工作:

(1)内核的良好定义和安全运行方式;

(2)标识系统中的每个用户;

(3)保持用户到TCB登录的可信路径;

(4)实施主体对客体的存取控制;

(5)维持TCB功能的正确性;

(6)监视和记录系统中的有关事件。

在一个通用安全操作系统中,TCB是用来构成一个安全操作系统的所有安全保护装置的组合体。一个TCB可以包含多个安全功能,每个安全功能模块实现一个安全策略,这些安全策略共同构成一个安全域,以防止不可信主体的干扰和篡改。

实现安全功能的方法有两种,一种是设置前端过滤器,另一种是设置访问监督器。两者都是在一定硬件基础上,通过软件实现确定的安全策略,并且提供所要求的附件服务。例如作为前端过滤器的安全功能,能防止非法进入系统;作为访问监督器的安全功能,则能防止越权访问,等等。

在单处理机环境的操作系统中,根据系统设计方法的不同,TCB可以是一个安全内核,也可以是一个前端过滤器,或者就是操作系统的关键单元或包括全部操作系统。对于网络环境下的多处理机操作系统,一个安全功能可能跨网络实现,这种情况要比单处理机操作系统更为复杂。这些安全功能协同工作,构成一个物理上分散、逻辑上同一的分布式安全系统,其所能提供的安全策略和附加服务则为各个安全功能的总和。


二、访问矩阵

访问矩阵是以主体标识为行索引、以客体标识为列索引的矩阵,矩阵中的每一个元素表示一组访问权限的集合。

访问矩阵中的一行表示一个主体的所有权限,一列则是关于一个客体的所有访问属性,矩阵中的元素是该元素所在行对应的主体对该元素所在列对应的客体的访问权限。从本质上来说,任何访问控制策略都可以用矩阵直观表示:行对应于主体,列对应于客体,矩阵元素对应于授权。

由于信息系统的资源量和用户数较多,访问矩阵一般庞大而稀疏,如果把整个矩阵保存下来,不仅实现起来不方便,而且效率很低。因此,在实际中,很少用它直接描述或实现访问控制策略。


三、访问控制策略

访问控制策略是在系统安全系统安全较高层次上对方问控制和相关授权的描述,它的表达模型常被称为访问控制模型,是一种访问控制方法的高层抽象和独立于软、硬件实现的概念模型。在制定访问控制策略时,首先要考虑系统的安全性为目标,有的还要求提供可记账和可用性。这些要求,都会影响访问控制策略的制定。此外,在制定访问控制策略时,通常还要考虑如下要素。

1.主体属性

主体属性主要有用户的级别和类别。在信息系统中,可以将用户分为多种普通用户和管理员用户,使之具有组别属性;还可以根据用户的工作职责,赋予其不同角色属性。主体属性还可能包括相关执行程序的性质、所处的网络或物理地址等,它们也可能使授权的依据。例如,很多单位约定,不能从家中访问办公室的资源。在安全性要求更高的情况下,主体属性还可能包括其安全状态。例如,访问控制系统在允许某计算机接入到系统之前,可以首先评估该主机自身健康状况,如果发现其未安装杀毒软件,则认为其感染病毒的概率较大,此时可能不予授权连接。

2.客体属性

客体属性主要有客体的信息级别、可对其执行的操作等。例如,在操作系统中,资源的访问属性有是否可读、是否可写、是否可执行、是否可连接等属性;在普通信息系统中,客体属性还可能包括密级、是否可查询、是否可删除、是否可增加等。在安全性要求更高的情况下,客体属性也可能包括其安全状态。例如,系统可能认为某些客体已经感染计算基病毒或来源不可信,因而不允许用户访问。

3.授权者组成

在信息系统中,可能的授权者包括资源的属主(一般是资源的创建者)和系统管理者。因此,策略的制定,需要考虑资源所有者和系统分别在多大程度参与授权的问题。

4.访问控制粒度

访问控制粒度是指将访问控制中的主体和客体分为不同尺度的实体来实施管理。例如,主体粒度可以分为用户、用户组等;在数据库系统中,客体的粒度可以分为数据库、数据库表、数据记录和数据项等不同粒度。

5.主体、客体状态

主体、客体状态包括它们所处的地点、当前时间和当前受访状态等,例如,一些系统不但不允许单位员工从外部网络访问内部数据,对访问的时间也有限制;并且,当一个客体被多个连接访问时,还可能要求阻止其他连接请求。

6.历史记录和上下文环境

有时,信息系统会要求根据主体曾经访问过的客体、客体的被访问记录和当前状况、被访问客体之间的关系等历史记录和上下文环境,动态地进行访问控制决策。例如,在数据库安全中,有的系统要求仅当主体没有访问过雇员姓名数据,才允许其访问雇员工资数据。

7.数据内容

可以对数据内容作多种分类,并分类实施授权和访问控制。例如,可以按照数值大小或内容性质分类。例如,在数据库访问控制策略中,仅当某项数值大于一定值时,才允许用户查看,这个数值可能是雇员工资、合同金额或考试成绩。

8.决策层次

即要确定在信息系统中地哪个层次上实施访问控制决策。例如,操作系统中存在低层地磁盘读/写和高层地文件读/写指令,计算机网络中包括不同层次地通信协议。在制定访问控制策略时,需要确定该策略在系统地决策层次。

9.策略扩展

访问控制策略应该可以提供一定地可扩展性。这里可扩展性主要是指所扩展的功能能够由已有的系统部件自动实施,所扩展的规则也可以用已有的规则描述。

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

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

相关文章

Spring Boot集成syslog快速入门Demo

1.什么syslog? Syslog-ng是由Balabit IT Security Ltd.维护的一套开源的Unix和类Unix系统的日志服务套件。它是一个灵活的、可伸缩的系统日志记录程序。对于服务器日志集中收集,使用它是一个不错的解决方案。syslog-ng (syslog-Next generation) 是sysl…

图灵奖数据库大师Stonebraker师徒对数据库近20年发展与展望的2万字论文

2024年6月,81岁的图灵奖数据库大师Michael Stonebraker(MIT)和他的学生Andrew Pavlo(CMU)联名在数据库顶级期刊SIGMOD发表了一篇名字奇怪的论文,对数据库近20年的发展做了总结与展望。 两位作者都是数据库领…

pc端注册页面 密码校验规则

1.密码校验规则 格应包含大小写字母、数字和特殊符号,长度为8-20 var validateRetrievePassword (rule, value, callback) > {let reg /^(?.*[A-Za-z])(?.*\d)(?.*[~!#$%^&*()_<>?:"{},.\/\\;[\]])[A-Za-z\d~!#$%^&*()_<>?:"{},.\/\\;…

C语言:键盘录入案例

主要使用了scanf&#xff1b; scanf的使用方法和注意事项&#xff1a; 1.作用&#xff1a; 用于接收键盘输入的数据并赋值给对应的变量 2.使用方式; scanf("占位符",&变量名); 3.注意事项; 占位符后面的的变量要对应 第一个参数中不写换行 案例1&#xf…

41.ILA IP核集成逻辑分析仪在线调试工具

&#xff08;1&#xff09;逻辑分析仪使用场景&#xff1a; 仿真不全面数据交互存在异步情况板卡互联可靠性问题 (2)ILA使用方法&#xff1a; 使用IP核创建ILA调试环境使用Debug标记创建IP核使用路径标记核位置调试菜单创建ILA测试环境 (3)IP核调用过程&#xff1a; 例化模…

ES 慢上游响应问题优化在用户体验场景中的实践

在抖音亿级日活流量的情况下&#xff0c;每天收到的用户反馈也是大量的&#xff0c;而用户反馈对于产品的发展与未来是至关重要的&#xff0c;因此用户体验管理平台&#xff08;简称VoC&#xff09;就应运而生&#xff0c;VoC 平台旨在通过技术平台化的方式&#xff0c;结合反馈…

实验七:图像的复原处理

一、实验目的 熟悉常见的噪声及其概率密度函数。熟悉在实际应用中比较重要的图像复原技术,会对退化图像进行复原处理。二、实验原理 1. 图像复原技术,说简单点,同图像增强那样,是为了以某种预定义的方式来改进图像。在具体操作过程中用流程图表示,其过程就如下面所示: 2…

达梦数据库的系统视图v$sqltext

达梦数据库的系统视图v$sqltext 在达梦数据库&#xff08;DM Database&#xff09;中&#xff0c;V$SQLTEXT 是一个系统视图&#xff0c;用于显示当前正在执行或最近执行的SQL语句的文本信息。这个视图对于监控和分析数据库中的SQL活动非常有用&#xff0c;尤其是在需要调试性…

Android TabLayout+ViewPager2如何优雅的实现联动详解

一、介绍 Android开发过程中&#xff0c;我们经常会遇到滑动导航栏的做法&#xff0c;之前的做法就是我们通过ViewGroup来转动&#xff0c;然后通过大量的自定义来完成&#xff0c;将导航栏item与viewpage 滑动&#xff0c;达到业务需求 二、现实方案 通过介绍&#xff0c;我…

SwiftUI 6.0(Xcode 16)新 PreviewModifier 协议让预览调试如虎添翼

概览 用 SwiftUI 框架开发过应用的小伙伴们都知道&#xff0c;SwiftUI 中的视图由各种属性和绑定“扑朔迷离”的缠绕在一起&#xff0c;自成体系。 想要在 Xcode 预览中泰然处之的调试 SwiftUI 视图有时并不是件容易的事。其中&#xff0c;最让人秃头码农们头疼的恐怕就要数如…

滑动窗口题目

题目描述&#xff1a; 计算两个字符串str1和str2在给定的含有n个元素的字符串数组strs中出现的最短距离。 详细解释&#xff1a; 定义整数变量n&#xff0c;用于存储字符串数组strs的长度。定义一个vector<string>类型的变量strs&#xff0c;用于存储输入的字符串。定义…

前端开发日记——在MacBook上配置Vue环境

前言 大家好&#xff0c;我是来自CSDN的寄术区博主PleaSure乐事。今天是开始学习vue的第一天&#xff0c;我使用的编译器是vscode&#xff0c;浏览器使用的是谷歌浏览器&#xff0c;后续会下载webstorm进行使用&#xff0c;当前学习阶段使用vscode也是可以的&#xff0c;不用担…

ctfshow-web入门-php特性(web127-web131)

目录 1、web127 2、web128 3、web129 4、web130 5、web131 1、web127 代码审计&#xff1a; $ctf_show md5($flag); 将 $flag 变量进行 MD5 哈希运算&#xff0c;并将结果赋值给 $ctf_show。 $url $_SERVER[QUERY_STRING]; 获取当前请求的查询字符串&#xff08;que…

防御笔记第七天(时需更新)

1.防火墙的可靠性&#xff1a; 因为防火墙不仅需要同步配置信息&#xff0c;还需要同步状态信息&#xff08;会话表等&#xff09;&#xff0c;所以防火墙不能像路由器那样单纯靠动态协议来进行切换&#xff0c;还需要用到双击热备技术。 双机---目前双机技术仅仅支持两台防火…

Python Linux环境(Centos8)安装minicoda3+jupyterlab

文章目录 安装miniconda安装python环境启动 最近服务器检查&#xff0c;我下面的服务器有漏洞&#xff0c;不得已重装了&#xff0c;正好记录下怎么从零到python写代码。 安装miniconda miniconda是anconda的精简版&#xff0c;就是管理python环境的得力助手。 # 创建一个名…

微服务

微服务 SpringCloud的五大组件 eureka服务注册和发现 nacos的工作流程 nacos和eureka的区别 负载均衡 ribbon负载均衡策略 如何自定义负载策略 服务雪崩 服务熔断 为服务端监控 项目中的限流 seata xa模式 AT模式 tcc模式 分布式服务接口幂等 分布式任务调度

linux服务器配置conda环境安装教程

1 软件准备 1.1 软件下载 https://repo.anaconda.com/archive/index.html 根据官网选择自己需要的版本。 这里下载的是 Anaconda3-2023.03-1-Linux-x86_64.sh 或者直接在linux中输入 wget -c https://repo.anaconda.com/archive/Anaconda3-2023.03-1-Linux-x86_64.sh 1.…

WebSocket实现群聊功能、房间隔离

引用WebSocket相关依赖 <dependency><groupId>javax.websocket</groupId><artifactId>javax.websocket-api</artifactId><version>1.1</version></dependency><dependency><groupId>org.springframework</grou…

安全防御:智能选路

目录 一、智能选路 1.1 就近选路 1.2 策略路由 1.3 虚拟系统---VRF 二、全局选路策略 1&#xff0c;基于链路带宽进行负载分担 2&#xff0c;基于链路质量进行负载分担 3&#xff0c;基于链路权重的负载分担 4&#xff0c;根据链路优先级的主备备份 DNS透明代理 一、…

Java学习高级四

JDK8开始&#xff0c;接口新增了三种形式的方法 接口的多继承 内部类 成员内部类 静态内部类 局部内部类 匿名内部类 import javax.swing.*; import java.awt.event.ActionEvent;public class Test {public static void main(String[] args) {// 扩展 内部类在开发中的真实使用…