当前位置: 首页 > news >正文

安全防御之授权和访问控制技术

授权和访问控制技术是安全防御中的重要组成部分,主要用于管理和限制对系统资源(如数据、应用程序等)的访问。授权控制用户可访问和操作的系统资源,而访问控制技术则负责在授权的基础上,确保只有经过授权的用户才能访问相应的资源。

一、授权

授权技术通常包括身份认证和权限管理。
身份认证是验证用户身份的过程,确保用户是系统中的合法用户;
权限管理则是根据用户的角色和身份,为其分配相应的访问权限。通过授权技术,可以有效地防止非法用户或未授权的用户访问系统资源,从而保护系统的安全。
授权是确定用户访问权限的机制。用户访问权限必须始终遵循最小特权原则,该原则规定用户只拥有执行他们的作业功能所必须的访问权限,而不能拥有其他权限。为了保证网络资源在受控、合法地情况下使用,用户只能根据自己的权限大小访问系统资源,不得越权访问。

二、访问控制

访问控制是网络安全防范和保护的主要核心策略,它的主要任务是保证网络资源不被非法使用和访问。
访问控制包括三个要素:主体、客体和控制策略。
主体S(Subject):是指提出访问资源具体请求或某一操作动作的发起者,但不一定是动作的执行者,可能是某一用户,也可以是用户启动的进程、服务和设备等。
客体O(Object):是指被访问资源的实体。所有可以被操作的信息、资源、对象都可以是客体。客体可以是信息、文件、记录等集合体,也可以是网络上的硬件设施、无限通信中的终端,甚至可以包含另外一个客体。
控制策略A(Attribution):是主体对客体的相关访问规则集合,即属性集合。访问策略体现了一种授权行为,也是客体对主体某些操作行为的默认。

1、访问控制模型

典型访问控制模型如图所示:
在这里插入图片描述

访问控制模型的组成

2、访问控制的机制

访问控制机制是检测和防止系统被未授权访问,并保护资源所采取的各种措施。是在文件系统中广泛应用的安全防护方法,一般在操作系统的控制下,按照事先确定的规则决定是否允许主体访问客体,贯穿于系统全过程。
访问控制矩阵(Access Contro1 Matrix)是最初实现访问控制机制的概念模型,以二维矩阵规定主体和客体间的访问权限。行表示主体的访问权限属性,列表示客体的访问权限属性,矩阵格表示所在行的主体对所在列的客体的访问授权,空格为未授权,Y为有操作授权。以确保系统操作按此矩阵授权进行访问。通过引用监控器协调客体对主体访问,实现认证与访问控制的分离。在实际应用中,对于较大系统,由于访问控制矩阵将变得非常大,其中许多空格,造成较大的存储空间浪费,因此,较少利用矩阵方式,主要采用以下2种方法:
1)访问控制列表
访问控制列表(Access Control List,ACL)是应用在路由器接口的指令列表,用于路由器利用源地址、目的地址、端口号等的特定指示条件对数据包的抉择。是以文件为中心建立访问权限表,表中记载了该文件的访问用户名和隶属关系。利用ACL,容易判断出对特定客体的授权访问,可访问的主体和访问权限等。当将该客体的ACL置为空,可撤消特定客体的授权访问。
2)能力关系表
能力关系表(Capabilities List)是以用户为中心建立访问权限表。与ACL相反,表中规定了该用户可访问的文件名及权限,利用此表可方便地查询一个主体的所有授权。相反,检索具有授权访问特定客体的所有主体,则需查遍所有主体的能力关系表。

3、访问控制的策略

访问控制的安全策略是指在某个自治区域内(属于某个组织的一系列处理和通信资源范畴),用于所有与安全相关活动的一套访问控制规则。访问控制的安全策略有三种类型:基于身份的安全策略、基于规则的安全策略和综合访问控制方式。

1)基于身份的安全策略

基于身份的策略包括基于个体的策略和基于组的策略。

  • 基于个体的策略:一个基于个体的策略根据哪些用户可对一个目标实施哪一种行为的列表来表示。这个等价于用一个目标的访问矩阵列来描述。
  • 基于组的策略:一个基于组的策略是基于身份的策略的另一种情形,一些用户被允许对一个目标具有同样的访问许可。
