关键词 加密;解密;访问控制;等级
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中列举出来。

图1 访问控制列表(ACL)
从加密的角度来讲,为了加强通用的访问控制,每个数据必须被加密,这样只有ACL中的主体有能力解密数据。假设每个主体被分配一对密钥:公钥和私钥。K个主体共享消息m:s1,s2,…sk,对于每个主体si∈{ s1,s2,…sk },m被si的公钥加密。加之它所有者的密文,m被加密(k+1)次。为了共享一个单一的信息m系统保存(k+1)个密文。这种方法的消极面出现确定了,也就是存
储加密数据的多个副本可能会产生矛盾(不一致性)。
2.1 系统元素
- 上一篇:脱离高阵点库实现汉字屏显
- 下一篇:基于SOA的高校资源控制

