一种基于密码机设备的MySQL透明数据加密方法和装置制造方法及图纸

技术编号:33531304 阅读:14 留言:0更新日期:2022-05-19 02:02
本发明专利技术实施例公开了一种基于密码机设备的MySQL透明数据加解密方法和装置,所述方法包括:根据支持国产SM4密码算法的密码机设备的接口函数特征,将MySQL中与加解密相关的语句和函数修改为调用国产SM4密码算法的语句和函数;配置支持国产SM4密码算法的密码机设备的相关文件,所述相关文件包括头文件,配置文件和动态链接库文件;修改MySQL中的CMakeLists文件;调用支持国产SM4密码算法的密码机设备中的国产SM4密码算法,并通过外部安全模块生成的加解密的密钥以实现MySQL透明数据加解密。所述方法和装置实现了主流数据库加密算法的国产化,提高了数据库读写效率,实现了针对业务的即时部署,且本发明专利技术针对MySQL数据库原始数据库修改少,有较好的向前兼容性。性。性。

【技术实现步骤摘要】
一种基于密码机设备的MySQL透明数据加密方法和装置


[0001]本专利技术涉及透明数据加解密领域,尤其是一种基于密码机设备的MySQL透明数据加密方法和装置。

技术介绍

[0002]随着信息时代的发展,数据量呈指数级的增长,数据库是管理数据十分成熟的方法,因此也被应用到了越来越多的领域。但是,随着数据安全、隐私保护相关问题的出现,数据的安全应用成为了人们越来越关注的问题。一般情况下,数据库管理的数据均为明文存储于硬件磁盘,因而会存在一定的安全漏洞,即如果数据库的硬件磁盘被窃取,那么就会造成数据泄露的问题。因此,一些主流的数据库均提供了透明数据加解密方法,以此保证数据在物理设备上的安全存储。
[0003]透明数据加密是通过将数据库中明文存储的信息进行加密,之后将产生的密文存入到物理磁盘中,以保证数据不被通过物理窃取的方式而泄露;同时会对加密使用的密钥进行管理。整个透明数据加密过程对用户透明,即用户只需选择是否使用透明数据加密功能即可,而无需进行加密算法的选择、加密使用密钥的生成等操作。
[0004]但是,主流数据库使用的数据保护加解密算法普遍非国密算法,由此在算法安全性问题上存在可信问题;以MySQL实现的透明数据加密方法为例,在使用MySQL透明数据加密的功能时,只能使用默认的AES算法进行加密,而针对某些透明数据加密的应用场景,其需要使用国产加密算法进行操作。同时某些应用场景对透明数据加密的性能有相应的需求——因为在引入透明数据加密之后,由于多了加密这一操作,会导致数据库的读写性能会有所下降。而基于软件实现的透明数据加密普遍存在性能较差的问题,从而给其应用带来一定的限制。

技术实现思路

