关于BIBA模型的概述
文章最后更新时间为:2018年08月14日 10:12:24
学信息安全肯定需要接触到信息系统安全模型。安全模型就是控制和管理主体(Subjects,包括用户/进程)对客体(objects,包括数据和程序)的访问控制。
最近学到了这些东西,于是记录一下自己的理解,如有错误,欢迎指正。
参考资料:
- 信息系统安全概论第二版 石文昌编著
- 百度文库:https://wenku.baidu.com/view/30a4fbc63968011ca200918f.html
毕巴模型是一个典型的完整性访问控制模型。毕巴模型使用完整性级别来对完整性进行量化描述。完整性级别是有序的,可以进行比较。
关于完整性,有如下定义:
- 完整性级别高的实体对完整性低的实体具有完全的支配性,反之如果一个实体对另一个实体具有完全的控制权,说明前者完整性级别更高,这里的实体既可以是主体也可以是客体。
- 完整性级别和可信度有密切的关系,完整级别越高,意味着可信度越高。
毕巴模型对主体的读、写、执行操作进行完整性访问控制,分别分别用r、w、x表示读、写、执行。
关于这三类操作,我们有如下约定:
- 用SrO来表示主体S可以读客体O,用SwO表示主体可以写客体O,用S1xS2表示主体S1可以执行主体S2.
- 一个消息传递路径是一个客体序列O1,O2,O3,O4......On+1和一个对应的主体序列S1,S2,S3.....Sn,其中,对于所有的i(1<=i<=n),有SirOi和SiwQi+1。
对于写和执行操作,有如下规则:
- 写规则控制
当且仅当主体S的完整性级别大于或等于客体O的完整性级别时,主体S可以写客体O,一般称之为上写。 - 执行操作控制
当且仅当主体S2的完整性级别高于或等于S1,主体S1可以执行主体S2。
上面的规则是很自然的,完整性级别高的主体才有权利写完整性级别低的客体,有级别执行完整性级别低的其他主体,总之,完整性越高,可信度越高。
关于读操作,通过定义不同的规则,读规则有不同的控制策略。相应的模型分别为低水标模型、环模型和严格完整性模型。下面一一介绍一下三种规则:
- 低水标模型:
任意主体可以读任意完整性级别的客体,但是如果主体读完整性级别比自己低的客体时,主体的完整性级别将为客体完整性级别,否则,主体的完整性级别保持不变。
怎么理解呢,当一个主体需要读完整性级别低的客体,说明这个主体对低级别客体有依赖性,那我们就不能再信任这个主体了,于是我们把它的级别降低,防止这个主体鱼目混珠,在不该有的位子上干了不该干的事,发生非法修改行为。
上述策咯保证了信息不会从完整性级别低的客体传递到完整性级别高的客体。
环模型
不管完整性级别如何,任何主体都可以读任何客体。这个策咯会带来安全性问题,低可信度的信息会污染高可信度的客体,但是实际上我们很多系统现在都是这种策咯,比如网上不加辨别的接受信息,甚至下载到病毒。
- 严格完整性模型
这个模型对读操作是根据主客体的完整性级别严格控制的,即只有完整性级别低或相等的主体才可以读完整性级别高的客体,称为下读
总结:一般当我们提及毕巴模型,一般都是指毕巴严格完整性模型,总结来说是上写、下读