用改进的用改进的2PLHP算法实现算法实现RTDS的定时和安全限制的定时和安全限制
用一个改进的高优先级二段锁(2PLHP)算法实现实时数据库并发控制的安全性限制。
摘 摘 要要: 用一个改进的高优先级二段锁(2PLHP)算法实现实时数据库
关键词关键词: 并发控制
实时数据库系统的定时限制可以用事务在给定时间内完成的截止时间来表示。延误截止时间可能导致系统失效,甚至造成
损失。除了定时限制,一些实时数据库系统还要求有安全限制。当多用户共享数据库而其中的一些用户有访问限制时,就要用到
安全限制。但是,一般的安全数据库模型不能满足时间限制的需求。开发者的工作是要在实时数据库系统中实现安全限制,并且
当延误截止时间时不破坏实时性能。安全实时系统要同时满足定时限制和安全限制,但它们可能发生冲突,满足其中一个限制就
要牺牲另一个限制。是保持时间限制还是安全限制由系统决定。如果系统要求安全限制和时间限制折中,则要在不违反定时限
制的条件下尽可能实现安全限制。
本文分析了实现合适的并发控制算法的实时数据库安全控制的一些因素,提出了一个安全折衷的新方法——动态隐藏通道
控制要素(dynamic covert channel control factor)法,并提供了实现基于这种因素的二段锁算法。
1 安全模型安全模型
强制安全性可严格限制经认证的数据库用户对数据项的访问,它提供高级的安全保障,被广泛用于军事应用系统中。强制访
问控制被典型地用在多级安全(MLS)数据库中,所有的MLS模型都基于数据对象和用户分级。数据对象有安全级别,用户也有明
确的级别。如果用户的访问级别包括对象的安全级别,则该用户能够访问该对象。BLP模型定义了已广泛用于多级安全系统中
的二个安全性质。(1)当主体的级别等于或高于对象的敏感性级别时,允许读;(2)如果主体的级别等于或低于对象的敏感性级别
时,允许写。BLP模型的二个特性阻止数据对象从高级别直接流向低级别。但是,当数据对象作为事务并发执行的结果时,因为隐
藏通道(covert channel)的存在而导致对象从高级别非直接地流向低级别。例如,当有高安全级别事务时,低安全级别事务的结果
将延时。这样低安全级别的用户能够决定高级别的事务,甚至可能会在延时中接受信息。
强调安全性就可能因为导致延误截止时间而损失实时的完整性。如一个数据冲突中,有较早截止时间的高安全级别事务和
较迟截止时间的低安全级别事务,如果低安全级别事务获得数据并阻塞高安全事务,则安全性得到保障,但会违反实时限制。高安
全事务有较早的截止时间,可是因为低级别事务的阻塞可能错过截止时间;相反,如果要保持定时限制,就违反了隐藏通道的安全
性。
2 安全控制因素安全控制因素
在安全的实时系统中,安全性可以作为强调安全的标准或者作为牺牲安全性来得到更多的延误截止时间和定时性妥协的标
准。如果系统允许牺牲安全性得到定时性,则需要一些手段来衡量这种严重性。本文提出用动态隐藏通道控制因素作为衡量手
段。下面介绍隐藏通道的特性。
2.1 隐藏通道特性隐藏通道特性
隐藏通道是指非有意泄露信息的通道,主要有三种类型:存储器隐藏通道、时钟隐藏通道和脉冲隐藏通道。隐藏通道是某一
专门操作所特有的属性,并非一般算法或协议。当系统允许安全性和定时性进行交换时,必须提供衡量违反安全严重性的方法。
当安全性冲突解决时,事务是有安全级别的。事务安全级别的不同作为衡量违反安全严重性的标准。相互临近的安全级别要比
分开的安全级别靠近。这样,安全级别区别越大,隐藏通道就越严格。换句话说,邻近的安全级别之间的隐藏通道没有分开的级别
严格。例如,假设有一安全级别按顺序为:非保密级<保密级<秘密级。在非保密级和保密级之间的隐藏通道没有非保密级和秘密
级之间严格。
安全实时数据库系统并发控制算法中,在使用事务的截止时间的同时使用了事务安全级别来解决数据冲突。可以相信安全
级别的不同是决定是否因为可能牺牲定时性而关闭隐藏通道的观点。
隐藏通道特性指在数据冲突中,如果二个事务的安全级别差别越大,则它们之间的隐藏通道就越严格。
隐藏通道特性显示后果与安全级别或访问级别之间的差别相关。也就是说,访问级别的差别越大,保持安全性和关闭隐藏通
道就越重要。如果二个冲突事务是在二个极端的安全级别,打开隐藏通道的后果是最严重的;如果安全级别是相邻的,则后果是最
轻的;如果在同一安全级别,则不会有隐藏通道,也就不会有任何后果。
2.2 动态隐藏通道动态隐藏通道
有可能二个以上的事务涉及一个隐藏通道。如假设有三个事务在三个不同的安全级别,T1在秘密级层,T2在保密级,T3在非
保密级。假设系统只允许连续的级别(即级别差为1),猜想在T1和T3之间有隐藏通道,则这个隐藏通道是禁止的,因为级别的差值
大于1,而T1和T2、T2和T3之间是可以有隐藏通道的。如果允许T1和T2、T2和T3之间有隐藏通道,就不可避免地打开了T1和T3
之间的隐藏通道。为了避免出现这种情况,就要限制T2、T3之间的通道,即使这二个事务是连续的级别。所以需要追踪一个事务
涉及的隐藏通道的记录,就需要一个属性来记录一个事务涉及的隐藏通道,记为隐藏通道记录(T)。最初,每个事务都是0记录,只要
涉及到隐藏通道,分级级别的差值就会加到先前的记录上,如下表示:
对所有事务T,隐藏通道记录(T)=0 //初始化
评论0
最新资源