一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种云硬盘加解密方法、装置、系统及可读存储介质与流程

2021-11-06 03:37:00 来源:中国专利 TAG:


1.本发明涉及云计算技术领域,特别是涉及一种云硬盘加解密方法、装置、系统及计算机可读存储介质。


背景技术:

2.近年来云计算逐渐成为工业界重要的发展趋势,借助云计算的系统虚拟化,不仅可以帮助云服务提供商减少服务器数量、优化资源利用率,还可以帮助用户实现弹性基础设施配置,从而降低成本、快速响应需求变化。但,随着业务系统的云化,系统中数据的安全问题也日益凸显出现。
3.大部分的公有云、私有云,都是基于openstack进行开发,其中,openstack是一个开源的云计算管理平台项目、是一系列软件开源项目的组合,云硬盘加密是指openstack通过libvirt(用于管理虚拟化平台的开源的api(application programming interface,应用程序接口))调用qemu

kvm创建云操作系统待加载的磁盘文件时,将整个磁盘通过加密算法进行加密处理,以达到保护数据的目的。
4.目前,qemu

kvm中实现磁盘文件加解密的方式共有四种,分别是qemu内置加密算法(如builtin/glibc)、调用内核加密模块、调用nettle库以及调用libgcrypt库,这四种加解密方式都是在hypervisor(虚拟机监视器)层进行,很影响hypervisor的性能,并且加解密过程与业务数据均在服务器上运行,又由于加解密整个磁盘数据,读写损耗非常大,通过业务数据压测,当使用nettle库进行加解密数据时,对比未加密读写数据和使用aes

256加解密磁盘数据时,读写损耗在50%以上,这很难满足云硬盘大数据量的业务要求,严重影响服务器上的业务运行,影响服务器性能。
5.鉴于此,如何提供一种解决上述技术问题的云硬盘加解密方法、装置、系统及计算机可读存储介质成为本领域技术人员需要解决的问题。


技术实现要素:

