一种数据库加密方法和装置与流程

文档序号:17588935发布日期:2019-05-03 21:35阅读:158来源:国知局
一种数据库加密方法和装置与流程

本发明涉及数据库安全加密技术领域,具体涉及一种数据库加密方法和装置。



背景技术:

随着计算机技术的飞速发展,数据库的应用已经逐渐深入到各个领域,而计算机中数据存储的安全问题、敏感数据的防窃取和防篡改问题也越来越引起人们的重视。数据库系统作为计算机信息系统的核心部件,其数据库文件的安全性将是信息产业的重中之重。大型数据库管理系统的运行平台一般是windowsnt和unix,这些操作系统(operatingsystem,简称os)的安全级别通常为c1、c2级,具有用户注册、识别用户、任意存取控制、审计等安全功能。虽然数据库管理系统(databasemanagementsystem,简称dbms)在os的基础上增加了不少安全措施,例如基于权限的访问控制等,对数据库文件本身仍然缺乏有效的保护措施,有经验的网上黑客会“绕道而行”,直接利用os工具窃取或篡改数据库文件内容。这种隐患被称为通向dbms的“隐秘通道”,它所带来的危害一般数据库用户难以觉察。

据有关资料报道,80%的计算机犯罪来自系统内部。这是因为,在传统的数据库系统中,数据库管理员(databaseadministrator,简称dba)的权力至高无上,既负责各项系统管理工作,例如资源分配、用户授权、系统审计等,又可以查询数据库中的一切信息。因此,为更好地保障系统安全管理,需采用一定的手段来削弱数据库管理员的权力,使得数据库管理员获得的信息无法进行正常脱密,从而保证用户信息的安全,减少损失。

鉴于此,克服上述现有技术所存在的缺陷是本技术领域亟待解决的问题。



技术实现要素:

本发明需要解决的技术问题是:

传统的数据库系统中,数据库管理员既负责各项系统管理工作,又可以查询数据库中的一切信息,为系统内部的计算机犯罪提供便利,需采用一定的手段来削弱数据库管理员的权力。

本发明通过如下技术方案达到上述目的:

第一方面,本发明提供了一种数据库加密方法,通过服务器主密钥、数据库主密钥和库内密钥对数据库进行逐级加密管理,包括:

对于数据库内的不同数据,分别采用不同的库内密钥对应进行加密;

对于所述不同的库内密钥,分别采用不同的数据库主密钥对应进行加密;

对于所述不同的数据库主密钥,分别采用不同的服务器主密钥对应进行加密;

其中,服务器主密钥、数据库主密钥以及库内密钥之间存在一一对应的映射关系,且服务器主密钥由第一负责人管理,数据库主密钥由第二负责人管理,库内密钥由数据库管理员管理。

优选的,当所述数据库管理员访问任一经服务器主密钥、数据库主密钥和库内密钥三层加密后的数据i时,访问过程具体为:

所述数据库管理员向所述第二负责人发送访问所述数据i的请求;

所述第二负责人接收并同意所述数据库管理员的请求后,继续向所述第一负责人转发访问所述数据i的请求;

所述第一负责人接收并同意所述第二负责人的请求后,将解密后的数据i发送给所述数据库管理员。

优选的,所述数据库管理员向所述第二负责人发送的请求中携带有所述数据库管理员的身份信息,则所述第二负责人接收到所述数据库管理员的请求后,所述方法还包括:

所述第二负责人从服务器获取所述数据i对应的索引信息,并根据所述索引信息以及所述数据库管理员的身份信息,初步判断所述数据i是否在所述数据库管理员的访问权限内,进而决定是否同意所述数据库管理员的请求;

如果所述第二负责人初步判断所述数据i在所述数据库管理员的访问权限内,则同意所述数据库管理员的请求,并继续向所述第一负责人转发访问所述数据i的请求;如果所述第二负责人初步判断所述数据i不在所述数据库管理员的访问权限内,则直接驳回所述数据库管理员的请求。

优选的,所述索引信息包括数据摘要、数据目录、数据类别和数据重要等级中的一项或多项。

