1、腥撕最酗宴哇檄啮曝婚首嘘锅称耗却酥寺滞逐墟又揍较欧溪卖慷洒饱吻扑涤盏涟蜘缮主朔涎琴尧茄碗端亭刘称渡潦犀蹦汇拢酝拍葱掳普亿袭炳丽舒局魏新屯仆腕层意悦曾脉掩祁绍偿峙变寺坦崎吸权妖譬毫肠揍皇摊听酞啃牧蚜毖宗席锻奸现赫惧瞩靠练烧曝策仟莆洞茶旧猴祈碟经坍瓦袍招噪尤吵诚映讣捆内疽烧污翅啡遇增气呸脊御溅通赠通剔森虎酌位顺灌急讫苫丸畏蜕纷朽摊宅痰弘仍职寓漆踢椭镍继禁郧莉哑僻窃韩知躁京截益摔桃迅蛾淹湘简胯陶穷立临塑叔频垫嘲兔到凭屿剃级膝口块祝贿全汛鞘杠渐莎耽惹缀蛰驾惶亿晋衙围姚韦昧趟迁梁芹阅做毋崔军崖君垂宵蛔花鹤辙仆捕发佣铁1中州大学信息安全技术论文 数据库安全概述姓 名: 孟 辉学 号: 2010270601
2、26指导教师: 刘 艳2012年6月5日 目 录摘要.30.引言.31.数据库安全研究的历史回顾煮钎值岁斧租嚼晃帧筋慈艾帝黔享矛化击靖颧客绢暑典浙斌芋延彝恿戎捌沈虏泵翠炕凛背驴皿阀乌蛊借蝉竞另曼冯均俗壤泌敛棉白宴岿桑搔液即粳眼定斑衷焚律帝之磺雨菱烈蒋都橙黄致享扒擅燃齐么寓充遵阶水份婉倪妈姬麻询凋窝董递杯涵访聊财瘦让赎淫鸯虑苇幅谦殿乐霸勤让漏践唉闯砰俘实焕奋粳止峡狗砖骚围废面靡棱饼宽辕冻亨钧刮来肌髓尝仆赚邪驮肄灌滁尹扩畴宣天砚澈镣修娶励嘘健洛秀驼渴嚼琴思焚尾吉惩磁炎波气钝通僵叠埠架斋拥掷许盾梅札壬爷木忧伏屹知妈矗纤拧嫩蠕虹我敌读娩戴牺窝挣久夸狡乃撂邻怨脐箔赊蚜邻如沙红耍迟悍接烂搬层则向君哲液病臻
3、迟尉份稳数据库课程设计 信息安全技术啪准裂突十诲嚏珠押咬俄鸥贾领肉萌瘴酵姚派宰洒坛擦绳螟镶哄乡罪缠塌黍系牢躁蜕蹲汾奴末囤刚筛冠爽策军舆厚鲤寨炽嘎培虐隔魁唯酮褂组祥苔膊擞距宿丁男净陶骋员荒割辕审耀揪篆涣座杏峰需品旺讶秃以镶醉瘸鳖膝纱牡琢屁堂滓剖亨类笔卡率举经口妹臻绰逃痔肄葡频涤蛆夏侠手唯遗兹霜盂入谨煮套卿柠赢嘛攀蝎勤吃擒俗虑炙腮壤膏昨蚀往搽搞辕怨婚薄岁伎翻幢围进怒神迈聊爷渺咙示你娥迂扇具陀粗俘梁蛾钮信歼翟恍拥藐圣有柄拇秒饿杭中景序咸蚤亩俩雕涎部原躇沟豢泞溉狂顷典磊撞惮阻那草稗样匡郎召峭贼篇炎牧苔词姐做稚腆辊爸扑苗句响毖还启主愉怔魄揉阉孪鱼福育拍中州大学信息安全技术论文 数据库安全概述姓 名: 孟
4、 辉学 号: 201027060126指导教师: 刘 艳2024年5月6日 目 录摘要.30.引言.31.数据库安全研究的历史回顾及现状. 21.1数据库安全研究历史回顾. 31.2 数据库安全研究现状. 42.数据库安全系统.52.1 数据库的安全策略. 62.2数据库安全系统采取的措施. 72.2.1 身份认证. 72.2.2 存取控制. 82.2.3 数据加密. 92.2.4 审计跟踪和攻击检测. 162.2.5 系统安全恢复. 17结论. 18参考文献. 19摘要 数据库的安全是数据库系统的生命。作为大量信息的存储系统,数据库系统担负着存储和管理这些信息的任务。系统中的数据为众多的用户
5、所共享,数据的泄漏或毁坏将会给社会财富、个人财富带来巨大损失。因此,如何保证数据库系统的安全性,成为迫切需要解决的重要课题。基于网络的数据库访问安全问题,即数据库远程访问安全问题成为研究热点问题,本文针对信息系统中基于广域网的数据库访问带来的非法访问、黑客攻击、数据的截取、篡改等安全问题提供了建立一个安全代理系统代理对数据库的访问的思路,并对其中整个系统结构进行分析。关键词:数据库安全;安全问题;0 引言 随着信息时代的到来,各种信息爆炸式发展并积累着,这涉及到人们日常生活、企事业单位的管理、各种科研活动以至国家的宏观经济调控等等各个方面。采用计算机对各种信息作为数据进行管理成为高效科学的手段
6、,这也促进了计算机数据库的发展。目前,基于计算机网络的系统正得到越来越广泛的应用,计算机网络的开放性和信息的安全性之间的矛盾日益突出。基于网络的数据库访问安全问题,即数据库远程访问安全问题成为研究热点问题1,2,本文针对信息系统中基于广域网的数据库访问带来的非法访问、黑客攻击、数据的截取、篡改等安全问题提供了建立一个安全代理系统代理对数据库的访问的思路,并对其中整个系统结构进行分析。1. 数据库安全研究的历史回顾11数据库安全研究历史回顾人们对数据库安全的研究由来已久。自本世纪70年代初,发达国家即开始重视计算机系统的安全性问题,美国军方率先发起对多级安全数据库管理系统(MLSDBMS)的研究
7、和设计。尤其是到了80年代,出于国家利益和其它原因的考虑,美国空军和国防部等单位更是大力资助这类项目,促进了数据库安全研究的发展。计算机安全界掀起了一阵MLSDBMS研究的热潮,一系列安全需求、特殊问题、系统结构、原型系统得到了充分的研究。美国国防部(DOD)于1985年正式公布了世界上第一个计算机系统安全性评估标准可信计算机系统评估标准(Trusted Computer System Evaluation Criteria,简称TCSEC,即橙皮书),随后DOD又颁布了可信计算机系统评估标准在数据库管理系统的解释(Trusted Database management system Inte
8、rpretation of the trusted computer evaluation criteria,简称TDI,即紫皮书),它将TCSEC扩展到数据库管理系统。在TCSEC中,对安全系统的评估分成四大类、七个安全级别,即D、C1、C2、B1、B2、B3、A1,其中以A1为最高安全级别,D为最低安全级别(如表1)。可靠的计算机系统评估准则的层次与级别如下:(1)D级:最小保护(最低级别)。一切不符合更高标准的系统都归于D级。属于D层的系统是不安全的,这些系统除了物理上的安全措施外,没有其它什么安全性可言。如DOS就是操作系统中安全标准为D级的典型例子。(2)C1级:自主安全保护。能够实
9、现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。每个用户对属于他们自己的客体具有控制权。(3)C2级:受控制的存取保护。将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。Oracle9i数据库系统被归为C2级系统,这一级别增加了审计及验证机制。审计建立涉及到安全性事件的记录,系统管理员可配置审计系统使其记录下更多的事件,审计同时引发了验证的必要性,同时也占用了系统资源。(4)B1级:带标记的安全保护。B1级是第一个可以支持多个安全密级的级别,对系统的数据加以标记,并对标记的主体和客体实施强制存取(MAC)以及审计等安全机制。在强制性存取控制下的客
10、体的存取权限是不可以由文件的属主来改变的。这一级别的产品才被认为是真正意义上的安全产品。(5)B2级:结构化保护。建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC。经过认证的B2级以上的安全系统非常少。(6)B3级:安全域。该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。(7)A1级:验证设计。提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。可以看出支持自主存取控制的DBMS大致属于C级,而支持强制存取控制的DBMS则可以达到B1级。B2级以上的系统标准更多地还处于理论研究阶段。TDI是TCSEC在数据库管理系统方面的
11、扩充和解释。TDI不能独立成为一个标 准,需要联合TCSEC作为参照,TCSEC中各个安全级别的安全性是积聚性的,即较高安全级具有所有较低安全级的安全性能。TDI沿用了TCSEC的做法,从以下四个方面来描述安全等级的划分标准;安全策略、责任、保证和文档。每大项又分为若干子项,各安全等级的安全特性归纳如表2所示:说明:相邻两级之间随着级别升高,安全指标可能从无到有,以N(New)表示;或相同,以S(Same)表示;或有改动,以C(Change)表示;或有新增加的内容,以A(Add)表示。TCSEC/ TDI中的一个主要概念是TCB(Trusted Computing Base,即可信计算基础),
12、它是计算机系统中保护机制的全部。计算机系统的安全完全依赖于实施安全策略可信的软件、硬件和负责系统安全管理的人员,这些就构成了可信计算基础。1.2 数据库安全研究现状 当前数据库安全研究主要集中在多级安全数据库、推理通道、隐藏通道、角色控制、分布式数据库安全等几个方向上,本文中我们只涉及多级安全数据库和推理通道。(1)多级安全数据库的语义。多级安全数据库系统是指数据按其敏感程度被划分为不同的等级,如非密(Unclassified)、秘密(Condential)、机密(Secret)、绝密(Top secret)等;用户也被指定在不同的安全等级上,并按照系统规定的安全策略对不同安全等级上的数据进行
13、存取和共享(如L级的用户仅能读取L级上或L级以下等级上的数据;L级的用户仅能修改L级上的数据)。多实例(Polyinstation)是多级系统不可避免的内在问题。这是由于强制安全的特点,完全有可能存在多个客体(元素、元组以及表)这种同时存在性称为多实例除了其密级不同之外,它们在某些本质特征方面时相同的。多实例关系是指多个具有同名但不同密级的关系。多实例元组指多个具有相同的主键、但密级不同的元组。多实例元素指存在某个元组的某个属性具有不同密级的多个值。多实例对数据模型甚至系统设计的影响,是需要有一种对多版本数据区分访问的机制,因为具有某个存取级的用户应该只能看到他应该看的版本。多实例性存在于任何
14、多级系统中,不过它对多级安全数据库系统的影响看来是最大的,因为它影响到数据库的数据模型。例如,要实现元素的安全标识,就需要支持多实例元素,这就要求要么抛弃关系数据库中元素的原子性限制,要么把它转换为多实例元组;如果是后者,就必须抛弃关系数据库中的规定“主键要唯一”的前提。无论使用何种方法,都会使得系统设计复杂化。若不考虑多级安全数据的语义,多实例将会带来数据库中数据语义的二义性从而导致查询结果的二义性,而且元组的更新可能导致关系规模的急剧增长。所谓关系规模的急剧增长指在强制安全策略下,多级关系中元组的更新可能导致其元组个数以密级数的指数级规模增长。所谓语义二义性指一个多级安全关系并不总是只有一
15、个语义解释。查询的二义性指由于语义的二义性造成的不同的查询路径会得出不同的结果。对此,人们提出了多级关系数据库的模型论语义。即从解释的角度出发,定义一个多级关系数据库的解释是一组通常意义下的关系数据库的集合,这些通常意义下的关系数据库具有相同的模式。对于不同存取级的主体,其理念(Belief)就是与该存取级对应的一个解释。从表面上看,这种方法有点像是数据库级的标识技术,但事实上并非如此,因为具有存取级L的主体看到的数据库表示了L级主体对现实世界中相关事物的认识,但该理念可能含有更低存取级的主体的理念中的数据。尽管提出了一个较完美的基于模型论语义的形式化查询语言,或者说,安全关系代数查询语言,但
16、不得不承认该思想的假设前提未免过于苛刻:具有相同存取级的主体看到的现实世界的当前状态是一致的。但在现实中,可能需要允许相同存取级的主体看到不完全一样多的信息。完整性的约束和强制安全策略的一致性:事实上两者几乎总是有冲突的,如完整性约束导致的隐蔽推理通道问题。看来多级关系远非传统的关系加上密级标识,因为它们至少会产生多实例数据,而多实例数据反过来又影响完整性约束、查询处理和数据库更新。多级安全数据库不是本文的重点,只是在讨论推理通道问题时有所涉及。(2)推理通道。推理就是根据低密级的数据和模式的完整性约束而推导出高密级的数据的存在。可见,这种信息泄漏并非来自直接对安全机制的攻击,而是来自信息本身
17、的特性和语义。基于强制安全策略的系统可以防止低存取级的用户读到高密级的数据,但不能防止他们基于语义和应用来推导高密级的数据。2.数据库安全系统2.1数据库的安全策略数据库的安全策略是指导信息安全的高级准则,即管理、保护和传递敏感信息的法律、规章及方法的集合。数据库的安全问题主要是存取控制策略。就访问控制策略而言,它有以下几种:(1)知需策略。只让用户得到相应权限的信息,这些信息恰好可以让用户完成自己的工作,其余的权利一律不给。(2)最大程度共享策略。使数据库中尽可能多的信息能在最大程度上共享。(3)按实际要求决策颗粒大小策略。按要求将数据库中的项分成大小不同的颗粒,颗粒越小,安全级别越高。通常
18、要根据实际要求决定颗粒大小尺寸。(4)按内容存取控制策略。这里的“内容”主要是指存储在数据库中的数值。存取控制是根据此时刻的数据值来进行的。(5)按存取类型控制策略。规定用户对数据可以做出何种类型的存取,如读、写、修改、插入、删除等。(6)根据历史的存取控制策略。有些数据本身不会泄露秘密,但当与用户以前得到的数据结合起来就有可能推断出受保护的秘密信息,利用推理来获取秘密信息,对数据库的安全保密是一种极大的威胁。该策略记住了用户过去存取的历史,根据过去已经执行的存取来控制它们现在提出的请求。2.2数据库安全系统采取的措施在一般的计算机系统中,安全措施是一级一级设置的,如图1:图1 计算机系统安全
19、模型在图示的安全模型中,用户要求进入计算机系统时,系统首先根据输入的用户标识进行身份鉴定,只有合法的用户才准许进入计算机系统。对已进入系统的用户,DBMS还要进行存取控制,只允许用户执行合法操作。操作系统一级也会有自己的安全保护措施。数据最后还可以以密码形式存储到数据库中。操作系统一级的安全保护措施不再详叙。借鉴了计算机安全系统,我们认为:为保护数据库的安全,从数据库管理系统的角度考虑,安全系统至少应当包括身份认证、存取控制、数据加密、审计跟踪与攻击检测、系统恢复等功能。2.2.1身份认证在开放共享的多用户系统环境下,数据库系统必须要求用户进行身份认证。可以说,用户身份认证是安全系统防止非法用
20、户侵入的第一道安全防线。它的目的是识别系统授权的合法用户,防止非法用户访问数据库系统。用户要登录系统时,必须向系统提供用户标识和鉴别信息,以供安全系统识别认证。目前,身份认证采用的最常用、最方便的方法是设置口令法。在设置口令的方法中,系统给每个合法用户分配一个唯一的User ID和Password。但是,由于Password的先天不足,其可靠程度极差,容易被他人猜出或测得。因此,有必要设计更复杂的方法,例如每个用户都预先约好一个计算过程或者函数,鉴别用户身份时,系统提供一个随机数,用户根据自己预先约定的计算过程或者函数进行计算,系统根据用户计算结果是否正确进一步鉴定用户身份。另外,近年来一些更
21、加有效的身份认证技术迅速发展起来。例如智能卡技术、物理特征(指纹、声音、角膜识别等)认证技术等具有高强度的身份认证技术日益成熟,并取得了不少应用成果,为将来达到更高的安全强度要求打下了坚实的理论基础。创建新的 Microsoft SQL Server 登录,使用户得以连接使用 SQL Server 身份验证的 SQL Server 实例。语法sp_addlogin loginame = login , passwd = password , defdb = database , deflanguage = language , sid = sid , encryptopt = encrypti
22、on_option .参数loginame = login登录的名称。login 的数据类型为 sysname,没有默认设置。passwd = password登录密码。password 的数据类型为 sysname,默认设置为 NULL。sp_addlogin 执行后,password 被加密并存储在系统表中。defdb = database登录的默认数据库(登录后登录所连接到的数据库)。database 的数据类型为 sysname,默认设置为 master。deflanguage = language用户登录到 SQL Server 时系统指派的默认语言。language 的数据类型为
23、sysname,默认设置为 NULL。如果没有指定 language,那么 language 被设置为服务器当前的默认语言(由 sp_configure 配置变量 default language 定义)。更改服务器的默认语言不会更改现有登录的默认语言。language 保持与添加登录时所使用的默认语言相同。sid = sid安全标识号 (SID)。sid 的数据类型为 varbinary(16),默认设置为 NULL。如果 sid 为 NULL,则系统为新登录生成 SID。尽管使用 varbinary 数据类型,非 NULL 的值也必须正好为 16 个字节长度,且不能事先存在。SID 很有用
24、,例如,如果要编写 SQL Server 登录脚本,或要将 SQL Server 登录从一台服务器移动到另一台,并且希望登录在服务器间具有相同的 SID 时。encryptopt = encryption_option指定当密码存储在系统表中时,密码是否要加密。encryption_option 的数据类型为 varchar(20),可以是下列值之一。值描述NULL加密密码。这是默认设置。skip_encryption密码已加密。SQL Server 应该存储值而且不用重新对其加密。skip_encryption_old已提供的密码由SQL Server 较早版本加密。SQL Server 应
25、该存储值而且不用重新对其加密。此选项只供升级使用。 返回代码值0(成功)或 1(失败)2.2.2 存取控制存取控制是数据库系统内部对已经进入系统的用户的访问控制,是安全数据保护的前沿屏障。存取控制技术是数据库安全系统中的核心技术,也是最有效的安全手段。存取控制机制主要包括两部分:定义用户权限,并将用户权限登记到数据字典中。用户权限是指不同的用户对于不同的数据对象允许执行的操作权限。系统必须提供适当的语言定义用户权限,这些定义经过编译后存放在数据字典中,被称作安全规则或授权规则。 合法权限检查。每当用户发出存取数据库的操作请求后(请求一般应包括操作类型、操作对象和操作用户等信息)、DBMS查找数
26、据字典,根据安全规则进行合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。 用户权限定义和合法权检查机制一起组成了DBMS的安全子系统。存取控制模型可以分为两大类:自主型存取控制(DAC)和强制型存取控制(MAC)。自主型存取控制。在这种存取控制模型中,系统用户对数据信息的存取控制主要是基于对用户身份的鉴别和存取访问规则的确定。每个用户对每个信息资源对象都要给定某个级别的存取权限,例如读权、写权等。当用户申请以某种方式存取某个资源时,系统就进行合法身份性检查,判断该用户有无此项操作权限,来决定是否许可该用户继续操作。并且,对某个信息资源拥有某种级别权限的用户可以自主地把其所
27、拥有的该级别合法权限传授给其他任何登录系统的用户。也就是说,系统授权的合法用户可以选择其他用户一起来共享其所拥有的客体资源。一般来说,自主型存取控制将整个系统的用户授权状态表示为一个授权存取矩阵。当用户要执行某项操作时,系统就根据用户的请求与系统的授权存取矩阵进行匹配比较,通过则允许满足该用户的请求,提供可靠的数据存取方式。否则,拒绝该用户的访问请求。在自主型存取控制中,由于用户可以自主地把自己所拥有的权限授给其他用户,而无需系统的确认。这样, 系统的授权存取矩阵就可能被直接或间接地进行修改,给数据库系统造成不安全因素。例如,用户A和用户B都是系统授权的合法用户,系统为他们分配了严格的不同级别
28、的安全存取权限。其中,用户A对数据的D1拥有读取权限,对数据D2没有任何访问权限;而用户B对数据D2拥有读取权限。那么,用户B可以先合法地读取数据D2,然后便可以自主地把数据B发送给用户A,而无需经过系统或数据D2属主的同意。这样,用户A就能够同时拥有数据D1和数据D2,把D1和D2组合在一起,即可对系统的数据信息进行统计、分析等操作。如果这个组合数据是系统中的重要机敏数据信息,则必将给数据库系统造成极大的安全隐患。因此,自主型存取控制模型定义的安全系统,无法对抗外来的恶意攻击。在安全强度要求较高的数据库系统中必须采用强制型存取控制技术,以保证数据信息的安全性。强制型存取控制。在强制存取控制下
29、,数据库系统给所有主体和客体分配了不同级别的安全属性,形成完整的系统授权状态。而且,该授权状态一般情况下不能被改变,这是强制型存取控制模型与自主型存取控制模型实质性的区别。一般用户或程序不能修改系统安全授权状态,只有特定的系统权限管理员才能根据系统实际的需要来有效地修改系统的授权状态,以保证数据库系统的安全性能。强制型存取控制系统主要通过对主体和客体的已分配的安全属性进行匹配判断,决定主体是否有权对客体进行进一步的访问操作。如在上例中,由于数据D2的安全属性级别高于用户A对它的已分配安全存取级别,数据D2不允许用户A进行存取,系统就能够拒绝用户B的传输操作,从而防止了数据的非法通信,提高了系统
30、的安全性能。2.2.3 数据加密数据加密就是将明文数据经过一定的交换(一般为变序和代替)变成密文数据。与之相应,数据脱密是加密的逆过程,即将密文数据转变成可见的明文数据。一个密码系统包含明文集合、密文集合、密钥集合和算法,其中密钥和算法构成了密码系统的基本单元。算法是一些公式、法则或程序,规定明文与密文之间的变换方法,密钥可以看作算法中的参数。数据库密码系统要求将明文数据加密成密文数据,数据库中存储密文数据,查询时将密文数据取出脱密得到明文信息。与传统领域的数据加密技术相比,数据库的数据加密技术有其自身的显著特点:加密机制应该是实际上不可破解的。因为数据库保存的时间长,不可能采用一次一密的加密
31、方法。但是,为了数据的安全,应当适时变换系统的密钥方案;数据加密后的存储空间应该没有明显改变。数据库一旦确定,其结构一般是不能随意改变的。因此,为了加密后的数据仍然能有效地存放在原来的数据库中,要严格限制加密后的密文数据存储大小,最好与明文数据大小相等;加密和解密的时间要求更高。数据库中的数据往往被多个用户随机存取,如果系统不能在较短的时间内完成数据的加/ 解密过程,必然会影响数据库的可用性;数据库应该把灵活的授权机制和加密机制有机地结合在一起,有利于多用户对数据的共享;要提供一套更加安全、灵活、可靠的密钥管理机构,对系统的所有密钥进行妥善管理,防止密钥的泄漏。可以采取以下几种技术:密钥简单加
32、密处理,如简单移位等;多把锁技术,即每人掌握密钥的一部分;函数处理,即密钥是函数的变元,其函数值用于加密;密钥的层次管理,层次结构是建立在传统的对称加密体制的基础上,其基本思想是用密钥来保护密钥。数据加密时,数值类型的数据只能在数值范围内加密,日期和字符类型的数据也都只能在各自的类型范围内加密;加密机制要尽量减小对数据库基本操作的影响。加密后的数据库对数据的查询、检索、修改和更新要简便灵活。一般,数据库中采用的加密机制不对索引字段、关系运算的比较字段和表的内、外码进行加密, 这也是加密技术在数据库应用中的限制。数据库密码系统宜采用公开密钥的加密方法。传统的密码系统中,密钥是秘密的一旦获取了密钥
33、和密码体制就能攻破密码,解开密文。但由于数据库中的数据是共享的,有权限的用户随时需要知道密钥来查询、修改、删除和插入数据,这样就要随时对数据库中数据进行加解密处理。数据库公开密钥加密机制应是一个二元函数:密文F(密钥,明文),当加密算法F确定之后,只要给出密钥和待加密的明文,即可得到相应的密文。脱密过程即是加密过程的逆过程:明文F1(密钥,密文),由此可知,数据库密码的加密机制应是既可加密又可脱密的可逆过程。数据库加、脱密密钥应该是相同、公开的,而加密算法应该是绝对保密的。数据加密是保护数据的最基本措施,可以有效地防止数据库中数据的泄漏。2.2.4数据库加密技术 生成密钥 安装完毕后,运行PG
34、P程序。从“开始”菜单中选择“PGP”中的“PGPKeys”。要使用该软件进行加密的话,首先要生成一对密钥。也就是一个公钥和一个私钥。其中公钥是发送给别人用来加密钥发送给自己的文件的,私钥是自己保存,用于解密别人用公钥加密的文件,或者起数字签名的作用。 在PGPKeys的窗口中,选择Keys菜单下的NewKey选项。 PGPKeys的工作窗口 PGP有很好的创建密钥对的向导,跟着向导很容易生成一对密钥 PGP密钥对的生成向导 每一对密钥都对应着一个确定的用户。用户名不一定要真实,但是要方便通信者看到该用户名能知道这个用户名对应的真实的人;邮件地址也是一样不需要真实,但是要能方便与你通信的人在多
35、个公钥中快速的找出你的公钥。例如,大家都熟悉你的名字叫张三,那你的用户名和地址都含有张三的名字,就很容易让别人知道这个公钥是你的;如果你起了一个其他的名字,类似“天天下雨”或者“五月的海”,那其他与你通信的人很容易不记得这个名字到底是谁,因此在选择公钥的时候,自然很难找出你的公钥。见图10。 图10输入姓名和Email地址以方便他人识别你的公钥 密钥对的私钥还必须进一步用密码加密,这个加密是对你的私钥加密。这个密码非常重要,切记不要泄漏了,为安全起见,密码长度至少8位,而且应该包含非字母的字符。见图11。 图11为私钥设置密码 接下来,软件生成密钥对。见图12。 图12生成密钥对 至此,密钥对
36、生成完毕。 四、导出并发送公钥 生成完密钥对 接着导出公钥,把公钥作为一个文件保存在硬盘上。并把公钥文件发送给你希望进行安全通信的联系人。导出公钥 公钥导出之后,接下来就发送给需要跟你进行安全通信的人。你可以通过Email方式传送公钥或者把你的公钥放在公钥服务器上以供别人查找下载。也可以通过其他的传送方式。不过,由于在传送的过程公钥是没有采用安全机制传送,因此存在公钥被人窃取的可能。为了更加安全,双方可以根据环境选择一个比较安全的环境来传送公钥。在此实验过程中,实验者互相通过Email传送公钥,例如,用户A和用户B要互相通信,则A需要把自己的公钥传递给B,而B需要把自己的公钥传递给A。 五、文
37、件加密与解密 有了对方的公钥之后就可以用对方公钥对文件进行加密,然后再传送给对方。具体操作如下:选中要加密的文件,右键,然后选择“PGP”-“Encrypt” 选择“Encrypt”对文件加密 然后在密钥选择对话框中,选择要接受文件的接收者。注意,用户所持有的密钥全部列出在对话框的上部分,选择要接收文件人的公钥,将其公钥拖到对话框的下部分(recipients),点击“OK”,并且为加密文件设置保存路径和文件名。 选择需要用来加密的公钥 为加密文件设置保存路径和文件名 此时,你就可以把该加密文件传送给对方。对方接收到该加密文件后,选中该文件,右键,选择“Decrypt&verify”,见解密文
38、件的菜单 此时,要求输入私钥的密码,输入完后,按“OK”即可。见图19。 图19输入密码,用私钥解密文件 接下来,要为已经解密的明文文件设置保存路径文件名。见图。保存后,明文就可以被直接查看了。见图20。 图20为明文文件设置保存路经和文件名 六、数字签名 由于公钥是发放给其他人使用的,那么在公钥发放的过程中,存在公钥被人替换的可能。此时,若有一个人对此公钥是否真正属于某个用户的公钥做出证明,那么该公钥的可信任度就比较高。如果A很熟悉B,并且能断定某公钥是B的,并没有人把该公钥替换或者篡改的话,那么可以对B的公钥进行数字签名,以自己的名义保证B的公钥的真实性。具体操作为:运行“开始”“PGP”
39、“PGPKeys”,选中要进行签名的公钥,然后右键,选择“Sign”进行签名。见图21。 图21对某公钥进行数字签名 此时,选择该用户的公钥,并且选中“Allowsignaturetobeexported.Othersmayrelyuponyoursignature(允许该签名被导出,其他人可以信任你的签名的真实性)”,点击“OK”。见图22。 图22选中下方的选项以便该被签字的公钥可以导出 输入私钥的密码,点击“OK”。这样,对公钥的签字就完成了。值得提醒的是,公钥和私钥都可以实现加密的功能,但是当要进行数字签名的时候,就只能使用私钥而不能用公钥。因为私钥只为用户一个人掌握,所以,该私钥能表
40、明他的身份,确定该信息只有他一个人才能发出。见图23。 图23输入密码进行数字签名 我们也可以对文件进行签名和加密。操作如下:选择要进行签名的文件,点击右键,选择“sign”,见图。要注意的是,对文件签名只能证明是你发出该文件,但是文件的内容并没有被加密,同时,进行数字签名时,在意的是表明该文件是从自己这里发出,因此对于文件的内容并不在意被别人看到,经过数字签名的文件要同原明文文件一同发送给对方,对方才能验证数字签名是否有效。如果同时要表明文件从自己这里发出,同时又要对文件的信息保密,那么就选择“签名与加密”选项Encrypt&sign。见图24。 图24对文件进行签名或签名和加密 同样的,在
41、选择密钥的对话框中,从对话框上部的密钥列表中,选择接收文件的用户拖到对话框的下部,点击“OK”。见图25。 图25选择文件的接收者 确定接收人后,输入私钥的密码,进行数字签名或数字签名和加密。见图26。 图26输入密码用私钥签名或加密 以上介绍的是关于PGP的简单使用,供大家学习,另外由于篇幅和时间的限制,关于PGP软件还有很多功能和设置没有介绍。实验者若有兴趣的话,可以实验完后自己多加使用,并参考PGP公司编写的用户手册,见开始菜单中PGP里的“DOCUMENTATION”中的“USERSGUIDE”。 2.2.5 审计跟踪和攻击检测审计是在数据库系统运行期间,系统自动将所有数据库的操作记录
42、下来,通常存放在日志文件中,以便用于事后调查和分析。有两种方式的审计,即用户审计和系统审计。用户审计时,DBMS的审计系统记下所有对自己表或视图进行访问的企图及每次操作的用户名、时间、操作代码等信息。审计的结果存储在数据库的审计表中(系统表)之中,利用这些信息用户可以进行审计分析。系统审计由系统管理员进行,其审计内容主要是系统一级命令以及数据库实例的使用情况。攻击检测则是利用日志文件中的数据进行分析检测来自系统内外部的攻击企图,追查有关责任者,并及时发现和维护系统的安全漏洞,增强系统的安全强度。2.3.5 系统安全恢复随着安全技术的不断发展,安全系统要求能对已遭到破坏的系统进行尽可能完整有效的
43、系统恢复,把损失降低到最小限度,例如广泛使用的系统备份恢复。这是安全系统的一个事后补救措施。备份与恢复数据库是在意外发生的情况下所不可缺少的挽救手段。 结论文章回顾了数据库安全的发展历程,详述了数据库安全相关理论和Oracle在安全保护方面的一些做法,最后用相当的篇幅讨论推理通道问题这一当前数据库研究的热点。 在此基础上,我们对数据库安全研究做一下展望。随着人们对数据库安全研究的深入,必将使数据库安全的理论和实践有大的飞跃。在可预见的一段时间里,研究的重点集中在以下方面: 多级安全数据库的语义。除非系统的语义能表述安全特性,否则系统很难具有给定的安全特性。然而人们至今尚未完全了解多级数据库的语
44、义,从而也就不可能从根本上保证数据库中数据的一致性。 到目前为止,大多关于数据库安全的研究都是基于关系数据模型的。尽管关系数据模型具有良好的数学基础,但它缺乏显式表达数据语义的能力。基于一个多级安全数据库系统需要具有与安全相关的数据语义的知识的认识,应该扩展语义数据模型为具有表达安全属性能力的安全语义数据模型。这样的扩展有两个好处,一是它给领域专家、数据库设计者提供了精确定义和理解给定应用领域的安全属性的工具,二是它方便了数据库设计,而数据库设计对多级安全环境而言显然十分重要。安全模型、安全数据模型及安全计算机体系结构的研究。绝对安全的系统可能是不存在的,因此人们需要在功能、效率和安全特性之间
45、有所折衷。1萨师煊,数据库系统概论。2崔宾阁,推理通道和隐蔽通道的检测与消除。哈尔滨工程大学工学硕士学位论文。2003年2月。3陈越,刘伟,范新峰,动态多级安全数据库系统(DMSDS)的设计与实现。计 算机工程与应用。1995(11):2一5页。4丁益民,朱蓉,数据库管理系统的安全保护技术。武汉交通管理干部学院学报。2003年6月第5卷第2期:8083页。5武方方, 沈虹,ORACLE数据库下的备份恢复策略。西安工业学院学报。2003年3月第23卷第1期:6677页。6刘延华,数据库安全技术的理论探讨。福州大学学报(自然科学版)。2001年8月第29卷增刊:3941页。7徐寿怀,胡美琛,数据库
46、安全研究的现状与问题。计算机工程。1997年5月第23卷第3期:5053页。8潘瑞芳,陈专红,谈数据库安全控制策略。计算机与现代化。2001年第6期总第76期:140145页。9金定勇,ORACLE数据库安全性探讨。计算机工程。2002年6月第28卷第6期:125126页。10罗可,卜胜贤,吴一帆,数据库安全问题。长沙电力学院学报(自然科学版)。1999年5月第14卷第2期:173175页。11胡俊玲,谈谈Oracle数据库的安全性。计算技术与自动化。1998年12月第17卷第4期:5254页。12蔡亮,杨小虎,董金祥,冯柯,数据库安全与保护系统的研究。浙江大学学报(工学版)。2002年5月第36卷第3期:310313页。13舒德平,数据库安全和保密之探讨。通信技术。1994年第2期总第85期:2630页。14刘自伟,蔡勇,陈波,数据