数据库原理2020/5/12课堂笔记
强制存取控制
强制存取控制 把系统组成分成两大块主体和客体
主体:用户(进程) 客体:数据
主体访问客体 有条件约束,条件建立在 敏感度 基础上
常见的敏感度:绝密(Top Secret)、 机密(Secret)、可信(Confidential)、公开(Public)
在 主体 方和 客体 方两边都有 敏感度 标记,主体的敏感度标记称为许可证级别,客体的敏感度标记称为密级,也就是说许可证级别 和 密级本质上是一个概念
强制存取控制的规定
大原则:通过对比主体和客体的敏感度,确定主体是否能够存取客体
两条规则:
(1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体
(2)仅当主体的许可证级别小于或等于客体的密级时,该主体才能写相应的客体
EX1:校长知道的东西最多,大家说的话,校长都能看见.但是,校长看见了A的悄悄话,想要告诉跟A一个宿舍的B,却办不到,因为第二条规则。意思是校长只能把A说的发布给跟他同级的或者比他级别还高的这就是书上说的防止泄密。第二条规则一眼看起来似乎不好理解。假如让我们在坐的人制定规则很容易制定成仅当主体的许可证级别大于或等于客体的密级时,该主体才能写相应的客体。
一个用户扩散到广大人群中这个就是写规则 的意义所在
学习了 强制存取控制有利于我们更深入的理解系统是不是越安全越好,office不适合B1级,一个软件能达到什么级别,是需要看它的用途是什么
B1级系统是否一定比C2级系统安全?
从系统架构上 B1级肯定强于C2级。但是还有一个重要因素软件实现水平,做的不好的软件即 技术不佳的软件会有漏洞,一旦出现漏洞,那么,架构优势很可能难以发挥。所以,大家看到windows一天到晚在打补丁修补漏洞,其中相当一部分都是安全漏洞。对软件安全级别一点儿没影响,Server版windows是C2级,桌面版只有部分server版功能,所以,弱于C2级。但是,一旦对方从漏洞切入,什么级别都不管用,所以,安全性级别只是一个宏观指引,技术实现同样具有重大意义。
C2级B1级还有一个特征:审计。所谓 审计就是 记录操作也就是 log,安全标准规定C2以上安全级别的DBMS必须具有审计功能,语句很简单
允许审计 AUDIT UPDATE, DELETE ON Student
取消审计NOAUDIT UPDATE, DELETE ON Student
安全性里还有一个麻烦的问题很集中的体现了 矛与盾 的关系,称为 统计安全性
在很多系统里有一条基本规定允许用户查询聚集类型的信息(例如合计、平均值等)。但是,不允许查询单个记录信息。显然不是所有系统。但有不少系统这样规定。某些人可以构造条件即 构造唯一性条件,把 形式上的 聚集类型的信息转变成 单个记录信息。
ex:本公司女高级程序员的工资总额是多少?提出这个查询的人根据公司情况构造了一个 唯一性条件,因为他知道 公司女程序员 只有一名。那么,他执行 本公司女高级程序员的工资总额是多少?等于知道那一个人的工资是多少。这种问题是 语义层面的。
比起 访问控制更加防不胜防可以总结出一条规则:任何查询至少要涉及N(N足够大)个以上的记录。比如设定N=5这样就可以挡住 唯一性条件。但是,想查找信息的人还是会有办法。
竖线的右边数据加密也就是 最后一道防线。这是一个专门的话题叫 密码学
这幅图是B1级系统。就是 先DAC后MAC。所有检查有顺序:DAC、MAC、语义分析检查