2)基于规则的安全策略

基于规则的策略包括多级策略和基于间隔的策略。
多级策略:通过分配给每个目标一个密级来操作。密级由低到高分为:无密级、限制、机密、秘密、绝密。每个用户从相同的层次中分配一个等级。
基于间隔的策略:在基于间隔的策略中,目标集合关联于安全间隔或安全类别,通过他们来分离其他目标。用户需要给一个间隔分配一个不同的等级,以便能够访问间隔中的目标。

3)综合访问控制方式

综合访问控制策略(HAC)继承和吸取了多种主流访问控制技术的优点,有效地解决了信息安全领域的访问控制问题,保护了数据的保密性和完整性,保证授权主体能访问客体和拒绝非授权访问。综合访问控制策略主要包括:

  • 入网访问控制
    入网访问控制是网络访问的第一层访问控制。对用户可规定所能登入到的服务器及获取的网络资源,控制准许用户入网的时间和登入入网的工作站点。
  • 网络的权限控制
    网络的权限控制是防止网络非法操作而采取的一种安全保护措施。用户对网络资源的访问权限通常用一个访问控制列表来描述。
  • 目录级安全控制
    目录级安全控制主要是为了控制用户对目录、文件和设备的访问,或指定对目录下的子目录和文件的使用权限。用户在目录一级制定的权限对所有目录下的文件仍然有效,还可进一步指定子目录的权限。
  • 属性安全控制
    属性安全控制可将特定的属性与网络服务器的文件及目录网络设备相关联。在权限安全的基础上,对属性安全提供更进一步的安全控制。网络上的资源都应先标示其安全属性,将用户对应网络资源的访问权限存入访问控制列表中,记录用户对网络资源的访问能力,以便进行访问控制。
  • 网络服务器安全控制
    网络服务器安全控制允许通过服务器控制台执行的安全控制操作包括:用户利用控制台装载和卸载操作模块、安装和删除软件等。操作网络服务器的安全控制还包括设置口令锁定服务器控制台,主要防止非法用户修改、删除重要信息。
  • 网络监控和锁定控制
    在网络系统中,通常服务器自动记录用户对网络资源的访问,如有非法的网络访问,服务器将以图形、文字或声音等形式向网络管理员报警,以便引起警觉进行审查。
  • 网络端口和结点的安全控制
    网络中服务器的端口常用自动回复器、静默调制解调器等安全设施进行保护,并以加密的形式来识别结点的身份。自动回复器主要用于防范假冒合法用户,静默调制解调器用于防范黑客利用自动拨号程序进行网络攻击。

4、访问控制技术

访问控制技术则是在授权的基础上,进一步控制用户对系统资源的访问。它根据用户的角色和权限,决定用户可以访问哪些资源以及可以进行哪些操作。常见的访问控制技术包括:

  1. 强制访问控制(Mandatory Access Control):这是一种基于安全策略的访问控制方法,由系统管理员设定安全级别,并按照安全级别对资源进行访问控制。
  2. 自主访问控制(Discretionary Access Control):这是一种基于用户身份的访问控制方法,由资源的拥有者自行设定访问权限。
  3. 基于角色的访问控制(Role-Based Access Control):这是一种基于用户角色的访问控制方法,通过将权限分配给角色,再将角色分配给用户,来实现访问控制。
1)强制访问控制技术(Mandatory Access Control)

强制访问控制(MAC),将系统中的信息分密级和类进行管理,以保证每个用户只能访问到那些被标明可以由他访问的信息的一种访问约束机制。通俗的来说,在强制访问控制下,主体与客体都被标记了固定的安全属性(如安全级、访问权限等),在每次访问发生时,系统检测安全属性以便确定该主体是否有权访问该客体。基于规则的多级策略就是一种强制访问控制策略。

2)自主访问控制技术(Discretionary Access Control)

自主访问控制又被称为“基于身份的访问控制”,允许合法用户以用户或用户组的身份访问策略规定的客体,同时阻止非授权用户访问客体。自主访问控制模型的特点是授权的实施主体(可以授权的主体、管理授权的客体、授权组)自主负责赋予和收回其他主体对客体资源的访问权限。
在自主访问控制机制中,存取模式主要有:

  • 读:允许主体对客体进行读和拷贝的操作。
  • 写:允许主体写入或修改信息,包括扩展、压缩机删除等。
  • 执行:允许将客体作为一种可执行文件运行,在一些系统中该模式还需要同时拥有读模式。
  • 空模式:主体对客体不具有任何的存取权。