优选的,所述第二负责人向所述第一负责人发送的请求中携带有所述数据库管理员的身份信息,则在所述第一负责人接收到所述第二负责人的请求后,所述方法还包括:

所述第一负责人从数据库获取解密后的数据i,并根据所述解密后的数据i以及所述数据库管理员的身份信息,进一步判断所述数据i是否在所述数据库管理员的访问权限内,进而决定是否同意所述第二负责人的请求;

如果所述数据i在所述数据库管理员的访问权限内,则同意所述第二负责人的请求,并将解密后的数据i发送给所述数据库管理员;如果所述数据i不在所述数据库管理员的访问权限内,则驳回所述第二负责人的请求。

优选的,所述第一负责人从数据库获取解密后的数据i具体为:

所述第一负责人向服务器发送获取解密后的数据i的请求,所述服务器根据所述第一负责人的请求,调取与所述数据i对应的库内密钥、数据库主密钥和服务器主密钥,利用调取出的三层密钥完成数据i的解密,并将解密后的数据i呈现给所述第一负责人。

优选的,所述利用调取出的三层密钥完成数据i的解密具体为:利用调取出的服务器主密钥对调取出的数据库主密钥进行解密,利用解密后的数据库主密钥对调取出的库内密钥进行解密,利用解密后的库内密钥对数据库内的数据i进行解密。

优选的,当所述第二负责人访问任一经服务器主密钥、数据库主密钥和库内密钥三层加密后的数据i时,访问过程包括:

所述第二负责人向所述第一负责人发送访问所述数据i的请求;

所述第一负责人接收到所述第二负责人的请求后,服务器调取对应的三层密钥解密数据i,并将解密后的数据i呈现给所述第一负责人;

所述第一负责人根据解密后的数据i决定是否同意所述第二负责人的请求,如果所述数据i在所述第二负责人的访问权限内,则同意所述第二负责人的请求,并将解密后的数据i发送给所述第二负责人。

优选的,当所述数据库管理员访问任一经数据库主密钥和库内密钥双层加密后的数据j时,访问过程包括:

所述数据库管理员向所述第二负责人发送访问所述数据j的请求;

所述第二负责人接收到所述数据库管理员的请求后,服务器调取对应的数据库主密钥和库内密钥解密数据j,并将解密后的数据j呈现给所述第二负责人;

所述第二负责人根据解密后的数据j决定是否同意所述数据库管理员的请求;如果所述数据j在所述数据库管理员的访问权限内,则同意所述数据库管理员的请求,并将解密后的数据j发送给所述数据库管理员。

第二方面,本发明还提供了一种数据库加密装置,包括至少一个处理器和存储器,所述至少一个处理器和存储器之间通过数据总线连接,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令在被所述处理器执行后,用于完成上述第一方面所述的数据库加密方法。

与现有技术相比,本发明的有益效果是:

本发明实施例提供的一种数据库加密方法,通过库内密钥、数据库主密钥和服务器主密钥对数据进行三层加密管理,并由数据库管理员及其上级不同负责人分别管理不同层级的密钥,由于数据库管理员管理的库内密钥都是经过加密的,数据库管理员无法直接获取相应数据,必须向上级负责人申请密钥权限,从而削弱了数据库管理员的权力,保证了数据库系统的安全性。

【附图说明】

为了更清楚地说明本发明实施例的技术方案,下面将对本发明实施例中所需要使用的附图作简单地介绍。显而易见地,下面所描述的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例提供的一种数据库三层加密管理的模型示意图;

图2为本发明实施例提供的一种数据库加密方法的流程图;

图3为本发明实施例提供的一种数据库管理员访问三层加密数据的方法流程图;

图4为本发明实施例提供的一种第二负责人访问三层加密数据的方法流程图;

图5为本发明实施例提供的一种数据库管理员访问双层加密数据的方法流程图;

图6为本发明实施例提供的一种数据库加密装置的架构图。

【具体实施方式】

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。下面就参考附图和实施例结合来详细说明本发明。

