第10章数据库系统安全•数据库是计算机科学的一个重要分支,任何信息管理的应用都离不开数据库的支持。•随着网络的发展,数据库已经与网络紧密地结合起来。•数据库系统安全的重要性不亚于网络安全的重要性。•数据库系统的安全有它独有的特点。第10章数据库系统安全NetworkandInformationSecurity10.1数据库安全概述安全问题注释物理上的数据库完整性预防数据库物理方面的问题,如掉电,以及被灾祸破坏后能重构数据库逻辑上的数据库完整性保持数据的结构,比如:一个字段的值的修改不至于影响其他字段元素的完整性包含在每个元素中的数据都是准确的可审计性能够追踪到谁访问修改过数据的元素访问控制只允许用户访问被批准的数据,以及限制不同的用户有不同的访问模式,如读或写用户认证确保每个用户被正确地识别,既便于审计追踪,也为了限制对特定的数据进行访问可获(用)性用户一般可以访问数据库以及所有被批准访问的数据第10章数据库系统安全NetworkandInformationSecurity(1)存取控制技术(2)隔离控制技术(3)加密技术(4)信息流向控制技术(5)推理控制技术(6)数据备份技术第10章数据库系统安全NetworkandInformationSecurity10.1.1数据库安全技术•一般情况下,我们可以确定整个数据库是敏感的(要求保密)或不敏感的(不要求保密)。•细一点,可以确定库中的某个基表(对于关系型数据库)是敏感的或不敏感的。•但有时情况却复杂得多。第10章数据库系统安全NetworkandInformationSecurity10.1.2多级数据库•姓名、部门和电话这三列是不需保密的,任何人都可以查询。•但是工资和绩效考核却是必须保密的(现在很多企业都搞所谓的“密薪制”),这说明基表中只有部分字段是敏感的。姓名部门工资电话绩效考核张三培训部18002175349优李四技术部25002171420良王五办公室16002582322中赵六客户服务部20002582254良第10章数据库系统安全NetworkandInformationSecurity•也许李四是一个特殊人物,他的所有情况都要保密,甚至他的存在都是一个秘密。•赵六的电话也许很重要,不想被别人知道。•这些数据的安全要求与工资与绩效考核两个字段的安全要求是不一样的。姓名部门工资电话绩效考核张三培训部18002175349优李四技术部25002171420良王五办公室16002582322中赵六客户服务部20002582254良第10章数据库系统安全NetworkandInformationSecurity1.一个元素的敏感度可能不同于同一记录的其他元素或同一属性的其他值。这要求应该对每个元素单独实行安全保护。2.敏感和不敏感两种级别不足以描绘某些安全要求,需要多个安全级别。3.集合安全不同于单个元素的安全,如数据库中的和、平均值。集合安全可能高于也可能低于单个元素的安全。第10章数据库系统安全NetworkandInformationSecurity数据库安全特点•虽然DBMS在操作系统的基础上增加了不少安全措施,例如基于权限的访问控制等,但操作系统和DBMS对数据库文件本身仍然缺乏有效的保护措施,有经验的黑客会“绕道而行”,直接利用操作系统工具窃取或篡改数据库文件内容。•被称为通向DBMS的“隐秘通道”,它所带来的危害一般数据库用户难以觉察。•分析和堵塞“隐秘通道”被认为是B2级的安全技术措施。•对数据库中的敏感数据进行加密处理,是堵塞这一“隐秘通道”的有效手段。10.2数据库加密第10章数据库系统安全NetworkandInformationSecurity•80%的计算机犯罪来自系统内部。•在传统的数据库系统中,数据库管理员的权力至高无上,他既负责各项系统管理工作,例如资源分配、用户授权、系统审计等,又可以查询数据库中的一切信息。•为此,可采用技术手段来削弱系统管理员的权力,如采用多权分立的策略,除了系统管理员以外,增加安全员和审计员,使系统管理员、安全员和审计员之间相互牵制、制约。•实现数据库加密以后,各用户(或用户组)的数据由用户用自己的密钥加密,数据库管理员没有密钥无法进行正常解密,从而保证了用户信息的安全。•另外,通过加密,数据库的部分内容成为密文,从而能减少因介质失窃或丢失而造成的损失。•数据库加密对于企业内部安全管理,也是不可或缺的。一般来说,一个良好的数据库加密系统应该满足以下基本要求:1.支持各种粒度加密2.良好的密钥管理机制3.合理处理数据4.不影响合法用户的操作第10章数据库系统安全NetworkandInformationSecurity10.2.1数据库加密的基本要求1.操作系统层加密2.DBMS内核层实现加密3.DBMS外层实现加密DBMS内核加密引擎客户程序DBMS内核加密引擎客户程序第10章数据库系统安全NetworkandInformationSecurity10.2.2数据库加密的方式•数据库加密系统分成两个功能独立的主要部件:一个是加密字典及其管理程序,另一个是数据库加/解密引擎第9章数据库系统安全•通过调用数据加/解密引擎实现对数据库数据的加密、解密及数据转换等功能。用户对数据库信息具体的加密要求以及参数信息保存在加密字典中优点•首先,系统对数据库的最终用户是完全透明的,系统(?)可以根据需要进行明文和密文的转换工作;•其次,加密系统完全独立于数据库应用系统,无须改动数据库应用系统就能实现数据加密功能;•第三,加/解密处理在客户端进行,不会影响数据库服务器的效率。•数据库加/解密引擎是数据库加密系统的核心部件,它位于客户程序与数据库服务器之间,负责在后台完成数据库信息的加/解密处理,对操作人员来说是透明的。•数据加/解密引擎没有操作界面,在需要时由操作系统自动加载并驻留在内存中。•数据库加密如果采用序列密码,那么同步将成为一个大问题。•需要对大片密文中的极小部分解密时,如何同步密文与密钥呢?•非对称加密?•所以数据库加密一般采用分组密码。•对于分组密码中常用的ECB和CBC两种模式,又该如何确定呢?•考虑到数据库中会有大量相同的数据,比如性别、职务、年龄等信息,我们应该采用CBC模式。•对于在DBMS上实现的加密,加密粒度可以细分为基表、记录、字段或数据元素。第10章数据库系统安全NetworkandInformationSecurity10.2.3数据库加密的方法及加密粒度10.2.4数据库加密系统的密钥管理第10章数据库系统安全NetworkandInformationSecurity当一用户访问数据库时,密钥管理中心利用某种技术对用户进行身份认证。如果是合法用户,则允许访问.密钥管理中心根据用户的权限取出相应的数据密钥,根据用户的请求对有关数据进行加解密处理。其中密钥的产生应满足下列条件:•1.在产生大量密钥的过程中,产生重复密钥的概率要尽可能的低。•2.从一个数据项的密钥推导出另一个数据项的密钥在计算上是不可行的,这样,即使部分密钥泄露,其他密钥也是安全的。•3.即使知道一些明文值的统计分布,要从密文中获取未知明文,在计算上是不可行的。•10.3.1统计数据库的安全问题•具体地说,统计数据库是这样一种数据库;从库中取得的信息是关于一实体集子集的汇总信息。•统计数据库只为提供统计数据所用,如人口普查数据库就是这样。•在统计数据库中,除了禁止非法存取等一般安全问题外,还存在特殊的安全问题。•保护统计数据库的目的是,由该数据库发布统计信息时,保证不会使其中受保护的具体信息泄露。10.3统计数据库的安全第10章数据库系统安全NetworkandInformationSecurity一般的统计数据库有下面几种统计信息类型:1.计数:count(c),求满足特征表达式c的记录个数。2.求和:sum(c,a),求满足特征表达式c的记录中字段a的和。3.求平均值:average(c,a),求满足特征表达式c的记录中字段a的平均值。4.求最大值:max(c,a),求满足特征表达式c的记录中字段a的最大值。5.求最小值:min(c,a),求满足特征表达式c的记录中字段a的最小值。第10章数据库系统安全NetworkandInformationSecurity编号章节题型难度分值111选择A2211填空B2321判断C2421简答A5531应用B10631选择C2741填空A2841简答B5•题库分析人如果想知道第三章各题的分值,他直接查询将会被拒绝。•但他可以先查询count(章=3),得到结果为2;•他再查询sum(章=3,分值),得到结果12;•他再查询max(章=3,分值),得到结果10。•现在他已知道第三章有两道题,一道10分,一道2分。•用户通过一些统计数据库允许的合法查询,可以得到本来对他保密的信息。•统计数据库远不是安全保密的,而且,前面介绍的一般数据库的访问控制并不能解决统计数据库的泄密问题.•因为它主要是限制用户的存取权力,用户只能对数据库中的一部分数据进行访问。•在统计数据库中,保密的目标应该是防止用户通过一系列“合法”的统计查询,使“不合法”的要求得到满足,也就是防止用户从一系列查询中推理出某些秘密信息,这时我们要实行的控制称为“推理控制”。第10章数据库系统安全NetworkandInformationSecurity10.3.2安全性与精确度全部统计信息S发布统计信息R泄露统计信息D非机密统计信息P机密统计信息机密统计信息统计数据库第10章数据库系统安全NetworkandInformationSecurity设S为全部统计信息,P为非机密统计信息子集,R为发布的子集,D是由R(也包括R在内的统计信息)泄露的统计信息子集•发布R子集的目的是,全部非机密统计信息在R内或可由R求得,当D≥P时(精确度),发布的统计信息包含了全部非机密统计信息,因而可认为发布的统计信息保证了精确度。•精确度保证了最大限度地使用统计信息,而安全性则保证了秘密统计信息的秘密。•如果满足条件D≤P(安全性),则不会因R而使秘密统计信息泄露。•可以看出,安全性与精确度的要求正好是相反的,二者都满足的条件是D=P。•要做到既保证安全性,又保证精确度,即D=P,是非常困难的全部统计信息S发布统计信息R泄露统计信息D非机密统计信息P机密统计信息机密统计信息统计数据库1.小查询集和大查询集攻击2.跟踪器攻击3.插入和删除攻击4.对线性系统的攻击第10章数据库系统安全NetworkandInformationSecurity10.3.3对统计数据库的攻击方式1.小查询集和大查询集攻击•现假设用户的外部知识使其知道数据库内第i个记录满足特征表达式c,如果用户以统计信息count(c)查询数据库,并得到回答count(c)=1,则该用户能够确定该查询集只含一个记录,即第i个记录。•此时,用户利用统计信息sum(c,a)的查询,可求得第i个记录的字段a的值;也可以以统计信息count(candd)查询数据库内第i个记录是否满足特征表达式d,若值为0则说明不满足,值为1则说明满足。•甚至在查询集记录个数不唯一的情况下,这类攻击有时仍然是可行的。•假设已知第i个记录满足c,且count(c)1,如果count(candd)=count(c),则第i个记录当然也满足d。•如果count(candd)count(c),则不能确定第i个记录是否满足d。2.跟踪器攻击•利用所谓“跟踪器”的手段,也可使统计数据库泄密。跟踪器有多种。•假设用户已知第i个记录唯一满足特征表达式c,如果想通过统计查询sum(c,a)求得第i个记录的字段a的值,在系统实施了查询集控制后,由于查询集过小将遭拒绝,故用户不能直接得到结果。•但是,如果特征表达式c可由多个表达式组合而成,即将c分成c1、c2,使得c=c1-c2,同时,count(c1)和count(c2)都大小适中,不受限。•此时,由于count(c1)和count(c2)均不受查询集限制,所以用户可用