随着Internet技术的蓬勃发展和网络用户数量的剧增,人们越来越多地利用Internet进行着信息交换和处理,使工作效率和水平得到了很大的提高。Internet已经成为人们生活的一部分。然而,人们在享受网络带来的巨大方便的同时,也面临着极为严峻的信息安全问题。其中,金融、军事等各种网络敏感数据库的数据安全性问题就显得尤为重要了,那么今天,我就来给大家介绍一下敏感数据库加密的方法。
一、敏感数据库系统对加密技术的特殊要求
敏感信息数据库不同于一般的数据库,对数据的安全性有着十分特殊的要求。
首先、敏感数据库要求对数据的保存必须是长期的,而且由于客户对数据库数据的访问多是随机性进行的,加上某些应用对数据的访问要求高效实时。这决定了对敏感数据库进行加解密机制的时限性要求比较高,应能够保证查询、检索、修改、更新等数据访问基本操作的效率。
其次、由于数据库中的数据处于开放的数据共享环境中,因此如何限制内部不同级别有权用户,解决好授权机制也是难点之一。敏感数据库对密钥管理要求也特别严格,必须非常安全,管理失误如密钥遗失,就会导致数据库信息失效或者拒绝服务。在多个客户的数据库访问中,可能会出现多用户同时访问同一共享资源的情况。如何处理好共享资源访问时的互斥问题,而又不改变数据库锁粒度的灵活性,也成为难点。
再次、对数据库加密时,由于索引项在对数据库的一致性检查及加快检索的速度上起着至关重要的作用,对索引项加密可能引起内部数据的不一致,即使不出现这种情况,也可能限制了用索引加快检索速度的作用。
在事务处理的上下文中,查询语句都有着数量不等的关系运算,如果对用于比较的关系字段加密,则按客户的查询条件可能无法找到匹配数据。特别是数据库由多个表组成,表与表之间都有匹配的连接字段,加密手段必须能够保证这些连接字段内部数据的一致,否则,表格之间将无法进行关联。
二、常用敏感数据库系统加密方法
针对敏感数据库系统加密所存在的问题,通过对数据库管理系统的应用及存储结构进行分析,可以采用如下方式对数据库文件加密和解密:
1、库外加密
由于数据库总是依赖于某种操作系统或者文件系统而存在,而数据总是以特定大小的数据块存在于文件系统之上,所以开发者可以在客户应用程序与数据库管理系统之间增加一个客户应用层接口,类似于事务处理监视器,采用网络分布计算技术实现一个中间件。当客户应用程序访问数据库系统时,由客户应用接口对数据进行加解密。具体做法是:
可以直接调用操作系统的文件存取功能,对数据库中的数据进行存取,也可以直接调用操作系统的磁盘功能,对数据库中的数据块进行存取。直接调用系统文件存取功能,是在文件系统内部对数据进行加解密,形成数据库可以存储的数据块后,通过文件系统一次一个分组地进行加密存入数据库,或解密取出提供给客户方程序。这种方式的弊端是操作效率低,但容易由客户服务管理程序对数据库系统进行管理。而调用操作系统磁盘功能,则由操作系统直接存取数据块,必须包含数据块的长度、块号、数据的头标、尾标等信息,对于不了解数据库所使用的操作系统的人来说,破解数据几乎是不可能的。
2、库内加密
在数据库系统中,数据库结构分为三层:存储模式、内模式、外模式。其中,存储模式负责描述数据的物理结构,内模式描述数据的局部逻辑结构,外模式描述数据的全局逻辑结构。在对数据库进行库内加密时,只需在三个层次中再增加一个虚拟层次用于存放密钥数据库,由服务方应用程序对密钥数据库进行管理。
服务方应用程序在接受到客户方的查询处理请求后,从密钥数据库中读取密钥,对相应查询条件进行加密,再到数据库中查询匹配数据或者添加到数据库中。找到匹配数据后,再由服务方应用程序从客户密钥数据库中读取相应密钥对其进行解密并反馈给客户。而数据在网络上的传输则由网络加密方案来解决。这样,数据库中存放的数据,实际上都是密文,使数据库的逻辑结构到物理结构的直接对应关系变为间接的映射关系。加密的粒度可以是数据库、表、字段、记录等,形成一个针对库、表、字段、记录的密钥数据库。加密的粒度越小,数据库中的数据就越安全,但密钥管理的难度和复杂性也越高。由于这种加密方式是在一个数据库管理系统内进行加密,所以在加密的同时必须首先解决好访问控制和内部用户的授权机制。
3、硬件加密
硬件加密是一种采用对数据处理芯片或者网卡进行点到点的加密方式,在数据库服务器上的应用程序处理客户请求时,读出的数据经过网卡或数据处理芯片内部驻留的加密程序加密后,返回给有访问权限的客户,再由客户数据芯片内的解密程序进行相处理,还原成客户访问数据库要得到的原始数据。
随着网络及信息技术的高速发展,数据信息的安全性越来越重要,敏感数据库加密技术的地位和作用也越来越突出,我们必须引起足够重视。
小知识之密钥:
密钥,即密匙,一般范指生产、生活所应用到的各种加密技术,能够对各人资料、企业机密进行有效的监管,密钥管理就是指对密钥进行管理的行为,如加密、解密、破解等等。