[0005]为了解决现有技术中主流数据库使用的数据保护加密算法普遍非国密算法带来的算法安全与可信问题,以及现有加密算法导致的数据库的读写性能下降的问题,提出了本专利技术。本专利技术的实施例提供了一种基于密码机设备的MySQL透明数据加解密方法和装置。
[0006]根据本专利技术实施例的一个方面,提供了一种基于密码机设备的MySQL透明数据加解密方法,所述方法包括:
[0007]根据支持国产SM4密码算法的密码机设备的接口函数特征,将MySQL中与加解密相关的语句和函数修改为调用国产SM4密码算法的语句和函数;
[0008]配置支持国产SM4密码算法的密码机设备的相关文件,所述相关文件包括头文件,配置文件和动态链接库文件;
[0009]修改MySQL中的CMakeLists文件;
[0010]调用支持国产SM4密码算法的密码机设备中的国产SM4密码算法,并通过外部安全模块生成的加解密的密钥以实现MySQL透明数据加解密。
[0011]可选地,在本专利技术上述各方法实施例中,根据支持国产SM4密码算法的密码机设备的接口函数特征,将MySQL中与加解密相关的语句和函数修改为调用国产SM4密码算法的语句和函数包括:
[0012]将MySQL透明数据加解密使用AES密码算法修改为使用国产SM4密码算法,具体地,针对涉及透明数据加解密密码算法调用的.cc文件row0quiesce.cc、row0import.cc、os0file.cc、fsp0fsp.cc、my_default.cc,将所述文件中的my_aes_encrypt()替换为my_SM4_encrypt()和my_SM4_encrypt_tablespace(),将my_aes_decrypt()替换为my_SM4_decrypt()和my_SM4_decrypt_tablespace(),其中my_SM4_encrypt()与my_SM4_encrypt_tablespace()分别为调用密码机设备实现的加密表密钥和加密表空间的国产SM4密码算法;my_SM4_decrypt()与my_SM4_decrypt_tablespace()分别为调用密码机设备实现的解密表密钥和解密表空间的国产SM4密码算法;将fil0fil.cc中MySQL原本的生成密钥的函数Encryption::random_value替换为tablespace_key_gen()用于密钥生成。
[0013]可选地,在本专利技术上述各方法实施例中,配置支持国产SM4密码算法的密码机设备的相关文件包括:
[0014]在声明密码算法的头文件my_aes.h中添加my_SM4_encrypt()、my_SM4_encrypt_tablespace()与my_SM4_decrypt()、my_SM4_decrypt_tablespace()与tablespace_key_gen()的函数名;
[0015]添加密码机设备的头文件fm_cpc_pub.h和fm_def.h至/include目录下;
[0016]添加密码机设备的配置文件FMDevice.conf和FMDevice_key.conf至/etc目录下,并正确配置IP、链接数目和日志存储路径;
[0017]添加动态链接库文件libfmapiv100.so至mysys_ssl/usr/lib目录下。
[0018]可选地,在本专利技术上述各方法实施例中,修改MySQL中的CMakeLists文件包括:
[0019]修改mysys_ssl目录下的CMakeLists文件,添加target_link_libraries指令,其中,所述指令调用的动态链接库文件为mysys_ssl/usr/lib/目录下的libfmapiv100.so。
[0020]可选地,在本专利技术上述各方法实施例中,调用支持国产SM4密码算法的密码机设备中的国产SM4密码算法,并通过外部安全模块生成的加解密的密钥以实现MySQL透明数据加解密包括:
[0021]打开支持国产SM4密码算法的密码机设备,得到支持国产SM4密码算法的密码机设备的句柄handle;
[0022]基于句柄handle,调用支持国产SM4密码算法的密码机设备采用国产SM4密码算法进行加解密的接口以传入与my_SM4_encrypt()、my_SM4_encrypt_tablespace()和my_SM4_decrypt()、my_SM4_decrypt_tablespace()相关的参数,所述与my_SM4_encrypt()、my_SM4_encrypt_tablespace()和my_SM4_decrypt()、my_SM4_decrypt_tablespace()相关的参数包括加解密数据、密钥、加密模式、加解密输出缓冲区在内的相关参数,其中,my_SM4_encrypt()、my_SM4_encrypt_tablespace()为加密表密钥和加密表空间的加密算法,实现时需传入加密有关参数,my_SM4_decrypt()、my_SM4_decrypt_tablespace()为解密表密钥和解密表空间的解密算法,实现时传入解密有关参数;
[0023]将与my_SM4_encrypt()、my_SM4_encrypt_本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于密码机设备的MySQL透明数据加解密方法,其特征在于,所述方法包括:根据支持国产SM4密码算法的密码机设备的接口函数特征,将MySQL中与加解密相关的语句和函数修改为调用国产SM4密码算法的语句和函数;配置支持国产SM4密码算法的密码机设备的相关文件,所述相关文件包括头文件,配置文件和动态链接库文件;修改MySQL中的CMakeLists文件;调用支持国产SM4密码算法的密码机设备中的国产SM4密码算法,并通过外部安全模块生成的加解密的密钥以实现MySQL透明数据加解密。2.根据权利要求1所述的方法,其特征在于,根据支持国产SM4密码算法的密码机设备的接口函数特征,将MySQL中与加解密相关的语句和函数修改为调用国产SM4密码算法的语句和函数包括:将MySQL透明数据加解密使用AES密码算法修改为使用国产SM4密码算法,具体地,针对涉及透明数据加解密密码算法调用的.cc文件row0quiesce.cc、row0import.cc、os0file.cc、fsp0fsp.cc、my_default.cc,将所述文件中的my_aes_encrypt()替换为my_SM4_encrypt()和my_SM4_encrypt_tablespace(),将my_aes_decrypt()替换为my_SM4_decrypt()和my_SM4_decrypt_tablespace(),其中my_SM4_encrypt()与my_SM4_encrypt_tablespace()分别为调用密码机设备实现的加密表密钥和加密表空间的国产SM4密码算法;my_SM4_decrypt()与my_SM4_decrypt_tablespace()分别为调用密码机设备实现的解密表密钥和解密表空间的国产SM4密码算法;将fil0fil.cc中MySQL原本的生成密钥的函数Encryption::random_value替换为tablespace_key_gen()用于密钥生成。3.根据权利要求2所述的方法,其特征在于,配置支持国产SM4密码算法的密码机设备的相关文件包括:在声明密码算法的头文件my_aes.h中添加my_SM4_encrypt()、my_SM4_encrypt_tablespace()与my_SM4_decrypt()、my_SM4_decrypt_tablespace()与tablespace_key_gen()的函数名;添加密码机设备的头文件fm_cpc_pub.h和fm_def.h至/include目录下;添加密码机设备的配置文件FMDevice.conf和FMDevice_key.conf至/etc目录下,并正确配置IP、链接数目和日志存储路径;添加动态链接库文件libfmapiv100.so至mysys_ssl/usr/lib目录下。4.根据权利要求3所述的方法,其特征在于,修改MySQL中的CMakeLists文件包括:修改mysys_ssl目录下的CMakeLists文件,添加target_link_libraries指令,其中,所述指令调用的动态链接库文件为mysys_ssl/usr/lib/目录下的libfmapiv100.so。5.根据权利要求2所述的方法,其特征在于,调用支持国产SM4密码算法的密码机设备中的国产SM4密码算法,并通过外部安全模块生成的加解密的密钥以实现MySQL透明数据加解密包括:打开支持国产SM4密码算法的密码机设备,得到支持国产SM4密码算法的密码机设备的句柄handle;基于句柄handle,调用支持国产SM4密码算法的密码机设备采用国产SM4密码算法进行加解密的接口以传入与my_SM4_encrypt()、my_SM4_encrypt_tablespace()和my_SM4_
decrypt()、my_SM4_decrypt_tablespace()相关的参数,所述与my_SM4_encrypt()、my_SM4_encrypt_tablespace()和my_SM4_decrypt()、my_SM4_decrypt_tablespace()相关的参数包括加解密数据、密钥、加密模式、加解密输出缓冲区在内的相关参数,其中,my_SM4_encrypt()、my_SM4_encrypt_tablespace()为加密表密钥和加密表空间的加密算法,实现时需传入加密有关参数,my_SM4_decrypt()、my_SM4_decrypt_tablespace()为解密表密钥和解密表空间的解密算法,实现时传入解密有关参数;将与my_SM4_encrypt()、my_SM4_encrypt_tablespace()和my_SM4_decrypt()、my_SM4_decrypt_tablespace()相关的参数补充到.cc文件my_aes_openssl.cc中,并在my_aes_openssl.cc中添加tablespace_key_gen函数;关闭支持国产SM4密码算法的密码机设备;根据外部安全模块通过调用的国产SM4密码算法生成的加解密的密钥以实现MySQL透明数据加解密。6.一种基于密码机设备的MySQL透明数据加解密装置,其特征在于,所述装置包括:密码机设备,其支持国产SM4密码算法,用于在MySQL进行透明数据加解密时,为...

【专利技术属性】
技术研发人员:周珅珅梁宵黎琳李靖祎郝非非刘春娜
申请(专利权)人:航天信息股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1