数据库安全模型与机制ppt课件_第1页
数据库安全模型与机制ppt课件_第2页
数据库安全模型与机制ppt课件_第3页
数据库安全模型与机制ppt课件_第4页
数据库安全模型与机制ppt课件_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机系统安全 第八章数据库安全模型与机制 数据安全概述数据库系统安全模型与实现策略数据库系统安全机制 数据库系统安全控制是指为数据库系统建立的安全保护措施 以保护数据库系统软件和其中的数据不因偶然或恶意的原因而遭到破坏 更改和泄露 目前 数据库系统安全与网络安全 操作系统安全及协议安全一起构成了信息系统安全的4个最主要的研究领域 数据库安全目标 1 数据库的完整性数据库的完整性是指保证数据库内容的正确性 有效性和一致性 数据库系统的完整性主要包括物理完整性和逻辑完整性 物理完整性是指保证数据库的数据不会因物理故障 如硬件故障 掉电等 导致存储数据破坏 逻辑完整性是对数据库逻辑结构的保护 包括数据的语义完整性与操作完整性 数据的语义完整性指数据存取在逻辑上满足完整性约束 数据操作完整性主要指在并发事务中保证数据库中数据的逻辑一致性 数据库安全目标 2 数据库的保密性数据库的保密性是指不允许未经授权的用户存取数据 3 数据库的可用性数据库可用性是指不应拒绝授权用户对数据的访问 同时保证系统得运行效率并提供用户友好的人机交互 数据库安全目标 不同领域的应用对这三方面的要求侧重点会有较大的差异 数据库系统的安全除依赖自身内部的安全机制外 还与外部网络环境 应用环境 从业人员素质等因素息息相关 从广义上讲 数据库系统的安全框架可划分为网络系统层次 宿主操作系统层次和数据库管理系统三个层次 这三个层次共同构筑成数据库系统的安全体系 数据库的安全威胁 1 外围环境威胁外围环境威胁指攻击者对数据库管理系统外围环境 如操作系统 网络设备和其它硬件设备的攻击 而间接地威胁DBMS本身的威胁因素 例如 通过对数据库服务器所在操作系统的远程攻击或者对数据库服务器的存储设备的物理接触来获取 修改DBMS存储的各类信息的攻击 数据库的安全威胁 2 身份认证威胁身份认证威胁包括所有直接对用户标识和身份认证系统的威胁因素 例如 存储在外部服务中的认证信息可能被窃取 使得攻击者可以以合法用户的身份登录 拒绝正确用户登录系统 或者管理员滥用权力新增 修改 删除用户认证信息 修改系统认证策略等 数据库的安全威胁 3 访问控制威胁包括所有直接对用户授权和访问控制的威胁因素 例如 非授权的信息泄露和非授权的数据修改等 非授权的信息泄露指未授权的用户有意或无意得到信息 通过对授权访问的数据进行推导分析获取非授权的信息包含这一类中 非授权的数据修改包括所有通过数据处理和修改而违反信息完整性的行为 数据库的安全威胁 4 数据处理威胁包括所有处理数据时的威胁因素 例如 在多级安全数据库中 为解决隐蔽信道问题通常需要提供多实例 这样会破坏系统的完整性约束 数据库的安全威胁 5 其它安全威胁安全威胁分为有意和无意的 非有意的安全威胁主要包括 自然或意外灾害可能会破坏系统的软硬件 系统软硬件的错误以及人为无意的违反安全策略 将导致数据库系统完整性破坏 拒绝服务和信息泄露 数据库的安全需求 1 防止非法数据访问这是数据库安全最关键的需求之一 主要指仅允许授权的合法用户访问数据库 2 数据分级保护依据数据敏感级别进行多级保护 在包含敏感 非敏感混合数据的数据库中 严格控制对敏感数据的访问请求 仅允许经过授权的用户进行合法操作 且不允许其权利传播或转让 3 防止推断性攻击防止用户通过授权访问的低安全级数据推导出敏感数据 尤其是统计型数据库容易受到该类攻击 数据库的安全需求 4 数据库的完整性 该需求涉及到防止更改数据内容的非授权访问 以及病毒 蓄意破坏 或是系统级错误及故障等 这主要由DBMS通过访问控制以及备份 恢复机制执行并完成保护工作 5 数据的操作完整性 在并行事务的模式下 保持数据的逻辑一致性 通常采用并行管理器和加锁机制完成 数据库的安全需求 6 数据的语义完整性 确保对数据在允许的范围之内修改 以保持数据的一致完整性 7 审计功能 提供数据的物理完整性 并记录下对数据的所有存取访问 根据结果进行分析与追踪 数据库安全评价标准 20世纪70年代初 美国军方率先发起对多级安全数据库管理系统 MultilevelSecureDatabaseManagementSystem 简称MLSDBMS 的研究 数据库安全评价标准 80年代 美国国防部根据军用计算机系统的安全需要 制定了 可信计算机系统安全评估标准 TrustedComputerSystemEvaluationCriteria 简称TCSEC 以及该标准的可信数据库系统的解释 TrustedDatabaseInterpretation 简称为TDI 形成了最早的信息安全及数据库安全评估体系 TDI作为一种数据库安全评估标准 能够指导开发者在新开发的商用DBMS产品中提供安全特性 即TCSEC中所提出的可信要求 此外 TDI作为一种可度量的评估 为处理涉密 分级和其他敏感信息的安全数据库系统提供了一种等级评估的方法 数据库安全评价标准 90年代后期 信息技术安全评价通用准则 CommonCriteria 简称为CC 被ISO接受为国际标准 确立了现代信息安全标准的框架 这些标准对安全数据库系统的研究及其应用系统的开发都具有重要的指导作用 数据库安全研究的发展 国外对计算机安全及数据库安全的研究起步较早 BLP模型是最早的一个完全形式化的多级安全模型 是计算机安全理论研究的开端 随着数据库安全理论和技术的发展 为了满足对安全数据库系统越来越迫切的需求 国外各大数据库厂商纷纷推出了各自的安全数据库产品 如ORACLE公司的TrustedOracle Informix公司的Informix online SecureSybase公司的SecureSQLServer等产品 近几年来 Oracle公司的Oracle9i和Oracle10g从用户认证 访问控制 加密存储和审计策略等方面进一步加强了安全控制功能 数据库安全研究的发展 基于对安全数据库的需求 总体来讲 我国的研究成果在安全性和可用性上还有一定的差距 目前 国外几大数据库厂商的低安全级别的数据库产品占据了国内的大部分市场 国内的电信 金融 电力 保险等行业基本上都采用的是ORACLE Sybase Informix三大数据库厂商和IBM微软的低安全级别的数据库产品 数据库系统的安全模型与实现策略 人们对数据库安全技术的研究是从研究安全模型开始的 安全模型也称为 策略表达模型 它是一种抽象且独立于软件实现的概念模型 数据库系统的安全模型是用于精确描述数据库系统的安全需求和安全策略的有效方式 先后提出的数据库多级安全模型主要有BLP Biba SeaView和JajodiaSandhu 简称为JS 模型等 数据库系统的安全模型 多级关系多级关系完整性多级关系操作 多级安全数据库实现策略 1 可信过滤器 TF TrustedFilter 这种方式下DBMS本身无安全保证 只是在DBMS与用户应用程序之间设置一个可信过滤器 即在原有系统的基础上通过增加安全外壳来实现多级数据库的安全功能 显然 这种方式下数据库系统的安全性完全依赖于OS 2 平衡保障 BA BalancedAssurance 在一个安全OS的基础上建立一个安全DBMS 由OS和DBMS来分担安全功能 这种方式下 DBMS的安全在很大程度上依赖于OS 多级安全数据库实现策略 3 一致保障 UA UniformedAssurance 实现一个安全DBMS来提供所有的安全功能 从DBMS的开发起步 将多级安全模型的安全机制和数据库加密在其内核中实现 与DBMS紧密结合在一起 其安全性较高 这种方式对OS的依赖少 DBMS可以单独评估 多级安全数据库实现策略 上述三种方法中在实现难度上和所提供的安全性能均依次增强 具体采用哪种实现方法 根据应用环境的需要 在对多种因素如 安全性 性能 成本等进行权衡考虑后来确定 在实际应用中可能采取其中一种或多种结构的混杂方式 数据库系统安全机制 用户身份认证存取控制数据库加密推理控制审计追踪 用户身份认证 数据库用户的安全等级不同 所分配的权限也不一样 用户身份认证是安全系统的第一道防线 目的是防止非法用户访问系统 用户身份认证是DBMS对访问者授权的前提 数据库系统必须建立严格的用户认证机制 最简单的方法是口令控制 用户输入ID和密码 系统进行验证是否合法 还可以采用比较复杂的计算过程和函数来完成 如可采用智能卡技术 数字签名技术和生理特征 如指纹 体温 声纹 视网膜纹等 认证技术 存取控制 自主存取控制 DiscretionaryAccessControl DAC 强制存取控制 MandatoryAccessControl MAC 基于角色访问控制 RoleBasedAccessControl RBAC 基于角色访问控制 RBAC 基于角色的访问控制最初是为了处理大型系统中数量庞大的用户管理和权限管理问题 RBAC在主体和权限之间增加了一个中间桥梁 角色 权限被授予角色 管理员通过指定用户为某特定角色来为用户授权 从而大大简化了授权管理 具有强大的可操作性和可管理性 角色是用户与一系列权限的集合 现阶段的RBAC模型通常称为RBAC96 它由四个模型组成 下面分别介绍之 数据库加密 数据库系统有其独特的加密方法和密钥管理方法 一般来说 一个好的数据库加密系统应该满足以下几个方面的要求 与通信加密相比 其信息保存时间长 不可能采取一次一密的方法进行加密 而因选用其他加密的方式 使其达到实际不可破译的程度 实际加密后 存储空间不应明显增大 加密和解密速度要快 尤其是解密速度要快 使用户感觉不到解密和解密带来系统性能的变化 对数据库的加密不应影响系统的原有功能 而应保持对数据库的操作 如查询 检索 修改 更新 的灵活性和简便性 加密后的数据库仍能允许用户以不同的粒度对之进行访问 灵活的密钥管理机制 加解密密钥存储安全 使用方便可靠 数据库加密的实现机制 可考虑在三个不同层次实现对数据库数据的加密 这三个层次分别是OS DBMS内核层和DBMS外层 1 OS层加密在OS层无法辨认数据库文件中的数据关系 从而无法产生合理的密钥 对密钥合理的管理和使用也很难 所以 对大型数据库来说 在OS层对数据库文件进行加密很难实现 2 DBMS内核层加密在DBMS内核层实现加密 是指数据在物理存取之前完成加 脱密工作 这种方式势必造成DBMS和加密器 硬件或软件 之间的接口需要DBMS开发商的支持 DBMS内核层实现加密关系图 在DBMS内核层加密方式的优点是加密功能强 并加密功能集成为DBMS的功能 可以实现加密功能与DBMS之间的无缝耦合 对于数据库应用来说 库内加密方式是完全透明的 不需要做任何改动就可以直接使用 库内加密方式的缺点 是对系统性能影响比较大 DBMS除了完成正常的功能外 还要进行加 解密运算 从而加重了数据库服务器的负载 二是密钥管理风险大 加密密钥与库数据一同保存在服务器中 其安全性依赖于DBMS的访问控制机制 三是加密功能依赖于数据库厂商的支持 DBMS一般只提供有限的加密算法与强度可供选择 自主性受限 3 DBMS外层加密将数据库加密系统做成DBMS的一个外层工具 加 解密过程发生在DBMS之外 BMS管理的是密文 加 解密过程可在客户端实现 也可由专门的加密服务器或硬件完成 定义加密要求工具 模块的主要功能是定义如何对每个数据库表数据进行加密 在创建了一个数据库表后 通过此工具对该表进行定义如何加密 数据库应用系统 的功能是完成数据库定义和操作 数据库加密系统将根据加密要求自动完成对数据库数据的加 解密 DBMS外层实现加密关系图 库外加密与库内加密方式相比的优点 是由于加 解密过程在客户端或专门的加密服务器实现 所以减少了DBMS设计复杂度与运行负担 二是可以将加密密钥与所加密的数据分开保存 加密密钥保存在加密服务器中 甚至是硬件中 提高了安全性 三由客户端与服务器的配合 可以实现端到端的网上密文传输 库外加密的缺点 加密后的数据库功能受到一些限制 例如加密后的数据无法正常索引 同时数据加密后也会破坏原有的关系数据的完整性与一致性 数据库加密的粒度 1 表级加密 2 属性级加密 3 记录级加密 4 数据项级加密 1 表级加密表级加密的对象是数据库文件 类似于操作系统中文件加密的方法 即每个表与不同的表密钥运算 形成密文后存储 利用这种方法 数据的共享是通过用户用解密密钥对整个数据库文件进行解密来实现的 即使用户只需查看或修改某一记录时 也需要将整个数据库文件解密 不仅极大增加了系统的时空开销 其次也无法控制用户对未授权信息的访问 因此 这种方法只适用于能回避这些限制的应用环境 2 属性级加密属性加密又称为 域加密 即以表中的列为单位进行加密 一般而言 属性的个数少于记录的条数 且需要的密钥数相对较少 如果只有少数属性需要加密 属性加密是可选的方法 3 记录级加密一般而言 数据库系统中每条记录所包含的信息具有一定的封闭性 即从某种程度上讲 它独立完整地存储了一个实体的数据 因此 基于记录的加密技术是最常用的数据库信息加密手段 数据库系统中每条记录在各自密钥的作用下加密成密文并存放于数据库文件中 查找纪录时 通过将需查找的值加密成密码文后进行的 该方法的缺点是在解密一个记录的数据时 无法实现对在这个记录中不需要的数据项不解密 4 数据项级加密数据项加密是以记录中每个字段的值为单位进行加密 数据项是数据库中最小的加密粒度 采用这种加密粒度其优点是 系统的安全性与灵活性最高 同时实现技术也最为复杂 不同的数据项使用不同的密钥 相同的明文形成不同的密文 抗攻击能力得到提高 缺点为 需要引入大量的密钥 一般要周密设计自动生成密钥的算法 密钥管理的复杂度大大增加 同时系统效率也受到影响 加密算法 加密算法是数据加密的核心 常用的加密算法包括对称密钥算法和公开密钥算法 但是目前没有公认的专门针对数据库加密的加密算法 一般根据数据库特点选择现有的加密算法来进行数据库加密 对称密钥算法的运算速度比公钥算法快 二者相差大约2 3个数量级 并且在公钥算法中 每个用户有自己的密钥对 如果不同用户具有不同的数据库加密密钥 将产生异常庞大的数据存储量 因此 在数据库加密中一般采取对称密钥的分组加密算法 密钥管理 加密数据库中的密钥管理比其他系统的密钥管理更为困难与复杂 例如在数据通信加密系统中 通信双方使用的密钥可通过其他安全途径传递 另外 每次通信的会话密钥是动态生成的 而在数据库加密系统中 密钥的某些信息必须存放在机器中 数据库加密系统一般对不同的加密单元采用不同的密钥 根据加密粒度的不同 越是细小的加密粒度 所产生的密钥数量越多 密钥管理也就越复杂 带来密钥管理的问题 以加密粒度为数据元素为例 如果不同的数据元素采用同一个密钥 由于同一属性中数据项的取值在一定范围之内 且往往呈现一定的概率分布 攻击者可以不用求原文 而直接通过统计方法即可得到有关的原文信息 另外 数据库客体之间隐含者复杂的逻辑关系 一个逻辑结构可能对应着多个数据库物理客体 所以数据库加密不仅密钥量大 且组织存储工作比较复杂 需要对密钥实现动态管理 对数据库密钥的管理一般有集中密钥管理和多级密钥管理两种体制 集中密钥管理方法是设立密钥管理中心 在建立数据库时 密钥管理中心负责产生密钥并对数据加密 形成一张密钥表 当用户访问数据库时 密钥管理机构核对用户识别符和用户密钥 通过审核后 由密钥管理机构找到或计算出相应的数据密钥 这种方式便于用户使用和管理 但由于这些密钥一般由数据库管理人员控制 因而权限过于集中 目前研究和应用比较多的是多级密钥管理体制 在加密粒度为数据项的三级密钥管理体制中 整个系统使用一个主密钥MK 每个表上的表密钥TK 以及各个数据项上的数据密钥等三级密钥结构 表密钥被主密钥加密后以密文形式保存在数据字典中 数据元素密钥由表密钥及数据项所在行 列通过某种函数自动生成 一般不需要保存 在多级密钥体制中 主密钥是加密子系统的关键 多级密钥管理体制的安全性在很大程度上依赖于主密钥的安全性 推理控制 多级安全数据库系统中的推理问题推理通道推理控制 推理 即从已知的信息推出新的信息 在安全数据库系统中的推理问题是指如何阻止一个用户推理出未被授权访问的信息 由于数据库中的数据存在各种内在关联 数据用户有可能根据它所允许知道的信息 利用数据之间的内在逻辑联系 推断出某些未被授权访问的信息 这种推理过程称为推理通道 产生推理的原因很多 下面给出最常见的两类 利用不同级别数据之间的函数依赖进行推理分析执行多次查询 利用查询结果之间的逻辑关系进行推理 利用不同级别数据之间的函数依赖进行推理分析由于数据表的属性之间存在着 函数依赖 与 多值依赖 关系 因此有可能产生推理通道 例1 假定某个公司的职员的工资是由职员的职务决定的 该公司数据库存在一个关系模式R Employee Rank Salary 假设Salary属性的安全级为绝密 Rank属性的安全级为机密 同时 R中存在函数依赖 Rank Salary 该函数依赖表明在元组t内 对于一个给定的Rank值 总有唯一的Salary值与之对应 对于一个安全级为机密的用户 如果他知道Rank和Salary值之间存在函数依赖关系 那么他就可以根据职务Rank的信息推理出未授权的Salary信息 从而对数据库的安全构成威胁 产生上述推理通道的根本问题在于 给数据分配密级标签时没有考虑函数依赖Rank Salary 执行多次查询 利用查询结果之间的逻辑关系进行推理例2 考虑两种关系 飞机关系P NAME ID 和执行任务关系D ID TYPE DEST 其中属性NAME表示飞机名称 属性ID表示飞机编号 属性TYPE表示任务的性质 属性DEST表示飞行目的地 两种关系可根据ID属性进行连接运算 按表划分密级 规定飞机关系P中所有记录均为机密级 任务关系D中 除DEST属性值为 A区域 的记录为绝密级外 其它记录为机密级 机密用户可用如下的查询推导出任务关系D的绝密信息 SELECTEMPLOYEE NAMEWHEREEMPLOYEE ID TRIPS IDANDTRIPS DEST PEKING 此查询是标准的 选择一投影一连接 关系运算 查询的结果将暴露出任务关系D的绝密信息 产生上述推理的原因在于关系运算在数据库管理系统中进行时 没有对关系运算中的数据密级进行限制 使低密级用户有可能在关系运算的查询条件中利用高密级数据进行数据推理攻击 推理与直接泄露 DirectDisclosure 有区别 前者是必须经过推理来获得信息 后者是信息被直接泄露给未获授权的用户 推理通道与隐蔽通道也不相同 它是基于一组特定的数据值和逻辑蕴涵规则 不需要一个处于高安全级别的主动代理从高安全级别向低安全级发送信息 推理通道 推理通道的分类有多种方式 依据低安全级主体能够推测敏感信息的程度划分 演绎推理通道 DeductiveChannel 诱导推理通道 AbductiveChannel 概率性推理通道 ProbabilisticChannel 根据通道的存在时间划分 静态推理通道 StaticInferenceChannel 动态推理通道 DynamicInferenceChannel 推理通道 依据低安全级主体能够推测敏感信息的程度划分 演绎推理通道 低安全级主体通过演绎推理可以得到敏感信息并能提供形式化证明 诱导推理通道 低安全级主体通过演绎推理可以得到敏感信息但必须借助一些假设的公理才能证明 概率性推理通道 低安全级主体借助一些假定的公理降低敏感信息的不确定性 但不能完全确定出敏感信息的内容 推理通道 根据推理通道存在时间划分 静态推理通道 根据低密级信息和约束条件推理出高安全级信息 动态推理通道 在数据库处于特定状态时才存在的推理通道 推理通道的存在是多级安全系统中的重大安全隐患 系统必须提供一个机制来检测和排除推理通道 推理控制 推理控制是指推理通道的检测与消除 推理控制问题仍处于理论探索阶段 没有一种从根本上解决推理通道的方法 这是由于推理通道问题本身的多样性与不确定性所决定的 目前常用的推理控制方法可以分为四种 语义数据模型方法形式化方法多实例方法查询限制方法 数据库审计 数据库审计是指跟踪 记录 分析用户对数据库所施加的各种操作的机制 用以发现不恰当的用户操作和可能存在的各种安全漏洞等 作为一种 检测 技术 审计与 阻止 技术不同 通过审计可以发现拥有合法权限的用户的不合法操作 这是 阻止 技术做不到的 按照美国国防部TCSEC TDI标准中关于安全策略的要求 审计功能是数据库系统达到C2以上安全级别必不可少的一项指标 好的审计功能应该在可审计的内容上提供尽可能大的灵活性 同时应该只记录尽可能少的必要信息 可审计的内容的类型就是审计类型 数据库管理系统的审计主要分为 特权审计语句审计用户审计对象审计 特权审计 是指审计系统管理员 安全管理员的一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论