数据库加密方法和数据库服务器的制造方法

文档序号:10655946阅读:229来源:国知局
数据库加密方法和数据库服务器的制造方法【专利摘要】根据本发明的实施例,本发明提供数据库加密方法和数据库服务器,所述数据库加密方法用于对存储于存储器中的数据表所包含的数据值进行加密并存储于永久存储介质。所述数据库加密方法包括如下步骤:基于存储于存储器中的数据表所包含的数据值生成加密数据值的步骤;至少部分基于所述数据值和所述数据值的位置信息生成与所述加密数据值匹配的哈希值的步骤;以及决定将所述加密数据值和所述哈希值记录于永久存储介质(persistentstorage)的步骤。【专利说明】数据库加密方法和数据库服务器
技术领域
[0001]本发明涉及数据库加密,尤其涉及对数据进行加密并存储,以从具有权限的内部管理人员的访问保护数据。【
背景技术
】[0002]随着计算机及互联网技术的发展,可有效存储大量数据并以所希望的检索条件便捷快速地进行查找的数据库越来越得到重视。现在的数据库系统允许存储及检索很多的信息。这些信息中的部分信息可包括例如信用卡卡号等敏感信息。[0003]尤其是,在金融行业、互联网门户站点中收集并管理个人信息的数据库中,为防止没有权限的用户判断或非法记录在计算机中处理的信息,或为保护具有合法权限的用户的信息处理服务不被计算机系统拒绝,或为在保管大容量资料的数据库管理系统中保证数据的完整性(integrity)、保密性、可用性,数据库的安全是不可或缺的。[0004]近来,因数据库服务器管理员及开发人员暴露加密密钥导致的信息泄露成为非常严重的问题。即,随着信息集成度越来越高,存在于企业内的数据库中积累的信息的量也随之增加,因此若通信公司管理的顾客信息数据库中的顾客信息(身份证号、电话号码、账户信息等)通过非法途径泄露,则危害程度非常大。[0005]这些信息的泄露虽然有因为企业外部的黑客通过黑客行为(hacking)对数据存储空间进行物理访问等造成的,但实际上大部分信息泄露是因为对数据库具有合法访问权限的内部人员(例如,数据库管理员(administrator))造成的,而这些因内部人员造成的信息泄露较之从外部发生的黑客行为更能导致严重而致命的危害。[0006]管理上述数据库安全的现有技术是通过分配给各客户端的安全配置中所规定的访问控制方式来限制特定用户对特定信息的访问。这种技术可以限制客户端访问未被许可的信息。但是,这种现有技术不能限制具有合法访问权限的内部人员(例如,数据库管理员)或具有0S权限(OSprivilege)的人员的非法行为。[0007]为解决上述问题,提出了在用户应用程序中对保密信息进行加密的方式,但是在这种情况下,涉及保密信息的所有用户应用程序都需要进行加密/解密,因此需要向所有这些用户应用程序提供加密/解密代码,所以非常不方便。[0008]因此,为了在数据库系统内通过有效的方式保护保密信息,并且为了在不变更用户应用程序的情况下限制内部人员的非法行为,在本领域存在对将数据进行加密并保存的技术的需求。【
发明内容】[0009]鉴于上述问题,本发明的目的在于提供一种数据库加密方法和数据库服务器,通过对数据进行加密存储,从具有权限的内部管理人员、具有0S权限的人员或可物理访问数据库服务器的人员的访问保护数据。[0010]本发明的目的在于利用哈希函数验证加密数据的完整性。[0011]本发明的目的在于在试图对加密数据用具有相同形式的存在于其他位置的加密数据进行覆盖时,验证数据的完整性。[0012]本发明的目的在于在加密数据更新之后,在试图用更新之前的加密值对其进行覆盖时,验证数据的完整性。[0013]为达到上述目的,根据本发明的一实施例,提供数据库加密方法,用于对存储于存储器中的数据表所包含的数据值进行加密并存储于永久存储介质,所述数据库加密方法包括如下步骤:基于存储于存储器中的数据表所包含的数据值生成加密数据值的步骤;至少部分基于所述数据值和所述数据值的位置信息生成与所述加密数据值匹配的哈希值的步骤;以及决定将所述加密数据值和所述哈希值记录于永久存储介质(persistentstorage)的步骤。[0014]另外,根据本发明的另一实施例,提供数据库加密方法,用于对存储于存储器中的数据表所包含的数据值进行加密并存储于永久存储介质,所述数据库加密方法包括如下步骤:基于存储于存储器中的数据表所包含的数据值生成加密数据值的步骤;至少部分基于所述数据值和在永久存储介质上存储所述数据值的存储位置信息生成与所述加密数据值匹配的哈希值的步骤;以及决定将所述加密数据值和所述哈希值记录于永久存储介质的步骤。[0015]另外,根据本发明的一实施例,提供数据库加密方法,包括如下步骤:当被加密的数据值有更新时,基于更新数据值生成第二加密数据值的步骤;决定将所述第二加密数据值存储于与加密数据值的位置不同的第二位置的步骤;至少部分基于所述更新数据值和所述第二位置的位置信息生成与所述第二加密数据值匹配的哈希值的步骤;以及决定将所述第二加密数据值和所述哈希值记录于永久存储介质的步骤。[0016]另外,根据本发明的另一实施例,提供数据库加密方法,包括如下步骤:当被加密的数据值有更新时,基于更新数据值生成第二加密数据值的步骤;决定将所述第二加密数据值存储于永久存储介质上的与加密数据值在所述永久存储介质上的位置不同的第二位置的步骤;至少部分基于所述更新数据值和所述第二位置的位置信息生成与所述第二加密数据值匹配的哈希值的步骤;以及决定将所述第二加密数据值和所述哈希值记录于所述永久存储介质的步骤。[0017]另外,根据本发明的一实施例,提供数据库加密方法,用于验证存储于永久存储介质中的加密数据的完整性,其包括如下步骤:基于存储于所述永久存储介质中的加密数据值生成解密数据值的步骤;至少部分基于所述解密数据值和所述解密数据值在数据表内的位置信息生成与所述解密数据值匹配的哈希值的步骤;以及通过比较所生成的所述哈希值和存储于所述永久存储介质中的哈希值验证所述解密数据的完整性的步骤。[0018]另外,根据本发明的另一实施例,提供数据库加密方法,用于验证存储于永久存储介质中的加密数据的完整性,其包括如下步骤:基于存储于所述永久存储介质中的加密数据值生成解密数据值的步骤;至少部分基于所述解密数据值和所述加密数据值在所述永久存储介质中的存储位置信息生成与所述解密数据值匹配的哈希值的步骤;以及通过比较所生成的所述哈希值和存储于所述永久存储介质中的哈希值验证所述解密数据的完整性的步骤。[0019]根据本发明的一实施例,提供数据库服务器,所述数据库服务器通过对数据值进行加密存储从具有权限的内部管理员的访问保护数据。所述数据库服务器包括:存储器,存储包含数据值的数据表;加密模块,基于所述数据值生成加密数据值;哈希模块,至少部分基于所述数据值和所述数据值的位置信息生成与所述加密数据值匹配的哈希值;以及永久存储介质,记录所述加密数据值和所述哈希值。[0020]另外,根据本发明的另一实施例,提供数据库服务器,所述数据库服务器通过对数据值进行加密存储从具有权限的内部管理员的访问保护数据。所述数据库服务器包括:存储器,存储包含数据值的数据表;加密模块,基于所述数据值生成加密数据值;哈希模块,至少部分基于所述数据值和在永久存储介质上存储所述数据值的存储位置信息生成与所述加密数据值匹配的哈希值;以及所述永久存储介质,记录所述加密数据值和所述哈希值。[0021]另外,根据本发明的一实施例,提供数据库服务器,所述数据库服务器从对加密存储数据值具有权限的内部管理员的攻击保护数据。所述数据库服务器包括:加密模块,当被加密的数据值有更新时,基于更新数据值生成第二加密数据值;存储模块,决定将所述第二加密数据值存储于与加密数据值的位置不同的第二位置;哈希模块,至少部分基于所述更新数据值和所述第二位置的位置信息生成与所述第二加密数据值匹配的哈希值;以及永久存储介质,记录所述第二加密数据值和所述哈希值。[0022]另外,根据本发明的另一实施例,提供数据库服务器,所述数据库服务器从对加密存储数据值具有权限的内部管理员的攻击保护数据。所述数据库服务器包括:加密模块,当被加密的数据值有更新时,基于更新数据值生成第二加密数据值;存储模块,决定将所述第二加密数据值存储于永久存储介质上的与加密数据值在所述永久存储介质上的位置不同的第二位置;哈希模块,至少部分基于所述更新数据值和所述第二位置的位置信息生成与所述第二加密数据值匹配的哈希值;以及所述永久存储介质,记录所述第二加密数据值和所述哈希值。[0023]另外,根据本发明的一实施例,提供数据库服务器,所述数据库服务器用于验证存储于永久存储介质中的加密数据值的完整性。所述数据库服务器包括:永久存储介质,存储所述加密数据值和第一哈希值;解密模块,基于存储于所述永久存储介质的加密数据值生成解密数据值;哈希模块,至少部分基于所述解密数据值和所述解密数据值在数据表内的位置信息生成与所述解密数据值匹配的第二哈希值;以及完整性验证模块,通过比较所述第一哈希值和所述第二哈希值验证所述解密数据值的完整性。[0024]另外,根据本发明的另一实施例,提供数据库服务器,所述数据库服务器用于验证存储于永久存储介质中的加密数据值的完整性。所述数据库服务器包括:永久存储介质,存储所述加密数据值和第一哈希值;解密模块,基于存储于所述永久存储介质的加密数据值生成解密数据值;哈希模块,至少部分基于所述解密数据值和所述加密数据值在所述永久存储介质中的存储位置信息生成与所述解密数据值匹配的第二哈希值;以及完整性验证模块,通过比较所述第一哈希值和所述第二哈希值验证所述解密数据值的完整性。[0025]本发明通过对数据进行加密存储,能够从具有权限的内部管理人员、具有0S权限的人员或可物理访问数据库服务器的人员的访问保护数据。[0026]本发明能够利用哈希函数验证加密数据的完整性。[0027]本发明能够在试图对加密数据用具有相同形式的存在于其他位置的加密数据进行覆盖时,验证数据的完整性。[0028]本发明能够在加密数据更新之后,在试图用更新之前的加密值对其进行覆盖时,验证数据的完整性。【附图说明】[0029]图1是本发明的一实施例的数据库系统100的示意图。[0030]图2是本发明的一实施例的数据库服务器的框图(blockdiagram)。[0031]图3是本发明的一实施例的数据库加密方法顺序图。[0032]图4是本发明的另一实施例的数据库加密方法顺序图。[0033]图5是表示本发明的一实施例的被加密的数据值有更新时的数据库服务器的运行顺序图。[0034]图6是表示本发明的另一实施例的被加密的数据值有更新时的数据库服务器的运行顺序图。[0035]图7是本发明的一实施例的数据库解密方法顺序图。[0036]图8是本发明的另一实施例的数据库解密方法顺序图。[0037]附图标记说明[0038]11〇客户端[0039]120数据库服务器[0040]130DBMS(DatabaseManagementSystem)[0041]135存储器[0042]140永久存储介质(persistentstorage)[0043]210收发模块[0044]220加密模块[0045]230哈希模块[0046]240存储模块[0047]250解密模块[0048]260完整性验证模块[0049]270数据表【具体实施方式】[0050]下面,结合附图对各种实施例进行说明,在所有附图中类似的附图标记表示类似的构成要素。在本说明书中,各种说明用于帮助理解本发明。但是,即使没有这些具体说明这些实施例也可以实施。在其他例中,为便于说明,已公开的结构及装置以框图的形式表不。[0051]本说明书中使用的术语“元件”、“模块”、“系统”等表示计算机相关实体、硬件、固件、软件、软件及硬件的组合或软件的执行。例如,元件可以是在处理器中执行的处理过程、进程、对象、执行线程、程序和/或计算机,但并不限于此。例如,计算装置和在计算装置上执行的应用程序都可以是元件。一个以上的元件可常驻于进程和/或执行线程内,一个元件可在一台计算机内本地化,或可在两台以上的计算机之间分配。另外,这些元件可从内部存储有各种数据结构的各种计算机可读介质执行。元件之间可根据例如具有一个以上的数据包的信号(例如,在本地系统、分步式系统中,从与其他元件交互的一个元件通过数据和/或信号并通过其他系统和互联网等网络的数据)并通过本地和/或远程处理进行通信。[0052]对所揭示的实施例进行的说明用于帮助本领域的普通技术人员利用或实施本发明。本领域的普通技术人员应当能够理解对所述实施例进行的多种变形,并且在不脱离本发明的范围内,在此定义的一般原理可应用于其他实施例。因此,本发明不限于在此所揭示的实施例,而应当在与所揭示的原理和新的技术特征一致的范围内对本发明进行解释。[0053]本说明书中使用的术语“数据表”及“表”往往可互相交换使用。[0054]图1是本发明的一实施例的数据库系统100的示意图。[0055]如图1所示,数据库服务器120可包括例如微处理器、大型计算机、数字信号处理器、便携式设备及设备控制器等任何类型的计算机系统或计算机设备。[0056]客户端110是指具有通过网络进行通信的机制的数据库系统中的节点。例如,客户端110可包括PC、便携式电脑、工作站、终端和/或可通过网络进行访问的任何电子设备。[0057]数据库服务器120可包括DBMS(DatabaseManagementSystem)130及永久存储介质(persistentstorage)140。虽然未在图1中表示,但数据库服务器120可包括包含缓冲器高速缓冲存储器(buffercache)在内的一个以上的存储器。另外,虽然未在图1中表示,但数据库服务器120可包括一个以上的处理器。因此,DBMS130可在上述存储器上通过上述处理器运行。[0058]永久存储介质(persistentstorage)140不仅指例如磁盘(magneticdisk)、光盘(opticaldisk)、光磁(magneto-optical)存储设备,还指基于闪存和/或电池备份存储器(batterybackupmemory)的存储设备等可持续存储数据的任何非挥发性(non-volatile)存储介质。上述永久存储介质140可通过各种通信方法与数据库服务器120的处理器及存储器进行通信。在追加的实施例中,上述永久存储介质140位于数据库服务器120外部并能够与数据库服务器120进行通信。[0059]DBMS130是用于允许在数据库服务器120中对所需数据进行搜索、插入、修改和/或删除等动作的程序,如上所述,可在数据库服务器120的存储器中通过处理器实现。[0060]客户端110和数据库服务器120可通过网络互相通信。本发明的一实施例的网络可使用公共电话交换网(PSTN,PublicSwitichedTelephoneNetwork)、xDSL(xDigitalSubscriberLine)、RADSL(RateAdaptiveDSL)、MDSL(MultiRateDSL)、VDSL(VeryHighSpeedDSL)、UADSL(UniversalAsymmetricDSL)、HDSL(HighBitRateDSL)及近距离通信网(LAN)等各种有线通信系统。[0061]另外,本说明书中公开的网络可使用CDMA(CodeDivis1nMultiAccess)、TDMA(TimeDivis1nMultiAccess)、FDMA(FrequencyDivis1nMultiAccess)、OFDMA(OrthogonalFrequencyDivis1nMultiAccess)nSC-FDMA(SingleCarrier-FDMA)及其他系统等各种无线通信系统。本说明书中说明的技术不仅适用于上述所提及的网路,还适用于其他网络。[0062]图2是本发明的一实施例的数据库服务器的框图(blockdiagram)。[0063]本发明的一实施例的数据库服务器120可包括永久存储介质(persistentstorage)140、DBMS130及存储器135。如上所述,DBMS130可通过数据库服务器120内的一个以上的存储器135及一个以上的处理器运行。[0064]DBMS130可包括收发模块210、加密模块220、哈希模块230、存储模块240、解密模块250及完整性验证模块260。如图2所示的DBMS130内的各模块可互相进行通信。上述DBMS130的模块是示例性的,可根据不同的实现方法追加包括其他模块或省略上述模块中的一部分。[0065]存储器135是处理器直接访问的如动态存储器(DRAM,dynamicrandomaccessmemory)、静态存储器(SRAM,staticrandomaccessmemory)等随机存取存储器(RAM)的主要存储装置,当关闭电源时所存储的信息瞬间消失的挥发性(volatile)存储装置。上述存储器135可通过上述处理器运行。上述存储器135可临时存储包含数据值的数据表(datatable)270。上述数据表270可包括数据值,在本发明的一实施例中,上述数据表270的数据值能以列(column)为单位被加密并被存储于永久存储介质140。上述存储器135包括缓冲器高速缓冲存储器,在上述缓冲器高速缓冲存储器的数据块中可存储数据。上述数据可通过后台进程记录于永久存储介质140中。[0066]收发模块210可接收来自用户的数据存储、查询及数据加密请求等。另外,收发模块210还可传递针对数据存储及查询请求的结果信息。[0067]加密模块220可在将数据记录(存储)于永久存储介质140之前对数据进行加密(encrypt1n)。加密模块220可基于纯文本(plaintext)生成加密数据(ciphertext,encryptedtext)。本说明书中的对数据的加密方式可包括列级加密及表空间级加密。列级加密是指对被指定的希望被加密的列的数据进行加密。表空间级加密以表空间为单位对数据进行加密,例如,对在0S系统中生成的物理数据文件进行加密。根据本发明的一个方面,对于将要存储的数据可进行列级加密。[0068]加密模块220可基于上述数据值生成加密数据值。加密模块220基于包含于加密密钥中的加密信息确定加密函数,并利用基于上述数据值进行计算的上述加密函数生成加密数据值。[0069]上述加密密钥可至少包括与加密模式相关的信息、加密数据类型及数据长度信息等。上述加密模式可包括数据加密标准(DES,dataencrypt1nstandard)及三重数据加密标准(tripleDES)、高级加密标准(AES,advancedencrypt1nstandard)、ARIA、SEED中的至少一种。上述加密密钥可用于加密及解密。加密函数可包括将纯文本(plaintext)变更为加密文本(encryptedtext)的加密算法。上述加密函数在进行加密及解密时参照上述加密密钥。上述加密密钥(encrypt1nkey)存储于上述数据库服务器120的内部或存储于上述数据库服务器120的外部,而且为进一步的安全,上述加密密钥可通过主密钥(masterkey)加密并存储。上述主密钥可存储于外部存储介质或上述数据库服务器120的内部。本发明的一个方面的加密(解密)技法可由各种加密算法、加密密钥和/或加密选项(初始化向量使用与否等)的组合构成。[0070]另外,上述加密模块220在被加密的数据值有更新时,可基于更新数据值生成第二加密数据值。上述第二加密数据值可与现有加密数据值不同。[0071]上述加密动作可对决定对数据表270的一个以上的列的数据值进行加密的上述一个以上的列进行加密。因此,上述加密动作不是针对数据表270的全部数据值进行,而是只针对需要加密的列的数据值(例如,信用卡卡号、年薪等)进行,从而可以更有效地实现数据库加密。[0072]哈希模块230可生成用于验证解密文本(decryptedtext)的完整性的哈希值。哈希模块230利用SHA(securehashalgorithm)系列、MD5等哈希算法生成哈希值。上述哈希算法只是示例,本发明的哈希模块230可利用任何哈希算法生成哈希值。[0073]上述哈希模块230可至少部分基于数据表270的数据值及上述数据值的位置信息,生成与上述加密数据值匹配的哈希值。上述数据值的位置信息可包括行标识符(rowID)及列密钥(columnkey)中的至少一种。上述列密钥至少部分基于上述数据表的元信息,上述行标识符至少部分基于数据块上的将要记录上述数据值的位置。[0074]具体而言,哈希模块230可至少部分基于上述数据表的元信息,获得上述列密钥。另外,加密数据可记录于存储器135的数据块中。在这种情况下,可生成行标识符。上述行标识符相对于上述数据块是固有的。另外,上述哈希模块230可至少部分基于上述数据块上的将要记录上述数据值的位置,获得上述行标识符。另外,上述哈希模块230可至少部分基于上述数据值、上述列密钥及上述行标识符,生成与上述加密数据值匹配的哈希值。[0075]另外,上述哈希模块230可至少部分基于上述数据值及永久存储介质140上的将要存储上述数据值的存储位置信息,生成与上述加密数据值匹配的哈希值。上述永久存储介质140上的存储位置信息可包括行标识符及列密钥中的至少一种。[0076]另外,上述哈希模块230在被加密的数据值有更新时,至少部分基于更新数据值及第二位置的位置信息,生成与上述第二加密数据值匹配的哈希值,所述第二位置是用于存储基于上述更新数据值生成的第二加密数据值的、与上述加密数据值的位置不同的位置。[0077]另外,上述哈希模块230在被加密的数据值有更新时,至少部分基于更新数据值及第二位置的位置信息,生成与上述第二加密数据值匹配的哈希值,所述第二位置是永久存储介质140上的用于存储基于上述更新数据值生成的第二加密数据值的、与上述加密数据值在上述永久存储介质140上的位置不同的位置。[0078]另外,上述哈希模块230在加密数据被解密时,可至少部分基于解密数据值及上述解密数据值在数据表270内的位置信息,生成与上述解密数据值匹配的哈希值。[0079]另外,上述哈希模块230在加密数据被解密时,可至少部分基于解密数据值及上述解密数据值在上述永久存储介质140上的存储位置信息,生成与上述解密数据值匹配的哈希值。[0080]哈希模块230至少部分基于数据值(纯文本)、被更新的数据值(纯文本)或解密数据值(解密文本)及上述各数据值在数据表270上的存储位置信息,生成与上述各数据值匹配的哈希值。另外,哈希模块230至少部分基于数据值(纯文本)、被更新的数据值(纯文本)或解密数据值(解密文本)及上述各数据值在永久存储介质140上的存储位置信息,生成与上述各数据值匹配的哈希值。[0081]在不使用上述哈希值时,拥有合法访问权限的内部人员、拥有0S权限的人员或可物理访问数据库服务器120的人员可获得加密数据值并将上述加密数据值存储于永久存储介质140上的与原来的位置不同的位置。此时,上述加密数据值的解密文本输出有效的数据值,因此完整性验证模块260无法检测上述数据的变化。通过使哈希值与上述加密数据值匹配,当数据变化时,存储的哈希值和基于解密数据值的哈希值不同,因此上述完整性验证模块260可检测出数据的变化。但是,当哈希值单纯地基于数据的纯文本时,当拥有合法访问权限的内部人员、拥有OS权限的人员或可物理访问数据库服务器120的人员获得加密数据值及与之匹配的哈希值,进行存储于其他存储位置的攻击时,因解密数据值有效、且基于解密数据值的哈希值与存储的哈希值相同,因此无法检测出数据是否变化。但是,根据本发明的一实施例的上述哈希值至少部分基于数据值的纯文本及上述加密数据的存储位置。因此,针对如上所述的变更数据的存储位置的攻击,由于基于解密数据值及解密数据值的存储位置的哈希值与存储的哈希值不同,因此完整性验证模块260可检测出有效的加密数据值的位置变更。[0082]存储模块240可决定加密数据值或哈希值的存储位置。存储模块240可决定加密数据值在数据表270上的存储位置。另外,上述存储模块240可决定加密数据值在永久存储介质140上的存储位置。另外,上述存储模块240可决定数据值、加密数据值及哈希值的存储。另外,上述存储模块240可决定加密数据值及哈希值在存储器135的数据块上的存储位置。如果决定了上述数据块上的存储位置,则决定了行标识符。[0083]在本发明的一实施例中,将数据(例如,加密数据)记录于永久存储介质140的动作可通过DBMS130的后台进程(例如,Databasebufferwriter、Datablockwriter、checkpointprocess和/或logwriter等)实现。在这种情况下,如果将加密模块220加密的数据存储于存储器(例如,缓冲器高速缓冲存储器)(foregroundprocess),则后台进程在预定的时刻将加密数据记录于永久存储介质140。在本说明书中,为便于说明,对存储模块240包括决定数据存储的动作和后台进程的动作的情况进行说明。[0084]上述存储模块240在被加密的数据值有更新时,可决定将基于更新数据值生成的第二加密数据值存储于与上述加密数据值的位置不同的第二位置。因此,上述第二加密数据值的行标识符可改变。[0085]另外,上述存储模块240在被加密的数据值有更新时,可决定将基于更新数据值生成的第二加密数据值存储于上述永久存储介质140上的与上述加密数据值在上述永久存储介质140上的位置不同的第二位置。因此,上述第二加密数据值的行标识符可改变。[0086]当数据值有更新时,存储模块240可将更新的数据存储(或记录)在与更新之前存储的位置不同的位置。[0087]在被加密的数据值有更新时,上述存储模块240将基于更新的值生成的第二加密数据值存储于永久存储介质140上的与现有的加密数据值的存储位置不同的位置,因此与上述第二加密数据值匹配的哈希值可与现有的哈希值不同。因此,拥有合法访问权限的内部人员、拥有0S权限的人员或可物理访问上述数据库服务器120或永久存储介质140的人员,获得更新前的加密数据值及哈希值并将其存储于更新数据值的存储位置时,完整性验证模块260也能检测出数据值是否变化。因此,随着被加密的数据的更新,安全水平可进一步提高。在现有的数据库服务器中,在数据值被更新时,永久存储介质上的存储位置不会改变。但是,在本发明的一实施例的数据库服务器120中,每当更新数据值时都改变永久存储介质140上的存储位置,从而达到更高的安全水平。[0088]存储模块240可决定将加密数据值及上述哈希值存储于永久存储介质140上的数据块中。另外,上述存储模块240可将存储器135的数据块的数据记录于上述永久存储介质140。基于上述加密数据值及上述哈希值,可在上述永久存储介质140的块上生成检验和(checksum)。上述加密数据值或上述哈希值发生变化时,上述校验和的值发生变化,因此上述校验和可用于检测上述加密数据值或上述哈希值的变化。[0089]解密模块250可基于加密数据值生成解密数据值。此时,上述解密模块250可使用与加密模块220生成加密文本时使用的加密密钥相同的对称密钥。上述解密模块250可基于存储在永久存储介质140上的加密数据值生成解密数据值。[0090]完整性验证模块260通过对存储于永久存储介质140的与加密数据值匹配的第一哈希值及与解密数据值匹配的第二哈希值进行比较,验证解密数据值的完整性。[0091]在本发明的一实施例中,存储模块240在对数据值进行加密并存储时,将上述加密数据值和基于上述数据值及上述数据值的存储位置的第一哈希值匹配存储。另外,在本发明的一实施例中,在对加密数据进行解密时,对上述加密数据值进行解密的解密数据值和第二哈希值匹配,所述第二哈希值基于上述解密数据值及上述解密数据值的存储位置。当上述第一哈希值及第二哈希值相同时,判定上述数据值及上述解密数据值相同,从而判断上述解密数据值的完整性。上述各哈希值至少部分基于上述数据值的存储位置,因此针对内部人员改变加密数据值的存储位置的攻击,可用于验证数据的完整性。[0092]图3是本发明的一实施例的数据库加密方法顺序图。[0093]在本发明的一实施例中,上述方法例如可通过数据库服务器120的各模块执行。另外,如图3所示的顺序图的各步骤不是必须的,可根据需要省略或添加部分步骤。[0094]数据库服务器120可决定对存储于存储器135的数据表270的一个以上的列的数据值进行加密(310)。根据本发明的一个方面,对将要保存的数据执行列级加密。因此,数据库服务器120不对整个数据表270进行加密,所以不受性能的制约,可节省资源且有效地对数据进行加密并存储。在如图2所示的数据表270的示例中,可以只对包括相当于年薪的数据值的“年薪”列执行列级加密。[0095]加密模块220可基于存储于存储器135的数据表270中包括的数据值生成加密数据值(320)。而如上所述,上述加密数据值可通过任何加密算法生成。[0096]哈希模块230可至少部分基于上述数据值及上述数据值的位置信息,生成与上述加密数据值匹配的哈希值(330)。而上述数据值的位置信息可包括行标识符(rowID)及列密钥(columnkey)中的至少一种。上述列密钥可至少部分基于上述数据表270的元信息。可以按上述数据表270的列存在上述列密钥,而且可以按不同的列有不同的上述列密钥。上述行标识符至少部分基于数据块上的将要记录上述数据值的位置。加密数据值可记录于存储器135的数据块中。在这种情况下,可生成行标识符。上述哈希模块230可获得上述行标识符。上述行标识符相对于上述数据块是固有的。根据存储器135的数据块上的位置,可决定在永久存储介质140上的物理存储位置,而上述行标识符相对于永久存储介质140是固有的。具体而言,哈希模块230至少部分基于上述数据表的元信息,获得上述列密钥。另外,上述哈希模块230至少部分基于上述数据块上的将要记录上述数据值的位置,获得上述行标识符。另外,上述哈希模块230可至少部分基于上述数据值、上述列密钥及上述行标识符,生成与上述加密数据值匹配的哈希值。[0097]存储模块240可决定将上述加密数据值及上述哈希值记录于永久存储介质140(340)。根据本发明的另一方面,当存储模块240将加密数据值及哈希值存储于存储器时,后台进程以预定的时间单位将存储于存储器上的数据值及哈希值记录于永久存储介质140。另外,上述存储模块240可决定上述加密数据值及上述哈希值在永久存储介质140上的存储位置。[0098]另外,加密模块220在被加密的数据值有更新时,可基于更新数据值生成第二加密数据值(350)。[0099]存储模块240可决定将上述第二加密数据值存储于与上述加密数据值的位置不同的第二位置(360)。因此,第二加密数据值可存储于与上述加密数据值的存储位置不同的位置。因此,上述第二加密数据值的行标识符可改变。[0100]哈希模块230至少部分基于更新数据值及上述第二位置的位置信息生成与上述第二加密数据值匹配的第二哈希值(370)。由于第二加密数据值的行标识符改变,所以第二哈希值可与上述第一哈希值不同。[0101]存储模块240可决定将上述第二加密数据值及上述第二哈希值记录于上述永久存储介质140上(380)。[0102]图4是本发明的另一实施例的数据库加密方法顺序图。[〇1〇3]在本发明的一实施例中,上述方法例如可通过数据库服务器120的各模块执行。另外,如图4所示的顺序图的各步骤不是必须的,可根据需要省略或添加部分步骤。[0104]如图4所示的410至420步骤及450步骤与如图3所示的310至320步骤及350步骤相同,因此对此的说明与上述内容一致。[0105]哈希模块230可至少部分基于上述数据值及永久存储介质140上的将要存储上述数据值的存储位置信息,生成与上述加密数据值匹配的哈希值(430)。在上述永久存储介质140上的存储位置信息可包括行标识符及列密钥中的至少一种。[0106]存储模块240可决定将上述加密数据值及上述哈希值记录于永久存储介质140上(440)。上述存储模块240可决定上述加密数据值及上述哈希值在永久存储介质140上的存储位置。[0107]存储模块240可决定将对更新数据值进行加密而成的第二加密数据值存储于上述永久存储介质140上的与上述加密数据值在上述永久存储介质140上的位置不同的第二位置(460)。因此,第二加密数据值的行标识符可改变。[0108]哈希模块230至少部分基于更新数据值及上述第二位置的位置信息,生成与上述第二加密数据值匹配的第二哈希值(470)。由于第二加密数据值的行标识符可改变,所以第二哈希值可与上述第一哈希值不同。[0109]存储模块240可决定将上述第二加密数据值及上述第二哈希值记录于上述永久存储介质140上(480)。[0110]图5是表示本发明的一实施例的被加密的数据值有更新时的数据库服务器的运行顺序图。[0111]在本发明的一实施例中,上述方法例如可通过数据库服务器120的各模块执行。另外,如图5所示的顺序图的各步骤不是必须的,可根据需要省略或添加部分步骤。[0112]加密模块220在被加密的数据值有更新时,可基于更新数据值生成第二加密数据值(510)。[0113]存储模块240可决定将上述第二加密数据值存储于与上述加密数据值的位置不同的第二位置(530)。因此,第二加密数据值可存储于与上述加密数据值的存储位置不同的位置。因此,上述第二加密数据值的行标识符可改变。[0114]哈希模块230至少部分基于上述更新数据值及上述第二位置的位置信息,生成与上述第二加密数据值匹配的哈希值(550)。由于第二加密数据值的行标识符可改变,所以第二哈希值可与上述第一哈希值不同。[0115]存储模块240可记录上述第二加密数据值及上述哈希值。[0116]图6是表示本发明的另一实施例的被加密的数据值有更新时的数据库服务器的运行顺序图。[0117]在本发明的一实施例中,上述方法例如可通过数据库服务器120的各模块执行。另外,如图6所示的顺序图的各步骤不是必须的,可根据需要省略或添加部分步骤。[0118]如图6所示的610步骤与如图5所示的510步骤相同,因此对此的说明与上述内容一致。[0119]存储模块240可决定将对更新数据值进行加密而成的第二加密数据值存储于上述永久存储介质140上的与上述加密数据值在上述永久存储介质140上的位置不同的第二位置(630)。因此,第二加密数据值的行标识符可改变。[0120]哈希模块230至少部分基于更新数据值及上述第二位置的位置信息,生成与上述第二加密数据值匹配的第二哈希值¢50)。由于第二加密数据值的行标识符可改变,所以第二哈希值可与上述第一哈希值不同。[0121]存储模块240可决定将上述第二加密数据值及上述第二哈希值记录于上述永久存储介质140上(670)。[0122]图7是本发明的一实施例的数据库解密方法顺序图。[0123]在本发明的一实施例中,上述方法例如可通过数据库服务器120的各模块执行。另外,如图7所示的顺序图的各步骤不是必须的,可根据需要省略或添加部分步骤。[0124]解密模块250可基于存储在上述永久存储介质140上的加密数据值生成解密数据值(710)。[0125]哈希模块230可至少部分基于上述解密数据值及上述解密数据值在数据表270内的位置信息,生成与上述解密数据值匹配的哈希值(730)。[0126]完整性验证模块260可通过对所生成的上述哈希值及存储于上述永久存储介质140上的哈希值进行比较,验证上述解密数据的完整性(750)。存储于上述永久存储介质140上的哈希值可以是至少部分基于被解密的数据值被加密之前的纯文本及上述纯文本在数据表270内的位置信息生成的哈希值。当解密数据值与被加密的数据值的纯文本相同、且上述解密数据值在数据表270内的位置与上述纯文本在数据表270内的位置相同时,所存储的哈希值和至少部分基于解密数据值及上述解密数据值在数据表270内的位置信息生成的哈希值有可能相同。此时,完整性验证模块260可判断上述数据的完整性。[0127]图8是本发明的一实施例的数据库解密方法顺序图。[0128]在本发明的一实施例中,上述方法例如可通过数据库服务器120的各模块执行。另外,如图8所示的顺序图的各步骤不是必须的,可根据需要省略或添加部分步骤。[0129]如图8所示的810步骤与如图7所示的710步骤相同,因此对此的说明与上述内容一致。[0130]哈希模块230可至少部分基于上述解密数据值及上述加密数据值在上述永久存储介质140上的存储位置信息,生成与上述解密数据值匹配的哈希值(830)。[0131]完整性验证模块260可通过对所生成的上述哈希值及存储于上述永久存储介质140上的哈希值进行比较,验证上述解密数据的完整性(850)。存储于上述永久存储介质140上的哈希值可以是至少部分基于被解密的数据值被加密之前的纯文本及上述纯文本在永久存储介质140上的位置信息生成的哈希值。当解密数据值与被加密的数据值的纯文本相同、且上述解密数据值在被解密前在永久存储介质140上的存储位置及上述纯文本的加密数据值在永久存储介质140上的存储位置相同时,所存储的哈希值和至少部分基于上述解密数据值及上述加密数据值在永久存储介质140上的存储位置信息生成的哈希值有可能相同。此时,完整性验证模块260可判断上述数据的完整性。[0132]本领域普通技术人员应当理解与在此公开的实施例相关的各种示例性逻辑块、模块、进程、方法、电路及算法步骤可通过电子硬件(为方便起见,在此称为“软件”)且可通过各种形式的程序和设计编码或它们的组合实现。为明确说明硬件及软件的上述相互兼容性,关于与各种示例性的元件、块、模块、电路及步骤及与其相关的功能已在上面进行了说明。上述功能是否通过硬件或软件实现取决于对特定应用及整体系统的设计限制。本领域普通技术人员可通过各种方式实现对应用所说明的功能,但上述实现决定不应理解为超出本发明的范围。[0133]在此公开的各种实施例可通过使用了方法、装置或标准程序和/或工程技术的制造物品(article)实现。术语“制造物品”包括可以从任何计算机可读装置访问的计算机程序、载体或介质(media)。例如,计算机可读介质包括磁存储装置(例如,硬盘、软盘、磁带等)、光盘(例如,CD、DVD等)、智能卡及闪存装置(例如,EEPR0M、卡、棒、键驱动等),但并不限于此。另外,在此公开的各种存储介质可包括用于存储信息的一个以上的装置和/或其他机器可读介质。术语“机器可读介质”包括可存储、保留和/或传递命令和/或数据的无线通道及各种其他介质,但并不限于此。[0134]包含在所公开的进程中的步骤的特定顺序或分级结构应当理解为示例性接近的一例。应当理解为可基于设计优先顺序在本发明的范围内重新排列进程中的步骤的特定顺序或分级结构。所附的方法权利要求按样品顺序提供各种步骤的因素,但不限于所公开的特定顺序或分级结构。[0135]对所揭示的实施例进行的说明用于帮助本领域的普通技术人员利用或实施本发明。本领域的普通技术人员应当能够理解对所述实施例进行的多种变形,并且在不脱离本发明的范围内,在此定义的一般原理可应用于其他实施例。因此,本发明不限于在此所揭示的实施例,而应当在与所揭示的原理和新的技术特征一致的范围内对本发明进行解释。【主权项】1.一种数据库加密方法,用于对存储于存储器中的数据表所包含的数据值进行加密并存储于永久存储介质,所述数据库加密方法的特征在于包括如下步骤:基于存储于存储器中的数据表所包含的数据值生成加密数据值的步骤;至少部分基于所述数据值和所述数据值的位置信息生成与所述加密数据值匹配的哈希值的步骤;以及决定将所述加密数据值和所述哈希值记录于永久存储介质的步骤。2.根据权利要求1所述的数据库加密方法,其特征在于,所述数据值的位置信息包括行标识符和列密钥中的至少一种。3.根据权利要求2所述的数据库加密方法,其特征在于,所述列密钥至少部分基于所述数据表的元信息,所述行标识符至少部分基于在数据块上记录所述数据值的位置。4.根据权利要求2所述的数据库加密方法,其特征在于,生成所述哈希值的步骤包括如下步骤:至少部分基于所述数据表的元信息获得所述列密钥的步骤;至少部分基于在数据块上记录所述数据值的位置获得所述行标识符的步骤;以及至少部分基于所述数据值、所述列密钥及所述行标识符生成与所述加密数据值匹配的哈希值的步骤。5.根据权利要求1所述的数据库加密方法,其特征在于,还包括决定对所述数据表的一个以上的列的数据值进行加密的步骤,对决定加密的所述一个以上的列的数据值执行以上各步骤。6.根据权利要求1所述的数据库加密方法,其特征在于,当被加密的所述数据值有更新时,还包括如下步骤:基于更新数据值生成第二加密数据值的步骤;决定将所述第二加密数据值存储于与所述加密数据值的位置不同的第二位置的步骤;至少部分基于所述更新数据值和所述第二位置的位置信息生成与所述第二加密数据值匹配的第二哈希值的步骤;以及决定将所述第二加密数据值和所述第二哈希值记录于所述永久存储介质的步骤。7.根据权利要求1所述的数据库加密方法,其特征在于,还包括基于所述加密数据值和所述哈希值在所述永久存储介质的块上生成校验和的步骤。8.根据权利要求1所述的数据库加密方法,其特征在于,生成所述加密数据值的步骤包括如下步骤:基于加密密钥中包含的加密信息决定加密函数的步骤;以及利用基于所述数据值进行计算的所述加密函数生成加密数据值的步骤。9.根据权利要求8所述的数据库加密方法,其特征在于,所述加密密钥至少包括与加密模式相关的信息、加密数据类型及数据长度信息,所述加密模式至少包括数据加密标准、三重数据加密标准、高级加密标准中的一种。10.—种数据库加密方法,用于对存储于存储器中的数据表所包含的数据值进行加密并存储于永久存储介质,所述数据库加密方法的特征在于包括如下步骤:基于存储于存储器中的数据表所包含的数据值生成加密数据值的步骤;至少部分基于所述数据值和在永久存储介质上存储所述数据值的存储位置信息生成与所述加密数据值匹配的哈希值的步骤;以及决定将所述加密数据值和所述哈希值记录于永久存储介质的步骤。11.根据权利要求10所述的数据库加密方法,其特征在于,当被加密的所述数据值有更新时,还包括如下步骤:基于更新数据值生成第二加密数据值的步骤;决定将所述第二加密数据值存储于所述永久存储介质上的与所述加密数据值在所述永久存储介质上的位置不同的第二位置的步骤;至少部分基于所述更新数据值和所述第二位置的位置信息生成与所述第二加密数据值匹配的第二哈希值的步骤;以及决定将所述第二加密数据值和所述第二哈希值记录于所述永久存储介质的步骤。12.—种数据库加密方法,其特征在于包括如下步骤:当被加密的数据值有更新时,基于更新数据值生成第二加密数据值的步骤;决定将所述第二加密数据值存储于与加密数据值的位置不同的第二位置的步骤;至少部分基于所述更新数据值和所述第二位置的位置信息生成与所述第二加密数据值匹配的哈希值的步骤;以及决定将所述第二加密数据值和所述哈希值记录于永久存储介质的步骤。13.—种数据库加密方法,其特征在于包括如下步骤:当被加密的数据值有更新时,基于更新数据值生成第二加密数据值的步骤;决定将所述第二加密数据值存储于永久存储介质上的与加密数据值在所述永久存储介质上的位置不同的第二位置的步骤;至少部分基于所述更新数据值和所述第二位置的位置信息生成与所述第二加密数据值匹配的哈希值的步骤;以及决定将所述第二加密数据值和所述哈希值记录于所述永久存储介质的步骤。14.一种数据库加密方法,用于验证存储于永久存储介质中的加密数据的完整性,其特征在于包括如下步骤:基于存储于所述永久存储介质中的加密数据值生成解密数据值的步骤;至少部分基于所述解密数据值和所述解密数据值在数据表内的位置信息生成与所述解密数据值匹配的哈希值的步骤;以及通过比较所生成的所述哈希值和存储于所述永久存储介质中的哈希值验证所述解密数据的完整性的步骤。15.—种数据库加密方法,用于验证存储于永久存储介质中的加密数据的完整性,其特征在于包括如下步骤:基于存储于所述永久存储介质中的加密数据值生成解密数据值的步骤;至少部分基于所述解密数据值和所述加密数据值在所述永久存储介质中的存储位置信息生成与所述解密数据值匹配的哈希值的步骤;以及通过比较所生成的所述哈希值和存储于所述永久存储介质中的哈希值验证所述解密数据的完整性的步骤。16.—种数据库服务器,所述数据库服务器用于提供数据安全,其特征在于包括:存储器,存储包含数据值的数据表;加密模块,基于所述数据值生成加密数据值;哈希模块,至少部分基于所述数据值和所述数据值的位置信息生成与所述加密数据值匹配的哈希值;以及永久存储介质,记录所述加密数据值和所述哈希值。17.—种数据库服务器,所述数据库服务器用于提供数据安全,其特征在于包括:存储器,存储包含数据值的数据表;加密模块,基于所述数据值生成加密数据值;哈希模块,至少部分基于所述数据值和在永久存储介质上存储所述数据值的存储位置信息生成与所述加密数据值匹配的哈希值;以及所述永久存储介质,记录所述加密数据值和所述哈希值。18.—种数据库服务器,所述数据库服务器用于提供数据安全,其特征在于包括:加密模块,当被加密的数据值有更新时,基于更新数据值生成第二加密数据值;存储模块,决定将所述第二加密数据值存储于与加密数据值的位置不同的第二位置;哈希模块,至少部分基于所述更新数据值和所述第二位置的位置信息生成与所述第二加密数据值匹配的哈希值;以及永久存储介质,记录所述第二加密数据值和所述哈希值。19.一种数据库服务器,所述数据库服务器用于提供数据安全,其特征在于包括:加密模块,当被加密的数据值有更新时,基于更新数据值生成第二加密数据值;存储模块,决定将所述第二加密数据值存储于永久存储介质上的与加密数据值在所述永久存储介质上的位置不同的第二位置;哈希模块,至少部分基于所述更新数据值和所述第二位置的位置信息生成与所述第二加密数据值匹配的哈希值;以及所述永久存储介质,记录所述第二加密数据值和所述哈希值。20.—种数据库服务器,所述数据库服务器用于验证存储于永久存储介质中的加密数据值的完整性,其特征在于包括:永久存储介质,存储所述加密数据值和第一哈希值;解密模块,基于存储于所述永久存储介质的加密数据值生成解密数据值;哈希模块,至少部分基于所述解密数据值和所述解密数据值在数据表内的位置信息生成与所述解密数据值匹配的第二哈希值;以及完整性验证模块,通过比较所述第一哈希值和所述第二哈希值验证所述解密数据值的完整性。21.—种数据库服务器,所述数据库服务器用于验证存储于永久存储介质中的加密数据值的完整性,其特征在于包括:永久存储介质,存储所述加密数据值和第一哈希值;解密模块,基于存储于所述永久存储介质的加密数据值生成解密数据值;哈希模块,至少部分基于所述解密数据值和所述加密数据值在所述永久存储介质中的存储位置信息生成与所述解密数据值匹配的第二哈希值;以及完整性验证模块,通过比较所述第一哈希值和所述第二哈希值验证所述解密数据值的完整性。【文档编号】G06F21/62GK106022154SQ201510347270【公开日】2016年10月12日【申请日】2015年6月19日【发明人】尹晶,尹晶一,朴相永【申请人】株式会社特迈数据
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1