数据库系统的安全性很大程度上依赖于数据库管理系统。如果数据库管理系统安全机制非常强大,则数据库系统的安全性能就较好。目前市场上流行的是关系式数据库管理系统,其安全性功能很弱,这就导致数据库系统的安全性存在一定的威胁。
由于数据库系统在操作系统下都是以文件形式进行管理的,因此入侵者可以直接利用操作系统的漏洞窃取数据库文件,或者直接利用OS工具来非法伪造、篡改数据库文件内容。这种隐患一般数据库用户难以察觉,分析和堵塞这种漏洞被认为是B2级的安全技术措施。
数据库管理系统层次安全技术主要是用来解决这一问题,即当前面两个层次已经被突破的情况下仍能保障数据库数据的安全,这就要求数据库管理系统必须有一套强有力的安全机制。解决这一问题的有效方法之一是数据库管理系统对数据库文件进行加密处理,使得即使数据不幸泄露或者丢失,也难以被人破译和阅读。
我们可以考虑在三个不同层次实现对数据库数据的加密,这三个层次分别是OS层、DBMS内核层和DBMS外层。
⑴在OS层加密。在OS层无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,对密钥合理的管理和使用也很难。所以,对大型数据库来说,在OS层对数据库文件进行加密很难实现。
⑵在DBMS内核层实现加密。这种加密是指数据在物理存取之前完成加/脱密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持。
定义加密要求工具
DBMS
数据库应用系统
加密器
(软件或硬件)
⑶在DBMS外层实现加密。比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,根据加密要求自动完成对数据库数据的加/脱密处理:
定义加密要求工具加密器
(软件或硬件)
DBMS
数据库应用系统
采用这种加密方式进行加密,加/脱密运算可在客户端进行,它的优点是不会加重数据库服务器的负载并且可以实现网上传输的加密,缺点是加密功能会受到一些限制,与数据库管理系统之间的耦合性稍差。
下面我们进一步解释在DBMS外层实现加密功能的原理:
数据库加密系统分成两个功能独立的主要部件:一个是加密字典管理程序,另一个是数据库加/脱密引擎。数据库加密系统将用户对数据库信息具体的加密要求以及基础信息保存在加密字典中,通过调用数据加/脱密引擎实现对数据库表的加密、脱密及数据转换等功能。数据库信息的加/脱密处理是在后台完成的,对数据库服务器是透明的。
加密字典管理程序
加密系统
应用程序
数据库加脱密引擎
数据库服务器
加密字典
用户数据
按以上方式实现的数据库加密系统具有很多优点:首先,系统对数据库的最终用户是完全透明的,管理员可以根据需要进行明文和密文的转换工作;其次,加密系统完全独立于数据库应用系统,无须改动数据库应用系统就能实现数据加密功能;第三,加解密处理在客户端进行,不会影响数据库服务器的效率。
数据库加/脱密引擎是数据库加密系统的核心部件,它位于应用程序与数据库服务器之间,负责在后台完成数据库信息的加/脱密处理,对应用开发人员和操作人员来说是透明的。数据加/脱密引擎没有操作界面,在需要时由操作系统自动加载并驻留在内存中,通过内部接口与加密字典管理程序和用户应用程序通讯。数据库加/脱密引擎由三大模块组成:加/脱密处理模块、用户接口模块和数据库接口模块,如图4所示。其中,"数据库接口模块"的主要工作是接受用户的操作请求,并传递给"加/脱密处理模块",此外还要代替"加/脱密处理模块"去访问数据库服务器,并完成外部接口参数与加/脱密引擎内部数据结构之间的转换。"加/脱密处理模块"完成数据库加/脱密引擎的初始化、内部专用命令的处理、加密字典信息的检索、加密字典缓冲区的管理、SQL命令的加密变换、查询结果的脱密处理以及加脱密算法实现等功能,另外还包括一些公用的辅助函数。
数据加/脱密处理的主要流程如下
(1) 对SQL命令进行语法分析,如果语法正确,转下一步;如不正确,则转6),直接将SQL命令交数据库服务器处理。
(2) 是否为数据库加/脱密引擎的内部控制命令?如果是,则处理内部控制命令,然后转7);如果不是则转下一步。
(3) 检查数据库加/脱密引擎是否处于关闭状态或SQL命令是否只需要编译?如果是则转6),否则转下一步。
(4) 检索加密字典,根据加密定义对SQL命令进行加脱密语义分析。
(5) SQL命令是否需要加密处理?如果是,则将SQL命令进行加密变换,替换原SQL命令,然后转下一步;否则直接转下一步。
(6) 将SQL命令转送数据库服务器处理。
(7) SQL命令执行完毕,清除SQL命令缓冲区。
分享到:
相关推荐
数据库管理系统层次安全技术 数据库管理系统的安全性对数据库系统的安全性能起着至关重要的作用。如果数据库管理系统的安全机制非常强大,那么数据库系统的安全性能就较好。然而,市场上流行的关系式数据库管理系统...
数据库系统的安全除依赖自身...数据库管理系统层次。这三个层次构筑成数据库系统的安全体系,与数据安全的关系是逐步紧密的,防范的重要性也逐层加强,从外到内、由表及里保证数据的安全。本文就这三个层次详细讨论。
⑶数据库管理系统层次。这三个层次构筑成数据库系统的安全体系,与数据安全的关系是逐步紧密的,防范的重要性也逐层加强,从外到内、由表及里保证数据的安全。本文就安全框架的三个层次展开论述。
文中还以在DBMS外层实现加密功能的原理为例,详细说明了如何应用数据库管理系统层次的安全技术。 数据库系统安全框架的三个层次是相辅相承的,各层次的防范重点和所采取的技术手段也不尽相同,一个好的安全系统必须...
在信息技术领域,数据库管理系统(Database Management System,简称DBMS)是用于存储、管理和检索数据的重要工具。而采用VC++(Visual C++)作为开发环境来构建数据库管理系统,可以充分利用其强大的编程能力和丰富...
多级安全关系数据库管理系统作为一种先进的安全技术,在保障数据安全方面发挥着重要作用。SECBase系统通过引入新的设计理念和技术方案,为解决数据库内部响应模块的设计与应用问题提供了新的思路。未来的研究可以...
【数据库管理系统Access 2000】是微软公司推出的一款关系型数据库管理系统,适用于个人或小型企业使用。Access 2000在20世纪90年代末期发布,是数据库技术与计算机网络技术结合的产物,它极大地提升了数据处理和信息...
数据库管理系统(DBMS)是实现数据库功能的核心软件,它允许用户创建、查询、更新和管理数据库。这篇论文集主要探讨了数据库及管理系统的相关概念、设计原则、操作技术以及在实际应用中的挑战和解决方案。 首先,...
数据库管理系统是信息技术领域中的核心组成部分,它用于存储、管理和检索数据,是企业信息化建设的关键工具。这份大学课程设计报告深入探讨了数据库管理系统的原理与应用,涵盖了从需求分析到系统实现的全过程,对于...
这篇论文由山西大学计算机与信息技术学院的学生团队完成,旨在通过设计和实现一个小型超市管理系统,来理解和应用数据库系统的核心概念和技术。 在系统开发背景部分,论文指出随着互联网技术的发展,超市管理系统的...
《数据库管理系统:原理与设计(第3版)》是一本深入探讨数据库管理系统的专业书籍,旨在阐述数据库系统的基础理论、核心技术和设计方法。在信息化社会中,数据库管理系统是存储、管理和处理数据的关键工具,对于...
在《数据库管理系统:原理与设计(第3版)》这本书中,作者深入浅出地探讨了数据库开发的关键概念和技术,旨在帮助读者理解数据库系统的本质,并具备设计和实现数据库的能力。 首先,本书将引导读者了解数据库系统...
数据库管理系统(DBMS)是现代信息技术领域的基石之一,它负责实现对数据的高效组织、存储、管理和存取。随着技术的不断进步,DBMS已经成为了继操作系统之后最为复杂的系统软件之一,为各种应用系统提供了可靠的数据...
技术的每一次迭代都推动了数据库管理系统的进步,并逐步形成了更加复杂、高效、安全的数据管理解决方案。从企业到个人用户,数据库技术的应用领域不断扩大,几乎渗透到人类社会的每一个角落。 而今,数据库管理系统...
根据提供的标题、描述和标签,“数据库管理系统...综上所述,《数据库管理系统原理与设计++(第3版)》这本书全面而深入地探讨了数据库管理系统的基础理论和技术细节,对于学习和研究数据库技术具有重要的参考价值。
综上所述,设计公司信息数据库管理系统是一项涉及多方面知识的综合任务,涵盖数据模型设计、数据库架构选择、SQL查询优化、安全性保障等多个环节。通过深入理解并应用这些知识,可以构建出高效、可靠的数据库系统。
当今社会是科技普及的时代。人们的工作和生活中已经不同程度地融入了各种先进技术。计算机技术就是其中应用最广泛、利用最好的技术之一,数据库技术是计算机技术中比较...简单阐述数据库管理系统层次安全与管理措施。
【选线工程数据库管理系统集成技术】是铁路设计领域的重要研究方向,主要针对铁路新线设计过程中数据的高效管理和处理。该系统的核心在于构建一个能够整合多种类型数据(图形、文本和数值)的数据库,以支持复杂的...
在“C++数据库管理系统开发集成案例分析”中,我们探讨的核心技术主要集中在如何利用C++这一强大编程语言来设计和实现高效、稳定的数据库管理系统。C++以其面向对象的特性、性能优势以及丰富的库支持,成为了开发...