6.本发明实施例的目的是提供一种云硬盘加解密方法、装置、系统及计算机可读存储介质,在使用过程中有利于提高业务运行效率和服务器性能。
7.为解决上述技术问题,本发明实施例提供了一种云硬盘加解密方法,包括:根据操作请求调用预先建立的加密磁盘;将获取到的操作数据通过加密机适配库中相应的操作接口发送至目标加密机,以便所述目标加密机对所述操作数据进行相应的操作;通过所述操作接口接收所述目标加密机返回的操作结果。
8.可选的,所述加密机适配库的建立过程为:建立与每种操作类型各自对应的操作接口,所述操作接口用于与加密机建立连接;将与加密机对应的标识码添加至预先建立的加密机资源池中。
9.可选的,所述加密磁盘的建立过程为:针对每种计算,获取与所述计算对应的参数信息;依据所述参数信息对所述加密机适配库中相应的操作接口进行配置,得到所述操作接口的接口信息;将得到的每个接口信息添加至待建立加密磁盘的加密磁盘头部信息中,创建并得到加密磁盘。
10.可选的,所述将获取到的操作数据通过预先建立的加密机适配库中的相应操作接口发送至目标加密机的过程为:依据预先建立的加密机适配库确定出目标加密机;依据所述操作请求的操作类型以及所述加密磁盘的加密磁盘头部信息,从各个所述操作接口中确定出目标操作接口;将获取到的操作数据通过所述目标操作接口发送至所述加密机。
11.可选的,所述依据预先建立的加密机适配库确定出目标加密机的过程为:确定出与所述加密机资源池中的每个标识码各自对应的加密机;从各个所述加密机中确定出空闲加密机,并从各个所述空闲加密机中确定出目标加密机。
12.可选的,所述操作接口为初始化接口、对称加密算法加密/解密接口、非对称加密算法密钥生成接口、非对称加密算法加密/解密接口、非对称加密算法签名/验证签名接口、hash/hmca接口、随机数生成接口或关闭加密机接口中的一种。
13.可选的,还包括:接收到操作结束消息时,通过所述加密机适配库的相应接口关闭所述目标加密机。
14.本发明实施例还提供了一种云硬盘加解密装置,包括:调用模块,用于根据操作请求调用预先建立的加密磁盘;发送模块,用于将获取到的操作数据通过加密机适配库中相应的操作接口发送至目标加密机,以便所述目标加密机对所述操作数据进行相应的操作;接收模块,用于通过所述操作接口接收所述目标加密机返回的操作结果。
15.本发明实施例还提供了一种云硬盘加解密系统,包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现如上述所述云硬盘加解密方法的步骤。
16.本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述云硬盘加解密方法的步骤。
17.本发明实施例提供了一种云硬盘加解密方法、装置、系统及计算机可读存储介质,该方法包括:根据操作请求调用预先建立的加密磁盘;将获取到的操作数据通过加密机适配库中相应的操作接口发送至目标加密机,以便目标加密机对操作数据进行相应的操作;通过操作接口接收目标加密机返回的操作结果至服务器。
18.可见,本发明实施例中在接收到操作请求时调用预先建立的加密磁盘,然后将获取到的操作数据通过预先建立的加密机适配库中的对应操作接口发送至目标加密机,目标
加密机在接收到操作数据后,对该操作数据执行相应的操作,得到操作结果,并将该操作结果通过对应的操作接口进行返回,本发明中在对磁盘文件进行加解密操作时,通过将操作数据发送至加密机进行加解密操作,避免加解密操作在服务器上执行占用服务器资源,有利于提高业务运行效率和服务器性能。
附图说明
19.为了更清楚地说明本发明实施例中的技术方案,下面将对现有技术和实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
20.图1为本发明实施例提供的一种云硬盘加解密方法的流程示意图;图2为本发明实施例提供的一种云硬盘加解密装置的结构示意图。
具体实施方式
21.本发明实施例提供了一种云硬盘加解密方法、装置、系统及计算机可读存储介质,在使用过程中有利于提高业务运行效率和服务器性能。
22.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
23.请参照图1,图1为本发明实施例提供的一种云硬盘加解密方法的流程示意图。该方法包括:s110:根据操作请求调用预先建立的加密磁盘;需要说明的是,本发明实施例中预先建立加密机适配库,其中,加密机适配库用于为上层调用加密机提供操作接口,以便上层通过调用加密机适配库的操作接口来调用相应的加密机完成相应的操作,例如加解密、签名验证等操作。
24.具体的,在实际应用中预先建立加密磁盘,并且根据接收到的操作请求调用该加密磁盘。
25.s120:将获取到的操作数据通过加密机适配库中相应的操作接口发送至目标加密机,以便目标加密机对操作数据进行相应的操作;具体的,在对加密磁盘进行读写数据操作时,获取操作数据,确定出对该操作数据进行操作的目标加密机,然后将获取到的操作数据通过加密机适配库中对应的操作接口发送至目标加密机,目标加密机接收到操作数据后,对该操作数据进行相应的操作,其中,操作接口与操作类型相对应,通过与具体执行哪种操作可以根据操作请求确定出操作类型,然后根据操作类型确定出所需调用的操作接口,然后通过该操作接口调用目标加密机,并使目标加密机对操作数据执行与操作类型对应的操作,执行完成后加密机将操作结果通过对应的操作接口进行返回。
26.s130:通过操作接口接收目标加密机返回的操作结果。
27.具体的,通过加密机适配库的操作接口接收目标加密机返回的操作结果,具体根
据针对加密磁盘的具体读写操作的操作类型来进一步对操作结果进行后续操作。例如,对于加密操作,则所获取的操作数据为待存储至加密磁盘的数据,并且需要加密机来对其进行加密操作,得到的操作结果是加密后的数据,在通过加密机适配库的操作接口接收到加密后的数据,并将该加密后的数据写入至加密磁盘。
28.可见,本发明实施例中在接收到操作请求时调用预先建立的加密磁盘,然后将获取到的操作数据通过预先建立的加密机适配库中的对应操作接口发送至目标加密机,目标加密机在接收到操作数据后,对该操作数据执行相应的操作,得到操作结果,并将该操作结果通过对应的操作接口进行返回,本发明中在对磁盘文件进行加解密操作时,通过将操作数据发送至加密机进行加解密操作,避免加解密操作在服务器上执行占用服务器资源,有利于提高业务运行效率和服务器性能。
29.在上述实施例的基础上,进一步的,上述加密机适配库的建立过程,具体可以为:建立与每种操作类型各自对应的操作接口,操作接口用于与加密机建立连接;将与加密机对应的标识码添加至预先建立的加密机资源池中。
30.需要说明的是,本发明实施例中加密机适配库中可以针对不同的操作类型设置不同的操作接口,可以在通过操作接口调用加密机时,根据具体所使用的操作接口即可确定出是哪种操作类型。还可以在加密机适配库中建立加密机资源池,针对不同的加密机可以将与加密机对应的标识码添加至加密机资源池中。
31.具体的,在实际应用中加密机适配库libgeneralhsm.so可以是用c/c 语言编写的动态链接库,用来适配不同厂商的加密机,libgeneralhsm.so通过对不同厂商加密机提供的功能接口进行封装,使上层应用如qemu

img、qemu

