Bootstrap

访问控制技术

学习大数据安全的过程中发现该部分内容,恰与操作系统中的访问控制技术存在关联,于是统而归结于此。

Access Control中的基本术语:

主体:发起对资源的访问请求的主动实体,一般为系统的用户或进程
客体:能够被操作的实体,一般为各类资源及数据资源
操作:主体对客体的读、写等动作
访问权限:客体及对其的操作形成的二元组<操作,客体>
访问控制:确保数据等资源只能由经过授权的用户访问、使用和修改
访问控制策略:对系统中主体访问客体的约束需求描述
访问控制模型:对访问控制策略的抽象、简化和规范

访问授权:访问控制系统按照访问控制策略进行访问权限的授予
引用监控机:系统中监控主体和客体之间授权访问关系的部件

传统访问控制技术

自主访问控制

客体的属主决定主体对客体的访问权限。
自主访问控制模型可以表达为(S,O,A)三元组。其中,Subject表示主体集合,Object表示客体集合,Access matrix表示访问矩阵,A(si, oj)表示主体si能够对客体oj执行的操作权限。

在这里插入图片描述

能力表(CL)

基于主体的自主访问控制实现,记录每个主体和一个权限集合的对应关系,权限集合中每个权限被表示为客体以及其上允许的操作集合的二元组。

访问控制列表(ACL)

基于客体的自主访问控制实现,记录每个客体和一个权限集合的对应关系,权限集合中每个权限被表示为主体以及其能够进行的操作集合的二元组。

大数据环境下,自主访问控制模型面临着管理复杂度爆炸的问题。

强制访问控制

由安全管理员决定资源的访问控制策略,主体和客体之间满足偏序性质的安全标记形成支配关系从而进行访问控制。

基于机密性的BLP模型

安全级别(level)
范畴(category)
安全标记(label)
支配关系(dom)

BLP模型的核心规则为“不上读,不下写”,从而保证数据只能从低级别向高级别流动。
主体对客体的访问行为需要满足下列两条安全属性:

  1. 简单安全属性:
    主体 S S S可以读客体 O O O,当且仅当 L a b e l s   d o m   L a b e l o Label_{s}\ dom\ Label_{o} Labels dom Labelo,且 S S S O O O有自主型读权限。
  2. *安全属性:
    主体 S S S可以写客体 O O O,当且仅当 L a b e l o   d o m   L a b e l s Label_{o}\ dom\ Label_{s} Labelo dom Labels,且 S S S O O O有自主型写权限。
基于完整性的BIBA模型

完整性级别(level)
范畴(category)
安全标记(label)
支配关系(dom)

主体对客体的访问行为需满足下列三条安全属性:

  1. 完整性特性:
    主体 S S S能够写入客体 O O O,当且仅当 L a b e l s   d o m   L a b l e o Label_{s}\ dom\ Lable_{o} Labels dom Lableo
  2. 调用特性:
    主体 S 1 S_{1} S1能够调用主体 S 2 S_{2} S2,当且仅当 L a b e l s 1   d o m   L a b e l s 2 Label_{s_{1}}\ dom\ Label_{s_{2}} Labels1 dom Labels2
  3. 简单完整性条件:
    主体 S S S能够读取客体 O O O,当且仅当 L a b e l o   d o m   L a b e l s Label_{o}\ dom\ Label_{s} Labelo dom Labels

大数据场景下,安全标记的定义和管理将变得极为复杂,主客体规模也呈爆炸式增长。

基于角色的访问控制:RBAC(Role based access control)

基于密码学的访问控制技术


分类如下:

  1. 基于密钥管理的访问控制技术可以分为下列两种:
      - 基于单发送者广播加密的访问控制(广播发送者必须持有所有接收者的对称密钥)
      - 基于公钥广播加密的访问控制技术(广播发送者必须持有所有接收者的公钥)

  2. 基于属性加密的访问控制技术


下文简单介绍基于单发送者广播加密的访问控制技术:

基于密钥管理的访问控制技术,是通过严格的密钥管理来确保授权用户才有解密数据所需的密钥以实现访问控制。

技术方案的要点在于:如何通过密钥的管理实现向特定用户授予数据访问权

基于用户密钥树
数据所有者:拥有数据和完整的用户密钥树,负责根据数据分享的目标对象有选择地从用户密钥树中选取加密密钥对数据进行加密,并将加密结果广播给所有用户。
普通用户:拥有用户密钥树中与自己相关的部分密钥,负责接收数据密文并使用自己持有的密钥解密数据。

就密钥集合而言,在任意一条叶子节点到根节点的路径上,都不可能遇到其中的两把密钥!

;