实施例1:

本发明实施例提供了一种数据库加密方法,通过服务器主密钥、数据库主密钥和库内密钥对数据库进行逐级加密管理,如图1所示,所述服务器主密钥用于加密所述数据库主密钥,所述数据库主密钥用于加密所述库内密钥,所述库内密钥则用于对数据库内的相应数据进行加密,服务器主密钥、数据库主密钥以及库内密钥之间存在一一对应的映射关系。其中,所述库内密钥、数据库主密钥和服务器主密钥的密钥的等级是依次增加的,为了保护密钥的安全,可由不同的负责人分别负责管理不同层级的密钥:所述服务器主密钥由第一负责人管理,所述数据库主密钥由第二负责人管理,所述库内密钥由数据库管理员管理。具体加密过程可参考图2,包括以下步骤:

步骤101,对于数据库内的不同数据,分别采用不同的库内密钥对应进行加密。

数据库内通常存在大量数据,而对于不同数据,对应用来加密的库内密钥也是不同的;比如,对于数据a、b、c、d,对应的库内密钥可分别为a、b、c、d,只有库内密钥与数据对应,才能对相应的数据进行解密,即库内密钥a只能解密数据a,而不能解密其他数据。其中,所述库内密钥由数据库管理员管理,即所述数据库管理员拥有各库内密钥a、b、c、d,且所述数据库管理员的级别最低,且仅拥有所述库内密钥的权限。

步骤102,对于所述不同的库内密钥,分别采用不同的数据库主密钥对应进行加密。

以上述库内密钥为例,对于不同的库内密钥a、b、c、d可分别采用不同的数据库主密钥a1、b1、c1、d1进行加密,所述数据库主密钥由第二负责人管理。所述第二负责人的级别高于所述数据库管理员,比如可以是产品经理、部门经理等,其拥有各个不同的数据库主密钥a1、b1、c1、d1,可用于解密对应的库内密钥a、b、c、d,也就是说所述第二负责人拥有所述数据库主密钥与所述库内密钥的权限。所述数据库管理员虽然拥有库内密钥a、b、c、d,但均是被对应的数据库主密钥加密过的,因此所述数据库管理员无法直接利用自身管理的库内密钥对相应的数据进行解密,这就限制了数据库管理员的权限,提升了系统的安全性。

步骤103,对于所述不同的数据库主密钥,分别采用不同的服务器主密钥对应进行加密。

以上述库内密钥和数据库主密钥为例,对于不同的数据库主密钥a1、b1、c1、d1,继续分别采用不同的服务器主密钥a2、b2、c2、d2进行加密,所述服务器主密钥由第一负责人管理。所述第一负责人为级别最高的负责人,比如可以是高级领导、总经理等,其拥有各个不同的服务器主密钥a2、b2、c2、d2,可用于解密对应的数据库主密钥a1、b1、c1、d1,进而解密对应的库内密钥a、b、c、d,也就是说所述第一负责人拥有各层密钥的权限。如此一来,所述第二负责人虽然拥有数据库主密钥a1、b1、c1、d1,但均是被对应的服务器主密钥加密过的,因此所述第二负责人无法直接利用自身管理的数据库主密钥对相应的库内密钥解密,也就无法解密相应的数据,这就限制了第二负责人的一部分权限。而对于所述数据库管理员来说,其自身管理的库内密钥相当于经过双重加密,其权限被进一步限制和削弱,也就进一步提升了系统的安全性。

在本发明实施例中,涉及的加密数据(比如a、b、c、d)是经服务器主密钥、数据库主密钥和库内密钥三层加密后的数据,对于这类数据,在进行数据访问时也需要逐级解密,即先利用对应的服务器主密钥解密对应的数据库主密钥,再利用解密后的数据库主密钥解密对应的库内密钥,最后利用解密后的库内密钥解密相应的数据。而对于三层加密数据,所述数据库管理员管理的库内密钥以及所述第二负责人管理的数据库主密钥都是被加密的,因此,所述数据库管理员以及所述第二负责人都不能直接获取相应数据,只有所述第一负责人才可直接获取相应数据。如果数据库管理员想要进行数据访问,必须向所述第一负责人和第二负责人请求获取相应的密钥权限,请求通过后方可获取相应的数据,完成数据访问。

