数据库系统的安全性很大程度上依赖于数据库管理系统。如果数据库管理系统安全机制非常强大,则数据库系统的安全性能就较好。目前市场上流行的是关系式数据库管理系统,其安全性功能很弱,这就导致数据库系统的安全性存在一定的威胁。
由于数据库系统在操作系统下都是以文件形式进行管理的,因此入侵者可以直接利用操作系统的漏洞窃取数据库文件,或者直接利用OS工具来非法伪造、篡改数据库文件内容。这种隐患一般数据库用户难以察觉,分析和堵塞这种漏洞被认为是B2级的安全技术措施。
数据库管理系统层次安全技术主要是用来解决这一问题,即当前面两个层次已经被突破的情况下仍能保障数据库数据的安全,这就要求数据库管理系统必须有一套强有力的安全机制。解决这一问题的有效方法之一是数据库管理系统对数据库文件进行加密处理,使得即使数据不幸泄露或者丢失,也难以被人破译和阅读。
我们可以考虑在三个不同层次实现对数据库数据的加密,这三个层次分别是OS层、DBMS内核层和DBMS外层。
⑴在OS层加密。在OS层无法辨认数据库文件中的数据关系,从而无法产生合理的密钥,对密钥合理的管理和使用也很难。所以,对大型数据库来说,在OS层对数据库文件进行加密很难实现。
⑵在DBMS内核层实现加密。这种加密是指数据在物理存取之前完成加/脱密工作。这种加密方式的优点是加密功能强,并且加密功能几乎不会影响DBMS的功能,可以实现加密功能与数据库管理系统之间的无缝耦合。其缺点是加密运算在服务器端进行,加重了服务器的负载,而且DBMS和加密器之间的接口需要DBMS开发商的支持。
◆定义加密要求工具
◆DBMS
◆数据库应用系统
◆加密器
⑶在DBMS外层实现加密。比较实际的做法是将数据库加密系统做成DBMS的一个外层工具,根据加密要求自动完成对数据库数据的加/脱密处理:
◆定义加密要求工具加密器
◆DBMS
◆数据库应用系统
采用这种加密方式进行加密,加/脱密运算可在客户端进行,它的优点是不会加重数据库服务器的负载并且可以实现网上传输的加密,缺点是加密功能会受到一些限制,与数据库管理系统之间的耦合性稍差。
下面我们进一步解释在DBMS外层实现加密功能的原理:
数据库加密系统分成两个功能独立的主要部件:一个是加密字典管理程序,另一个是数据库加/脱密引擎。数据库加密系统将用户对数据库信息具体的加密要求以及基础信息保存在加密字典中,通过调用数据加/脱密引擎实现对数据库表的加密、脱密及数据转换等功能。数据库信息的加/脱密处理是在后台完成的,对数据库服务器是透明的。
◆加密字典管理程序
◆加密系统
◆应用程序
◆数据库加脱密引擎
◆数据库服务器
◆加密字典
◆用户数据
按以上方式实现的数据库加密系统具有很多优点:首先,系统对数据库的最终用户是完全透明的,管理员可以根据需要进行明文和密文的转换工作;其次,加密系统完全独立于数据库应用系统,无须改动数据库应用系统就能实现数据加密功能;第三,加解密处理在客户端进行,不会影响数据库服务器的效率。
数据库加/脱密引擎是数据库加密系统的核心部件,它位于应用程序与数据库服务器之间,负责在后台完成数据库信息的加/脱密处理,对应用开发人员和操作人员来说是透明的。数据加/脱密引擎没有操作界面,在需要时由操作系统自动加载并驻留在内存中,通过内部接口与加密字典管理程序和用户应用程序通讯。数据库加/脱密引擎由三大模块组成:加/脱密处理模块、用户接口模块和数据库接口模块,其中,"数据库接口模块"的主要工作是接受用户的操作请求,并传递给"加/脱密处理模块",此外还要代替"加/脱密处理模块"去访问数据库服务器,并完成外部接口参数与加/脱密引擎内部数据结构之间的转换。"加/脱密处理模块"完成数据库加/脱密引擎的初始化、内部专用命令的处理、加密字典信息的检索、加密字典缓冲区的管理、SQL命令的加密变换、查询结果的脱密处理以及加脱密算法实现等功能,另外还包括一些公用的辅助函数。
数据加/脱密处理的主要流程如下:
(1) 对SQL命令进行语法分析,如果语法正确,转下一步;如不正确,则转6),直接将SQL命令交数据库服务器处理。
(2) 是否为数据库加/脱密引擎的内部控制命令?如果是,则处理内部控制命令,然后转7);如果不是则转下一步。
(3) 检查数据库加/脱密引擎是否处于关闭状态或SQL命令是否只需要编译?如果是则转6),否则转下一步。
(4) 检索加密字典,根据加密定义对SQL命令进行加脱密语义分析。
(5) SQL命令是否需要加密处理?如果是,则将SQL命令进行加密变换,替换原SQL命令,然后转下一步;否则直接转下一步。
(6) 将SQL命令转送数据库服务器处理。
(7) SQL命令执行完毕,清除SQL命令缓冲区。
分享到:
相关推荐
学生信息管理系统 1 引言 1.1 项目背景 随着信息技术在管理上越来越深入而广泛的应用, 管理信息系统的实施在技术上已逐步 成熟。管理信息系统是一个不断发展的新型学科,任何一个单位要生存要发展,要高效率地 把...
要深入了解数据库系统的内部结构,以开发出高效的数据库应用系统,也需要学习和研究数据库管理系统实现技术。 Hector Garcia-Molina、Jeffrey D. Ullman和Jennifer Widom是斯坦福大学著名的计算机科学家,多年来他们...
要深入了解数据库系统的内部结构,以开发出高效的数据库应用系统,也需要学习和研究数据库管理系统实现技术。 Hector Garcia-Molina、Jeffrey D. Ullman和Jennifer Widom是斯坦福大学著名的计算机科学家,多年来他们...
数据库管理系统(DBMS)是指数据库系统中管理数据的软件系统。DBMS是数据库系统的核心组成部分。对数据库的一切操作,包括定义、更新及各种控制,都是通过DBMS进行的。DBMS总是基于某种数据模型,可以把DBMS看成是...
数据库设计报告 课题:超市会员管理系统 专业:通信工程 学号: 姓名: 小组成员: 指导老师: 完成日期:2013/7/1 摘要 本会员超市会员管理系统... 1.3.2 简介 2008数据库管理系统具有以下主要特点。 (1) 丰富的图形
1.1 用户需求的获取 管理系统主要提供成绩查询,方便管理的网上的信息查阅平台,学生可以通过该系统 查阅与自己相关信息,教师可以通过成绩管理系统查阅学生成绩信息,教师信息,等相关操作。系统管理员可以实现...
数据库设计报告 课题:超市会员管理系统 专业:通信工程 学号: 姓名: 小组成员: 指导老师: 完成日期:2013/7/1 摘要 本会员超市会员管理系统实际的业务流程为背景而设计的,后台数据库的设计用SQL Server 2008,...
基本概念和术语: 这些问题涉及数据库的基本概念,如什么是数据库、数据模型、数据库管理系统(DBMS)、SQL等。学习者需要理解这些术语的含义和作用。 数据模型与设计: 这些问题探讨数据库的各种数据模型,如层次...
数据库设计报告 课题:超市会员管理系统 专业:通信工程 学号: 姓名: 小组成员: 指导老师: 完成日期:2013/7/1 摘要 本会员超市会员管理系统实际的业务流程为背景而设计的,后台数据库的设计用SQ L Server 2008...
数据库设计报告 课题:超市会员管理系统 专业:通信工程 学号: 姓名: 小组成员: 指导老师: 完成日期:2013/7/1 摘要 本会员超市会员管理系统实际的业务流程为背景而设计的,后台数据库的设计用SQL Server 2008,...
书中对数据库系统实现原理进行了深入阐述,并具体讨论了数据库管理系统的三个主要成分—存储管理器、查询处理器和事务管理器的实现技术。书中还对信息集成的最新技术,例如数据仓库、OLAP、数据挖掘、Mediator、数据...
通过对学生信息管理系统的设计慢慢了解,深入学习,从而达到熟练掌握.NET基本结构以及C#语言的基本知识和技能;基本掌握面向对象程序开发的基本思路和方法;掌握ADO.NET数据库开发基本知识;能够利用所学的基本知识...
对相关子系统不同的硬件平台、操作系统、实现技术、数据库数据格式等要求要有兼容性,能进行统一用户管理与权限集中管理,并且提供详细的系统技术手册。开发良好的扩展性,为以后进一步提升系统的服务层次提供相应的...
Access 2000数据库系统设计(PDF)---025目 录译者序前言第一部分 Access基础第1章 Access 2000的新增功能 11.1 Access 2000透视 11.2 用Office Web组件部署数据访问页 21.2.1 Office Web 组件 21.2.2 DAP演示测试....
《基于SSH的学生信息管理系统设计与实现报告.doc》是一份详尽而有价值的文档,详细描述了基于SSH(Struts2 + Spring + Hibernate)框架开发的学生信息管理系统的设计、实现过程和成果。该报告不仅记录了项目的整体...
预警监测体系 基础防护体系 安全策略方针 角色职责矩阵 安全通报机制 安全人员管理 教育培训计划 策略制定发布 安全技术管理 安全操作规范 安全设备管理 安全环境管理 安全组织架构 主管部门 公安/保密 CN CERT 测评...
3.4.2 Oracle数据库中的存储层次体系 87 3.4.3 字典管理和本地管理的表空间 91 3.5 临时文件 93 3.6 控制文件 95 3.7 重做日志文件 95 3.7.1 在线重做日志 96 3.7.2 归档重做日志 98 3.8 密码文件 100 3.9 ...