数据共享方法、系统和虚拟计算单元与流程

文档序号:29792346发布日期:2022-04-23 17:57阅读:98来源:国知局
数据共享方法、系统和虚拟计算单元与流程

1.本公开涉及安全技术领域,尤其涉及一种数据共享方法、系统和虚拟计算单元。


背景技术:

2.云计算、虚拟化技术在ict(information and communications technology,信息与通信技术)领域应用日益广泛,推动了网络、业务模式的创新。如5g核心网以云原生理念、基于微服务架构构建,支撑其成为万物互联的新一代基础设施。另一方面,云化、虚拟化也带来新的安全问题和防护难题。


技术实现要素:

3.本公开要解决的一个技术问题是,提供一种数据共享方法、系统和虚拟计算单元,能够保障共享数据的安全性。
4.根据本公开一方面,提出一种数据共享方法,包括:第一虚拟计算单元生成数据加密密钥,并对共享数据进行加密;第一虚拟计算单元向锁控制组件申请所需类型的锁以及锁密钥,并对数据加密密钥进行加锁;第二虚拟计算单元向锁控制组件发送申请锁密钥的请求,其中,锁控制组件根据锁的类型和共享数据的访问情况判断是否发放锁密钥;第二虚拟计算单元在接收到锁密钥后,根据锁密钥对加锁的数据加密密钥解锁;第二虚拟计算单元根据数据加密密钥访问加密后的共享数据。
5.在一些实施例中,第一虚拟计算单元接收到第二虚拟计算单元发送的申请数据加密密钥请求后,将加锁的数据加密密钥发送至第二虚拟计算单元。
6.在一些实施例中,第一虚拟计算单元接收到第二虚拟计算单元发送的申请数据加密密钥请求后,基于共享密钥,判断第二虚拟计算单元是否与第一虚拟计算单元为共享组,若确定第二虚拟计算单元与第一虚拟计算单元为共享组,则将加锁的数据加密密钥发送至第二虚拟计算单元。
7.在一些实施例中,第一虚拟计算单元将加锁的数据加密密钥发送密钥存储组件;第二虚拟计算单元通过密钥存储组件获取加锁的数据加密密钥。
8.在一些实施例中,第一虚拟计算单元在对共享数据进行加密后,将加锁的数据加密密钥发送至第二虚拟计算单元。
9.在一些实施例中,锁的类型包括条件锁、并发锁、互斥锁、读写锁和限次锁中的至少一种。
10.根据本公开的另一方面,还提出一种虚拟计算装置,包括:数据加密模块,被配置为生成数据加密密钥,并对共享数据进行加密;密钥加锁模块,被配置为向锁控制组件申请所需类型的锁以及锁密钥,并对数据加密密钥进行加锁;锁密钥请求模块,被配置为向锁控制组件发送申请锁密钥的请求,其中,锁控制组件根据锁的类型和共享数据的访问情况判断是否发放锁密钥;密钥解锁模块,被配置为在接收到锁密钥后,根据锁密钥对加锁的数据加密密钥解锁;数据访问模块,被配置为根据数据加密密钥访问加密后的共享数据。
11.根据本公开的另一方面,还提出一种虚拟计算装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器的指令执行如上述的数据共享方法。
12.根据本公开的另一方面,还提出一种数据共享系统,包括:上述的虚拟计算单元;以及锁控制组件,被配置为根据锁的类型和共享数据的访问情况判断是否发放锁密钥。
13.在一些实施例中,虚拟设施管理组件,被配置为创建共享组,并向虚拟计算单元和分配所在组的共享密钥。
14.根据本公开的另一方面,还提出一种非瞬时性计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现上述的数据共享方法。
15.与相关技术相比,本公开实施例中,针对多虚拟计算单元的环境下,通过对共享数据加密,并将密钥加锁和加密控制,能够确定密钥安全分发,保障数据访问的安全性。
16.通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。
附图说明
17.构成说明书的一部分的附图描述了本公开的实施例,并且连同说明书一起用于解释本公开的原理。
18.参照附图,根据下面的详细描述,可以更加清楚地理解本公开,其中:
19.图1为本公开的数据共享方法的一些实施例的流程示意图。
20.图2为本公开的数据共享方法的一些实施例的流程示意图。
21.图3为本公开的虚拟计算单元的一些实施例的结构示意图。
22.图4为本公开的虚拟计算单元的另一些实施例的结构示意图。
23.图5为本公开的虚拟计算单元的另一些实施例的结构示意图。
24.图6为本公开的数据共享系统的一些实施例的结构示意图。
25.图7为本公开的数据共享系统的另一些实施例的结构示意图。
26.图8为本公开的数据共享系统的另一些实施例的结构示意图。
具体实施方式
27.现在将参照附图来详细描述本公开的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本公开的范围。
28.同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
29.以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。
30.对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
31.在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
32.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一
个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
33.为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开进一步详细说明。
34.多虚拟机/容器环境下,数据的存储、共享安全存在以下问题:例如,多虚拟机/容器环境通常采用计算/存储分离模式,数据集中存储,存在恶意/受控节点跨节点访问敏感数据的风险。多虚拟机/容器协同工作的场景下,存在跨节点共享数据的需求,常用的安全保障手段有基于用户身份和文件访问权限的访问控制、基于加密的控制,但前者的安全性较弱、后者因节点的动态性,密钥管理、分发困难。不同场景数据共享需求差异大、难以兼顾,例如,多虚拟机/容器协同计算场景,存在互斥写入、共享读取等需求;虚拟机/容器故障接管场景,如采用加密技术,需防止密钥管理导致的数据丢失问题。
35.图1为本公开的数据共享方法的一些实施例的流程示意图。
36.在步骤110,第一虚拟计算单元生成数据加密密钥,并对共享数据进行加密。
37.在一些实施例中,虚拟计算单元为虚拟机或容器。
38.在一些实施例中,第一虚拟计算单元为共享数据提供者。共享数据提供者角色的虚拟机或容器随机产生数据加密密钥,并对共享数据进行加密存储。
39.在步骤120,第一虚拟计算单元向锁控制组件申请所需类型的锁以及锁密钥,并对数据加密密钥进行加锁。
40.在一些实施例中,锁的类型包括条件锁、并发锁、互斥锁、读写锁和限次锁等。
41.第一虚拟计算单元根据业务类型,向锁控制组件申请所需类型的锁以及锁密钥。
42.在一些实施例中,第一虚拟计算单元将锁密钥与共享数据进行关联,由锁控制组件在相应的锁控制下对该共享数据进行访问控制。
43.在步骤130,第二虚拟计算单元向锁控制组件发送申请锁密钥的请求,其中,锁控制组件根据锁的类型和共享数据的访问情况判断是否发放锁密钥。
44.第二虚拟计算单元为共享数据使用者。
45.在一些实施例中,若锁的类型为条件锁,则锁控制组件在确定第二虚拟计算单元满足预设条件后,将锁密钥发送至第二虚拟计算单元。预设条件可以灵活设置,例如,预设条件与业务逻辑相关。
46.在一些实施例中,若锁的类型为并发锁,则根据申请锁密钥的虚拟计算单元的并发数量,确定是否将锁密钥发送至第二虚拟计算单元。例如,虚拟机读取、写入数据前,都需要申请并发锁,假设并发数为n,锁控制组件初始化设置nlock=n个锁,有虚拟机申请使用时,则检查nlock数量,必须nlock》0,才能发放锁密钥,且置nlock=nlock-1。
47.在一些实施例中,若锁的类型为互斥锁,则在其他虚拟计算单元使用该锁的情况下,不将锁密钥发送至第二虚拟计算单元。例如,某个虚拟机占用该锁,则其他虚机不能使用。
48.在一些实施例中,若锁的类型为读写锁,在第二虚拟计算单元读数据时,不互斥,写数据时,该锁为独占锁。
49.在一些实施例中,若锁的类型为限次锁,则在申请锁密钥的虚拟计算单元的数据量达到预定次数后,不再将锁密钥发送至第二虚拟计算单元。即锁的总量受限,满足条件虚拟计算单元的可以使用该锁,锁的数量扣减,使用完后不增加,总次数达到设定的量后,不
能再使用。
50.在步骤140,第二虚拟计算单元在接收到锁密钥后,根据锁密钥对加锁的数据加密密钥解锁。
51.在一些实施例中,第一虚拟计算单元接收到第二虚拟计算单元发送的申请数据加密密钥请求后,将加锁的数据加密密钥发送至第二虚拟计算单元。第二虚拟计算单元根据锁密钥对加锁的数据加密密钥解锁。该步骤由第二虚拟计算单元主动向第一虚拟计算单元申请数据加密密钥,能够实现互斥访问,保证数据一致性。
52.在一些实施例中,第一虚拟计算单元将加锁的数据加密密钥发送密钥存储组件,第二虚拟计算单元通过密钥存储组件获取加锁的数据加密密钥。密钥存储组件例如为虚拟设施管理组件、或者其他第三方组件/虚机/容器。有共享数据需求的虚机/容器可以直接向该组件申请。该实施例,能够在不确定共享数据使用者的情形下,将加锁的数据加密密钥提前分发给共享数据使用者,防止虚拟机或容器意外退出,又可防止不必要的扩散。
53.在一些实施例中,第一虚拟计算单元在对共享数据进行加密后,将加锁的数据加密密钥发送至第二虚拟计算单元。在实施例,能够在确定共享数据使用者的情形下,将加锁的数据加密密钥提前分发给共享数据使用者,防止虚拟机或容器意外退出,又可防止不必要的扩散。
54.在步骤150,第二虚拟计算单元根据数据加密密钥访问加密后的共享数据。
55.在该实施例中,针对多虚拟计算单元的环境下,通过对共享数据加密,并将密钥加锁和加密控制,能够确定密钥安全分发,保障数据访问的安全性,实现数据隔离。
56.图2为本公开的数据共享方法的一些实施例的流程示意图。该实施例中,虚拟设施管理组件根据业务需要创建共享组,并为新创建的虚拟计算单元分配所在组的共享密钥,以控制数据共享范围、保障共享组内信息传输安全。
57.在步骤210,第一虚拟计算单元生成数据加密密钥,并对共享数据进行加密。
58.在步骤220,第一虚拟计算单元根据业务类型,向锁控制组件申请所需类型的锁以及锁密钥,并对数据加密密钥进行加锁。
59.在步骤230,第二虚拟计算单元向第一虚拟计算单元发送申请数据加密密钥的请求。
60.在步骤240,第一虚拟计算单元接收到第二虚拟计算单元发送的申请数据加密密钥请求后,基于共享密钥,判断第二虚拟计算单元是否与第一虚拟计算单元为共享组。
61.在一些实施例中,基于共享密钥实现共享组身份验证,认证机制例如为:共享数据使用者b生成带时间戳的随机数、用共享密钥生成消息摘要,在请求中带上随机数、消息摘要,共享数据提供者a验证消息摘要,确定是否发放加密密钥。
62.共享数据使用者b发起请求,共享数据提供者a生成带时间戳的随机数并返回给b,b用共享密钥生成消息摘要,同上述步骤完成验证。
63.上述验证过程中,共享数据提供者a还可以对其他条件进行验证,比如共享数据使用者b的ip地址、时间段等;如果验证要求复杂,上述认证过程可以转发给专门的认证组件/认证服务器来实现。
64.通过对属于同一共享组的虚拟计算单元分配共享密钥,能够实现虚拟计算单元的自主控制、按需共享。
65.在步骤250,第一虚拟计算单元若确定第二虚拟计算单元与第一虚拟计算单元为共享组,则将加锁的数据加密密钥发送至第二虚拟计算单元。
66.在步骤260,第二虚拟计算单元向锁控制组件发送申请锁密钥的请求。
67.在步骤270,锁控制组件根据锁的类型和共享数据的访问情况判断是否发放锁密钥。
68.在步骤280,第二虚拟计算单元在接收到锁密钥后,根据锁密钥对加锁的数据加密密钥解锁。
69.在步骤290,第二虚拟计算单元根据数据加密密钥访问加密后的共享数据。
70.在上述实施例中,在多个虚拟计算单元之间共享数据时,通过对共享数据加密存储、并将密钥加锁和加密控制,满足解锁条件的虚拟计算单元获得解锁密钥、解密得到数据加密密钥之后,才能访问共享数据,可实现一文一密,从而实现对数据细粒度的权限控制和访问保护,确保密钥安全分发、仅合法虚拟计算单元可访问数据、并保障数据访问过程的安全性,防止数据不一致、数据污染等问题的发生。
71.图3为本公开的虚拟计算单元的一些实施例的结构示意图。该虚拟计算单元为虚拟机或容器,包括共享数据提供者和共享数据使用者。虚拟计算单元作为共享数据提供者时包括数据加密模块310和密钥加锁模块320,虚拟计算单元作为共享数据使用者时,包括锁密钥请求模块330、密钥解锁模块340和数据访问模块350。
72.数据加密模块310被配置为生成数据加密密钥,并对共享数据进行加密。
73.在一些实施例中,数据加密模块310随机产生数据加密密钥,并对共享数据进行加密存储。
74.密钥加锁模块320被配置为向锁控制组件申请所需类型的锁以及锁密钥,并对数据加密密钥进行加锁。
75.在一些实施例中,密钥加锁模块320根据业务类型,向锁控制组件申请所需类型的锁以及锁密钥,将锁密钥与共享数据进行关联,由锁控制组件在相应的锁控制下对该共享数据进行访问控制。
76.锁密钥请求模块330被配置为向锁控制组件发送申请锁密钥的请求,其中,锁控制组件根据锁的类型和共享数据的访问情况判断是否发放锁密钥。
77.密钥解锁模块340被配置为在接收到锁密钥后,根据锁密钥对加锁的数据加密密钥解锁。
78.数据访问模块350被配置为根据数据加密密钥访问加密后的共享数据。
79.在该实施例中,针对多虚拟计算单元的环境下,通过对共享数据加密,并将密钥加锁和加密控制,能够确定密钥安全分发,保障数据访问的安全性。
80.在本公开的另一些实施例中,如图4所示,该虚拟计算单元还包括密钥传输模块410。密钥传输模块410被配置为在虚拟计算单元作为共享数据提供者时,若接收到作为共享数据使用者的虚拟计算单元发送的申请数据加密密钥请求后,将加锁的数据加密密钥发送至作为共享数据使用者的虚拟计算单元。
81.在本公开的另一些实施例中,该虚拟计算单元还包括共享组判断模块420。共享组判断模块420被配置为在虚拟计算单元作为共享数据提供者时,若接收到作为共享数据使用者的虚拟计算单元发送的申请数据加密密钥请求后,基于共享密钥,判断作为共享数据
使用者的虚拟计算单元是否与自身为共享组。密钥传输模块410被配置为若确定作为共享数据使用者的虚拟计算单元与自身为共享组,则将加锁的数据加密密钥发送至作为共享数据使用者的虚拟计算单元。
82.该实施例中,满足解锁条件的虚拟计算单元获得解锁密钥、解密得到数据加密密钥之后,才能访问共享数据,从而实现对数据细粒度的权限控制和访问保护,确保仅合法虚拟计算单元可访问数据、并保障数据访问过程的安全性,防止数据不一致、数据污染等问题的发生。
83.在一些实施例中,作为共享数据提供者的虚拟计算单元中的密钥传输模块410还被配置为将加锁的数据加密密钥发送到密钥存储组件;作为共享数据使用者的虚拟计算单元中的密钥传输模块410通过密钥存储组件获取加锁的数据加密密钥。能够在不确定共享数据使用者的情形下,将加锁的数据加密密钥提前分发给共享数据使用者,防止虚拟机或容器意外退出。
84.在一些实施例中,作为共享数据提供者的虚拟计算单元中的密钥传输模块410还被配置为在对共享数据进行加密后,将加锁的数据加密密钥发送至作为共享数据使用者的虚拟计算单元。能够在确定共享数据使用者的情形下,将加锁的数据加密密钥提前分发给共享数据使用者,防止虚拟机或容器意外退出。
85.图5为本公开的虚拟计算单元的另一些实施例的结构示意图。该虚拟计算单元包括存储器510和处理器520。其中:存储器510可以是磁盘、闪存或其它任何非易失性存储介质。存储器用于存储图1-2所对应实施例中的指令。处理器520耦接至存储器510,可以作为一个或多个集成电路来实施,例如微处理器或微控制器。该处理器520用于执行存储器中存储的指令。
86.在一些实施例中,处理器520通过bus总线530耦合至存储器510。该虚拟计算单元500还可以通过存储接口540连接至外部存储系统550以便调用外部数据,还可以通过网络接口560连接至网络或者另外一台计算机系统(未标出)。此处不再进行详细介绍。
87.在该实施例中,通过存储器存储数据指令,再通过处理器处理上述指令,能够保障数据访问的安全性。
88.图6为本公开的数据共享系统的一些实施例的结构示意图。该数据共享系统包括多个虚拟计算单元610和锁控制组件620。其中,虚拟计算单元610包括参与协作处理共享数据的共享数据提供者和共享数据使用者。虚拟计算单元610为虚拟机vm,或者,容器。虚拟计算单元610已在上述实施例中进行了详细介绍,此处不再进一步阐述。
89.锁控制组件620被配置为根据锁的类型和共享数据的访问情况判断是否发放锁密钥。锁的类型包括条件锁、并发锁、互斥锁、读写锁和限次锁等。
90.以如图7和图8虚拟计算单元为vm为例。在图7中,vm都在一个vmm(虚拟机监视器)控制范围内,锁控制组件由vmm或者dom0实现,并采用操作系统进程/线程锁机制,对锁密钥进行保护,实现比较简单。在图8中,vm不在一个vmm范围,锁控制组件独立实现,实现跨服务器的锁控制,更加灵活、适用场景更广泛。
91.锁控制组件620可以从虚拟设施管理组件同步获取共享组、共享密钥等信息,负责锁密钥的管理和分发。
92.在本公开的另一些实施例中,该数据共享系统还包括虚拟设施管理组件630,被配
置为创建共享组,并向虚拟计算单元分配所在组的共享密钥。虚拟设施管理组件630还负责虚拟计算单元的调度。
93.在上述实施例中,在多个虚拟计算单元之间共享数据时,通过对共享数据加密存储、并将密钥加锁和加密控制,满足解锁条件的虚拟计算单元获得解锁密钥、解密得到数据加密密钥之后,才能访问共享数据,从而实现对数据细粒度的权限控制和访问保护,确保密钥安全分发、仅合法虚拟计算单元可访问数据、并保障数据访问过程的安全性,防止数据不一致、数据污染等问题的发生。
94.在另一些实施例中,一种计算机可读存储介质,其上存储有计算机程序指令,该指令被处理器执行时实现图1-2所对应实施例中的方法的步骤。本领域内的技术人员应明白,本公开的实施例可提供为方法、装置、或计算机程序产品。因此,本公开可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本公开可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、cd-rom、光学存储器等)上实施的计算机程序产品的形式。
95.本公开是参照根据本公开实施例的方法、设备(系统)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
96.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
97.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
98.至此,已经详细描述了本公开。为了避免遮蔽本公开的构思,没有描述本领域所公知的一些细节。本领域技术人员根据上面的描述,完全可以明白如何实施这里公开的技术方案。
99.虽然已经通过示例对本公开的一些特定实施例进行了详细说明,但是本领域的技术人员应该理解,以上示例仅是为了进行说明,而不是为了限制本公开的范围。本领域的技术人员应该理解,可在不脱离本公开的范围和精神的情况下,对以上实施例进行修改。本公开的范围由所附权利要求来限定。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1