210 likes | 336 Views
9. 数据库安全性. DBMS 提供统一的数据保护功能保证数据的安全可靠和正确有效,数据库的数据保护主要包括数据的安全性和数据的完整性。 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 系统安全保护措施是否有效是 数据库系统的主要指标之一。. 9.1 计算机安全性概论. 计算机系统的三类安全性 技术类:采用具有一定安全性的硬件、软件实现对计算机系统及其所存数据的安全保护。 管理类:软硬件意外故障、场地意外事故、管理不善导致设备损坏、数据丢失等。 政策法律类:政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。
E N D
《数据库系统概论》讲义 9. 数据库安全性 • DBMS提供统一的数据保护功能保证数据的安全可靠和正确有效,数据库的数据保护主要包括数据的安全性和数据的完整性。 • 数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。 • 系统安全保护措施是否有效是 数据库系统的主要指标之一。
《数据库系统概论》讲义 9.1 计算机安全性概论 • 计算机系统的三类安全性 • 技术类:采用具有一定安全性的硬件、软件实现对计算机系统及其所存数据的安全保护。 • 管理类:软硬件意外故障、场地意外事故、管理不善导致设备损坏、数据丢失等。 • 政策法律类:政府部门建立的有关计算机犯罪、数据安全保密的法律道德准则和政策法规、法令。 • 我们重点讨论 技术安全类。
《数据库系统概论》讲义 9.1 计算机安全性概论 • 可信计算机系统安全标准 • 1985年美国国防部(DoD)的《DoD可信计算机系统评估标准》(Trusted Computer System Evaluation Criteria,TCSEC或DoD85,桔皮书) • 1991年美国国家计算机安全中心(NCSC)的《可信计算机系统评估标准关于数据库系统的解释》(Trusted Database Interpretation, TDI,紫皮书)
《数据库系统概论》讲义 9.1 计算机安全性概论 • TDI与TCSEC安全性级别的指标: • R1 安全策略(Security Policy) • R1.1自主存取控制 • R1.2客体重用 • R2 责任(Accountability) • R2.1标识与鉴别 • R2.2审计 • R3 保证(Assurance) • R3.1操作保证 • R3.2生命周期保证 • R4 文档(documentation) • R4.1安全特性用户指南 • R4.2可信设施手册 • R1.3标记 • R1.4强制存取控制 • R4.3测试文档 • R4.4设计文档
《数据库系统概论》讲义 9.1 计算机安全性概论 • TCSEC与TDI安全性等级: • D级:安全性方面没有专门机制; • C1级:初级自主安全保护,能实现用户和数据的分离,进行自主存取控制(DAC),限制用户权限传播; • C2级:提供受控的存取保护,DAC进一步细化,以个人身份注册,实施审计和资源隔离; • B1级:对系统数据加以标记,并对标记的主体和客体实施强制存取控制(MAC)和审计; • B2级:建立形式化安全策略模型对系统内所有主体和客体实施DAC和MAC; • B3级:审计跟踪能力更强并提供系统恢复过程; • A1级:提供B3级保护并给出系统形式化设计说明。 • B2级以上标准处于理论研究阶段,产品化程度不高。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 数据库安全性违例: • 未经授权读取数据; • 未经授权修改数据; • 未经授权破坏数据。 • 数据库安全性控制的几个层次: • 数据库系统层次:只有授权用户可以操作; • 操作系统层次:未经授权不能接近数据库; • 网络层次:网络软件软件层次的安全性; • 物理层次:计算机系统某一结点的物理安全; • 人员层次:对用户的授权必须格外小心。 • 为了保证数据库安全,必须在所有层次上进行安全性保护,较低层次上的安全缺陷会损害较高层次上的安全性措施。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 用户标识与鉴别 • 用一个用户名或者标识号来标明用户身份,系统内记录着所有合法用户的标识,系统鉴别此用户是否合法用户,如果是则进入下一步,否则不能使用系统。 • 为了进一步核实用户,可以要求用户输入口令,用户在终端上输入的口令不显示在屏幕上,系统对用户口令进行鉴别。 • 用户预先约定一个计算过程或函数,鉴别用户身份时,系统提供一个随机数,用户提供一个计算结果,系统判断用户计算结果是否正确,由此来鉴别用户。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 存取控制:确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据。 • 存取控制包括两部分: • 定义用户权限,将用户权限记录到数据字典; • 合法权限检查,用户发出存取数据库请求时,系统查询数据字典进行合法权限检查,如果用户请求超越其权限,系统拒绝执行此操作。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 存取控制分类: • 自主存取控制:用户对于不同的数据对象有不同的存取权限,不同用户对同一对象也有不同的权限,用户还可以将其拥有的权限转授给其他用户。自主存取控制相对灵活。 • 强制存取控制:每个数据对象被标记为一定的密级,每个用户也被授予某个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。强制存取控制相对比较严格。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 自主存取控制(DAC) • 用户权限的要素:数据对象和操作类型; 关系系统中的存取权限 用户 数据对象 操作类型
《数据库系统概论》讲义 9.2 数据库安全性控制 • 自主存取控制 • SQL中的授权 • 对象权限:delete、insert、select、update、references。其中references权限:如果用户即将创建的关系中包含参照其他关系属性的外码,那么用户必须在这些属性上具有references权限。 • 系统权限:index(允许创建和删除索引)、resource (允许创建新表)、alteration(允许添加和删除关系中属性)、drop(允许删除关系) • 具有resource权限的用户在创建新关系后自动获得该关系上的所有权限。 • 最大的授权形式是给数据库管理员(DBA)。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 自主存取控制 • SQL中的授权 • 授权与收回权限:Grant、revoke Grant <权限列表> on <关系名或视图> to <用户/角色列表> [with grant option] revoke <权限列表> on <关系名或视图> from <用户/角色列表> [cascade] • 例:grant select,insert on s to u1 with grant option revoke insert on s from u1 cascade
《数据库系统概论》讲义 9.2 数据库安全性控制 • 自主存取控制 • SQL中的授权 • 例:grant references(branch-name) on branch to U1 将参照branch关系中branch-name的权限授予U1用户,则删除branch中与U1相关的行时将不能被删除。 • 特殊权限:all priviledges 所有权限 • 特殊用户:public 系统中所有当前用户和将来用户。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 自主存取控制 • 角色:在数据库中建立一个角色集合,和授予给每个用户一样可以授权给角色,然后可以将角色权限授予有权扮演此角色的用户。可以减少授权的工作量。 • 创建角色命令: create role <角色名> • 例:create role teller create role manager grant select on account to teller grant teller to john grant teller to manager • 一个用户或角色的权限包括:直接授予用户/角色的权限;分配给用户/角色的角色的权限。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 强制存取控制(MAC) • 系统对象分为主体和客体两大类。主体是系统中的活动实体,既包括实际用户,也包括代表用户的各个进程;客体是系统中的被动实体,是受操纵的,包括文件、基表、索引、视图等。 • 对于主体和客体,系统为他们的每个实例(值)指派一个敏感度标记(label),敏感度标记分为若干级别,主体的敏感度标记称为许可证级别,客体的敏感度标记称为密级。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 强制存取控制(MAC) • MAC就是对比主体的许可证级别和客体的密级,最终确定主体能否存取客体。 • 仅当主体的许可证级别大于或等于客体密级时,主体才能读取相应的客体; • 仅当主体的许可证级别等于客体密级时,主体才能写相应的客体。 • MAC是对数据本身进行密级标记,无论如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全行。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 视图机制 • 视图是给用户提供个性化数据库模型的一种手段,视图可以隐藏用户不需要看见的数据。视图隐藏数据的能力既可以简化系统的使用,又可以用于实现安全行。 • 视图机制间接实现了支持存取谓词的用户权限定义。 • 关系级的安全性和视图级的安全性可以结合起来,用于限制用户只能访问所需要的数据。 • 例:create view c_s as select * from s where sdept=‘计算机’with check option 用户对视图C_S的操纵必须满足谓词sdept=‘计算机’的条件。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 审计 • 审计功能把用户对数据库的所有操作自动记录下来放入审计日志(Audit log)中。DBA可以利用审计跟踪的信息,重现导致数据库先有状况的一系列事件,找出非法存取数据的人、时间和内容。 • 利用触发器可以建立审计日志。 • 审计在几方面加强了安全性,可以对于某一表进行审计,也可以对于某一用户进行审计。 • 例:如果发现一个账户的余额不正确,可以跟踪所有在这个帐户上的更新来找到错误的更新,从而找到执行这个更新的用户;也可以进一步跟踪这些用户所有的更新来找到其他错误或欺骗性的更新。 • 审计消耗大量的资源(空间和时间),因此审计往往是可选的,不是缺省配置。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 数据加密 • 数据加密是防止数据库中的数据在存储和传输中失密的有效手段。 • 加密的基本思想是根据一定的算法将原始数据(明文,plain text)变换为不可直接识别的格式(密文,cipher text),从而使得不知道解密算法的人无法获知数据的内容。 • 加密方法有两种:一种是替换方法,该方法使用密钥将明文中的每一个字符转换为密文中的一个字符;另一种是置换方法,该方法仅将明文中的字符顺序重新排列。 • 有些数据库产品提供数据加密例行程序。
《数据库系统概论》讲义 9.2 数据库安全性控制 • 数据加密 • 例:字母表中下一个字母替代每个字母的算法,‘guowenming’变成‘hvpxfonjoh’。 • 好的加密技术具有如下性质: • 对授权用户来说,加密数据和解密数据相对简单; • 加密模式不应依赖于算法的保密,而是依赖于被称为密钥的算法参数; • 对入侵者来说,确定密钥是及其困难的。
《数据库系统概论》讲义 9. 作业 • P-300 • 1. • 4. • 5. • 6. • 8. • 13.