自主访问控制的具体实施可采用以下四种方法:

  • 目录表
    在目录表访问控制方法中,借用了系统对文件的目录管理机制,为每一个欲实施访问权限的主体建立一个能被其访问的“客体目录表(文件目录表)”。如某个主体的客体目录表可能是:
    客体1 :权限1 客体2:权限2…
    客体目录表中各个客体的访问权限的修改只能由该客体的合法属主确定,不允许其他任何用户在客体目录表中进行写操作,否则将可能出现对客体访问权限的伪造。操作系统必须在客体的拥有者控制下维护所有的客体目录。
  • 访问控制列表
    访问控制列表是从客体角度进行设置的,是面向客体的访问控制。每个客体都有一个访问控制列表,用来说明有权访问该客体的所有主体及其访问权限。
  • 访问控制矩阵
    访问控制矩阵是对上面两种方法的综合,直观地看,访问控制矩阵是一张表格,每行代表一个主体,每列代表一个客体,表中纵横对应的项是该主体对该客体的访问权集合。
  • 能力表
    能力表是访问控制矩阵的改进,将矩阵的每一列作为一个客体而形成一个存取表,每个存取表只由主体、访问权集合组成。
3)基于角色的访问控制技术(Role-Based Access Control)

基于角色的访问控制(RBAC)是实施面向企业安全策略的一种有效的访问控制方式。其基本思想是:对系统操作的各种权限不是直接授予具体的用户,而是在用户集合与权限集合之间建立一个角色集合。每一种角色对应一组相应的权限。一旦用户被分配了适当的角色后,该用户就拥有此角色的所有操作权限。这样做的好处是,不必在每次创建用户时都进行分配权限的操作,只要分配用户相应的角色即可,而且角色的权限变更比用户的权限变更要少得多,这样将简化用户的权限管理,减少系统的开销。
在一个组织内部,角色是相对稳定的,而用户和权限之间的关系则是易变的,比如因用户职务变化而随之发生权限变化。通过角色,可以减少授权管理的复杂度,降低管理开销,它是传统访问控制技术的有效补充。通常角色和用户组在概念上容易混淆,它们之间有本质的区别,组是用户的集合,而角色作为中介,既是用户的集合,又是权限的集合。
在一个组织内,安全管理员可以根据完成某项工作所需的权限,创建适当的角色;然后根据用户所要完成的任务,授予不同的角色,从而授予访问权限。用户与角色,角色与权限之间关系都是多对多的关系。用户与特定的一个或多个角色相联系,角色与一个或多个访问权限相联系。用户根据自己的需求动态地激活自己拥有的角色,完成特定的任务,避免误操作造成的危害。

授权和访问控制技术是安全防御的重要组成部分,可以有效防止未经授权的用户访问系统资源,保护系统的安全。在实际应用中,需要根据具体的安全需求和场景,选择合适的授权和访问控制技术,以达到最佳的安全防护效果。


博客:http://xiejava.ishareread.com/

相关文章:

安全防御之授权和访问控制技术

授权和访问控制技术是安全防御中的重要组成部分,主要用于管理和限制对系统资源(如数据、应用程序等)的访问。授权控制用户可访问和操作的系统资源,而访问控制技术则负责在授权的基础上,确保只有经过授权的用户才能访问…...

Iceberg从入门到精通系列之二十:Iceberg支持的字段类型

Iceberg从入门到精通系列之二十:Iceberg支持的字段类型 Iceberg 表支持以下类型: 字段类型描述注释booleanTrue or falseint32 位有符号整数可以提升到longlong64 位有符号整数float32 位 IEEE 754 浮点可以提升到doubledouble64 位 IEEE 754 浮点decim…...

Unity坦克大战开发全流程——结束场景——通关界面

结束场景——通关界面 就照着这样来拼 写代码 hideme不要忘了 修改上一节课中的代码...

K8S三种发布方式和声明式资源管理

