一种轻量级数据库的安全保护方法及系统的制作方法

文档序号:6513639阅读:253来源:国知局
一种轻量级数据库的安全保护方法及系统的制作方法
【专利摘要】一种轻量级数据库的安全保护方法及其系统,涉及信息安全【技术领域】。方法包括:用户通过数据库访问代理访问数据库;在响应用户对数据库的操作前,数据库访问代理先通过远程证明平台验证客户端所在运行平台的安全性;③数据库为密文数据库,在响应用户操作前必须先对数据库进行解密;④在数据库解密前,数据库所在运行平台要验证自身的安全性,若安全则对数据库进行解密并实施用户操作,在操作完成后重新将数据库加密存储。系统包括远程证明子系统和数据库加密保护子系统。采用本发明后,可使数据库安全性增强,并在访问数据库前验证客户端所在运行平台和数据库所在运行平台的安全性,避免不严格的身份认证和平台可能已被攻破带来的安全隐患。
【专利说明】一种轻量级数据库的安全保护方法及系统
【技术领域】
[0001]本发明涉及数据库保护方法【技术领域】,特别是一种轻量级数据库的安全保护方 法,该方法通过可信计算技术,对数据库进行加密保护,并在确保数据库所在平台安全的前 提下才进行对数据库的解密;通过远程证明技术保护数据库不被非法用户访问,并避免合 法用户在未保证安全的客户端运行平台上访问数据库。
【背景技术】
[0002]随着数据库技术和网络技术的不断发展,基于网络和数据库的数据库应用系统得 到越来越广泛的应用。这些数据库系统担负着存储和管理信息的任务,泄漏或破坏这些信 息将会给企业和国家造成重大损失。因此,数据库系统的安全性问题越来越受到人们的重 视。
[0003]实现数据库安全保护的方法和技术多种多样,其核心都是用户标识鉴别和以用户 鉴别为基础的访问控制。在用户身份鉴别方面比较常用的方法有:用户身份的表明用输入 用户名来进行;用户身份通过回答口令进行标识;用户身份通过回答对随机数的运算结构 进行表明等。在数据库访问方式方面,比较常见的方式有:用户直接访问数据库;用户通过 数据库代理访问数据库;数据库系统与互联网隔离等。访问控制方面,主要是通过各种途径 完善用户授权机制,实现授权用户对授权对象的访问权限的分配、回收、定义和控制。对数 据库进行加密处理也是一种常用的保护方法。在一个系统中,往往是多种方法同时使用,以 使系统安全性更强。
[0004]上述保护方法都有一个共同的弱点,即它们都忽略了对运行平台的安全性约束, 既不验证客户端运行平台的安全状态,也不验证数据库所在运行平台的安全状态,因此给 系统留下了安全隐患。
[0005]可信计算是近年来出现的一种信息安全新技术,是构建计算机系统安全、网络安 全的重要手段。可信计算的总体目标是提高计算机系统的安全性,现阶段的主要目标是确 保系统数据的完整性、数据的安全存储和平台身份的可信性,并确保用户使用的设备(含软 硬件)的真实性和可预期性。可信计算平台提供了密封存储、远程证明、隔离机制、安全I/o 等保护功能,极大地增强了平台的数据保护能力,使平台内部、平台与平台之间能够建立广 泛的任。
[0006]远程证明作为可信计算的一大特色功能,旨在认证平台硬件、软件堆栈中每一层 运行的软件的运行状态,向远程依赖方证明应用程序所在的平台可信。远程证明方法有四 种基本模型:直接证明,基于TTP (可信第三方)验证的证明,基于离线TTP的证明,委托证 明。其中基于TTP验证的证明在可信平台上应用比较普遍,是可信计算平台远程证明非常 通用的模型。

【发明内容】

[0007]本发明的主要目的在于提供一种轻量级数据库的安全保护方法,它通过可信计算技术,对数据库进行加密保护,并在确保数据库所在平台安全的前提下才对数据库进行解 密和其它操作;通过远程证明技术保护数据库不被非法用户访问,并避免合法用户在未保 证安全的客户端运行平台上访问数据库;本发明同时也提供一种轻量级数据库的安全保护 系统。
[0008]本发明一种轻量级数据库的安全保护方法,该方法包括下述步骤:
第I步:在数据库系统提交用户前,将数据库加密存储于数据库运行平台,并将密钥进 行密封存储得到密钥的密封存储值,简称封存密钥;
第2步:在响应用户对数据库的操作请求前,先验证客户端所在运行平台的安全性,若 安全验证通过,则转第3步,否则给出提示信息并拒绝用户的操作请求;
第3步:在解密数据库、实施用户操作请求之前,先解封数据库的封存密钥,若解封成 功说明数据库所在运行平台安全值得信任,得到密钥后对数据库进行解密并实施用户请求 的操作,在操作完成后重新将数据库加密存储,若解封失败说明数据库所在运行平台的安 全性不值得信任,得不到解密密钥无法解密数据库,则给出提示信息并拒绝用户的操作请 求。
[0009]本发明提供一种轻量级数据库的安全保护系统,该系统基于可信计算平台,包含2 个子系统:远程证明子系统和数据库加密保护子系统。
[0010]所述远程证明子系统主要包含客户端、数据库访问代理和远程证明平台;用户使 用客户端通过数据库访问代理对数据库进行访问,数据库访问代理分别与客户端、数据库 加密保护子系统和远程证明平台连接。
[0011]所述数据库加密保护子系统就是数据库所在的运行平台,其主要功能依赖两大核 心模块:数据库操作模块和可信平台模块(TPM)。
[0012]远程证明子系统负责在接收用户操作后,验证客户端所在运行平台的安全性,并 判断是否信任客户端所在运行平台,若客户端所在运行平台值得信任,则把用户操作传递 给数据库加密保护子系统,否则给出提示信息并拒绝用户的操作请求;数据库加密保护子 系统负责在收到远程证明子系统传递来的操作请求后,解封数据库的封存密钥,若解封成 功说明数据库所在运行平台安全值得信任,则对数据库进行解密并实施用户请求的操作, 在操作完成后重新将数据库加密存储,若解封失败说明数据库所在运行平台的安全性不值 得信任,则给出提示信息并拒绝用户的操作请求。
[0013]客户端是一台计算机,需要具有能够提供远程证明所需的客户端运行平台信息的 能力。用户登录客户端后客户端搜集当前运行平台的平台信息,将平台信息与用户的操作 请求一起打包发送给数据库访问代理,等待数据库访问代理的反馈。
[0014]数据库代理是一台计算机,作用是将客户端传来的客户端运行平台信息转发给远 程证明平台,等待远程证明平台反馈来的验证结果,若验证结果表明客户端运行平台安全 可信,则将用户操作命令发送给数据库加密保护子系统,并将数据库加密保护子系统的反 馈信息传递给客户端,否则给出提示信息并拒绝用户的操作请求。
[0015]远程证明平台是一台计算机或一组服务器,其作用是根据客户端运行平台信息验 证并判断客户端运行平台的安全性是否值得信赖。远程证明平台的运行原理及方法已有成 熟的理论和多样化的原型系统,故在本发明不再对其进行约束。
[0016]数据库操作模块是软件模块,运行于操作系统上,在接到用户操作命令后调用可信平台模块提供的功能接口,对封存密钥进行解封,若解封成功,再调用可信平台模块提供 的功能接口对数据库进行解密,然后对数据库进行操作,操作完成后把操作结果反馈给数 据库访问代理并调用用可信平台模块提供的功能接口对数据库进行加密;若解封不成功, 则直接把提示信息反馈给数据库访问代理并拒绝用户的操作请求。
[0017]可信平台模块(TPM)位于计算机系统的硬件层,内嵌于主板上,通过TPM驱动与 数据库操作模块进行通信,可信平台模块完成密封存储和加密操作的具体实现。在计算机 启动信任链的建立过程中,TPM会对计算机系统的软件、固件和硬件的二进制数据块进行度 量,其度量值不断地扩展TPM内部的平台配置寄存器(PCR),故PCR值包含了对应的平台配 置信息。在密封存储和解封的过程中,TPM会按照预先的设置读取PCR值并参与运算,因此 若解封成功则表示与密封存储时相比,PCR值未发生改变,也就是对应的平台配置信息未发 生改变,即平台的安全性值得信赖。
[0018]本发明利用可信计算技术在安全存储方面的优势,增加数据库的安全强度;本发 明利用可信计算技术在确保用户使用设备的真实性和可预期性方面的优势,在对数据库进 行操作的过程中增加了对运行平台安全性的验证,避免了安全隐患,以达到数据库保护的 目的。具体而言。
[0019]本发明一种轻量级数据库的安全保护方法及系统的优点是:
(1)在对数据库进行操作的过程中增加了对客户端运行平台安全性的验证,避免了不 严格的身份认证和客户端可能已被攻破带来的安全隐患;
(2)本系统属于密文数据库,用于数据库解密的密钥仅以密封存储值的形式存在,密钥 值不会逗留内存或文件中,也不由用户手动输入,除通过可信平台模块对密封存储值解封 外,没有其它获取密钥值的途径;
(3)要对密钥的密封存储值进行解封,必须在预期安全的软硬件环境下进行,不满足预 期要求的软硬件环境会导致解封失败。
【专利附图】

