您好,欢迎访问三七文档
第七章数据库安全性数据库的一个宗旨是数据的共享,因此也决定了数据库是“开放”的,然而在很多领域,数据的重要性也使数据的价值已经远远超出了纯粹的技术意义,由此诱发了对数据的非法窃取或攻击,这样“开放”也是不安全的,数据库安全性问题一直是缠绕着数据库管理员的恶梦,数据库数据的丢失以及数据库被非法用户的侵入使得数据库管理员身心疲惫不堪。因此在数据库“开放”的环境下,如何保障数据的私有性或保密性(Privacy)和安全性(Security)是一个十分重要的课题。数据库的私有性和安全性是两个常常一起出现而又互有区别的概念。私有性指个人或团体有对他们自己私有的信息保密和控制第三方使用信息的权利,安全性则主要涉及技术方面的措施,数据库的安全性旨在保证数据库的任何部分都不受到恶意侵害或未经授权的存取和修改。数据库管理员(DBA)的其中一个重要的责任是保证数据库的安全性,保护数据库涉及到以下几个任务:防止对数据的未经过授权的存取,确保敏感信息没有被不是“需要知道”这些信息的人访问得到;防止未经过授权的人员删除和修改数据;监视对数据的访问和更改等使用情况。7.1数据库安全概述数据库系统,一般可以理解成两部分:一部分是数据库,指按一定的方式组织和存放数据;另一部分是数据库管理系统(DBMS),为用户及应用程序提供数据访问界面,并具有对数据库进行管理、维护等多种功能。而对于数据库系统的安全,也可以包含两层含义:第一层是指数据库系统运行的安全,指用一系列措施保障DBMS的健康运作,这些措施包括:•物理控制安全,如机房加锁等;•硬件运行安全;•操作系统安全,如数据文件是否保护等;•灾害、故障恢复;•电磁信息泄漏防止;•DBMS本身设计缺陷所带来安全隐患的修补措施。第二层是指数据库系统的信息安全,用一系列措施来保障数据库存放的信息的私有性,这些措施包括:•法律、政策的保护,如用户是否有合法权利,政策是否允许等;•用户身份鉴别;•用户存取权限控制;•数据存取权限、访问方式的控制;•审计跟踪;•数据加密。我们可以看出,第一个层次的安全含义,主要侧重在保障数据的完整性或者数据安全的环境因素方面,而第二个层次的安全,则更多和数据的私有性相关,本章的论述更多侧重在第二个层次的论述。7.2数据库基本安全机制数据库系统信息安全性技术上可以依赖于两个种方式:一种是数据库管理系统(DBMS)本身提供的用户身份识别、视图、使用权限控制、审计等管理措施,大型数据库管理系统如Oracle、Sybase、Informix等均有此功能;另一种就是靠数据库的应用程序来实现对数据库访问进行控制和管理,如使用较普遍的Dbase、Foxbase、Foxpro等开发的数据库应用程序,很多数据的安全控制都由应用程序里面的代码来实现。作为数据库用户,最关心自身数据资料的安全,而这种安全的需求并不能单纯依赖具体的应用程序的限制,因此用户更多地将依赖于DBMS提供的安全保障,特别是用户的查询权限问题。对此,目前一些大型数据库管理系统(如Oracle、Sybase等产品)都提供了以下几种主要技术手段。7.2.1用户认证用户的身份认证(Authentication)是用户使用DBMS系统的第一个环节,数据的私有性和安全性都是以用户的私有权为基础,因此对用户的身份鉴别也就是DBMS识别什么用户能做什么事情的依据,在电子环境中,人们使用的是一个用电子数据虚拟的电子身份,电子身份的虚拟性使入侵者可以假冒正常用户身份进入系统,窃取甚至破坏信息资源,因此如何能可靠地确认对方的真实身份是电子事务的前提。口令认证密码是一种身份认证的基本形式,用户在建立与DBMS的访问连接前必须提供正确的用户帐号(Userid)和口令(password),DBMS与自身保存的用户列表中的用户标识和口令比较,如果匹配则认证成功,允许用户使用数据库系统,如果不匹配则返回拒绝信息,这种认证判断过程往往是数据库登录的第一步。图7-1SQLServer的用户口令认证过程图7-2MSSQLServer的用户登录拒绝信息用户帐户(account)的帐号和口令是口令认证方式中的核心,用户信息可以保存在数据库内、操作系统内或者集中的目录服务器(DirectoryServer)用户身份证书库内,数据库的安全性就依赖于对用户身份信息特别是口令的保密上,需要用以下措施来确保口令的安全:z只有数据库管理员(DBA)权限的用户可以访问用户的帐户资料;zDBA可以设定口令设置的标准,譬如规定一定要取口令和口令的最少位数;z口令没有规律性,不容易被猜出来;z口令以加密的形式存放的身份库中,不能被读出来;z口令有一定的有效期,让用户定期更换口令;z口令在一段时期内不允许重复使用;z如果发现一个帐户连续多次试图登录都失败,则锁定(lock)该帐户,不让其再使用系统,除非DBA给该帐户解锁,这样可以防止攻击者用穷举的方法猜测用户口令。强身份认证在网络环境下,客户端到DBMS服务器可能经过多个环节,在身份认证期间,用户的信息和口令可能会经过很多不安全的节点(如路由器和服务器),而被信息的窃听者窃取,强身份认证过程使认证可以结合信息安全领域一些更深入的技术保障措施,来强化用户身份的鉴别,具体可以与PKI用户证书、智能卡、用户指纹识别等多种身份识别技术相结合,由于这些内容涉及到比较深入的信息安全方面的知识,在这里不作一一详细展开,只略略介绍目前比较流行的PKI认证方法。为了能够在开放性的网络上,认证远程的网络使用者身份,国际电信联盟(InternationalTelecommunicationUnion,简称ITU)于1988年制定出认证体系标准“开放性系统互连(OSI)-目录服务:认证体系”(OpenSystemInterconnection–TheDirectory:AuthenticationFramework)X.509,此标准后来被国际标准组织ISO(InternationalStandardsOrganization)采用为ISO9594-8认证标准。有关标准原文请参考Internet上的标准组织IETF制定的RFC-2459(“InternetX.509PublicKeyInfrastructureCertificateandCRLProfile”)这些构成目前电子商务安全基础的公钥基础结构(PublicKeyInfrastructure,简称PKI),PKI是指由数字证书、证书颁发机构CA以及对电子交易中所涉及各方的身份和交易信息的合法性进行检查和验证的其它注册机构组成的一套系统。PKI的有关标准仍处于不断发展之中,这些标准已被作为电子商务的要素而广泛实施。图7-3是PKI的实体模型图:图7-3PKI的实体模型图最终实体(EndEntity):由证书主题(Subject)所表示的PKI证书用户/用户系统。管理实体(PKIManagementEntities):CA和RA构成了PKI的管理实体,CA(CertificationAuthority):证书权威机构,负责给申请者签发证书,它的职责归纳起来有:签发证书;管理证书;确保整个签证过程的安全性和签名私钥的安全性;确保证书主体标识的唯一性;发布并维护CRL(证书撤消列表);对整个证书签发过程做日志记录;向申请人发通知,在CA的实际运行中,CA还有义务处理由于证书的安全性带来的法律纠纷。RA(RegistrationAuthority):证书的注册登记机构,最终实体向CA申请证书的过程中,可以把CA中接收申请这部份功能分担给RA负责,RA可为CA提供担保,以便将公钥与预期的证书持有人的身份及属性绑定在一起。本质上,使用RA是管理委派的一种形式——CA委派RA执行验证公钥和实体之间绑定的任务。证书(Certificate):数字证书是用户的身份证明文件,包含证书持有人的身份信息(Subject)、持有人的公钥(SubjectPublickey)、签发证书的CA(Issuer),为了确保证书的真实性,往往还加上CA对证书的数字签名,而在实际中使用的证书往往还包括证书有效期等等内容,数字证书是一种公开传播的电子文档,为了保证数字证书在广泛的应用系统内的互操作性,证书必须采用统一的标准格式,目前国际上统一采用的数字证书格式是ISO/IEC/ITU制定的X.509v3证书格式。作废证书表(CertificateRevocationList,简称CRL):证书具有一个指定的寿命,即证书的有效期,一般情况下,我们希望证书可以在整个有效期被使用,而当证书由于种种原因在有效期到期前失效时,如何表示该证书已经作废呢?针对这种情况,CA发布一个作废证书表(CRL),列出被认为不能再使用的证书的序列号。储存库(Repository):储存库可以看成集中的或分布的数据库系统,用来保存证书和CRL,并且提供向最终实体分发这些证书和CRL的服务。储存库集中存放证书和CRL,它与网上白页类似,是一种网上的公共信息库,用户可以从此处获得其他用户的证书和CRL。系统操作事务管理事务管理事务PKI的用户PKI的管理实体发布证书发布证书发布作废证书表管理事务证书/作废证书表储存库最终实体RACACA必须确保证书库的完整性和真实性,防止证书被伪造、篡改。操作事务协议(OperationalProtocols):操作事务协议用于从储存库把证书和CRL分发到使用证书的系统。无论证书的分发采取何种方式,如LDAP,HTTP,FTP,X500等分发方式,证书的供应都是必须的功能。这些协议定义了证书传送的格式和功能。管理事务协议(ManagementProtocols):管理事务协议定义了最终实体(证书用户)和管理实体(CA,RA)以及管理实体之间的在线交互。管理事务协议支持以下功能:(a)登记(registration):用户向CA申请证书时必须先向CA提供其身份信息及其公钥,CA给用户签发证书前有责任对用户提供的信息作真实性的审核。(b)初始化(initialization):客户系统可以安全地运作前,必须先把安全体系结构中使用的密钥安装好。(c)证明(certification):这个过程包括CA为客户公钥签发证书,向客户系统发布自己的证书以及把证书存放到储存库。(d)密钥恢复(keypairrecovery):这是一个可选项,一般情况下,用户自己负责保管自己的密钥数据,特别是自己的私钥数据,但是在一些特殊应用环境中,需要由CA或密钥备份系统备份用户的密钥。当用户需要恢复他们的密钥时(如忘记了保护私钥的密码和丢失了密钥文件)可以提供联机的密钥恢复的支持。(e)密钥对更新(keypairupdate):为了保证系统的安全,所有证书所用到的密钥对在使用一定时间后都要定期地更新,例如使用新的密钥对或发布一张新的证书。(f)证书作废请求(revocationrequest):如果在证书有效期内发生一些影响证书安全的特殊情况,如私钥泄露等,用户可以向CA申请提前作废证书。(g)交叉认证(cross-certification):两个CA之间可以交换信息以建立双方之间的交叉认证证书,交叉认证证书(cross-certificate)指一个CA向另外一个CA用自己的私钥签发证书。单向认证过程数据库身份认证一般只使用单向认证,单向认证只包含一条消息,在安全认证上可以达到以下功能:·发送方利用数字签名技术送出身份识别数据,可以确认发送方身份。·根据数字签名的不可否认的原理,证明消息确实是发送方发送的。·用接收方的公钥加密数据确保只有接收方才能解密数据。·利用数字签名过程中的消息摘要可以检查数据传送过程中的完整性。图7-4X.509单向认证示意图1.A{tA,rA,B,sgnData,Ep(B)[encData]}发送方A接收方B图7-4符号解析如下:x表示某实体的身份标识。x{m}:表示消息m加上用x的私钥对消息m的数字签名(x{m}包括m本身)。rx:表示x不会重复的随机数,为了防止别人重复此信息。tx:表示x所发送数据的有效期。SgnData:表示要用
本文标题:数据库安全性
链接地址:https://www.777doc.com/doc-1263027 .html