蓝绿发布 把应用服务集群标记位两个组,蓝组和绿组,先升级蓝组,先要把蓝组从负载均衡当中移除,绿组继续提供服务,蓝组升级完毕,再把绿组从负载均衡当中移除,绿组升级,然后都加入回负载…...

从千问Agent看AI Agent——我们很强,但还有很长的路要走

前言 最近双十一做活动买了台新电脑,显卡好起来了自然也开始大模型的学习工作了,这篇文章可能是该系列的第一弹,本地私有化部署千问agent,后面还会尝试一些其他的大模型结合本地知识库或者做行业垂直模型训练的,一步…...

Word2Vector介绍

Word2Vector 2013 word2vec也叫word embeddings,中文名“词向量”,google开源的一款用于词向量计算的工具,作用就是将自然语言中的字词转为计算机可以理解的稠密向量。在word2vec出现之前,自然语言处理经常把字词转为离散的单独的…...

书生·浦语大模型全链路开源体系----(1)

书生浦语大模型全链路开源体系 什么是大语言模型? 大语言模型是指具有大规模参数和强大语言理解能力的机器学习模型。这些模型通常使用深度学习技术,特别是递归神经网络(RNN)或变换器(Transformer)等架构…...

第四篇 行为型设计模式 - 灵活定义对象间交互

第四篇:行为型设计模式 - 灵活定义对象间交互 行为型设计模式关注对象之间的交互和职责分配,旨在定义对象间的高效、灵活的通信机制。以下是十一种常见行为型设计模式的详解及其应用场景。 1. 策略模式详解及其应用场景 详解: 策略模式定义…...

2023最新租号平台系统源码支持单独租用或合租使用

这是一款租号平台源码,采用常见的租号模式。目前网络上还很少见到此类类型的源码。 平台的主要功能如下: 支持单独租用或采用合租模式; 采用易支付通用接口进行支付; 添加邀请返利功能,以便站长更好地推广&#xf…...

数据库的连接

连接数据库 我们使用WinR输入cmd打开运行窗口 输入:sqlplus并回车 输入用户名和密码,我用的是Scott,密码我自己设置的123456,Scott默认的密码是tiger,回车 这种情况表示登录成功 在连接Scott成功的情况下创建一些数据,在我的资源里面有个Oracle数据基础可以下载,直接复制粘…...

第14课 利用openCV快速数豆豆

除了检测运动,openCV还能做许多有趣且实用的事情。其实openCV和FFmpeg一样都是宝藏开源项目,貌似简单的几行代码功能实现背后其实是复杂的算法在支撑。有志于深入学习的同学可以在入门后进一步研究算法的实现,一定会受益匪浅。 这节课&#…...

在前端利用Broadcast Channel实现浏览器跨 Tab 窗口通信的方法

Broadcast Channel 在前端,我们经常会用postMessage来实现页面间的通信,但这种方式更像是点对点的通信。对于一些需要广播(让所有页面知道)的消息,用postMessage不是非常自然。Broadcast Channel 就是用来弥补这个缺陷…...

【Apache Doris】自定义函数之 JAVA UDF 详解

【Apache Doris】自定义函数之 JAVA UDF 详解 一、背景说明二、原理简介三、环境信息3.1 硬件信息3.2 软件信息 四、IDE准备五、JAVA UDF开发流程5.1 源码准备5.1.1 pom.xml5.1.2 JAVA代码 5.2 mvn打包5.2.1 clean5.2.2 package 5.3 函数使用5.3.1 upload5.3.2 使用 六、注意事…...

BMS电池管理系统带充放电控制过流过压保护

2.4G无线采集BMS开发板(主从一体) 全新升级 (赠送上位机源码TTL 上位机,可以改成自己想要的界面) 12串电池TTL上位机 CAN通信上位机源码有偿开源,供项目二次开发。 增加STM32平台 USB转TTL通信 CAN通信 增加…...

在Linux中以后台静默运行Java应用程序

在Linux系统上运行Java应用程序时,有时我们希望将其设置为后台运行,而关闭终端窗口时不会影响进程的执行。在本文中,我们将介绍几种实现这一目标的方法。 1. 使用nohup命令 nohup是一个用于在后台运行进程的命令,而且关闭终端窗…...

k8s---Pod的生命周期

