4.6 其他安全性保护
为满足较高安全等级数据库管理系统的安全性保护要求,在自主存取控制和强制存取控制之外,还有推理控制以及数据库应用中隐蔽信道和数据隐私保护等技术。
推理控制(inference control)处理的是强制存取控制未解决的问题。例如,利用列的函数依赖关系,用户能从低安全等级信息推导出其无权访问的高安全等级信息,进而导致信息泄露。
数据库推理控制机制用来避免用户利用其能够访问的数据推知更高密级的数据,即用户利用其被允许的多次查询的结果,结合相关的领域背景知识以及数据之间的约束,推导出其不能访问的数据。在推理控制方面,常用的方法如基于函数依赖的推理控制和基于敏感关联的推理控制等。例如,某个公司信息系统中假设姓名和职务属于低安全等级(如公开)信息,而工资属于高安全等级(如机密)信息。用户A的安全等级较低,他通过授权可以查询自己的工资、姓名、职务,及其他用户的姓名和职务。由于工资是机密信息,因此用户A不应知道其他用户的工资。但是,若用户B的职务和用户A相同,则利用函数依赖关系职务->工资,用户A可通过自己的工资信息(假设3000元),推出B的工资也是3000元,从而导致高安全等级的敏感信息泄露。
隐蔽信道(covert channal)处理内容也是强制存取控制未解决的问题。下面的例子就是利用未被强制存取控制的SOL执行后反馈的信息进行间接信息传递。
通常,如果insert语句对unique属性列写入重复值,则系统会报错且操作失败。那么,针对unique约束列,高安全等级用户(发送者)可先向该列插入(或者不插入)数据,而低安全等级用户(接收者)向该列插入相同数据。
如果插入失败,则表明发送者已向该列插入数据,此时二者约定发送者传输信息位为0;如果插入成功,则表明发送者未向该列插入数据,此时二者约定发送者传输信息位为1。通过这种方式,高安全等级用户按事先约定方式主动向低安全等级用户传输信息,使得信息流从高安全等级向低安全等级流动,从而导致高安全等级敏感信息泄露。
随着人们对隐私的重视,数据隐私(data privacy)成为数据库应用中新的数据保护模式。
所谓数据隐私是控制不愿被他人知道或他人不便知道的个人数据的能力。数据隐私范围很广,涉及数据管理中的数据收集、数据存储、数据处理和数据发布等各个阶段。例如,在数据存储阶段应避免非授权的用户访问个人的隐私数据。通常可以使用数据库安全技术实现这一阶段的隐私保护。如使用自主访问控制、强制访问控制和基于角色的访问控制以及数据加密等。在数据处理阶段,需要考虑数据推理带来的隐私数据泄露。非授权用户可能通过分析多次查询的结果,或者基于完整性约束信息,推导出其他用户的隐私数据。在数据发布阶段,应使包含隐私的数据发布结果满足特定的安全性标准。如发布的关系数据表首先不能包含原有表的候选码,同时还要考虑准标识符的影响。
准标识符是能够唯一确定大部分记录的属性集合。在现有安全性标准中,k-匿名化(k-anonymization)标准要求每个具有相同准标识符的记录组中至少包括k条记录,从而控制攻击者判别隐私数据所属个体的概率。还有1-多样化标准(l-diversity)、t-临近标准(t-closeness)等,从而使攻击者不能从发布数据中推导出额外的隐私数据。数据隐私保护也是当前研究的热点。
要想万无一失地保证数据库安全,使之免于遭到任何蓄意的破坏几乎是不可能的。但高度的安全措施将使蓄意的攻击者付出高昂的代价,从而迫使攻击者不得不放弃他们的破坏企图。
第4章 数据库安全性
——小结
随着数据库应用的深入和计算机网络的发展,数据的共享日益加强,数据的安全保密越来越重要。数据库管理系统是管理数据的核心,因而其自身必须具有一整套完整而有效的安全性机制。
实现数据库系统安全性的技术和方法有多种,数据库管理系统提供的安全措施主要包括用户身份鉴别、自主存取控制和强制存取控制技术、视图技术和审计技术、数据加密存储和加密传输等。本章简要讲解了这些技术。