加密访问控制
来源:岁月联盟
时间:2010-08-30
1 引言
分等级进行加密的想法最早是由Akl和Taylor提出的[1],多级系统中的主体(用户)和客体(数据)有各自的安全级,用户对数据的访问必须满足一定的安全性要求。安全级是一个二元组<密级,分类集合>。用户间的安全级的比较是按偏序进行的。如果安全级U1=密级l1分类集合s1,U2=密级l2分类集合s2。称U1<=U2当且仅当l1<l2且s1⊆s2。 假设有主体S,客体O1、O2和O3,如果安全级Uo1<=Us,Us= Uo2,Us<=Uo3,则S对O1只能读,对O3只能写,对同安全级别的客体O2可以进行读写两种操作。在这种多级安全模型中,一个主体(用户)访问其它主体的数据时,只需要与被访问主体的安全级进行比较,如果访问主体的安全级比被访问主体的安全级高,则允许访问,否则,访问被禁止。从中可以看到,如果非法用户篡改安全级,则很容易实现对其它(高安全级)用户数据的非法访问。可见这种比较安全级的访问控制方法具有潜在的不安全性。通过加密方法可以有效消除这种不安全性。首先,在对用户身份鉴别时,不仅生成用户密码,同时还为用户生成一个公钥、私钥对,利用密钥对来加强对用户身份鉴别,再利用用户的私钥为用户生成一个访问密钥,由此来实现访问控制。2 基于数据的解决方法
找到足够安全的保护数据的方法或者安全的产生访问密钥的方法,就可以解决访问控制的问题,这是实现加密访问控制时的重点。 非常流行的加强访问控制的方法是通过访问控制列表。每个数据都与一个ACL表相关,表中列举出授权的用户组和相对应的访问模式。通过查看ACL,很容易决定允许谁对相关数据进行对应操作。ACL包含通常情况下的所有访问控制。例如,它支持等级访问控制。如果我们根据等级结构或者组织产生ACL。那么等级访问控制就能够被加强。也就是说,一个数据拥有这和它所有的祖先都被在它的数据ACL中列举出来。2.1 系统元素
我们的基于数据的解决方法包括以下元素: 主体S={s1,s2,…sl},主体既可以是用户也可以是组。 公钥密码系统包括三个功能函数: (1)密钥生成函数KG:∀si∈S,KG生成一对密钥:公开密钥Ksi和它的对应的私有密钥Ksi-1。 (2)加密函数E:c=Ek(m),其中c是密文,m代表信息,K表示公开密钥(加密密钥)。 (3)解密函数D:c=Dk-1(c),K-1表示私有密钥(解密密钥)。2.2 加密的访问控制
假设主体si想与k个用户si1,si2,…,sik∈S共享信息m,si执行下面的操作(为简单起见,我们假设m<ns1,ns2,…nsl)。如果是长信息,可以一块一块的进行加密。 (1)首先,sik个单一的密文,也就是说,对于∀sj∈{si1,si2,…,sik},计算Ek sj (m)。 (2)然后,si用加纳法则计算出CRT的解x,0≤x ≤nsi1,nsi2,…,nsik,x同时满足以下k个式子: (1) x ≡Ek s1(m)mod nsi1. (2) x ≡Ek s2(m)mod nsi2. … (k) x ≡Ek sk (m)mod nsik。 (3) 把si保存在SDB里。对每个访问m的主体sj,sj∈{si1,si2,…,sik},sj需要计算Ek s j(m)=x mod nsj。然后sj使用私钥Ek sj-1恢复m。2.3 授权变更
数据项授权的变更,如一个主体被授权/撤消对数据项的访问,在信息系统中是很常见的事情。我们的基于数据的解法根据受到影响的数据状态来控制授权变更。如果数据项是动态的(也就是说数据在授权变更时有变化),A1到A3的所有操作基于授权主体新的组再执行一次。如果数据是静态的(也就是说授权更改时数据项不发生改变)。图2 SCS
图2中SCS1包括k个同时满足的等式,它的CRT解是x;给SCS1增加一个条件等式得到SCS2,它的CRT解是x′;从SCS1去除一个条件等式得到SCS3,它的CRT解是x″。假设x的值已经算出来了,为得到x′的值,我们只需要找到x′≡x mod n1n2和x′≡ak+1 mod nk+1两个等式的CRT解。为得到x″的值,我们只需要一个模运算:x″= x mod n1n2…nk +1。总之,x′和x″的值可以很容易得从x得出[2]。 在我们的基于数据的解法中,准予一个主体对一个静态数据项进行访问与从SCS1到SCS2的转换是等价的。新的共享密文x′可以从旧的共享密文x有效得到。撤消一个主体对一个静态数据的访问与从SCS1到SCS3的转换是等价的。通过一个模运算可以简单的从旧的密文x得到新的密文x″。3 基于密钥的解法
3.1 实现 在基于数据的解法中,k个共享者共同分享信息m,共享密文的大小是原始信息m大小的k倍。因此基于数据的解法在m或者k很大的情况下是不可取的。而且,基于数据的解法是基于公开密码系统的。这样的话,共享一个数据项,数据项的所有者必须知道所有分享者的加密密钥。为保护解密密钥的机密性,我们只能使用公开密钥加密系统。公开密钥加密系统比对称加密体制慢。 我们的基于密钥的解法的主要思想是:不是分享信息,而是分享加密密钥[3]。除了在基于数据的解法中列举的元素外,基于密钥的解法还需要一个对称密钥加密系统。这里,我们用SE表示加密函数,SD表示解密函数。 如果一个主体si 想与主体si1,si2,…,sik∈S分享信息m,执行如下操作: (1)随机选择一个对称密钥KR。 (2)使用KR 加密m:c=SEKR(m)。 (3)∀s∈{si1,si2,…,sik},EKsj(KR)。 (4)找到同时满足下面等式的CRT解: (1) x ≡Ek si1(KR)mod nsi1. (2) x ≡Ek si2(KR)mod nsi2. … (k) x ≡Ek sik (KR)mod nsi 。 (5) 把x||c保存到SDB中,其中符号“||”的意思是“串联”。主体sj∈{si1,si2,…,si k}访问m,sj需要计算Ek sij(KR) = x mod ns j;然后用私钥Ksj-1取回对称密钥KR,也就是KR=D Ksj-1(Ek sij(KR));最后,使用KR恢复明文m,m=SD KR(c)。3.2 授权变更
对于动态数据,任何时候只要授权发生更改,从(1)到(5)的步骤都要被基于新的主体组重新执行一次。对于静态数据,如果主体被撤消了对数据的访问,为组织主体使用旧的对称密钥获取数据,从(1)到(5)的步骤都要被基于新的主体组重新做一遍。如果一个主体被准予对数据的访问,不需要对数据重新进行加密,因为旧的对称密钥仍然可以使用。因此从SCS1到SCS2的转换可以被使用来从旧的对称密钥产生新的共享密文。新的授权主体可以获取旧的对称密钥来截密数据[4]。 因为对称密钥的大小通常比数据项小得多,公开密钥加密比基于数据的解法更加有效。由于同样的原因,共享密文的大小比基于数据的方法小很多。总之,当数据或者分享者数目较大时基于密钥的解法更可取。3.3 SIFF函数实现
如果能找到足够安全的产生访问密钥的方法,则可以容易解决访问控制的问题,可以利用SIFF函数实现[5]。先作如下假设: (1) 用IDi表示节点Ni的标识,设IDi能用 l(n)位长的串描述,l是多项式。 (2) F={Fn|n∈N}是伪随机函数族,其中Fn={fk| fk:∑l(n) →∑n,k∈∑n },用n位的串k来标识fk。 (3)H={ Hn|n∈N }是k-SIFF,将n位的输入映射为n位的输出。设k足够大,足以表示一个节点拥有的父节点数。 下面给出一个生成访问密钥的算法: 算法:访问密钥生成算法 输入:用户节点集{N1,…Ni,…Np(n)} 输出:各用户对应的访问密钥{K1,…Ki,…Kp(n)} (1)如果节点N0是最大节点,K0=fpk0(ID0);其中pk0是节点N0对应的用户的私钥。否则转(2)。 (2)如果节点Nj只有一个父节点Ni,Ni已经有了访问密钥Ki,则Nj的访问密钥Kj(n位长):Kj=fKi(IDi) 。 (3)如果节点Nj有多个(如:p个)父节点:Ni1,Ni2,…,Nip,对应有各自的访问密钥Ki1,Ki2,…Kip,则Kj为从随机选取的n位串:Kj∈R∑n,再从Hn中随机的选取一个哈希函数hi,使得将fKj1(IDj),fKj2(IDj)…,fKjk(IDj)都映射到Kj。即:hi((fKj1(IDj))= hi((fKj2(IDj))=…= hi((fKjp(IDj))=Kj。然后公开哈希函数hi,使之对Nj 所有的祖先节点都可用。 (4)如果节点集中的节点全部访问完毕则输出访问密钥,算法结束;否则转(1)。由算法可知,如果Ni≥Nj,则Kj 总可以由Ki得到。当Ni是Nj的的单一父节点时,Kj=fKi(IDi);当Ni不是Nj的父节点时,通过从上往下的一条路径Ni最终也能得到Kj。4 结论
文章综述了用加密来解决访问控制的方法,描述了基于数据的和基于密钥的解决方法。文中系统的安全性是基于不同的函数:余数定理和SIFF函数实现的。 [1] 王元珍,魏胜杰,朱虹. 安全DBMS中访问控制的一种加密解决方法. 计算机工程与应用. 2003(16),pp:195-197 [2] Yibing Kong,Jennifer Seberry. A Cryptographic Solution for General Access Control. Janusz R. Getta,Springer-Verlag Berlin Heidelberg 2005. pp:461-473 [3] Ray,I.,Ray,I.,Narasimhamurthi,N.. A Cryptographic Solution to Implement Access Control in a Hierarchy and More. Proceedings of the Seventh ACM Symposium on Access Control Models and Technologies. ACM Press (2002),pp:65-73 [4] Jajodia,S.,Samarati,P.,Sapino,M. L.,Subrahmanian,V. S.:Flexible Support for Multiple Access Control Policies. ACM Transactions on Database Systems,Vol. 26,No. 2. ACM Press (2001),pp:214-260 [5] Akl,S. G.,Taylor,P. D.:Cryptographic Solution to a Multilevel Security Problem. Advances in Cryptology:Proceedings of Crypto ’82. Plenum Press (1982),pp:237-249上一篇:干部测评统计分析系统的设计与实现