Pod是什么? pod是k8s中最小的资源管理组件。 pod也是最小化运行容器化应用的资源管理对象。 pod是一个抽象的概念,可以理解为一个或者多个容器化应用的集合 在一个pod当中运行一个容器是最常用的方式 在一个pod当中可以同时运行多个容器&#xff0c…...

CSS animation动画和关键帧实现轮播图效果HTML

CSS animation动画和关键帧实现轮播图效果HTML 这轮播图效果使用h5和css3实现效果&#xff0c;不需要js控制&#xff0c;但是其中的缺点就是不能使用鼠标进行切换效果。 具有代码如下 <!DOCTYPE html> <html lang"en"><head><meta charset&quo…...

Unity之键盘鼠标的监控

小编最近在玩大表哥2&#xff0c;通过 W、A、S、D 来移动亚瑟&#xff0c;鼠标左键来不吃牛肉 我们都知道玩家通过按键鼠标来控制游戏人物做出相应的行为动作&#xff0c;那在Unity引擎里是怎么知道玩家是如何操作的呢&#xff1f;本篇来介绍Unity是怎样监控键盘和鼠标的。 首先…...

C# windows服务程序开机自启动exe程序

我们使用传统的Process.Start(".exe")启动进程会遇到无法打开UI界面的问题&#xff0c;尤其是我们需要进行开启自启动程序设置时出现诸多问题&#xff0c;于是我们就想到采用windows服务开机自启动来创建启动一个新的exe程序&#xff0c;并且是显式运行。 首先是打开…...

【SpringMVC】常用注解

什么是MVC&#xff1f; MVC是一种程序分层开发模式&#xff0c;分别是Model&#xff08;模型&#xff09;&#xff0c;View&#xff08;视图&#xff09;以及Controller&#xff08;控制器&#xff09;。这样做可以将程序的用户界面和业务逻辑分离&#xff0c;使得代码具有良好…...

关于曲率、曲率半径和曲率圆,看这几篇文章就够啦

关于曲率、曲率半径和曲率圆的内容&#xff0c;是考研数学数学一和数学二大纲中明确要求掌握的内容&#xff0c;但这部分内容在很多教材教辅以及练习题中较少涉及。在本文中&#xff0c;荒原之梦考研数学网就为大家整理了曲率、曲率半径和曲率圆方程相关的概念、基础知识以及练…...

java面试题-Spring常见的异常类有哪些?

远离八股文&#xff0c;面试大白话&#xff0c;通俗且易懂 看完后试着用自己的话复述出来。有问题请指出&#xff0c;有需要帮助理解的或者遇到的真实面试题不知道怎么总结的也请评论中写出来&#xff0c;大家一起解决。 java面试题汇总-目录-持续更新中 NullPointerException&…...

数据库选择题 (期末复习)

数据库第一章 概论简答题 数据库第二章 关系数据库简答题 数据库第三章 SQL简答题 数据库第四第五章 安全性和完整性简答题 数据库第七章 数据库设计简答题 数据库第九章 查询处理和优化简答题 数据库第十第十一章 恢复和并发简答题 2015期末 1、在数据库中&#xff0c;下列说…...

WeNet语音识别+Qwen-72B-Chat Bot+Sambert-Hifigan语音合成

WeNet语音识别Qwen-72B-Chat Bot&#x1f47e;Sambert-Hifigan语音合成 简介 利用 WeNet 进行语音识别&#xff0c;使用户能够通过语音输入与系统进行交互。接着&#xff0c;Qwen-72B-Chat Bot作为聊天机器人接收用户的语音输入或文本输入&#xff0c;提供响应并与用户进行对话…...

是否需要跟上鸿蒙(OpenHarmony)开发岗位热潮?

前言 自打华为2019年发布鸿蒙操作系统以来&#xff0c;网上各种声音百家争鸣。尤其是2023年发布会公布的鸿蒙4.0宣称不再支持Android&#xff0c;更激烈的讨论随之而来。 本文没有宏大的叙事&#xff0c;只有基于现实的考量。 通过本文&#xff0c;你将了解到&#xff1a; Har…...

【Golang】Json 无法表示 float64 类型的 NaN 以及 Inf 导致的 panic

