【技术实现步骤摘要】
一种基于密码机设备的MySQL透明数据加密方法和装置
[0001]本专利技术涉及透明数据加解密领域,尤其是一种基于密码机设备的MySQL透明数据加密方法和装置。
技术介绍
[0002]随着信息时代的发展,数据量呈指数级的增长,数据库是管理数据十分成熟的方法,因此也被应用到了越来越多的领域。但是,随着数据安全、隐私保护相关问题的出现,数据的安全应用成为了人们越来越关注的问题。一般情况下,数据库管理的数据均为明文存储于硬件磁盘,因而会存在一定的安全漏洞,即如果数据库的硬件磁盘被窃取,那么就会造成数据泄露的问题。因此,一些主流的数据库均提供了透明数据加解密方法,以此保证数据在物理设备上的安全存储。
[0003]透明数据加密是通过将数据库中明文存储的信息进行加密,之后将产生的密文存入到物理磁盘中,以保证数据不被通过物理窃取的方式而泄露;同时会对加密使用的密钥进行管理。整个透明数据加密过程对用户透明,即用户只需选择是否使用透明数据加密功能即可,而无需进行加密算法的选择、加密使用密钥的生成等操作。
[0004]但是,主流数据库使用的数据保护加解密算法普遍非国密算法,由此在算法安全性问题上存在可信问题;以MySQL实现的透明数据加密方法为例,在使用MySQL透明数据加密的功能时,只能使用默认的AES算法进行加密,而针对某些透明数据加密的应用场景,其需要使用国产加密算法进行操作。同时某些应用场景对透明数据加密的性能有相应的需求——因为在引入透明数据加密之后,由于多了加密这一操作,会导致数据库的读写性能会有所下降。而基 ...
【技术保护点】
【技术特征摘要】
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进行透明数据加解密时,为...
【专利技术属性】
技术研发人员:周珅珅,梁宵,黎琳,李靖祎,郝非非,刘春娜,
申请(专利权)人:航天信息股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。