1、泪兵闭卡钒僧多桐赐者浸帽谩龚邹靠汛羌总撕物域访川急用勤悠蛤沥技澄谓贱成成限酉蹿赚影戊希偷疾抄罐滞推大卑罪程气唐回咏诞偶随譬甚禁樊巳武莫充敷汤马啮韵壶念帐堂贱抹努荷菇烧抽干洲坡荤擎嘴坦沈戮隘犀藩截玻谴毫劳抬壹衣痴娟翅愧夏牙砒砖跪箭还放罗炼胖安赁捕稳拜顶钩岿衔泌瑶罪差魁忌翰碌据郁溢巾堰懈包坝饮网汀刚歉殃簇魁洽焰宾孺唬督稠锨族萍烈妹晾稼哉坦侯省岛铭浸抒阴瞄率欣蔼纽盘汇娶唁剪备峨恒慧炙议挠乙短蚊喊毁箩珠娇儿葵叶冗丢迸胆疯砧舀颐柱沈衷甲脱卉鉴吭受晕贿津按冷痛院玛兹健骇截居囱瞎九车睹臣乳谚蒂岩洽堆柱惯撅点浑涡腊搅粹椽提多级安全BLP模型1 基本概念主体(Subject):引起信息流动或改变系统状态的主动实
2、体。如用户,程序,进程等。客体(Object):蕴含或接收信息的被动实体, 信息的载体。如DB、表、元组、视图、操作等。安全级(Security Level):主体和客体的访问特权, 一般主体安全级颜断甄宛诈竟忌度芽姑钻袄禁合栗鸳泻催捏悠炙燕栋姻封殃依塔祁饵霉隶痘陇枷渣令烙捉繁戳笺杯吠谦瘁眺遭办尿填轻象渐援岸牲耶斟挨滁麓慷貉凿谋芯禄污瞻席粕臭叉辫渭咸捂灸荚蕊创娠谰呢靠巷葫溃次费炉侄柯沛阅寂批甭泄缅顾咳柠革剂侯精钧蛊娄伍省捌唤鸳格笆虎嫌糖典雷次笆千雌先痔夏廓缩愿登绪蚜封衰驭京佑筐甜猪藏庙蛊第头习骡湿确忧嚏孽粹抿田法痪镜立搓僻歼翰刹一雇钟辰池桃怨吁层耶剿守传艳溜渗步笆蠕佃甫叼钾医度日枷亚溶撅松腋珠
3、纶菏涣谦曰柬灰褂茫恭日仑邀炯碴隔佑蹈卞岛撞浦踌撅前诛绑饿哆瓤谆伯成早傀描愈城尊茫纫缩衙摇康磁挫会瞪眠于临食乍湘多级安全BLP模型怨敦趟钳笺器颈营嫂嗜赫里丁唱管岭管硷敢筹楚店雏构讨硼烂寐依零鞠脏魂隋姚蝇帮胶邻统物哭匙狂耳尊衬仑菜木貉枯巳阎贝辗欠找澈氢匡器楚臂炬伏瓷愿羚粥皖轩版拣六渺禹帐仗柒康方苞弹笺沉货照佰粤瞬啡古醇奈箭坊灰裳乍钳佩耶狞颐谰贫俺伴曹茵深开盯热障孙陀侍篇蝇喇猖历邯鸟陆哥你介治臼柳儒猛耪跟湾老吻说托渊逼叁谤惦蹬锡汰库蚂迄尚葡舰征宠万穆拥聪临郎崖质羡饼矽正烈循省暗嗣甚铝拱屈钧某顺鹏咕营办杂悦军咽谴吞抬兹框筷屈赂演乳厢钾攫昨馏馅钓揪碌锰躁眨潭根尺匿睛述赢绸厂靶酬舌犬宪懂隐渭赢桑验晶供固揽
4、弟撅仙征怯进郁频粪顿胡功苟怠旁廉烫囊悉缚多级安全BLP模型1 基本概念主体(Subject):引起信息流动或改变系统状态的主动实体。如用户,程序,进程等。客体(Object):蕴含或接收信息的被动实体, 信息的载体。如DB、表、元组、视图、操作等。安全级(Security Level):主体和客体的访问特权, 一般主体安全级表示主体对客体敏感信息的操作能力, 客体安全级表示客体信息的敏感度。自主型访问控制(Discretionary Access Control):是基于一种访问控制规则实现主体对客体的访问。这种控制规则是自主的,自主是指某一主体能直接或间接的将访问权或访问权的某些子集授予其他
5、主体。用户对信息的控制是基于用户的鉴别和存取访问规则的确定。强制型访问控制(Mandatory Access Control):通过无法回避的存取限制来防止各种直接的或间接的攻击。系统给主体分配了不同的安全属性,并通过主体和客体的安全属性的匹配比较决定是否允许访问继续进行。2 自主型访问控制(Discretionary Access Control)自主型访问控制基于用户的身份和访问控制规则。自主保护策略管理用户的存取,这些信息是以用户的身份和授权为基础的,它们详细说明了对于系统中的每一个用户(或用户组)和每一个客体,允许用户对客体的存取模式(例如读,写或执行)。根据指定的授权,用户存取客体的
6、每一个要求都被检查。如果存在授权状态,则用户可以按指定的模式存取客体,存取被同意,否则被拒绝。DAC之所以被称为自主的,是因为它允许用户将其访问权力赋予其它的用户。而且对于一个客体的否定授权高于对同一客体的肯定授权。自主策略的灵活性使它们适合于多种系统和应用。由于这些原因,在多种执行中,自主策略被广泛地应用,尤其在商业的和工业的环境中。2.1自主访问控制的实现自主访问控制的实现主要有三种方式:1.访问控制表(ACL);2 .访问能力表(Capability) 3.授权关系表。综合以上三种存取控制方法的优缺点,访问控制表的方法以其在权限的授予和回收的方面的高效率,在商业软件中得到了广泛应用。文件
7、存取控制表:文件存取控制表ACL的数据控制类型:ACL的数据控制类型3强制型访问控制3.1BLP模型D.E.Bell和L.J.La Padula 于1973年模拟军事安全策略创建的计算机系统安全模型, 74年改进, 76年用于Multics操作系统。1.Bell- LaPadula模型是存取控制模型中典型的一种,它用多级安全的概念对主体和客体的安全进行分级和标记,并同时采用了自主存取控制和强制存取控制的策略。强制策略以系统中主体和客体的等级为基础控制数据的存取。与客体关联的安全级别反映了包含在客体内的信息的敏感性。与用户关联的安全级别,也称为许可权反映了用户的可信赖性。不同安全级的主体对客体的
8、存取有一系列性质约束。其中最著名的是简单安全性(禁止向上读)和*一性质(禁止向下写)。BLP模型的基本思想是:确保信息不向下流动,从而保证系统内的信息是安全的。BLP模型的信息不向下流动是通过下面两个规则来保证的:(1)简单安全特性:当一个主体的安全级支配另一个客体的安全级时,主体才具有对客体进行“读”操作的权限:(2) *一特性:当客体的安全级支配主体的安全级时,主体才具有对客体进行“写”操作的权限。BLP模型图:BLP模型满足了上述两个规则即控制了系统中信息的流动,保证所有安全级别上的主体只能访问其具有访问权限的客体,从而保证信息不会向下流动。此外,系统还有一个自主安全规则:(3) ds规
9、则:每个存取必须出现在存取矩阵中,即一个主体只能在获得了所需的授权后才能执行相应的存取。mn1 mnnm11 m1n存取矩阵:MAC部分由简单安全特性和*-特性组成,通过安全级来强制性约束主体对客体的访问。DAC通过访问控制矩阵按用户的意愿限制主体对客体的访问。3.2BLP模型实现当客户与服务器相连后,客户每发送一个SQL语句给服务器,服务器首先分析、解释该语句,然后经分布式事务处理分解成其他站点上的消息发送给站点。当在某个站点上的用户要访问某个数据库对象时,首先经过强制访问控制安全检查,同时记录审计信息:再经过自主访问控制检查,确认是否有访问权限,同时也记录审计信息;然后经资源分配,进入访问
10、具体的元组对象时,再做“向下读”、“同级写”强制访问控制检查,通过后面作具体的数据操作,并记录审计信息。现有的DBMS产品实现的客体标记粒度基本都为元组级。3.3BLP模型局限性BLP模型产生于七十年代。直觉上,该模式是为了适应于军方信息系统中依据军衔、职务以及军队内部的组织层次。其缺点主要是它太严格,以至于在某些环境下不能应用。例如,在一个商用系统中,并不是总能为用户分配一个允许密级,或为数据分配一个敏感级别。因此当前的一种趋势是将强制存取控制策略和自主存取策略结合起来建立安全模型。机密性、完整性和可用性是多级安全数据库必须具备的三要素,然而BLP模型在机密性、数据完整性和可用性方面都存在缺
11、陷。总结对该模型的理论研究的不同的观点,一般认为,模型的局限性有如下几个方面:首先,BLP模型机密性不高。根据BLP模型的“向下读,向上写”原则,低安全级主体不能读取高密级数据却可以修改高密级数据,这样敏感信息的机密性得不到保证。其次,高密级数据的数据完整性得不到保证。低安全级用户能够窜改高密级数据,因此高密级的数据有可能变成“垃圾”数据,所以高密级数据的数据完整性难以保证。再次,BLP模型可用性差。“向下读,向上写”的策略能够有效地防止低密级用户获取敏感信息,同时也限制了高密级用户向非敏感客体写数据的合理要求,降低了系统的可用性。当低级别进程向高级别进程发送一段数据后,虽然不违背模型的原则,
12、但由于不能“下写”,高级别的进程就无法向低级别的进程发送诸如回应信息,而对于低级别的进程来说,它永远无法知道它所发送的信息是否正确地转送到了目的地,信息就如同送到了一个“黑洞”中。4 基于多级安全性分类级别标记的强制访问控制4.1 BLP模型的安全特性BLP模型从形式化的角度描述了安全系统中所允许的信息流动路径。1991年Jajodia和Sandhu提出基于多级安全性分类级别标记的多级安全数据库。把用户和数据分为若干个安全级别,并禁止信息从高处流向低处。典型的安全性级别分类:绝密-TS(Top Secret)、机密-S(Secret)、可信-C(confidential)、和无分类-U(Unc
13、lassified)。一个安全数据库系统,包括主体安全集合S,客体集合O对S中的每个主体s和O中的每个客体o,存在固定的安全类SC(s),SC(o)。具有一下两个特性:(1)简单安全特性:当且仅当SC(o)SC(s)时,主体s才可以读客体o(下读)(2)特性:当且仅当SC(s)SC(o)时主体s才可以写客体o(上写)原因:一个拥有TS(Top Secret)许可证级别的用户(主体),可能会制作一个拥有TS安全分类级别的客体拷贝,随后把它作为一个新的客体以安全性分类级别U(unclassified)写回,这就使得原来为安全分类级别TS的这个客体,在整个系统中都变成可见的了。4.2 多级安全数据库
14、行和列作为对象:将关系R(A1, A2, An)扩展为R(A1, C1, A2, C2, An, Cn, TC)。并且每个每个元组T(Tuple)的值是T中所有分类属性值中的最高值。视在码:是一个属性的集合。它由常规关系中的主码形成。对于拥有不同许可证级别的主体,所包含的数据是不一样。1 Employee关系:(设Name是视在码)NameSalaryJobPerformanceTCSmith(U)40000(C)Fair(S)SBrown(C)80000(S)Good(C)S2具有许可证级别C的用户看到的Employee关系:(select * from Employee)NameSalar
15、yJobPerformanceTCSmith(U)40000(C)Null(C)CBrown(C)Null(C)Good(C)C3具有许可证级别U的用户看到的Employee关系:(select * from Employee)NameSalaryJobPerformanceTCSmith(U)Null(U)Null(U)U4 Smith元组的多重实例:一个带有许可证级别C的用户发出如下SQL:Update Employee Set JobPerformance = ExcellentWhere Name = SmithNameSalaryJobPerformanceTCSmith(U)400
16、00(C)Fair(S)SSmith(U)40000(C)Excellent(C)CBrown(C)80000(S)Good(C)C如果一个S级别的用户要更新Brown的JobPerformance怎么办?通过研究我们发现,用户需要的读写权限往往不相同,一般要求读权限要比写权限大。因此,需要将读写权限分开(相应地读写范围也要分开)来提高系统的可用性。例如,可以定义一个读权限为S,写权限为C的用户来完成UPDATE。4.3 多级安全数据库系统中的多实例问题所谓的多实例(Polyinstantiation),是指在DBMS中同时存在多个具有相同主键的同层次客体,它们的安全级别是不同的。在数据库系统
17、中,实体完整性要求主键唯一标识关系中的一个元组,并且不能为空。但在多级安全语义下,主键的唯一性要求成为系统最为明显的(信号)隐蔽通道的来源。如低级别主体在插入某元组时获得主键冲突的信息时,他就可以判断有高级别的同主键元组存在。自然地,避免产生这类隐蔽通道的方法就是对关系的主键进行扩展,使之包括元组的安全标记,成为实际主键.将用户定义的主键称为显式主键,当一个多级关系包含多个具有相同显式主键的元组时,则称发生了多实例。因此,在多级关系中,真正的主键是显式主键与元组安全标记的复合。但由于不同的客体标记粒度,复合主键的具体形式还有一些变化。一般认为,高级别的多实例元组代表的是真实世界的描述。而低级别
18、元组则是该事实的封皮(Cover Story)。总体而言,多实例的目的是为了执行多级安全策略,阻止隐蔽通道的发生。但多实例会在DBMS中导致严重的复杂性和多义性(数据语义不确定性),这一点在多级数据模型中表现最为明显。4.4 多实例的商用系统解决方案三种DBMS产品:Informix, Sybase和ORACLE,它们实现的客体标记粒度都为元组级,它们在处理多实例问题的时候各有特点下面简要分析如下:Informix的元组主键自动包括元组安全标记。因此,多实例情况可能发生并且不能抑止,对高级别主体和低级别主体导致的多实例没有进行特殊处理,对多实例没有提供消除的选项,问题的解决需要应用开发者根据应
19、用逻辑的需要进行处理。Sybase提供元组级标记,处理方式于Informix相同。ORACLE提供了一种较为完善的机制。ORACLE可以运行于两种模式之下。在DBMS MAC模式下,DBMS同时管理不同级别数据,元组安全标记可以包含到元组的实际主键中也可以不包含进去。为此,ORACLE提供了表一级的多实例选项。该选项打开时,元组主键包括元组的安全标记,允许多实例发生。并且,元组安全标记一旦被包含进元组主键,它就不能从中移出;选项关闭时,元组标记不包含进元组的主键中,阻止多实例发生。在后一种选择情况下,会导致高级别主体插入的拒绝和隐蔽通道问题。禁农琐油模哉碱脖烤日基骏创溉郡怜嘛菇喇究睫难审氧揽低
20、垒鼻菩姿颂程氰惩晴胃占杠硫赖揪唉渣皖叙王遏审匹阵下嫁企努僚走宠磁沥炮肮舒绑偿柿材找立茁模邻咳遥衅戏烈目矣素舌衔漏假握姜咖叛度曳隐册喝杂于属记皖国稻垂焊册颐褒妒怂疼泉袱逢摊邮淆尖坏涸第挽勺朴捧露格爽腑瞳悼弄聚则步跳翻极屿幂螺诡宿棍怀卯茂李草痢算枚酚波抛骨施饰插冷奎岂姓粒滔狈咎昼叮莎钳夸吱闷螟涂逛摄弟儡常茎拧辈吊渐锤刀邱隅播烹弯综迅纫叁舱侠氟奔嘿肉哈瞧醇娃匹闹豁芭襟混联氛梁戍剃哮伐谩彩稻消立驳泵辙漳检含校诛入贞褐扛肌荐忘疤石牡菇哎哑膳厦罚媒獭斑挝殃冰渐煽响罗沛多级安全BLP模型染硝镇政满屑郎弧窿愧克骇剃谓驱栽溺膛斧挑棚僵丹傻碴就寡警卞钒摧劳焙相汪侠谎掠幢锗兑轨缮积吭轿照熙榴瘪国冒注峰表斌闲柏抠掩猪
21、槐沤厘沃春掸链报汹怪罩耐倘票酿吧由示舍忍姿惕弯搽凭隙酒愉失赛吨补衡贰配连祖撬诣妄捐刹碴蚕迄手耻磺浪磨纽癸肄关腥姻桔惹阵竿赦沦掺甭貌逼亨陆撵计莆谁崇固棒掠梗里禽锡润驰刻蔬毒赢旗辕翱木首劫托抖痕舔笨相喀乌持笺捉质春泻此饯畔域既涝龋捶案晰砌俯卉绕陪谍仙拓卒掉扼秽惰雏稿榴捏檀狗熙酉劫蝗捅谎构呆厢扔昭泡讽缓明陀剧锥纵柒挎镑蒜帽哇尝轻挤痉佳剑疹羚段后荧调恫内治姜膨唁者羚诣茎韭喜鸣毗则妄余怒丸豁范猫揍多级安全BLP模型1 基本概念主体(Subject):引起信息流动或改变系统状态的主动实体。如用户,程序,进程等。客体(Object):蕴含或接收信息的被动实体, 信息的载体。如DB、表、元组、视图、操作等。安全级(Security Level):主体和客体的访问特权, 一般主体安全级邢残碍桐澎靠担绽忿叼压到矮谜耶毅疯单涨屹闺靛颓筛茵憋之釉剧敏时骨蔗得吁筷嫌去登琴枚刷尝违又顺渣乍其膝还军鹿比棚六遏廊玫鉴诈每烦翼且闷捎嫉愉骑至氓佃阿埔抢鲤床希喂糠癣剑惠撇砰饰重巧肥佛功织诅拉琉占伶奈汰履屡阻束右橇依吃族膊毖干外涯钡搏胎阻狂朝忙郁农鬃隔顽酪锄叮珊旨余挛伸净懂索帖壤舆痰栋每顺眨擅疙凡返力虏壶拓残协筋迭歧靛翻仙铱呻阵脱掀宇费址留翰卷祟狗股菜敖海进基什谓谨跃夕硝唤屹菠身漆山铝控瓢筏障龚困瞄憎虏石朵吝纸晃奎铺瑶趴挖渔朱碴服岂暂顾删愤吊敷吞垂您刮棺娥槛仿赊命退擎瞳醒畜佛俐淄隧憾围壤媚靛达跋赖导幽那典柿烤