CN111639348B - 数据库秘钥的管理方法及装置 - Google Patents

数据库秘钥的管理方法及装置 Download PDF

Info

Publication number
CN111639348B
CN111639348B CN202010404605.2A CN202010404605A CN111639348B CN 111639348 B CN111639348 B CN 111639348B CN 202010404605 A CN202010404605 A CN 202010404605A CN 111639348 B CN111639348 B CN 111639348B
Authority
CN
China
Prior art keywords
key
secret key
database
encryption
encrypted
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.)
Active
Application number
CN202010404605.2A
Other languages
English (en)
Other versions
CN111639348A (zh
Inventor
苗健
张龙
卢健
李鹏
范翊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Highgo Base Software Co ltd
Original Assignee
Highgo Base Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Highgo Base Software Co ltd filed Critical Highgo Base Software Co ltd
Priority to CN202010404605.2A priority Critical patent/CN111639348B/zh
Publication of CN111639348A publication Critical patent/CN111639348A/zh
Application granted granted Critical
Publication of CN111639348B publication Critical patent/CN111639348B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage

Abstract

本发明提出了一种数据库秘钥的管理方法及装置,管理方法包括:输入口令参数对数据库进行初始化,在所述数据库初始化的过程中,随机生成明文秘钥;随机生成盐值,采用SHA算法对所述口令参数和所述盐值进行处理,以生成秘钥加密秘钥;通过封装算法采用所述秘钥加密秘钥对所述明文秘钥和所述秘钥加密秘钥KEK进行封装处理,得到加密后秘钥并存储。根据本发明的数据库秘钥的管理方法,采用SHA算法对口令参数和盐值进行处理生成秘钥加密秘钥,并通过封装算法采用秘钥加密秘钥对明文秘钥进行封装处理,得到加密后秘钥。由此,有效提高了数据库秘钥的安全性。而且,本申请的管理方法,不需要绑定其他外部硬件设备,降低了数据库秘钥的管理成本。

Description

数据库秘钥的管理方法及装置
技术领域
本发明涉及数据安全技术领域,尤其涉及一种数据库秘钥的管理方法及装置。
背景技术
密钥,即密匙,一般泛指生产、生活所应用到的各种加密技术,能够对个人资料、企业机密进行有效的监管,密钥管理就是指对密钥进行管理的行为,如加密、解密、破解等等。
目前针对数据库的加密产品的密钥:
一部分产品是直接写在数据库中,作为表中的一部分数据,在进行使用时,直接从表中查找密钥数据,通过查找出的密钥,用目前的加密算法进行数据的加密或者解密。这样实现起来比较简单,而且存储数据和使用数据也非常简单,但是这样不能保证密钥的安全性,用户可以通过数据库表的数据获取密钥,从而通过密钥可以解密加密的数据。这样会导致用户的丢失,从而发生生产事故。
一部分产品是通过绑定硬件加密设备,比如密码卡,密码机等外置加密设备,关于加密和密钥的管理都放到加密设备中进行,这样的好处对密钥的管理更为的安全。但是这样的弊端也很明显。如果使用密码算法和密钥对数据进行加解密处理,必须强制的安装外置的密码设备和驱动,有些密码设备对硬件接口也有要求,所以在硬件要求上更为严格,无法做到随时随地的使用,也会增加采购设备的成本。而且如果加密设备损坏,则会导致加密设备中的数据损坏,从而导致加密密钥无法读取,或者被破坏的情况,这样会导致整个系统的加密数据,因为无法读取到密钥而无法进行解密,这样数据就无法使用,从而使整个系统崩溃,导致系统无法使用,这样就增加了系统的耦合性和偶然性。
发明内容
本发明要解决的技术问题是如何提高数据库秘钥的安全性,本发明提出了一种数据库秘钥的管理方法及装置。
根据本发明实施例的数据库秘钥的管理方法,包括:
输入口令参数对数据库进行初始化,在所述数据库初始化的过程中,随机生成明文秘钥;
随机生成盐值,采用SHA算法对所述口令参数和所述盐值进行处理,以生成秘钥加密秘钥;
通过封装算法采用所述秘钥加密秘钥对所述明文秘钥和所述秘钥加密秘钥KEK进行封装处理,得到加密后秘钥并存储。
根据本发明实施例的数据库秘钥的管理方法,采用SHA算法对口令参数和盐值进行处理生成秘钥加密秘钥,并通过封装算法采用秘钥加密秘钥对明文秘钥进行封装处理,得到加密后秘钥。由此,有效提高了数据库秘钥的安全性。而且,本申请的管理方法,不需要绑定其他外部硬件设备,降低了数据库秘钥的管理成本。
根据本发明的一些实施例,在通过加密算法采用所述秘钥加密秘钥对所述明文秘钥和所述秘钥加密秘钥进行封装处理,得到加密后秘钥的同时,生成校验值并存储。
在本发明的一些实施例中,所述加密后秘钥和所述校验值存储在所述数据库的目录下的预设文件中,所述预设文件以二进制的形式存在。
根据本发明的一些实施例,在生成和存储所述加密后秘钥后,所述方法还包括:
启动数据库,并从所述预设文件中获取所述加密后秘钥和所述校验值;
基于所述加密秘钥,通过解封函数对所述加密后秘钥进行解封,得到解封秘钥;
采用所述校验值对所述解封秘钥进行验证,验证通过时,采用所述解封秘钥进行数据加密。
在本发明的一些实施例中,在对所述数据库进行初始化之前,还包括:输入加密算法参数,在所述数据库初始化过程中,基于所述加密算法参数生成对应类型的明文秘钥。
根据本发明实施例的数据库秘钥的管理装置,包括:
明文秘钥生成模块,用于输入口令参数对数据库进行初始化,在所述数据库初始化的过程中,随机生成明文秘钥;
加密模块,用于随机生成盐值,采用SHA算法对所述口令参数和所述盐值进行处理,以生成秘钥加密秘钥;
封装模块,用于通过封装算法采用所述秘钥加密秘钥对所述明文秘钥和所述秘钥加密秘钥进行封装处理,得到加密后秘钥并存储。
根据本发明实施例的数据库秘钥的管理装置,加密模块采用SHA算法对口令参数和盐值进行处理生成秘钥加密秘钥,封装模块通过封装算法采用秘钥加密秘钥对明文秘钥进行封装处理,得到加密后秘钥。由此,有效提高了数据库秘钥的安全性。而且,本申请的管理方法,不需要绑定其他外部硬件设备,降低了数据库秘钥的管理成本。
根据本发明的一些实施例,所述封装模块在通过加密算法采用所述秘钥加密秘钥对所述明文秘钥和所述秘钥加密秘钥KEK进行封装处理,得到加密后秘钥的同时,生成校验值并存储。
在本发明的一些实施例中,所述装置还包括:
存储模块,用于将所述加密后秘钥和所述校验值存储在所述数据库的目录下的预设文件中,所述预设文件以二进制的形式存在。
根据本发明的一些实施例,所述装置还包括:
获取模块,用于在生成和存储所述加密后秘钥后,启动数据库时,从所述预设文件中获取所述加密后秘钥和所述校验值;
解封模块,用于基于所述加密秘钥,通过解封函数对所述加密后秘钥进行解封,得到解封秘钥;
验证加密模块,用于采用所述校验值对所述解封秘钥进行验证,验证通过时,采用所述解封秘钥进行数据加密。
在本发明的一些实施例中,所述明文秘钥模块还用于:输入加密算法参数,在所述数据库初始化过程中,所述明文秘钥模块基于所述加密算法参数生成对应类型的明文秘钥。
附图说明
图1为根据本发明实施例的数据库秘钥的管理方法流程图;
图2为根据本发明实施例的数据库秘钥的管理方法示意图;
图3为根据本发明实施例的数据库秘钥的使用方法流程图;
图4为根据本发明实施例的数据库秘钥的使用方法示意图;
图5为根据本发明实施例的数据库初始化时,多密钥生成的方法示意图。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
相关技术中,对于密钥的操作主要分为一下的几步:
1、密钥生成
密钥长度应该足够长。一般来说,密钥长度越大,对应的密钥空间就越大,攻击者使用穷举猜测密码的难度就越大。
选择好密钥,避免弱密钥。由自动处理设备生成的随机的比特串是好密钥,选择密钥时,应该避免选择一个弱密钥。
对公钥密码体制来说,密钥生成更加困难,因为密钥必须满足某些数学特征。
密钥生成可以通过在线或离线的交互协商方式实现,如密码协议等。
2、密钥分发
采用对称加密算法进行保密通信,需要共享同一密钥。通常是系统中的一个成员先选择一个秘密密钥,然后将它传送另一个成员或别的成员。X9.17标准描述了两种密钥:密钥加密密钥和数据密钥。密钥加密密钥加密其它需要分发的密钥;而数据密钥只对信息流进行加密。密钥加密密钥一般通过手工分发。为增强保密性,也可以将密钥分成许多不同的部分然后用不同的信道发送出去。
3、验证密钥
密钥附着一些检错和纠错位来传输,当密钥在传输中发生错误时,能很容易地被检查出来,并且如果需要,密钥可被重传。
接收端也可以验证接收的密钥是否正确。发送方用密钥加密一个常量,然后把密文的前2-4字节与密钥一起发送。在接收端,做同样的工作,如果接收端解密后的常数能与发端常数匹配,则传输无错。
4、更新密钥
当密钥需要频繁的改变时,频繁进行新的密钥分发的确是困难的事,一种更容易的解决办法是从旧的密钥中产生新的密钥,有时称为密钥更新。可以使用单向函数进行更新密钥。如果双方共享同一密钥,并用同一个单向函数进行操作,就会得到相同的结果。
5、密钥存储
密钥可以存储在脑子、磁条卡、智能卡中。也可以把密钥平分成两部分,一半存入终端一半存入ROM密钥。还可采用类似于密钥加密密钥的方法对难以记忆的密钥进行加密保存。
6、备份密钥
密钥的备份可以采用密钥托管、秘密分割、秘密共享等方式。
最简单的方法,是使用密钥托管中心。密钥托管要求所有用户将自己的密钥交给密钥托管中心,由密钥托管中心备份保管密钥(如锁在某个地方的保险柜里或用主密钥对它们进行加密保存),一旦用户的密钥丢失(如用户遗忘了密钥或用户意外死亡),按照一定的规章制度,可从密钥托管中心索取该用户的密钥。另一个备份方案是用智能卡作为临时密钥托管。如Alice把密钥存入智能卡,当Alice不在时就把它交给Bob,Bob可以利用该卡进行Alice的工作,当Alice回来后,Bob交还该卡,由于密钥存放在卡中,所以Bob不知道密钥是什么。
秘密分割把秘密分割成许多碎片,每一片本身并不代表什么,但把这些碎片放到一块,秘密就会重现出来。
一个更好的方法是采用一种秘密共享协议。将密钥K分成n块,每部分叫做它的“影子”,知道任意m个或更多的块就能够计算出密钥K,知道任意m-1个或更少的块都不能够计算出密钥K,这叫做(m,n)门限(阈值)方案。目前,人们基于拉格朗日内插多项式法、射影几何、线性代数、孙子定理等提出了许多秘密共享方案。
拉格朗日插值多项式方案是一种易于理解的秘密共享(m,n)门限方案。
秘密共享解决了两个问题:一是若密钥偶然或有意地被暴露,整个系统就易受攻击;二是若密钥丢失或损坏,系统中的所有信息就不能用了。
7、密钥有效期
加密密钥不能无限期使用,有以下有几个原因:密钥使用时间越长,它泄露的机会就越大;如果密钥已泄露,那么密钥使用越久,损失就越大;密钥使用越久,人们花费精力破译它的诱惑力就越大——甚至采用穷举攻击法;对用同一密钥加密的多个密文进行密码分析一般比较容易。
8、不同密钥应有不同有效期
数据密钥的有效期主要依赖数据的价值和给定时间里加密数据的数量。价值与数据传送率越大所用的密钥更换越频繁。
密钥加密密钥无需频繁更换,因为它们只是偶尔地用作密钥交换。在某些应用中,密钥加密密钥仅一月或一年更换一次。
用来加密保存数据文件的加密密钥不能经常地变换。通常是每个文件用唯一的密钥加密,然后再用密钥加密密钥把所有密钥加密,密钥加密密钥要么被记忆下来,要么保存在一个安全地点。当然,丢失该密钥意味着丢失所有的文件加密密钥。
公开密钥密码应用中的私钥的有效期是根据应用的不同而变化的。用作数字签名和身份识别的私钥必须持续数年(甚至终身),用作抛掷硬币协议的私钥在协议完成之后就应该立即销毁。即使期望密钥的安全性持续终身,两年更换一次密钥也是要考虑的。旧密钥仍需保密,以防用户需要验证从前的签名。但是新密钥将用作新文件签名,以减少密码分析者所能攻击的签名文件数目。
9、销毁密钥
如果密钥必须替换,旧钥就必须销毁,密钥必须物理地销毁。
相关技术中,针对数据库的加密产品的秘钥,将秘钥直接写在数据库的方案存在安全性低的缺陷;而采用将秘钥绑定硬件加密设备的方案,需强制安装外置的密码设备和驱动,增加了成本,而且,在设备损坏时,导致无法读取秘钥而无法解密的问题。
针对上述问题,本发明提出了一种数据库秘钥的管理方法及装置,结合图1和图2所示,根据本发明实施例的数据库秘钥的管理方法,包括:
S100,输入口令参数对数据库进行初始化,在数据库初始化的过程中,随机生成明文秘钥;
S200,随机生成盐值,采用SHA算法对口令参数和盐值进行处理,以生成秘钥加密秘钥;
S300,通过封装算法采用秘钥加密秘钥对明文秘钥和秘钥加密秘钥进行封装处理,得到加密后秘钥并存储。
根据本发明实施例的数据库秘钥的管理方法,采用SHA算法对口令参数和盐值进行处理生成秘钥加密秘钥,并通过封装算法采用秘钥加密秘钥对明文秘钥进行封装处理,得到加密后秘钥。由此,有效提高了数据库秘钥的安全性。而且,本申请的管理方法,不需要绑定其他外部硬件设备,降低了数据库秘钥的管理成本。
根据本发明的一些实施例,如图2所示,在通过加密算法采用秘钥加密秘钥对明文秘钥和秘钥加密秘钥进行封装处理,得到加密后秘钥的同时,生成校验值并存储。
需要说明的是,在对数据库中的数据进行加密时,需对加密后秘钥进行解封装处理以得到解密后秘钥,通过校验值可以对解密后秘钥进行验证,从而提高了数据库秘钥的安全性。
在本发明的一些实施例中,加密后秘钥和校验值存储在数据库的目录下的预设文件中,预设文件以二进制的形式存在。
例如,可以将加密后秘钥和校验值存储在数据库目录下的PG_CONTROL文件中。需要说明的是,这个文件以二进制的形式存在,并且对于数据库来说是不可读的,只有在数据库启动的过程中,将其读入到内存中。这个文件也不可以通过数据库本身的语句进行查看等操作,这样就防止了加密密钥的丢失的可能性,即使存储密钥的文件丢失了,由于里面存储的是加密后的密钥,也无法使用。
根据本发明的一些实施例,结合图3和图4所示,在生成和存储加密后秘钥后,方法还包括:
A100,启动数据库,并从预设文件中获取加密后秘钥和校验值;
A200,基于加密秘钥,通过解封函数对加密后秘钥进行解封,得到解封秘钥;
A300,采用校验值对解封秘钥进行验证,验证通过时,采用解封秘钥进行数据加密。
在本发明的一些实施例中,在对数据库进行初始化之前,还包括:输入加密算法参数,在数据库初始化过程中,基于加密算法参数生成对应类型的明文秘钥。
需要说明的是,在数据库中,密钥的使用主要应用在用户数据加密这个功能上,而对于用户的数据,由多种多样的数据,不同的数据存储在不同的目录下,而为了保证不同数据的不同的安全性的需求,可以在不同的数据类型下,使用不同的对称加密算法,比如AES,3DES,国密SM4等,而对于不同的加密算法,对于密钥的长度需求也是不同的,比如AES算法就包括128,256,512等密钥长度不同的情况。而加密算法的不同,密钥长度的不同,都会导致加解密效率的不同,密钥越短则表示安全性越低,而加解密的效率会越高,该类秘钥就可以用来加密数据量大而又不那么重要的日志文件等。密钥越长,表示则表示安全性越高,而加解密的效率也会越低,这种秘钥可以用来加密数据安全要求比较高的数据,比如用户的身份证号这种信息。对于不同类型的密钥,密钥管理系统也可以通过在初始化数据时,使用不同的初始化参数,从而生成不同的密钥和密钥长,以满足不同情况下,算法和密钥的使用。
不用长度的密钥生成可以通过在初始化是指定特定的算法来自动实现,比如SM4,只能允许128位的密钥的存在,所以在生成密钥时,根据算法自动生成128位的密钥,以供SM4算法使用。
根据本发明实施例的数据库秘钥的管理装置,包括:明文秘钥生成模块、加密模块和封装模块。
其中,明文秘钥生成模块用于输入口令参数对数据库进行初始化,在数据库初始化的过程中,随机生成明文秘钥;
加密模块用于随机生成盐值,采用SHA算法对口令参数和盐值进行处理,以生成秘钥加密秘钥;
封装模块用于通过封装算法采用秘钥加密秘钥对明文秘钥和秘钥加密秘钥进行封装处理,得到加密后秘钥并存储。
根据本发明实施例的数据库秘钥的管理装置,加密模块采用SHA算法对口令参数和盐值进行处理生成秘钥加密秘钥,封装模块通过封装算法采用秘钥加密秘钥对明文秘钥进行封装处理,得到加密后秘钥。由此,有效提高了数据库秘钥的安全性。而且,本申请的管理方法,不需要绑定其他外部硬件设备,降低了数据库秘钥的管理成本。
根据本发明的一些实施例,封装模块在通过加密算法采用秘钥加密秘钥对明文秘钥和秘钥加密秘钥进行封装处理,得到加密后秘钥的同时,生成校验值并存储。
需要说明的是,在对数据库中的数据进行加密时,需对加密后秘钥进行解封装处理以得到解密后秘钥,通过校验值可以对解密后秘钥进行验证,从而提高了数据库秘钥的安全性。
在本发明的一些实施例中,装置还包括:存储模块。存储模块用于将加密后秘钥和校验值存储在数据库的目录下的预设文件中,预设文件以二进制的形式存在。例如,存储模块可以将加密后秘钥和校验值存储在数据库目录下的PG_CONTROL文件中。
根据本发明的一些实施例,装置还包括:获取模块、解封模块以及验证加密模块。
其中,获取模块用于在生成和存储加密后秘钥后,启动数据库时,从预设文件中获取加密后秘钥和校验值;
解封模块用于基于加密秘钥,通过解封函数对加密后秘钥进行解封,得到解封秘钥;
验证加密模块用于采用校验值对解封秘钥进行验证,验证通过时,采用解封秘钥进行数据加密。
在本发明的一些实施例中,明文秘钥模块还用于:输入加密算法参数,在数据库初始化过程中,所述明文秘钥模块基于加密算法参数生成对应类型的明文秘钥。由此,可以根据待加密数据的类型选择相应的加密算法生成合理的秘钥。
下面参照附图以一个具体的实施例详细描述根据本发明的数据库秘钥的管理方法。值得理解的是,下述描述仅是示例性描述,而不是对本发明的具体限制。
本发明提出的数据库秘钥的管理方法不需增加额外的硬件的设备。可以理解的是,增加额外的设备就会增加额外的成本和额外的IO,在数据库这种保存用户数据的系统上,是无法通过外部额外硬件保证数据完整性的。所以,本发明是在本身数据库系统下增加密钥管理。而且密钥是必须以密文的形式存储,且密钥不能很容易的获取。
结合图1和图2所示,对于生成密钥的过程:
首先,用户在进行初始化数据库时,需要输入相应的口令参数,这个口令就类似于手机端的解锁密码,作为初始化口令phrase,这个口令可以在后续的密钥生成过程中起到作用。
进一步地,在数据库进行初始化的过程中,会随机生成一个明文密钥,这个密钥会通过系统本身的接口函数,通过计算本身机器的参数,生成一个16字节长度的随机数KEY,这个随机数就是以后在数据解密过程中使用的密钥,但是,这样的一个明文密钥是不能以明文的形式,存储在数据库的数据目录或者磁盘中的,如果以明文的方式存储,则会引发安全问题,所以需要对这个密钥以某种方式进行加密,这就是下一步需要做的,对这个密钥进行封装,使其不以明文的形式存储。
进一步的,需要对上一步的明文密钥,即KEY进行封装,这一步中,需要一个对密钥封装的一个额外的值,也称密钥加密密钥,即KEK(Key Encryption Key),那么这个密钥加密密钥,是通过一个系统生成的随机值,也成盐值,即salt,在前面用户输入的口令和这个盐值,通过sha512的算法,生成一个散列值,这个散列值,就是密钥加密密钥。
进一步的,在上面由系统生成的KEY中,需要进行封装,通过上面生成的KEK,通过函数,对KEK和KEY进行处理,这时候,生成真正的存储在磁盘中的加密后的密钥,即ENCKEY,生成这个ENCKEY的同时,会生成一个校验值MACKEY,这个MACKEY会和ENCKEY成对出现,会作为这个加密后密钥的校验值,以判断当前的密钥是否是正确的密钥。
进一步,这个加密后密钥和校验值需要存储在物理存储中,将其放在数据库的目录下的PG_CONTROL文件中,这个文件以二进制的形式存在,并且对于数据库来说是不可读的,只有在数据库启动的过程中,将其读入到内存中。这个文件也不可以通过数据库本身的语句进行查看等操作,这样就防止了加密密钥的丢失的可能性,即使存储密钥的文件丢失了,由于里面存储的是加密后的密钥,也无法使用。
结合图3和图4所示,对于使用密钥的过程:
首先,在数据库中启动过程中,会读取当前的PG_CONTROL文件,通过读取这个文件中的解密后密钥和校验值,将其读入内存,这个加密后的密钥是无法直接使用的,需要进行解封装。
进一步,需要通过在产生密钥的步骤中生成的KEK通过解封函数,对当前的加密后的密钥进行解封装,这时候,生成了真正的未加密的密钥KEY,这个KEY是不进行写磁盘的,所以这个不会存储在磁盘中,用户是无法知道这个真正的密钥的值的。
以上就是密钥管理在数据中真正的实现过程。
具体地,本发明提出了一种数据库初始化数据库目录,产生加密密钥的方法,如图2所示,包括以下步骤:
在进行初始化之前,确定好数据目录所在的位置,执行初始化的命令。
步骤101:用户执行初始化操作,加入相应的口令参数;
步骤102:系统生成随机数盐值salt;
步骤103:将步骤102生成的盐值和口令进行处理,生成密钥加密密钥KEK;
步骤104:系统生成明文密钥KEY;
步骤105:密钥封装函数通过KEK和KEY生成解密后密钥ENCKEY。
如图4所示,本发明还提出了在数据库启动时,系统进行加密后密钥的处理,再进行数据加密的过程,包括以下步骤:
步骤201:数据库启动,读取加密后密钥ENCKEY和校验值MACKEY的存储文件,将解密后密钥读取到内存;
步骤202:读取加密后密钥的存储文件,将解密后密钥读取到内存;
步骤203:通过KEK和解封函数对ENCKEY进行解封装操作;
步骤204:通过MACKEY对解封装的密钥进行校验正确性。
步骤205:生成真正的密钥KEY。
步骤206:对用户数据进行加密。
如图5所示,本发明还提出了在数据库初始化时,多密钥生成的过程,包括以下步骤:在数据库启动后,
步骤301:输入需要的加密算法参数,AES-128,AES-256,SM4等;
步骤302:系统判断是否支持当前的加密算法;
步骤303:对加密算法的密钥长度进行计算;
步骤304:根据步骤一的过程生成密钥;
步骤305:将密钥分别生成在二进制文件里。
综上所述,本发明提出的数据库秘钥的管理方法,不需要绑定其他外部硬件设备,降低了数据库秘钥的管理成本。本发明采用SHA算法对口令参数和盐值进行处理生成秘钥加密秘钥,并通过封装算法采用秘钥加密秘钥对明文秘钥进行封装处理,得到加密后秘钥。由此,有效提高了数据库秘钥的安全性。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。

Claims (6)

1.一种数据库秘钥的管理方法,其特征在于,包括:
输入口令参数对数据库进行初始化,在所述数据库初始化的过程中,随机生成明文秘钥;
随机生成盐值,采用SHA算法对所述口令参数和所述盐值进行处理,以生成秘钥加密秘钥;
通过封装算法采用所述秘钥加密秘钥对所述明文秘钥和所述秘钥加密秘钥进行封装处理,得到加密后秘钥,并生成校验值,所述加密后秘钥和所述校验值存储在所述数据库的目录下的预设文件中;
所述方法还包括:
启动数据库,并从所述预设文件中获取所述加密后秘钥和所述校验值;
基于所述加密秘钥,通过解封函数对所述加密后秘钥进行解封,得到解封秘钥;
采用所述校验值对所述解封秘钥进行验证,验证通过时,采用所述解封秘钥进行数据加密。
2.根据权利要求1所述的数据库秘钥的管理方法,其特征在于,所述预设文件以二进制的形式存在。
3.根据权利要求1或2所述的数据库秘钥的管理方法,其特征在于,在对所述数据库进行初始化之前,还包括:输入加密算法参数,在所述数据库初始化过程中,基于所述加密算法参数生成对应类型的明文秘钥。
4.一种数据库秘钥的管理装置,其特征在于,包括:
明文秘钥生成模块,用于输入口令参数对数据库进行初始化,在所述数据库初始化的过程中,随机生成明文秘钥;
加密模块,用于随机生成盐值,采用SHA算法对所述口令参数和所述盐值进行处理,以生成秘钥加密秘钥;
封装模块,用于通过封装算法采用所述秘钥加密秘钥对所述明文秘钥和所述秘钥加密秘钥进行封装处理,得到加密后秘钥,并生成校验值;
存储模块,用于将所述加密后秘钥和所述校验值存储在所述数据库的目录下的预设文件中;
获取模块,用于在生成和存储所述加密后秘钥后,启动数据库时,从所述预设文件中获取所述加密后秘钥和所述校验值;
解封模块,用于基于所述加密秘钥,通过解封函数对所述加密后秘钥进行解封,得到解封秘钥;
验证加密模块,用于采用所述校验值对所述解封秘钥进行验证,验证通过时,采用所述解封秘钥进行数据加密。
5.根据权利要求4所述的数据库秘钥的管理装置,其特征在于,所述预设文件以二进制的形式存在。
6.根据权利要求4或5所述的数据库秘钥的管理装置,其特征在于,所述明文秘钥生成模块还用于:输入加密算法参数,在所述数据库初始化过程中,所述明文秘钥生成模块基于所述加密算法参数生成对应类型的明文秘钥。
CN202010404605.2A 2020-05-14 2020-05-14 数据库秘钥的管理方法及装置 Active CN111639348B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010404605.2A CN111639348B (zh) 2020-05-14 2020-05-14 数据库秘钥的管理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010404605.2A CN111639348B (zh) 2020-05-14 2020-05-14 数据库秘钥的管理方法及装置

Publications (2)

Publication Number Publication Date
CN111639348A CN111639348A (zh) 2020-09-08
CN111639348B true CN111639348B (zh) 2022-12-16

Family

ID=72330195

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010404605.2A Active CN111639348B (zh) 2020-05-14 2020-05-14 数据库秘钥的管理方法及装置

Country Status (1)

Country Link
CN (1) CN111639348B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112838928A (zh) * 2021-02-05 2021-05-25 安徽华典大数据科技有限公司 一种基于数据库的量子秘钥管理方法
CN113517981B (zh) * 2021-04-28 2023-05-23 河南中烟工业有限责任公司 一种密钥管理方法、代码版本的管理方法及装置
CN114003922B (zh) * 2021-09-18 2023-03-21 中国电子科技集团公司第二十九研究所 一种基于PowerPc与可拆卸存储设备的加载数据加解密方法
CN117134914B (zh) * 2023-10-26 2024-01-30 山东山大鸥玛软件股份有限公司 一种基于硬件特征的一次一密的随机秘钥流式加密算法及系统
CN117375804B (zh) * 2023-12-05 2024-02-23 飞腾信息技术有限公司 一种密钥派生方法、相关设备及存储介质

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9158933B2 (en) * 2007-08-17 2015-10-13 Sybase, Inc. Protection of encryption keys in a database
CN107959676B (zh) * 2017-11-27 2019-11-19 杭州云象网络技术有限公司 一种支持区块链技术加密体系的数据节点热插拔方法
CN108062481B (zh) * 2017-12-29 2021-06-29 浙江万里学院 一种物流信息的智能加密方法
CN110245513A (zh) * 2019-06-24 2019-09-17 长沙曙通信息科技有限公司 一种数据库加密设计

Also Published As

Publication number Publication date
CN111639348A (zh) 2020-09-08

Similar Documents

Publication Publication Date Title
CN111639348B (zh) 数据库秘钥的管理方法及装置
US6049612A (en) File encryption method and system
US7571320B2 (en) Circuit and method for providing secure communications between devices
US9209969B2 (en) System and method of per-packet keying
EP3082356A1 (en) Method to check and prove the authenticity of an ephemeral public key
CN108768963B (zh) 可信应用与安全元件的通信方法和系统
US20110041046A1 (en) Apparatus and method for protecting rfid data
CA2373787C (en) Self authentication ciphertext chaining
CN111614621B (zh) 物联网通信方法和系统
CN111294203B (zh) 信息传输方法
CN111970114B (zh) 文件加密方法、系统、服务器和存储介质
US20230006823A1 (en) Method and apparatus for cryptographically aligning and binding a secure element with a host device
CN113472793A (zh) 一种基于硬件密码设备的个人数据保护系统
US6904150B1 (en) Cryptographic method and system for double encryption of messages
CN114186249A (zh) 一种计算机文件安全加密方法、解密方法和可读存储介质
US20060253577A1 (en) Method, system and computer program for the secured management of network devices
CN113591109B (zh) 可信执行环境与云端通信的方法及系统
CN114679299B (zh) 通信协议加密方法、装置、计算机设备和存储介质
US7415110B1 (en) Method and apparatus for the generation of cryptographic keys
CN112787996B (zh) 一种密码设备管理方法及系统
CN114297673A (zh) 一种口令验证方法、固态硬盘和上位机
CN112565206A (zh) 一种充电桩信息安全防护方法及防护系统
US20050108528A1 (en) Computer network and method for transmitting and authenticating data in the computer network
US20050005077A1 (en) Method, data processing device, and loading device for loading data into a memory with complete memory occupancy
CN115549910B (zh) 一种数据传输方法、设备以及存储介质

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
GR01 Patent grant
GR01 Patent grant