kvm等可以直接通过引用libgeneralhsm.so库和头文件,调用libgeneralhsm.so提供给上层应用的接口,就能够调用加密机完成加解密、签名验证等操作。libgeneralhsm.so对不同厂商的加密机对上层应用提供的接口一致,上层应用对使用的哪个厂商的加密机丝毫无感知,可忽略不同加密机对上层应用的影响,同时,libgenerahsm.so通过创建加密机资源池,可同时支持多个加密机进行加解密运算,在一定程度内,可线性提高加解密运算速度。其中,在具体通过加密机适配库调用加密机时,可以通过与操作类型对应的操作接口调用目标加密机的功能接口从而实现加密机的调用。具体的,加密机适配库所提供的不同操作类型的操作接口可以有初始化接口、对称加密算法加密/解密接口、非对称加密算法密钥生成接口、非对称加密算法加密/解密接口、非对称加密算法签名/验证签名接口、hash/hmca接口、随机数生成接口和关闭加密机接口。
32.还需要说明的是,在实际应用中加密机适配库作为加密机资源池在被上层应用调用时,可以通过调用初始化加密机接口读取库配置文件,获取所有可用的加密机的ip、port、password、加密机底层等配置信息,然后调用加密机打开密码设备接口,获取设备句柄(具体为加密机生成一个设备句柄),然后将该设备句柄加入加密机资源池的数组hsmpool中,hsmpool是一个全局变量,其中保存了加密机适配库中所有可用的加密机的设备句柄,以供后续使用。具体的,在加密机适配库被上层应用调用时,如加密、解密、签名、验证签名、hash/hmac接口、随机数生成接口时,首先在加密机资源池数组hsmpool中随机获取一个可用的设备句柄,然后根据该设备句柄创建会话句柄,在该会话句柄中调用加密机的业务接口,完成加密、解密、签名、验证签名、hash/hmac接口、随机数生成的功能,返回给上
层应用,最后关闭会话句柄;加密机适配库libgereralhsm.so在被上层应用调用关闭加密机接口的时候,顺序获取加密机资源池数组hsmpool中的加密设备句柄,依次调用加密机关闭设备接口,关闭所有的加密机链接。
33.进一步的,本发明实施例中的加密磁盘的建立过程具体可以为:针对每种计算,获取与计算对应的参数信息;依据参数信息对加密机适配库中相应的操作接口进行配置,得到操作接口的接口信息;将得到的每个接口信息添加至待建立加密磁盘的加密磁盘头部信息中,创建并得到加密磁盘。
34.需要说明的是,在创建加密磁盘之前,还可以根据需要选择是否开启使用加密机适配库的功能,若开启后,则按照本发明提供的方法建立,其中,在qemu中使用qemu

img创建加密磁盘时,可以在configure文件中加入以下代码:1.2.
‑‑
disable

generalhsm)generalhsm="no"3.;;4.
‑‑
enable

generalhsm)generalhsm="yes"5.6.7.iftest"$generalhsm"="yes";then8.echo"config_generalhsm=y">>$config_host_mak9.fi10.也即,configure的参数中如果包含
‑‑
enable

generalhsm,则表示引用加密机适配库libgeneralhsm.so作为云硬盘加解密源,而不使用其他方式如nettle、libgcrypt等。然后,在qemu

img可执行文件启动的时候,在qcrypto_init()函数中,调用libgeneralhsm.so库的初始化接口,初始化所有的可用加密机,使之处于可用状态。
35.具体的,在实际应用中qe

img中涉及的加密磁盘的计算可以为cipher、hash、hmac、pbkdf或random中的一种,并且针对每种计算,获取对应的参数信息,其中,根据该参数信息也可确定调用的函数,根据该参数信息可以对加密机适配库中相应的操作接口进行配置,得到操作接口的接口信息,也即哪种计算的参数信息对应哪个操作接口就对哪个操作接口进行配置,从而可以得到与多个接口信息,然后将每个接口信息添加至加密磁盘头部信息中,从而创建得到加密磁盘。
36.其中,以cipher为例进行说明,具体可以通过以下代码进行创建:1.2.#ifdefconfig_gcrypt3.#include"cipher

gcrypt.c"4.#elifdefinedconfig_nettle5.#include"cipher

nettle.c"6.#elifdefinedconfig_generalhsm
7.#include"cipher

generalhsm.c"8.#else9.#include"cipher

builtin.c"10.#endif11.也即,如果定义config_generalhsm宏,则引用cipher

generalhsm.c文件进行云硬盘的加密解密操作,因在configure中已定义config_generalhsm宏,所以,这里会走cipher

generalhsm.c分支。在cipher

generalhsm.c中,根据qemu

img传入的不同输入参数,组装libgeneralhsm.so库的加密、解密接口参数,并将接口信息写入到加密磁盘头部信息中。同理,对于hash、hmac、pbkdf、random四种操作也是,通过qemu

