信息安全-四: Seaview模型
来源:互联网 发布:淘宝店铺导航设置透明 编辑:程序博客网 时间:2024/05/22 13:39
第四讲 Seaview模型
Seaview模型是一个多级安全关系数据库系统的形式化模型。它的目标是设计一个达到DoD(美国国防部)可信计算机系统评估准则(TCSEC)A1级的多级安全数据库系统。
多级安全关系数据库系统是指数据库中存放着安全级不同的各种数据,以适应不同安全级别用户的需要。按照强制安全策略的要求,仅当用户的安全级高于或等于(亦称“支配”)数据的安全级时,用户才能读访问这些数据。
一、多级关系模式和客体的安全标记
一个多级安全关系数据库系统,安全级标记的粒度可以是关系,也可以是记录,也可以是属性,但以上定义方式都难以得到高安全级的数据库系统。因为按以上定义方法,或者会使某些敏感数据的安全级降低,或者会使某些数据的安全级升高,也就是或者牺牲安全性或者降低数据的可用性。在Seaview之前有些模型是这样定义的。
用户对数据库的操作在很多情形下实际上都是以数据项为其访问对象,这些数据的敏感程度往往差异很大。例如在一张人员表中查询50岁以上人员的健康状况,这其中有些人的健康状况不是任何人都可以查询的,需有一定的安全级等。
因此,Seaview模型将访问控制粒度定为数据项,即对每一数据项都有安全级标记。为此,它将标准的关系模式R(A1,A2,…,An)扩展为R(A1,C1,A2,C2,…An,Cn)。使每一数据属性Ai之后还有一与之相对应的安全级别属性Ci,即在每一数据项后,都带有该数据项的安全标记。(一个关系的属性表名称为关系模式,关系模式就是二维表的表框架,其中R为关系名,A1, A2,……An为属性名。)
表一 d8 d7 d6 d5 d2 d3 d4 d1
A1 | C1 | A2 | C2 | A3 | C3 |
001 | d2 | 24 | d5 | x | d5 |
013 | d3 | 15 | d7 | y | d8 |
005 | d8 | 35 | d8 | z | d8 |
D R K d r
class(D)≤class(R)≤class(K)≤class(d)≤class(r)
注意:①主关键字K可能由多个属性组成,若为多个属性值组成,则要求每个属性值的安全级相等。
②在标准的关系模型中,允许属性值为空,在多级关系中也允许属性值为空,对它也要定义安全级,但安全级取Ci中的最低值。
上述安全级的关系规定的理由是:
1.若class(D)高于class(R),则安全级低于class(D)的用户无法知道该库的存在,便不能访问库中与自己安全级相匹配的数据。
2.类似地,若class(R)≥class(r),则安全级低于class(R)用户不知道该关系存在,因此无法去访问R中与自己安全级相匹配的数据。
3.主关键字是用来唯一地标记该记录的,常作为查询的条件,它的安全级应低于其它属性值的安全级。
4.整条记录的安全级class(r)高于记录中所有数据项的安全级,常取各class(d)的最小上界。它使得用户的安全级只有当其支配class(r)时,才能看到该记录中所有的数据项,否则只能看到部分数据项。
复习数学概念:
一、 偏序关系及次序图;
二、 最小上界和最大下界;
class(r)=class(d1)∨class(d2) ∨…… ∨class(dn)
=lub(class(di)) di∈r
class(R)=glb(class(di)) di∈R
class(D)=glb(class(Ri)) Ri∈D
例如,对于表一,class(r1)=d5,class(r2)=d8,class(r3)=d8,class(R)=glb(d2,d3,d5,d7,d8)=d1。
即class(R)取各数据项安全级别的最大下界。(不能取d5,也不能取d7,因为不能满足上述不等式关系,且若如此的话,则d5主体或d7主体看不到关系的存在。
对于一个主体u,仅当class(u)≥class(R)时,u才有权访问R,但u不一定能访问关系R中所有的数据。
例如,①若class(u)=d1,则u知道表R存在(可访问表R的模式,可向R插入数据)。
②若class(u)=d5,则看到的是过滤后的关系,如表二所示。
表二
A1 | C1 | A2 | C2 | A3 | C3 |
001 | d2 | 24 | d5 | x | d5 |
013 | d3 | null | d3 | null | d3 |
③若class(u)=d7,则看到的是过滤后的关系,如表三所示。
表三
A1 | C1 | A2 | C2 | A3 | C3 |
013 | d3 | 15 | d7 | null | d3 |
④若class(u)=d8,则可以看到全部数据项(即整张表)。
因此每一用户读访问这张表时,看到的是以自己安全级过滤后的视图。
二、Seaview模型的安全性质(安全策略)
1.若class(u)
2.若class(u)≥class(R),则u可以访问R,但不一定能访问到R中所有的数据,具体规则如下:
对每条纪录r:
①若class(u)≥class(r),则u能查询到r,并能看到r中所有的数据。
②若class(u)
i)class(u)≥class(Kr),则u能看到主关键字Kr和r中安全级≤class(u)的数据。而其它的数据,u看起来全为空值。
ii)class(u)
③u可以对R进行插入和修改操作。如d1~d8均可对表进行插入,对其能看见的数据作修改。修改策略是:
低不能改高(数据完整性保护);
高不能改低(防止信息泄漏);
只有同级才能改。
三、多事例
在Seaview模型的安全策略控制下,在数据库中可能出现这样的现象:相同名字,同时存在多个数据实体。Seaview模型用不同的安全级来区别这些实体——这种现象称为多事例。
1.多事例关系(由“查询”引起的)
在任一状态下,不同安全级的主体检索同一多级关系时,将得到的是不同的关系,这些不同的关系,称为是多事例关系。
多事例关系用关系名R和安全级class(R)来表示。
例如,上面的表一、表二和表三可分别记作(R,d8),(R,d5),(R,d7)。
2.多事例记录(由“插入”引起的)
具有相同的主关键字,但主关键字的安全级不同的记录称为是多事例记录。
由于各数据项及各记录的安全级不相同,因此, 当主体u的class(u)≥class(R),主体u向关系R中插入一条记录时,则可能会导致产生多事例记录。原因是:
1.可能R中已有相同主关键字的高级别或者安全级不可比的记录存在(该用户不可见)。为了防止信息泄露,不能告诉他该记录已存在,也不能覆盖原有的记录,采取的方法是再添加一条与原记录主关键字相同,但其安全级别不同的记录。多事例对这个主体不可见。但高级别主体可同时看到这两条记录。
2.若R中已有低安全级的相同主关键字的记录,则可以拒绝此操作,也可产生高安全级的多事例。
例,安全级为d7的主体用主关键字005添加一条记录到表三,则d8的主体看到表四,而d7主体看到表五。
表五 |
表四
A1 | C1 | A2 | C2 | A3 | C3 |
001 | d2 | 24 | d5 | x | d5 |
013 | d3 | 15 | d7 | y | d8 |
005 | d8 | 35 | d8 | z | d8 |
005 | d7 | 20 | d7 | w | d7 |
A1 | C1 | A2 | C2 | A3 | C3 |
013 | d3 | 15 | d7 | null | d3 |
005 | d7 | 20 | d7 | w | d7 |
3.多事例数据项(由“修改”引起的)
在相同的记录中,某数据项的值和其安全级呈现多种不同的取值,这样的数据项称为是多事例数据项。
当主体u修改关系R中的数据项时,可能会导致产生多事例数据项。
①主体u修改记录中的空值,该空值往往是隐藏着高安全级的数据,或安全级与u不可比的数据(空值的安全级很低,用户可能是可见的),低可以修改高,但不能破坏其完整性。
A1 | C1 | A2 | C2 | A3 | C3 |
001 | d2 | 24 | d5 | x | d5 |
013 | d3 | 15 | d7 | y | d8 |
013 | d3 | 15 | d7 | p | d7 |
005 | d8 | 35 | d8 | z | d8 |
005 | d7 | 20 | d7 | w | d7 |
表六
例如,d7的主体要修改表五中null为p,则d8的主体看到的如表六。而d7的主体只能看到第三条和第五条记录。其中,“p d
②主体u修改记录中已存在的低级别的数据(高可修改低,但不会造成泄露)
表七
此时不能用修改值覆盖旧值,以免造成信息泄露。因此必须再创建相同的记录,但相应数据项是多事例的。
A1 | C1 | A2 | C2 | A3 | C3 |
001 | d2 | 24 | d5 | x | d5 |
013 | d3 | 15 | d7 | y | d8 |
013 | d3 | 15 | d7 | p | d7 |
005 | d8 | 35 | d8 | z | d8 |
005 | d7 | 20 | d7 | w | d7 |
013 | d3 | 48 | d8 | y | d8 |
013 | d3 | 48 | d8 | p | d7 |
例,d8主体修改表六中记录013中的A2,由“
此时,d7主体看不见这两条记录,仍只能看上面的三、五两条。
四、多级关系的存储
多事例使得多级关系中出现了大量的数据冗余,Seaview模型将多级关系分解成关系模型的标准关系,将多级数据按照不同的级别分开存储,这样做消除了冗余且较大程度地减少了信息的泄露。
当用户查询多级关系R时,再构造R的相应级别的视图。其分解和恢复算法复杂。
Seaview模型是BLP模型在数据库上的一个具体应用,但它有修改。如高安全级用户可修改低安全级用户的数据、低安全级用户亦可以修改高安全级(看到的是空值)的数据,但各自视图不一样,不会造成泄露。用多事例来解决完整性可能被破坏的问题。但付出的代价是数据的冗余(或查询和存储时的效率)。
优:1.安全级定义粒度是数据项级,较好地实现了数据的安全性和可用性。2.是多级安全策略在数据库上实施的一个范例,且用多实例的方法解决了高可修改低,低可修改高的问题,不会导致数据完整性的被破坏。3.数据分级存储更有利于对高安全级数据的保护。
缺:数据分解和恢复的算法复杂,在查询时间上要付出代价。
- 信息安全-四: Seaview模型
- 信息安全走向漫谈(四)
- 信息安全风险分析理论模型概述
- 信息安全体系-P-POT-PDRR 模型
- 信息安全开发注意事项(四)
- 信息安全四条应对之策
- 2017中科大信息安全课程总结四
- 信息安全模型 的研究及安全系统方案设计
- 信息安全--三:BLP模型(Bell-La Padula模型)
- 【安全牛学习笔记】主动信息收集-发现(四)
- 信息安全第四篇(加密解密及安全网络通信模型)
- 信息安全
- 信息安全
- 信息安全
- 信息安全
- 信息安全
- 信息安全
- 信息安全
- 我的留言本
- 信息安全--八:数据加密标准(DES)
- 信息安全-七:可信计算机系统评估准则
- 信息安全-六: 审计
- 信息安全-五:隐通道
- 信息安全-四: Seaview模型
- 开发java+mysql时混淆的sustring截取字符(老忘记index的参数意思)
- Base Web Page
- Rational Rose和UML可视化建模基础
- 用C Runtime Library获取文件大小
- 信息安全--三:BLP模型(Bell-La Padula模型)
- 离开IDE的日子...(附补记)
- 信息安全--二:传统的访问控制
- 信息安全--一: 绪言