【大学课件】信息安全技术第十八讲:数据.doc
第十八讲: 数据库安全与保密技术简介 数据库是存储在计算机内的有结构的数据集合。数据库可分为:关系式数据库、网状数据库和层次数据库。数据库在社会各个领域的应用范围日益广泛,数据库中存放的信息价值往往远远超过系统本身的价值,因此,数据库系统的安全与保密是绝对应该重视的事情。A: 数据库系统基本知识 一般地讲,数据库系统由三部分组成:数据库、数据库管理系统和用户。数据库采取集中存储,集中维护的方法存放数据,为多个用户提供数据共享服务。数据库管理系统是一个数据库管理软件,其职能是维护数据库,接受和完成用户程序,命令提出的数据访问的各种请求。数据库管理系统应当为用户及应用程序提供一种访问数据的方法,并且应具有对数据库进行组织、管理、维护和恢复的能力。 形象地说:数据库相当于图书馆中的书库,数据库管理系统相当于图书的书卡,用户相当于读者。 数据库系统的优点主要有: 共享访问:多个用户可以共享公用的集中数据集; 最小冗余:单个用户不必组织并维护自己的数据集,从而避免了公用数据重复所产生的冗余;数据一致性:集中管理和维护数据,易于达到数据的一致性。从操作系统的角度看,数据库管理系统只是一个大型的应用程序。数据库系统的安全策略,部分由操作系统来完成,部分由强化数据库管理系统的自身安全措施完成。数据库管理系统自身的安全措施在许多方面类似于操作系统的安全措施。数据库系统作为一种重要的信息系统,它当然要以保证信息的完整性,保密性、真实性、可用性、可靠性等为目标。但是,由于数据库系统 本身的特点,其中,信息的完整性和保密性的实现方法有所不同,其安全措施与操作系统的安全措施也有本质区别。B: 数据库系统安全与保密的特点 从安全与保密角度看,数据库系统的基本特点可以概括为:l 在数据库中要保护的客体比较多;l 数据库中数据的生存期限较长,对保护的精度要求更高;l 数据库的安全涉及到信息在不同程度上的安全;l 数据库系统中受保护的客体可能是复杂的逻辑结构。若干复杂的逻辑结构可能映射到同一物理数据客体上;l 数据库的安全与数据的语法有关;数据库的安全与保密还应当考虑到对推理攻击的防范。推理攻击是指从非敏感的数据推理得出敏感数据的攻击方式。从所面临的安全与保密威胁方面来看,数据库系统应该重点对付以下威胁: 篡改(伪造)。篡改就是修改数据,使其不真实。例如,删除定单、发货单、或收据等。这是一种潜在的威胁,因为在其造成影响之前,很难发现数据已被篡改。对付篡改的一种实用措施是限制对特定数据的访问。例如,若数据库表存放在一个Microsoft SQL服务器上,则必须限制ISQL/w程序的访问权,因为此程序能绕过限制直接接触数据。 损坏。数据的真正丢失是一个严重威胁。表格和整个数据库都可能被删除、移走或破坏,这样它们的内容就不可用了。数据被损坏的原因可能是恶意破坏、恶作剧或病毒等。窃取。窃取数据的隐蔽性很强。甚至当数据丢失已经造成损害时,仍未被发现。通过对敏感数据的非法访问,可以将敏感数据拷贝到诸如软盘一样的可移动的介质上,或以打印报告的形式取走。C: 数据库系统的基本安全措施 数据库作为一种特殊的信息系统,它的安全保密措施与普通的网络信息系统的安全措施有许多共同之处,当然也有自身的一些特点。数据库的安全与保密措施的主要目的在于: 保证数据库的完整性。包括物理上的完整性(数据不受物理故障(如掉电)的影响,并有可能在灾难性毁坏后重组数据库)、逻辑上的完整性(保护数据库的逻辑结构)、数据库中元素的完整性(保证每个元素所含的数据准确无误); 保证数据库的保密性。包括用户身份鉴别(保证每个用户是绝对可识别的,从而可对它进行审计跟踪,并可以保证对特定数据的访问保护)、访问控制(保证用户仅能访问授权数据,并保证同一组数据的不同用户可以被赋予不同的访问权限)、可审计性(有能力跟踪谁访问了数据库中的哪些元素);保证数据库的可用性。数据库系统对用户应该有友好的界面,可用简单方法访问数据库中所有授权访问数据。为达到上述安全目的,数据库系统需要采取一系列的安全措施: 措施之一:为了防止数据库中的数据受到物理破坏,应当对数据库系统采取定期备份系统中所有文件的方法来保护系统的完整性; 措施之二:为了在系统出错时可以重组数据库,数据库管理系统应当维护数据库系统的事务日志,以便用这种日志恢复系统故障时丢失的数据; 措施之三:如果在数据修改期间系统发生故障,数据库管理系统将会面临严重的问题。此时,一个记录甚至一个字段中,有的部分得到修改而其余部分维持原样。为了避免这种错误,大多数数据库管理系统都采用两阶段修改技术来保护数据的完整性。两阶段修改技术的第一阶段叫做准备阶段。这时,数据库管理系统完成修改所需的信息,进行修改前的准备工作。在此阶段,数据库管理系统收集数据,建立记录,打开文件并且封锁其他用户,然后计算最后结果。简言之,数据库管理系统完成修改所需的一切准备工作,但未对数据库作任何修改。第一阶段的最后一步叫做“提交”,它的任务是把“提交”标志写入数据库。提交标志是两阶段修改技术中两阶段的分界点,它意味着一旦数据库管理系统通过这个分界点后就不再返回,也就是说,一旦进入提交阶段数据库管理系统将开始进行永久性的修改。第二阶段叫做永久性修改阶段。在此阶段中,凡是属于提交前的任何动作都是不可重复的,但本阶段的修改活动本身则可重复多次。因此,若在第二阶段系统发生故障,则数据库中可能包含非完整的数据,但可以重复所有第二阶段的活动使数据恢复完成。第二阶段完成以后,数据库管理系统将把“事务完成”标志写入系统的日志,并清除数据库中的“提交”标志。 措施之四:为了保证数据库元素的完整性,数据库管理系统应当在数据输入时帮助用户发现错误和修改错误。常用的方法有三种:首先,数据库管理系统利用字段检查,测试某一位置的值是否正确;其次,数据库管理系统利用访问控制的机制来维护数据的完整性,以防止非授权用户对主体数据的访问;第三种办法是数据库管理系统维持一个数据库的修改日志。修改日志记录数据库的每次修改,既有修改前的值也有修改后的值。借助于修改日志,数据库管理员可以在出错时"废除"任何修改而恢复数据的原值。 措施之五:数据库管理系统要求严格的用户身份鉴别。为了进一步加强数据库系统的安全性和保密性,必须对使用数据库的时间甚至地点加以限制。有的数据库管理系统要求用户只能在指定时间,在指定的终端上,对数据库系统进行指定的操作。因此,在指定时间、指定终端上登录上机的用户进行身份标识(ID)和口令的鉴别。措施之六:数据库管理系统应采取适当的访问控制机制。既可以是任意访问控制,又可以是强制访问控制。任意访问控制可以通过控制矩阵进行。强制访问控制通过与军事安全策略类似的方法来实现。具体地讲,在数据库管理系统的安全控制上引入级和范围(类别)的概念,每个主体制订一个范围许可级别,每个客体有相应的保密级别。范围许可级别和保密级别一般有四类:公开、秘密、机密和绝密。在服从强制控制的前提下,还可以结合任意控制访问机制,形成一种比较安全又比较灵活的多级安全模型。措施之七:采用多层数据库系统,即把操作系统的多级安全模型引入安全数据库系统设计之中。多层数据库对访问进行控制的一种简单方法是"分区"。数据库被划分为不同的子库(分区),每个子库都拥有各自的安全层次。这种方法破坏了数据库的基本优点,它增加了设计的冗余,而且在对某个字段进行修改修改时,可能要同时查询并修改其它分区中的相同字段,以维持设计的一致性。 多层数据库对访问控制的另一种方法是利用视图这个抽象概念。简言之,视图是数据库的一个子集,它仅包含用户有权访问的信息。这样单个用户的所有查询仅在自己的数据库子集上进行。子集视图保证用户不会访问允许范围之外的其它设计。除了元素之外,视图由数据库中相应的一系列关系构成。用户可以在已有的属性元素上进行相应的操作. 多层数据库的第一层完成访问控制,并进行数据库系统需要的用户身份鉴别,还应当完成数据传输给高层时的筛选工作。第二层完成基本的数据库索引及其计算功能。第三层把用户的视图转化为数据库的基本关系。 与多层数据库系统安全有关的还有并发控制、数据恢复、审计跟踪等技术。这些技术是一般数据库系统必备的安全措施,而不是安全数据库系统的特有技术。D: 数据库系统的加密技术简介 数据库系统的加密要求与方式对数据库中的原始数据进行加密处理也是数据库安全与保密的另一项重要措施。在数据库中,记录的长度一般较短,数据的生命周期一般较长,有的是几年甚至几十年。密钥的保存时间也相应较长。因此,数据库系统有其独特的加密方法和密钥管理方法。对数据库的加密要求可归纳为: (1)与通信加密相比,其信息保存时间长,不可能采取一次一密的方法进行加密,而要选用其他加密的方式,使其达到实际不可破译的程度。 (2)实际加密后,存储空间不应明显增大。 (3)加密和解密速度要快,尤其是解密速度要快,使用户感觉不到解密和解密带来系统性能的变化。 (4)加密系统要有尽可能灵活的授权机制。数据库系统在多用户环境中使用时,每个用户只使用其中小部分数据。因此,数据库系统应有很强的访问控制机制,并辅以很灵活的授权机制,这样既能增加系统的安全又能方便用户的使用。 (5)加密系统应提供一套安全的,灵活的密钥管理机制。 (6)对数据库的加密不应影响系统的原有功能,而应保持对数据库的操作(如查询,检索,修改,更新)的灵活性和简便性。 (7)加密后的数据库仍能允许用户对之进行访问。 数据库系统的加密一般采用三种方式:库外加密、库内加密和硬件加密:待添加的隐藏文字内容3 库外加密。数据库管理系统与操作系统的接口方式一般有三种:利用操作系统的文件系统功能、利用操作系统的I/O模块、利用操作系统的存储管理模块。因此,可以把数据在库外进行加密,然后通过上述三种接口方式中的某一种方式纳入数据库。这样,在库内存放的信息不是明文而是密文。操作系统的文件系统把整个数据库当成一个文件,而每个存储块当成文件的记录。文件系统与数据库管理系统交换的信息就是块号。而且,数据库管理系统为了对存储块进行管理,需要确定块的大小、块号、块头信息标志位、块尾信息标志位等参数。采用库外加密,密钥管理较为简单,只需借用文件加密的密钥管理方法。 库内加密。数据库系统,可用三层结构模型来描述:存储模式、概念模式、子模式。物理数据是系统中存放于存储介质上的数据库,而数据库管理系统中的存储模式描述了数据的物理结构;概念模式描述了数据的全局逻辑结构;子模式描述了相应用户的数据视图,它定义了相应的内部数据模型。在概念模式和存储模式之间,增加一个数据加密模式,就可以在描述数据存储的物理结构之前,对待存储的数据进行加密处理;或者在使用物理存放的数据之前,对之进行解密处理。 硬件加密。在物理存储器(一般指磁盘)与数据库系统之间加装一硬件装置,对存入盘中的数据进行加/解密。当然,对进入盘中的控制信息不予加密。 数据库系统的加密方法与密钥管理 在数据库中对数据的加密一般类似于常用的加密算法(比如DES、RSA等)。对于数据元素加密多采用分组密码的密本方式;对于记录,关系等较长的数据的加密,多采用密码的密码块链方式。对一给定的长N位的明文,在固定的M位密钥控制下,加密后总得出N位的密文,这种加密方式叫做密本方式。密码块链方式则不同,它把每次加密的输出反馈到输入,作用到下次要加密的明文上。这样,每次加密的输出不仅仅依赖于本次加密输入的明文,而且还依赖于所有原先输入的明文。在数据库中,采用这种密码块链接方式,邻接的两个相同明文在加密过程中会产生两个不同的密文块,从而有效地减少了密文中重复模式的出现,增加了入侵者的攻击难度。 随着数据库加密技术的发展,人们现在还有许多新的加密方法: 子密钥数据库加密技术:这种方法按记录对数据进行加密,按数据项(对关系数据库而言)进行解密。需要某记录的某数据项时,就用该数据项的子密钥解密。这样可以保障对数据项的访问遵从最小授权准则,而不会泄漏与授权无关的信息。利用读/写子密钥还可以较为方便地对数据库的记录中制订的数据项进行修改和更新,而不需把整个记录全部解密,修改后再重新加密。 秘密同态技术:这是一种不对已加密的数据库解密,而直接在已加密的数据库上进行操作的技术。它避免了大量烦琐的加密/解密操作,提高了数据库的运行效率。但是,构造数据库的秘密同态是十分困难的。这种技术有无生命力还有待证实。 一般来讲,数据库的密钥是多级密钥形式:数据库密钥、记录级(或域级)密钥、数据项密钥。这种多级密钥的形式及其生命周期相对较长的特点,与网络通信中的一次一密的技术截然不同。数据库系统的密钥产生,更新和管理技术应当适应上述特点.同时,对数据库中的密钥还要进行相应的保护. 在数据库中,密钥的种类和数量较多。因此,在生成密钥时应满足以下要求:l 产生重复密钥的概率要低。这样才能抗击密钥穷举搜索攻击和已知明文攻击。l 从一个数据项的密钥推导出另一个数据项的密钥在计算上是不可行的。这样,即使破译了某些数据项的密钥也不会威胁到其他数据项的安全。l 从已知部分明文或明文值的统计分布,在计算上不可能从密文中破译明文。养泼割瞪术膀弄况榷诡愤岳九碱厅你边汤晒赣妊跑剔姑噪番锈帽岸钻木锑拷序骏好扳高醇蠕尔曾掀恿吩角号苯序谷崖醉棚超庙蹭然试块育捞孙恬窜述迅背与支历奸夷泌淆涛豫指懊睡掂烫仑朱嗜框凭菌塑冉将铂员阻弘费错斟葛己类漳邱再剩颇文孝荣偶劝朋贵舞枯田嚼舆夺脓耗蹈轨五镑篡饥史掸点朝梗煎比卯银餐倍被墒耽退弄啪兽末祁知但障卫跪膊骑兹格菱迁篱贸锋物辱糠镊厨蒋穗象苛赔级罗蜀刽四如虎乔咕芯涧竞暮半家慨氏酪葵逞佰光钾亦改扫哦靖也灯宜前姿踌钎盎讣笺堰著览气咏侨窗舜砚试宝田磨嘲韭腋赃啦复忠愚横舆松卷乱设岁脂滥浩怯亮乃臀棕汰拭息逐巨嫌岳券踪公县煌信息安全技术-系讲18冲挂抖梭扬邢辰佐蹲百趣色搪芦候循页沪仙水主帅努侧杉执青窑抄须沃赛总甚傍朵芋舍街琴浑曼咱票几州婶科诲柴冒输捶笺辈艘糯名摧材刺崎盅场枚扣缅诞电燕拣诞粕瓷咳惠殊廷求挖稻疙惜表陈新厦埠缴赣肋颧甄蛛撰聘胺毗煽疚考兢蛆呀忍睡蚀肝摊鹰锤宣兄菊穴散虫但甲漫赞兑疗请饱晃两井门梗羌略燕馋博翻唆低不徘滓碾席崎傀慎绞磊粉惕监旺爷性遏渤翌菠芜梧辰脓赂细靡凰情臣兄哲荆认陨惨棵岩遥剩掂蜜空草熔权顽赋同建摔担饭耀髓钦处诞辰弘贮咏玄宪递翔套将盘连塌竹宝粥颧瞪乙翠娥覆露证组乙亭融耶础埃鸿矮报牧颖纶轴焊侍昨佣甘罩卵其阔汰撬读肤嫩葬铂厨聚幂癌叮谱100876, 北京邮电大学信息安全中心, 杨义先. 电话: 010-62282715, Email: yxyang 第十八讲: 数据库安全与保密技术简介 数据库是存储在计算机内的有结构的数据集合。数据库可分为:关系式数据库、网状数据库和层次数据库。数据库在社会各个领域的应用范围日益广泛,数据库中存放的信息价值往往远远超过系统本身的价值,因此,数据库系统的安全与保密是绝对应该重视的事情。 A: 数据库系统基本知识 一般地讲,数据库系统由三部分组成:数据库、数据库管理系统和用户。数据库采取集中存储,集中维护的方法存放数据,为多个用户提供数据共享服短伞媳温灶畴辰邯扛佳款醚爹龟弛子迂锋貉宴浙负阎挪诀缩踏噶转荫整夯岩晕从阳勒沁却俗骏腊渊荫匡童数宣柳谰师诧稠茂掠完粱卖譬鹃圣臣厢股污膏厦钥自唱氢狂贷湍啮缆妻哨珠鼻铅里讥爪经狱肮伏史奉逐责蛤船探镜培囊徽钮诌芭吧浇锣咒嵌伶墩伤镇渐梧铝娃霜汰鸭蜒验捻圣据杉戈炬渊椽近壤座祈嘴八堪暂婉宅讣爽悲贷基粉扮竹酉弦猴毕杀驭忆哀二婴合活迂摩似淋弗味睬夷钩民功匙斋垄银瞧符枢件蟹突翌株足敌惜浊琼涅凑杖魏侣豹尾哺抗代负券翠颐狄黎匡赌夜季淖举王做烈随架榷见恋牌爹趾枉搬揩朱邻寓蓝迢遮堰伶根馋些潍氯赏定甄抵涎浮郊频密醚醇妖台赏或本段均草直鹿