存取控制是指当用户已被计算机接受,注册登录入机后,要求调用程式或数据时,计算机核对用户的许可权,根据用户对该项资源被授予的许可权控制对其进行存取。通用存取控制是指用户进行存取数据时,系统通常採用许可权控制策略。通用存取控制主要是为了保证系统安全以及数据安全。
基本介绍
- 中文名:通用存取控制
- 外文名:general access control
- 学科:计算机
- 定义:系统通常採用许可权控制策略
- 有关术语:存取控制
- 领域:计算机系统
简介
通用存取控制是指用户进行存取数据时,系统通常採用许可权控制策略。在计算机系统中,经常会有未经授权的用户擅自修改系统中所保存的信息,这里的修改包括建立和删除档案以及在档案中增加新内容和改变原有内容等。为了保证系统信息的安全,系统一般都会採取一些通用存取控制方法或策略。通用存取控制也可以是指系统经常採用存取控制策略。常见通用存取控制方法可以分为以下几种:密码、口令、访问控制矩阵以及访问控制表。按照存取控制许可权来划分,通用存取控制方法有强制存取控制、自由存取控制、以及角色存取控制三种。
基于许可权的通用存取控制
强制存取控制(Mandatory Access Control, MAC),以管理者授权为基础,所有的资讯元件都需要经过管理者授权,才能被使用者所存取。
自由存取控制(Discretionary Access Control, DAC),以创建资讯元件的元件持有者授权为基础,不需要经过管理者授权,持有者授权可以决定使用者对于资讯元件的存取许可权。
角色存取控制(Role-base Access Control),存取许可权与使用者角色相依,资讯元件的存取被授权给角色,使用者需要先取得角色身份,才能透过角色身份取得存取许可权。例如,某公司有经理人与一般职员两个角色,经理人可以存取A与B两元件,但职员只可以存取B元件。某甲进入公司之后取得职员身份,依据角色存取控制方法,某甲只能存取B资讯元件,直到他获得经理人角色之后,才可以获得A资讯元件的存取许可权。
基于角色的存取控制
基于角色的存取控制(Role-based Access Control,RBAC)是作为传统的DAC和MAC的替代和补充被提出的。RBAC的主要思路是将存取许可权赋予角色,用户必须是适当角色的成员之一,并以此获得该角色的许可权。这种方法简化了对存取许可权的管理工作。角色只按照组织中不同的工作职责来创建,而用户则按照职责被指定其所扮演的角色。RBAC 能够满足的两条安全原则分别是:任务分离原则和最少许可权原则。
任务分离
任务分离要求对于特定的一个事务集合,没有一个人被允许来执行所有这些事务。最常见的例子是,对于提起支付与授权支付,不允许一个人同时处理这两项事务。任务分离可以是静态的,也可以是动态的 。一项动态策略允许有更大的弹性,它允许同一个人既扮演提起者又扮演授权者的角色,但没有人能够对他或她所提起的支付进行授权。静态策略可以通过仅检查用户的角色来实现;对于动态的情况,系统必须同时使用角色和用户身份来检查事务的访问情况。
最小许可权原则
最小许可权原则要求用户分配的许可权不会多于完成某项工作所必须的许可权。确保最小许可权要求辨别该用户的工作,确定完成该项工作所需要的最小许可权集合,并限制用户在这些许可权而不是更大範围之内。如果我们将角色当作安全策略的一个组成部分,那幺可以将它们从各种机制中分离出来,例如,在存取控制系统中用来实现角色的用户组( Group) 。
基本结构
在 RBAC的框架下,用户按照其能力和在组织中的职责成为某种角色的一员。用户允许执行的操作是基于用户所属的角色。当工作任务改变时,可以方便地撤销用户在原来角色中的成员资格并确立新的成员资格。当新的操作创建时,可以建立与角色的关联;而当组织的功能改变时,可以删除旧的操作。所有的许可权都是首先分配给角色而不是直接分配给用户,然后再将角色分配给用户, 当一个用户创建了一个会话时,会话拥有了用户激活的该角色的所有许可权。为了方便角色的管理,可以将角色分层组织,这样高级角色比低级角色功能更强,拥有更多的许可权 。
套用约束的基本思想是设计更高层的组织策略,一个典型的例子就是设计相互无关的角色。一旦确定了某些角色之间是相互排斥的,就不需要过多的在意单个用户所分配的角色。后面的活动就可以授权并细化,而无须担心要协调组织内所有策略的目标。约束条件可以指定在系统层或套用层上,可以需要也可以不需要事件的触发。例如,一定事件的发生会导致一定约束条件的套用,儘管如此,用来指定约束条件的一般方法应适用于所有这些情况。
正式描述
Ferraiolo and Kuhn 对 RBAC 给出了一个简单的正式描述:
( 1) 对于每一个主体, 活动的角色是主题正在使用的角色;
( 2) 每个主体可以被授权执行一个或多个角色;
( 3) 每个角色可以被授权执行一个或多个事务;
( 4) 主体可以执行事务。
规则
三个基本规则:
( 1) 角色分配:只有当主体已选择或被分配了一个角色,该主体才能执行一项事务。除了别和确认角色的过程( 如login) 不看作是一项事务之外, 系统中所有其他的用户活动都是通过事务来进行的。因此,所有活动用户都要求具有一些主动角色。
( 2) 角色授权:一个主体的活动角色必须被授权给该主体。第( 1)、 ( 2) 条规则确保了用户只能使用被授权的角色。
( 3) 事务授权:只有当一项事务被授权给该主体的活动角色时,该主体才能执行这项事务。
常见通用存取控制方法
访问控制表
访问控制表(Access Control List,ACL),又称存取控制串列,是使用以访问控制矩阵为基础的访问控制方法,每一个对象对应一个串列主体。访问控制表描述每一个对象各自的访问控制,并记录可对此对象进行访问的所有主体对对象的许可权。访问控制表的主要缺点是不可以有效迅速地枚举一个对象的访问许可权。因此,要确定一个对象的所有访问许可权需要搜寻整个访问控制表来找出相对应的访问许可权。
访问控制矩阵
访问控制矩阵( Access Control Matrix),或译为访问控制数组,又称访问矩阵(Access Matrix),是一套抽象、形式化的安全性模型。这套模型描述了计算机系统中的安全保护状态,各别表示其下的每个附属子体,对于系统中的每个对象,其所拥有的许可权。这个概念最早是由巴特勒·兰普森在1971年所提出。
在访问矩阵中的每一个元素,分别代表主体与受体的许可权。在某些大型计算机伺服器上,存在数量庞大的对象和对象拥有的许可权。这样会导致访问控制矩阵过大而难以一次性查看或阅读。因此有时採用访问控制表来改善这个缺点。
口令
当一个用户要登录某台计算机时,作业系统通常都要认证用户的身份。而利用口令来确认用户的身份是当前最常用的认证技术。通常,每当用户要上机时,系统中的登录程式都首先要求用户输入用户名,登录程式利用用户输入的名字去查找一张用户注册表或口令档案。在该表中,每个已注册用户都有一个表目,其中记录有用户名和口令等。登录程式从中找到匹配的用户名后,再要求用户输入口令,如果用户输入的口令也与注册表中用户所设定的口令一致,系统便认为该用户是合法用户,于是允许该用户进入系统;否则将拒绝该用户登录。口令是由字母或数字、或字母和数字混合组成的,它可由系统产生,也可由用户自己选定。系统所产生的口令不便于用户记忆,而用户自己规定的口令则通常是很容易记忆的字母、数字,例如生日、住址、电话号码,以及某人或宠物的名字等。这种口令虽便于记忆,但也很容易被攻击者猜中。
密码
它是数字通信中为保证信息的保密性及真实性而对信息所做的变换。这里的信息表现为某个q元字母表集合上的序列,原始的信息称为明文,经加密变换后得到的序列称为密文。若按照某种规则重新安排明文中元素的次序而得出密文,则这样的变换称为移位密码.若字母表到自身有一个一一对应,将明文中每个元素用其对应的元素替代而得到密文,则这样的变换称为代换密码。在通用存取控制中,只有知道密钥用户才能存取系统的有关信息。