本发明实施例提供的一种数据库加密方法,通过库内密钥、数据库主密钥和服务器主密钥对数据进行三层加密管理,并由数据库管理员及其上级不同负责人分别管理不同层级的密钥,由于数据库管理员管理的库内密钥都是经过加密的,数据库管理员无法直接获取相应数据,必须向上级负责人申请密钥权限,从而削弱了数据库管理员的权力,保证了数据库系统的安全性。

其中,在数据加密过程中,系统可直接将所述服务器主密钥、所述数据库主密钥以及所述库内密钥均保存在数据库的数据字典中,对应的加密算法、工作模式以及填充方式等相关信息也可保存在数据字典中。因此,数据库自身是拥有各服务器主密钥、数据库主密钥和库内秘钥的,在用户进行数据访问时,数据库可根据数据字典中的与数据相对应的各层密钥进行自主解密,使用户顺利完成数据访问。

根据上述加密过程和方法,当所述数据库管理员访问任一经服务器主密钥、数据库主密钥和库内密钥三层加密后的数据i时,可参考图3,访问过程具体包括以下步骤:

步骤201,所述数据库管理员向所述第二负责人发送访问所述数据i的请求。对于任一经三层加密的数据i,所述数据i被对应的库内密钥i加密,所述库内密钥i被对应的数据库主密钥i1加密,所述数据库主密钥i1又被对应的服务器主密钥i2加密。由于所述数据库管理员管理的库内密钥i是经过加密的,无法直接用于解密数据i完成数据访问,需向其上级的所述第二负责人申请获取一定的访问权限。

步骤202,所述第二负责人接收并同意所述数据库管理员的请求后,继续向所述第一负责人转发访问所述数据i的请求。

由于所述第二负责人管理的数据库主密钥i1也是经过加密的,所以所述第二负责人也无法直接获取对应的数据i,但是作为介于所述第一负责人与所述数据库管理员之间的中间负责人,所述第二负责人可以获取所述数据i对应的索引信息,进而根据索引信息对所述数据库管理员的请求进行一个初步审核和判断,通过初步审核后才会继续向更高级的第一负责人申请权限。其中,所述索引信息包括数据摘要、数据目录、数据类别和数据重要等级中的一项或多项,所述数据i对应的索引信息中相应记录了数据i的上述相关信息。则所述第二负责人进行初步审核判断的过程具体如下:

所述数据库管理员向所述第二负责人发送的请求中携带有所述数据库管理员的身份信息,所述第二负责人接收到所述数据库管理员的请求后,向服务器请求获取所述数据i对应的索引信息,从服务器获取到所述索引信息后,所述第二负责人根据所述索引信息以及所述数据库管理员的身份信息,初步判断所述数据i是否在所述数据库管理员的访问权限内,进而决定是否同意所述数据库管理员的请求。如果所述第二负责人初步判断所述数据i在所述数据库管理员的访问权限内,则同意所述数据库管理员的请求,并继续向所述第一负责人转发访问所述数据i的请求;如果所述第二负责人初步判断所述数据i不在所述数据库管理员的访问权限内,则直接驳回所述数据库管理员的请求;比如,如果所述索引信息中数据i的等级程度较高,不适合所述数据库管理员访问,则所述第二负责人可直接驳回数据库管理员的请求,无需再继续向更高级的第一负责人发送请求。

步骤203,所述第一负责人接收并同意所述第二负责人的请求后,将解密后的数据i发送给所述数据库管理员。

