第三章 BLP模型(Bell-La Padula模型)
是对安全策略形式化的第一个数学模型,是一个状态机模型,用状态变量表示系统的安全状态,用状态转换规则来描述系统的变化过程。
一、模型的基本元素
模型定义了如下的集合:
S={s1,s2,…,sn} 主体的集合,主体:用户或代表用户的进程,能使信息流动的实体。
O={o1,o2,…,om} 客体的集合,客体:文件、程序、存贮器段等。(主体也看作客体S O)
C={c1,c2,…,cq} 主体或客体的密级(元素之间呈全序关系),c1≤c2≤…≤cq.
K={k1,k2,…,kr} 部门或类别的集合
A={r,w,e,a,c} 访问属性集,其中,r:只读;w:读写;e:执行;a:添加(只写); c:控制。
RA={g,r,c,d} 请求元素集
g:get(得到),give(赋予)
r:release(释放),rescind(撤销)
c:change(改变客体的安全级),create(创建客体)
d:delete(删除客体)
D={yes,no,error,?} 判断集(结果集),其中
yes:请求被执行;
no: 请求被拒绝;
error:系统出错,有多个规则适合于这一请求;
?: 请求出错,规则不适用于这一请求。
μ={M1,M2,…,Mp} 访问矩阵集,其中元素Mk是一n×m的矩阵,Mk的元素Mij A。
F=CS×CO×(PK)S×(PK)O,其中,
CS={f1|f1:S→C} f1给出每一主体的密级;
CO={f2|f2:O→C} f2给出每一客体的密级;
(PK)S={f3|f3:S→PK} f3给出每一主体的部门集;
(PK)O={f4|f4:O→PK} f4给出每一客体的部门集。
其中,PK表示K的幂集(PK=2K)。
F的元素记作f=(f1,f2,f3,f4),给出在某状态下每一主体的密级和部门集,每一客体的密级和部门集,即主体的许可证级(f1,f3),客体的安全级(f2,f4)。
二、系统状态
V=P(S×O×A)×μ×F是状态的集合,状态v=(b,M,f)用有序三元组表示,其中
b S×O×A,是当前访问集。
M是访问矩阵,它的第i行,第j列的元素Mij A表示在当前状态下,主体Si对客体Oj所拥有的访问权限。
f=(f1,f2,f3,f4),其中,f1(s)和f3(s)分别表示主体s的密级和部门集,f2(s)和f4(s)分别表示客体O的密级和部门集。
三、安全特性
⑴自主安全性
状态v=(b,M,f)满足自主安全性,当且仅当对所有的(si,oj,x)∈b,有x∈Mij。
⑵简单安全性
状态v=(b,M,f)满足简单安全性,当且仅当对所有的(s,o,x)∈b,有
(i)x=e或x=a或x=c
或(ii) (x=r或x=w)且(f1(s)≥f2(o),f3(s) f4(o))。
S |
O |
e,c,a |
S (高) |
O (低) |
r,w |
⑶*—性质
S |
O1 ( |