【Golang】Json 无法表示 float64 类型的 NaN 以及 Inf 导致的 panic 原因 golang 服务出现了 panic&#xff0c;根据 panic 打印出的堆栈找到了问题代码&#xff0c;看上去原因是&#xff1a;json 序列化时&#xff0c;遇到了无法序列化的内容 [panic]: json: unsupported …...

bootstrap5实现宠物商店网站 Cat-Master

一、需求分析 宠物商店网站是指专门为宠物商店或宠物用品商家而建立的在线平台。这种网站的功能通常旨在提供以下服务&#xff1a; 产品展示&#xff1a;宠物商店网站通常会展示宠物食品、玩具、床上用品、健康护理产品等各种宠物用品的图片和详细信息。这样&#xff0c;潜在的…...

基于多反应堆的高并发服务器【C/C++/Reactor】(中)创建并初始化TcpServer实例 以及 启动

对于一个TcpServer来说&#xff0c;它的灵魂是什么&#xff1f;就是需要提供一个事件循环EventLop(EventLoop)&#xff0c;不停地去检测有没有客户端的连接到达&#xff0c;有没有客户端给服务器发送数据&#xff0c;描述的这些动作&#xff0c;反应堆模型能够胜任。当服务器和…...

边缘计算设备是什么意思。

问题描述&#xff1a;边缘计算设备是什么意思。 问题解答&#xff1a; 边缘计算&#xff08;Edge Computing&#xff09;是一种计算模型&#xff0c;其主要思想是在距离数据产生源头更近的地方进行数据处理和计算&#xff0c;而不是将所有数据传输到远程云服务器进行处理。边…...

使用ChatGPT midjourney 等AI智能工具,能为视觉营销做些什么?

使用ChatGPT、Midjourney等AI智能工具&#xff0c;可以极大地提升视觉营销的效率和创意水平。以下是这些工具在视觉营销中的一些具体应用&#xff1a; 内容创作与文案撰写&#xff08;ChatGPT&#xff09; 广告文案生成&#xff1a;根据产品特点和目标受众&#xff0c;生成吸…...

一元购物网站怎么做/百度seo排名优化公司哪家强

目录 问题描述解决方案 问题描述 在 jupyter 编译器中 程序的开头&#xff0c;有这么一行 %matplotlib inline import numpy as np import matplotlib.pyplot as plt 把这个程序拷贝到pycharm编译器中&#xff0c;出现 注释掉后 程序可以运行&#xff0c;结果是 Process finish…...

建设领域现场专业人员报名网站/网站网址大全

背景&#xff1a;Redis始于一个意大利创业公司Merzia&#xff0c;创始人Salvatore Sanfilippo以及另外一名主要代码贡献者Pieter Noordhuis目前在VMware&#xff0c;全职开发Redis。Redis代码托管在Github上。Redis在性能上是单线程模型&#xff0c;而Memcached支持多线程&…...

网站开发都需要哪些图/电商平台怎么运营的

怎么获得segment header 的dump&#xff1f; 来源于&#xff1a; How to Obtain a Segment Header Dump (文档 ID 249814.1) oracle数据库中的每个segment都有对应的segment header。 segment header通常是分配给这个segment的第一个extent中的第一个block。 segment header包…...

怎么建设自己淘宝网站首页/优化模型数学建模

【填空题】阅读下面代码: sum 0 for i in range(100): if(i % 10): continue sum sum i print(sum) 上述程序的执行结果是____。【判断题】在函数内部修改形参的值会影响实参。【多选题】关节的基本结构包括哪些:【单选题】腰椎间盘突出好发部位是:【单选题】以下哪项做能描…...

做公司网站的/南宁网站推广大全

说起 jq 应该很多同学都用过&#xff0c;但应该大部分同学跟我类似&#xff0c;可能就是 curl xxx | jq . 就这样用过&#xff0c;大概就是请求一个返回 Json 的接口&#xff0c;通过 jq 把他打印得更好看。 但是其实 jq 还有很多用处&#xff0c;至于怎么用&#xff0c;大家真…...

在百度上做网站怎么做/百度竞价电话

properties配置文件一般是使用properties保存配置文件内容,然后在mybatis配置文件中进行读取在resource文件下新建db.properties文件内容如下# 数据库配置文件driver com.mysql.cj.jdbc.Driverurl jdbc:mysql:// /mybatisusername password 然后,接着把文件放入源码包中配置…...