苏州建设交通高等职业技术学校 李 慧
内存数据库加密层次分析与方案选择
苏州建设交通高等职业技术学校 李 慧
数据库系统担负着存储和管理信息的任务,集中存放着大量数据,而且又为众多用户直接共享。泄露或破坏这些信息将会造成企业瘫痪,给国家带来巨大的损失,甚至危及国家安全,需要采取适当的措施进行数据库内数据的防护。保证数据安全性的最好方法是数据加密。因此,开发安全、可靠的数据库加密系统已迫在眉睫。
根据数据库的结构可知,实现数据库的加密可以从三个层次考虑:OS(Operating System,操作系统)操作系统层、DBMS (Database Management System,数据库管理系统)内核层和DBMS 外层。
1.在OS层加密。从操作系统的角度来看,OS 层位于DBMS层之下,所以无法辨认数据库文件中的数据关系,也就无法合理地产生、管理和使用密钥。因此,在OS 层对数据库文件进行加密,对于大型数据库来说,目前还难以实现。
2.在DBMS内核层加密。在DBMS 内核层实现加密,是指数据在物理存取之前完成加(解)密工作。这种方式的优点是加密功能强,并且加密功能几乎不会影响其他功能;缺点是在服务器端进行加(解)密运算,加重了数据库服务器的负载,并且因为加(解)密是在内核中完成,就势必需要数据库供应商对其进行技术支持,这一点不容易实现。DBMS 内核层加密关系如图1所示。
图1 DBMS内核层加密关系
3.在DBMS外层加密。DBMS外层实现加密在安全层实现加密就是将数据库加密系统做成一个安全层工具。采用这种加密方法的优点是可扩充性强,数据库的加解密系统可以做成一个独立平台,不需要数据库供应商进行技术支持,并且可以将加密密文直接在网上传输;缺点是数据库的功能和查询效率会受一些限制。DBMS外层加密关系如图2所示。
图2 DBMS外层加密关系
数据库数据的存储加密、解密处理可以在数据库系统的不同层次实现,分别形成以下方案。
1.添加加密定义接口和处理模块,以及对数据加解密软件或硬件的调用接口。由于该方案的实现需要修改DBMS源代码,而我国目前使用的数据库管理系统大多数是国外开发的,无法获得源代码,该方案受条件限制难以实现。另外,由于内核级加密势必增加服务器的负载(尤其是使用硬件加密),在多用户环境中将影响系统整体效率。因此,可以先由应用程序调用执行加密运算的软件或硬件实现数据明密转换,然后将加密文传递给数据管理系统存储。该方案的优点是实现简单,不需要在系统软件层(如DBMS层和OS层)进行任何修改工作。但该缺点是应用不透明,每个需要数据加(解)密的应用都要处理数据加(解)密运算调用、数据类型转换等工作,增加了应用开发的复杂度和难度。另外,由于数据类型转换模块难以插入应用开发工具中,将会造成开发工具中的一些功能失效,这对于图形界面的应用开发来说也是极大的损失。
2.利用应用接口层,在数据库应用和内核之间增加加(解)密功能模块。该方案避免了修改内核时的应用开发,具有较高的透明度,同时可以实现客户端加密、解密,对数据库系统整体影响较小。客户(服务器)模式最大的优越性就是合理分担计算,因此一些应由服务器端DBMS内核完成的处理(如视图处理),不应该放置在客户端完成。
3.对磁盘块进行加密,实现数据存储加密。例如软件移动存储加密王,它的特点是能够对存储在里面的数据进行加密,从而保证数据不被非法盗用。但是,这种加密必须由软件辅助完成,在安装完移动硬盘的驱动之后,再安装一个加密管理软件就可以实现。加密是通过在特定的硬盘分区里生成加密防卫区实现的,只有提供了正确的密码,才可以读取存储在其中的数据。因此,该方案适于保证移动硬盘的携带安全,保证备份数据的安全,但是对于大数据量、频繁访问的应用来说是不合适的。
数据库系统安全框架的三个层次是相辅相成的,各层次的防范重点和所采取的技术手段也不尽相同,一个好的安全系统必须综合考虑核运用这些技术,以保证数据的安全。