数据加密的历史Word文档格式.docx
《数据加密的历史Word文档格式.docx》由会员分享,可在线阅读,更多相关《数据加密的历史Word文档格式.docx(12页珍藏版)》请在冰豆网上搜索。
其中DBMS完成数据库用户对表、视图、存储过程的数据安全,OS完成对线和/进程及文件、磁盘体、内存体、客体复用的安全。
1.3非法入侵的途径分析
安全的DBMS必须有安全的OS支撑。
目前国内外使用的OS不外乎两种系列:
一是windows系列,另一是UNIX系列,这两种系列由国外厂商生产,其原代码不公开,其自身安全性得不到保证。
虽然DBMS在OS的基础上增加了不少安全措施,例如基于权限的访问控制等,但OS和DBMS对数据库文件本身仍然缺乏有效的保护措施,有经验的网上黑客会“绕道而行”,直接利用OS工具窃取或篡改数据库文件内容。
这种隐患被称为通向DBMS的“隐秘通道”,它所带来的危害一般数据库用户难以觉察。
由于存在隐蔽通道,使DBMS安全性得不到保障,特别是通过OS的入侵,使DBMS中数据安全无法保证,根据DBMS与OS的接口,通过OS的入侵线路可以有如下几条:
(1)避开数据库用户,通过线程/进程,直接作为主体进入数据;
(2)避开数据库的表、视图及存储过程直接通过文件、磁盘区及内存区进入数据区;
研究证明,对数据库中的敏感数据进行加密处理,是堵塞这一“隐秘通道”的有效手段。
采用合理的加密算法,非法用户通过线程/进程或通过文件、磁盘区及内存区所窃取到的只是加密数据,数据的安全性可由加密算法来保证。
另外,通过加密,数据库的备份内容成为密文,也能减少因备份介质失窃或丢失而造成的损失。
1.4数据加密的历史
作为保障数据安全的一种方式,数据加密起源公元前2000年。
埃及人是最先使用特别的象形文字最为信息编码的人。
随着时间推移,巴比伦、美索不达米亚和希腊文明都开始使用一些方法来保护他们的书面信息。
对信息进行编码曾被JuliasCaesar(凯撒大帝)使用,也曾用于历次战争中,包括美国独立战争、美国内战和两次世界大战。
最广为人知的编码机器是GermanEnigma机,在第二次世界大战中德国人利用它创建了加密信息。
此后,由于AlanTuring和Ultra计划以及其他人的努力,终于对德国人的密码进行了破解。
当初,计算机的研究就是为了破解德国人的密码,当时人们并没有想到计算机给今天带来的信息革命。
随着计算机的发展,运算能力的增强,过去的密码都变得十分简单了。
于是人们有不断地研究出了新的数据加密方式,如私有密钥算法和公共密钥算法。
可以说,是计算机推动了数据加密技术的发展。
第二章基于SYBASE数据库
的安全保密技术
原DBMS没有提供用于数据加密的操纵语句或函数。
数据库中数据是以明码方式存放的。
要解决系统的安全问题,首先必须制定一套安全策略。
安全策略可采用组合构架方式,开发安全外壳。
从总体结构上,可采用以下层次结构。
安全管理
用户认证
权限管理
应用系统
安全外壳
系统软件
硬件平台
2.1传统数据库基本安全架构
数据库系统信息安全性依赖于两个层次:
一层是数据库管理系统本身提供的用户名/口令字识别、视图、使用权限控制、审计等管理措施,大型数据库管理系统Oracle、Sybase、Ingress等均有此功能;
另一层就是靠应用程序设置的控制管理,如使用较普遍的Foxbase、Forpro等。
作为数据库用户,最关心自身数据资料的安全,特别是用户的查询权限问题。
对此,目前一些大型数据库管理系统(如Oracle、Sybase等产品)提供了以下几种主要手段。
⒈用户分类
不同类型的用户授予不同的数据管理权限。
一般将权限分为三类:
数据库登录权限类、资源管理权限类和数据库管理员权限类。
有了数据库登录权限的用户才能进入数据库管理系统,才能使用数据库管理系统所提供的各类工具和实用程序。
同时,数据库客体的主人可以授予这类用户以数据查询、建立视图等权限。
这类用户只能查阅部分数据库信息,不能改动数据库中的任何数据。
具有资源管理权限的用户,除了拥有上一类的用户权限外,还有创建数据库表、索引等数据库客体的权限,可以在权限允许的范围内修改、查询数据库,还能将自己拥有的权限授予其他用户,可以申请审计。
具有数据库管理员权限的用户将具有数据库管理的一切权限,包括访问任何用户的任何数据,授予(或回收)用户的各种权限,创建各种数据库客体,完成数据库的整库备份、装入重组以及进行全系统的审计等工作。
这类用户的工作是谨慎而带全局性的工作,只有极少数用户属于这种类型。
⒉数据分类
同一类权限的用户,对数据库中数据管理和使用的范围又可能是不同的。
为此,DBMS提供了将数据分类的功能,即建立视图。
管理员把某用户可查询的数据逻辑上归并起来,简称一个或多个视图,并赋予名称,在把该视图的查询权限授予该用户(也可以授予多个用户)。
这种数据分类可以进行得很细,其最小粒度是数据库二维表中一个交叉的元素。
⒊审计功能
大型DBMS提供的审计功能是一个十分重要的安全措施,它用来监视各用户对数据库施加的动作。
有两种方式的审计,即用户审计和系统审计。
用户审计时,DBMS的审计系统记下所有对自己表或视图进行访问的企图(包括成功的和不成功的)及每次操作的用户名、时间、操作代码等信息。
这些信息一般都被记录在数据字典(系统表)之中,利用这些信息用户可以进行审计分析。
系统审计由系统管理员进行,其审计内容主要是系统一级命令以及数据库客体的使用情况。
2.2加密数据库基本安全架构
--加密数据库系统分成两个功能独立的主要部件:
一个是加密字典管理程序,另一个是数据库加/脱密引擎,体系结构如图所示。
数据库加密系统将用户对数据库信息具体的加密要求记载在加密字典中,加密字典是数据库加密系统的基础信息。
----加密字典管理程序,是管理加密字典的实用程序,是数据库管理员变更加密要求的工具。
----加密字典管理程序通过数据库加/脱密引擎实现对数据库表的加密、脱密及数据转换等功能,此时,它作为一个特殊客户来使用数据库加/脱密引擎。
----数据库加/脱密引擎是数据库加密系统的核心部件,负责在后台完成数据库信息的加/脱密处理,对应用开发人员和操作人员是透明的。
----按以上方式实现的数据库加密系统具有很多优点。
首先,系统对数据库的最终用户完全透明,数据管理员可以指定需要加密的数据并根据需要进行明文/密文的转换工作;
其次,系统完全独立于数据库应用系统,不需要改动数据库应用系统就能实现加密功能,同时系统采用了分组加密法和二级密钥管理,实现了“一次一密”;
其三,系统在客户端进行数据加/脱密运算,不会影响数据库服务器的系统效率,数据加/脱密运算基本无延迟感觉。
---数据库加密系统能够有效地保证数据的安全,即使黑客窃取了关键数据,他仍然难以得到所需的信息,因为所有的数据都经过了加密。
另外,数据库加密以后,可以设定不需要了解数据内容的系统管理员不能见到明文,大大提高了关键数据的安全性。
第三章两级库结构数据库加密技术
两级库结构数据库加密技术,即在服务器和本地建立两套数据系统。
远端服务器上存储数据库的密文数据,本地数据库存储由远端服务器上的密文数据脱密得到的明文数据。
值得注意的是,本地数据库中的明文数据都是临时数据,即在程序中动态生成,程序结束后立即清除掉。
对本地数据不共享,并且进行多种强化的安全措施,包括:
封闭SA角色,删除guest和visitor用户,用户口令使用密码,跟踪非法入侵者,使用dbcc检查数据一致性,使用触发器和两阶段提交来保证数据库中数据的一致性,使用视图,存储过程屏蔽敏感数据,跟踪长事务,在记录一级上增加安全属性字段,使具有一定密级的用户访问相应密级的数据,使用特殊的段来保存特别敏感的数据。
使用备份、恢复和审计技术。
3.1加密数据库整体框架
3.2数据库输入模块
数据库输入模块的加密过程主要把输入的数据按照要求加密成密文然后存储到服务器数据中,流程如下:
3.3数据的增删改问题
加密数据库上的数据增删改流程如下:
如上图所示:
在客户程序中隐藏一个密文数据窗口(或存储对象),明文数据窗口缓冲区中的数据要经过加密后保存到密文数据窗口缓冲区中。
只要明文数据窗口做了任何改动,密文数据窗口都要跟着做相应的改动,所以应该在明文数据窗口变化事件中做相应的变换程序。
当用户提交数据时,明文数据窗口把数据提交到本地数据库中,密文数据窗口把密文数据提交到服务器数据库中,保证用户数据的一致性。
3.4数据库查询模块解密过程
数据库查询模块的解密过程主要按照用户给定的查询要求,从服务器数据库中提取用户指定的表,在本地解密恢复成明文,然后导入到本地服务器数据库中,让用户的查询作用于本地的明文,返回查询结果,流程如下:
查询模块在做任何查询之前,必须把服务器端的密文数据导入到本地数据库中并且恢复成明文。
导入数据有如下几种方式:
1.使用临时文件。
利用Sybase提供的BCP工具,把服务器端的加密数据下载到客户机上的一个文本文件中,然后利用解密程序解密该文本文件,并且生成一个新的明文的文本文件。
把明文文本文件的数据利用BCP导入到本地库中。
该方法的优点是传输、解密、入库速度非常快;
缺点是安全性差,因为明文文本文件非常容易受到攻击。
2.使用客户端数据库游标。
在PB程序中,利用客户端游标把服务器数据库中的数据一条一条下载到本地,并且逐个字段进行解密,然后把解密的记录插入到本地库中。
该方法的优点是安全性好,因为明文数据仅在应用程序和本地库中存在,不会在操作系统中留下痕迹;
缺点是速度太慢。
3.使用数据窗口缓冲区。
需要做程序测试。
3.5加密算法与密钥管理
密码系统的两个基本要素是加密算法和密钥管理。
加密算法是一些公式和法则,它规定了明文和密文之间的变换方法。
由于密码系统的反复使用,仅靠加密算法已难以保证信息的安全了。
3.5.1加密算法
为了防止密码分析,选择一个强壮的加密算法是至关重要的。
数据库加密系统对数据库密码的要求如下:
●数据库加密以后,数据量不应明显增加;
●某一数据加密后,其数据长度不变;
●加/脱密速度要足够快,数据操作响应时间应该让用户能够接受。
基于以上考虑,数据库加密实行二级密钥管理。
一级密钥为主密钥,二级密钥为工作密钥。
主密钥的作用是对二级密钥信息解密生成工作密钥。
工作密钥用于对数据库数据的加/脱密。
主密钥保护了工作密钥,工作密钥保护敏感信息,因而整个系统的安全依赖于主密钥的安全。
主密钥要有高度的安全性,加解密速度要求并不需要很高,因而采用RSA公/私钥算法;
工作密钥加密的信息量大,响应时间要求很短,采用分组密码体制中的IDEA算法。
工作密钥(IDEA)记为DBK,主密钥(RSA)公钥记为PUBK,主密钥(RSA)私钥记为PEAK。
3.5.2密钥管理
采用二级密钥管理,工作密钥可由系统管理员根据需要定期更换,而主密钥采用RSA算法的优势在于每个用户可拥有自己的私钥,工作密钥的更