目录
1 前言...................................................................................................................................................2
2 数据库安全系统概述...................................................................................................................... 2
2.1 数据库安全的威胁.................................................................................................................. 2
2.2 数据库安全策略...................................................................................................................... 3
3 数据库安全机制及其强化.............................................................................................................. 4
3.1 数据库安全控制...................................................................................................................... 4
3.2 强制存取控制.......................................................................................................................... 4
3.3 资源管理.................................................................................................................................. 5
3.4 数据库备份与恢复.................................................................................................................. 5
3.5 审计.......................................................................................................................................... 6
4 数据库加密...................................................................................................................................... 6
4.1 密码设计.................................................................................................................................. 6
4.2 密钥管理.................................................................................................................................. 7
4.3 安全外壳设计.......................................................................................................................... 7
4.4 加密对数据库的影响及解决办法.......................................................................................... 8
5 数据库应用系统的安全设计.......................................................................................................... 8
1
数据库安全技术研究
数学计算机学院软件工程专业 2006 届 张亮
摘要 本文论述了数据库安全系统的概念 ,数据库的安全机制及其强化方法 ,
最后给出了数据库安全的设计与实现方法 .
关键词 数据库管理系统;数据库安全;存取控制
正文
1 前言
随着计算机科学技术的发展与普及 ,特别是计算机在国民经济的广泛应用 ,计算机安全
已是当前信息社会非常关注的突出问题 .而数据库系统担负着存储和管理信息的任务 ,泄漏
或破坏这些信息将会带来巨大的损失 ,可能造成企业瘫痪 .有人说 ,信息是财富 ,这话不完
全正确 .应该说 ,只有安全的信息才是财富 ,不安全的信息则可能是灾难 .因此 ,如何保证
数据库系统的安全性 ,已是目前迫切需要解决的课题 .数据库界对此十分重视 ,各数据库厂
商纷纷在自己的产品中实现其安全功能 ,如安全控制策略 ,资源管理 ,数据库备份与恢复 ,
锁定和审计等 .这些功能显然是不够的 .其主要原因是 ,数据库中数据是以明码方式存放
的 .数据库的安全主要是指保护数据库以防止非法存取 ,保证数据库中数据的完整性 ,一致
性以及数据库备份与恢复 ,数据库安全的目标是:进不来 ,拿不走 ,看不懂 .即:攻击者很难
进入数据库系统 ,即使进入系统也无法获取对其有用的信息 ,即使获取了信息 ,也无法辨
识 .
2 数据库安全系统概述
所谓数据库系统安全 ,主要包括两层含义:一是指系统运行安全;二是指系统信息安全 .
2.1 数据库安全的威胁
数据库安全的威胁来自许多方面:
2
(1)硬件:包括火灾 ,洪水 ,地震等自然灾害 ,媒体损坏 ,电磁辐射 ,通信暴露等 .
(2)软件:操作系统 ,网络 ,数据库管理系统的故障 ,应用程序错误 ,误操作等 .
(3)安全技术研究没有达到相应水平 .
(4)管理上的漏洞;管理制度 ,组织机构 ,防范措施不健全 .
(5)人为攻击:这是最主要的威胁 ,其次是内部人员的失职和违反安全规定等 .
(6)其它: Trojan horse (特洛伊木马) Virus (计算机病毒) 的攻击 .
2.2 数据库安全策略
要解决系统的安全问题 ,首先必须制定一套安全策略 .
(1)完全自主方式 .从底层开始 ,包括硬件平台 ,操作系统 ,网络操作系统和数据库管理
系统 ,全部自己开发 .按道理这是最安全的 .但是面对这么多如此庞大的系统 ,其技术和时
间是一个问题 ,而且开发出的软件其错误也是不可避免的 ,可信性检测将非常困难 .这样一
来 ,也就谈不上安全问题 .
(2)底层依赖方式 .选用现有的安全的硬件平台 ,相对安全的操作系统 ,网络操作系统和
数据库管理系统 .在此基础上进行系统开发 .但其安全性问题同样值得忧虑 .因为没有人敢
断言这些庞大复杂的系统是可信的;也没有哪个用户拥有如此先进的手段对其进行可信性检
测 .有许多不安全因素都可能从这里产生 .
(3)组合构架方式 .即利用现有的安全的硬件平台 ,相对安全的操作系统 ,网络操作系统
和数据库管理系统 .在此基础上进行局部改造 ,开发安全外壳 .应该说 ,这是一个比较现实
的安全策略 .
数据库安全框架
从总体结构上 ,数据库安全框架采用层次结构 .
(1)硬件平台:首先计算机及相应的外设是安全的;
(2)操作系统:网络操作系统和数据库管理系统 ,这是整个安的基础之一;其次要充分利用
这些系统本身提供的安全功能;
(3)安全外壳:在原来的 DBMS 之上增加安全机制 ,进行数据加密;
(4)应用系统:设计执行控制机制 ,包括自主执行控制机制和制执行控制机制;
(5)权限管理:对不同的用户 ,用户组在相应的数据库对象上配相应的存取权限;
(6)用户接口 ,用户认证:系统要识别进入者的身份并确认是否为合法用户;
3
(7)安全管理:安全管理是第一位的 .
3 数据库安全机制及其强化
要强化数据库安全机制 ,首先必须对它要有充分的理解 .事实上 ,一个 DBMS 本身提
供的安全机制是数据库安全保密技术研究的重要内容之一 .
3.1 数据库安全控制
数据库系统提供了多种安全措施 ,包括限长口令 ,限级封锁 ,角色划分和授权 ,数据一
致性检查 ,视图 ,储过程 ,触发器 ,事务管理 ,两阶段提交等等 .其强化措施包括以下一些内
容:
(1)系统管理员角色由多人负责 ,即多把锁原则 .并且口令要加密处理;
(2)删除系统中的缺省用户;
(3)用户口令使用密码; (4)系统管理员要经常查询用户信息 ,以便发现冒名顶替者;
(5)系统管理员要经常查询进程的信息 ,以发现可疑进程 ,跟踪非法入侵者;
(6)系统管理员要经常查询系统错误或警告信息 ,以发现非法入侵者留下的痕迹;
(7)系统管理员不要将修改数据库的权限授予任何用户以避免合法用户的非法访问;
(8)要经常检查数据库中数据的一致性;
(9)使用视图 ,存储过程屏蔽数据库中的一些敏感数据;
(10)跟踪长事务 ,以发现非法入侵者 .
3.2 强制存取控制
系统为保证更高程度的安全性 ,按照 TDI/ TCSEC 标准中安全策略的要求 ,采取强制存
取检查手段 .每一个数据对象被标以一定的密级 ,每一个用户也被授予某一个级别的许可
证 .对于任何一个对象 ,只有具有合法许可证的用户才可以存取 .因此 ,强制存取控制相对
比较严格 .将 DBMS 所管理的全部实体被分为主体和客体两大类:主体是系统中的活动实
体 ,既包括 DBMS 所管理的实际用户 ,也包括代表用户的各进程 .客体是系统中的被动实
体 ,是受主体操纵的 ,包括各种数据库对象 .对于主体和客体 ,DBMS 为它们每个实例(值)
指 派 一 个 敏 感 度 标 记 Label .Label 被 分 成 若 干 级 别 : TopSecret ( 绝 密 ) ,Secret ( 机
4
密) ,Confidential (可信) ,Public (公开)等 .主体的敏感度标记称为许可证级别 ,客体的敏感度
标记称为密级 .通过对比主体的 Label 和客体的 Label ,确定主体是否能够访问客体 .主体对
客体的存取必须遵循下列原则:
· 仅当主体的许可证级别大于或等于客体的级别时 ,该主体才能读取相应的客体 .
· 仅当主体的许可证级别(低于 ,用户将看不到自己写入的数据)等于客体的级别时 ,该
主体才能写相
的客体 .
要对数据本身进行密级标记 ,因此 ,无论数据如何复制 ,标记与数据是一个不可分的整
体 .只有符合
级标记要求的用户才可以操纵相应的数据 ,从而提供了更高级别的安全性 .
具体实现可在记录一级上增加一个安全属性字段 ,其属性值为密级 ,对用户也划分密
级 .例如:
secure1 = right (username ,1) / 3 获取用户密级 .
secure2 = dw-2. object . psecurity[ row] / 3 获取客体密级 .
if secure1
< secure2 then / 3 比较主体与客体的密级 .
messagebox ( “对不起”, “你不能阅读这个报告” )
return / 3 仅当主体的密级大于或等于客体的级别时 ,该主体才能读取相应的
客体 .
end if
3.3 资源管理
资源管理的内容很多 ,其中最重要的是控制用户对资源的开销 .此外 ,还包括用户对段
和磁盘镜像的用 .将日志段与数据段分开以及建立磁盘镜像将方便数据库的恢复;同时使用
特殊的段来保存特别敏感数据也是一种安全措施 .
3.4 数据库备份与恢复
数据库的备份与恢复是整个安全的基础之一 ,是信息安全的一个重要内容 .它是增强系
统可靠性 ,最限度地减少硬件 ,软件故障造成数据丢失的必不可少的手段 .
5
3.5 审计
审计是一个可信赖的数据库系统的重要组成部分 .通过审计 ,与安全相关的系统活动就
被记录到审计跟踪里 ,审计跟踪可以用来检测系统的穿透度和资源的非法使用 .通过检查审
计跟踪 ,系统安全员可以检查访问数据库中对象的方式 ,并且监控特定用户的活动 .
4 数据库加密
仅靠上述这些基本安全技术是远远不够的 .因此有必要对数据库中存储的重要数据进
行加密处理 ,以实现数据存储的安全保护 .数据库加密乃是信息安全的根本措施 .
4.1 密码设计
密码设计的基本思想是伪装信息 ,只能由持有密钥的人才能明白其原来含义 ,而其它人
员理解不了信息含义 .密码设计的核心是所采用的密码体制 ,基本出发点是要有足够的保密
强度 ,能够承受各种级别的攻击;其次是运行效率 ,方便密钥管理 ,适应性好等 .它由两个基
本要素构成 ,即密码算法和密钥 .
较之传统的数据加密技术 ,数据库密码系统有其自身的要求和特点 .传统的加密以报文
为单位 ,加密脱密都是从头至尾顺序进行 .而数据库中的数据必须以字段为单位进行加密 ,
否则该数据库将无法被操作同时由于数据库中的数据是共享的 ,有权限的用户随时需要知
道密钥来查询 ,修改 ,删除和插入数据 ,这样就要随时对数据库中数据进行加解密处理 .因
此 ,数据库加密脱密密钥应该是相同的 ,采用对称密码体制是比较适宜的 .
DES 算法就是一种对称密码体制 .该算法是七十年代后期由 IBM 公司提出 ,作为美国
商用数据加密标准公布的 .经过二十多年的研究与使用 ,该分组密码算法被证明是一个优秀
的安全的和有效的算法 .但它的最大弱点是密钥只有 56 位(密钥通常表达成 64 位 ,但每
个 8 第位用于偶校验 ,而算法忽略了该位)
.如果采用蛮力的攻击轮流检验每一个密钥以
找出一个正确的密钥几乎处于可行性的边缘 .如果密钥采用 12 位 ,并且置换向量以密钥为
种子在程序初始化时随机生成 .这样 ,即使采用穷举搜索也是不可破译的 .其设计的基本思
想是: 对加密数据块作 16 次基本变换 ,每次基本变换是:
(1)把数据块分成左右两部分 ,左部循环左移四位;
6
(2)右部用置换向量作置换 ,模 256 加左部 ,模 256 加密钥;
(3)交换左右两部分 .这样的数据置乱与播散能够保证足够的加密强度 .数据的左部左
移保证了各字节相关 ,是一种播散;而置换与位移相结合达到了置乱的目的 .
4.2 密钥管理
现代密码学的一个基本原则是:一切秘密寓于密钥之中 .加密算法是由密钥来控制的 ,
如果密钥丢失 ,就会使非法用户窃取信息 .而且 ,从密钥管理的途径窃取信息要比破译密码
算法代价要小得多 .因此 ,产生和保存好密钥是至关重要的 .在密钥管理中 ,数据库系统更
有其自身的特点:它具有数据加密密钥的时间不变和用户不变的特点 .即数据一旦存入数据
库 ,在相当长的时间内是不改变的 ,因此 ,密钥也不能改变 .此外 ,不同用户访问同一数据
时所使用的主密钥是相同的 ,在用户口令改变之后 ,主密钥应保持不变 .这些特点使数据库
系统加密对密钥管理更为复杂 .可以采取以下几种技术:
(1)密钥简单加密处理 ,如半汉字 ,简单移位等;
(2)多把锁技术 ,即每人掌握密钥的一部分;
(3)函数处理 ,即密钥是函数的变元 ,其函数值用于加密;
(4)密钥的层次管理 .层次结构是建立在传统的对称加密体制的基础上 ,其基本思想是
用密钥来保护密钥 .
(5)密钥可以存放在证件盘上或存放在特殊数据库中 ,并且由专门人员保管 .
(6)将用户分组 ,并为每一组用户分配一个安全级别 .
4.3 安全外壳设计
安全外壳又称之为数据库加密 .数据库中的数据最终总是存放在计算机的硬盘上 .有经
验的用户完全可以绕过用户识别和用户认证等多道防范措施而直接读取数据库 .为此 ,必须
对数据库进行加密 .加密是以字段为单位进行 .但由于数据库系统自身的特点 ,并不是所有
字段都可进行加密 .DBMS 要完成对数据库的管理和使用 ,必须具有能够识别部分数据为条
件 .据此 ,只能对数据库中数据进行部分加密 .不能加密的字段包括:
(1)索引或聚族索引字段;
(2) 关系运算的比较字段;
(3) 主键和外键不能加密 .
7
4.4 加密对数据库的影响及解决办法
数据库数据加密以后 ,DBMS 的一些功能将无法使用 .这包括:
(1)无法实现对数据制约因素的定义 .
(2)关于数据长度问题: 欲加密的字段其长度为 32 的倍数 .
(3)Select 语句中的 Group by ,Order by ,Having 子句 .
(4) SQL 语言中的内部函数对加密数据将失去作用 .
(5)DBMS 的一些应用开发工具的使用将受到限制 .
对(3) , (4) , (5)条的解决办法是:通过建立临时表 ,首先将加密表中的数据脱密 ,送到临
时表中 ,然后对临时表执行上述操作 .
5 数据库应用系统的安全设计
对加密数据库的应用程序设计应考虑以下几个问题:
(1)首先应对数据库应用程序设置执行权限 .
(2)密钥放在证件盘上 .
(3)屏敝所有的功能菜单和按钮 ,只有当确认合法用户的合法操作时才给予相应的显
示 .(4)不能对整个数据库解密 ,只对合法用户查询的结果集解密 .
(5)当插入记录时 ,加密字段采用 PASSWORD 属性 .
(6)采用过滤器技术 ,在 DBMS 和用户之间增加过滤器 ,对服务器送给用户的数据进行
过滤 , 使用户的操作限制在合法范围内 .
参考文献
[1] Server Publications Group , Sybase SQL server system administ ration guide
release 10. 0 documents ID : 32500 - 01 - 1000 - 02 USA Sybase Inc ,1995
[2] Server Publications Group , Sybase SQL server reference manual release 10. 0
documents ID : 32402 - 01 - 1000 - 03 USA Sybase Inc , 1995
[3] Diana Barrette , Sybase SQL server error information 10. 0 USA Sybase Inc. 19954
8