【附图说明】
[0020]图1是本发明提供的数据库保护方法的较佳实例的流程图;
图2是本发明较佳实施例的数据库保护系统结构示意图;
图3是本发明较佳实施例的数据库访问步骤示意图;
图4是数据库访问代理的工作流程图;
图5是数据库加密保护子系统的工作流程图;
图6是本发明提供的数据库保护系统的结构图。
【具体实施方式】
[0021]一种利用可信平台模块共同完成数据库保护功能。可信平台模块(Trusted Platform Module)是一种植于计算机内部为计算机提供可信根的芯片。芯片的规格由可信 计算组织(Trusted Computing Group)来制定。依据TCG发布的 “TPM Main Specification Level 2 Version 1.2,Revision 116”(简称为TPM 1.2)规范描述,该芯片可以提供 本发明中需要用到的密封存储(TPM_Seal)、解封运算(TPM_Unseal)、完整性度量(TPM_ SHAlComplete)、生成密钥(TPM_GetRandom)等功能。[0022]本发明的数据库保护方法包括:(I)用户通过数据库访问代理访问数据库而非直 接对数据库进行操作;(2)在响应用户对数据库的操作请求前,数据库访问代理要先通过 远程证明平台验证客户端所在运行平台的安全性,若验证通过则将操作请求发往数据库, 若不成功则给出提示信息;(3)数据库为密文数据库,在响应用户操作前必须先对数据库 进行解密;(4)解密数据库所使用的密钥不以明文形式存在,也不通过用户手动输入,而是 以密封存储值的形式保存在数据库运行平台中,在解密数据库前,必须先通过解封得到密 钥;(5)在解封密钥的过程中,数据库所在运行平台内的可信平台模块将检验数据库所在 运行平台的安全性,若数据库所在运行平台的安全性值得信赖则解封成功得到密钥,若解 封失败则给出提示信息;(6)得到密钥后对数据库进行解密并实施用户请求的操作,在操 作完成后重新将数据库加密存储。
[0023]下面结合附图对本发明的【具体实施方式】作进一步说明。在此需要说明的是,对于 这些实施方式的说明用于帮助理解本发明,但并不构成对本发明的限定。此外,下面所描述 的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
[0024]如图1所示,本发明方法提供的较佳实例主要分三步完成:
步骤SI,将数据库加密,并对解密密钥做密封存储操作。
[0025]本步骤由数据库系统开发者在系统提交最终用户前实施,其目的是对数据库进行 加密保护,并将数据库所在运行平台处于安全可信状态下的软、硬件配置信息记录下来,作 为今后对数据库所在运行平台进行安全性检验的依据。
[0026]步骤SI的具体实施步骤为:
(1)获取一个随机数作为密钥;
具体可以通过向数据库所在运行平台的可信平台模块发送“TPM_GetRandom ”命令即可 由返回值得到密钥;
(2)从数据库所在运行平台的可信平台模块中读取当前软硬件环境的特征信息; 当前软硬件环境的特征信息预存于可信平台模块的各个Platform Configuration
Register (平台配置寄存器PCR)中,通过向可信平台模块发送“TPM_PCRRead”命令可读 取各个PCR的值,即提取了对应的软硬件环境的特征信息;
依照本发明的较佳实施例所述的数据库保护方法,其中数据库所在运行平台的当前运 行环境的特征信息可以选择下述信息中的任一项或任几项:操作系统核心文件、系统引导 文件、系统中的重要库文件、系统中的重要应用程序的摘要信息,硬盘序列号,网卡MAC地 址,及各种其它硬件、板卡的摘要信息;
(3)将当前软硬件环境的特征信息作为参数,通过可信平台模块将密钥进行密封运算, 得到密钥的密封存储值并保存于硬盘;
将PCR值和密钥值作为命令参数向可信平台模块发送“TPM_Seal”命令进行密封运算, 运算结果由命令返回值得到,就是密钥的密封存储值,简称封存密钥;
(4)用密钥对数据库进行加密;
在步骤(4)后,该密钥结束即销毁,其值不会逗留在内存或文件中,其内容信息只以被 密封存储值的形式存在硬盘中。本发明方法对加密方法并没有特殊的要求,可以采用如AES 加密算法等各种加密算法。
[0027]步骤S2,验证客户端所在运行平台的安全性,若安全则将用户的操作请求发送给数据库运行平台并转步骤S3,否则给出提示信息;
本步骤的目的是在收到客户端传来的用户操作请求后,先验证当前的客户端所在运行 平台的安全性,若安全则可将操作请求发送给数据库运行平台,否则给出提示信息;
依照本发明的较佳实施例所述的数据库保护方法,其中客户端所在运行平台安全性的 验证步骤为:
(1)客户端在收到用户的操作指令后,搜集客户端所在运行平台的平台配置信息,将平 台配置信息与用户操作指令一起打包发送给数据库访问代理;
(2)数据库访问代理将客户端所在运行平台的平台配置信息转发给远程证明平台,由 远程证明平台对客户端所在运行平台的安全性进行验证;
(3)远程证明平台将客户端所在运行平台的安全性验证结果发送给数据库访问代理。
[0028]步骤S3,将密钥的密封存储值进行解封,若解封成功则解密数据库并完成用户操 作,操作完成后将数据库加密保存,否则给出提示信息;
本步骤的目的是在数据库解密前,先验证当前数据库运行平台的安全性,若前数据库 运行平台安全可信,则数据库可被正常解密,用户操作可被执行,否则给出提示信息; 依照本发明的较佳实施例所述的数据库保护方法,其中数据库的解密步骤为:
(1)从数据库所在运行平台的可信平台模块中读取数据库所在运行平台的对应的特征 信息;
(2)将数据库所在运行平台的特征信息作为参数,通过可信平台模块对密钥的密封存 储值进行解封运算;若解封不成功,则给出提示信息,提示当前软硬件环境不满足要求;
向可信平台模块发送“TPM_Unseal”命令进行解封运算,运算结果由命令返回值得到; (3 )若解封成功,则用解封出的密钥对数据库进行解密。
[0029]依照本发明的较佳实施例所述的数据库保护方法,在密钥的密封存储过程(步骤 SI中)和密封存储值的解析(步骤S3中)过程中,都需要从可信平台模块读取当前数据库所 在运行平台软硬件环境的特征信息,若两次读取的特征信息值不一致,则会导致密封存储 值的解封运算失败。
[0030]依照本发明的较佳实施例所述的数据库保护方法,其中的步骤SI,由数据库系统 开发者在系统提交最终用户前实施,数据库提交用户后无法进行第二次处理。
[0031]依照本发明的较佳实施例所述的数据库保护方法,其中数据库的解密密钥为数据 库所在运行平台中的可信平台模块生成,步骤SI结束即销毁,其值不会逗留在内存或文件 中,其内容信息只以被密封存储值的形式存在于硬盘中。
[0032]本实施例的数据库保护系统结构参照图2,该系统的应用场景是,客户端A试图通 过数据库访问代理C访问数据库运行平台D,首先必须经过远程证明平台B的验证后,才能 访问。
[0033]客户端A是一台装有TPM芯片的计算机,可按照远程证明平台B的要求,搜集客户 端A的平台配置信息。
[0034]远程证明平台B是一套远程证明服务器,为远程证明过程的控制者和远程证明结 果的提供者。本实施例中远程证明平台B向客户端A提出的平台配置信息包括:操作系统 补丁、防病毒软件、防火墙软件的信息。
[0035]数据库访问代理C是一台计算机,其工作流程如图4所示。数据库访问代理一直等待接收客户端传来的用户操作指令和客户端所在运行平台的平台信息;一旦有操作指令和 客户端所在运行平台的平台信息传来,数据库访问代理C就先将客户端所在运行平台的平 台信息传输给远程证明模块,并等待远程证明结果,若验证结果认为客户端运行平台安全, 则将用户操作指令传输给数据库运行平台,否则给出提示信息。
[0036]数据库运行平台D为一台装有TPM芯片的计算机,其工作流程如图5所示。数据 库运行平台一直等待接收数据库访问代理传来的用户操作指令;一旦收到操作指令,数据 库运行平台就将数据库解密密钥的密封存储值发给可信平台模块进行解封,若解封成功则 用密钥将数据库解密出来并完成用户操作,操作完成后将数据库重新加密保存,若解封失 败则将反馈信息发送给数据库访问代理,由数据库访问代理将其发给客户端。
[0037]本实施例中,在该系统部署完毕投入使用前,数据库运行平台D已完成步骤SI,将 数据库加密,并对解密密钥做密封存储操作。之后系统进入正常工作状态。
[0038]本实施例中,系统进入正常工作状态后,数据库访问步骤如图3所示,当用户通过 客户端向数据库发送一个操作指令后,开始按以下步骤对数据库进行保护:
步骤S2,验证客户端所在运行平台的安全性,若安全则将用户的操作请求发送给数据 库运行平台并转步骤S3,否则给出提示信息:
步骤S201,数据库访问代理收到客户端传来的用户操作指令和客户端所在运行平台的 平台信息报文;
步骤S202,数据库访问代理将客户端所在运行平台的平台信息发送给远程证明平台; 步骤S203,数据库访问代理接收远程认证平台发来的验证结果,并根据结果进行判断, 若客户端所在运行平台不安全则转步骤S204,若客户端所在运行平台安全则转步骤S205 ; 步骤S204,给出提示信息并返回报文接收状态;
步骤S205,将用户操作指令传输给数据库运行平台。
[0039]步骤S3,将密钥的密封存储值进行解封,若解封成功则解密数据库并完成用户操 作,操作完成后将数据库加密保存,否则给出提示信息:
步骤S301,数据库操作模块收到数据库访问代理发来的用户操作指令后,将密钥的密 封存储值发送给可信平台模块进行解封;
步骤S302,数据库操作模块收到解封结果并根据结果进行判断,若解封成功则转步骤 S303,否则转 S305 ;
步骤S303,利用解封出来的密钥将数据库解密,并完成用户的操作指令;
步骤S304,将数据库重新加密保存;
步骤S305,将反馈信息发送给数据库访问代理,并由数据库访问代理转发给用户;
以上所述为本发明的较佳实施例而已,但本发明不应该局限于该实施例和附图所公开 的内容,因为我们预期未来的发展趋势,有可能密封存储的速度会有大的提升,这样的话, 直接密封存储整个数据库也未尝不可,若如此,则步骤SI改为,将数据库密封存储,密封存 储成功后删除数据库明文;步骤S3改为,将数据库的密封存储值进行解封,若解封成功则 完成用户操作,操作完成后将数据库密封存储,否则给出提示信息。其中密封存储和解封运 算的操作过程保持不变。
【权利要求】
1.一种轻量级数据库的安全保护方法,其特征在于:其步骤如下:第I步:在数据库系统提交用户前,将数据库加密存储于数据库运行平台,将密钥进行密封存储得到密钥的密封存储值,并将数据库所在运行平台处于安全可信状态下的软、硬件配置信息记录下来,作为今后对数据库所在运行平台进行安全性检验的依据;第2步:在响应用户对数据库的操作请求前,先验证客户端所在运行平台的安全性,若安全验证通过则转第3步,否则给出提示信息并拒绝用户的操作请求;第3步:在解密数据库、实施用户操作请求之前,先解封数据库的封存密钥,若解封成功说明数据库所在运行平台安全值得信任,得到密钥后对数据库进行解密并实施用户请求的操作,在操作完成后重新将数据库加密存储,若解封失败说明数据库所在运行平台的安全性不值得信任,得不到解密密钥无法解密数据库,则给出提示信息并拒绝用户的操作请求。
2.根据权利要求1所述的一种轻量级数据库的安全保护方法,其特征在于:第I步具体包括下述过程:(1.1)获取一个随机数作为密钥;(1.2)从数据库运行平台的可信平台模块中读取当前数据库运行平台软硬件环境的特征信息;(1.3)将当前数据库运行平台软硬件环境的特征信息作为参数,通过可信平台模块将数据库解密密钥进行密封运算,得到密钥的密封存储值;(1.4)对数据库进行加密,并将数据库明文删除。
3.根据权利要求1所述的一种轻量级数据库的安全保护方法,其特征在于:第2步中, 验证客户端所在运行平台安全性的具体步骤为:(2.1)客户端将客户端所在运行平台的平台信息传给数据库访问代理; (2.2)数据库访问代理将客户端所在运行平台的平台信息传给远程证明平台;(2.3)远程证明平台依据客户端所在运行平台的平台信息对客户端进行安全性验证, 并将验证结果传给数据库访问代理。
4.根据权利要求1所述的一种轻量级数据库的安全保护方法,其特征在于,第3步中, 数据库的解密步骤为:(3.1)从数据库所在运行平台的可信平台模块中读取数据库所在运行平台的对应的特征信息;(3.2)将数据库所在运行平台的特征信息作为参数,通过可信平台模块对密钥的密封存储值进行解封运算;若解封不成功,则给出提示信息,提示当前软硬件环境不满足要求;(3.3)若解封成功,则用解封出的密钥对数据库进行解密。
5.根据权利要求1所述的一种轻量级数据库的安全保护方法,其特征在于:第I步中, 可不采用加密数据库并对加密密钥做密封存储的方法,而是直接密封存储整个数据库;若如此,则第3步中,直接对数据库的密封存储值进行解封操作,若解封成功说明数据库所在运行平台安全值得信任,则实施用户请求的操作,在操作完成后重新将数据库密封存储,若解封失败说明数据库所在运行平台的安全性不值得信任,则给出提示信息并拒绝用户的操作请求。
6.根据权利要求2所述的一种轻量级数据库的安全保护方法,其特征在于:第(1.2)步中,当前运行环境的特征信息为下述信息中的任一项或任几项:操作系统核心文件、系统引导文件、系统中的重要库文件、系统中的重要应用程序的摘要信息,硬盘序列号,网卡MAC 地址,及各种其他硬件、板卡的摘要信息。
7.根据权利要求2所述的一种轻量级数据库的安全保护方法,其特征在于:在步骤 (1.4)结束后,所述密钥即销毁,其值不会逗留在内存或文件中,其内容信息只以被密封存储值的形式存在于硬盘中。
8.一种轻量级数据库的安全保护系统,其特征在于:该系统基于可信计算平台,包含2 个子系统:远程证明子系统和数据库加密保护子系统;所述远程证明子系统包含客户端、数据库访问代理和远程证明平台;用户使用客户端通过数据库访问代理对数据库进行访问,数据库访问代理分别与客户端、数据库加密保护子系统和远程证明平台连接;所述数据库加密保护子系统就是数据库所在的运行平台,其主要功能依赖两大核心模块:数据库操作模块和可信平台模块(TPM)。
【文档编号】G06F17/30GK103500202SQ201310450758
【公开日】2014年1月8日 申请日期:2013年9月29日 优先权日:2013年9月29日
【发明者】沈楚楚, 徐明迪, 刘毅 申请人:中国船舶重工集团公司第七0九研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1