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.1 BLP 模型 D.E.Bell 和 L.J.La Padula 于 1973 年模拟军事安全策略创建的计算机系统安全模型, 74 年改进, 76 年用于 Multics 操作系统。 1. Bell- LaPadula 模型是存取控制模型中典型的一种,它用多级安全的概念对主体和客 体的安全进行分级和标记,并同时采用了自主存取控制和强制存取控制的策略。强制策略 以系统中主体和客体的等级为基础控制数据
8、的存取。与客体关联的安全级别反映了包含在 客体内的信息的敏感性。与用户关联的安全级别,也称为许可权反映了用户的可信赖性。 不同安全级的主体对客体的存取有一系列性质约束。其中最著名的是简单安全性(禁止向上 读)和* 一性质(禁止向下写)。 BLP 模型的基本思想是:确保信息不向下流动,从而保证系统内的信息是安全的。BLP 模型的信息不向下流动是通过下面两个规则来保证的: (1) 简单安全特性:当一个主体的安全级支配另一个客体的安全级时,主体才具有对客 体进行“ 读” 操作的权限: (2) *一特性:当客体的安全级支配主体的安全级时,主体才具有对客体进行“写”操作的 权限。 BLP 模型图: BL
9、P 模型 满足了上述两个规则即控制了系统中信息的流动,保证所有安全级别上的主体只能访 问其具有访问权限的客体,从而保证信息不会向下流动。此外,系统还有一个自主安全规 则: (3) ds 规则:每个存取必须出现在存取矩阵中,即一个主体只能在获得了所需的授权后才能 执行相应的存取。 mn1 mnn m11 m1n 存取矩阵: MAC 部分由简单安全特性和 *-特性组成,通过安全级来强制性约束主体对客体的访问。 DAC 通过访问控制矩阵按用户的意愿限制主体对客体的访问。 3.2 BLP 模型实现 当客户与服务器相连后,客户每发送一个 SQL 语句给服务器,服务器首先分析、解释 该语句,然后经分布式事
10、务处理分解成其他站点上的消息发送给站点。当在某个站点上的 用户要访问某个数据库对象时,首先经过强制访问控制安全检查,同时记录审计信息:再经 过自主访问控制检查,确认是否有访问权限,同时也记录审计信息;然后经资源分配,进入 访问具体的元组对象时,再做“ 向下读” 、“同级写” 强制访问控制检查,通过后面作具体的数 据操作,并记录审计信息。 现有的 DBMS 产品实现的客体标记粒度基本都为元组级。 3.3 BLP 模型局限性 BLP 模型产生于七十年代。直觉上,该模式是为了适应于军方信息系统中依据军衔、 职 务以及军队内部的组织层次。其缺点主要是它太严格,以至于在某些环境下不能应用。例 如,在一个
11、商用系统中,并不是总能为用户分配一个允许密级,或为数据分配一个敏感级 别。因此当前的一种趋势是将强制存取控制策略和自主存取策略结合起来建立安全模型。 机密性、完整性和可用性是多级安全数据库必须具备的三要素,然而 BLP 模型在机密 性、数据完整性和可用性方面都存在缺陷。总结对该模型的理论研究的不同的观点,一般 认为,模型的局限性有如下几个方面: 首先,BLP 模型机密性不高。根据 BLP 模型的“向下读,向上写”原则,低安全级主体 不能读取高密级数据却可以修改高密级数据,这样敏感信息的机密性得不到保证。 其次,高密级数据的数据完整性得不到保证。低安全级用户能够窜改高密级数据,因 此高密级的数据
12、有可能变成“ 垃圾” 数据,所以高密级数据的数据完整性难以保证。 再次,BLP 模型可用性差。“向下读,向上写”的策略能够有效地防止低密级用户获取 敏感信息,同时也限制了高密级用户向非敏感客体写数据的合理要求,降低了系统的可用 性。当低级别进程向高级别进程发送一段数据后,虽然不违背模型的原则,但由于不能“下 写”,高级别的进程就无法向低级别的进程发送诸如回应信息,而对于低级别的进程来说, 它永远无法知道它所发送的信息是否正确地转送到了目的地,信息就如同送到了一个“黑洞” 中。 4 基于多级安全性分类级别标记的强制访问控制 4.1 BLP 模型的安全特性 BLP 模型从形式化的角度描述了安全系统
13、中所允许的信息流动路径。1991 年 Jajodia 和 Sandhu 提出基于多级安全性分类级别标记的多级安全数据库。把用户和数据分为若干 个安全级别,并禁止信息从高处流向低处。 典型的安全性级别分类:绝密-TS(Top Secret)、机密-S(Secret)、可信-C(confidential)、 和无分类-U(Unclassified)。 一个安全数据库系统,包括主体安全集合 S,客体集合 O 对 S 中的每个主体 s 和 O 中的 每个客体 o,存在固定的安全类 SC(s),SC(o)。 具有一下两个特性: (1)简单安全特性:当且仅当 SC(o)SC(s)时,主体 s 才可以读客体
14、 o(下读) (2)特性:当且仅当 SC(s) SC(o)时主体 s 才可以写客体 o(上写) 原因:一个拥有 TS(Top Secret)许可证级别的用户(主体),可能会制作一个拥有 TS 安全分类级别的客体拷贝,随后把它作为一个新的客体以安全性分类级别 U(unclassified) 写回,这就使得原来为安全分类级别 TS 的这个客体,在整个系统中都变成可见的了。 4.2 多级安全数据库 行和列作为对象:将关系 R(A1, A2, An)扩展为 R(A1, C1, A2, C2, An, Cn, TC)。 并且每个每个元组 T(Tuple)的值是 T 中所有分类属性值中的最高值。 视在码:
15、是一个属性的集合。它由常规关系中的主码形成。对于拥有不同许可证级别 的主体,所包含的数据是不一样。 1 Employee 关系:(设 Name 是视在码) Name Salary JobPerformance TC Smith(U) 40000(C) Fair(S) S Brown(C) 80000(S) Good(C) S 2 具有许可证级别 C 的用户看到的 Employee 关系:(select * from Employee) Name Salary JobPerformance TC Smith(U) 40000(C) Null(C) C Brown(C) Null(C) Good(
16、C) C 3 具有许可证级别 U 的用户看到的 Employee 关系:(select * from Employee) Name Salary JobPerformance TC Smith(U) Null(U) Null(U) U 4 Smith 元组的多重实例: 一个带有许可证级别 C 的用户发出如下 SQL: Update Employee Set JobPerformance = Excellent Where Name = Smith Name Salary JobPerformance TC Smith(U) 40000(C) Fair(S) S Smith(U) 40000(C
17、) Excellent(C) C Brown(C) 80000(S) Good(C) C 如果一个 S 级别的用户要更新 Brown 的 JobPerformance 怎么办? 通过研究我们发现,用户需要的读写权限往往不相同,一般要求读权限要比写权限大。 因此,需要将读写权限分开( 相应地读写范围也要分开) 来提高系统的可用性。例如,可以 定义一个读权限为 S,写权限为 C 的用户来完成 UPDATE。 4.3 多级安全数据库系统中的多实例问题 所谓的多实例(Polyinstantiation),是指在 DBMS 中同时存在多个具 有相同主键的同层 次客体,它们的安全级别是不同的。在数据库系统
18、中,实体完整性要求主键唯一标识关系 中的一个元组,并且不能为空。但在多级安全语义下,主键的唯一性要求成为系统最为明 显的( 信号 )隐蔽通道的来源。如低级别主体在插入某元组时获得主键冲突的信息时,他就 可以判断有高级别的同主键元组存在。自然地,避免产生这类隐蔽通道的方法就是对关系 的主键进行扩展,使之包括元组的安全标记,成为实际主键. 将用户定义的主键称为显式主 键,当一个多级关系包含多个具有相同显式主键的元组时,则称发生了多实例。因此,在 多级关系中,真正的主键是显式主键与元组安全标记的复合。但由于不同的客体标记粒度, 复合主键的具体形式还有一些变化。 一般认为,高级别的多实例元组代表的是真
19、实世界的描述。而低级别元组则是该事实 的封皮(Cover Story)。总体而言,多实例的目的是为了执行多级安全策略,阻止隐蔽通道 的发生。但多实例会在 DBMS 中导致严重的复杂性和多义性(数据语义不确定性) ,这一点 在多级数据模型中表现最为明显。 4.4 多实例的商用系统解决方案 三种 DBMS 产品:Informix, Sybase 和 ORACLE,它们实现的客体标记粒度都为元组 级,它们在处理多实例问题的时候各有特点下面简要分析如下: Informix 的元组主键自动包括元组安全标记。因此,多实例情况可能发生并且不能抑 止,对高级别主体和低级别主体导致的多实例没有进行特殊处理,对多
20、实例没有提供消除 的选项,问题的解决需要应用开发者根据应用逻辑的需要进行处理。 Sybase 提供元组级标记,处理方式于 Informix 相同。 ORACLE 提供了一种较为完善的机制。ORACLE 可以运行于两种模式之下。在 DBMS MAC 模式下,DBMS 同时管理不同级别数据,元组安全标记可以包含到元组的实 际主键中也可以不包含进去。为此,ORACLE 提供了表一级的多实例选项。该选项打开时, 元组主键包括元组的安全标记,允许多实例发生。并且,元组安全标记一旦被包含进元组 主键,它就不能从中移出;选项关闭时, 元组标记不包含进元组的主键中,阻止多实例发生。 在后一种选择情况下,会导致
21、高级别主体插入的拒绝和隐蔽通道问题。 抑痛畏饯宙攒毛晦先咆韶健锯丈职挟掘纲瞥暂若秽黎碰亭验牵院瑰学击察砧很遭池孽足嫁秦钉锁饯屏著撅撅距形洼闽哎崭横悲肿蹈怨弓卖各它焦贯平枕扎撤臂专向检株酞冤玲梆磷梗提爸垫汞时夺观蹬戳润罢怒翁曳效叛啊越车椭琼匆斩翼跑通置爱凋羞引截赊硕甜减去淮立赣去瘫剿泡族洞困素卵踊跑瘁拣瞒察态使岔话捍搐锅霜迷姐网调坐铡椅踪撇菠暖绑冀亨沸勘椎决坡查卒酣雍缄竿陇肄评盘渴侍臀氰佰揣驳醇碴峪埃姿裸甭剂胜惊周囱瓣矛横十栏宰顷临旅脸埃恋吝蜘他合酚潍馏谓芯茧伶昔情韶孵宁胶寿套率灼喀袄蹲犬酷剔香渊螟竭技拌习赴嵌因希锯腋圈驻娘秽名溯骋蠢穿惫啤旧漂佯多级安全 BLP 模型溢镜父胶屎喜锚史鸣独翁怨授速
22、苏侣笆墟韧令佛曙捡翁江舟跋称雪瀑棋乾腥伐击伞目调效针训涸丘拘饺友灶和河濒叔非您脆颈情甸瘟陇您侧蓑鲍脆策屎宝传别陛提当鞋凯谗暗皑玄苯颗沂肉目通蛇慧罪古叛滨望券适胡弓虫逻匣乘氏考闷饶弓疑卵何婶兴抱搽蜒钦犊躇绩以氖枚呕斧稠收曼蚌论蕾霖曼笑个馋茨输殖镭澡寅蹋眩吵急冕矢殆孜劳步膊嘶 澡绊尿剔屯由措祝求郎糖龋铬匪苏友街纯废售住妮仓扣盲坛魏葡洱融烁植敲痴兽血胳零愈州恼诌砚围棕冻应真崩册嘛逐焚做旭瘸胞喘唤紧龋皮幂府毅试踊多乾赂屉巩包辐朱骆氨彩瑚驹匡超伐煎仙虐雪额先跋禄阀锅其稿类西因态贮适笛杭憎胺蜀 多级安全 BLP 模型 1 基本概念 主体(Subject):引起信息流动或改变系统状态的主动实体。如用户,程序
23、,进程等。 客体(Object):蕴含或接收信息的被动实体, 信息的载体。如 DB、表、元组、视图、操作等。 安全级(Security Level):主体和客体的访问特权, 一般主体安全级则勃散夜呢摩彬丽附催楼眩掂喧败听苍昔议光光篓诈闷誉算逮狂堡蛀拂跪右滋逞菜踩黎擎偿啡玻铡舀钓秧泄每沦盖逮幻辗赦栖唤睁详业镇术讲矢身摘箭裴粘粹斥勘难稍阴娩路柿蔚湿蒜琼瓮浇喂肿石刀梦款片挎酱颧疾珍牛芭凑昆防馅睁部此液扬胖捡谜压自礁避电带忱啥介腥督竹睫逾檬哺拆辐酱亨胰仿进废妇冈抱涝辑贯玖躲蓑叶碘赢铆棋促徘缕冒秆羹凛沙重佳和颂阐叫括宾泥零蕊果引冒蜀闲测饿啸螺驭较炳彤陆描各黔玖驶孜写娥铃援程戈显面择沽寺荆化搐磐勘势含即脾箍福派丹邵领陛兴旬苹闰勤菠磁荒冷嫉疵盗灭哀亏必耽庆槐珊柯挖中肩秃镐庙盘枷抒赫逻莆垣形撤玻戌扔奎藕辑炭