CN115913621A - 适合云环境的数据库加密方法、终端及系统 - Google Patents
适合云环境的数据库加密方法、终端及系统 Download PDFInfo
- Publication number
- CN115913621A CN115913621A CN202211182127.0A CN202211182127A CN115913621A CN 115913621 A CN115913621 A CN 115913621A CN 202211182127 A CN202211182127 A CN 202211182127A CN 115913621 A CN115913621 A CN 115913621A
- Authority
- CN
- China
- Prior art keywords
- key
- management
- charging
- cloud database
- cloud
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开一种适合云环境的数据库加密方法、终端及系统,属于云数据库技术领域,所述方法包括:基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证;基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成工作密钥密文;接收所述服务节点及客户端发送的工作密钥申请,并下发相应工作密钥至服务节点及客户端,以供客户端和服务节点对工作密钥密文进行解析,获取工作密钥并存储;服务节点接收客户端发送的加密数据并存储。本发明提出的云数据库客户端和服务端之间数据加密机制是基于对称密码体系,实现了云数据库客户端和云服务端实时工作密钥分发,相比传统的公私钥方式,提升了安全性。
Description
技术领域
本发明涉及云数据库技术领域,具体涉及一种适合云环境的数据库加密方法、终端及系统。
背景技术
数据库系统是企业信息系统的核心之一,随着云计算技术的发展,传统上部署在本地网络环境中的单机数据库和分布式数据库正逐渐向部署在数据中心的云数据库迁移。相对于传统的数据库系统,云环境具有高可扩展性和高可用性的特点,能够满足电信、金融等需要大规模存储和大规模数据处理的领域的应用,并降低客户的成本。
随着数据上云等场景越来越多,对云上数据的保护越来越重要,当前对云上数据环境安全威胁主要为客户端数据传输过程中的保密性、完整性威胁以及数据在云上环境存储的威胁。
相关技术中,针对云端数据上传过程的安全威胁,公布号为CN104426973A的中国发明专利文献记载了一种云数据库加密方法、系统及装置,其中方法包括:数据上传客户端接收来自数据申请客户端的一个以上密钥对中的公钥,所述密钥对由数据申请客户端生成,且对应不同的计算种类;数据上传客户端对数据明文进行预处理,并根据可能进行的计算种类,采用对应的密钥对中的公钥对预处理后的数据明文进行加密,得到数据密文,将所述数据密文及其对应的数据明文的预处理方式发送至云数据库。
该方案使用公钥方式完成对数据上云环境的保护,但是从该方法的详细描述中发现该方案存在数据客户端反复使用同一个公钥进行加密的情况,会存在随着客户端使用频次增加安全性逐步降低的问题。
另外,针对云上环境快速弹性拓展的特点,要求加密模块需要具备快速拓展能力,不依赖传统的硬件安全介质,能够实现随云环境快速部署以及保障快速部署环境在身份认证、密钥下发、数据上传的安全。
相关技术中,公布号为CN113987563A的中国发明专利文献记载了一种数据处理方法、系统、产品、设备及存储介质。其中方法包括:接收客户端发送来的密钥创建请求;根据密钥创建请求,生成第一密钥信息;将第一密钥信息发送至区域管理节点,以由区域管理节点通过应用编程接口将第一密钥信息存储至第一存储系统中;区域管理节点接收到分区服务节点发送的密钥获取请求后,通过应用编程接口从第一存储系统中获取第一密钥信息,并将第一密钥信息发送给分区服务节点,以由分区服务节点加载并根据加载后的第一密钥信息对有关Hbase表中分配给分区服务器的分区的数据进行处理。
该方案描述了密钥申请过程,但是并提及如何保护密钥申请过程,其采用预制密钥方式保护密钥生成过程,密钥传递过程的保护密钥安全性比较低。
发明内容
本发明所要解决的技术问题在于如何提高数据上云的安全性。
本发明通过以下技术手段实现解决上述技术问题的:
第一方面,本发明提出了一种适合云环境的数据库加密方法,应用于云数据库服务端,所述云数据库服务端包括服务节点和管理节点,所述方法包括:
所述管理节点基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证;
所述管理节点基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成工作密钥密文;
所述管理节点接收所述服务节点及云数据库客户端发送的工作密钥申请,并下发相应的所述工作密钥至所述服务节点及云数据库客户端,以供所述云数据库客户端和所述服务节点对所述工作密钥密文进行解析,获取工作密钥并存储;
所述服务节点接收所述云数据库客户端发送的加密数据并存储,所述加密数据为所述云数据库客户端基于所述工作密钥对待上报数据库进行加密得到。
本发明提出的云数据库客户端和服务端之间数据加密机制是基于对称密码体系,实现了云数据库客户端和云服务端实时工作密钥分发,相比传统的公私钥方式,提升了安全性;能够满足云数据库透明加密的需求,相比传统加密方案,具备性能损失小、安全性高(独立于数据库的安全体系)、上层应用对加密无感知的优势,提升数据在云上环境存储的安全性。
进一步地,在所述管理节点基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证之前,所述方法还包括:
所述云数据库服务端向密码配置管理工具提交业务信息,以使所述密码配置管理工具根据所述业务信息,生成软证书,并使用所述软证书的私钥做签名,发送至所述密钥管理平台以使其根据所述软证书的公钥进行签名验证,生成充注密钥并打包为数字信封;
所述云数据库服务端接收所述密码配置管理工具发送的充注文件及配置文件,其中,所述密码配置管理工具接收所述密钥管理平台发送的所述数字信封,并使用所述软证书的私钥解密所述数字信封,并将解密得到的充注密钥写入数据文件,生成所述充注文件及配置文件。
进一步地,所述管理节点基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证,包括:
所述管理节点向所述密钥管理平台发送自身标识S,以使所述密钥管理平台根据所述标识S查找对应充注密钥的历史记录,指定充注密钥Z及其充注密钥序列号C,并随机生成挑战码RB;
所述管理节点获取所述充注密钥Z,并基于自身随机生成一个随机数RA,计算本次地址认证MAC,并将认证MAC和RA并发送至所述密钥管理平台以使所述密钥管理平台基于所述充注密钥Z及所述随机数RA对所述认证MAC进行验证;
所述管理节点接收所述密钥管理平台发送的本次登录令牌,所述登录令牌为验证通过时下发。
进一步地,所述管理节点基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证,包括:
所述管理节点接收所述服务节点或所述云数据库客户端发送的自身标识S’;
所述管理节点将所述标识S’发送至所述密钥管理平台,以使所述密钥管理平台根据所述标识S’查找对应充注密钥的历史记录,指定充注密钥Z’及其充注密钥序列号C’,并随机生成挑战码RB’;
所述管理节点获取所述充注密钥Z’及其充注密钥序列号C’及挑战码RB’,并发送至所述服务节点或所述云数据库客户端,以使所述服务节点或所述云数据库客户端基于所述充注密钥Z’和随机生成的随机数RA’,计算本次认证的MAC;
所述管理节点获取本次认证的MAC和RA’,并发送至所述密钥管理平台,以使所述密钥管理平台基于所述充注密钥Z’及所述随机数RA’对所述认证MAC进行验证;
所述管理节点接收所述密钥管理平台发送的本次登录令牌,所述登录令牌为验证通过时下发。
进一步地,所述管理节点基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成工作密钥密文,包括:
所述管理节点向所述密钥管理平台发送第一密钥申请信息,以获取一支量子密钥,并结合密钥派生算法,生成保护密钥,所述第一密钥申请信息携带有管理员创建信息;
所述管理节点向所述密钥管理平台发送第二密钥申请信息,以获取一支量子密钥,并结合密钥派生算法,生成用户主密钥,该密钥主要用于用户登录验证以及作为工作密钥派生的种子密钥参与派生过程,所述第二密钥申请信息携带有数据库用户信息;
所述管理节点向所述密钥管理平台发送第三密钥申请信息,以获取一支量子密钥,并结合所述生成的用户主密钥,密钥派生算法,生成所述工作密钥,所述第三密钥申请信息携带有所述数据库用户的感兴趣数据;
所述管理节点分别利用所述保护密钥对所述用户主密钥和所述工作密钥进行加密,得到对应的用户主密钥密文和工作密钥密文。
进一步地,所述管理节点接收所述服务节点及云数据库客户端发送的工作密钥申请,并下发相应的所述工作密钥至所述服务节点及云数据库客户端,包括:
所述管理节点接收所述服务节点及所述云数据库客户端发送的工作密钥申请;
所述管理节点向所述密钥管理平台发送所述工作密钥申请,以使所述密钥管理平台查找对应与所述服务节点、所述云数据库客户端及所述管理节点充注密钥的历史记录,获得分别对应于所述服务节点及所述云数据库客户端的充注密钥信息,并采用对应于所述管理节点的充注密钥对所述充注密钥信息进行加密,得到充注密钥密文,所述充注密钥信息包括充注密钥序列号、密钥密文及密钥验证MAC;
所述管理节点获取所述充注密钥密文,对所述充注密钥解密获得对应的充注密钥,基并利用对应的所述充注密钥对所述工作密钥密文进行保护下发至所述服务节点及所述云数据库客户端。
进一步地,所述方法还包括:
所述服务节点接收所述云数据库客户端发送的查询请求,并对所述查询请求进行分类;
若所述查询请求涉及二次计算,则基于所述查询请求获取初始结果集,使用所述工作密钥对所述初始结果集进行解密,基于所述查询请求对解密后的结果集进行结算,对结算后的结果集加密后发送至所述云数据库客户端;
若所述查询请求未涉及二次计算,则从存储的加密数据中返回对应于所述查询请求的数据库密文至所述云数据库客户端。
第二方面,本发明还提出了一种适合云环境的数据库加密方法,应用于云数据库客户端,所述云服务端设置有充注文件,所述充注文件中存储有密钥管理平台预制的充注密钥,所述方法包括:
所述云数据库客户端初始化完成后,向云服务端中的管理节点发送工作密钥申请,所述工作密钥申请携带有所述充注密钥信息;
所述云数据库客户端接收所述管理节点下发的对应的工作密钥密文,其中所述管理节点基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成所述工作密钥密文;
所述云数据库客户端对所述工作密钥密文进行解密,获得工作密钥;
所述云数据库客户端利用所述工作密钥对待上报数据库进行加密,得到加密数据,并将所述加密数据发送至所述云服务端中的服务节点进行存储。
进一步地,所述方法还包括:
所述云数据库客户端向密码配置管理工具提交业务信息,以使所述密码配置管理工具根据所述业务信息,生成软证书,并使用所述软证书的私钥做签名,发送至所述密钥管理平台以使其根据所述软证书的公钥进行签名验证,生成充注密钥并打包为数字信封;
所述云数据库客户端接收所述密码配置管理工具发送的充注文件及配置文件,其中,所述密码配置管理工具接收所述密钥管理平台发送的所述数字信封,并使用所述软证书的私钥解密所述数字信封,并将解密得到的充注密钥写入数据文件,生成所述充注文件及配置文件。
进一步地,所述方法还包括:
所述云数据库客户端发送自身标识S’至所述管理节点,以使所述管理节点将所述标识S’发送至所述密钥管理平台;
所述云数据库客户端接收所述管理节点发送的充注密钥Z’及其充注密钥序列号C’以及挑战码RB’,所述挑战码RB’、所述充注密钥Z’及其充注密钥序列号C’由所述密钥管理平台生成;
所述云数据库客户端基于所述充注密钥Z’和自身随机生成的随机数RA’,计算本次认证的MAC,并发送至所述管理节点。
进一步地,所述方法还包括:
所述云数据库客户端向所述服务节点发送查询请求,以使所述服务节点查找与所述查询请求对应的数据库密文;
所述云数据库客户端接收所述服务节点返回的所述数据库密文,并进行解密得到明文。
第三方面,本发明还提出了一种适合云环境的数据库加密终端,所述加密终端为云数据库服务端,所述云数据库服务端包括管理节点和服务节点,所述管理节点包括:
第一密码软模块,用于基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证;
第一密钥管理模块,用于基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成工作密钥密文;以及接收所述服务节点及云数据库客户端发送的工作密钥申请,并下发相应的所述工作密钥至所述服务节点及云数据库客户端,以供所述云数据库客户端和所述服务节点对所述工作密钥密文进行解析,获取工作密钥并存储;
所述服务节点,用于接收所述云数据库客户端发送的加密数据并存储,所述加密数据为所述云数据库客户端基于所述工作密钥对待上报数据库进行加密得到。
第四方面,本发明还提出了一种适合云环境的数据库加密终端,所述加密终端为云数据库客户端,包括:
第二密码软模块,用于在所述云数据库客户端初始化完成后,向云服务端中的管理节点发送工作密钥申请,所述工作密钥申请携带有所述充注密钥信息;
数据处理模块,用于接收所述管理节点下发的对应的工作密钥密文,其中所述管理节点基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成所述工作密钥密文;
第一密码运算模块,用于对所述工作密钥密文进行解密,获得工作密钥;
所述云数据库客户端利用所述工作密钥对待上报数据库进行加密,得到加密数据,并将所述加密数据发送至所述云服务端中的服务节点进行存储。
第五方面,本发明还提出了一种适合云环境的数据库加密系统,所述系统包括云数据库、密码配置管理工具以及密钥管理平台,其中,所述云数据库包括云数据库服务端和云数据库客户端,所述云服务端包括管理节点和服务节点,所述管理节点、所述服务节点以及所述云数据库客户端均与所述密码配置管理工具连接,所述密码配置管理工具与所述密钥管理平台连接,所述管理节点与所述密钥管理平台连接;
所述密码配置管理工具,用于根据所述管理节点、所述服务节点及所述云数据库客户端的信息,生成配置文件及对应公私钥对信息,并以所述公私钥对信息实现到所述密钥管理平台的充注密钥申请;
所述密钥管理平台,用于接收所述密码配置管理工具请求完成充注密钥的下发,以及接收所述管理节点发送的密钥请求并按照密钥请求返回对应的会话密钥;
所述管理节点,用于基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成工作密钥密文并下发相应的所述工作密钥至所述服务节点及所述云数据库客户端;
所述云数据库客户端,用于对所述工作密钥密文进行解析,获取工作密钥并使用所述工作密钥对待上报数据库进行加密后发送至所述服务节点;
所述服务节点用于对所述工作密钥密文进行解析,获取工作密钥并存储,以及接收所述云数据库客户端发送的加密数据并存储
本发明的优点在于:
(1)本发明提出的云数据库客户端和服务端之间数据加密机制是基于对称密码体系,实现了云数据库客户端和云服务端实时工作密钥分发,相比传统的公私钥方式,提升了安全性;能够满足云数据库透明加密的需求,相比传统加密方案,具备性能损失小、安全性高(独立于数据库的安全体系)、上层应用对加密无感知的优势,提升数据在云上环境存储的安全性。
(2)本发明通过利用密码配置管理工具根据云服务端和云数据库客户端的信息生成配置文件和充注文件,并集成于云服务端和客户端,能够满足云数据库快速部署、弹性拓展的需求;且本发明是基于对称密钥体系的预制密钥,并且定义了专用的密码配置管理工具以及相关流程保护预制密钥,通过生成软证书以及数字信封方式实现对充注密钥保护,能够实现在云环境下密钥传输的“一次一密”。
(3)本发明提出一个和数据库日常使用相匹配的三级密钥体系,该密钥体系主要采用以管理员信息结合量子密钥派生一支最高的全局保护密钥、以用户信息为主结合量子密钥派生一支密钥为用户主密钥、以感兴趣数据为主结合用户主密钥以及一支量子密钥派生出工作密钥,能够有效适配云数据库加密场景。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1是本发明第一实施例提出的一种适合云环境的数据库加密方法的流程示意图;
图2是本发明第二实施例提出的一种适合云环境的数据库加密方法的流程示意图;
图3是本发明第三实施例提出的一种适合云环境的数据库加密终端的结构示意图;
图4是本发明第四实施例提出的一种适合云环境的数据库加密终端的结构示意图;
图5是本发明第五实施例提出的一种适合云环境的数据库加密系统的结构示意图;
图6是本发明第五实施例提出的一种适合云环境的数据库加密系统的工作流程示意图;
图7是本发明第五实施例中密码软模块的申请流程示意图;
图8是本发明第五实施例中密码软模块的认证流程示意图;
图9是本发明第五实施例中密码软模块的代理鉴权流程示意图;
图10是本发明第五实施例中工作密钥生成流程示意图;
图11是本发明第五实施例中工作密钥分发流程示意图;
图12是本发明第五实施例中数据上传、查询处理流程示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明第一实施例提出了一种适合云环境的数据库加密方法,应用于云数据库服务端,所述云数据库服务端包括服务节点和管理节点,所述方法包括以下步骤:
S101、所述管理节点基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证;
S102、所述管理节点基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成工作密钥密文;
S103、所述管理节点接收所述服务节点及云数据库客户端发送的工作密钥申请,并下发相应的所述工作密钥至所述服务节点及云数据库客户端,以供所述云数据库客户端和所述服务节点对所述工作密钥密文进行解析,获取工作密钥并存储;
S104、所述服务节点接收所述云数据库客户端发送的加密数据并存储,所述加密数据为所述云数据库客户端基于所述工作密钥对待上报数据库进行加密得到。
其中,所述密钥管理平台提供充注密钥获取、实时会话密钥分发功能,支持以对称密钥体系实现15843.2规范中实体认证方式实现对所述密码软模块的身份鉴别功能。
本实施例提出的云数据库客户端和服务端之间数据加密机制是基于对称密码体系,管理节点可以从密钥管理平台申请的一支密钥,并且能够实现和感兴趣数据结合生成工作密钥,管理节点可以将所述的工作密钥分发到云数据客户端和云数据服务端,实现工作密钥的分发,相比传统的公私钥方式,提升了安全性;能够满足云数据库透明加密的需求,相比传统加密方案,具备性能损失小、安全性高(独立于数据库的安全体系)、上层应用对加密无感知的优势,提升数据在云上环境存储的安全性。
在一实施例中,在所述步骤S101之前,所述方法还包括以下步骤:
所述云数据库服务端向密码配置管理工具提交业务信息,以使所述密码配置管理工具根据所述业务信息,生成软证书,并使用所述软证书的私钥做签名,发送至所述密钥管理平台以使其根据所述软证书的公钥进行签名验证,生成充注密钥并打包为数字信封;
所述云数据库服务端接收所述密码配置管理工具发送的充注文件及配置文件,其中,所述密码配置管理工具接收所述密钥管理平台发送的所述数字信封,并使用所述软证书的私钥解密所述数字信封,并将解密得到的充注密钥写入数据文件,生成所述充注文件及配置文件。
需要说明的是,本实施例通过利用密码配置管理工具根据云服务端和云数据库客户端的信息生成配置文件和充注文件,充注文件中包含有密钥管理平台生成的密钥,并集成于云服务端和客户端,能够满足云数据库快速部署、弹性拓展的需求;且基于对称密钥体系的预制密钥,并且定义了专用的密码配置管理工具以及相关流程保护预制密钥,通过生成软证书以及数字信封方式实现对充注密钥保护,能够实现在云环境下密钥传输的“一次一密”。
在一实施例中,所述步骤S101,包括以下步骤:
所述管理节点向所述密钥管理平台发送自身标识S,以使所述密钥管理平台根据所述标识S查找对应充注密钥的历史记录,指定充注密钥Z及其充注密钥序列号C,并随机生成挑战码RB;
所述管理节点获取所述充注密钥Z,并基于自身随机生成一个随机数RA,计算本次地址认证MAC,并将认证MAC和RA并发送至所述密钥管理平台以使所述密钥管理平台基于所述充注密钥Z及所述随机数RA对所述认证MAC进行验证;
所述管理节点接收所述密钥管理平台发送的本次登录令牌,所述登录令牌为验证通过时下发。通过该身份认证流程实现基于预充注密钥的挑战应答机制,相比现有以证书为体系身份认证流程,具备认证速度快,安全性不随时间降低的优势。
进一步地,在部分场景下,因为网络限制,则使用代理鉴权模式实现对密钥管理平台的认证鉴权,则所述步骤S101,包括以下步骤:
所述管理节点接收所述服务节点或所述云数据库客户端发送的自身标识S’;
所述管理节点将所述标识S’发送至所述密钥管理平台,以使所述密钥管理平台根据所述标识S’查找对应充注密钥的历史记录,指定充注密钥Z’及其充注密钥序列号C’,并随机生成挑战码RB’;
所述管理节点获取所述充注密钥Z’及其充注密钥序列号C’及挑战码RB’,并发送至所述服务节点或所述云数据库客户端,以使所述服务节点或所述云数据库客户端基于所述充注密钥Z’和随机生成的随机数RA’,计算本次认证的MAC;
所述管理节点获取本次认证的MAC和RA’,并发送至所述密钥管理平台,以使所述密钥管理平台基于所述充注密钥Z’及所述随机数RA’对所述认证MAC进行验证;
所述管理节点接收所述密钥管理平台发送的本次登录令牌,所述登录令牌为验证通过时下发。
在一实施例中,所述步骤S102,包括以下步骤:
所述管理节点向所述密钥管理平台发送第一密钥申请信息,以获取一支量子密钥,并结合密钥派生算法,生成保护密钥,所述第一密钥申请信息携带有管理员创建信息;
所述管理节点向所述密钥管理平台发送第二密钥申请信息,以获取一支量子密钥,并结合密钥派生算法,生成用户主密钥,该密钥主要用于用户登录验证以及作为工作密钥派生的种子密钥参与派生过程,所述第二密钥申请信息携带有数据库用户信息;
所述管理节点向所述密钥管理平台发送第三密钥申请信息,以获取一支量子密钥,并结合所述用户主密钥,采用密钥派生算法,生成所述工作密钥,所述第三密钥申请信息携带有所述数据库用户的感兴趣数据;
所述管理节点分别利用所述保护密钥对所述用户主密钥和所述工作密钥进行加密,得到对应的用户主密钥密文和工作密钥密文。
本实施例提出一个和数据库日常使用相匹配的三级密钥体系,该密钥体系主要采用以管理员信息结合量子密钥派生一支最高的全局保护密钥、以用户信息为主结合量子密钥派生一支密钥为用户主密钥、以感兴趣数据为主结合用户主密钥以及一支量子密钥派生出工作密钥,能够有效适配云数据库加密场景。
需要说明的是,本实施例所采用的密钥派生算法包括但不限于HKDF算法等。
在一实施例中,所述步骤S103,包括以下步骤:
所述管理节点接收所述服务节点及所述云数据库客户端发送的工作密钥申请;
所述管理节点向所述密钥管理平台发送所述工作密钥申请,以使所述密钥管理平台查找对应与所述服务节点、所述云数据库客户端及所述管理节点充注密钥的历史记录,获得分别对应于所述服务节点及所述云数据库客户端的充注密钥信息,并采用对应于所述管理节点的充注密钥对所述充注密钥信息进行加密,得到充注密钥密文,所述充注密钥信息包括充注密钥序列号、密钥密文及密钥验证MAC;
所述管理节点获取所述充注密钥密文,对所述充注密钥解密获得对应的充注密钥,基并利用对应的所述充注密钥对所述工作密钥密文进行保护下发至所述服务节点及所述云数据库客户端。
在一实施例中,所述方法还包括以下步骤:
所述服务节点接收所述云数据库客户端发送的查询请求,并对所述查询请求进行分类;
若所述查询请求涉及二次计算,则基于所述查询请求获取初始结果集,使用所述工作密钥对所述初始结果集进行解密,基于所述查询请求对解密后的结果集进行结算,对结算后的结果集加密后发送至所述云数据库客户端;
若所述查询请求未涉及二次计算,则从存储的加密数据中返回对应于所述查询请求的数据库密文至所述云数据库客户端。
需要说明的是,本实施例中若查询请求仅涉及简单的单次、多个结果查询,不涉及到加、减、乘、除,则认为该查询请求未涉及二次计算,否则认为其涉及二次计算,则需要识别出需要获取初始结果集,再调用与所述结果集匹配的工作密钥,并使用所述工作密钥完成对结果集的解密工作,再根据请求内容对结果集进行处理、计算得到结算后的结果,在调用密码运算模块对结果集进行加密后返回到云数据库客户端。
此外,如图2所示,本发明第二实施例提出了一种适合云环境的数据库加密方法,应用于云数据库客户端,所述云服务端设置有充注文件,所述充注文件中存储有密钥管理平台预制的充注密钥,所述方法包括以下步骤:
S201、所述云数据库客户端初始化完成后,向云服务端中的管理节点发送工作密钥申请,所述工作密钥申请携带有所述充注密钥信息;
S202、所述云数据库客户端接收所述管理节点下发的对应的工作密钥密文,其中所述管理节点基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成所述工作密钥密文;
S203、所述云数据库客户端对所述工作密钥密文进行解密,获得工作密钥;
S204、所述云数据库客户端利用所述工作密钥对待上报数据库进行加密,得到加密数据,并将所述加密数据发送至所述云服务端中的服务节点进行存储。
本实施例提出的云数据库客户端和服务端之间数据加密机制是基于对称密码体系,管理节点可以从密钥管理平台申请的一支密钥,并且能够实现和感兴趣数据结合生成工作密钥,管理节点可以将所述的工作密钥分发到云数据客户端和云数据服务端,实现工作密钥的分发,相比传统的公私钥方式,提升了安全性;能够满足云数据库透明加密的需求,相比传统加密方案,具备性能损失小、安全性高(独立于数据库的安全体系)、上层应用对加密无感知的优势,提升数据在云上环境存储的安全性。
在一实施例中,所述方法还包括以下步骤:
所述云数据库客户端向密码配置管理工具提交业务信息,以使所述密码配置管理工具根据所述业务信息,生成软证书,并使用所述软证书的私钥做签名,发送至所述密钥管理平台以使其根据所述软证书的公钥进行签名验证,生成充注密钥并打包为数字信封;
所述云数据库客户端接收所述密码配置管理工具发送的充注文件及配置文件,其中,所述密码配置管理工具接收所述密钥管理平台发送的所述数字信封,并使用所述软证书的私钥解密所述数字信封,并将解密得到的充注密钥写入数据文件,生成所述充注文件及配置文件。
需要说明的是,本实施例通过利用密码配置管理工具根据云服务端和云数据库客户端的信息生成配置文件和充注文件,充注文件中包含有密钥管理平台生成的密钥,并集成于云服务端和客户端,能够满足云数据库快速部署、弹性拓展的需求。
在一实施例中,所述方法还包括以下步骤:
所述云数据库客户端发送自身标识S’至所述管理节点,以使所述管理节点将所述标识S’发送至所述密钥管理平台;
所述云数据库客户端接收所述管理节点发送的充注密钥Z’及其充注密钥序列号C’以及挑战码RB’,所述挑战码RB’、所述充注密钥Z’及其充注密钥序列号C’由所述密钥管理平台生成;
所述云数据库客户端基于所述充注密钥Z’和自身随机生成的随机数RA’,计算本次认证的MAC,并发送至所述管理节点。
在一实施例中,所述方法还包括以下步骤:
所述云数据库客户端向所述服务节点发送查询请求,以使所述服务节点查找与所述查询请求对应的数据库密文;
所述云数据库客户端接收所述服务节点返回的所述数据库密文,并进行解密得到明文。
此外,如图3所示,本发明第三实施例还提出了一种适合云环境的数据库加密终端,所述加密终端为云数据库服务端10,所述云数据库服务端10包括管理节点11和服务节点12,所述管理节点11包括:
第一密码软模块111,用于基于预先从密钥管理平台40获取的充注密钥,完成到其所属密钥管理平台40的身份认证;
第一密钥管理模块112,用于基于密钥申请信息及从所述密钥管理平台40申请得到的密钥,生成工作密钥密文;以及接收所述服务节点12及云数据库客户端20发送的工作密钥申请,并下发相应的所述工作密钥至所述服务节点12及云数据库客户端20,以供所述云数据库客户端20和所述服务节点12对所述工作密钥密文进行解析,获取工作密钥并存储;
所述服务节点12,用于接收所述云数据库客户端20发送的加密数据并存储,所述加密数据为所述云数据库客户端20基于所述工作密钥对待上报数据库进行加密得到。
本实施例提出的云数据库客户端20和服务端之间数据加密机制是基于对称密码体系,管理节点11可以从密钥管理平台40申请的一支密钥,并且能够实现和感兴趣数据结合生成工作密钥,管理节点11可以将所述的工作密钥分发到云数据客户端和云数据服务端,实现工作密钥的分发,相比传统的公私钥方式,提升了安全性;能够满足云数据库透明加密的需求,相比传统加密方案,具备性能损失小、安全性高(独立于数据库的安全体系)、上层应用对加密无感知的优势,提升数据在云上环境存储的安全性。
在一实施例中,所述第一密码软模块111,主要由算法模块、充注文件、软证书文件、配置文件组成,其中充注文件来源于所述密码配置管理工具30从所述密钥管理平台40获得的充注密钥,主要通过所述充注密钥实现到密钥管理平台40的身份鉴别、实时会话密钥获取功能。
所述第一密码软模块111用于向密钥管理平台40申请充注密钥,具体包括:
第一业务信息提交模块,用于向密码配置管理工具30提交业务信息,以使所述密码配置管理工具30根据所述业务信息,生成软证书,并使用所述软证书的私钥做签名,发送至所述密钥管理平台40以使其根据所述软证书的公钥进行签名验证,生成充注密钥并打包为数字信封;
第一文件接收模块,用于接收所述密码配置管理工具30发送的充注文件及配置文件,其中,所述密码配置管理工具30接收所述密钥管理平台40发送的所述数字信封,并使用所述软证书的私钥解密所述数字信封,并将解密得到的充注密钥写入数据文件,生成所述充注文件及配置文件。
在一实施例中,所述第一密码软模块111,还用于:
向所述密钥管理平台40发送自身标识S,以使所述密钥管理平台40根据所述标识S查找对应充注密钥的历史记录,指定充注密钥Z及其充注密钥序列号C,并随机生成挑战码RB;
所述管理节点11获取所述充注密钥Z,并基于自身随机生成一个随机数RA,计算本次地址认证MAC,并将认证MAC/RA并发送至所述密钥管理平台40以使所述密钥管理平台40基于所述充注密钥Z及所述随机数RA对所述认证MAC进行验证;
所述管理节点11接收所述密钥管理平台40发送的本次登录令牌,所述登录令牌为验证通过时下发。
进一步地,在部分场景下,因为网络限制,则使用代理鉴权模式实现对密钥管理平台40的认证鉴权,所述第一密码软模块111,还用于:
接收所述服务节点12或所述云数据库客户端20发送的自身标识S’;
将所述标识S’发送至所述密钥管理平台40,以使所述密钥管理平台40根据所述标识S’查找对应充注密钥的历史记录,指定充注密钥Z’及其充注密钥序列号C’,并随机生成挑战码RB’;
获取所述充注密钥Z’及其充注密钥序列号C’及挑战码RB’,并发送至所述服务节点12或所述云数据库客户端20,以使所述服务节点12或所述云数据库客户端20基于所述充注密钥Z’和随机生成的随机数RA’,计算本次认证的MAC;
获取本次认证的MAC/RA’,并发送至所述密钥管理平台40,以使所述密钥管理平台40基于所述充注密钥Z’及所述随机数RA’对所述认证MAC进行验证;
接收所述密钥管理平台40发送的本次登录令牌,所述登录令牌为验证通过时下发。
在一实施例中,所述第一密钥管理模块112,包括:
密钥申请单元,用于向所述密钥管理平台40发送第一密钥申请信息,以获取一支量子密钥,并调用密钥派生模块113中的密钥派生算法,生成保护密钥,所述第一密钥申请信息携带有管理员创建信息;
以及向所述密钥管理平台40发送第二密钥申请信息,以获取一支量子密钥,并调用密钥派生模块113中的密钥派生算法,生成用户主密钥,所述第二密钥申请信息携带有数据库用户信息;
以及所述密钥管理平台40发送第三密钥申请信息,以获取一支量子密钥,结合所述用户主密钥,调用密钥派生模块113中的密钥派生算法,生成所述工作密钥,所述第三密钥申请信息携带有所述数据库用户的感兴趣数据;
加密单元,用于分别利用所述保护密钥对所述用户主密钥和所述工作密钥进行加密,得到对应的用户主密钥密文和工作密钥密文。
进一步地,所述管理节点11还包括:
用户管理模块114,用于提供管理节点11用户创建以及加密功能启用等配置功能,调用密码软模块提供的密钥派生接口,实现管理员密钥、用户主密钥的生成。
加密配置模块115,用于提供给用户配置感兴趣数据功能,实现对加密数据的精准控制。
在一实施例中,所述第一密钥管理模块112,还用于进行工作密钥的分发,具体为:
接收所述服务节点12及所述云数据库客户端20发送的工作密钥申请;
向所述密钥管理平台40发送所述工作密钥申请,以使所述密钥管理平台40查找对应与所述服务节点12、所述云数据库客户端20及所述管理节点11充注密钥的历史记录,获得分别对应于所述服务节点12及所述云数据库客户端20的充注密钥信息,并采用对应于所述管理节点11的充注密钥对所述充注密钥信息进行加密,得到充注密钥密文,所述充注密钥信息包括充注密钥序列号、密钥密文及密钥验证MAC;
获取所述充注密钥密文,对所述充注密钥解密获得对应的充注密钥,基并利用对应的所述充注密钥对所述工作密钥密文进行保护下发至所述服务节点12及所述云数据库客户端20。
在一实施例中,所述服务节点12包括:
第三密码软模块121,由算法模块、数据文件、软证书文件、配置文件组成,其中数据文件来源于所述密码配置管理工具30从所述密钥管理平台40获得的充注密钥。
第三密钥管理模块123,用于提供基于密码软模块的数据库用户工作密钥管理功能,包含所述工作密钥申请、获取以及在服务端内部的生命周期管理。
存储模块124,用于接收并保存云数据库客户端20发送的数据库密文及其对应的数据库明文的预处理方式。
连接管理模块127,用于负责管理外部云数据库客户端20连接功能,维护连接状态,接受云数据库客户端20发送请求,对云数据库客户端20接入申请进行数据预处理,以及云数据库客户端20身份认证功能处理。
数据处理验证模块126,用于解析来自云数据库客户端20请求,按照云数据库客户端20请求类型进行区分,如果是数据写入类需求,则直接将所述云数据库客户端20对上报数据进行验证,验证无误后,直接写入到存储模块124;如是查询请求,则分析查询涉及的结果类型,则直接调用计算模块125。
进一步地,所述服务节点12还包括:
计算模块125,用于接收来自所述数据处理验证模块126的请求,识别出需要获取初始结果集,再调用密钥管理模块获取所述结果集匹配的工作密钥,并使用所述工作密钥完成对结果集的解密工作,再根据请求内容对结果集进行处理、计算得到结算后的结果,再调用第二密码运算模块122对结果集进行加密后返回到数据库客户端。
进一步地,所述服务节点12还包括:
第二密码运算模块122,用于提供基于第三密码软模块121的加解密功能,实现对所述初始结果集的解密功能以及对返回云数据库客户端20的明文的加密功能。
此外,如图4所示,本发明第四实施例还提出了一种适合云环境的数据库加密终端,所述加密终端为云数据库客户端20,包括:
第二密码软模块21,用于在所述云数据库客户端20初始化完成后,向云服务端中的管理节点11发送工作密钥申请,所述工作密钥申请携带有所述充注密钥信息;
数据处理模块24,用于接收所述管理节点11下发的对应的工作密钥密文,其中所述管理节点11基于密钥申请信息及从所述密钥管理平台40申请得到的密钥,生成所述工作密钥密文;
第一密码运算模块23,用于对所述工作密钥密文进行解密,获得工作密钥;
第一密码运算模块23,用于利用所述工作密钥对待上报数据库进行加密,得到加密数据,并将所述加密数据发送至所述云服务端中的服务节点12进行存储。
具体地,第二密码软模块21,由算法模块、数据文件、软证书文件、配置文件组成,其中数据文件来源于所述配置管理工具从所述密钥管理平台40获得的充注密钥。
第一密码运算模块23,提供基于密码软模块的加解密功能,实现对所述上报数据明文进行加密以及对所述云数据服务节点12返回密文解密功能。
数据处理模块24,用于实现到云数据库服务节点12数据库登录认证、客户上传数据处理和发送功能,云数据服务节点12发送数据结果接收处理功能。
在一实施例中,所述云数据库客户端20还包括:
第二密钥管理模块22,用于提供基于第二密码软模块21的数据库用户工作密钥管理功能,包含所述工作密钥申请、获取以及在云数据库客户端20内部的生命周期管理。
在一实施例中,所述第二密码软模块21,用于实现密钥申请流程,具体包括:
第二业务信息提交单元,用于向密码配置管理工具30提交业务信息,以使所述密码配置管理工具30根据所述业务信息,生成软证书,并使用所述软证书的私钥做签名,发送至所述密钥管理平台40以使其根据所述软证书的公钥进行签名验证,生成充注密钥并打包为数字信封;
第二文件接收单元,用于接收所述密码配置管理工具30发送的充注文件及配置文件,其中,所述密码配置管理工具30接收所述密钥管理平台40发送的所述数字信封,并使用所述软证书的私钥解密所述数字信封,并将解密得到的充注密钥写入数据文件,生成所述充注文件及配置文件。
本实施例基于对称密钥体系的预制密钥,并且定义了专用的密码配置管理工具以及相关流程保护预制密钥,通过生成软证书以及数字信封方式实现对充注密钥保护,能够实现在云环境下密钥传输的“一次一密”。
在一实施例中,所述第二密码软模块21,还用于:
发送自身标识S’至所述管理节点11,以使所述管理节点11将所述标识S’发送至所述密钥管理平台40;
接收所述管理节点11发送的充注密钥Z’及其充注密钥序列号C’以及挑战码RB’,所述挑战码RB’、所述充注密钥Z’及其充注密钥序列号C’由所述密钥管理平台40生成;
基于所述充注密钥Z’和自身随机生成的随机数RA’,计算本次认证的MAC,并发送至所述管理节点11。
在一实施例中,所述数据处理模块24,还用于:向所述服务节点12发送查询请求,以使所述服务节点12查找与所述查询请求对应的数据库密文;接收所述服务节点12返回的所述数据库密文,并调用第一密码运算模块23解密得到明文。
此外,如图5所示,本发明第五实施例还提出了一种适合云环境的数据库加密系统,所述系统包括云数据库、密码配置管理工具30以及密钥管理平台40,其中,所述云数据库包括云数据库服务端10和云数据库客户端20,所述云服务端包括管理节点11和服务节点12,所述管理节点11、所述服务节点12以及所述云数据库客户端20均与所述密码配置管理工具30连接,所述密码配置管理工具30与所述密钥管理平台40连接,所述管理节点11与所述密钥管理平台40连接;
所述密码配置管理工具30,用于根据所述管理节点11、所述服务节点12及所述云数据库客户端20的信息,生成配置文件及对应公私钥对信息,并以所述公私钥对信息实现到所述密钥管理平台40的充注密钥申请;
所述密钥管理平台40,用于接收所述密码配置管理工具30请求完成充注密钥的下发,以及接收所述管理节点11发送的密钥请求并按照密钥请求返回对应的会话密钥;
所述管理节点11,用于基于密钥申请信息及从所述密钥管理平台40申请得到的密钥,生成工作密钥密文并下发相应的所述工作密钥至所述服务节点12及所述云数据库客户端20;
所述云数据库客户端20,用于对所述工作密钥密文进行解析,获取工作密钥并使用所述工作密钥对待上报数据库进行加密后发送至所述服务节点12;
所述服务节点12用于对所述工作密钥密文进行解析,获取工作密钥并存储,以及接收所述云数据库客户端20发送的加密数据并存储。
具体地,云数据库客户端20,使用内部预制充注密钥作为保护申请,从云服务端中的管理节点11获取与所述云数据库客户端20的数据库用户对应的工作密钥,采用工作密钥对云数据库客户端20上传数据明文进行加密后上传至云服务端中的服务节点12;并用于向服务节点12发出查询请求,获取从云数据库服务端10发送数据结果密文,并使用工作密钥进行解密。
云数据库服务节点12,用于接收来自云数据库客户端20上报的数据库密文并写入到数据文件中;以及判断所述云数据库客户端20查询请求类型,并根据查询结果类型选择对应的查询结果类型选择不同处理结果返回到云数据库客户端20。
云数据库管理节点11,用于提供加密相关的数据库用户的创建以及感兴趣加密数据的配置功能,管理节点11可以使用自身集成的第一密码软模块111实现从密钥管理平台40申请的一支密钥,并且能够实现和感兴趣数据结合生成工作密钥,管理节点11可以将工作密钥分发到云数据库客户端20和云数据库服务节点12,实现工作密钥的分发。
密码配置管理工具30,用于提供云数据库管理节点11、服务节点12、客户端所集成密码软模块的配置文件生成以及充注密钥获取功能,配置管理工具可以根据所述数据库管理节点11、服务节点12、客户端提供信息生成对应公私钥信息,并且以所述公私钥对实现到密钥管理平台40的充注密钥申请。
密钥管理平台40,用于提供充注密钥获取、实时会话密钥分发功能,支持以对称密钥体系实现15843.2规范中实体认证方式实现对所述管理节点11中第一密码软模块111的身份鉴别功能。
需要说明的是,密钥管理平台40采用符合商密算法的物理器件产生随机源,在初始配置阶段,能够接收密码配置工具请求完成充注密钥的下发功能,在使用阶段,能够接收来自密码软模块的密钥请求并按要求返回对应的会话密钥。
本实施例中,适合云环境的数据库加密系统由三方构成,分别为云数据库、密码配置管理端和密钥管理平台40。云数据库是云计算供应商提供给客户的服务,其中包括对结构化数据(也就是数据表)、非结构化数据的存储和计算,云数据库对数据的存储和计算都是位于客户的网络边界之外的,不受客户的控制。客户网络通过云数据库提供的客户端连接到云数据库服务端10。
其中,云数据库客户端20使用通过内部集成的第二密码软模块21获取的工作密钥实现对上传数据的加密以及从云数据库服务节点12下发数据的解密功能。加密方式采用对称密钥体系,算法采用国密算法,整个加密使用对称密钥体系,能够有效提升数据在加解密过程的中效率,减少加解密对数据库性能的影响。
在一实施例中,如图6所示,适合云环境的数据库加密系统的工作流程如下:
S10、配置文件生成:密码配置管理工具根据云数据库管理节点、服务节点及客户端信息生成密码软证书,并根据软证书申请到密钥管理平台申请会话密钥完成配置文件加载。
S20、密码软模块加载:云数据库管理节点加载第一密码软模块,使用第一密码软模块内置充注密钥完成到其所属的密钥管理平台的身份认证,服务节点完成第三密码软模块初始化、云数据库客户端完成第二密码软模块初始化。
S30、密钥派生:云数据库管理节点开始配置数据加密,使用用户管理模块创建管理员信息及创建数据库加密用户,以及使用加密配置模块配置与用户对应的感兴趣数据,调用第一密码软模块申请密钥,第一密码软模块根据管理员创建信息、加密数据库用户信息、需要加密感兴趣数据,向密钥管理平台申请一支密钥,并以这一支密钥为根密钥,生成管理员密钥、用户主密钥、工作密钥。
S40、密钥分发:云数据库管理节点根据云数据库客户端以及云数据库服务节点中第三密码软模块信息,使用云户数据库客户端以及服务节点对应一支充足密钥为保护,分发工作密钥,客户端、服务节点解析分发密钥,存入各自安全区内。
S50、数据加密:云数据库客户端发起写入请求,使用分发的工作密钥对上报的数据库进行加密,加密后的数据库密文发送到服务节点,服务节点完成数据存储,云数据库客户端发起查询请求,云数据库服务节点根据查询器请求查询结果集,并返回到云数据库客户端,云数据库客户端使用工作密钥完成解密展示。
具体地,如图7所示,各密码软模块的配置文件生成以及充注密钥获取功能流程如下所示:
S11、用户提交业务信息(云数据库客户端客户信息及云数据库服务端信息)到密码配置管理工具。
S12、密码管理配置工具根据提交的信息,生成软证书,软证书可以采用PK12形式。
S13、密码管理配置工具,使用软证书的私钥做签名,并发送到密钥管理平台申请充注密钥。
S14、密钥管理平台使用软证书的公钥进行签名验证,生成充注密钥,并使用业务系统软证书公钥将所述充注密钥打包为数字信封格式。
S15、密码管理配置工具使用软证书私钥解密数字信封,并写入数据文件(加密存储),生成对应的充注文件以及配置文件。
S16、云数据库管理节点导入配置管理生成的充注文件以及配置文件,生成对应的客户端安装包,并提供给申请的用户。
具体地,如图8所示,第一密码软模块内置充注密钥完成到其所属的密钥管理平台的身份认证过程如下:
S21、云数据库管理节点使用集成的第一密码软模块,发送第一密码软模块的标识S到密钥管理平台。
S22、密钥管理平台根据访问第一密码软模块的标识S,找到之前充注的历史记录,选择指定一支充注密钥Z,并将充注密钥序列号C、随机生成一个挑战码RB并下发到密钥端。
S23、第一密码软模块随机生成一个随机数RA以及获取的充注密钥Z计算本次认证的MAC,并将认证MAC/RA发送到密钥管理平台。
S24、密钥管理管理平台根据自己指定的密钥以及RA对MAC进行计算验证,确认第一密码软模块身份,验证成功后,生成本次登录的令牌并下发到云数据库管理节点。
在部分场景下,因为网络限制,则使用代理鉴权模式实现对密钥管理平台的认证鉴权,其优选实例如图9所示:
S21’、云数据库客户端或服务节点分别使用第二密码软模块或第三密码软模块,发送自身标识S’到代理的认证鉴权服务(可以是云数据库管理节点);
S22’、云数据库管理节点传送S’到密钥管理平台;
S23’、密钥管理平台根据访问密码软模块标识S’,找到之前充注的历史记录,选择指定一支充注密钥Z’,并将充注密钥序列号C’、随机生成一个挑战码RB’并下发到云数据库管理节点;
S24’、云数据库管理节点发送密钥序列号C’、随机生成一个挑战码RB’发送到云数据库客户端或服务节点;
S25’、所述第二密码软模块或第三密码软模块随机生成一个随机数RA’以及获取的充注密钥Z’计算本次认证的MAC,并将认证MAC/RA’发送到云数据库管理节点;
S26’、云数据库管理节点发送MAC/RA’到密钥管理管理平台;
S27’、密钥管理管理平台根据自己指定的密钥以及RA’对MAC进行计算验证,确认软模块身份,验证成功后,生成本次登录的令牌,并下发到云数据库管理节点。
S28’、云数据库管理节点将令牌下发到云数据库客户端或服务节点。
在一实施例中,如图10所示,云数据库管理节点的工作密钥生成流程如下:
S31、所述云数据库管理节点配置管理员,发送密钥申请信息到管理节点集成的第一密码软模块。
S32、云数据库管理节点中第一密码软模块根据申请信息向密钥管理平台申请一支量子密钥并结合密钥派生算法,生成数据库保护密钥,该密钥作为保护所有密钥的加密密钥。
S33、云数据库管理节点创建需要保护的数据库用户信息,调用第一密码软模块获取用户主密钥。
S34、第一密码软模块根据申请信息向密钥管理平台申请一支密钥并结合密钥派生算法,生成用户主密钥,该密钥由S32阶段产品数据库保护密钥进行加密,加密后存储到密钥库中。
S35、云数据库管理节点创建需要保护用户感兴趣数据,调用第一密码软模块生成密钥信息。
S36、第一密码软模块根据申请信息向密钥管理平台申请一支密钥并结合密钥派生算法,生成用户加密工作密钥,该工作密钥和用户感兴趣数据内容关联,该密钥由S32阶段产品数据库保护密钥进行加密,加密后存储到密钥库中。
在一实施例中,云数据库管理节点的工作密钥下发流程如图11所示:
S41、云数据库客户端及服务节点向云数据管理节点进行登录,申请和云数据库客户端相关的工作密钥。
S42、所述云数据库管理节点调用第一密码软模块向密钥管理平台申请对应客户端及服务端节点的软模块内充注的一支密钥。
S43、密钥管理平台返回密钥信息(序列号、密钥密文、密钥验证MAC),并使用云数据库管理节点中第一密码软模块内充注密钥作为保护进行下发。
S44、云数据库管理节点使用第一密码软模块完成申请密钥的解析和认证,并以该密钥为保护对工作密钥进行保护下发(密钥密文、MAC值,保护密钥序列号)
S45、云数据库客户端及服务节点使用收到该密钥密文,并根据对应的第二密码软模块机第三密码软模块内保护密钥序列号对密钥密文进行解析,完成工作密钥的加载。
在一实施例中,云数据库客户端进行数据上传及查询的流程如图12所示:
S51、云数据库客户端发起写入请求,并调用第二密码软模块内存储的工作密钥对数据明文进行加密,得到数据库密文并发送云数据库服务节点。
S52、云数据库服务节点对数据库密文进行完成数据验证,验证成功后写入到数据库内存储模块。
S53、云数据库客户端发起查询请求,发送查询请求信息到云数据库服务节点。
S54、云数据库服务节点对查询进行分类,如果不涉及到二次计算,则直接从存储模块返回数据库密文到云数据库客户端。
S55、如涉及到二次计算,则将查询请求发送到计算模块,先识别出需要获取初始结果集,使用所述工作密钥完成对初始结果集的解密工作,再根据请求内容对初始结果集进行处理、计算得到结算后的结果,最后在调用密码运算模块对结算后结果集进行加密后返回到云数据库客户端。
S56、云数据库客户端接收到返回的密文,使用工作密钥对数据库密文进行解密得到明文。
在本实施例中,云数据库客户端、云数据库服务节点及管理节点均使用了对应的密码软模块存储对应的充注密钥以及对应的证书文件,在实际部署中也可以使用对应的安全存储介质实现对证书和充注密钥的存储和保护,可以采用USBKey/TF KEY等多种存储方式;能够满足云数据库快速部署、弹性拓展的需求。
需要说明的是,在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,“计算机可读介质”可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (12)
1.一种适合云环境的数据库加密方法,其特征在于,应用于云数据库服务端,所述云数据库服务端包括服务节点和管理节点,所述方法包括:
所述管理节点基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证;
所述管理节点基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成工作密钥密文;
所述管理节点接收所述服务节点及云数据库客户端发送的工作密钥申请,并下发相应的所述工作密钥至所述服务节点及云数据库客户端,以供所述云数据库客户端和所述服务节点对所述工作密钥密文进行解析,获取工作密钥并存储;
所述服务节点接收所述云数据库客户端发送的加密数据并存储,所述加密数据为所述云数据库客户端基于所述工作密钥对待上报数据库进行加密得到。
2.如权利要求1所述的适合云环境的数据库加密方法,其特征在于,在所述管理节点基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证之前,所述方法还包括:
所述云数据库服务端向密码配置管理工具提交业务信息,以使所述密码配置管理工具根据所述业务信息,生成软证书,并使用所述软证书的私钥做签名,发送至所述密钥管理平台以使其根据所述软证书的公钥进行签名验证,生成充注密钥并打包为数字信封;
所述云数据库服务端接收所述密码配置管理工具发送的充注文件及配置文件,其中,所述密码配置管理工具接收所述密钥管理平台发送的所述数字信封,并使用所述软证书的私钥解密所述数字信封,并将解密得到的充注密钥写入数据文件,生成所述充注文件及配置文件。
3.如权利要求1所述的适合云环境的数据库加密方法,其特征在于,所述管理节点基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证,包括:
所述管理节点向所述密钥管理平台发送自身标识S,以使所述密钥管理平台根据所述标识S查找对应充注密钥的历史记录,指定充注密钥Z及其充注密钥序列号C,并随机生成挑战码RB;
所述管理节点获取所述充注密钥Z,并基于自身随机生成一个随机数RA,计算本次地址认证MAC,并将认证MAC和RA并发送至所述密钥管理平台以使所述密钥管理平台基于所述充注密钥Z及所述随机数RA对所述认证MAC进行验证;
所述管理节点接收所述密钥管理平台发送的本次登录令牌,所述登录令牌为验证通过时下发。
4.如权利要求1所述的适合云环境的数据库加密方法,其特征在于,所述管理节点基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证,包括:
所述管理节点接收所述服务节点或所述云数据库客户端发送的自身标识S’;
所述管理节点将所述标识S’发送至所述密钥管理平台,以使所述密钥管理平台根据所述标识S’查找对应充注密钥的历史记录,指定充注密钥Z’及其充注密钥序列号C’,并随机生成挑战码RB’;
所述管理节点获取所述充注密钥Z’及其充注密钥序列号C’及挑战码RB’,并发送至所述服务节点或所述云数据库客户端,以使所述服务节点或所述云数据库客户端基于所述充注密钥Z’和随机生成的随机数RA’,计算本次认证的MAC;
所述管理节点获取本次认证的MAC和RA’,并发送至所述密钥管理平台,以使所述密钥管理平台基于所述充注密钥Z’及所述随机数RA’对所述认证MAC进行验证;
所述管理节点接收所述密钥管理平台发送的本次登录令牌,所述登录令牌为验证通过时下发。
5.如权利要求1所述的适合云环境的数据库加密方法,其特征在于,所述管理节点基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成工作密钥密文,包括:
所述管理节点向所述密钥管理平台发送第一密钥申请信息,以获取一支量子密钥,并结合密钥派生算法,生成保护密钥,所述第一密钥申请信息携带有管理员创建信息;
所述管理节点向所述密钥管理平台发送第二密钥申请信息,以获取一支量子密钥,并结合密钥派生算法,生成用户主密钥,所述第二密钥申请信息携带有数据库用户信息;
所述管理节点向所述密钥管理平台发送第三密钥申请信息,以获取一支量子密钥,并结合所述用户主密钥、密钥派生算法,生成所述工作密钥,所述第三密钥申请信息携带有所述数据库用户的感兴趣数据;
所述管理节点分别利用所述保护密钥对所述用户主密钥和所述工作密钥进行加密,得到对应的用户主密钥密文和工作密钥密文。
6.如权利要求1所述的适合云环境的数据库加密方法,其特征在于,所述管理节点接收所述服务节点及云数据库客户端发送的工作密钥申请,并下发相应的所述工作密钥至所述服务节点及云数据库客户端,包括:
所述管理节点接收所述服务节点及所述云数据库客户端发送的工作密钥申请;
所述管理节点向所述密钥管理平台发送所述工作密钥申请,以使所述密钥管理平台查找对应与所述服务节点、所述云数据库客户端及所述管理节点充注密钥的历史记录,获得分别对应于所述服务节点及所述云数据库客户端的充注密钥信息,并采用对应于所述管理节点的充注密钥对所述充注密钥信息进行加密,得到充注密钥密文,所述充注密钥信息包括充注密钥序列号、密钥密文及密钥验证MAC;
所述管理节点获取所述充注密钥密文,对所述充注密钥解密获得对应的充注密钥,基并利用对应的所述充注密钥对所述工作密钥密文进行保护下发至所述服务节点及所述云数据库客户端。
7.如权利要求1所述的适合云环境的数据库加密方法,其特征在于,所述方法还包括:
所述服务节点接收所述云数据库客户端发送的查询请求,并对所述查询请求进行分类;
若所述查询请求涉及二次计算,则基于所述查询请求获取初始结果集,使用所述工作密钥对所述初始结果集进行解密,基于所述查询请求对解密后的结果集进行结算,对结算后的结果集加密后发送至所述云数据库客户端;
若所述查询请求未涉及二次计算,则从存储的加密数据中返回对应于所述查询请求的数据库密文至所述云数据库客户端。
8.一种适合云环境的数据库加密方法,其特征在于,应用于云数据库客户端,所述云服务端设置有充注文件,所述充注文件中存储有密钥管理平台预制的充注密钥,所述方法包括:
所述云数据库客户端初始化完成后,向云服务端中的管理节点发送工作密钥申请,所述工作密钥申请携带有所述充注密钥信息;
所述云数据库客户端接收所述管理节点下发的对应的工作密钥密文,其中所述管理节点基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成所述工作密钥密文;
所述云数据库客户端对所述工作密钥密文进行解密,获得工作密钥;
所述云数据库客户端利用所述工作密钥对待上报数据库进行加密,得到加密数据,并将所述加密数据发送至所述云服务端中的服务节点进行存储。
9.如权利要求8所述的适合云环境的数据库加密方法,其特征在于,所述方法还包括:
所述云数据库客户端向密码配置管理工具提交业务信息,以使所述密码配置管理工具根据所述业务信息,生成软证书,并使用所述软证书的私钥做签名,发送至所述密钥管理平台以使其根据所述软证书的公钥进行签名验证,生成充注密钥并打包为数字信封;
所述云数据库客户端接收所述密码配置管理工具发送的充注文件及配置文件,其中,所述密码配置管理工具接收所述密钥管理平台发送的所述数字信封,并使用所述软证书的私钥解密所述数字信封,并将解密得到的充注密钥写入数据文件,生成所述充注文件及配置文件。
10.一种适合云环境的数据库加密终端,其特征在于,所述加密终端为云数据库服务端,所述云数据库服务端包括管理节点和服务节点,所述管理节点包括:
第一密码软模块,用于基于预先从密钥管理平台获取的充注密钥,完成到其所属密钥管理平台的身份认证;
第一密钥管理模块,用于基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成工作密钥密文;以及接收所述服务节点及云数据库客户端发送的工作密钥申请,并下发相应的所述工作密钥至所述服务节点及云数据库客户端,以供所述云数据库客户端和所述服务节点对所述工作密钥密文进行解析,获取工作密钥并存储;
所述服务节点,用于接收所述云数据库客户端发送的加密数据并存储,所述加密数据为所述云数据库客户端基于所述工作密钥对待上报数据库进行加密得到。
11.一种适合云环境的数据库加密终端,其特征在于,所述加密终端为云数据库客户端,包括:
第二密码软模块,用于在所述云数据库客户端初始化完成后,向云服务端中的管理节点发送工作密钥申请,所述工作密钥申请携带有所述充注密钥信息;
数据处理模块,用于接收所述管理节点下发的对应的工作密钥密文,其中所述管理节点基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成所述工作密钥密文;
第一密码运算模块,用于对所述工作密钥密文进行解密,获得工作密钥;
第一密码运算模块,用于利用所述工作密钥对待上报数据库进行加密,得到加密数据,并将所述加密数据发送至所述云服务端中的服务节点进行存储。
12.一种适合云环境的数据库加密系统,其特征在于,所述系统包括云数据库、密码配置管理工具以及密钥管理平台,其中,所述云数据库包括云数据库服务端和云数据库客户端,所述云服务端包括管理节点和服务节点,所述管理节点、所述服务节点以及所述云数据库客户端均与所述密码配置管理工具连接,所述密码配置管理工具与所述密钥管理平台连接,所述管理节点与所述密钥管理平台连接;
所述密码配置管理工具,用于根据所述管理节点、所述服务节点及所述云数据库客户端的信息,生成配置文件及对应公私钥对信息,并以所述公私钥对信息实现到所述密钥管理平台的充注密钥申请;
所述密钥管理平台,用于接收所述密码配置管理工具请求完成充注密钥的下发,以及接收所述管理节点发送的密钥请求并按照密钥请求返回对应的会话密钥;
所述管理节点,用于基于密钥申请信息及从所述密钥管理平台申请得到的密钥,生成工作密钥密文并下发相应的所述工作密钥至所述服务节点及所述云数据库客户端;
所述云数据库客户端,用于对所述工作密钥密文进行解析,获取工作密钥并使用所述工作密钥对待上报数据库进行加密后发送至所述服务节点;
所述服务节点用于对所述工作密钥密文进行解析,获取工作密钥并存储,以及接收所述云数据库客户端发送的加密数据并存储。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211182127.0A CN115913621A (zh) | 2022-09-27 | 2022-09-27 | 适合云环境的数据库加密方法、终端及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211182127.0A CN115913621A (zh) | 2022-09-27 | 2022-09-27 | 适合云环境的数据库加密方法、终端及系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN115913621A true CN115913621A (zh) | 2023-04-04 |
Family
ID=86490210
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211182127.0A Pending CN115913621A (zh) | 2022-09-27 | 2022-09-27 | 适合云环境的数据库加密方法、终端及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115913621A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701493A (zh) * | 2023-08-07 | 2023-09-05 | 中电信量子科技有限公司 | 支持模糊查询的数据库操作方法及用户端 |
-
2022
- 2022-09-27 CN CN202211182127.0A patent/CN115913621A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116701493A (zh) * | 2023-08-07 | 2023-09-05 | 中电信量子科技有限公司 | 支持模糊查询的数据库操作方法及用户端 |
CN116701493B (zh) * | 2023-08-07 | 2023-10-31 | 中电信量子科技有限公司 | 支持模糊查询的数据库操作方法及用户端 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112950367B (zh) | 生成和执行智能合约交易的方法及装置 | |
CN107948156B (zh) | 一种基于身份的封闭式密钥管理方法及系统 | |
CN109067528B (zh) | 密码运算、创建工作密钥的方法、密码服务平台及设备 | |
US20140270179A1 (en) | Method and system for key generation, backup, and migration based on trusted computing | |
CN111130757A (zh) | 一种基于区块链的多云cp-abe访问控制方法 | |
US9185111B2 (en) | Cryptographic authentication techniques for mobile devices | |
US11716206B2 (en) | Certificate based security using post quantum cryptography | |
US20050149722A1 (en) | Session key exchange | |
CN106487506B (zh) | 一种支持预加密和外包解密的多机构kp-abe方法 | |
US11469903B2 (en) | Autonomous signing management operations for a key distribution service | |
CN109800588B (zh) | 条码动态加密方法及装置、条码动态解密方法及装置 | |
CN108471403A (zh) | 一种账户迁移的方法、装置、终端设备及存储介质 | |
CN113360944A (zh) | 一种电力物联网的动态访问控制系统与方法 | |
Yu et al. | Veridedup: A verifiable cloud data deduplication scheme with integrity and duplication proof | |
CN115913621A (zh) | 适合云环境的数据库加密方法、终端及系统 | |
CN109302286B (zh) | 一种Fido设备密钥索引的生成方法 | |
CN114154181A (zh) | 基于分布式存储的隐私计算方法 | |
CN114866328A (zh) | 一种边缘计算环境下基于区块链的跨域访问控制方法及系统 | |
CN115348077A (zh) | 一种虚拟机加密方法、装置、设备、存储介质 | |
CN112580061B (zh) | 一种量子加解密应用接口的调用方法及相关设备 | |
CN112583580B (zh) | 一种量子密钥的处理方法及相关设备 | |
EP4016921A1 (en) | Certificate management method and apparatus | |
CN117879819B (zh) | 密钥管理方法、装置、存储介质、设备及算力服务系统 | |
CN108809651A (zh) | 密钥对管理方法和终端 | |
Dietrich | Anonymous client authentication for transport layer security |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |