基于密码学的访问控制

背景

大数据安全的基础, 就是基于密码学的访问控制. 这种访问控制技术依赖于密钥的安全性, 不需要可信监控机, 传统的基于引用监控机的访问控制不能适应庞大的数据量的需求, 出现难以管理和耗费大量资源的窘境, 因此基于密码学的访问控制技术就是数据时代的必由之路.

分类

基于密码学的访问控制主要有两大类

基于密钥管理的访问控制, 通过确保数据解密密钥只有授权用户持有来实现, 通常依靠可信密钥管理服务器实现. 不过这种方法同可信监控机一样不适用于大数据环境, 但是有一种广播加密技术提供解决方案.
基于属性加密的访问控制, 不带可信监控机的ABAC模型, 将属性集合作为公钥, 只有符合属性集合的用户才能解密数据. 衍生有两种, 基于密钥策略的属性加密(Key Policy Attribute-Based Encryption, KP-ABE)和基于密文策略的属性加密(Ciphertext Policy Attribute-Based Encryption, CP-ABE)


基于密钥管理的访问控制

两种实现方式, 基于单发送者广播加密的访问控制, 基于公钥广播加密的访问控制.

基于单发送者广播加密的访问控制

角色

  • 数据所有者: 拥有完整用户密钥树和数据, 根据目标对象选择性用密钥树的加密密钥加密数据之后广播给所有用户.
  • 普通用户: 拥有与自己相关的密钥树中的部分密钥, 能够解密相应的数据.

控制原理
用特定用户子集特有的密钥加密数据时就完成了访问控制, 密钥是对称密钥, 也只有相应用户子集可以解密数据.
在这里插入图片描述比如上图的用户密钥树, 每个叶节点表示一个用户, 同时每个节点表示一个密钥, 每个用户拥有从叶子节点密钥一直追溯到根节点每个节点的密钥. 如果用 k 1 k_1 k1来加密数据, 只有用户集{U5, U6, U7, U8}的用户能够解密数据, 如果用 k 01 k_{01} k01来加密数据, 只有用户集{U3, U4}可以解密数据, 如果用 k 001 k_{001} k001加密数据, 只有{U2}可以解密数据.


基于公钥广播加密的访问控制

角色

  • 公钥服务器: 产生公私钥对密钥集合, 给每个用户子集分发相应私钥
  • 数据所有者: 负责加密数据, 基于公钥广播加密技术分发加密密钥.
  • 数据服务者: 存储加密数据, 给用户提供数据服务.
  • 用户: 数据访问者, 只有被所有者授权的用户才能够解密相应数据.

数据产生, 加密, 授权, 访问过程略微复杂, 之后补充…



基于属性加密的访问控制

基本概念

  • 访问结构: 主要分为门限结构, 属性值与操作结构, 访问树结构, LSSS矩阵结构等. 主流应用是访问树结构.
  • 访问树结构: 相当于将各个门限结构作为节点用树结构表示. 简单介绍门限结构, ( t , n ) (t, n) (t,n)是门限结构的抽象形式, 意思是秘密信息分成n份, 至少需要t份才能恢复. AND相当于 ( n , n ) (n, n) (n,n)门限, OR相当于 ( 1 , n ) (1, n) (1,n)门限. 将各个属性作为叶子, AND/OR操作作为中间节点, 根节点, 构成树结构, 就是访问树结构, 定义:对于节点x, n x n_x nx为节点的子节点数目, k x k_x kx为门限值. 如果 k x = = n x k_x == n_x kx==nx则表示AND操作, k x = = 1 k_x == 1 kx==1表示OR操作.

访问树结构示例, 对于如图所示的访问树结构, 只有Place属性是Office或者Place属性是Home且ID是Alice的用户可以访问数据.
在这里插入图片描述
主要分为CP-ABE访问控制, 多属性权威访问控制, 外包加解密访问控制方案.

基于CP-ABE的访问控制

算法分为4个部分
(1) S e t u p ( ) Setup() Setup(): 生成主密钥MK, 公开参数PK. MK是只有算法构造者掌握, PK被所有相同参与者接收
(2) C T T = E n c r y p t ( P K , T , M ) CT_T = Encrypt(PK, T, M) CTT=Encrypt(PK,T,M): 使用PK, 访问结构T, 将明文M加密为密文 C T T CT_T CTT
(3) S K S = K e y G e n ( M K , S ) SK_S = KeyGen(MK, S) SKS=KeyGen(MK,S): 用MK, 用户属性值S生成用户私钥 S K S SK_S SKS
(4) M = D e c r y p t ( C T T , S K S ) M = Decrypt(CT_T, SK_S) M=Decrypt(CTT,SKS): 用户用私钥 S K S SK_S SKS解密 C T T CT_T CTT得到明文M, 当且仅当用户属性S满足访问结构T时才能解密成功.

访问控制方案

角色

  • 可信权威: 维护属性和密钥的对应, 负责执行算法的(1), (3); 持有MK, 同时要为用户分发密钥 S K S SK_S SKS
  • 数据所有者: 通过数据服务者向用户分享数据, 负责定义访问结构T, 执行算法的(2), 加密要分享的数据.
  • 用户: 持有可信权威分发的属性密钥 S K S SK_S SKS, 执行算法(4), 可以解密相应的数据.
  • 服务提供者: 只做数据存储功能的提供者, 不参与任何算法执行.

在这里插入图片描述



多属性权威访问控制
外包加解密访问控制方案

方案有一丢丢复杂, 之后补充…

  • 7
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
在操作系统中实现访问控制,需要采用一定的算法和技术来实现。以下是一些实现访问控制的常见算法: 1. 基于角色的访问控制(RBAC):RBAC是一种常见的访问控制算法,它将用户和资源分配给不同的角色,然后通过授予和撤销角色的权限来管理访问控制。RBAC算法可以有效地管理复杂的访问控制策略,同时也可以简化管理工作。 2. 基于属性的访问控制(ABAC):ABAC是另一种常见的访问控制算法,它将用户的属性作为访问控制的依据。例如,基于用户的工作职责,ABAC算法可以限制用户对特定资源的访问权限。 3. 基于内容的访问控制(CBAC):CBAC是一种基于内容的访问控制算法,它根据资源的内容来限制用户的访问权限。例如,基于文档的敏感程度,CBAC算法可以限制用户对特定文档的访问权限。 4. 强制访问控制(MAC):MAC是一种基于标签的访问控制算法,它将标签分配给用户和资源,然后根据标签的安全级别来管理访问控制。MAC算法通常用于高度安全的环境中,例如军事和政府系统。 5. 自主访问控制(DAC):DAC是一种基于所有者的访问控制算法,它允许资源所有者授权其他用户访问资源。DAC算法通常用于个人计算机和小型网络中。 以上算法可以单独或者组合使用,实现复杂的访问控制策略。在实现访问控制时,需要考虑安全性、性能、可扩展性等因素,同时也需要定期审计和更新访问控制策略,以保证系统的安全性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值