第七章数据库安全与加密.ppt_第1页
第七章数据库安全与加密.ppt_第2页
第七章数据库安全与加密.ppt_第3页
第七章数据库安全与加密.ppt_第4页
第七章数据库安全与加密.ppt_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

第七章数据库的安全与加密,71数据库安全概述计算机系统的数据形式有两种:一种是文件形式;另一种是数据库形式。文件组织形式的数据缺乏数据共享性,而数据库组织形式的数据具有共享性、独立性、一致性、完整性和可访问性,因而得到广泛应用,现已成为计算机系统存储数据的主要形式。因为操作系统对数据库文件没有特殊的安全保护措施,数据库的安全必须通过数据库管理系统来实现。因此本节先讨论数据库安全的重要性和数据库面临的安全威胁,然后讨论数据库的安全需求,最后介绍其安全技术。,1数据库安全的重要性数据库系统也是一种系统软件,它和其它软件一样需要保护。数据库的安全之所以重要,主要原因如下:1)在数据库中存放大量的数据,这些数据有许多用户所共享,而各用户的职责和权限又有所不同。因此必须限制数据库用户,使他们得到的只是他们所必需的、与他们的权力相适应的数据,不是整个数据库的数据。不允许用户访问非授权的数据,并严格控制用户修改数据库的数据。2)在数据库中,由于数据冗余度小,数据库一旦被修改,原来的数据就被破坏了,而且几乎没有同等的数据来帮助恢复原来的值。因此,必须有一套数据库恢复技术,保证在系统或程序出现故障后,帮助恢复数据库。3)由于数据库是联机工作的,可以支持多用户同时进行存取,因此必须采取措施防止由此引起的破坏数据库完整性的问题和面临的安全威胁。4)数据库涉及其他应用软件,因而数据库的安全还涉及到应用软件的安全与数据的安全。,2数据库面临的威胁数据库面临着严重的安全威胁,具体情况如图7.1所示。对数据库的安全的威胁主要来自于以下因素:1)数据输入或处理中的错误。例如,准备输入的数据在输入前已被修改,有的机密数据在输入到计算机之前已被公开,在数据处理操作中的误操作等,均会使数据出错。2)硬件故障引起的信息破坏或丢失。例如,软盘机或硬盘机故障造成存储的信息丢失或被破坏。3)软件保护功能失效造成信息泄漏。例如,操作系统设计上的缺陷,缺少存取控制机制或破坏了存取控制机制,造成信息泄漏。,4)非授权用户的非法存取或篡改数据。例如,数据库管理人员对数据的使用权限不进行严格的管理,对哪些用户有数据访问权、哪些用户有数据修改更新权等缺乏严格的检查控制措施;对用户在计算机上的活动没有进行监督检查,只是非授权用户非法存取,合法用户对数据进行篡改。5)授权者制定不正确、不安全的防护策略。6)操作者复制和泄露机密、敏感数据资料。7)系统设计者回避安全功能,安装不安全的系统。8)应用程序员设计、安装了“特洛伊木马”软件。9)终端放置在不安全的环境中被窃听。10)终端使用者隐瞒自己的身份,进行不正确的输入。11)病毒引入系统,破坏或修改了数据库软件。数据库面对各方面的严重威胁,要保证其安全、可靠,必须采用一定的安全策略和一定的安全技术措施,才能保证数据库中的信息不被泄漏、不被破坏、不被删除或修改。,硬件失效造软件保护功能失用户终端未经授权的非法存取成信息破坏效造成信息泄漏(偷窃、套改、删除)应用程序员设计了特洛伊木马软件数据库计算机用户终端终端使用者隐瞒身份授权者制定了不正确设计者回避安全功能,进行不正确的输入的数据库安全策略病毒侵入系统,安装不安全的系统修改或破坏数据库软件用户终端终端放置在不安全环境中使用信息被窃听图7.1数据安全威胁图,3数据库的安全需求面对数据库的安全威胁,必须采取有效的措施,以满足其安全需求。数据的安全可分为逻辑安全与物理安全两类。数据的物理安全是指在不改变应用软件的前提下,改变物理存储特征。例如,存储块的大小、存储方法、设备能力等;数据的逻辑安全是指在不改变现存程序的前提下,支持新的或对现存数据的新应用的能力。他对数据库系统的一个重要要求是其应用程序的数据独立性,这种独立性包括了逻辑数据的独立性和物理数据独立性。1)数据库的安全性要求数据库的安全性要求如表7.1所示。,表7.1数据库安全要求安全性问题注释物理上的数据完整性预防数据库数据物理方面的问题,如掉电,以及当被灾祸破坏后能重构数据逻辑上的完整性保持数据的结构,例如,一个字段的值的修改不至于影响其它字段元素的完整性包含在每个元素中的数据是正确的可审计性能够跟踪到谁访问过或修改过数据库的元素访问控制允许用户只访问被批准的数据,即限制不同的用户有不同的访问模式,如读或写用户认证确保每个用户被正确的识别,既便于跟踪审计,也为了限制对特定的数据的访问可获用性用户一般可以访问数据库以及所有被批准访问的数据,(1)数据库完整性它是数据库系统(DBMS)、操作系统(OS)和计算机管理这三方面应负的责任。数据库管理程序必须进行访问控制,确保只有授权用户才能进行数据更新或删除,另外还必须防范非人为的外力灾难。从操作系统和计算机管理者看,必须周期性的对数据库进行备份,以预防由于灾难造成的损失。数据完整性包括物理上和逻辑上的两种完整性。(2)元素的完整性它是指数据库元素的正确性和准确性。DBMS要能帮助用户发现输入时的错误,在输入错误数据后能及时纠正它们。DBMS用三种方式维护数据库中每个数据元素的完整性。字段检查:这种检查可防止输入数据时可能出现的错误。访问控制:通过访问控制来保护数据库的完整性、真实性和一致性。更改日志:更改日志是数据库每次改变的记录文件,它包括记录原来的值和修改后的值的文件。数据库管理员可以根据日志随时撤销任何错误的和非法的修改。,(3)可审计性对数据库系统,数据的使用、审计和记录是同时进行的。审计的主要任务是对应用程序或用户使用数据库资源(包括数据)的情况进行记录和审查,一旦出现问题,审计人员对审计的事件记录进行分析,查出原因。(4)访问控制访问控制就是限制、检查哪些用户能够访问那些数据对象。同一个数据对象的不同的访问方式如读、写等,对不同的用户也是不同的。这种技术需要的数据对象分类,对用户分级。不同的用户按照不同的级别通过不同的方式来访问不同的数据对象。访问控制又可以分为自主访问控制和强制访问控制。(5)用户认证DBMS应严格进行用户身份识别和认证。DBMS可能要求用户输入口令和时间日期,以作检查。(6)可获用性数据库中的数据并不是任何时候都可以访问的。例如,一个用户在更新几个字段时,其他的用户对这几个字段的访问请求便被禁止。当更新完毕时,其他用户对这些字段的访问即可获得。,2)数据库的安全需求为了维护数据库的安全,客观上需要一个安全的操作系统和一个运行可靠的数据库管理系统。(1)对操作系统的安全需求操作系统应能防止对数据库管理系统(DBMS)和用户程序的非法修改。操作系统应能保护存储器中的数据不被非法修改。操作系统应能保护数据库,使其中的数据安全、完整。操作系统应能认证数据库的合法用户,当非法用户进入时能及时报警。操作系统应能正确地进行物理I/O操作。,(2)对数据库管理系统的要求数据库的安全需要一个可供运行的可靠的数据库管理系统。要求数据库管理系统做到:有正确的编译功能,能正确地进行规定的操作。能提供正确的系统变量值,能正确地执行命令文件。能保证数据的安全性和完整性,能抵御物理破坏(例如,因突然断电或其他灾害造成的损失),能维护数据库逻辑的完整性,能恢复数据库中的内容。对具有逻辑完整性的数据库某一元素的修改将不会影响其它数据。能进行用户识别和访问控制,即能进行用户身份的识别与验证,限制用户只能访问其所被授权的数据,对不同的用户限制在不同的状态下进行访问。可用性。他意味着用户能顺利地访问数据库中授权的数据和一般数据,不会出现拒绝服务的情况,并能进行安全通信。,7.2可信计算机系统测评标准关于数据库安全,美国从20世纪70年代就开始从事安全数据库管理系统的理论研究,到了80年代,为适应计算机安全技术飞速发展的需要,美国于1983年发布了“可信计算机分级系统评估标准”(TrustedComputerSystemEvaluationCriteria,简称TCSEC,即橙皮书),1985年发布了其修订版。制定这个标准的目的主要有:1、提供一种标准,使用户可以对其计算机系统内敏感信息安全操作的可信程度做评估。2、给计算机行业的制造商提供一种可循的指导原则,使其产品能够更好地满足敏感应用行业的安全需求。,1991年4月美国NCSC(国家计算机安全中心)颁布了可信计算机系统评估标准关于可信数据库系统的解释(TrustedDatabaseInterpretation,简写为TDI,又称为紫皮书),将TCSEC扩展到数据库管理系统。TDI中定义了数据库管理系统的设计与实现中需满足和用于进行安全性级别评估的标准。90年代开始,由于Internet技术广泛的应用,黑客活动日益猖獗,信息系统安全提出了许多新的问题,信息系统安全领域呼吁修改DoD585的桔皮书,美国颁新的联邦评测标准FC)草案,用以代替80年代颁布的桔皮书。在上述标准的基础上,美国加拿大和欧洲联合研制CC(信息技术安全评测公共标准),并于1994年颁布0.9版,于1996年颁布了1.0版在欧洲,英国荷兰和法国带头,欧洲开始联合研制欧洲共同的安全评测标准,并于1991年颁布ITSEC(信息技术安全标准)1993年,加拿大颁布CTCPEC(加拿大可信计算机产品评测标准),以下着重介绍TDI/TCSEC标准的基本内容。TDI与TCSEC一样,从以下四个方面来描述安全性级别划分的指标:安全策略、责任、保证和文档。每个方面又细分为若干项。这些指标的具体内容如下:R1安全策略(SecurityPolicy)R1.1自主存取控制(DiscretionaryAccessControl,简称DAC)R1.2客体重用(ObjectReuse)R1.3标记(Labels)R1.3.1标记完整性(LabelIntegrity)R1.3.2标记信息的扩散(LabeledInformationExploration)R1.3.3主体敏感度标记(SubjectSensitivityLabels)R1.3.4设备标记(DeviceLabels)R1.4强制存取控制(MandatoryAccessControl,简称MAC)R2责任(Accountability)R2.1标识与鉴别(Identification&Authentication)R2.1.1可信路径(TrustedPath)R2.2审计(Audit),R3保证(Assurance)R3.1操作保证(OperationAssurance)R3.1.1系统体系结构(SystemArchitecture)R3.1.2系统完整性(SystemIntegrity)R3.1.3隐蔽信道分析(CovertChannelAnalysis)R3.1.4可信设施管理(TrustedFacilityManagement)R3.1.5可信恢复(TrustedRecovery)R3.2生命周期保证(LifeCycleAssurance)R3.2.1安全测试(SecurityTesting)R3.2.2设计规范和验证(DesignSpecification&Verification)R3.2.3配置管理(ConfigurationManagement)R3.2.4可信分配(TrustedDistribution)R4文档(Documentation)R4.1安全特性用户指南(SecurityFeaturesUsersGuide)R4.2可信设施手册(TrustedFacilityManual)R4.3测试文档(TestDocumentation)R4.4设计文档(DesignDocumentation),根据计算机系统对上述各项指标的支持情况,TCSEC(TDI)将系统划分为四组(division)七个等级,依次是D;C(C1,C2);B(B1,B2,B3);A(A1),按系统可靠或可信程度逐渐增高,如下表所示:表7.3TCES/TDI安全级别划分,在TCSEC中建立的安全级别之间具有一种偏序向下兼容的关系,即较高安全级别提供的安全保护要包含较低级别的所有保护要求,同时提供更多或更完善的保护能力。下面对各个安全等级简要介绍。D级D级是最低级别。保留D级的目的是为了将一切不符合更高标准的系统归于D组。DOS就是操作系统中安全标准为D的典型例子。它具有操作系统的基本功能,如文件系统,进程调度等。但在安全性方面几乎没有专门的机制来保障。C1级只提供非常初级的自主安全保护。能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。现有的商业系统往往稍作改进即可满足要求。C2级实际是安全产品的最低档次,提供受控的存取保护,即将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。很多商业产品已得到该级别的认证。,从根本上来说,C2级安全性需要满足以下条件;每个用户都要有惟一的loginID,以防止捕获和偷听,用户在访问数据库前必须登录。提供对所有用户或进程所执行的每一次访问或修改数据的操作进行审计的方法。对于所有对象的默认访问权限为禁止访问由对象的所有者依据自己的判断进行访问授权用户对自己的数据访问和修改操作负责保护内存中的数据不会受到未经授权的访问B1级标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制(MAC)以及审计等安全机制。B1级能够较好地满足大型企业或一般政府部门对于数据的安全需求,这一级别的产品才是真正意义的安全产品。B2级结构化保护。建立形式化的安全策略模型并对系统内的所有主体和客体实施DAC和MAC。一般情况下,经过认证的、B2级以上的安全系统非常稀少。,B3级安全级该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。A1级验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。B2级别以上的系统安全标准更多地还处于理论研究阶段,产品化以至商品化地程度不高,其应用也限于一些特殊部门,如军队等。但美国正在大力发展安全产品,试图将目前仅限于少数领域的B2级安全级别或更高安全级别应用到商业产品中来,并逐步成为新的商业标准。,数据库的安全技术包括:访问控制访问控制就是限制、检查哪些用户能够访问那些数据对象。同一个数据对象的不同的访问方式如读、写等,对不同的用户也是不同的。这种技术需要的数据对象分类,对用户分级。不同的用户按照不同的级别通过不同的方式来访问不同的数据对象。访问控制又可以分为自主访问控制和强制访问控制。数据完整性维护数据库安全的一个重要措施是数据的完整性维护,它涉及数据库内容的正确性、有效性和一致性。实现数据完整性是保护数据库中数据的正确性、有效性,使其免受无效更新的影响。事务是数据库系统中访问数据对象的基本单位,在一个多用户的系统中,各个事务不可能总是相互隔离串行运行,这就需要有并发控制机制。系统可能会因为各种问题而引起数据库中的数据紊乱,这就需要有数据库恢复机制。因此,数据库的完整性包括语义完整性、并发控制和恢复。,数据库审计对数据库系统,数据的使用、审计和记录是同时进行的。审计的主要任务是对应用程序或用户使用数据库资源(包括数据)的情况进行记录和审查,一旦出现问题,审计人员对审计的事件记录进行分析,查出原因。数据库加密仅仅使用数据库的访问控制和审计存在不安全因素:对于一些计算机内行(如电脑黑客),可能会绕过操作系统,直接获得数据库数据文件。解决的方法是:对存储数据进行加密保护。在数据库内,元组的长度一般较短,数据的存储时间比较长,相应密匙的保存时间也随着数据生命周期而定。若所有的数据使用同一密匙,则保密性差;若不同的元组采用不同的密匙,则密匙太多,造成管理复杂。因此,不能简单地采用一般的加密技术,而必须针对数据库的特点,研究相应的加密方法。,隐通道的分析与处理隐通道是指系统中利用那些本来不用于通信的数据库资源,绕过强制访问控制进行非法通信的信道。系统中的隐通道是大量存在的,用户或特洛伊木马可利用它们传出大量的机密信息。隐通道分析指识别出系统中的所有隐通道并计算带宽,根据带宽决定对标志出的隐通道的处理,如对于带宽低于每秒0.1位的隐通道则不必处理,而高于每秒100位的隐通道则必须消除,而对带宽在两者之间的隐通道如不能消除则必须进行审计。,7.3数据库安全性控制在一般计算机安全系统中,安全措施是一级一级层层设置的。例如可以有如下的模型:用户DBMS操作系统DB用户标识和鉴别存取控制操作系统安全保护数据密码存储图7-2计算机系统的安全模型在图7.2的安全模型中,用户要求进入计算机系统时,系统首先根据输入的用户标识进行用户身份签定,只有合法的用户才准进入计算机系统。对已进入系统的用户,DBMS还要进行存取控制,只允许用户执行合法操作。操作系统一级也会有自己的保护措施。数据最后还可以以密码形式存储到数据库中。在这里我们讨论与数据库有关的用户标识与鉴定、存取控制、视图和密码存储等安全技术。,7.3.1用户标识与鉴别用户标识与鉴别是系统提供的最外层安全保护措施。其方法是由系统提供一定的方式让用户标识自己的名字和身份。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供机器使用权。对于获得上机权的用户若要使用数据库时数据库管理系统还要进行用户标识和鉴定。用户标识和鉴定的方法有很多种,而且在一个系统中一般是许多方法并存,以获得更强的安全性。通常的方法如下:用用户名或者用户标识来标明用户身份。系统内部记录着所有合法用户的标识,系统鉴别此用户是否是合法用户,若是,则可进入下一步的核实;若不是,则不能使用系统。为了进一步核实用户,系统通常需要用户输入口令。为保密起见,用户在终端输入的口令不显示在屏幕上。系统核对口令以鉴别用户身份。,通过用户名和口令来鉴定用户的方法简单易行,但用户名与口令容易被人窃取,因此还可以用更加复杂的方法。如每个用户都预先约定好一个计算过程或者函数,鉴别用户身份时,系统提供一个随机数,系统根据自己预先约定的计算过程或函数计算,系统根据计算结果是否正确进一步鉴定用户身份。用户可以约定比较简单的计算过程或函数,以便计算方便;也可约定较复杂的计算过程或函数,以提高安全性。用户标识和鉴定可以重复多次。,7.3.2存取控制存取控制是数据库系统内部对已经进入系统的用户的访问控制,是安全数据保护的前沿屏障。存取控制技术是数据库安全系统中的核心技术,也是最有效的安全手段。存取控制主要包括系统授权、确定存取权限和实施权限三个部分。存取控制系统定义和控制系统中的主体对客体的存取访问权限,以确保系统授权的合法用户能够可靠地访问数据库中的数据信息,并同时防止非授权用户的任何访问操作。控制模型可以分为三大类:自主型访问控制(DAC)、强制型存取控制(MAC)和基于角色访问控制(RBAC)。,1、自主访问控制(DiscretionaryAccessControl,DAC)自主访问控制基于用户的身份和访问控制规则。用户的访问请求将被检查,若存在对访问的授权,则允许访问,否则拒绝访问。自主访问控制DAC之所以被称作自主的,是因为它允许用户将其访问权限赋予其他用户。用户自主访问控制的主要缺点是难于控制已被赋予出去的访问权限,这使得自主访问控制策略易遭受特洛伊木马这样的恶意攻击。2、强制访问控制(MandatoryAccessControl,MAC)在强制存取控制下,数据库系统给所有主体和客体分配了不同级别的安全属性,形成完整的系统授权状态。而且,该授权状态一般情况下不能被改变,这是强制型存取控制模型与自主型存取控制模型实质性的区别。一般用户或程序不能修改系统安全授权状态。只有特定的系统权限管理员才能根据系统实际的需要来有效地修改系统的授权状态,以保证数据库系统的安全性能。强制型存取控制系统主要通过对主体和客体的已分配的安全属性进行匹配判断,决定主体是否有权对客体进行进一步的访问操作。,3、基于角色访问控制(Role-BasedAccessControl,RBAC)RBAC是由美国GeogreMason大学RaviSandhu于1994年提出的,它解决了具有大量用户、数据库客体和各种访问权限的系统中的授权管理问题。其中主要涉及用户、角色、访问权限、会话等概念。角色是访问权的集合。当用户被赋予一个角色时,用户具有这个角色所包含的所有访问权。用户、角色、访问权限三者之间是多对多的关系。数据库安全性所关心的主要是DBMS的存取控制机制。数据库安全最重要的是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制机制来实现。存取控制机制包括两部分:1、定义用户权限,并将用户权限登记到数据字典中。用户权限是指不同的用户对于不同的数据对象允许执行的操作权限。系统必须提供适当的语言定义用户权限,系统将拒绝执行此操作。2、在强制存取控制方法中,每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。强制存取控制因此相对比较严格。,7.3.3数据完整性数据库安全的一个重要措施是数据的完整性维护,它的目标是保护数据库内容的正确性、有效性和一致性。数据库的完整性要求数据库的状态满足所描述的约束和规则,包括域约束、关系约束、引用约束、唯一性约束和显示约束等。完整性维护在数据库管理系统的实现中是必不可少的,但是,它有时会和其他安全性策略产生冲突,从而带来新的数据库特有的安全性问题。数据库元素的完整性是指它们的正确性和准确性。由于用户在收集数据、输入数值时可能会出现错误,所以DBMS必须帮助用户在输入时能发现错误,并在插入错误数据后可能纠正它们。可以用三种方式维护数据库中每个元素的完整性:通过字段检查在一个位置上的适当的值,防止输入数据时可能出现的简单错误;通过访问控制来维护数据库的完整性和一致性;通过维护数据库的更改日志,记录数据库每次改变的情况,包括原来的值和修改后的值,数据库管理员可以根据日志撤销任何错误的修改。,数据库的完整性问题就是保证数据库中的数据始终是精确的这样一个问题。数据库的完整性包括语义完整性、结构完整性和数据项完整性三个方面的含义。语义完整性是指数据库中数据在语义上的正确性。例如:一个人的年龄不能为负数,月份不能大于12等。语义完整性一般通过域完整性规则来进行约束。结构完整性是指数据库中属性之间或元组之间应保持的函数依赖关系,一般通过关系完整性规则来进行约束。数据项完整性是指数据项的完整性和正确性,主要是防止数据库遭受偶然事故或非法的修改、插入或删除。它与系统的安全性是密切相关的。,7.4数据库审计为了使DBMS达到一定的安全级别,还需要在其他方面提供相应的支持。例如按照TDI/TCSEC标准中安全策略的要求,“审计”功能就DBMS达到C2以上安全级别必不可少的一项指标。因为任何系统的安全保护措施都不是完美的,蓄意盗窃、破坏数据的人总是想方设法打破控制。审计功能把用户对数据库的所有操作自动记录下来放入审计日志(AuditLog)中。DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。由于审计行为将影响数据库管理系统的存取速度和反馈时间,所以DBMS往往都将其作为可选特征,允许DBA根据应用对安全性的要求,灵活地打开或关闭审计功能。这可以由多种方法实现,如扩充打开/关闭审计的SQL语句,或使用审计掩码等。审计功能一般主要用于安全性要求较高的部门。,741审计类别数据库系统中的审计工作包括一下几种:设备安全审计:主要审查系统资源的安全策略、安全保护措施及故障恢复计划等。操作审计:对系统的各种操作(特别是一些敏感操作)进行记录、分析记录内容包括操作的种类、所属事物、所属进程、用户、终端(或客户机)、操作时间、审计日期等等。应用审计:审计建于数据库之上的整个应用系统、控制逻辑、数据流是否正确。攻击审计:对已发生的攻击性操作及危害系统安全的事件(或企图)进行检测和审计。,742可审计事件审计系统的设计和实践首先应确定对哪些事件提供可审计的能力,这些事件就称为可审计的事件。但是,出于性能和安全性的综合考虑,实际系统并不对所有可审计事件进行审计。DBMS应为安全管理员提供某种接口配置可审计事件,由安全管理员根据实际需要选择一个合理的子集,从而在安全性和审计负荷之间做出平衡。按照数据库的资源,可供选择的可审计事件分为七类,如表7.3所示:表7.3典型的审计痕迹时间类型,TCSEC按照安全级别的划分,要求如表7.4所示的事件可审计:表7.4可审计事件,对于数据库系统,TDI特别提出以下两条要求:所有的存取控制决定都必须可审计;不记录由于不满足查询而未返回的元组。,743审计数据的内容审计数据的内容与应用程序和环境之间紧密相关,因此,TCSEC对审计数据中所记录的内容给出了最低要求:对于C2和以上级,应记录内容至少包括事件的日期和时间,导致此事件发生的用户,事件类型,事件成功与否;对于标志和鉴别事件,应抱括请求的来源;对用户地址空间中客体的引入或删除的事件,应包括客体名称。对于B1和以上级,应记录安全级别。,但是对于DBMS中的安全管理员来说,仅根据TCSEC所要求的相关数据内容,仍很难追查到用户的实际意图。因此建议在审计记录中增加以下这些名称:事件失败的原因,包括用户的安全级别或权限,或是指向这些数据的指针;未经解释或优化的原始查询;每个审计事务的记录应能回溯到导致它的查询;每个审计应能回溯的它所在的事务;事务是被成功提交还是被回滚;审计与DBMS体系结构的关系DBMS的体系结构与审计有着密不可分的关系,它直接影响审计痕迹的可信程度,审计数据的粒度和数量等。,744常用审计技术常用审计技术大致可分为以下3类静态分析系统技术:审计者通过查阅各种系统资源(软硬件、数据)的说明性文件,例如软件的设计说明书、流程图等来了解整个系统,甚至定位出一些易被攻击的薄弱环节。运行验证技术:运行验证的目的是保证系统控制逻辑正确,各类事务能有效执行。该技术一般又细分为实际运行测试和性能测试两种。实现时,审计者既可根据审计需要,选择系统的一个实际事物作为样板,进行审计跟踪。亦可生成专门的测试用例,通过将测试用事务在系统运行的实际并行工作,比较它们的结果来测评系统。运行结果验证技术:这种技术注意力放在运行结果数据上。它主要涉及审计数据选择和收集、数据分析两类问题。关于审计数据选择和收集。目前常用的办法有:在应用程序中插入一个审计数据收集模块设置专门的审计跟踪事务兼用系统的日志库使用由随机抽取记录组成的专用审计库,等等一旦获得审计数据后,审计者可以检查各类控制信息完整性约束等内容,以达到个种审计目的。,745审计的分析审计痕迹记录了数据库系统中发生过的事件,但必须提供对审计数据的查询和分析的有效手段,才能真正达到审计的目标。TCSEC的责任目标中要求“对于可以存取和评价责任信息的特权用户,他必须能在合理的时间内,一安全的方式完成工作。”换言之,对于能存取审计信息并加以分析的特权用户来说,必须保证特权用户的工作是安全的,而且是可以在有效的时间内完成的。具体而言,审计分析要解决以下几个问题:特权用户的身份鉴别:审计记录的痕迹必须受到保护,仅具有相应特权的用户才能进行审计分析工作。因此,对审计数据的存取必须通过身份鉴别过程。审计数据的查询:查看审计记录可以通过DBMS的查询功能,这样可以减少类似功能代码的重复性开发。审计数据的格式:对于负责审计分析的特权用户,他必须知晓审计记录的结构,从而能从审计痕迹中有效地获取信息。审计数据的减少:可以通过DBMS所提供的借口对可审计事件进行选择,以减少审计记录的数量。同时,负责审计分析的特权用户还可以进行事后选择,即根据审计分析的目标对审计记录进行过滤,进一步减少待处理的数据量。审计分析工具的开发:包括离线和联机工具。数据库加密技术,75数据库加密数据中的数据以可读的形式存储在数据库中,这是一个严重的不安全因素。对于一些计算机用户,完全可以修改其中信息或从存储介质中导出机密信息,这样就难以核实这些信息的真实性。要彻底解决这些问题,除了传输过程中采取加密保护和控制非法访问外,还必须对存储的数据进行加密保护。对存储在计算机系统外部存储器里的数据进行保护的手段是多种多样的,而数据加密方法是最基本的技术之一,特别是对于窃取或篡改数据之类的犯罪和破坏活动来说更是一种有效的保护措施。因此,数据库安全技术中,采用密码控制手段来保护数据库中存储的数据。,751数据库的加密要求对数据库的加密主要有以下几点要求:1)加密系统应该是实际上是不可破的。因为数据库保存时间长,不可能采用一次一密的加密方法,为了数据的安全,应该变换密钥。2)数据加密后,存储空间应该没有明显的增加。3)为了维护系统的原有性能,加密和解密的速度应足够快。4)加密系统要有尽可能灵活的授权机制。由于一个庞大的数据库由多个用户共享,但不是所有的用户都能使用全部数据。对大多数用户来说,只能使用其中的一部分。因此,加密系统应有很强的访问控制的授权机制与之相配合。为使数据能充分灵活的共享,加密后应当允许用户以不同的粒度进行访问。5)加密系统应提供一套安全的、使用灵活的密钥管理机构。6)加密后,对数据库的查询、检索、修改和更新要简便、灵活。,742数据库的加密方式根据数据库的特点,数据库的加密一般采用如下三种方式:1)库外加密数据库管理系统与操作系统的接口方式有三种:一是直接利用文件系统的功能;二是直接利用操作系统的I/O模块;三是直接调用存储管理。因此,可以将数据在库外加密,然后纳入数据库内。如在数据库系统外加密(采用文件加密的方法),形成存储块,然后文件系统每次交给数据库管理系统(DBMS)一个完整的数据存储块,将数据块存入数据库内。文件系统把整个数据库当成一个文件,将每一个存储块当成一个文件记录,文件系统与数据库管理系统交换的就是块号。当DBMS要求组装数据块或插入数据记录时,就向文件系统申请一块,以便建立索引。DBMS为了更好的管理这个存储块,需要确定如下参数:块号、块大小、块头信息、标志位、块尾信息等。库外加密方法比较简单,密钥管理也相对简单,只需借用文件加密的密钥管理办法。但是,加密的数据块纳入数据库时,要对数据进行完整性约束,而加密后的数据可能会超出约束范围,因此要在算法或数据库系统中做些必要的改动,以利于公共数据字典(CCD)的使用和维护系统的完整性要求。,2)库内加密根据数据库结构的特点,要对数据进行加密,可以增设一数据加密模式实现数据的加密。该加密模式所处的位置应在模式与存储模式之间,如图7.5所示。图中的物理数据是系统中存放于存储介质上的数据库,而DBMS中的存储模式描述了数据的物理结构;概念模式描述了数据库的全局逻辑结构;子模式描述了相应用户的数据视图,定义了其相应的内部数据模型。在概念模式和存储模式之间,增加一个数据加密模式,就可以在描述数据存储的物理结构之前,对待存储的数据进行加密处理,或者在使用存放的物理数据之前,对其进行解密处理。加密的粒度(单位)可以是记录、域或者数据元素。粒度是指一次访问操作所及到的被访问对象大小。,图7.5数据描述,(1)记录(元组)加密如果一个用户只允许访问数据库的少数纪录,而不是大量纪录,那么采用的加密方式应以记录加密方式较好。因为它具有灵活性、高效和适应性强等优点,因此是数据库常用的加密方式。记录加密方式,实质上是把数据库的每一行作为一个文件进行加密。此时每一个记录必须有一个密钥与之匹配。因此,产生和管理记录密钥比较复杂。(2)域(属性)加密对于许多用户来说,常以域(字段)的方式访问数据库,那么数据库的加密方式以数据项加密方式为好。这种加密方式和记录加密方式是同一类型的,一个是对数据库的行进行加密,另一个是对数据库的列加密。它的缺点与记录加密相同,密钥的产生和管理比较复杂。,(3)数据项加密数据项加密方法最早是由Denning,D.E于1983年提出。数据项是数据库加密的最小粒度。这种加密方式具有更好的灵活性和适应性,完全支持数据库的各种功能(如记录、数据项查询、修改)。它把每个数据元素看作一个文件进行加密,每个被加密的元素有一个与之一一对应的加密密钥。由于它的粒度小,因此加密效率低,而且元素密钥的产生和管理比记录加密和域加密方式要复杂。考虑一个具有N条记录,M个属性的关系数据库。Xij表示第i条(i=N)记录上的第j个(j=M)属性的数据项。加密Xij,生成密文Cij最直接的方法是:取一个数据库密匙K,令Cij=E(K,Xij),同时有Xij=D(K,Cij)。这里,E是任意一种分组对称加密算法(例如3DES算法),D为E对应的解密算法(一般情况下,D和E十分类似,下面只考虑E),加密和解密采用的是同一密匙K。,当Xij的长度小于对称加密算法E所需要的块长时,要对Xij进行扩展,使其达到足够的长度;当Xij的长度大于块长,但不是块长的整数倍时,可以有两种处理方式:一是将其扩展成长度的整数倍,二是对不够块长的部分采用流密码加密方法进行加密。这里只讨论Xij为块长的整数倍时的情况。上述加密方法的安全性是很低的。对于不同记录p和q上属性相同的两个数据项Xpj和Xqj,若Xpj=Xqj,由上述加加密算法可知加密后的密文是相同的,即Cpj=Cqj。这样,如果Cpj和Cqj中的任意一个被破译,那么Xpj和Xqj就会同时被泄露。由于同一属性中数据项的取值在一定范围之内,且往往呈现一定的概率分布,攻击者甚至可以捕获得原文,而直接通过统计就方法,就可以得到有关的原文信息。,上述缺陷产生的原因在于值相同的原文加密后密文的值也相同,根本原因在于加密采用的密匙是同一个密匙。为了避免这种情况,对不同的数据项,采用不同的密匙进行加密,即对任意Xij,有密匙Kij,密文Cij=E(Kij,Xij)。这样做,解决了上面所说的安全问题。但是,由于密匙数量的增加,又引出了密匙的产生和管理等问题。例如,对于一个N条记录、M个属性的数据库,就需要有N*M个不同密匙。这么多的密匙,出于安全和效率上的考虑,显然是不能全部存储在介质上的,只能在需要的时候动态生成。同时,数据库中的数据需长期存放,要保证加密解密的一致性,对数据项解密时所用的密匙应和加密时所用的密匙完全一样,即前后产生的密匙要相同。因此,密匙不可能随机产生,而只能通过某种固定的函数关系生成。该函数关系只与数据项在表中的位置有关,而与数据项的值无关。通常,与数据项位置相关的几个量有:它所在的表,所在的记录和属性。设每个表有一个表密匙TK,每条记录有一个不需加密的标志Ri,每一属性也有一标志Cj,那么数据项Xij的密匙Kij可如下产生:Kij=f(TK,Ri,Cj)这里,f是数据项密匙生成函数,其中一般包含分组加密算法。该分组加密算法可以与数据项加密所用的块加密算法一致,也可以不一致。这里假设是一致的,都是E。,密匙生成函数f应该满足以下3个安全条件:不同数据项的密匙相同的概率很小;即使已知数据项Xij的一些信息(如取值范围、概率分布),也不可能由密文Cij获得Xij的其他信息;由某一个数据项密匙难于求得其他数据项密匙。另一方面,数据项密匙产生的速度应尽可能地快,这也是衡量生成函数好坏的一项重要标准。影响数据项密匙生成速度的最主要因素是执行分组加密算法E的次数,这是因为一个高强度的块加密算法E,执行它所需要的时间是比较长的。所以,一个密匙生成函数的效率也就越高。因此,衡量一个数据项密匙生成函数效率的高低,最主要的就是看它执行块加密算法E的次数。,3)硬件加密上述加密方式既可用软件实现,也可用硬件实现。硬件加密是在物理存储器(磁盘)与数据库系统之间加一个硬件装置,使之与实际的数据库系统脱离。这种方式首先要求数据库应存在专一磁盘上,并且对进入盘时控制信息不加密,而只对数据加密。,753加密影响DBMS的功能比较完备,如Oracle,Sysbase,DB2,Informix等采用CLIENT/SWEVER结构的数据库管理系统均具有数据管理和应用开发等工具。然而,数据库数据加密以后,DBMS的一些功能将无法使用。1、无法实现对数据约束条件的定义:数据库系统定义了数据之间的完整性约束条件,数据一旦加密,DBMS将无法实现这一功能,而且,值域的定义也无法进行。此外,数据库中的每个字段的类型、长度都有具体的限定。数据加密时,数值类型的数据只能在数值范围内加密,日期和字符类型的数据只能在各自的类型范围内加密,密文长度不能超过字段限定的长度,否则DBMS将无法接受这些加密过的数据。2、密文数据的排序、分组和分类:SELECT语句中ORDERBY、GROUPBY子句分别完成分组、排序、分类等操作。这些子句的操作对象如果是加密数据,那么解密后的明文数据将失去原语句的分组、排序、分类作用,这显然不是用户所需要的。3、SQL语言中的内部函数将对加密数据失去作用:DBMS对各种数据类型均提供了一些内部函数,这些函数不能直接作用于加密数据。4、DBMS的一些应用开发工具的使用受到限制:DBMS的一些应用开发工具不能直接对加密数据进行操作,因而它们的使用会受到限制。,76数据库的安全模型与安全控制安全模型是指用形式语言和自然语言描述的精确说明系统安全需要的模型;安全控制是指在开放系统中,对一个实体访问另一个实体或使用另一个实体功能、服务和能力的限制,即为防止非法访问和合法用户对资源的不合理使用而采取的方法和措施。,761数据库的安全模型1)安全模型概述涉及到复杂系统理论是,我们经常要用数学模型来描述。对于数据库,建立其安全模型有一些目的:,(1)作为研究的框架,安全模型可作为对数据库安全进行理论研究的基础,是研究者集中精力于问题的主要方面和特征,而不必考虑特定实现中的具体细节。(2)作为设计工具,安全模型可以是系统的设计目标具体化,作为一种结构和指导设计的工具为设计服务。(3)作为证明系统设计和实现是否正确的工具。(4)作为教学工具可以简化对复杂系统地描述,并且可以防止那些文字描述带来二义性问题。(5)可以作为一种比较和评价工具。不同系统的功能可以通过其模型的分析来进行比较和评价。因此,我们利用模型来介绍数据库安全。数据库的安全模型通常应具有以下特点:简单性:模型不可太复杂,要比较简单。通用性:要能将不同的安全策略结合起来,并适应各种不同的实现。精确性:要能准确地表示安全策略和系统主要功能。数据模型独立性:要与数据库模型的特征无关。,2)基本的存取控制模型数据库访问控制模型是基于主体对客体访问模式的模型,它是在早期操作系统应用的访问控制的基础上形成的。这种模型由三部分组成:主体集合、客体集合和一组定义主体存取客体的操作规则的集合。主要是要求存取数据库的用户、用户组或者用户的程序,通称用S来表示;客体是指要保护的数据对象,在关系数据库里,客体可以是关系或属性的名字,客体通常用O来表示;存取操作是诸如READ、UPDATA、APPED和DELETE等操作,通常用t来表示。数据库的所有存取控制规则通常用一个矩阵表示,称为访问矩阵模型(AccessMatrixModel)。它把系统的安全状态表示成一个矩形阵列,系统每个主体都拥有一行,每个客体都拥有一列。矩阵中的交叉项表示主体对客体的访问模式,它是一种状态机模型。这种模型用一种方法处理所有系统内客体的安全问题。我们用矩阵Anm来表示存取控制模型,即用ASi,Oj表示主体Si对客体Oj所作的存取操作类型,如下所示:,例如,表7.4所示的矩阵表示对职员关系进行存取控制的规则。从矩阵中可以看出,人事管理人员可以对职员关系的各个属性作任何存取,而邮寄员就只能读NAME和DEPT两个属性。,表7.4职员关系存取控制规则主体客体NAMESALMGRDEPT人事管理员ALLALLALLALL邮寄员READ-注:ALL表示各种存取,如读、写、修改;-表示不能进行任何存取。,3)扩展的基本存取控制模型为了表示前面所讨论过的安全策略,还要将基本控制存取模型作进一步扩展。上面的矩阵可以有效的支持取决于各自的存取控制策略。如果将矩阵中的存取操作类型扩展为包含一个谓词,则该模型就能支持取决于内容的存取控制策略。谓词就是一种进行取操作必须满足的条件,如表7.4所示存取控制里的条件“DEPT”=CS和“SAL”机密秘密一般,同时每个主体和客体都有一组部门。例如,在军队可以由陆军、海军、空军;在企业可以由生产、人事、设计、销售和财务等部门。这样,给每个客体、主体都规定了一个安全级,安全级由分类级或许可级(一组部门)组成。当且仅当满足下面两个条件时,一个安全级L1由于另一个安全级L2:(1)L1的分类级或许可级L2的分类级或许可级。(2)L1的部门包含了L2的部门。,在多极模型中,主体对客体的存取都必须满足“星特性”规则。“星特性”规则是这样定义的:对于主体S对客体O作T类型的存取,必须满足条件:(1)如果T=READ,则主体S的安全级要优于客体O的安全级。(2)如

温馨提示

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

评论

0/150

提交评论