本发明涉及计算机安全,具体涉及一种基于虚拟磁盘的软件密码模块实现方法及软件密码模块。
背景技术:
1、随着信息技术的不断发展,软件系统中需要使用各种加密算法来确保信息的安全性。然而,由于算法的复杂性和硬件设备的限制,软件系统往往需要使用特殊的加密硬件设备来完成这些加密操作。同时,为了方便软件开发人员使用加密算法,常常会开发出一些软件密码模块,将加密算法封装成api(application program interface,应用程序接口)供软件开发人员调用。然而,这些软件密码模块的安全性和可靠性往往成为制约其广泛应用的主要因素之一,在传统的软件密码模块中,由于加密操作都是在软件层面上完成的,所以很容易被攻击者通过各种手段破解和攻击。因此,需要提供一种更加安全可靠的软件密码模块。
2、相关技术中,公布号为cn114741706a的专利申请文献提出采用硬件加密技术,通过在qemu中结合加密卡驱动接口、luks驱动模块和虚拟磁盘文件驱动模块,实现硬件级别的虚拟磁盘数据加解密保护,而不是通过软件模块对数据进行加解密。公布号为cn112199724a的专利申请文献专注于解决互联网软件上网隐私保护问题,通过创建加密分区和加解密操作来保护上网隐私,而不是提高软件密码模块的安全性。公布号为cn103516722a的专利申请文献主要着眼于在内存中实现文件的实时加解密,通过虚拟磁盘进行内存中的加解密操作,提高文件的隐私性和安全性,而不是提高密码模块的安全性。
技术实现思路
1、本发明所要解决的技术问题在于如何提高软件密码模块的安全性。
2、本发明通过以下技术手段解决上述技术问题的:
3、一方面,本发明提出了一种基于虚拟磁盘的软件密码模块实现方法,所述方法包括:
4、调用虚拟磁盘api,创建虚拟磁盘文件;
5、对所述虚拟磁盘文件进行分区处理,并创建非字母驱动器号的磁盘路径对所得磁盘分区进行隐藏;
6、在隐藏后的磁盘分区中创建密码文件和密码文件唯一标识,所述密码文件采用密码文件访问口令进行保护;
7、接收客户端的调用以访问所述虚拟磁盘文件中的密码文件。
8、进一步地,在所述调用虚拟磁盘api,创建虚拟磁盘文件之后,所述方法还包括:
9、调用所述虚拟磁盘api,将所述虚拟磁盘文件挂载到操作系统的磁盘驱动器上。
10、进一步地,在所述调用虚拟磁盘api,创建虚拟磁盘文件之前,所述方法还包括:
11、接收所述客户端输入的分区加密密钥。
12、进一步地,所述方法还包括:
13、利用所述分区加密密钥加密所述磁盘分区;
14、相应地,利用创建的非字母驱动器号的磁盘路径对加密后的磁盘分区进行隐藏。
15、进一步地,所述密码文件的结构包括应用表application、容器表container、文件数据表file和系统参数表sysparam;
16、所述应用表application中存储应用信息,所述容器表container中存储有与应用相关的容器信息,所述文件数据表file存储应用中的文件信息,所述系统参数表sysparam存储系统参数信息。
17、进一步地,所述密码文件访问口令的生成过程包括:
18、读取所述虚拟磁盘文件尾部设定数量的字节数据,所述字节数据包括vhd文件标志、类型、容量及创建时间戳;
19、使用sm3hmac算法对所述字节数据进行摘要计算,得到字节摘要值;
20、将所述字节摘要值的前半部分与后半部分进行异或操作,得到所述密码文件访问口令。
21、进一步地,所述密码文件唯一标识为将虚拟磁盘文件尾部的通用唯一识别码与时间戳拼接得到。
22、进一步地,所述方法还包括:
23、通过虚拟磁盘的监控线程监控所述磁盘驱动器挂载的分区状态和隐藏属性;
24、当隐藏的磁盘分区被恢复正常或磁盘分区被卸载时,发出错误提示信息。
25、进一步地,所述方法还包括:
26、接收到所述客户端发送的退出调用信息时,关闭监控线程,并锁定分区访问及卸载所述虚拟磁盘文件。
27、此外,本发明还提出了一种软件密码模块,所述软件密码模块包括:
28、虚拟磁盘调用单元,用于调用虚拟磁盘api,创建虚拟磁盘文件;
29、分区隐藏单元,用于对所述虚拟磁盘文件进行分区处理,并创建非字母驱动器号的磁盘路径对所得磁盘分区进行隐藏;
30、密码文件创建单元,用于在隐藏后的磁盘分区中创建密码文件和密码文件唯一标识,所述密码文件采用密码文件访问口令进行保护;
31、访问控制单元,用于接收客户端的调用以访问所述虚拟磁盘文件中的密码文件。
32、本发明的优点在于:
33、(1)本发明将密码文件存储在虚拟磁盘文件上,并隐藏虚拟磁盘文件,用户无法直接访问,只能通过软件密码模块访问,比传统软件密码模块,利用虚拟磁盘技术和加密操作来增强密钥的保密性和整体安全性,提高密码模块的安全性,通过虚拟磁盘加密存储和隐藏来增强密码文件的安全性;软件密码模块的密码操作完全在内存中进行,不会在磁盘上产生任何痕迹,提高了密码的隐私性;而且使用虚拟磁盘的方式,可灵活选择存储设备,提高了可移植性。
34、(2)本方案可与现有密钥钥匙接口规范兼容,提高了系统的整合性和通用性。
35、本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
1.一种基于虚拟磁盘的软件密码模块实现方法,其特征在于,所述方法包括:
2.如权利要求1所述的基于虚拟磁盘的软件密码模块实现方法,其特征在于,在所述调用虚拟磁盘api,创建虚拟磁盘文件之后,所述方法还包括:
3.如权利要求1所述的基于虚拟磁盘的软件密码模块实现方法,其特征在于,在所述调用虚拟磁盘api,创建虚拟磁盘文件之前,所述方法还包括:
4.如权利要求3所述的基于虚拟磁盘的软件密码模块实现方法,其特征在于,所述方法还包括:
5.如权利要求1所述的基于虚拟磁盘的软件密码模块实现方法,其特征在于,所述密码文件的结构包括应用表application、容器表container、文件数据表file和系统参数表sysparam;
6.如权利要求1所述的基于虚拟磁盘的软件密码模块实现方法,其特征在于,所述密码文件访问口令的生成过程包括:
7.如权利要求1所述的基于虚拟磁盘的软件密码模块实现方法,其特征在于,所述密码文件唯一标识为将虚拟磁盘文件尾部的通用唯一识别码与时间戳拼接得到。
8.如权利要求2所述的基于虚拟磁盘的软件密码模块实现方法,其特征在于,所述方法还包括:
9.如权利要求1所述的基于虚拟磁盘的软件密码模块实现方法,其特征在于,所述方法还包括:
10.一种软件密码模块,其特征在于,所述软件密码模块包括: