背景
大数据安全的基础, 就是基于密码学的访问控制. 这种访问控制技术依赖于密钥的安全性, 不需要可信监控机, 传统的基于引用监控机的访问控制不能适应庞大的数据量的需求, 出现难以管理和耗费大量资源的窘境, 因此基于密码学的访问控制技术就是数据时代的必由之路.
分类
基于密码学的访问控制主要有两大类
基于密钥管理的访问控制, 通过确保数据解密密钥只有授权用户持有来实现, 通常依靠可信密钥管理服务器实现. 不过这种方法同可信监控机一样不适用于大数据环境, 但是有一种广播加密技术提供解决方案.
基于属性加密的访问控制, 不带可信监控机的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), 可以解密相应的数据.
- 服务提供者: 只做数据存储功能的提供者, 不参与任何算法执行.
多属性权威访问控制
外包加解密访问控制方案
方案有一丢丢复杂, 之后补充…