一种改进的BLP模型
2012-04-10宋法根刘振海梅江林
宋法根,刘振海,梅江林
SONG Fa-gen,LIU Zhen-hai,MEI Jiang-lin
(盐城工学院 继续教育学院,盐城 224000)
0 引言
安全的模型是安全策略的形式化表达,是建立安全系统的理论基础,也是对系统进行安全评估的重要参考,故而人们对安全模型的研究一直没有停止过。经过多年的研究人们提出了很多经典的模型,包括BLP模型、Biba模型、CW模型、中国墙模型、基于角色的访问控制模型和基于任务的访问控制模型等,但总体上这些模型可以大致划分为两类,第一类就是访问控制模型,主要通过控制主体对客体的访问来达到保护客体和客体上信息的安全;第二类是信息流模型,其主要控制信息流的方向,使其信息避免流向不安全的其他对象,从而保证信息的安全可控。BLP模型就是一种比较经典的信息流模型,本文首先对BLP模型进行了简单介绍,接着对BLP模型进行了分析,发现其还存在一定的缺点和局限,最后本文给出了一种解决BLP模型存在问题的方案,并对本方案进行了详细的探讨。
1 BLP模型
BLP模型是由MITRE公司的Bell和LaPadula在文献[1,2]中提出的,他是实现多级安全机密性策略的经典模型。BLP模型通过“下读上写”的原则保证信息只能从低密级主体流向高密级主体,从而保证机密信息不会被泄露。
BLP模型是一个状态机模型,表1为其基本元素[3]。
表1 BLP模型中的符号
BLP模型中,定义了两个安全属性,简单安全属性和星号安全属性。
1)简单安全属性:allow (s,o,r)为真,当且仅当s支配o。(其中r表示读操作)。
2)星号安全属性:allow (s,o,w)为真,当且仅当o支配s。(其中w表示写操作)。
安全属性又叫RD,即主体只能读取比自己安全等级低的客体信息;星号安全属性又叫WU,即主体只能向比自己安全等级高的客体进行写操作。两条规则一起保证系统的读和写操作不会引起信息从高安全级向低安全级的流动。通过限制信息的流动方向,在理论上很好的保证了信息的私密性,但是在实际的应用中,要求高安全等级的主体不向低安全等级的主体传达任何信息,这种要求是过于苛刻的,或者说完全按照这两条规则设计的系统是不能够很好的实现需求的,例如,在BLP模型比较适合的军事领域,上级部门总要给下级部门传达指令,而这种信息的传达,显然是违背BLP模型的WU原则;在计算机进程之间通信时,低安全级别的进程向高安全级别的进程传递信息,而高安全级别的进程甚至不能向低安全级别的进程传递确认信息,这显然是不合理的。也就是说BLP模型理论上可以很好的保证敏感信息不被泄露,但是他对于主客体的要求过于苛刻,应用中很难完全实现。因此在实现BLP模型的系统中都或多或少的存在违反BLP原则的操作,如实现BLP的操作系统Multics,ASOS和SXOMP均定义了可以绕过*-安全属性规则检查的可信主体,这样更好的实现了系统的功能,大大增加了系统的灵活性,但是却为系统的安全埋下了一定隐患。另一方面BLP模型中对于满足BLP规则的主体限制过少,如果某个客体被特洛伊木马感染,那么敏感信息就会不断的被泄露。
在以后的研究中,人们提出了很多种改进的BLP模型,文献[4,5]分别提出了两种不同的改进的BLP模型、ABLP模型和SLCF模型,他们从不同的方面对BLP模型进行了改进,增加了系统的灵活性,但却在文献[6]中被证明为不安全的。以往对BLP模型的改进主要有两类,第一类就是通过动态的调整主体的敏感级使其满足BLP模型的准则;第二类主要是通过限制读和写的安全级范围来限制可信主体的权限。第一类可能产生隐通道的问题,第二类主要是通过限制可信主体的权限来保证即使某些主体违反BLP安全模型的安全规则进行了恶意的操作,对系统造成的危害也不会太大。无论哪种改进的BLP模型均未能在保证模型安全的前提下解决高安全级别主体向低安全级主体发送信息进行通信的问题。本文在最大限度的保证模型安全性的前提下,对BLP模型进行改进,使得BLP模型更具有灵活性和实用性。
2 对BLP模型的改进
BLP模型的下读上写的原则最大限度的保证信息的安全性,但也极大的限制了模型的实用性和灵活性,因而在实际实现了BLP模型的系统中,为了实现系统的功能或增加系统的灵活性,一般都存在违反BLP模型规则的操作,这种不受BLP模型控制的操作极大的破坏了系统的安全性。本文正是在一定程度上允许“下写”的存在,把那些违反BLP模型安全规则的操作都纳入BLP模型的控制范围内,从而增加了系统的实用性,安全性,灵活性。
2.1 模型中的约定
1)满足经典BLP模型规则的操作仍是允许的。
2)主体自身不能进行“下写”的操作。
3)主体若要执行“下写”的操作,必须得到比自己安全级高的多个主体的允许。
4)主体执行一次被允许的对某个客体的“下写”操作,主体下写的权限被取消。
对于经典的BLP模型的安全性前人已经给出了形势化的证明。这里重点讨论对BLP模型改进的部分。
2.2 模型的设计
这里把上级主体的一次“下写”的操作称为一个事务。低安全级的主体需要得到高安全级的主体的信息时,首先向对应的高安全级主体发出请求,高安全级别的主体收到请求后自身不能决定是否进行下写的操作,必须向多个更高安全级主体发出授权请求,若一定数量的更高安全级的主体拒绝授权,则不能对低安全级的主体进行下写的操作,本次事务终止;若有相当数量的主体同意授权,则高安全级的主体可以对低安全级的主体进行“下写”操作,操作完成后高安全级主体的下写权限被收回,本次事件终止,如图1所示。
在BLP模型中将主体定义为主动的实体,如进程,将客体定义为被动的实体[7]。在本模型中各个实体既有主动的行为也有被动的行为,故而这里把所有实体看成主体。
2.3 模型的形式化描述
BLP模型中经典的部分,在以往的文献中已有详细的描述,我们这里不再赘述,这里重点讨论本文中改进的部分。在经典的BLP模型中请求集被定义为其中,S+表示集合,A+表示集合,这里把请求集定义为 以区别于以往的请求集R,这里Re,其中RT称为请求种类集。RT={r0,r1,r2},其中r0表示正常请求,r1表示强制求,r2称为二次请求。对于正常请求,将按照经典的BLP模型中的原则判断并做出对应的应答。对于强制请求,如符合经典的BLP模型中的准则,自然将被允许,反之(如向低安全级主体进行“下写”操作),将触发一个事务,在这个事务中被请求主体将向更高安全级的主体发出二次请求,多个更高安全级的主体将对该二次请求进行判定,决定是否对发出二次请求的主体进行授权,以进行特殊的操作,如“下写”。
图1 模型中的下写操作
由强制请求触发的事务,也可以称作一次表演。一个事务我们记为e,可以看成一个四元组(r1,r2,li,le),r1表示触发二次请求的强制请求,r2表示二次请求,li表示事务的生命期,le表示事务的安全级水平。当事务被触发后li被初始化,当主体发出二次请求后,li进入等待期,等待二次请求的结果,若二次请求的结果为拒绝,则拒绝r1,li进入锁定定期,事务终止;若二次请求结果为允许,则进行r1请求的操作后li进入锁定期,事务终止。le表示事务的安全水平,管理员可以对具体的事务配置适当的安全水平,这里定义三种安全水平,对于安全级别比较高的事务,我们要求二次请求的所有对象都给出肯定的应答,才准许r1的请求;对于中等安全级别的事务,我们要求要有足够多的二次请求的对象给出肯定的应答,才准许r1的请求;而对于安全级别相对较低的事务,只要有更高安全级的主体给出肯定的应答即可允许r1的请求。对于第一种和最后一种安全水平的事务,相对来说比较简单,也比较容易实现,我们重点讨论,中间一种情况,即要求有一定数量的更高安全级的主体给出肯定的应答,主体才可允许r1的请求。这里我们可以使用密码学中基于门限的秘密分享方案来实现系统的功能。(k,n)门限秘密分享是把一个或多个秘密分拆成若干个子秘密,分配给n个参与者,使得n个参与者中任何k个参与者合作都可恢复秘密,但对于任何少于k个的参与者得都无法获得该秘密[8]。对于中等安全的事务,把所有二次请求的对象的个数定义为n,把需要得到准许的数目定义为k,则当收到准许的数目达不到k个时,则可以恢复原来的秘密,允许r1的请求;反之则拒绝请求。
2.4 模型的安全性分析
对于BLP模型中常规的部分,以往的文献已有详尽的论述,这里不再重复。我们重点讨论本文中改进的部分。本文通过在一定程度上允许“下写”存在,从而在尽可能不降低系统的安全性的情况下,增加了系统的灵活性。本文对BLP模型的改进基于一个前提条件,即整个系统中大部分的主体是安全可信的,若系统中几乎所有的主体都是敌对的,则系统已经没有存在的必要性了,故而这个前提也是合理的。本文在一定程度上允许下写的操作,而对类似的操作更加慎重。
第一,被请求“下写”操作的主体不能决定自己是否进行此操作,从而避免了一个主体被入侵就会引起信息泄露的可能。
第二,对于二次请求,多个更高安全级的主体通过基于门限的秘密分享方案中秘密恢复的方法来决定是否允许对应的请求,故而即使有部分高安全级的主体已成为恶意主体时也不会造成敏感信息的泄露。
第三,对于“下写”的操作,采取基于事务的方法。强制请求触发事务,更高安全级的主体根据请求的具体上下文环境及对应的安全策略,决定是否允许本次请求,本次请求被拒绝或准许并执行后事务终止,事务终止后,主体将不能进行“下写”操作。这里不是通过动态调整主体的安全级来实现系统的需求,从而避免了隐通道的问题。
本模型支持两个著名的安全控制准则:
1)最小特权原则,事务被激起后,系统将会根据具体情况对相应主体临时授予一定权限,当事务结束后权限被收回。
2)职责分离原则,主体自身不能决定自己是否能够进行“下写”的操作,必须向更高安全级的主体发出二次请求,才能决定。
3 结束语
BLP模型是比较经典的安全模型,它的“下读上写”的准则能够很好的保证敏感信息不被泄露,但是,也大大限制了系统的灵活性。本文受基于任务的访问控制模型的启发,在一定程度上允许慎重的“下写”,从而增加了系统的灵活性。可以预见,增加了灵活性的BLP模型将会得到更广泛的应用。
[1] D. E. BEL,and L. J.LaPadula. Secure Computer Systems:Mathematical Foundations. MITRE Technical Report 2647,voume I. Nationgal Technical Information Service,1973.
[2] L.J.LaPadula,and D. E. Bell. Secure Computer Systems:A Mathematical Model. MITRE Techniacl Report 2547,volume II. National Information Service,1973.
[3] Len Lapadula,secure computer system: a mathematical model[R]. MITRE Technical Report,Vol II,1996,titled secure Computer Systems:Mathematical Foundations,by Leonard J.LaPadula and D. Elliott Bell,dated 31 May 1073.
[4] Shi WC.Research on and enforcement of methods ofmethods of secure operating systems development[Ph.D.Thesis]. Beijing: Institute of Software,the Chinese Academy of Sciences,2001.
[5] Liang HL,Sun YF,Zhao QS,Zhang XF,Sun B,Design and implementation of a security label common framework..Journal of Software,2003,14(3): 547-552.
[6] 何建波,卿斯汉,王超. 对两个改进的BLP模型的分析[J].软件学报,18(6): 1501-1509,2007.6 .
[7] 谷千军,王越. BLP模型的安全性分析与研究[J]. 计算机工程,32(22): 157-158,2006. 11.
[8] 何明星,范平志,袁丁. 一个可验证的门限多秘密分享方案[J]. 电子学报,30(4): 540-543,2002. 6.