用于数据库安全管理的方法及服务器的制造方法

文档序号:10655947阅读:176来源:国知局
用于数据库安全管理的方法及服务器的制造方法【专利摘要】根据本发明的一种实施方式,公开了一种数据库安全管理方法。所述方法可以包括:从永久存储介质或存储器读取按列(column)级加密的一个以上数据的步骤;解密所述按列级加密的一个以上数据,生成一个以上解密的数据的步骤;生成基于所述生成的一个以上解密的数据的索引表的步骤;及执行把所述生成的索引表按块(block)级加密的动作的步骤。【专利说明】用于数据库安全管理的方法及服务器
技术领域
[0001]本发明设及数据库安全管理,更具体而言,设及一种用于生成关于加密的数据库的索引的方法及服务器。【
背景技术
】[0002]随着计算机及互联网技术的发展,用于高效存储大量数据并按所需检索条件轻松、迅速查找的数据库的重要性正在增加。现在的数据库系统允许存储及检索大量的信息。运种信息中的一部分信息例如会包括诸如信用卡号等的敏感信息。[0003]特别是在金融圈、互联网口户网站等,收集并管理个人信息的数据库的安全,是为了防止无权限的使用者判断或不当地记录计算机中处理的信息,而保护具有正当权限的使用者的信息处理服务不被计算机系统拒绝,W及为了在保管大容量资料的数据库管理系统中保障数据的完整性、机密性、可用性所必不可少的。[0004]最近,由数据库服务器管理员及开发者泄露密钥导致的信息泄露正在成为严重的问题。即顺应信息集成度日益提高的趋势,企业内存在的数据库中积累的信息的量也在与之成比例地增加,因此,假设通信公司管理的客户信息数据库中所储存的客户信息(居民身份证号、电话号码、帐号等)通过不正当途径泄露时,其危害的波及效果将是巨大的。阳0化]运种数据的泄露虽然存在由企业外部的黑客进行的入侵化acking)、对数据存储空间的物理访问等引起的情形,但实质上大部分信息泄露是由对数据库拥有正当访问权限的内部人员(例如,数据库管理员(a血inistrator))而引起的,运种内部人员造成的信息泄露会导致比从外部发生的入侵事件更严重、更致命性的危害。[0006]管理运种数据库安全的现有技术中,使用向各个客户端分配的安全文件中规定的访问控制方式,限制特定使用者对特定信息的访问。运种技术可W切断客户端访问未认可的信息。但是,运种W往的技术存在无法切断拥有正当访问权限的内部人员(例如,数据库管理员)或拥有OS权限(OSprivilege)人员的不正当行为的缺点。[0007]为了解决运种问题,提出了在使用者应用程序内对机密信息加密的方式,但就运种方式而言,处置机密信息的所有使用者应用程序均需要加密/解密,因而存在需要提供在运种所有使用者应用程序中的加密/解密代码的不便。[0008]进一步而言,其它的现有技术提出了对数据库表单的列数据进行加密(列级加密)并存储于磁盘的技术。就运种现有技术而言,虽然在数据存储于磁盘时已加密,但在数据提取到存储器时会解密,因此从使用者立场来说,能够查看未加密的数据。但是,运种现有技术由于按列单位体现加密,因而在构建W列值为基准生成的索引方面有可能会发生问题。即由于索引是W列值为基准生成的,但如果运种列值自身被加密时,则会无法进行基于值范围的索引范围扫描(indexrangescan)。即在无法进行索引范围扫描的情况下,会发生对数据库的本质性能(即迅速、高效的检索)的严重影响。就运种技术而言,仅能够进行用于单纯查找一个值的固有检索(uniquesearch),但在应用加盐(Salt)时,运也会变得不可能实现。[0009]因此,该行业存在对W高效的方式保护数据库系统内的机密信息,并且即使不变更使用者应用程序也能够切断内部人员等的不正当行为的数据安全技术的需要。[0010]【现有技术文献】[0011]【专利文献】[0012]韩国公开专利公报第10-2006-0058546号阳01引美国授权专利公报US7,111,005号【
发明内容】[0014]本发巧要解决的巧术间颗[0015]本发明正是鉴于前述内容而研发的,本发明旨在提供一种用于W高效的方式保护数据库系统内的机密信息,并且保持数据库的本质性功能的技术。[0016]另外,本发明旨在提供一种能够允许索引范围扫描的高效的数据库安全管理技术。[0017]巧术方案[0018]本发明公开了一种用于实现如前所述的课题的数据库安全管理方法。上述方法可W包括:从永久存储介质或存储器读取按列(column)级加密的一个W上数据的步骤;解密上述按列级加密的一个W上数据,生成一个W上解密的数据的步骤;生成基于上述生成的一个W上解密的数据的索引表的步骤;及执行把上述生成的索引表按块化lock)级加密的动作的步骤。[0019]根据本发明的一实施例,公开一种用于数据库安全管理的数据库服务器。上述数据库服务器可W包括:至少一个处理器,其对按列级加密的一个W上数据进行解密,从而生成一个W上解密的数据,且上述至少一个处理器生成基于上述一个W上解密的数据的索引表,并执行将生成的索引表按块级加密的动作;及永久存储介质(persistentstorage),其存储包括上述按列级加密的数据的数据表及上述按块级加密的索引表。[0020]根据本发明的另一实施例,公开一种数据库安全管理方法。其中,上述方法可W包括:响应索引查询请求,从永久存储介质读取按块级加密的索引表的步骤;解密上述按块级加密的索引表,生成解密的索引表的步骤;基于上述解密的索引表,执行索引扫描的步骤;从永久存储介质读取与上述索引扫描结果对应的按列级加密的一个W上数据的步骤;及解密上述按列级加密的一个W上数据,生成一个W上解密的数据的步骤。[0021]根据本发明的另一实施例,公开一种提供数据库安全管理的数据库服务器。上述数据库服务器可W包括:至少一个处理器,其响应索引查询请求,从永久存储介质读取按块级加密的索引表,且上述至少一个处理器解密上述按块级加密的索引表,生成解密的索引表,并W上述解密的索引表为基础执行索引扫描,并且从永久存储介质读取与上述索引扫描的结果对应的按列级加密的一个W上数据,并解密上述按列级加密的一个W上数据,生成一个W上解密的数据;及永久存储介质(persistentstorage),其存储包括上述按列级加密的数据的数据表及上述按块级加密的索引表。阳0。]有益效果[0023]根据本发明的一实施例,能够提供一种数据加密技术,用于W高效的方式保护数据库系统内的机密信息,并且即使不变更使用者应用程序,也能够切断内部人员的不正当行为。[0024]另外,根据本发明的一实施例,提供一种能够允许索引范围扫描的、高效的数据库安全管理技术。【附图说明】[0025]W下,参照附图记载了多种实施方式,其中,类似的附图标记用于统一指称类似的构成要素。在W下的实施方式中,出于说明的目的而提出多个特定详细事项,用于帮助对一个W上的实施方式的总体理解。但是显而易见,即使没有运种特定详细事项,运些实施方式也是可W实施的。在其它示例中,公知的结构及装置为了方便记载于一个W上的实施方式而W框图形态图示。[0026]图1示例性地图示根据本发明一实施例的数据库系统。[0027]图2示例性地图示根据本发明一实施例的数据库服务器的组件。[0028]图3图示关于根据本发明一实施例的数据存储及索引构建化Uild)进程(process)的示例性流程图。[0029]图4图示关于根据本发明一实施例的索引扫描及查询进程(process)的示例性流程图。[0030]图5图示关于根据本发明一实施例的数据查询进程(process)的示例性流程图。[0031]图6示例性地图示了根据本发明一实施例的、数据及索引在永久存储介质中进行加密并存储的加密方式。[0032]图7图示关于根据本发明一实施例的数据存储及索引构建(或更新)的示例性顺序图。[0033]图8图示关于根据本发明一实施例的索引查询的示例性顺序图。【具体实施方式】[0034]W下,将参照附图,公开多种实施例及/或实施方式。在下述说明中,W说明为目的,为了帮助对一个W上实施例的的全面理解,公开了多个具体的详细事项。但是,本发明所属
技术领域
的技术人员可认识到,即使没有运些具体的详细事项,运些实施例也能够实施。W下的记载及附带的附图将详细记述一个W上实施方式的特定示例性实施方式。但是,运些实施方式仅是示例性的,可W利用多种实施方式的原理中的多种方法的一部分,且记述的说明意在全部包括运些实施例及其均等物。[0035]另外,多种实施方式及特征将通过可W包括多个设备、组件及/或模块等的系统而公开。需要理解并认识的是,多种系统可W包括额外的装置、组件及/或模块等,且/或也可W不包括就附图而讨论的装置、组件、模块等的全部。[0036]在本说明书中使用的"实施例"、"例"、"实施方式"、"示例"等也可W不解释为记述的任意实施方式或设计比其它实施方式或设计更良好或有优点。W下使用的术语"组件"、"模块"、"系统"、"界面"等,通常意味着计算机相关实体(computer-relatedentity),例如,可意味着硬件、硬件与软件的组合、软件。[0037]而且,术语"或"并非为排他性的"或",而是指内含性的"或"。即未另外特别限定或在文章中未明确表示的情况下,"X利用A或B"是指自然的内含性的置换之一。即当X利用A;或X利用B;或X全部利用A及B时,"X利用A或B"可适用于运些情形的某一种。另夕F,在本说明书中使用的术语"及/或",应理解为指示和包括所列举的相关项目中一个W上项目的所有可能的组合。[003引另外,术语"包括"及/或"包括的"虽然意味着相应特征及/或构成要素存在,但应理解为并不排除一个W上的其它特征、构成要素及/或它们的组的存在或额外地配置。另外,在未特别限定或从文章中未明确指示为单数形态的情况下,在本说明书和权利要求书中的单数应理解为"一个或其W上"。[0039]本说明书中的计算机可读介质可W包括存储程序及数据W便能够借助于计算机系统而读取的所有种类的存储介质。根据本发明的一种实施方式,运种介质可W包括ROM(只读存储器)、RAM(随机存取存储器)、CD(光盘)-ROM、DVD(数字视频光盘)-ROM、磁带、软盘、光数据存储装置等,另外,还包括W载波(例如,通过互联网的传送)的形态体现的介质。额外地,运种介质也可W分散于通过网络连接的系统,W分布方式存储计算机可读的代码及/或命令。[0040]在说明用于本发明实施的具体内容之前,需要注意的是,对于与本发明的技术要旨没有直接关联的构成,在不混淆本发明的技术要旨的范围内将进行省略。另外,发明人为了W最佳方法说明自己的发明而可W定义适当的术语的概念,立足于运一原则,本说明书及权利要求书中使用的术语或词语应解释为符合本发明的技术思想的意义和概念。[0041]图1示例性地图示根据本发明一实施例的数据库系统100。[0042]如图1所示,数据库服务器120例如可W包括诸如微处理器、大型计算机、数字信号处理器、便携用设备及设备控制器等的任意类型的计算机系统或计算机设备。[0043]客户端IlO(Client)可W意味着具有用于通过网络进行通信的机制的数据库系统中的节点。例如,客户端110可W包括PC、便携式电脑、工作站、终端及/或具有网络连接性的任意电子设备。另外,客户端110也可W包括借助代理商(Agent)、API(ApplicationProgrammingInte计ace,应用程序接口)及插件(Plug-in)中的至少一种而体现的任意的服务器。[0044]数据库服务器120可W包括DBMS(Dat油aseManagementSystem,数据库管理系统)130及永久存储介质(persistentstorage)140。W45]在图I中虽然未图示,但数据库服务器120可W包括包含缓冲区高速缓存(buffercache)的一个W上的存储器。另外,虽然在图1中未图示,但数据库服务器120可W包括一个W上的处理器。因此,DBMS130可W在所述存储器上借助于所述处理器而运行。[0046]其中,存储器作为(诸如动态随机存取存储器值RAM,dynamicrandomaccessmemoir)、静态随机存取存储器(SRAM,staticrandomaccessmemory)等随机存取存储器(RAM))供处理器直接访问的主要存储装置,可W指当关闭电源时,存储的信息将瞬间消除的易失性(volatile)存储装置,但并非仅限于此。运种存储器可W借助处理器而运行。存储器可W临时存储包括数据值的数据表(datat油Ie)。所述数据表可W包括数据值,在本发明的一实施例中,所述数据表的数据值可W按列单位(薑岂曰詞)加密并存储于永久存储介质。在额外的实施方式中,存储器可W包括缓冲区高速缓存,在所述缓冲区高速缓存的数据块中可W存储数据。所述数据可W借助于后台进程化ackgroundprocess)而记录于永久存储装置140。[0047]永久存储介质(persi/*-/*-?36789*-entstorage)140是指能够持续存储任意数据的非易失性(non-volatile)存储介质,例如磁(ma即etic)盘、光(optical)盘及磁光(magneto-optical)存储设备,或者如基于闪速存储器及/或电池备份存储器的存储设备。运种永久存储介质140可W通过多种的通信手段而与数据库服务器120的处理器及存储器实现通信。在额外的实施例中,运种永久存储介质140也可W位于数据库服务器120外部,且能够与数据库服务器120实现通信。[0048]DBMS130作为用于允许在数据库服务器120中对所需数据执行诸如检索、插入、修改及/或删除等动作的程序,如前所述,可W在数据库服务器120的存储器中,借助于处理器而体现。[0049]客户端110与数据库服务器120可W通过网络而相互进行通信。根据本发明一实施例的网络可W使用诸如公用交换电话网(PSTN:化blicSwitichedTelephone化twork)、址SL(xDigital如bscriberLine,数字用户线路)、RAD化(RateAdaptiveD化,速率自适应数字用户线路)、MD化(MultiRateDSL多速率数字用户线路)、VD化(Very化曲SpeedDSL甚高速数字用户线路)、UAD化OJniversalAsymmetricDSL通用不对称式数字用户线路)、皿化(化曲BitRateDSL高比特率数字用户线路)及局域网(LAN)等的多种有线通信系统。[(K)加]另外,在本说明书中所提及的网络可W使用诸如CDMA(CodeDivisionMultiAccess,码分多址接入)、TDMA(TimeDivisionMultiAccess,时分多址接入)、抑MA(Rrequen巧DivisionMultiAccess,频分多址接入)、(FDMA(OrthogonalRrequen巧DivisionMultiAccess,正交频分多址接入)、SC-FDMA(SingleCarrier-FDMA,单载波频分多址接入)及其它系统的多种无线通信系统。在本说明书中说明的技术不仅可在上面所提及的网络使用,还可W在其它网络中使用。[0051]图2示例性地图示根据本发明一实施例的数据库服务器120的组件。阳052]如图2所示,数据库服务器120可W包括永久存储介质(persistentstorage)140及DBMS130。如前所述,DBMS130可W借助于数据库服务器120内的一个W上的存储器及一个W上的处理器而运行。[0053]DBMS130可W包括发送接收模块210、索引管理模块220、数据管理模块230、加密模块240及解密模块250。图2中图示的DBMS130内的各个模块能够相互通信。运种DBMS130的模块仅为示例性的,根据需要可W包括额外的模块,或者也可W省略所述模块中的一部分。[0054]发送接收模块210可W接收来自使用者的数据存储、查询及索引构建、查询请求等。另外,发送接收模块210也可W传递关于数据存储、查询及索引构建、查询请求的结果f目息。阳化5]索引管理模块220可W处理及管理与索引构建、更新、存储及查询相关的请求。索引管理模块220可W包括构建模块260及扫描模块270。构建模块260可W执行与索引的构建及/或构建的索引的更新相关的动作。扫描模块270可W执行对解密的索引表的索引扫描。[0056]数据管理模块230可W处理及管理与数据的存储及查询相关的请求。运种数据管理模块230可W包括存储模块280及查询模块290。存储模块280可W处理及管理与数据的存储(包括更新)相关的请求。[0057]运种存储模块280可W判断将要存储数据的列是否为指定加密的列W及将要存储数据的列是否为设置索引的列等。进而,存储模块280可W决定存储数据及索引表等。另外,存储模块280可W决定加密的数据及/或加密的索引表的存储位置。例如,存储模块280可W针对加密的数据而决定在数据表上的存储位置。作为另一示例,存储模块280可W针对加密的数据而决定永久存储介质140上的存储位置。[0058]查询模块290可W处理及管理与数据的查询(读取)相关的请求。查询模块290可W与扫描模块270实现通信,基于根据索引扫描而获得的列关键字(columnkey)及行定位符(rowid)来查询相应数据(多个)的值。[0059]加密模块240在把数据记录(存储)于永久存储介质140之前,可W执行对数据的加密(enc巧ption)。加密模块240可WW明文数据(plaintext)为基础生成加密的数据(ciphertext)。本说明书中的对数据的加密方式可W包括:列级加密及块级加密(例如,表空间(tablespace)级加密)。列级加密是指对指定为进行加密的列的数据进行加密。块级的加密是指按块单位(誓旱甘罕I)体现对数据的加密,例如,意味着在OS系统上生成的物理数据文件W块单位进行加密。在本发明的一种实施方式中,可W对于将要存储的数据执行列级加密,对于将要存储的索引执行块级加密。在本发明的额外的实施方式中,块级加密也可W是指按块单位或其W上(文件、段及表空间等)的单位实现加密。W60]在本发明的额外的实施例中,加密模块240可W将密码比较代码(例如,散列函数化ash化nction))映射到加密的数据并存储于永久存储介质140。如上所述,在永久存储介质140中记录有密码比较代码及加密的数据,因此可通过密码比较代码验证解密模块250进行解密的数据的完整性。[0061]在本发明的一实施方式中,把数据(例如,加密的数据)记录于永久存储介质140的动作,可W借助于DBMS130的后台进程(例如,数据库缓冲区写入进程值at油asebufferwriterprocess)、数据块写入进程值atablockwriterprocess)、检查点进程Checkpointprocess)、及/或日志写入进程(X〇gwriterprocess)等)而实现。此时,如果加密模块240把加密的数据存储(foregroundprocess)于存储器(例如,缓冲区高速缓存),则在事先设定的时间点,后台进程可W把加密的数据记录于永久存储介质140。另外,将生成的索引表W块级进行加密的动作,也可W在后台进程要把存储器内的块记录于所述永久存储介质时执行。W62]在本发明的一实施方式中,加密模块240可W全面地覆盖DBMS120的前端肚ontend)层级(互客M迎H.到瞎)及后端(backend)层级(吗'迎.邓寒)而配置。另外,在本发明的额外的实施方式中,解密模块250可W位于DBMS120的后端层级。[0063]解密(dec巧ption)模块250可W对加密的数据进行解密,生成与明文数据对应的解密的数据(deciphertext)。额外地,解密模块250也可W判断解密的数据是否与明文数据相同(即验证完整性)。[0064]解密模块250在永久存储介质140中加密并记录的数据载入存储器时,可W执行对载入的数据的解密。解密模块250可W与加密模块240的加密方式对应的方式,对相应数据进行解密。另外,解密模块250在加密并记录的数据常驻于存储器的情况下,也可W执行对相应数据的解密。[0065]在本说明书中的列级加密W列单位生成第1密钥,所述块级加密W块单位或其W上(文件、段及表空间等)的单位生成第2密钥,而且,所述第1密钥及所述第2密钥可W具有不同的值。另外,所述第1密钥及所述第2密钥可W存储于所述永久存储介质或存储器(例如,数据字典高速缓存)的数据字典值D=DataDictionary)。额外地,第1密钥及所述第2密钥通过主密钥(masterkey)进行加密并存储于所述数据字典,而主密钥可W存储于外部存储介质或所述永久存储介质。[0066]根据本发明一实施方式的解密方式,可W使用与在加密方式中生成密文时使用的密钥相同的对称密钥。作为运种加密/解密方式,例如可W包括DES值ata化cryptionStandard,数据加密标准)、AES(Advanced!EncryptionStandard,高级加密标准)、ARIA算法、双鱼算法(Twofish)及SE邸算法等,但并非仅限于此。额外地,根据本发明的一实施方式的加密及解密方式也可W使用具有公开密钥(publickey)及私人密钥(privatekey)的公开密钥加密方式。作为运种加密/解密方式,例如可W包括RSA算法、ElGamal算法、楠圆曲线加密及背包加密方式,但并非仅限于此。[0067]在本发明的额外的实施方式中,对W块单位进行加密的索引表的解密可W在其从永久存储介质140载入的情况下执行。另外,对W列级进行加密的数据的解密可W在要访问相应数据的情况下执行。在本发明的额外的实施方式中,关于块级加密/解密的密钥及关于列级加密/解密的密钥可W相互不同。[0068]在本发明的额外的实施方式中,加密模块240可W基于数据值(plaintext值)生成加密的数据值。加密模块240可W基于密钥中包含的加密信息来决定加密函数,利用基于所述数据值而演算的加密函数,生成加密的数据值。[0069]所述密钥可W至少包括与加密模式相关的信息、加密数据类型及数据的长度信息等。所述加密模式例如可W包括如前所述的DES值ata化cryptionStandard)、AES(Advanced!EncryptionStandard)、ARIA算法、双鱼算法(Twofish)及沈邸算法等。[0070]密钥可W用于加密及解密。加密函数可W包括能够把明文(plaintext)变更成密文(ciphertext)的加密算法。所述加密函数在执行加密及解密时,可W参照所述密钥。所述密钥可W存储于所述数据库服务器120的内部或存储于所述数据库服务器120的外部。另外,为了进一步提升安全性,所述密钥可W通过主密钥(masterkey)进行加密后被存储。运种主密钥可W具有针对一个系统的共用(global)的一个值。所述主密钥可W存储于外部存储介质或所述数据库服务器120的内部。根据本发明一实施方式的加密(解密)技术可W由多种加密算法、密钥、及/或加密选项(是否使用初始化向量等)的组合而构成。[0071]加密的数据可W与至少部分地基于一个W上数据的值及所述数据的值将要存储的永久存储介质140上的位置信息而生成的密码比较代码一起存储于所述永久存储介质140。即运种密码比较代码可W用于验证解密文本(decryptedtext)的完整性(Integrity)。运种密码比较代码可W包括利用例如SHA(se州rehashalgorithm,安全散列算法)系、MD5等散列算法而生成的散列值。[0072]在本发明的额外的实施方式中,散列算法可W至少部分地基于数据表的数据值及所述数据值的位置信息(例如,在永久存储装置内的位置信息)、存储位置信息,来生成与加密的数据值匹配的散列值。其中,所述位置信息可W包括行识别符(rowid)及列关键字(columnkey)中至少一种。例如,行识别符(rowid)可W至少部分地基于数据块上的数据值将记录的位置。[0073]在不使用散列值的情况下,拥有正当访问权限的内部人员可W获取加密的数据值,把所述加密的数据值存储于数据表上的、与原来位置不同的位置。此时,所述加密的数据值的解密文本可输出有效的数据值,因而数据库服务器120无法感知所述数据的伪造(巧)。通过把散列值匹配于所述加密的数据值,数据库服务器120则能够感知数据的伪造。但是,在散列值单纯基于数据的明文的情况下,对于拥有正当访问权限的内部人员获取加密的数据值及与其匹配的散列值,并W将其存储到其它存储位置的方式进行攻击的情形,由于解密的数据值有效,且基于解密的数据值的散列值与基于数据值(明文数据值)的散列值相同,因而无法感知数据是否伪造。但是,根据本发明一实施例的所述散列值可W至少部分地基于加密的数据的存储位置。因此,对于如上所述的变更数据存储位置的方式的攻击,由于基于解密的数据值及解密的数据值存储位置的散列值与存储的散列值不同,因而根据本发明一实施例的数据库服务器120可W有效地感知加密的数据值的位置变更。[0074]图3图示关于根据本发明一实施例的数据存储及索引构建进程的示例性流程图。[00巧]图3中的动作可W借助于数据库服务器120而执行。图3中的加密及解密动作对于客户端110而言可W是透明地自动实现。[0076]图3中图示的流程图的顺序可W根据实现方法而有所可变,但也可W额外增加一部分顺序或省略一部分顺序。阳077]发送接收模块210可W接收数据存储请求(步骤305)。此时,数据存储请求可W是指用于将数据记录(write)(包括插入及/或更新)到DB的请求。发送接收模块210可W把相应的数据存储请求传递到存储模块280(步骤310)。[0078]存储模块280可W根据事先设置的(例如,客户端的设置)模式(schema),决定数据将要存储的表的相应列是否为指定加密的列(步骤315)。另外,根据事先设置的模式,存储模块280可W决定数据将要存储的表的相应列是否为设置索引的列(320)。在本发明的一种实施方式中,所述步骤步骤315及步骤320可W独立地执行或也可W不可分割(atomic)地执行。当数据将要存储的表的相应列为指定加密的列、并且为设置索引的列时,存储模块280可W决定把相应数据存储于永久存储介质140并向加密模块240传递对相应数据的加密请求(步骤325)。[0079]加密模块240可W基于事先决定的加密算法而执行对相应数据的列级加密(步骤330)。如前所述,列级加密是指针对属于相应列(即指定加密的列)的任意数据的值加密。例如,对于指定加密的列内的特定数据的值可WW诸如"%$!G#&"的形态加密。[0080]加密模块240在加密完成之后,可W传递将加密的数据存储到永久存储介质140的存储请求(步骤340)。例如,运种存储请求及加密的数据可W存储于数据库服务器120的存储器的缓冲区高速缓存。然后,例如借助于后台进程,按列级加密的数据可W被存储到永久存储介质140的数据段(datasegment)。因此,通过前述的进程(process),响应对数据的记录(包括更新)请求,W对客户端透明的方式进行加密的数据可W记录于永久存储介质140(步骤350)。[0081]与构建关于数据的索引相关联,参照图3,加密模块240可W将对加密的数据的解密请求传递给解密模块250(步骤335)。作为一个示例,在所述步骤330中的数据的加密,可W在数据库服务器120的前端(化ontend)执行。因此,索引构建将会在数据库服务器120的后端化ackend)执行,因而为了执行索引的构建进程,应该先对加密的数据进行解密。[0082]在本发明的一实施方式中,解密模块250可WW来自加密模块240的、针对按列级加密的数据的加密信息为基础,执行对相应数据的列级解密(步骤345)。即解密模块250可W解密按列级加密的一个W上数据,生成一个W上解密的数据。[0083]如前所述,例如在索引的构建(例如,插入数据)的情形时,解密模块250在加密的数据记录于永久存储介质140之前,可W从存储器读取关于由加密模块240加密的数据的信息,因而解密模块250可W执行对从存储器取得的加密的数据的解密。作为另一示例,在索引的更新的情况下,解密模块250从永久存储介质140获得加密的数据,从而可执行对所述加密的数据的解密。加密/解密方式可W基于图2中说明的加密/解密方式执行。[0084]再次回到图3,解密模块250可W把对解密的数据的索引构建请求传递给构建模块260(步骤355)。[00化]构建模块260可WW解密的数据为基础而生成索引表(步骤360)。在本发明的一实施方式中,构建模块260可W至少部分地基于针对一个W上解密的数据将要存储的列的大小(size)属性来生成索引表。另外,所述构建模块260可W基于平衡树度alancedTree)索引技术、位图度itmap)索引技术及基于函数的索引(FBI:化nctionBasedIndex)技术中的至少一种来执行索引表构建。[0086]在本发明的一实施方式中,构建模块260在索引构建完成之后,可W将对构建的索引表的加密请求传递给加密模块240(步骤365)。[0087]加密模块240可W针对构建的索引表执行块级(例如,表空间级)加密(步骤370)。然后,加密模块240可W传递对按块级加密的索引表的磁盘存储请求(步骤375)。然后,按块级加密的索引表例如可借助于后台进程而存储到永久存储介质140的索引段。因此,通过前述的方式,可W构建能够允许索引范围扫描的加密的索引表。[0088]在本发明的额外的实施方式中,当接收数据更新请求时,数据库服务器120可W在执行W下图4所示的索引扫描及/或索引查询进程(process)后,通过图3所示的索引构建进程来实现数据更新及索引更新。[0089]图4图示关于根据本发明一实施例的索引扫描及查询进程的示例性流程图。[0090]图4中的动作可W借助于数据库服务器120而执行。图4中的加密及解密动作对于客户端110而言可W是透明地自动实现。[0091]图4中图示的流程图的顺序可W根据实现方法而有所可变,但也可W额外增加一部分顺序或省略一部分顺序。[0092]发送接收模块210可W接收索引查询请求(步骤405)。所述索引查询请求例如可W为索引范围扫描(indexrangescan)请求。发送接收模块210可W把索引查询请求传递给扫描模块270(步骤410)。[0093]扫描模块210可W执行对索引查询请求的处理。另外,扫描模块270可W传递索引扫描请求,W便加密的索引表能够从永久存储介质140载入到存储器(步骤415)。运种索引扫描请求的传递也可W整合为一个进程。[0094]响应索引扫描请求,按块级加密的索引表可W从永久存储介质140载入到解密模块250(步骤420)。运种加密的索引表的载入可W从永久存储介质140按块单位进行载入。[0095]解密模块250可W解密按块级加密的索引表,生成解密的索引表(步骤425)。解密模块250可W把解密的索引表传递给扫描模块270。[0096]扫描模块270可W执行对解密的索引表的索引扫描(步骤435)。本说明书中的所谓索引扫描,可W是指为了查找关于索引的列关键字(columnkey)及/或行定位符(rowid)而执行对索引的扫描的进程。另外,本说明书中的所谓索引查询,可W是指在扫描的索引中查找与列的rowid对应的数据值(即记录(record))的进程。[0097]扫描模块270可W把索引扫描结果传递给查询模块290(步骤440)。然后,查询模块290可W生成及传递根据索引扫描结果值(即列关键字及行定位符)的数据值查询请求(步骤445)。[0098]在运种情况下,按列级加密的数据可W从永久存储介质140载入(步骤450)。解密模块250可W解密按列级加密的数据(步骤455)。如此解密的数据可W传递给查询模块290(步骤460)。并且,查询模块290可W生成关于索引查询的结果值,并将其传递给发送接收模块210。[0099]在本发明的额外的实施方式中,就关于索引更新的进程而言,正如前面所作的说明,索引扫描进程(例如,步骤405至435步骤)可W在图3中的步骤320之后执行。[0100]在本发明的额外的实施方式中,当索引的表包括全部加密的列的情况下,通过解密按块级加密的索引表,可W完成索引扫描及索引查询。阳101]如前所述,由于针对索引表,不按列单位进行加密/解密,而是按块单位进行加密/解密,因而可W在保持数据的安全性的同时,可高效进行索引范围扫描。如果是根据本发明一种实施方式的加密/解密方式时,可W允许对安全化的数据库的单一关键字检索(singlekeysearch)、范围检索(rangesearch)及复合关键字检索(compositekeysearch)等。阳102]图5图示关于根据本发明一实施例的数据查询进程的示例性流程图。阳103]图5中的动作可W借助于数据库服务器120而执行。图5中的加密及解密动作对于客户端110而言可W是透明地自动实现。[0104]图5中图示的流程图的顺序可W根据实现方法而有所可变,但也可W额外增加一部分顺序或省略一部分顺序。[0105]如图5中所示,发送接收模块210例如可W接收来自客户端的数据查询请求(步骤510)。发送接收模块210可W把数据查询请求传递给查询模块290(步骤520)。[0106]查询模块290可W处理查询请求,传递数据查询请求,W便能够从永久存储介质140载入与查询请求对应的加密的数据(步骤530)。阳107]然后,可W载入与查询请求对应的按列级加密的数据(步骤540)。解密模块250可W解密按列级加密的数据,生成解密的数据(步骤550)。解密模块250可W把解密的数据传递给查询模块290(步骤560)。阳10引查询模块290处理解密的数据(或无需处理),生成数据查询结果值后,可W把数据查询结果值传递给发送接收模块210(步骤570)。[0109]图6示例性地图示了根据本发明一实施例的、数据及索引在永久存储介质中进行加密并存储的加密方式。[0110]如图6中所示,永久存储介质140可W包括数据段(或表段)610及索引段620。其中,数据段是数据表能够存储的区域,索引段是索引表能够存储的区域。即可W根据目标为(数据)表还是索引而分配至永久存储介质140不同的区域。阳111]根据本发明的一种实施方式,可W针对索引表执行块级加密,针对数据表执行列级加密。[0112]根据本发明的一种实施方式,当按列级加密的数据及按块级加密的索引从永久存储介质140载入到DBMS130(即存储器)时,可W自动进行解密。另外,当数据及索引从DBMS130(即存储器)存储到永久存储介质140时,可W自动进行加密。因此,通过前述的技术特征,能够实现对客户端的透明方式的安全管理。[0113]在数据段610中,存储有应用了列单位加密的数据,因此,可W对于有关姓名及出生日期的列不进行加密,只针对关于信用卡号的列进行加密。另外,在索引段620中,存储有应用了块单位加密的索引表,因此,如图6中所示,全体索引表可W被加密并存储。[0114]图7图示关于根据本发明一实施例的数据存储及索引构建(或更新)的示例性顺序图。[0115]图7中的动作可W借助于数据库服务器120而执行。图7中的加密及解密动作对于客户端110而言可W是透明地自动实现。[0116]图7中图示的流程图的顺序可W根据实现方法而有所可变,但也可W额外增加一部分顺序或省略一部分顺序。[0117]数据库服务器120可W从永久存储介质或存储器读取按列级加密的一个W上数据(步骤710)。即列级的加密可W是指对选择的数据的列单位的加密。[0118]然后,数据库服务器120可W解密按列级加密的一个W上数据,生成一个W上解密的数据(步骤720)。运是由于对生成索引表而言,当W加密的数据为基础生成索引表时,不能进行索引范围扫描。即为了在允许索引范围扫描的同时,保持对索引的安全性,索引表的生成可WW解密的数据(即明文数据)为基础执行(步骤730)。[0119]如图7中所示,数据库服务器120可W按块级对生成的索引表进行加密(步骤740)。即由于W解密的数据为基础生成索引表,因而为了保持对相应索引表的安全性,针对索引表,可W按块级进行加密。阳120]然后,数据库服务器120可W把加密的索引表存储于永久存储介质140(步骤750)O阳121]即就根据本发明一实施方式的加密技术而言,当与把数据表及索引表全部按表空间级进行加密的技术相比时,加密量更小(其结果将导致速度也加快)。而且,就根据本发明的一种实施方式的加密/解密技术而言,当与对数据表按列单位加密的技术(针对索引表不进行另外的加密)相比时,具有能够进行索引范围扫描的优点。进而,就根据本发明一种实施方式的加密/解密技术而言,由于把索引表按块级加密,因而不使关于存储到索引表的列的大小(size)属性值泄露,所W能够实现更高水平的安全管理。阳122]图8图示关于根据本发明一实施例的索引查询的示例性顺序图。阳123]图8中的动作可W借助于数据库服务器120而执行。图8中的加密及解密动作对于客户端110而言可W是透明地自动实现。[0124]图8中图示的流程图的顺序可W根据实现方法而有所可变,但也可W额外增加一部分顺序或省略一部分顺序。[01巧]数据库服务器120可W响应索引查询请求(例如,索引范围扫描请求),从永久存储介质140恢复(retrieve)按块级加密的索引表(步骤810)。然后,数据库服务器120可W解密按块级加密的索引表,生成解密的索引表(步骤820)。[0126]数据库服务器120可WW解密的索引表为基础执行索引扫描(步骤830)。即由于W解密的索引表为基础执行索引扫描,因而可W获得根据未加密数据的索引表。因此,数据库服务器120可W获得根据索引扫描的结果(例如,列关键字及行定位符)。[0127]数据库服务器120可W从永久存储介质恢复(retrieve)能与索引扫描的结果对应的按列级加密的一个W上数据(步骤840)。然后,数据库服务器120可W解密按列级加密的一个W上数据,生成一个W上解密的数据(步骤850)。因此,通过读取运种解密的数据的值(记录),可W生成对索引查询请求的结果值。阳12引因此,前述的加密/解密方式(即列级加密与块级加密的组合)可W使得在允许索引范围扫描的同时,实现对数据的高效保护。[0129]本发明所属
技术领域
的技术人员可W理解,就在此处公开的实施例相关联而说明的多种示例性的逻辑块、模块、处理器、手段、电路及算法步骤,可W借助于电子硬件、(为了便利而在此处称为"软件")多种形态的程序或设计代码或它们全部的结合而体现。为了明确说明硬件及软件的运种相互兼容性,在上面对多种示例性的组件、块、模块、电路及步骤W与功能相关联地进行了一般性说明。运种功能是否可通过硬件或软件实现,取决于针对特定应用程序及全体系统而附带的设计制约。本发明所属
技术领域
的技术人员可W针对各个特定的应用程序而W多种方式体现说明的功能,但运种体现不得解释为超出本发明的范围。[0130]此处提出的多种实施例可WW方法、装置或使用标准编程及/或工程技术的制造物品(article)来体现。术语"制造物品"包括能从任意计算机可读装置存取的计算机程序、载体或介质(media)。例如,计算机可读介质包括磁存储装置(例如,硬盘、软盘、磁条等)、光盘(例如,CD、DVD等)、智能卡及快闪存储器装置(例如,EEPROM(电可擦除只读存储器)、磁卡、Stick、键驱动器等),但并非仅限于此。另外,此处提出的多种存储介质包括用于存储信息的一个W上的装置及/或其它可机读介质。术语"可机读介质"包括能够存储、保有、及/或传递命令及/或数据的无线频道及其它多种介质,但并非仅限于此。阳131]提出的进程中的步骤的特定顺序或层级结构,应理解为是示例性访问的一例。应题解,基于设计优先顺序,在本发明的范围内,可对进程中的步骤的特定顺序或层级结构进行再排列。附带的方法权利要求仅作为样本顺序,提供多个步骤的要素,但并非意味着本发明限定于提出的特定顺序或层级结构。阳132]对于提出的实施例的说明而言,W使本发明所属
技术领域
的任意技术人员能够利用或实施本发明的方式提供。对运些实施例的多种变形是本发明所属
技术领域
的技术人员显而易见的,且在此定义的一般原理可W在不超出本发明范围的情况下应用于其它实施例。因此,本发明并非仅限于在此提出的实施例,而应解释为与在此提出的原理及新特征一致的最广义的范围。阳133]附图标记说明阳134]110:客户端阳135]120:数据库服务器[0136]130:DBMS(Dat油aseManagementSystem,数据库管理系统)[0137]140:永久存储介质(persistentstorage)[0138]210:发送接收模块阳139]220:索引管理模块[0140]230:数据管理模块阳141]240:加密模块[0142]250:解密模块[0143]260:构建模块[0144]270:扫描模块[0145]280:存储模块[0146]290:查询模块阳147]610:数据段阳14引620:索引段【主权项】1.一种数据库安全管理方法,其特征在于,所述方法包括:从永久存储介质或存储器读取按列级加密的一个以上数据的步骤;解密所述按列级加密的一个以上数据,生成一个以上解密的数据的步骤;基于所述生成的一个以上解密的数据生成索引表的步骤;及执行将所述生成的索引表按块级加密的动作的步骤。2.根据权利要求1所述的数据库安全管理方法,其特征在于,还包括:将所述按块级加密的索引表存储于所述永久存储介质的步骤。3.根据权利要求1所述的数据库安全管理方法,其特征在于,将所述生成的索引表按块级加密的动作,是在后台进程要把存储器内的块记录到所述永久存储介质时执行。4.根据权利要求1所述的数据库安全管理方法,其特征在于,还包括:接收所述一个以上数据的存储请求的步骤;判断所述一个以上数据将要存储的列是否为加密的列及所述一个以上数据将要存储的列是否为设置索引的列的步骤;及当所述一个以上数据将要存储的列为加密的列、且所述一个以上数据将要存储的列为设置索引的列时,将所述一个以上数据按列级进行加密并存储的步骤。5.根据权利要求4所述的数据库安全管理方法,其特征在于,将所述一个以上数据按列级进行加密并存储的步骤包括:将按列级进行加密的所述一个以上数据存储于所述永久存储介质的数据段的步骤。6.根据权利要求4所述的数据库安全管理方法,其特征在于,所述列级加密按列单位生成第1密钥,所述块级加密按块单位或块以上的单位生成第2密钥,且所述第1密钥及所述第2密钥具有不同的值。7.根据权利要求6所述的数据库安全管理方法,其特征在于,所述第1密钥及所述第2密钥存储于所述永久存储介质或存储器的数据字典。8.根据权利要求7所述的数据库安全管理方法,其特征在于,所述第1密钥及所述第2密钥通过主密钥进行加密并存储于所述数据字典,并且,所述主密钥存储于外部存储介质或数据库服务器。9.根据权利要求1所述的数据库安全管理方法,其特征在于,还包括:将所述按块级加密的索引表存储于所述永久存储介质的索引段的步骤。10.根据权利要求1所述的数据库安全管理方法,其特征在于,生成所述索引表的步骤包括:至少部分地基于所述一个以上解密的数据将被存储的列的尺寸属性来生成所述索引表的步骤。11.根据权利要求1所述的数据库安全管理方法,其特征在于,生成所述索引表的步骤,是基于平衡树索引技术、位图索引技术及基于函数的索引技术中的至少一个技术而执行。12.根据权利要求1所述的数据库安全管理方法,其特征在于,所述加密及解密以对所述数据库服务器的客户端透明地方式自动执行。13.根据权利要求1所述的数据库安全管理方法,其特征在于,所述按列级加密的一个以上数据,与至少部分地基于所述一个以上数据的值及所述数据的值将被存储的位置信息而生成的密码比较代码一同存储于所述永久存储介质。14.一种数据库服务器,其特征在于,该数据库服务器包括:至少一个处理器,其解密按列级加密的一个以上数据,从而生成一个以上解密的数据,且所述至少一个处理器生成基于所述一个以上解密的数据的索引表,并执行将生成的索引表按块级加密的动作;及永久存储介质,其存储包括所述按列级加密的数据的数据表及所述按块级加密的索引表。15.-种数据库安全管理方法,其特征在于,所述方法包括:响应索引查询请求,从永久存储介质读取按块级加密的索引表的步骤;解密所述按块级加密的索引表,生成解密的索引表的步骤;基于所述解密的索引表,执行索引扫描的步骤;从永久存储介质读取与所述索引扫描结果对应的按列级加密的一个以上数据的步骤;及解密所述按列级加密的一个以上数据,生成一个以上解密的数据的步骤。16.根据权利要求15所述的数据库安全管理方法,其特征在于,所述索引扫描结果包括与所述索引查询请求对应的列关键字及行识别符。17.根据权利要求15所述的数据库安全管理方法,其特征在于,还包括:基于所述一个以上解密的数据,生成与所述索引查询请求对应的索引查询结果值的步骤。18.-种数据库服务器,其特征在于,该数据库服务器包括:至少一个处理器,其响应索引查询请求,从永久存储介质读取按块级加密的索引表,且所述至少一个处理器解密所述按块级加密的索引表,生成解密的索引表,并以所述解密的索引表为基础执行索引扫描,并且从永久存储介质读取与所述索引扫描的结果对应的按列级加密的一个以上数据,并解密所述按列级加密的一个以上数据,生成一个以上解密的数据;及永久存储介质,其存储包括所述按列级加密的数据的数据表及所述按块级加密的索引表。【文档编号】G06F21/62GK106022155SQ201510387233【公开日】2016年10月12日【申请日】2015年6月30日【发明人】尹晶,尹晶一,朴相永【申请人】株式会社特迈数据
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1