CN116975926A - 一种基于可信执行环境的数据库代理加密系统 - Google Patents
一种基于可信执行环境的数据库代理加密系统 Download PDFInfo
- Publication number
- CN116975926A CN116975926A CN202311037395.8A CN202311037395A CN116975926A CN 116975926 A CN116975926 A CN 116975926A CN 202311037395 A CN202311037395 A CN 202311037395A CN 116975926 A CN116975926 A CN 116975926A
- Authority
- CN
- China
- Prior art keywords
- encryption
- module
- database
- data
- enckey
- 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
- 238000004806 packaging method and process Methods 0.000 claims abstract description 14
- 238000000034 method Methods 0.000 claims description 49
- 230000008569 process Effects 0.000 claims description 27
- 238000004590 computer program Methods 0.000 claims description 15
- 238000007726 management method Methods 0.000 description 20
- 238000010586 diagram Methods 0.000 description 7
- 238000004891 communication Methods 0.000 description 5
- 230000006870 function Effects 0.000 description 4
- 230000000694 effects Effects 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6227—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database where protection concerns the structure of data, e.g. records, types, queries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0819—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
- H04L9/0822—Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using key encryption key
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/08—Randomization, e.g. dummy operations or using noise
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/76—Proxy, i.e. using intermediary entity to perform cryptographic operations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/88—Medical equipments
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种基于可信执行环境的数据库代理加密系统,该加密系统包括业务服务器模块、数据库代理模块和数据库模块,数据库代理模块中设置有加密组件;加密组件在其运行环境中随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再通过系统定义的主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据存入数据库模块;数据库代理模块将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用EncKey解密密文Enc(m)得到原始数据并返回至业务服务器模块。本发明解决了数据库代理模块本身的安全问题,减少了数据库数据泄露的风险。
Description
技术领域
本发明涉及保密通信技术领域,具体为一种基于可信执行环境的数据库代理加密系统。
背景技术
依据网络安全相关法律规定,应当采取技术措施和其他必要措施,确保信息安全。防止在业务活动中搜集的公民个人电子信息泄露、损坏、丢失。网络安全保护相关标准要求三级以上系统的鉴别信息和重要业务数据存储要加密。因此大量政府、企业的系统都需要加密数据库代理来保护数据。典型如医疗机构中用户个人信息以及医疗信息,政府系统中用户信息,企业用户信息中的实名认证信息,电子商务网站中用户购物信息、地址信息等。
加密数据库代理不改变用户开发习惯,只需将原有连接数据库的地址改为连接加密数据库代理即可,使用简单方便。因此数据库代理加密模式使用较为广泛。但是目前的数据库代理加密,数据库加密的密钥或者是通过配置文件配置;或者是通过配置密钥管理系统访问令牌,从密钥管理系统获取,令牌明文配置在配置文件中。而且数据库加密使用的密钥都是明文存在于内存中。这些问题都导致加密数据库代理本身的安全性较为脆弱,无法很好的保护数据库本身安全。
发明内容
本发明旨在克服现有技术的不足,提供一种基于可信执行环境的数据库代理加密方案,解决数据库代理模块本身的安全问题,减少数据库数据泄露的风险。
为实现上述效果,本发明采用的技术方案为:
一种基于可信执行环境的数据库代理加密系统,该加密系统包括业务服务器模块、与业务服务器模块连接的数据库代理模块和与数据库代理模块连接的数据库模块,数据库代理模块中设置有加密组件;
在业务服务器模块的数据写入数据库时,数据数据库代理模块解析业务服务器模块的SQL语句,若解析获得SQL表配置了加密属性,则加密组件在其运行环境中随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再通过系统定义的主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据存入数据库模块;
在数据库模块内的加密数据返回业务服务器模块时,数据库代理模块读取数据库模块中的加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用EncKey解密密文Enc(m)得到原始数据并返回至业务服务器模块。
优选的,所述数据库代理模块内的加密组件运行于可信执行环境、SE模块或者CPU安全模块内部。
还提供一种基于可信执行环境的数据库代理加密方法,应用于所述的一种基于可信执行环境的数据库代理加密系统,所述加密组件运行于可信执行环境内部,使用加密执行环境内部密钥加密,定义可信执行环境内的主密钥为MasterKey;
该加密组件采用的加密流程为:
S10:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要加密,若判断结果为否,则不执行加密程序;若判断结果为是,则继续执行下一步;
S11:数据库代理的加密组件在可行执行环境内部随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再使用主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据;
S12:重复顺序执行步骤S11和步骤S12,直至完成所有数据的加密过程;
该加密组件采用的解密流程为:
S20:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要解密,若判断结果为否,则不执行解密程序;若判断结果为是,则继续执行下一步;
S21:数据库代理模块从数据库模块中读入加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用加密密钥EncKey解密密文Enc(m)得到原始数据;
S22:重复顺序执行步骤S21和步骤S22,直至完成所有数据的解密过程。
又提供另一种基于可信执行环境的数据库代理加密方法,应用于所述的一种基于可信执行环境的数据库代理加密系统,所述加密组件运行于可信执行环境内部,使用密钥管理系统密钥作为主密钥,定义密钥管理系统主密钥为MasterKey;
该加密组件采用的加密流程为:
S30:数据库代理模块向密钥管理系统查询MasterKey;
S31:密钥管理系统检查查询请求是否合法,不合法则返回错误值,合法则返回MasterKey;
S32:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要加密,若判断结果为否,则不执行加密程序;若判断结果为是,则继续执行下一步;
S33:数据库代理的加密组件在可行执行环境内部随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再使用主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据;
S34:重复顺序执行步骤S32和步骤S33,直至完成所有数据的加密过程;
该加密组件采用的解密流程为:
S40:数据库代理模块向密钥管理系统查询MasterKey;
S41:密钥管理系统检查查询请求是否合法,不合法则返回错误值,合法则返回MasterKey;
S42:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要解密,若判断结果为否,则不执行解密程序;若判断结果为是,则继续执行下一步;
S43:数据库代理模块从数据库模块中读入加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用加密密钥EncKey解密密文Enc(m)得到原始数据;
S44:重复顺序执行步骤S42和步骤S43,直至完成所有数据的解密过程。
以及另一种基于可信执行环境的数据库代理加密方法,应用于所述的一种基于可信执行环境的数据库代理加密系统,所述加密组件不运行于可信执行环境内部,使用SE模块或者CPU安全模块存储主密钥MasterKey;
该加密组件采用的加密流程为:
S50:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要加密,若判断结果为否,则不执行加密程序;若判断结果为是,则继续执行下一步;
S51:数据库代理的加密组件随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再使用SE模块或者CPU安全模块存储的主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据;
S52:重复顺序执行步骤S51和步骤S52,直至完成所有数据的加密过程;
该加密组件采用的解密流程为:
S60:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要解密,若判断结果为否,则不执行解密程序;若判断结果为是,则继续执行下一步;
S61:数据库代理模块从数据库模块中读入加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用SE模块或者CPU安全模块存储的主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用加密密钥EncKey解密密文Enc(m)得到原始数据;
S62:重复顺序执行步骤S60和步骤S61,直至完成所有数据的解密过程。
同时提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现所述的基于可信执行环境的数据库代理加密方法。
以及一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现所述的基于可信执行环境的数据库代理加密方法。
与现有技术相比较,本发明的有益效果如下:
本发明通过在数据库代理模块中设置有加密组件,加密组件运行于可信执行环境、SE(SecureElement)模块、或者CPU安全模块内部,加密组件机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再使用可信执行环境定义的主密钥MasterKey或SE模块或者CPU安全模块存储的主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据,从而采用二次加密的形式完成对数据的加密过程;数据库代理模块将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用加密密钥EncKey解密密文Enc(m)得到原始数据,从而采用对称加密形式的二次解密方式完成数据的解密过程,解决了数据库代理模块本身的安全问题,减少了数据库数据泄露的风险。
附图说明
图1为本发明的数据库代理加密系统的系统框架示意图;
图2为实施例1中加密流程的流程结构示意图;
图3为实施例1中解密流程的流程结构示意图;
图4为实施例2中加密流程的流程结构示意图;
图5为实施例2中解密流程的流程结构示意图;
图6为实施例3中加密流程的流程结构示意图;
图7为实施例3中解密流程的流程结构示意图。
具体实施方式
下面结合附图对本发明的较佳实施例进行详细阐述,以使本发明的优点和特征能更易于被本领域技术人员理解,从而对本发明的保护范围做出更为清楚明确的界定。
请参阅图1,一种基于可信执行环境的数据库代理加密系统,该加密系统包括业务服务器模块、与业务服务器模块连接的数据库代理模块和与数据库代理模块连接的数据库模块,数据库代理模块中设置有加密组件;
在业务服务器模块的数据写入数据库时,数据数据库代理模块解析业务服务器模块的SQL语句,若解析获得SQL表配置了加密属性,则加密组件在其运行环境中随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再通过系统定义的主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据存入数据库模块,从而采用二次加密的形式完成对数据的加密过程;
在数据库模块内的加密数据返回业务服务器模块时,数据库代理模块读取数据库模块中的加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用EncKey解密密文Enc(m)得到原始数据并返回至业务服务器模块。
优选的,所述数据库代理模块内的加密组件运行于可信执行环境、SE模块或者CPU安全模块内部,如IntelSGXEnclave内部、TrustZoneTA等程序中。
实施例1:
请参阅图2和图3,一种基于可信执行环境的数据库代理加密方法,应用于所述的一种基于可信执行环境的数据库代理加密系统,所述加密组件运行于可信执行环境内部,使用加密执行环境内部密钥加密,定义可信执行环境内的主密钥为MasterKey;
该加密组件采用的加密流程为:
S10:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要加密,若判断结果为否,则不执行加密程序;若判断结果为是,则继续执行下一步;
S11:数据库代理的加密组件在可行执行环境内部随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再使用主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据;
S12:重复顺序执行步骤S11和步骤S12,直至完成所有数据的加密过程;
该加密组件采用的解密流程为:
S20:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要解密,若判断结果为否,则不执行解密程序;若判断结果为是,则继续执行下一步;
S21:数据库代理模块从数据库模块中读入加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用加密密钥EncKey解密密文Enc(m)得到原始数据;
S22:重复顺序执行步骤S21和步骤S22,直至完成所有数据的解密过程。
下面以一段具体的文字信息为例,结合涉及的算法、公式来具体阐述上述的加密和解密过程。
如:一个医疗体检机构需要存储前来体检病人的信息,包括病人的隐私信息,如身份证号码、手机号码、地址信息、体检结果信息。体检机构使用基于可信执行环境的数据库加密代理来保护病人隐私信息。例如采用如下部署方式:
1.数据库运行于内网机器server1,内网ip地址192.168.1.10,端口3306,无公网地址。
2.数据库加密代理运行于server2,内网ip地址192.168.1.11,端口9393,无公网地址。配置数据库加密代理的数据库地址为192.168.1.10,端口为3306。Server2支持可信执行环境,例如IntelSGX或者龙芯SE模块。
3.医疗体检机构业务服务器运行于server3,内网ip地址为192.168.1.12,端口443,拥有公网访问地址。业务服务器配置数据库访问地址为192.168.1.11,端口为9393。
4.配置Server2服务器时,先初始化Server2可信执行环境内部MasterKey。
5.当体检机构人员录入用户信息时,当写入数据为身份证号、手机号码、地址信息、体检结果信息时,数据库加密代理在可信执行环境内生成随机加密密钥EncKey,再使用EncKey加密数据,然后在可信执行环境内使用MasterKey加密EncKey,最后将加密后的数据和加密后的EncKey拼接在一起,存入数据库。
6.当用户查询自己的体检信息时,当查询数据为身份证号、手机号码、地址信息、体检结果信息时,数据库加密代理在可信执行环境内将数据库读取的数据拆分为加密的EncKey和加密后的数据,再使用可信执行环境内的MasterKey解密后得到原始EncKey,然后使用EncKey在可信执行环境内解密数据,最后将解密后的数据返回给用户。
实施例2:
请参阅图4和图5,一种基于可信执行环境的数据库代理加密方法,应用于所述的一种基于可信执行环境的数据库代理加密系统,所述加密组件运行于可信执行环境内部,使用密钥管理系统密钥作为主密钥,定义密钥管理系统主密钥为MasterKey;
该加密组件采用的加密流程为:
S30:数据库代理模块向密钥管理系统查询MasterKey;
S31:密钥管理系统检查查询请求是否合法,不合法则返回错误值,合法则返回MasterKey;
S32:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要加密,若判断结果为否,则不执行加密程序;若判断结果为是,则继续执行下一步;
S33:数据库代理的加密组件在可行执行环境内部随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再使用主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据;
S34:重复顺序执行步骤S32和步骤S33,直至完成所有数据的加密过程;
该加密组件采用的解密流程为:
S40:数据库代理模块向密钥管理系统查询MasterKey;
S41:密钥管理系统检查查询请求是否合法,不合法则返回错误值,合法则返回MasterKey;
S42:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要解密,若判断结果为否,则不执行解密程序;若判断结果为是,则继续执行下一步;
S43:数据库代理模块从数据库模块中读入加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用加密密钥EncKey解密密文Enc(m)得到原始数据;
S44:重复顺序执行步骤S42和步骤S43,直至完成所有数据的解密过程。
下面以一段具体的文字信息为例,结合涉及的算法、公式来具体阐述上述的加密和解密过程。
如:一个医疗体检机构需要存储前来体检病人的信息,包括病人的隐私信息,如身份证号码、手机号码、地址信息、体检结果信息。体检机构使用基于可信执行环境的数据库加密代理来保护病人隐私信息。例如采用如下部署方式:
1.数据库运行于内网机器server1,内网ip地址192.168.1.10,端口3306,无公网地址。
2.数据库加密代理运行于server2,内网ip地址192.168.1.11,端口9393,无公网地址。配置数据库加密代理的数据库地址为192.168.1.10,端口为3306。Server2支持可信执行环境,例如IntelSGX或者飞腾TrustZone。
3.医疗体检机构业务服务器运行于server3,内网ip地址为192.168.1.12,端口443,拥有公网访问地址。业务服务器配置数据库访问地址为192.168.1.11,端口为9393。
4.密钥管理系统运行于server4,内网ip地址为192.168.1.13,端口为9200,无公网地址。
5.配置Server2服务器时,先使用SSL协议在可信执行环境内部向密钥管理系统同步MasterKey,并且存储于可信执行环境内部。
6.当体检机构人员录入用户信息时,当写入数据为身份证号、手机号码、地址信息、体检结果信息时,数据库加密代理在可信执行环境内生成随机加密密钥EncKey,再使用EncKey加密数据,然后在可信执行环境内使用MasterKey加密EncKey,最后将加密后的数据和加密后的EncKey拼接在一起,存入数据库。
当用户查询自己的体检信息时,当查询数据为身份证号、手机号码、地址信息、体检结果信息时,数据库加密代理在可信执行环境内将数据库读取的数据拆分为加密的EncKey和加密后的数据,再使用可信执行环境内的MasterKey解密后得到原始EncKey,然后使用EncKey在可信执行环境内解密数据,最后将解密后的数据返回给用户。
实施例3:
请参阅图6和图7,一种基于可信执行环境的数据库代理加密方法,应用于所述的一种基于可信执行环境的数据库代理加密系统,所述加密组件不运行于可信执行环境内部,使用密钥管理系统密钥作为主密钥,定义密钥管理系统主密钥为MasterKey,使用SE模块或者CPU安全模块存储主密钥MasterKey;
该加密组件采用的加密流程为:
S50:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要加密,若判断结果为否,则不执行加密程序;若判断结果为是,则继续执行下一步;
S51:数据库代理的加密组件随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再使用SE模块或者CPU安全模块存储的主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据;
S52:重复顺序执行步骤S51和步骤S52,直至完成所有数据的加密过程;
该加密组件采用的解密流程为:
S60:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要解密,若判断结果为否,则不执行解密程序;若判断结果为是,则继续执行下一步;
S61:数据库代理模块从数据库模块中读入加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用SE模块或者CPU安全模块存储的主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用加密密钥EncKey解密密文Enc(m)得到原始数据;
S62:重复顺序执行步骤S60和步骤S61,直至完成所有数据的解密过程。
下面以一段具体的文字信息为例,结合涉及的算法、公式来具体阐述上述的加密和解密过程。
如:一个医疗体检机构需要存储前来体检病人的信息,包括病人的隐私信息,如身份证号码、手机号码、地址信息、体检结果信息。体检机构使用基于可信执行环境的数据库加密代理来保护病人隐私信息。例如采用如下部署方式:
1.数据库运行于内网机器server1,内网ip地址192.168.1.10,端口3306,无公网地址。
2.数据库加密代理运行于server2,内网ip地址192.168.1.11,端口9393,无公网地址。配置数据库加密代理的数据库地址为192.168.1.10,端口为3306。Server2支持可信执行环境,例如龙芯SE模块。
3.医疗体检机构业务服务器运行于server3,内网ip地址为192.168.1.12,端口443,拥有公网访问地址。业务服务器配置数据库访问地址为192.168.1.11,端口为9393。
4.密钥管理系统运行于server4,内网ip地址为192.168.1.13,端口为9200,无公网地址。
5.配置Server2服务器时,先使用SSL协议和密钥交换协议,在SE内部向密钥管理系统同步MasterKey,并且存储于SE内部。
6.当体检机构人员录入用户信息时,当写入数据为身份证号、手机号码、地址信息、体检结果信息时,数据库加密代理在SE内生成随机加密密钥EncKey,再使用EncKey加密数据,然后在SE内使用MasterKey加密EncKey,最后将加密后的数据和加密后的EncKey拼接在一起,存入数据库。
当用户查询自己的体检信息时,当查询数据为身份证号、手机号码、地址信息、体检结果信息时,数据库加密代理将数据库读取的数据拆分为加密的EncKey和加密后的数据,再使用SE内的MasterKey解密后得到原始EncKey,然后使用EncKey在SE内解密数据,最后将解密后的数据返回给用户。
综上,采用对称加密形式的二次解密方式完成数据的解密过程,解决了数据库代理模块本身的安全问题,减少了数据库数据泄露的风险。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序字段。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-R0M、光学存储器等)上实施的计算机程序字段的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序字段的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种电子设备的具体实施方式,所述电子设备具体包括如下内容:处理器(processor)、存储器(memory)、通信接口(CommunicationsInterface)和总线。其中,所述处理器、存储器、通信接口通过所述总线完成相互间的通信;所述处理器用于调用所述存储器中的计算机程序,所述处理器执行所述计算机程序时实现上述实施例中的方法中的全部步骤。
本申请的实施例还提供能够实现上述实施例中的方法中全部步骤的一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中的方法的全部步骤。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (7)
1.一种基于可信执行环境的数据库代理加密系统,其特征在于:该加密系统包括业务服务器模块、与业务服务器模块连接的数据库代理模块和与数据库代理模块连接的数据库模块,数据库代理模块中设置有加密组件;
在业务服务器模块的数据写入数据库时,数据数据库代理模块解析业务服务器模块的SQL语句,若解析获得SQL表配置了加密属性,则加密组件在其运行环境中随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再通过系统定义的主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据存入数据库模块;
在数据库模块内的加密数据返回业务服务器模块时,数据库代理模块读取数据库模块中的加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用EncKey解密密文Enc(m)得到原始数据并返回至业务服务器模块。
2.根据权利要求1所述的一种基于可信执行环境的数据库代理加密系统,其特征在于:所述数据库代理模块内的加密组件运行于可信执行环境、SE模块或者CPU安全模块内部。
3.一种基于可信执行环境的数据库代理加密方法,应用于权利要求1所述的一种基于可信执行环境的数据库代理加密系统,其特征在于:所述加密组件运行于可信执行环境内部,使用加密执行环境内部密钥加密,定义可信执行环境内的主密钥为MasterKey;
该加密组件采用的加密流程为:
S10:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要加密,若判断结果为否,则不执行加密程序;若判断结果为是,则继续执行下一步;
S11:数据库代理的加密组件在可行执行环境内部随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再使用主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据;
S12:重复顺序执行步骤S11和步骤S12,直至完成所有数据的加密过程;
该加密组件采用的解密流程为:
S20:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要解密,若判断结果为否,则不执行解密程序;若判断结果为是,则继续执行下一步;
S21:数据库代理模块从数据库模块中读入加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用加密密钥EncKey解密密文Enc(m)得到原始数据;
S22:重复顺序执行步骤S21和步骤S22,直至完成所有数据的解密过程。
4.一种基于可信执行环境的数据库代理加密方法,应用于权利要求1所述的一种基于可信执行环境的数据库代理加密系统,其特征在于:所述加密组件运行于可信执行环境内部,使用密钥管理系统密钥作为主密钥,定义密钥管理系统主密钥为MasterKey;
该加密组件采用的加密流程为:
S30:数据库代理模块向密钥管理系统查询MasterKey;
S31:密钥管理系统检查查询请求是否合法,不合法则返回错误值,合法则返回MasterKey;
S32:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要加密,若判断结果为否,则不执行加密程序;若判断结果为是,则继续执行下一步;
S33:数据库代理的加密组件在可行执行环境内部随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再使用主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据;
S34:重复顺序执行步骤S32和步骤S33,直至完成所有数据的加密过程;
该加密组件采用的解密流程为:
S40:数据库代理模块向密钥管理系统查询MasterKey;
S41:密钥管理系统检查查询请求是否合法,不合法则返回错误值,合法则返回MasterKey;
S42:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要解密,若判断结果为否,则不执行解密程序;若判断结果为是,则继续执行下一步;
S43:数据库代理模块从数据库模块中读入加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用加密密钥EncKey解密密文Enc(m)得到原始数据;
S44:重复顺序执行步骤S42和步骤S43,直至完成所有数据的解密过程。
5.一种基于可信执行环境的数据库代理加密方法,应用于权利要求1所述的一种基于可信执行环境的数据库代理加密系统,其特征在于:所述加密组件不运行于可信执行环境内部,使用SE模块或者CPU安全模块存储主密钥MasterKey;
该加密组件采用的加密流程为:
S50:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要加密,若判断结果为否,则不执行加密程序;若判断结果为是,则继续执行下一步;
S51:数据库代理的加密组件随机生成加密密钥EncKey,使用EncKey加密单元数据,得到密文Enc(m),再使用SE模块或者CPU安全模块存储的主密钥MasterKey加密EncKey,得到密文Enc(k),拼接密文Enc(m)和密文Enc(k)形成最终加密数据;
S52:重复顺序执行步骤S51和步骤S52,直至完成所有数据的加密过程;
该加密组件采用的解密流程为:
S60:数据库代理模块解析业务服务器模块的SQL语句,判断某一行数据的某个单元数据是否需要解密,若判断结果为否,则不执行解密程序;若判断结果为是,则继续执行下一步;
S61:数据库代理模块从数据库模块中读入加密数据,并将加密数据按照打包格式拆分为密文Enc(m)和密文Enc(k),加密组件先使用SE模块或者CPU安全模块存储的主密钥MasterKey解密密文Enc(k)得到加密密钥EncKey,再使用加密密钥EncKey解密密文Enc(m)得到原始数据;
S62:重复顺序执行步骤S60和步骤S61,直至完成所有数据的解密过程。
6.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述程序时实现权利要求3或4或5所述的基于可信执行环境的数据库代理加密方法。
7.一种计算机可读存储介质,其上存储有计算机程序,其特征在于:该计算机程序被处理器执行时实现权利要求3或4或5所述的基于可信执行环境的数据库代理加密方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311037395.8A CN116975926A (zh) | 2023-08-16 | 2023-08-16 | 一种基于可信执行环境的数据库代理加密系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311037395.8A CN116975926A (zh) | 2023-08-16 | 2023-08-16 | 一种基于可信执行环境的数据库代理加密系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116975926A true CN116975926A (zh) | 2023-10-31 |
Family
ID=88479591
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311037395.8A Pending CN116975926A (zh) | 2023-08-16 | 2023-08-16 | 一种基于可信执行环境的数据库代理加密系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116975926A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992993A (zh) * | 2024-04-07 | 2024-05-07 | 蓝象智联(杭州)科技有限公司 | 基于可信执行环境的数据管控方法和系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500202A (zh) * | 2013-09-29 | 2014-01-08 | 中国船舶重工集团公司第七0九研究所 | 一种轻量级数据库的安全保护方法及系统 |
CN105812332A (zh) * | 2014-12-31 | 2016-07-27 | 北京握奇智能科技有限公司 | 数据保护方法 |
CN107370725A (zh) * | 2017-06-21 | 2017-11-21 | 西安电子科技大学 | 一种云环境下通用加密数据库的存取方法及系统 |
CN107925568A (zh) * | 2015-08-05 | 2018-04-17 | Kddi株式会社 | 管理装置、管理系统、密钥生成装置、密钥生成系统、密钥管理系统、车辆、管理方法、密钥生成方法以及计算机程序 |
CN111708755A (zh) * | 2020-05-20 | 2020-09-25 | 北京奇艺世纪科技有限公司 | 数据迁移方法、装置、系统、电子设备以及可读存储介质 |
CN113541935A (zh) * | 2021-06-08 | 2021-10-22 | 西安电子科技大学 | 一种支持密钥托管的加密云存储方法、系统、设备、终端 |
CN114143066A (zh) * | 2021-11-26 | 2022-03-04 | 国网四川省电力公司南充供电公司 | 一种基于代理隔离装置的内外网对接系统及方法 |
CN116150242A (zh) * | 2022-12-29 | 2023-05-23 | 成都卫士通信息产业股份有限公司 | 数据库透明加密与访问控制方法、装置及设备 |
-
2023
- 2023-08-16 CN CN202311037395.8A patent/CN116975926A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103500202A (zh) * | 2013-09-29 | 2014-01-08 | 中国船舶重工集团公司第七0九研究所 | 一种轻量级数据库的安全保护方法及系统 |
CN105812332A (zh) * | 2014-12-31 | 2016-07-27 | 北京握奇智能科技有限公司 | 数据保护方法 |
CN107925568A (zh) * | 2015-08-05 | 2018-04-17 | Kddi株式会社 | 管理装置、管理系统、密钥生成装置、密钥生成系统、密钥管理系统、车辆、管理方法、密钥生成方法以及计算机程序 |
CN107370725A (zh) * | 2017-06-21 | 2017-11-21 | 西安电子科技大学 | 一种云环境下通用加密数据库的存取方法及系统 |
CN111708755A (zh) * | 2020-05-20 | 2020-09-25 | 北京奇艺世纪科技有限公司 | 数据迁移方法、装置、系统、电子设备以及可读存储介质 |
CN113541935A (zh) * | 2021-06-08 | 2021-10-22 | 西安电子科技大学 | 一种支持密钥托管的加密云存储方法、系统、设备、终端 |
CN114143066A (zh) * | 2021-11-26 | 2022-03-04 | 国网四川省电力公司南充供电公司 | 一种基于代理隔离装置的内外网对接系统及方法 |
CN116150242A (zh) * | 2022-12-29 | 2023-05-23 | 成都卫士通信息产业股份有限公司 | 数据库透明加密与访问控制方法、装置及设备 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117992993A (zh) * | 2024-04-07 | 2024-05-07 | 蓝象智联(杭州)科技有限公司 | 基于可信执行环境的数据管控方法和系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8447983B1 (en) | Token exchange | |
US6839437B1 (en) | Method and apparatus for managing keys for cryptographic operations | |
US10659226B2 (en) | Data encryption method, decryption method, apparatus, and system | |
US11290446B2 (en) | Access to data stored in a cloud | |
CN104618096B (zh) | 保护密钥授权数据的方法、设备和tpm密钥管理中心 | |
CN103246850A (zh) | 文件处理方法和装置 | |
CN109271798A (zh) | 敏感数据处理方法及系统 | |
CN113849847B (zh) | 用于对敏感数据进行加密和解密的方法、设备和介质 | |
CN110889130A (zh) | 基于数据库的细粒度数据加密方法、系统及装置 | |
CN106992851A (zh) | 基于TrustZone的数据库文件口令加解密方法、装置及终端设备 | |
CN116975926A (zh) | 一种基于可信执行环境的数据库代理加密系统 | |
CN116436682A (zh) | 数据处理方法、装置及系统 | |
US10397193B2 (en) | Blind cloud data leak protection | |
CN113282959A (zh) | 业务数据处理方法、装置及电子设备 | |
CN106982193A (zh) | 一种预防批量注册的方法及装置 | |
KR20050099751A (ko) | 데이터베이스 보안 시스템 및 방법 | |
CN114679260B (zh) | 旁路审计兼容扩展主秘钥的加密数据方法、系统及终端 | |
CN112929169B (zh) | 秘钥协商方法及系统 | |
Mao et al. | Development of authentication protocols: Some misconceptions and a new approach | |
CN112995109B (zh) | 数据加密系统、方法、数据处理方法、装置及电子设备 | |
CN110889128A (zh) | 基于区块链存储与交换加密密钥的输入方法和装置 | |
Ulybyshev | Data Protection in Transit and at Rest with Leakage Detection | |
CN112910834B (zh) | 数据共享方法、装置、系统、设备及介质 | |
CN115208630B (zh) | 基于区块链的数据获取方法、系统及区块链系统 | |
EP4379581A1 (en) | Data processing method and apparatus, electronic device and storage medium |
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 |