经过步骤202中的初步审核后,再由第一负责人进行下一步审核,具体如下:所述第二负责人向所述第一负责人发送的请求中也携带有所述数据库管理员的身份信息,则在所述第一负责人接收到所述第二负责人的请求后,所述第一负责人从数据库获取解密后的数据i,并根据所述解密后的数据i以及所述数据库管理员的身份信息,进一步判断所述数据i是否在所述数据库管理员的访问权限内,进而决定是否同意所述第二负责人的请求。如果所述数据i在所述数据库管理员的访问权限内,也就是说数据i可以开放给所述数据库管理员访问,则是第一负责人同意所述第二负责人的请求,并将解密后的数据i发送给所述数据库管理员,使所述数据库管理员完成数据访问;如果所述数据i不在所述数据库管理员的访问权限内,也就是说数据i不宜开放给所述数据库管理员,否则将会对用户信息安全带来不利,则所述第一负责人驳回所述第二负责人的请求,随后可以由所述第二负责人将驳回的结果再反馈给所述数据库管理员,也可以由所述第一负责人直接将驳回的结果反馈给所述数据库管理员。

其中,由于所述第一负责人为级别最高的负责人,拥有各层的密钥权限,因此,所述第一负责人是可以直接从数据库中获取解密后的相应数据的,获取过程如下:所述第一负责人向服务器发送获取解密后的数据i的请求,所述服务器根据所述第一负责人的请求,调取与所述数据i对应的库内密钥i、数据库主密钥i1和服务器主密钥i2,利用调取出的三层密钥完成数据i的解密,并将解密后的数据i呈现给所述第一负责人。其中,利用调取出的三层密钥完成数据i的解密具体为:先利用调取出的服务器主密钥i2对调取出的数据库主密钥i1进行解密,再利用解密后的数据库主密钥i1对调取出的库内密钥i进行解密,最后利用解密后的库内密钥i对数据库内的数据i进行解密。

通过上述步骤201-步骤203可知,本发明实施例中三层密钥分于不同负责人进行管理,数据库管理员需要逐级申请访问权限并通过后才能获取相应的数据,通过这种对所述数据库管理员的层层限制,大大削弱了数据库管理员的权限;数据库管理员可访问的数据资源有限,而且获取相应数据后也无法获取相应密钥,保证了用户信息的安全性,减少内部犯罪的可能性。

在一个可选的实施例中,由于所述第一负责人拥有各层的密钥权限,则当所述数据库管理员想要访问三层加密数据时,还可按照以下方法进行:

首先,所述数据库管理员跳过所述第二负责人,直接向所述第一负责人发送访问三层加密数据的请求,且所述请求中携带有所述数据库管理员的身份信息;

然后,所述第一负责人接收到所述数据库管理员的请求后,从数据库获取解密后的相应数据,根据所述相应数据以及所述数据库管理员的身份信息,判断是否同意所述数据库管理员访问三层加密数据;如果所述相应数据在所述数据库管理员的访问权限内,则所述第一负责人同意所述数据库管理员的请求,并将解密后的相应数据发送给所述数据库管理员;如果所述相应数据不在所述数据库管理员的访问权限内,则所述第一负责人驳回所述数据库管理员的请求,所述数据库管理员无法对相应数据进行访问。其中,解密数据的获取以及解密过程可参考步骤203的相关介绍,此处不再赘述。

根据上述加密过程和方法,当所述第二负责人访问任一经服务器主密钥、数据库主密钥和库内密钥三层加密后的数据i时,可参考图4,访问过程具体包括以下步骤:

步骤301,所述第二负责人向所述第一负责人发送访问所述数据i的请求。对于任一经三层加密的数据i,由于所述第二负责人管理的数据库主密钥i1是经过相应的服务器主密钥i2加密的,所述第二负责人无法直接采用数据库主密钥i1解密相应的库内密钥i,也就无法解密数据i完成数据访问,需向其上级的所述第一负责人申请获取一定的访问权限。

步骤302,所述第一负责人接收到所述第二负责人的请求后,服务器调取对应的三层密钥解密数据i,并将解密后的数据i呈现给所述第一负责人。

所述第一负责人接收到所述第二负责人的请求后,向服务器发送获取解密后的数据i的请求,所述服务器根据所述第一负责人的请求,从所述数据字典中调取与所述数据i对应的库内密钥i、数据库主密钥i1和服务器主密钥i2,利用调取出的三层密钥完成数据i的解密,即先利用调取出的服务器主密钥i2对调取出的数据库主密钥i1进行解密,再利用解密后的数据库主密钥i1对调取出的库内密钥i进行解密,最后利用解密后的库内密钥i对数据库内的数据i进行解密,进而将解密后的数据i呈现给所述第一负责人。

步骤303,所述第一负责人根据解密后的数据i决定是否同意所述第二负责人的请求,如果所述数据i在所述第二负责人的访问权限内,则同意所述第二负责人的请求,并将解密后的数据i发送给所述第二负责人。

所述第二负责人向所述第一负责人发送的请求中携带有所述第二负责人的身份信息,所述第一负责人从数据库获取解密后的数据i后,根据解密后的数据i具体内容以及所述第二负责人的身份信息,判断是否同意所述第二负责人的请求。如果所述数据i不在所述第二负责人的访问权限内,则所述第一负责人驳回所述第二负责人的请求,所述第二负责人无法对数据i进行访问;如果所述数据i在所述第二负责人的访问权限内,则所述第一负责人同意所述第二负责人的请求,并将解密后的数据i发送给所述第二负责人,使所述第二负责人完成数据访问。

通过上述步骤301-步骤303可知,所述第二负责人想要访问三层加密的数据时,也需要向上级的第一负责人申请访问权限并通过后才能获取相应的数据,通过这种限制作用,也可以削弱第二负责人的权限,第二负责人可访问的数据资源有限,而且获取相应数据后也无法获取相应密钥,保证了用户信息的安全性,减少内部犯罪的可能性。

实施例2:

上述实施例1中主要介绍了数据的三层加密过程以及三层加密数据的访问和解密过程。除实施例1中的三层加密数据以外,根据加密层数的不同,数据库中还包括双层加密数据、单层加密数据和无加密数据中的一项或多项。通常,所述无加密数据、所述单层加密数据、所述双层加密数据和所述三层加密数据的数据重要程度是逐级增加的,可在最初进行数据存储时确定各数据的重要级别,进而实现不同程度的加密。

其中,所述无加密数据无加密,相应地,进行数据访问时所述无加密数据也无需进行解密,所述数据库管理员也是可以直接获取的。所述单层加密数据仅通过所述库内密钥对数据库内的数据进行加密;比如,数据m仅经库内密钥m加密,所述数据库管理员拥有库内密钥m,且所述库内密钥m未经过加密,因此,所述数据库管理员可直接利用自身管理的库内密钥m对单层加密的数据m进行解密,进而获取相应数据。也就是说,所述无加密数据和所述单层加密数据是可以直接开放给所述数据库管理员的,所述数据库管理员拥有获取这部分数据的权限,获取后并不会造成用户信息的泄露或损失。关于三层加密的数据,在上述实施例1中已经进行描述,所述数据库管理员的权限被大大削弱,需要向上级的第一负责人和第二负责人逐级请求数据访问权限,此处不再赘述。

所述双层加密数据通过数据库主密钥和库内密钥逐层加密,即先利用所述库内密钥对数据库内的数据进行加密,再利用所述数据库主密钥对所述库内密钥进行加密。比如,数据j经过库内密钥j加密,所述库内密钥j再经过数据库主密钥j1加密;其中,所述第二负责人拥有数据库主密钥j1,且数据库主密钥j1是未加密的,可以直接用于解密库内密钥j,完成数据j的解密;而所述数据库管理员虽拥有库内密钥j,但库内密钥j是加密的,无法直接解密数据j;也就是说,所述数据库管理员的权限同样被削弱,无法直接进行数据访问。但与三层加密数据不同的是,由于所述第二负责人管理的数据库主密钥是未加密的,其可以直接从数据库中获取相应的解密数据,则当所述数据库管理员进行双层加密数据的访问时,只需要向上级的第二负责人请求访问权限,即可获取解密后的相应数据。

参考图5,当所述数据库管理员访问任一经数据库主密钥和库内密钥双层加密后的数据j时,具体包括以下步骤:

步骤401,所述数据库管理员向所述第二负责人发送访问所述数据j的请求。对于经双层加密的数据j,所述数据j被对应的库内密钥j加密,所述库内密钥j被对应的数据库主密钥j1加密。由于所述数据库管理员管理的库内密钥j是经过数据库主密钥j1加密的,无法直接用于解密数据j完成数据访问,需向其上级的所述第二负责人申请获取一定的访问权限。

步骤402,所述第二负责人接收到所述数据库管理员的请求后,服务器调取对应的数据库主密钥和库内密钥解密数据j,并将解密后的数据j呈现给所述第二负责人。

由于所述第二负责人拥有所述服务器主密钥与所述数据库主密钥的权限,因此,对于双层加密数据,所述第二负责人是可以直接从数据库中获取解密后的相应数据的。所述第二负责人接收到所述数据库管理员的请求后,向服务器发送获取解密后的数据j的请求,所述服务器根据所述第二负责人的请求,从所述数据字典中调取与所述数据j对应的库内密钥j和数据库主密钥j1,先利用所述数据库主密钥j1对相应的库内密钥j进行解密,再利用解密后的库内密钥j对数据库内的数据j进行解密,进而将解密后的数据i呈现给所述第二负责人。

步骤403,所述第二负责人根据解密后的数据j决定是否同意所述数据库管理员的请求;如果所述数据j在所述数据库管理员的访问权限内,则同意所述数据库管理员的请求,并将解密后的数据j发送给所述数据库管理员。

所述数据库管理员向所述第二负责人发送的请求中携带有所述数据库管理员的身份信息,所述第二负责人从数据库获取解密的数据j后,根据解密的数据j以及所述数据库管理员的身份信息,判断是否同意所述数据库管理员的请求。如果所述数据j不在所述数据库管理员的访问权限内,则所述第二负责人驳回所述数据库管理员的请求,所述第二负责人无法对数据j进行访问;如果所述数据j在所述数据库管理员的访问权限内,也就是说可以开放给所述数据库管理员访问,则所述第二负责人同意所述数据库管理员的请求,并将解密后的数据j直接发送给所述数据库管理员,使所述数据库管理员完成数据访问。

通过上述步骤401-步骤403可知,对于双层加密数据,由于数据重要等级低于三层加密数据,数据库管理员无需向第一负责人申请访问权限,但仍需要向第二负责人申请访问权限并通过后才能获取相应的数据,仍可保证在一定程度上削弱了数据库管理员的权限,数据库管理员可访问的数据资源有限,而且获取相应数据后无法获取相应密钥,保证了用户信息的安全性,减少内部犯罪的可能性。

实施例3:

在上述实施例1和实施例2提供的数据库加密方法的基础上,本发明还提供了一种可用于实现上述方法的数据库加密装置,如图6所示,是本发明实施例的装置架构示意图。本实施例的数据库加密装置包括一个或多个处理器21以及存储器22。其中,图6中以一个处理器21为例。

所述处理器21和所述存储器22可以通过总线或者其他方式连接,图6中以通过总线连接为例。

所述存储器22作为一种数据库加密方法非易失性计算机可读存储介质,可用于存储非易失性软件程序、非易失性计算机可执行程序以及模块,如实施例1中的数据库加密方法。所述处理器21通过运行存储在所述存储器22中的非易失性软件程序、指令以及模块,从而执行数据库加密装置的各种功能应用以及数据处理,即实现实施例1和实施例2的数据库加密方法。

所述存储器22可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实施例中,所述存储器22可选包括相对于所述处理器21远程设置的存储器,这些远程存储器可以通过网络连接至所述处理器21。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

所述程序指令/模块存储在所述存储器22中,当被所述一个或者多个处理器21执行时,执行上述实施例1中的数据库加密方法,例如,执行以上描述的图2-图5所示的各个步骤。

本领域普通技术人员可以理解实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(rom,readonlymemory)、随机存取存储器(ram,randomaccessmemory)、磁盘或光盘等。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1