img传入的不同输入参数,组装libgeneralhsm.so库相应的接口参数,并将接口信息写入到加密磁盘头部信息中,最后完成其他操作,创建加密磁盘,至此,加密磁盘创建成功。
37.进一步的,上述s120中将获取到的操作数据通过预先建立的加密机适配库中的相应操作接口发送至目标加密机的过程,具体可以为:依据预先建立的加密机适配库确定出目标加密机;依据操作请求的操作类型以及加密磁盘的加密磁盘头部信息,从各个操作接口中确定出目标操作接口;将获取到的操作数据通过目标操作接口发送至加密机。
38.具体的,在使用加密磁盘时,根据操作请求调用加密磁盘,然后可以根据每个加密机各自对应的标识码来确定出各个加密机,并从中确定出空闲的加密机,也即确定出可用的加密机,并从这些空闲的加密机中可以随机确定出一个加密机作为目标加密机,然后根据操作类型及加密磁盘头部信息确定出与该操作类型对应的操作接口信息,然后根据该操作接口信息进一步确定出目标操作接口,然后将获取到的操作数据通过该操作接口发送至加密机,以便加密机对该操作数据进行相应的操作。
39.另外,上述介绍了可以预先将所有可用的加密机的设备句柄均添加至加密机资源池的数组hsmpool中,则在确定目标加密机时,也可以从数组hsmpool中随机获取一个设备句柄,将与该设备句柄对应的加密机作为目标加密机。
40.当然,在实际应用中,例如在qemu中使用qemu

kvm来使用加密磁盘时,qemu

kvm在加载加密磁盘时,首先根据configure的配置参数,获取qemu

kvm使用的加密方式,在本发明实施例中加密方式为调用libgeneralhsm.so库,具体可以在qcrypto_init()函数中,调用libgeneralhsm.so库的初始化接口,以初始化所有的可用的加密机,使之处于可用状态,然后读取加密磁盘头部信息,获取磁盘的加密算法、加密模式、hash算法、hmac、pbkdf、random算法等信息和相应的操作接口及参数,在qemu

kvm需要向磁盘中读写数据时,调用加密机适配库libgeneralhsm.so相应的操作接口即可。另外,在qemu

kvm退出的时候,还可以调用libgeneralhsm.so库的关闭设备接口,关闭加密机链接,关闭目标加密机。
41.本发明实施例通过调用硬件加密机的方式,将qemu

kvm原本在hypervisor层进行的加解密操作迁移到专门的加解密设备(也即加密机)中,大大提高了系统加解密磁盘数据的性能,同时,加密机适配库libgeneralhsm.so库支持将多个加密机设备共同使用,便于加密机的横向拓展,进一步提高了系统的性能,并且在专门用于加解密操作的硬件加密机中
做磁盘数据的加密、解密,避免敏感数据被不法分子窃取或监听,保护了系统数据的安全性。另外,本发明实施例中的加密机适配库libgeneralhsm.so库支持将多个加密机设备共同使用,加密机可横向拓展,做主备操作,不会因为某一台加密设备的损坏而影响系统的使用,使系统具有高可用性,且加密机适配库libgeneralhsm.so提供多不同厂商加密机的适配,对外提供的接口一致,上层应用无需底层加密机的更换而修改源代码进行支持,加密机适配库libgeneralhsm.so具备通用性。
42.在上述实施例的基础上,本发明实施例还提供了一种云硬盘加解密装置,具体请参照图2,该装置包括:调用模块21,用于根据操作请求调用预先建立的加密磁盘;发送模块22,用于将获取到的操作数据通过加密机适配库中相应的操作接口发送至目标加密机,以便目标加密机对操作数据进行相应的操作;接收模块23,用于通过操作接口接收目标加密机返回的操作结果。
43.需要说明的是,本发明实施例中所提供的云硬盘加解密装置具有与上述实施例中所提供的云硬盘加解密方法相同的有益效果,并且对于本发明实施例中所涉及到的云硬盘加解密方法的具体介绍请参照上述实施例,本发明在此不再赘述。
44.在上述实施例的基础上,本发明实施例还提供了一种云硬盘加解密系统,包括:存储器,用于存储计算机程序;处理器,用于执行计算机程序时实现如上述云硬盘加解密方法的步骤。
45.例如,本发明实施例中的处理器具体可以用于实现本发明实施例提供了一种云硬盘加解密方法、装置、系统及计算机可读存储介质,该方法包括:根据操作请求调用预先建立的加密磁盘;将获取到的操作数据通过加密机适配库中相应的操作接口发送至目标加密机,以便目标加密机对操作数据进行相应的操作;通过操作接口接收目标加密机返回的操作结果至服务器。
46.在上述实施例的基础上,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述云硬盘加解密方法的步骤。
47.该计算机可读存储介质可以包括:u盘、移动硬盘、只读存储器(read

only memory ,rom)、随机存取存储器(random access memory ,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
48.本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
49.还需要说明的是,在本说明书中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排
除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
50.对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其他实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献