为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

数据库安全技术

2017-09-30 26页 doc 72KB 40阅读

用户头像

is_348501

暂无简介

举报
数据库安全技术数据库安全技术 一、引言 (一)安全的数据库系统 依靠设计策略、存储过程和一定的技术方法,安全的数据库系统是能够防止非法用户对数据库系统的访问及对数据库系统内数据的篡 [1]改和窃取,并能够避免系统物理损坏所带来的损失。 (二)数据库安全威胁 数据库安全是一个广阔的领域,从传统的备份与恢复,认证与访问控制,到数据存储和通信环节的加密,无不涉及。作为操作系统之上的应用平台,其安全与网络和主机安全息息相关。当前数据库安全技术主要存在以下不足:第一种不足之处是,数据库文件的安全完全依赖于操作系统,当系统配置不当时,安全根本得...
数据库安全技术
数据库安全技术 一、引言 (一)安全的数据库系统 依靠设计策略、存储过程和一定的技术方法,安全的数据库系统是能够防止非法用户对数据库系统的访问及对数据库系统内数据的篡 [1]改和窃取,并能够避免系统物理损坏所带来的损失。 (二)数据库安全威胁 数据库安全是一个广阔的领域,从传统的备份与恢复,认证与访问控制,到数据存储和通信环节的加密,无不涉及。作为操作系统之上的应用平台,其安全与网络和主机安全息息相关。当前数据库安全技术主要存在以下不足:第一种不足之处是,数据库文件的安全完全依赖于操作系统,当系统配置不当时,安全根本得不到保证;其次,当数据库文件在目录或计算机间移动时,这种保护不复存在。所以,安全技术的最大弊病在于要靠外部环境实现安全,一旦外部环境变化时,安全性便无法保障。第二种主要不足是,数据库文件的安全完全依赖于基于密码校验的身份认证。如果用户以正常方式(采用数据库管理软件)去打开数据库文件时,身份认证无疑是不错的安全措施,但用户以二进制文件方式打开文件时,身份认证过程会被轻易跳过。其弊病在于要靠数据库管理软件实现安全,一旦非法用户采用别的方法察看数据库文件内容时,安全性就无法保障。第三种安全技术的局限也很明显,数据库文件一般都很大,如果全部都加密和解密,时间代价将很大。 1 如果每次打开和关闭数据库时,数据库文件要花几分钟来解密和加密,用户是无法接受的。对数据库系统来说,安全威胁还来自非法访问数据库信息、恶意破坏或未经授权非法修改数据库数据、通过网络正常访问数据库时受到各种攻击,对数据库的不正确访问引起的数据库数据错误等。 (三)数据库系统的安全策略 数据库系统的安全策略是由物理控制、使用、操作系统安全及数据库管理构成的一个整体安全策略。其中,物理控制是指数据库系统的使用环境及硬件应保证安全(例如机房上锁及防火、防盗,存储介质安全等);使用方案是指数据库系统在使用过程中应采取的安全手段,如确保用户帐号密码安全的措施及确定密码更新周期;操作系统安全是指所选用的操作系统必须稳定、效率高、安全漏洞少;数据 [2]库管理是指数据库系统自身提供的安全机制。 (四)数据库系统的安全控制层次 通常,数据库系统的安全控制层次可分为三层,即物理层、OS层和DBMS层。物理层负责存储数据的物理存储介质的安全,当前大型数据库系统都提供数据库镜像、日志及备份机制来保证物理层的安全;OS层负责物理存储介质、进程及文件系统管理等底层安全控制;DBMS层则通过存取控制矩阵、权限表、视图及存储过程等机制提供安全控[3][4]制。 2 但是传统的这三层安全控制层次并不能完全解决数据库的安全控制问。首先,由于数据在数据库中是以可读写的形式存在的,有可能被非法用户通过线程/进程或文件、磁盘区及内存区窃取;其次,为防止系统崩溃及磁盘的物理损坏需对敏感数据定期备份,备份出来的数据同样存在失密的可能;第三,很难控制数据库中的机密数据在网络传输过程中发生的失密情况;第四,由于原始数据可能被非法侵入者篡改,很难保证原始数据的可信度。一个较为实际的解决方案是使用数据加密的方法来强化数据的安全,即在数据库安全控制层次中增加第四层—数据加密层。加密后的数据库中的数据以密文的形式存在,只有通过合法的密钥才能被解密,这样就消除了数据失密的可能。同时,由于非法入侵者没有密钥无法修改数据,数据的完整性也得到了 [5][6]保证。 (五)数据库加密技术发展现状 现阶段数据库系统的加密技术,基本上基于三个不同的层次来实现对数据的加密,这三个层次分别是OS、DBMS内核层和DBMS外[7]层。 在OS层实现数据加密,可以强化OS对数据库系统的保护机制,其优点是可以从根本上防止非法用户通过线程/进程及文件、磁盘体、内存体、客体复用等隐蔽通道访问数据库敏感数据,但使用这种加密形式也有其自身的问题,即无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,也无法进行合理的密钥管理和使用。所以对于 3 大型数据库来说,在OS层对数据库文件进行加密的数据库加密系统,实现起来具有较大难度。 在DBMS内核层实现加密,是指数据在完成数据库物理存取之前完成数顺序编排; 数据库中数据的加/解密工作。这种方式势必造成DBMS和加密器(硬件或软件)之间的接口,需要DBMS 开发商的支持。鉴于目前数据库加密的要求日益强烈,DBMS开发商也在相应的数据库新产品中引入了数据加密的思想。但考虑到数据加密后对服务器效率的影响,这些数据库所采用的加密形式都是不完全意义上的数据库加密,因为数据库中数据仍是以明文的形式存储的,非法用户仍可能通过内存区或文件的形式篡取数据。即使DBMS开发商实现了数据以密文形式的数据库加密系统,还存在着一些DBMS自身对加密的限制,这些限制包括:索引字段不能加密(在加密数据上作索引将失去原有的索引的功能);数据关联字段不能加密;关系运算比较字段不能加密(DBMS无法实现加密数据上的查询操作)。并且,数据加密后对DBMS原有功能也存在较大影响。这些影响包括,无法实现对数据制约因素的定义;密文数据无法执行数据的排序、分组和分类;SQL语言中的内部将对加密数据失去作用。因而,这种加密方式虽然具有加密功能强的明显的优点,但其缺点也是显而易见的,在服务器端进行加/解密运算,加重了数据库服务器的负载,对数据加密存在限制,对DBMS原有功能有影响。 4 另一种做法是将数据加/解密系统做成DBMS的一个外层工具的形式进行开发。采用这种加密方式时,加/解密运算可以放在客户端进行,其优点是不会加重数据库服务器的负载并可直接实现网上传输加密,缺点是加密功能会受一些限制。这也是目前在不依赖DBMS开发商的情况下最可行的一种加密方法。 (六) 主要工作和文章的组织 本文主要探讨多层次的数据库安全策略,使数据库库安全系数达到最大,重点对加密方法进行论述并设想能通过两级加密模式提高数据库的安全防范能力,即对数据加密后再对密钥加密。 1、数据库系统安全的主要风险和安全目标。 本文提出了数据库系统安全的风险前提,针对风险情况采取有效的防范措施,以达到一定的安全目标。 2、当前数据库安全技术的对比。 介绍了目前比较流行的安全技术策略,指出了它们的优点和不足。前设想用数据库加密的方法进一步巩固安全性。 3、加密算法的研究。 在加密数据库系统中,加密算法的选取对数据库效率的影响至关重要。当前密码算法从类型上可分为:对称算法、非对称算法。对称密钥密码系统具有加解密速度快,安全强度高等优点,选用IDEA算法作为加密库中信息加密的算法,但对称密码同时存在密钥发行与管理方面的不足,选用非对称密钥中的加密强度极高的RSA算法作为主密 5 钥,对IDEA算法的密钥进行加密。这样就构成了分组密码算法和公开密钥密码共同使用的二级密钥体制,达到更好的安全效果。 二、对数据库安全的分析 (一)存在的主要风险 1.来自操作系统的风险 来自操作系统的风险主要集中在病毒、后门、数据库系统和操作系统的关联性方面。首先在病毒方面,操作系统中可能存在的特洛伊木马程序对数据库系统构成极大的威胁,数据库管理员尤其需要注意木马程序带给系统入驻程序所带来的威胁。一个特洛伊木马程序修改了入驻程序的密码,并且当更新密码时,入侵者能得到新的密码。其次在操作系统的后门方面,许多数据库系统的特征参数尽管方便了数据库管理员,但也为数据库服务器主机操作系统留下了后门,这使得黑客可以通过后门访问数据库。最后数据库系统和操作系统之间带有很强的关联性。操作系统具有文件管理功能,能够利用存取控制矩阵,实现对各类文件包括数据库文件的授权进行读写和执行等,而且操作系统的监控程序能进行用户登录和口令鉴别的控制,因此数据库系统的安全性最终要靠操作系统和硬件设备所提供的环境,如果操作系统允许用户直接存取数据库文件,则在数据库系统中采取最可靠的安全措施也没有用。 2.来自管理的风险 6 用户安全意识薄弱,对信息网络安全重视不够,安全管理措施不落实,导致安全事件的发生,这些都是当前安全管理工作存在的主要问题。从已发生安全事件的原因中,占前两位的分别是“未修补软件安全漏洞”和“登录密码过于简单或未修改”,也表明了用户缺乏相关的安全防范意识和基本的安全防范常识。比如数据库系统可用的但并未正确使用的安全选项、危险的默认设置、给用户更多的不适当的权限,对系统配置的未经授权的改动等等。 3.来自用户的风险 用户的风险主要表现在用户帐号、作用和对特定数据库目标的操作许可。例如对表单和存储步骤的访问。因此必须对数据库系统做范围更广的彻底安全分析,找出所有可能领域内的潜在漏洞,包括与销售商提供的软件相关的风险软件的BUG、缺少操作系统补丁、脆弱的服务和选择不安全的默认配置等。另外对于密码长度不够、对重要数据的非法访问以及窃取数据库内容等恶意行动也潜在的存在,以上这些都表现为来自用户的风险。 4.来自数据库系统内部的风险 虽然绝大多数常用的关系数据库系统已经存在了十多年之久,并且具有强大的特性,产品非常成熟。但许多应该具有的特征,在操作系统和现在普遍使用的数据库系统中,并没有提供,特别是那些重要的安全特征,绝大多数关系数据库系统并不够成熟。 (二)应达到的主要安全目标 1.提供数据共享,集中统一管理数据。 7 2.简化应用程序对数据的访问,应用程序得以在更为逻辑的层次上访问数据。 3.解决数据有效性问题,保证数据的逻辑一致性。 4.保证数据独立性问题,降低程序对数据及数据结构的依赖。 5.保证数据的安全性,在共享环境下保证数据所有者的利益。 以上仅是数据库的几个最重要的动机,发展变化的应用对数据库提出了更多的要求。为达到上述的目的,数据的集中存放和管理永远是必要的。其中的主要问题,除功能和性能方面的技术问题,最重要的问题就是数据的安全问题.如何既提供充分的服务同时又保证关键信息不被泄漏而损害信息属主的利益,是DBMS的主要任务之一。 三、数据库安全技术的实施 (一)数据库加密 对于一些重要的机密的数据,例如一些金融数据、商业秘密、游戏网站玩家的虚拟财产,都必须存储在数据库中,需要防止对它们未授权的访问,哪怕是整个系统都被破坏了,加密还可以保护数据的安全。对数据库安全性的威胁有时候是来自于网络内部,一些内部用户可能非法获取用户名和密码,或利用其他方法越权使用数据库,甚至可以直接打开数据库文件来窃取或篡改信息。因此,有必要对数据库中存储的重要数据进行加密处理,以实现数据存储的安全保护。 数据加密就是将称为明文的敏感信息,通过算法和密钥,转换为一种难于直接辨认的密文。解密是加密的逆向过程,即将密文转换成可识别的明文。数据库密码系统要求把明文数据加密成密文,数据库 8 存储密文,查询时将密文取出解密后得到明文。数据库加密系统能够有效地保证数据的安全,即使黑客窃取了关键数据,他仍然难以得到所需的信息。另外,数据库加密以后,不需要了解数据内容的系统管理员不能见到明文,大大提高了关键数据的安全性。 (二)存取管理技术 存取管理技术主要包括用户认证技术和访问控制技术两方面。用户认证技术包括用户身份验证和用户身份识别技术。访问控制包括数据的浏览控制和修改控制。浏览控制是为了保护数据的保密性,而修改控制是为了保护数据的正确性和提高数据的可信性。在一个数据资源共享的环境中,访问控制就显得非常重要。 1.用户认证技术 用户认证技术是系统提供的最外层安全保护措施。通过用户身份验证,可以阻止未授权用户的访问,而通过用户身份识别,可以防止用户的越权访问。 用户身份验证。该方法由系统提供一定的方式让用户标识自己的身份。每次用户请求进入系统时,系统必须对用户身份的合法性进行鉴别认证。用户要登录系统时,必须向系统提供用户标识和鉴别信息,以供安全系统识别认证。目前,身份验证采用的最常用、最方便的方法是设置口令法。但近年来,一些更加有效的身份验证技术迅速发展起来,如智能卡技术、物理特征(指纹、虹膜等)认证技术等具有高强度的身份验证技术日益成熟,并取得了不少应用成果,为将来达到更高的安全强度要求打下了坚实的理论基础。 9 用户身份识别。用户身份识别以数据库授权为基础,只有经过数据库授权和验证的用户才是合法的用户。数据库授权技术包括授权用户表、用户授权表、系统的读出,写入规则和自动查询修改技术。 2.访问控制 访问控制是从计算机系统的处理功能方面对数据提供保护,是数据库系统内部对已经进入系统的用户的访问控制,是安全数据保护的前沿屏障。它是数据库安全系统中的核心技术,也是最有效的安全手段,限制了访问者和执行程序可以进行的操作,这样通过访问控制就可防止安全漏洞隐患。DBMS中对数据库的访问控制是建立在操作系统和网络的安全机制基础之上的。只有被识别被授权的用户才有对数据库中的数据进行输入、删除、修改和查询等权限。通常采用下面两种方法进行访问控制: 按功能模块对用户授权。每个功能模块对不同用户设置不同权限,如无权进入本模块、仅可查询、可更新可查询、全部功能可使用等,而且功能模块名、用户名与权限编码可保存在同一数据库。 将数据库系统权限赋予用户。通常为了提高数据库的信息安全访问,用户在进行正常的访问前服务器往往都需要认证用户的身份、确认用户是否被授权。为了加强身份认证和访问控制,适应对大规模用户和海量数据资源的管理,通常DBMS主要使用的是基于角色的访问控制RBAC(Rolebasedaccesscontrol)。 3. 备份与恢复 数据备份与恢复是实现数据库系统安全运行的重要技术。数据库 10 系统总免不了发生系统故障,一旦系统发生故障,重要数据总免不了遭到损坏。为防止重要数据的丢失或损坏,数据库管理员应及早做好数据库备份,这样当系统发生故障时,管理员就能利用已有的数据备份,把数据库恢复到原来的状态,以便保持数据的完整性和一致性。一般来说,数据库备份常用的备份方法有:静态备份(关闭数据库时将其备份)、动态备份(数据库运行时将其备份)和逻辑备份(利用软件技术实现原始数据库内容的镜像)等;而数据库恢复则可以通过磁盘镜像、数据库备份文件和数据库在线日志三种方式来完成。 4.建立安全的审计机制 审计就是对指定用户在数据库中的操作进行监控和记录的一种数据库功能。这里主要以Oracle数据库为例,Oracle数据库没有为审计数据提供独立的导出、备份和恢复机制,用户每导出和删除1条审计记录都需要自己来书写程序,并且审计记录所需要的存储空间也是Oracle数据库所提供。如果审计数据是保存在操作系统中的文件中,那么审计记录的保护完全依赖于操作系统的安全性和对文件的加密措施。显然,现有的数据库管理系统的审计保护功能存在不足,应从以下2方面改进:建立单独的审计系统和审计员,审计数据需要存放在单独的审计文件中,而不像Oracle那样存在数据库中,只有审计员才能访问这些审计数据。可以把用户大致分为审计员、数据库用户、系统安全员3类,这三者相互牵制,各司其职。分别在3个地方进行审计控制。为了保证数据库系统的安全审计功能,还需要考虑到系统能够对安全侵害事件做出自动响应,提供审计自动报警功能。当系统检测 11 到有危害到系统安全的事件发生并达到预定的阈值时,要给出报警信息,同时还会自动断开用户的连接,终止服务器端的相应线程,并阻止该用户再次登录系统。 四、密码技术 采用密码技术是保护信息安全的主要手段之一。 密码技术自古有之,到目前为止,已经从外交和军事领域走向公开,并且是结合数学,计算机科学,电子与通信等诸多学科于一身的交叉学科。它不仅具有保证信息机密性的信息加密功能,而且具有数字签名,身份验证,秘密分存,系统安全等功能。所以,使用密码技术不仅可以保证信息的机密性, 而且可以保证信息的完整性和正确性,防止信息被篡改,伪造和假冒。 (一) 密码学的基础知识 密码学是把数据打乱成除了特定的人员以外其他人都无法理解的格式的一门学科,是由加密算法 (Encryption Algorithm)或密码(Cipher) 来完成的。被打乱的数据称为密文,原始数据称作明文 [7](Plain Text)。 1、数据加密概况 数据加密作为一项基本技术是所有通信及信息安全的基石。数据加密过程是由形形色色的加密算法来具体实施,它以很小的代价提供很大的安全保护。在多数情况下,数据加密是保证信息机密性的唯一方法。据不完全统计,到目前为止,已经公开发表的各种加密算法多 12 达数百种。如果按照收发双方密钥是否相同来分类,可以将这些加密算法分为对称密码算法和非对称密码算法,及为保证邮件的唯一性提出的报文摘要算法。数据加密算法的概况如图1所示。 对 流密码 RC4 RAS PKCS DSS 称 报文摘要算法 加 块密码 DES MD2,MD4,MD5,SHA 密钥管理 密 IDEA,CASR,RC2 Kerberos,KEA 私人 数字签名与身份验证 邮件加密密钥 图1 加密算法 2.对称密钥加密(常规加密/传统密码体制/对称密钥密码体制) 加密密钥能够从解密密钥中推算出来,反过来也成立。在大多数对称加密算法中,加/解密密钥是相同的。对称加密算法的问题在于密钥只有发送者和接收者知道,无论是用电话、软盘或书信交换密钥都显得不方便,也不安全 。对称密钥加密的流程如图2所示。 私人密钥 私人密钥 明文 密码 明文 密文 密文 图2 对称密钥加密 位长的密钥,IDEA 是一种欧洲标准,它在执行速度和反解密的加密安全性上都比DES好;RC2 和 RC4,RC2是具有64位块长度的块密码;RC4 是流密码。二者都是RSA公司的产品。 13 3.非对称密钥加密(公用密钥加密 / 公开密钥密码体制) 使用两把密钥,第一把密钥(公用密钥,Public Key)是公开的,由想要安全发送数据的人使用;第二把密钥(私人密钥,Private Key)只有密钥的拥有者知道。这两把密钥是不同的,而且解密密钥不能根据加密密钥计算出来。非对称密钥加密的流程如图3所示。 解密密钥 加密密钥 密码 明文 明文 密文 密文 图3 非对称密钥加密 常用非对称加密密码:RSA、PKCS 公用密钥密码术标准(Public Key Cryptography Standards )、DSS 数字签名标准(Digital Signature Standard) 4、报文摘要算法(Message Digest Algorithms) 为了把那些千差万别的报文与数字签名不可分割地结合在一起,要设法从报文中提取一种确定格式的、符号性的摘要,称为“报文摘要”(digest),更形象的说法是一种“数字指纹”(digital fingerprint),然后对它“签名”并发送。简单地讲就是对一封邮件用某种算法算出一个最能体现这封邮件特征的数来,一旦邮件有任何改变这个数都会变化,那么这个数加上发送者的私人密匙,就可以作为一个数字签名。常用 [11][12]的报文摘要算法:MD2、MD4、MD5。 (二)密码分析 14 密码分析是在不知道密钥的情况下,恢复出明文的技术。成功的密码分析能恢复出消息的明文或密钥,密码分析也可以发现密码体制的弱点。对密码进行分析的尝试称为攻击,常用的密码分析攻击有四[8]类: 1.唯密文攻击(ciphertext-only attack) 密码分析者有一些消息的密文,这些消息用同一加密算法加密。密码分析者的任务是恢复尽可能多的明文,或最好能推算出加密消息的密钥,以便可采用相同的密钥解出其它被加密的消息。 2.已知明文攻击(known-plaintext attack) 密码分析者不仅得到一些消息的密文,而且也知道这些消息的明文。分析的任务就是用加密信息推出用来加密的密钥或导出一个可对用同一密钥加密的任何新消息解密的算法。 3.选择明文攻击(chosen-plaintext attack) 分析者不仅可得到一些消息的密文和相应的明文,而且也可选择被加密的明文。这比已知明文攻击更有效。因为密码分析者能选择特定的明文块去加密,这些块可能产生更多关于密钥的信息,分析的任务就是用加密信息推出用来加密的密钥或导出一个可对用同一密钥加密的任何新消息解密的算法。 4.自适应选择明文攻击(adaptive-chosen-plaintext attack) 这是选择明文攻击的特殊情况。密码分析者不仅能选择被加密的明文,而且也能基于以前加密的结果修正这个选择。在选择明文攻击中,密码分析者还可以选择一大块被加密的明文,而在自适应选择密文攻击 15 中,可选取较小的明文块,然后再基于第一块的结果选择另一明文块,以些类推。 其它还有选择密文攻击(chosen-ciphertext attack)及选择密钥攻击(chosen-key attack)等。 5.加密算法的安全性 根据被破译的难易程度,不同的密码算法具有不同的安全等级。如果一个算法用(现在或将来)可得到的资源都不能破译,这个算法 [11][12]则被认为在计算上是安全的。 (三)数据库加密选用的密码算法 为了防止密码分析,选择一个强壮的加密算法是至关重要的。在加密数据库系统中,选用了对称加密算法中的IDEA算法与非对称加密算法中的RSA算法,主要是考虑到IDEA算法在加/解密过程中的高效性、RSA算法在密钥管理方面的方便性,及二者在加密强度方面的优势。 1.IDEA算法 IDEA是International Data Encryption Algorithm的缩写,意为“国际数据加密算法”。它是我国学者朱学嘉博士和著名的密码学家Massen合作的结果,它的明文长度为64比特,而密钥为128比特。同一个算法既可用于加密,又可用于解密。该算法的设计原则是一种“来自于不同代数群的混合运算”,三个代数群进行混合运算。 2.RSA算法 16 1978年就出现了这种算法,它是第一个既能用于数据加密也能用于数字签名的算法。它易于理解和操作,也很流行。算法的名字以发明者的名字命名:Ron Rivest, AdiShamir 和Leonard Adleman。但RSA的安全性一直未能得到理论上的证明。RSA的安全性依赖于大数分解。公钥和私钥都是两个大素数(大于100个十进制位)的函数。据猜测,从一个密钥和密文推断出明文的难度等同于分解两个大素数的积。 [8][9][10]RSA密钥对的产生过程如下: 选择两个大素数,p 和q 。计算: n = p * q 然后随机选择加密密钥e,要求 e 和 ( p - 1 ) * ( q - 1 ) 互质。最后,利用Euclid 算法计算解密密钥d, 满足 e * d = 1 ( mod ( p - 1 ) * ( q - 1 ) ),其中n和d也要互质。数e和n是公钥,d是私钥。两个素数p和q不再需要,应该丢弃,不要让任何人知道。加密信息 m(二进制表示)时,首先把m分成等长数据块 m , m, „ , 12 sm ,块长s,其中 2 <= n, s 尽可能的大。对应的密文是: i ec = m ( mod n ) ( a ) ii 解密时作如下计算: dm= c ( mod n ) ( b ) ii RSA可用于数字签名,方案是用( a )式签名,( b )式验证。 3.算法安全性分析 IDEA算法和RSA算法对目前的四类密码分析方法具有足够的强度。直到目前没有任何关于IDEA的密码学分析攻击法的成果发表,而且最近的证据表明即使是在DES上取得巨大成功的 Biham 和Shamir 的差 17 分密码分析法对IDEA也无能为力。由于IDEA的密匙空间(密匙长度)是128位,用十进制表示所有可能的密匙个数为: 340,282,366,920,938,463,463,374,607,431,768,211,456. 为了试探出一个特定的密匙,“密匙穷举”攻击平均要试探一半上面的可能性。对IDEA的“密匙穷举” 攻击难度相当于即使用十亿台每秒钟能够试探十亿个密匙的计算机,所需的时间也比目前所知的宇宙的年龄要长,而即使是在当代制造每秒试探十亿个密匙的计算机还是不可能的。 从RSA的基本原理,可以得到RSA的保密性基于这样一个数学假设:对一个很大的合数进行质因数分解是不可能的。RSA用到的是两个非常大的质数的乘积,用目前的计算机水平是无法分解的。RSA可能存在一些密码学方面的缺陷,随着数论的发展也许会找到一种耗时以多项式方式增长的分解算法。不过目前这还只是展望,甚至连发展的方向都还没有找到。有三种事物的发展会威胁到RSA的安全性:分解技术、计算机能力的提高和计算机造价的降低。特别是第一条对RSA的威胁最大,因为只要大数分解的问题不解决,做乘法总是比分解因数快得多,计算机能力强大了尽可以加长密匙来防御,因为那时加密也会快得多的。目前用一种完全不同的方法来对RSA进行密码分析还只 [10][11]是一种想象。 五、数据库安全模型的研究 当前,数据库安全模型的研究领域一直是人们关注的焦点,自主存取控制(DAC,Discretionary Access Control)、强制存取控制(MAC—Mandatory Access Control)及近来兴起的基于角色的存取控制 18 (RBAC—Role-Based Access Contorl)等模型都是构建数据库安全模型的基础。本文在分析借鉴传统数据库安全模型DAC及MAC的基础上,有所创新并发展起来的。利用在RBAC模型上增加加密层的方式构建了加密数据库安全模型。 (一)传统数据库安全模型 传统的数据库安全模型的研究起源于操作系统安全体系研究的基 [14]础之上,典型代表是ACM(Access Control Models存取控制模型)。这种模型最早由Lampson于1971年创立,经Graham和Denning发展而成。它的主要思想是:由一个三元组代表数据的每一种存取状态(S,O,M),其中S是所有者集合,O是所有者对应的操作对象集合,M是一个行、列分别由所有者、操作对象组成的存取权限矩阵。M[s,o]表示所有者s对操作对象o的存取权限。每一个存取状态的改变都要通过对矩阵M的修改来完成。但这种模型的缺陷在于,在一个给定的存取控制模型中,即使用户对能派生出权限的每一种操作都很熟悉,也难以预测可能派生出来的存取权限,可实际情况是用户自己对进行 [15][16]的操作的结果通常是一无所知的。 针对这种情况,出现了两种截然不同的存取控制策略,即DAC与MAC模型。DAC模型,是基于对象所有者的授权机制,其核心是对象的所有者(通常是它的创建者)具有将这个对象的存取控制权自主授予其他主体的权限。它允许对象所有者规定对对象的共享控制,这种控制可通过对象所有者授权形式任意改变其它主体对对象的访问权限。这种模型起源于1971年,由Lampson创立,这种模型的安全控制 19 策略具有以下特征:(1)对象的创建者自动成为其所有者;(2)一个 [11][12]对象只能有一个所有者;(3)只有对象的所有者才有权删除该对象。DAC模型实现上多采用存取控制列表(ACLs—Access Control Lists)形式,即由主体、客体及存取操作三种元素组成ACLs。在ACLs中的行表示主体,列表示客体,ACLs的内容则为存取操作(如读、写、修改等)。在这个列表中,指定主体(行)与客体(列)后可得到限定的 [17]操作。DAC模型是目前国内外流行的数据库管理系统如Oracle、Sybase、Informix、SQL Server等较多采用的模型。但DAC模型将用户与对象直接绑定,增加了系统管理员管理上的复杂性,并且它无法控制信息的合法流动,适合于单机方式下的访问控制。 MAC模型,是基于偏序关系的格理论决定主体访问客体的数学模型,该模型的典型代表是1973年提出的Bell-Lapandula模型。模型的安全控制策略是:(1)在主/客体上定义安全标记(security labels)—λ(通常定义的λ不能改动),λ只有系统安全管理员有权变动;(2)只有当λ(主体)?λ(客体)时,主体才能读客体(Simple Security Property);(3)只有当λ(主体)?λ(客体)时,主体才能写客体(Liberal *-property)。DAC及MAC模型在数据库领域中,主体指的是DBMS的用户;客体主要指的是DBMS的数据逻辑结构及相应数据, [18][19][20]其具体化为表与视图,并更进一步可具体化为存储过程。MAC模型实现上将安全标记定义成二元组的方式,一个主/客体安全标记是一个数字或一个字母集合,它分为两种:一种是安全级别(Security Level)标记,另一种是安全范围(Security Category)标记,可表示 20 为(n,{A,B,C„})。安全级别是一个数字,它规定了主客体的安全级别;范围标记是一个字母集,它规定了主体的访问范围。只有主体安全级别标记高于客体的安全级别标记,并且主体的安全范围标记包含或相等于客体的安全范围标记时主体才能读客体;只有主体安全级别标记低于客体的安全级别标记,并且主体的安全范围被包含于或等于 [11][12][13]客体的安全范围标记时主体才能写客体。MAC模型能够有效地控制信息的流动,是网络环境下实现数据安全的有效方式。 RBAC模型是一种作为传统DAC与MAC模型的替代模型而出现的模型,它可以完全实现DAC与MAC模型的控制策略,但不允许用户与权 [17]限直接关联。在RBAC模型中,可以通过三元组(U,R,P)描述RBAC模型中的实体集合,U代表用户(Users)、R代表角色(Roles)、P代表权限(Permissions)。权限首先被授予角色(Role),用户以角色成员的形式出现,从而拥有角色所具有的权限。当用户的工作属性发生变化时,只须调整用户与角色之间的对应关系;当角色的权限需要调整时,只须改变角色与权限之间的对应关系。模型中用户、角色及权限之间的定义与映射关系为: type 用户 of 合法的登录用户; type 角色 of 角色定义标识 type 操作 of 可执行的操作 type 对象 of 信息载体(表、视图、存储过程等) (操作集×对象集) type 权限 of 2 权限RP(r:角色)?2(角色到权限集合所有子集的映射) 21 用户RM(r:角色) ?2(角色到用户集合所有子集的映射) 这种基于角色的存储控制较先前的存储控制矩阵模型提供了更大的灵活性。它可以实现角色间的继承、互斥及分层,解决了ACLs直接 [13]与特定对象绑定所造成的管理上复杂性高的问题。 (二)加密数据库安全模型 基于传统的数据库安全模型,加密数据库安全模型采用将加密系统做成DBMS的一个外层工具的形式,它是由基于角色的存取控制模型(Role-Base Access Control Model)发展而来。它利用角色实现传统数据库安全模型中的存取控制及用户与数据的分类功能,应用数据加密方式堵塞隐蔽通道,采用了标记与强制访问控制策略。 1. 加密数据库安全模型的体系结构: 角色管理 加密系统 应用程序 用户 数 据用户数据 加/ 数据字典 数解据引管理程序 库 擎 角色 数据字典 对象 操作 权限 图4 加密数据库安全模型 22 体系结构如图4所示。这个数据库安全模型在体系结构上采用了四级安全层的方式实现DBMS的安全性,即外层、中间层、内层和分析层。外层的功能是验证用户身份的合法性,只有拥有合法的登录帐号(连同口令)才能向数据库注册,使用数据库系统中的一些资源;中间层是基于RBAC模型策略基础上的授权机制,它首先在系统中建立两个角色,读角色与写角色。在以DAC模型授权时,权限首先被授予角色,用户以角色成员的形式出现,从而拥有角色所具有的权限。在执行MAC模型的强制访问控制时,分别对用户与角色进行安全标记,角色向用户的授权必须满足强制访问控制的要求;内层是包含了密码系统和密钥管理的数据加密层,这级安全措施通过将原始数据转换成不可直接读取的加密形式,数据的保密性、防篡改及可靠性都得到了保证;分析层是包含审计控制的安全分析层,由于构建不受攻击的数据库是不可能实现的,安全系统必须提供侦测对数据库非法访问的机制。在这四级安全层中,外层、中间层和内层提供的是数据库主动防护,分析层提供的是数据库被动的防护。 2.数据加密层的形式化描述 在模型中,数据加密层是独立于DBMS的。任何标准的SQL语言,只要遵循相应的协议,向数据加密层发送其可以识别的SQL语句,就可以存取加密数据。可形式化为: 数据加密层=(函数调用接口,行为方法,约束条件) <函数调用接口>::=<登录认证><参数> <登录认证>::=<服务器名><用户名><口令> 23 <参数>::=<标准sql语句><密钥信息> <行为方法>::=<登录认证><数据加密><数据解密> <约束条件>::=<权限约束><语法约束> 3. 强制访问控制(Mandatory Access Control) 在加密数据库安全模型中,利用RBAC模型实现强制访问控制,主/客体的安全粒度分别是合法登录的用户个体与角色个体。强制访问控制是在为合法用户授予角色的过程中实现的,即定义读或写两种角色,R={LR…LR,LW…LW}(L为定义在角色上的安全标记),系1n1n 统每一个用户的初始状态设置为xR与LW,其中x为定义在用户上的安全标记,LW为具有最低安全层次的“写”角色。 模型中在授权时,只有用户安全级别标记高于角色的安全级别标记时,并且用户的安全范围标记包含或相等于角色的安全范围标记时,才能授予用户该“读”角色;只有用户安全级别标记低于角色的安全级别标记,并且用户的安全范围被包含于或等于角色的安全范围标记时,才能授予用户该“写”角色。 4. 数据字典与数据加/解密引擎 数据字典管理程序,是系统管理员变更加密要求、系统安全管理员管理强制访问控制的工具。在这个模块中,系统管理员可增加、删除、浏览和变更数据库对象及其加密要求,并完成明/密文数据的备份及权限的分配。 数据库加/解密引擎是数据库加密系统的核心部件,负责在后台完成数据库信息的加/解密处理,对操作人员透明。 24 这两个模块之间的关系是:数据字典管理程序通过数据库加/解密引擎实现对数据库表的加密、解密及数据转换等功能,此时,它作为一个特殊客户来使用数据库加/解密引擎。 这个数据库加密模型能够有效地保证数据的安全。即使黑客窃取了关键数据,他仍然难以得到所需的信息,因为所有的数据都经过了加密,可以大大提高关键数据的安全性。 5.数据加/解引擎的效率分析 数据加/解引擎在客户端进行数据加/解密运算,不影响数据库服务器的系统效率,其对系统的主要代价表现在:运用RSA算法取得数据库中数据加/解密的核心密钥;数据的加/解密操作代价。 其中数据库中数据加/解密核心密钥的解密在数据加/解密模块的入口处获得:RSA加/解密位数为128位,密钥长度16位,解密时间为0.04s。 数据的加/解密操作主要是IDEA算法的加/解密操作,经对1,000字节—20,000字节的数据进行测试(其解密算法是针对具有相应字节数的加密数据进行解密的代价),其代价如下:(时间单位:秒) 1,0002,0003,0004,0005,00010,00015,00020,000 字节 字节 字节 字节 字节 字节 字节 字节 加密0.041 0.201 0.42 0.73 1.122 4.316 7.624 17.033 算法 解密0.01 0.03 005 0.06 0.07 0.19 0.371 0.601 算法 [12]其加密算法代价折线形图如图5: 25 图5 加密算法效率图 [12]相应解密算法代价折线图如图6: 图6 解密算法效率图 由此可见,算法加密时响应时间随数据量的增加增长得较快,但由于用户一次性对数据执行加密操作的数据量相对较小,则系统响应时间应很短。相反,算法解密时响应时间随数据量的增加增长不多,适合用户对数据库执行查询操作等的数据量比较大的运算,而算法相应响应效率也很快,用户基本上无延迟感。 (三)存在的不足与改进的方向 本文的不足是对数据库二级加密模式提出设想,并没有实际解决并给具体的操作方法。 26 由于数据库采用了数据加密的形式,大大增加了对数据字典的存取次数。但在开发中,数据字典是以数据表的形式存储在数据库中,从而限制了数据字典的存取效率。改进的方向一是以文件的形式存取数据字典,并在文件中建立索引以加快存取过程;二是对数据量不大且使用频率高的数据字典建立内存映象,将外存操作变成为内存操作。 六、结 论 在数据库安全和加密技术的研究方面,本文只是作了一些阶段性的工作,许多细节还有待于进一步深入研究。、如果采用多级安全模式策略,将使数据库的安全系数显著提高。 与传统的数据库存取控制安全策略不同,数据库加密技术提供的是数据一级的安全防护措施,是网络环境下保障数据库系统信息安全的有效手段。在目前广泛流行的大型数据库系统没有提供数据加密功能的情况下,本文研究构建的加密数据库安全模型,采用将数据加密层功能封装在数据库系统外层实现的方法,在基于角色存取控制策略的基础上实现数据库强制访问控制及数据库数据加密,并在设想了两级库结构的数据库加密技术。这种数据库加密技术较好地解决了在数据库加密技术中加密字段、加密功能的限制及对DBMS原有功能的影响的问题。本文在密码算法及密钥管理方面同时进行了有益的探索,提出了适于数据库加密技术的密码算法及密钥管理方案。 27 参考文献 [1] 朱良根,雷振甲,张玉清(数据库安全技术研究[J](计算机应用研究,2004 [2] 温丹昊,陆阳(基于数字签名技术的数据库安全共享机制[J](网络安全技术与应用,2005(6):55-57 [3] 徐洁磐,等. 基于安全Linux的Softbase(Secure)的设计方案探讨. 计算机科学2000.10.增刊 [4] 高品均,陈荣良. 数据库加密技术综述. 计算机世界2000.8 [5] 李克洪,王大铃,董晓梅(实用密码学与计算机数据安全(东北人学出版社,2001(7 [6 李昭原(数据库技术新进展[M](北京:清华大学出版社,1997 [7] 俞盘祥(ORACLE数据库系统基础[M](北京:清华大学出版社,1995(41(42 [8] 沈佩娟,汤荷美(数据库管理及应用开发[M](清华大学出版社,1995 [9] 洪帆,蔡蔚(一个用于多级安全关系数据库系统的改进Bell La Padula模型阴(计算机学报,2005 [10] 刘甫迎,邓礼清等(数据库原理及应用[M](重庆:重庆出版社,1998 [11] 刘启原,刘怡(数据库与信息系统的安全[M](科学出版社,2000,1(20,28 [12] 徐洁磐,等. 网络环境下数据安全模型及其实现的探讨. 计算机科学 2000.10.增刊 [13] 卿斯汉,冯登国(信息系统的安全[M](北京:科学出版社,1999, [14] 方勇,刘嘉勇.信息系统安全导论[M](北京:电子x-_,kl出版社,2002( [15] 戴英侠,连一峰,王航系统安全与入侵检测[M](北京:清华大学出版社,2003( [16] 高晗(web数据库技术[M](北京:中国水利水电出版社(2001( [17] 晓通网络数据库研究所 . Open Client DB-Library编程指南 .内蒙古人民出版社.1998 [18] 徐洁磐,应丽君. Softbase(Secure)数据安全子系统的设计与实现. 计算机科学2000.10.增刊 [19] 刘启原,刘怡.数据库与信息系统的安全[M](科学出版社,2000( [20] 李海泉,李健.计算机网络安全与加密技术[M](科学出版社,2001( 28 [21] 曹效阳(浅谈SQL Server中的安全策略[M](现代计算机(2006( [22] 江南,常春. SQL Server2000安全验证的故障诊断与分析. 计算机与数字工 程,2006 致 谢 衷心感谢金国鸣老师对我的悉心指导,我的每一点进步都渗透着金老师的心血。金老师严谨的治学态度和高度的责任心使我受益匪浅,并将一直指导我今后的工作和生活。 值此完成之际,再次感谢金老师,并对所有关心和支持过我的老师和同学致以深深的谢意。 29
/
本文档为【数据库安全技术】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索