CN111782344B - 一种提供密码资源的方法、***及宿主机 - Google Patents
一种提供密码资源的方法、***及宿主机 Download PDFInfo
- Publication number
- CN111782344B CN111782344B CN202010634743.XA CN202010634743A CN111782344B CN 111782344 B CN111782344 B CN 111782344B CN 202010634743 A CN202010634743 A CN 202010634743A CN 111782344 B CN111782344 B CN 111782344B
- Authority
- CN
- China
- Prior art keywords
- cryptographic
- virtual
- password
- module
- session
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 57
- 230000006870 function Effects 0.000 claims abstract description 88
- 238000004364 calculation method Methods 0.000 claims abstract description 17
- 230000008569 process Effects 0.000 claims description 23
- 238000012795 verification Methods 0.000 claims description 9
- 238000013507 mapping Methods 0.000 claims description 4
- 238000010586 diagram Methods 0.000 description 10
- 230000007246 mechanism Effects 0.000 description 9
- 238000005516 engineering process Methods 0.000 description 7
- 238000012545 processing Methods 0.000 description 5
- 230000009471 action Effects 0.000 description 3
- 238000013459 approach Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000004888 barrier function Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000011218 segmentation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/455—Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
- G06F9/45533—Hypervisors; Virtual machine monitors
- G06F9/45558—Hypervisor-specific management and integration aspects
- G06F2009/45587—Isolation or security of virtual machine instances
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供一种提供密码资源的方法、***及宿主机,所述宿主机上至少运行一个虚拟机,所述宿主机包括:运行于所述虚拟机的虚拟密码模块;虚拟密码后端模块,被配置为将密码功能组件的密码功能映射至所述虚拟密码模块,其中,所述密码功能包括密码计算或密钥管理。本申请实施例的虚拟密码模块所呈现的密码计算、密钥管理都是在宿主机侧的密码资源中完成,因而更容易实现合规性,更容易进行安全控制。
Description
技术领域
本申请涉及密码处理领域,具体而言涉及一种提供密码资源的方法、***及宿主机。
背景技术
随着云计算的不断发展,虚拟化技术也越发得到广泛应用。利用虚拟化技术,可以在单一的物理平台上模拟并运行多台客户虚拟机(VM)。虚拟化技术能够将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部分是不受现有资源的架设方式,地域或物理组态所限制。
虚拟化是云计算的核心技术。云计算是与信息技术、软件、互联网相关的一种服务,将各种计算资源共享,形成资源池,称为“云服务”,能够为租户提供按需服务、按使用量计费,具备高度可扩展性的服务。
另一方面,在云计算和虚拟化技术中,越来越需要使用密码技术保证安全性。例如通过密码学中的密码算法实现应用***所需的数据加密、完整性验证、数字签名等应用。但是由于VM本身是虚拟化出的一种呈现,所以无法象在实体计算机上一样,直接在VM上部署合规可靠的密码模块,实现密钥的安全产生、安全管理以及安全的密码计算。
因此如何在虚拟机上部署合规可靠的密码功能成了亟待解决的技术问题。
发明内容
本申请实施例的目的在于提供一种提供密码资源的方法、***及宿主机,采用本申请实施例的技术方案能够在云计算和虚拟化场景下,将实体机(或称为宿主机)侧各种类型的异构密码能力映射到运行于实体机上的虚拟机中(例如,具有各种类型的异构密码能力的密码功能组件在实体机中的呈现形式为一个Linux内核模块或虚拟的PCI设备);采用本申请实施例的技术方案可以通过租用带有密码模块的虚拟机,并使用密码模块的功能为业务***提供密码功能或服务,可以将其封装为各种应用接口或网络服务,形成虚拟化形式的密码产品(例如,云签名验证服务器、云密码机、云证书管理***、云电子***、云VPN等);使用本申请实施例的技术方案,虚拟机中的虚拟密码模块向外所呈现的密码计算、密钥管理都是在实体机侧的密码资源中完成,因而更容易实现合规性,更容易进行安全控制。
第一方面,本申请实施例提供一种宿主机,其上至少运行一个虚拟机,所述宿主机包括:运行于所述虚拟机的虚拟密码模块;虚拟密码后端模块,被配置为将由密码功能组件实现的密码功能映射至所述虚拟密码模块,其中,所述密码功能包括密码计算或者密钥管理。
本申请实施例虚拟机中的虚拟密码模块所呈现的密码计算、密钥管理都是在宿主机侧的密码资源中完成,因而更容易实现合规性,更容易进行安全控制。
在一些实施中,所述虚拟密码模块包括:驱动模块,被配置为驱动所述虚拟密码后端模块和所述密码功能组件完成所述密码计算或者密钥管理;管理模块,被配置为启动初始化操作以使所述密码功能组件至少产生主密钥;应用程序接口,被配置为接收来自于用户的密码服务指令并接收来自于所述密码功能组件的密码信息。
本申请实施例部署在虚拟机中的虚拟密码模块可以使得相关人员通过管理模块完成密钥管理相关的操作,可以使用户通过应用程序接口发出密码服务指令并进一步由驱动模块驱动虚拟密码后端模块和密码功能组件以从密码功能组件中获取所需的密码服务。
在一些实施例中,所述虚拟密码后端模块运行于虚拟化容器中,其中,所述虚拟机运行与所述虚拟化容器中。
本申请实施例通过虚拟化容器可以隔离密码映射操作的全流程,保证了密码服务的安全可靠。
在一些实施例中,所述密码功能组件包括密码计算资源和密钥管理资源。
通过本申请实施例的密码功能组件,密钥管理人员能够进行密钥管理,上层业务应用能够通过接口实现其所需的密码服务。
在一些实施例中,所述宿主机还包括所述密码功能组件。
在一些实施例中,所述密码功能组件包括至少一台密码机、密码卡或者密码计算资源池;其中,所述至少一台密码机被配置为与所述宿主机通过有线或者无线方式连接以向用户提供密码资源计算和密钥管理。
本申请实施例既可以在宿主机上设置密码卡来实现密码功能组件,也可以采用独立于宿主机的一台或多台密码机来实现密码功能组件,保证了合规性,更容易进行安全控制。
第二方面,本申请实施例提供一种密码提供***,所述***包括:宿主机,被配置为根据运行于虚拟机中的虚拟密码模块和运行于虚拟化容器中的虚拟密码后端模块将由密码功能组件提供的密码资源映射至所述虚拟机;至少一台密码机,被配置为向所述宿主机提供所述密码资源。
第三方面,本申请实施例提供一种提供密码资源的方法,所述方法包括:确认租户所需的密码服务;向所述租户用于提供虚拟密码服务的产品,其中,所述产品包括虚拟机镜像、云主机或者虚拟密码模块的驱动程序;通过所述产品并依据宿主机上的虚拟机和虚拟化容器获取所述密码服务;其中,所述虚拟机包括表现层的虚拟密码模块,所述虚拟化容器中运行虚拟密码后端模块,所述虚拟密码模块和所述虚拟密码后端模块用于将由密码功能组件提供的所述密码服务映射至所述虚拟机。
本申请实施例可以使得租户通过租用带有密码模块的虚拟机,并安装相应的网络服务软件和管理软件形成虚拟化形式的密码产品。
在一些实施例中,所述密码功能组件的密码资源包括密钥管理单元和密码计算资源池,所述方法还包括:确认启动初始化操作;通过所述虚拟密码模块封装初始化命令,并通知所述虚拟化容器;所述虚拟化容器调用所述密钥管理单元确认所述租户具有权限;通过所述密码计算资源池产生主密钥和基于所述主密钥得到至少一个密钥;保存所述租户主密钥,完成所述初始化操作。
本申请实施例通过初始化操作可以使得虚拟密码模块从密码功能组件获取主密钥等密钥相关信息。也就是说,本申请实施例通过虚拟化容器和虚拟密码模块通过传输密钥相关的命令来完成对虚拟密码模块的初始化,即使得虚拟密码模块从密码功能组件获取包括主密钥等的密钥数据。
在一些实施例中,所述至少一个密钥包括多级。
本申请实施例可以通过初始化解决多级密钥的相关密钥的获取问题。
在一些实施例中,所述方法还包括根据所述至少一个密钥完成所需的数据加密、数据解密、数字签名、验证数字签名、摘要计算、非对称加密和解密或者消息验证码。
本申请实施例可以使得租户通过虚拟机中应用程序呈现的虚拟密码模块的接口模块来从与宿主机相连的密码资源中获取密钥服务功能。
在一些实施例中,当所述密码功能包括所述数据加密时,所述接收通过所述虚拟密码模块的接口模块输入的所述密码服务的请求指令并基于所述请求指令由所述密码功能组件完成所需的密码服务,包括:通过所述虚拟密码模块封装的密码会话初始化指令和所述虚拟化容器建立宿主机与所述密码功能组件之间加密会话;通过所述虚拟密码模块封装的密码会话操作指令和所述虚拟化容器向所述密码功能组件输入待加密数据,完成加密得到加密结果并结束所述加密会话,其中,在一次会话中,可多次输入加密数据;返回所述加密结果。
在一些实施例中,所述虚拟机运行于宿主机,其中,所述虚拟机和所述宿主机基于Virtio机制、TCP协议或者HTTP协议进行通信。本申请实施例通过Virtio机制来将虚拟机命令发送至主机侧,具体地说是发送至虚拟化容器中,完成双方的信息交互。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的云端服务商和租户组成的密码服务***的示意图;
图2为本申请实施例提供的一种宿主机及与其连接的密码机的结构示意图;
图3为本申请实施例提供的又一种宿主机的组成结构示意图;
图4为本申请实施例提供的又一种宿主机的组成结构示意图;
图5为本申请实施例提供的虚拟密码模块的结构示意图;
图6为本申请实施例提供的提供密码资源的方法的流程图;
图7为本申请实施例提供的初始化虚拟密码模块的流程图;
图8为本申请实施例提供的对数据进行加密的流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
下面介绍一下相关技术及相关技术存在的缺陷。通常,使用密码技术对云服务的虚拟机上业务应用的保护方法有以下几种:1)云密码机方式,云密码机是在实体密码机上,通过底层的硬件、软件虚拟化方式,将一台实体密码机虚拟化为多台,通过虚拟化网络技术,将虚拟密码机接入到用户业务虚拟专有网络VPC(Virtual Private Cloud)中,从而形成一个与业务服务***和硬件密码机这样与传统业务接入密码机模式基本一致的***。2)密码接口服务方式,密码接口服务方式是指将实体密码机等设备、软件通过服务封装形成对外服务,向外提供SDK接口或基于TCP/HTTP报文服务,部署在虚拟机上的业务***调用服务的SDK,或向服务的URL发送符合通信协议的报文请求,来调用密码功能。3)软件密码实现方式,软件密码方式是指在虚拟机上,通过软件方式实现所需的密码功能。例如使用OpenSSL、JCE等方式实现密码计算,通过建立基于数据库和文件***的密钥管理***。4)使用Passthrough方式或SR-IOV方式,Pass-Through是一种设备虚拟化方式,这种方式允许将宿主机中的物理PCI设备直接分配给客户机使用。虚拟机以独占方式使用宿主机上的设备,一个宿主机上安装的设备,只能分配给一个虚拟机。例如,宿主机可以将自身上安装的实体密码卡映射为虚拟机的密码卡,为虚拟机提供密码能力。SR-IOV(Single Root I/OVirtualization and sharing)是PCI-SIG组织定义的规范,它定义了一个标准化的机制用以原生地支持实现多个客户机共享一个设备。SR-IOV使得一个物理设备能被配置为多个功能单元,例如,实体机上部署的支持SR-IOV的密码卡能够映射为多台虚拟机上的多个密码卡,提供安全功能。下面简要阐述上述四种技术方案存在的缺陷:第一种方式,服务的最小粒度是一台虚拟的密码机,因而,因而其计算资源共享不易于做到细粒度,用户租用一台虚拟密码机后必须为其预留资源,导致资源浪费,影响密码服务***的水平扩展能力;方式二的不足之处在于,因为没有一个模块作为租户的”端点“,租户不易对一组API接口或通讯报文机制进行管理;方式三的不足在于,软件密码模块在密钥保护上难以达到硬件的安全程度,存在密钥泄漏和密码机制被恶意修改、绕过的风险。
请参看图1,图1为云端服务商和租户组成的密码服务***,该密码服务***包括云端服务商的宿主机10以及租户的接入设备20,其中,宿主机10和接入设备20通过网络160连接。宿主机10中可以集成用于为租户提供其所需的密码服务的密码卡(图1未示出)也可以与一台或多台密码机(该密码机具有向租户提供其所需的密码服务的功能)(图1未示出)连接,以使租户通过密码卡或者密码机来获取密码管理服务和密码计算功能。
本申请实施例中云服务厂商在安装部署宿主机10上的虚拟化容器软件时,需要在虚拟化容器中包含虚拟密码后端模块(即VCBE模块,见图2或图3),或支持VCBE功能,在其提供的虚拟机镜像中包含虚拟密码模块(即VCM模块,见图2或图3);租户在通过接入设备20和网络160租用云服务厂商的云虚拟主机(即虚拟机)时,可以根据情况选择包含虚拟密码模块的虚拟机。如果客户选择了包含虚拟密码模块VCM,在云服务厂商向租户分配虚拟机VM时,应向租户提供包含了虚拟密码模块(即VCM模块)的虚拟机镜像;租户启动云虚拟主机后,可根据自己的需要来初始化VCM,初始化的过程如下文所述。
本申请实施例可以通过在宿主机上的虚拟机(VM)和虚拟化服务层相互协调配合的机制,将宿主机10这一侧合规的密码计算能力和密码管理能力映射到虚拟机(图1为示出)中,密码计算能力可以包括密码计算、密钥管理、随机数产生等等。本申请实施例的密码计算能力可以向租户呈现为一个基于虚拟密码模块的单独的密码模块,密钥管理人员能够通过操作密码模块进行密钥管理,上层业务应用能够通过调用该密码模块的接口实现其所需的密码功能。
下面通过图2-图5进一步示例性阐述宿主机以及宿主机侧的密码功能组件。
如图2所示,本申请实施例提供一种宿主机10,其上至少运行一个虚拟机,所述宿主机包括:运行于所述虚拟机100的虚拟密码模块110;虚拟密码后端模块210,被配置为将由密码功能组件实现的密码功能映射至所述虚拟密码模块110,其中,所述密码功能包括密码计算或者密钥管理。本申请实施例的虚拟密码模块所呈现的密码计算、密钥管理都是在宿主机侧的密码资源中完成,因而更容易实现合规性,更容易进行安全控制。
需要说明的是,本申请实施例的密码功能组件的存在形式可以包括至少两个示例。作为一个示例,如图2所示的,密码功能组件包括至少一台密码机500,所述至少一台密码机500被配置为与所述宿主机通过有线或者无线方式连接以向用户提供密码资源计算和密钥管理。作为又一个示例,如图3所示,密码功能组件为宿主机10的实体硬件400中包括的密码卡410。也就是说,图2和图3的差异主要在于,密码功能组件的方式不同,图2的密码功能组件为至少一台密码机。图2是宿主机与至少一台密码机相连,以将至少一台密码机提供的密钥管理功能资源或者密钥服务资源映射至虚拟密码模块110。图3的密码功能组件为集成在宿主机10中的密码卡,宿主机通过密码卡可以将该密码卡的密钥管理功能资源或者密钥服务资源映射至虚拟密码模块110。也就是说,本申请实施例既可以在宿主机上设置密码卡来实现密码功能组件,也可以采用独立于宿主机的一台或多台密码机来实现密码功能组件,保证了合规性,更容易进行安全控制。
为了进一步提升密码服务的安全性,作为一个示例,如图2和图3所示,虚拟密码后端模块210可以运行于虚拟化容器200中。虚拟化容器200可以与虚拟密码模块110双向通信,以接收来自于虚拟密码模块110的密钥管理请求或者密码服务请求相关的命令,或者向虚拟密码模块110返回来自于密码功能组件(例如,图2的至少一台密码机500、图3的密码卡410或者图4的密码计算资源池420)返回的密钥信息或者加密后的数据或者数字签名等信息。本申请实施例通过虚拟化容器隔离密码运算操作,保证了密码服务的安全可靠。
为了将密码功能组件的密钥管理功能和密码服务功能映射至虚拟密码模块110,作为一个示例,如图5所示,虚拟密码模块110可以包括:驱动模块111,被配置为驱动所述虚拟密码后端模块210和所述密码功能组件(例如,图2的至少一台密码机500、图3的密码卡410或者图4的密码计算资源池420)完成所述密码计算或者密钥管理;管理模块112,被配置为启动初始化操作以使所述密码功能组件至少产生主密钥;接口模块113,被配置为接收来自于用户的密码服务指令并接收来自于所述密码功能组件的密码信息,其中,所述密码服务指令包括加密数据的服务指令或者数字签名的服务指令。在一些示例中,当密码为多级时,管理模块112也用于产生除主密钥之外的其他密钥。在一些示例中,对于数字加密服务,密码功能组件得到的密码信息可以包括加密后的数据。本申请实施例部署在虚拟机中的虚拟密码模块可以使得相关人员通过管理模块完成密钥管理相关的操作,可以使用户通过应用程序接口发出密码服务指令并进一步由驱动模块驱动虚拟密码后端模块和密码功能组件以从密码功能组件中获取所需的密码服务。例如,接口模块113被配置为封装一些指令呢,例如,密码会话初始化命令、密码会话更新命令、密码会话操作命令。例如,密码服务指令包括请求密码服务的指令。
在一些实施例中,所述密码功能组件包括密码计算资源和密钥管理资源。通过本申请实施例的密码功能组件,密钥管理人员能够进行密钥管理,上层业务应用能够通过接口实现其所需的密码功能。例如,密钥管理是根据安全策略,对密钥的产生、分发、存储、使用、更新、归档、撤销、备份、恢复和销毁等进行全生命周期的管理。
如图2所示,本申请实施例提供一种密码提供***,所述***包括:宿主机10,被配置为根据运行于虚拟机中的虚拟密码模块和运行于虚拟化容器中的虚拟密码后端模块将由密码功能组件提供的密码资源映射至所述虚拟机;至少一台密码机500,被配置为向所述宿主机提供所述密码资源。对于密码提供***包括的虚拟密码模块110或者虚拟密码后端模块等的功能可参考上文描述,在此不做过多赘述。
可以理解的是,图2和图3的宿主机10还可以包括宿主机操作***300,或者裸机上运行的Hypervisor(虚拟化层),或称为虚拟化容器200。
下面结合图6-图8示例性说明本申请实施例的提供密码资源的方法。
如图6所示,本申请实施例提供一种提供密码资源的方法,所述方法可以包括:S101,确认租户所需的密码服务;S102,向所述租户提供用于虚拟密码服务的产品,其中,所述产品包括虚拟机镜像、云主机或者虚拟密码模块的驱动程序;S103,通过所述产品并依据宿主机上的虚拟机和虚拟化容器获取所述密码服务;其中,所述虚拟机包括表现层的虚拟密码模块,所述虚拟化容器中运行虚拟密码后端模块,所述虚拟密码模块和所述虚拟密码后端模块用于将由密码功能组件提供的所述密码服务映射至所述虚拟机。本申请实施例可以使得租户通过租用带有密码模块的虚拟机,并安装相应的网络服务软件和管理软件形成虚拟化形式的密码产品。例如,S102,向所述租户提供用于虚拟密码服务的产品的种类包括一个虚拟机镜像,或一台云主机,或一套虚拟密码模块的驱动程序。租户或者用户完成安装或租用,缴费后即可使用虚拟密码服务。
虚拟机可以包括向用户提供包括虚拟密码模块的虚拟机镜像库。
需要说明的是,云服务厂商在安装部署宿主机10上的虚拟化容器软件时,需要在虚拟化容器中包含虚拟密码后端(VCBE模块),或支持VCBE功能,在其提供的虚拟机镜像中包含虚拟密码模块(VCM模块);租户在租用云虚拟主机时,可以根据情况选择包含虚拟密码模块,如果客户选择包含VCM,在分配虚拟机VM给租户时,应选择包含了虚拟密码模块VCM模块的虚拟机镜像;租户启动云虚拟主机(即虚拟机)后,可根据自己的需要来初始化VCM。
当所述密码资源由包括密钥管理单元和密码计算资源池的密码组件提供,也就是说所述密码功能组件的密码资源包括密钥管理单元和密码计算资源池,所述初始化的过程还可以包括:确认启动初始化操作;通过所述虚拟密码模块封装初始化命令,并通知所述虚拟化容器;所述虚拟化容器调用所述密钥管理单元确认所述租户具有权限;通过所述密码计算资源池产生主密钥和基于所述主密钥得到至少一个密钥(例如,至少一个密钥可以包括多级);保存所述加强租户主密钥,完成所述初始化操作。本申请实施例通过虚拟化容器和虚拟密码模块通过传输密钥相关的命令来完成对虚拟密码模块的初始化,即使得虚拟密码模块从密码功能组件获取包括主密钥等的密钥数据。
作为一个示例,采用Virtio机制完成虚拟机与宿主机的命令传输,上述的初始化虚拟密码模块的方法如图7所示。
a)用户通过管理程序(即虚拟密码模块中的管理模块对应的程序)执行VCM初始化。
b)虚拟密码模块110,首先识别和认证虚拟身份是否合法,合法后判断其初始化状态,如果尚未初始化,则继续执行初始化,否则提示用户该模块已初始化,继续初始化将会重新产生主密钥,之前与密码模块相关的全部密钥和加密数据将无法再使用。如果用户选择放弃初始化,则退出初始化过程,否则先清除密码模块中主密钥,然后继续初始化;
c)VCM封装一个Virtio的CMIC(密码模块初始化命令),送入Virtio队列中,并通知虚拟化容器;
d)虚拟化容器(即虚拟密码后端模块210)接收到通知,从队列中取出CMIC(密码模块初始化命令);
e)虚拟化容器调用宿主机侧的密钥管理***,首先根据用户的服务租用状况进行策略判断,如果该租户没有权限则退出初始化,否则继续进行初始化过程,在硬件密码设备中产生主密钥CMK,使用***主密钥MK加密后得到ECMK存入密钥库中;
f)虚拟化容器(即虚拟密码后端模块210)可选将返回ECMK或密钥的标识给VCM;
g)VCM可以根据自身策略将ECMK保存ECMK,包括:
i.保存在虚拟机的磁盘上
ii.保存在用户的密钥管理***中
iii.保存在云服务商提供的密钥管理***中
iv.保存在用户的智能密码钥匙、IC卡上,或通过门限分割保存在用户的介质上
h)至此完成了VCM的初始化。
为了满足租户的密码服务需求,作为一个示例,初始化完成后,所述提供密码服务的方法还包括:根据所述至少一个密钥完成所需的数据加密、数据解密、数字签名、验证数字签名、摘要计算、非对称加密和解密或者消息验证码。例如,在所述虚拟机中恢复所述加强租户主密钥;接收通过所述虚拟密码模块的接口模块输入的所述密码服务的请求指令并基于所述请求指令由所述密码功能组件完成所需的密码服务,其中,所述密码服务的类型包括:数据加密、数据解密、数字签名、验证数字签名、摘要计算、非对称加密和解密或者消息验证码。
以数据加密的密码服务的执行过程为例示例性说明初始化完成后本申请实施例的提供密码的方法。当所述密码功能包括所述数据加密时,所述接收通过所述虚拟密码模块的接口模块输入的所述密码服务的请求指令并基于所述请求指令由所述密码功能组件完成所需的密码服务,包括:通过所述虚拟密码模块封装的密码会话初始化指令和所述虚拟化容器建立宿主机与所述密码功能组件之间加密会话;通过所述虚拟密码模块封装的密码会话操作指令和所述虚拟化容器向所述密码功能组件输入待加密数据,完成加密得到加密结果并结束所述加密会话;向所述应用程序返回所述加密结果。
作为一个示例,采用Virtio机制完成虚拟机与宿主机的命令传输,以上述的数据加密过程的方法示例性阐述提供密码服务的流程图,如图8所示。
采用虚拟密码模块VCM的进行数据加密的过程,以下示例以一级加密为例(以使用ECMK加密一段数据为例)。数据加密过程包括:根据用户选择ECMK的存储方式,在虚拟机中恢复ECMK;虚拟机上的应用程序调用VCM提供的接口来完成数据加密,如下:建立加密会话(CipherInit),将ECMK送入VCM接口;如果待加密数据量比较小,送入数据进行加密;如果数据量较大则分开多次送入数据(CipherUpdate)送入数据完毕,结束加密会话,返回加密结果(Final)。示例性过程可参考图8。
如图8所示,数据加密过程如下:
1.VCM封装一个Virtio的CSIC(密码会话初始化命令),送入Virtio队列中,并通知虚拟化容器;
2.虚拟化容器接收到通知,从队列中取出CSIC,按照CSIC中的要求建立实体机与密码计算设备或资源池的会话,同时在密码设备中由ECMK恢复CMK,向VCM返回会话建立成功;
3.VCM封装一个Virtio的CSOC(密码会话操作命令),送入Virtio队列中,并通知虚拟化容器;
4.虚拟化容器接收到通知,从队列中取出CSOC,对CSOC中的数据进行加密;
5.重复执行2-4,直至完成对所有待加密数据的处理;
6.VCM封装一个Virtio的CSFC(密码会话结束命令),送入Virtio队列中,并通知虚拟化容器;
7.虚拟化容器接收到通知,从队列中取出CSFC,完成数据加密,将加密结果返回给VCM。
需要说明的是,至少一个密钥包括主密钥和其他密钥多级密钥。所述通过所述密码计算资源池产生主密钥和基于所述主密钥得到至少一个密钥还包括:通过所述密码计算资源池和所述主密钥产生至少一个第二密钥。例如,对于三级密钥,初始化包括从密码功能组件获取主密钥和两个第二密钥,这两个第二密钥包括:密钥交换密钥和数据密钥。所述虚拟机和所述宿主机基于Virtio机制进行通信仅作为一个示例,本申请实施例也可以采、TCP协议或者HTTP协议来实现虚拟机与主机侧的通信。
也就是说,图8说明了VCM中数据加密的过程,与之相类似,数据解密、数字签名、验证数字签名、摘要计算、MAC计算过程都与之类似。在这些过程中,也可以根据情况采取简化处理,将所有操作合并到一个CSOC中一次完成,这样也有利于加快密码功能的处理,加快处理速度。与之类似,假如用户密钥分为多级,需要产生除CMK外的其它密钥,其实现也和上述过程相类似,产生随机数功能也类似。在此不做过多赘述。
通过本申请的一些实施例的密码功能组件(即后端密码)可以是将一个庞大(例如每秒完成上亿次加密运算)的密码服务资源映射到多个(例如,50000个)虚拟机上的密码模块中,每个虚拟密码计算能力为多次(例如,2000次),如果按照多个(例如,50000个)用户并非同时使用的话,每个虚拟机的计算能力或许能达到多次(例如,如果是50000个用户,每个虚拟机的计算能力可能达到5000次或更多。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的***来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应所述以权利要求的保护范围为准。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
Claims (12)
1.一种宿主机,其上至少运行一个虚拟机,其特征在于,所述宿主机包括:
运行于所述虚拟机的虚拟密码模块VCM;
虚拟密码后端模块,被配置为将由密码功能组件实现的密码功能映射至所述虚拟密码模块VCM,其中,所述密码功能包括密码计算或者密钥管理,所述虚拟密码后端模块运行于虚拟化容器中;
其中,所述虚拟密码模块VCM获取加密结果的过程如下:
所述虚拟密码模块VCM封装一个Virtio的密码会话初始化命令CSIC,送入第一Virtio队列中,并通知虚拟化容器;
所述虚拟化容器接收到通知,从所述第一Virtio队列中取出所述会话初始化命令CSIC,按照所述会话初始化命令CSIC中的要求建立实体机与密码计算设备或资源池的会话,同时在所述密码计算设备中由加密的租户主密钥ECMK恢复租户主密钥CMK,向所述虚拟密码模块VCM返回会话建立成功;
所述虚拟密码模块VCM封装一个Virtio的密码会话操作命令CSOC,送入第二Virtio队列中,并通知所述虚拟化容器;
所述虚拟化容器接收到通知,从所述第二Virtio队列中取出所述密码会话操作命令CSOC,对所述密码会话操作命令CSOC中的数据进行加密;
重复上述过程直至完成对所有待加密数据的处理;
所述虚拟密码模块VCM封装一个Virtio的密码会话结束命令CSFC,送入第三Virtio队列中,并通知所述虚拟化容器;
所述虚拟化容器接收到通知,从所述第三Virtio队列中取出所述密码会话结束命令CSFC,完成数据加密,将加密结果返回给所述虚拟密码模块VCM。
2.如权利要求1所述的宿主机,其特征在于,所述虚拟密码模块VCM包括:
驱动模块,被配置为驱动所述虚拟密码后端模块和所述密码功能组件完成所述密码计算或者密钥管理;
管理模块,被配置为启动初始化操作以使所述密码功能组件至少产生主密钥;
应用程序接口,被配置为接收来自于用户的密码服务指令并接收来自于所述密码功能组件的密码信息,其中,所述密码服务指令包括加密数据的服务指令或者数字签名的服务指令。
3.如权利要求1所述的宿主机,其特征在于,所述虚拟机运行于所述虚拟化容器中。
4.如权利要求1所述的宿主机,其特征在于,所述密码功能组件包括密码计算资源和密钥管理资源。
5.如权利要求4所述的宿主机,其特征在于,所述宿主机还包括所述密码功能组件。
6.如权利要求4所述的宿主机,其特征在于,所述密码功能组件包括至少一台密码机、密码卡或者密码计算资源池;其中,所述至少一台密码机被配置为与所述宿主机通过有线或者无线方式连接以向用户提供密码资源计算和密钥管理。
7.一种密码提供***,其特征在于,所述***包括:
宿主机,被配置为根据运行于虚拟机中的虚拟密码模块VCM和运行于虚拟化容器中的虚拟密码后端模块将由密码功能组件提供的密码资源映射至所述虚拟机,其中,所述虚拟密码后端模块运行于虚拟化容器中;
至少一台密码机,被配置为向所述宿主机提供所述密码资源;
其中,所述虚拟密码模块VCM获取加密结果的过程如下:
所述虚拟密码模块VCM封装一个Virtio的密码会话初始化命令CSIC,送入第一Virtio队列中,并通知虚拟化容器;
所述虚拟化容器接收到通知,从所述第一Virtio队列中取出所述会话初始化命令CSIC,按照所述会话初始化命令CSIC中的要求建立实体机与密码计算设备或资源池的会话,同时在所述密码计算设备中由加密的租户主密钥ECMK恢复租户主密钥CMK,向所述虚拟密码模块VCM返回会话建立成功;
所述虚拟密码模块VCM封装一个Virtio的密码会话操作命令CSOC,送入第二Virtio队列中,并通知所述虚拟化容器;
所述虚拟化容器接收到通知,从所述第二Virtio队列中取出所述密码会话操作命令CSOC,对所述密码会话操作命令CSOC中的数据进行加密;
重复上述过程直至完成对所有待加密数据的处理;
所述虚拟密码模块VCM封装一个Virtio的密码会话结束命令CSFC,送入第三Virtio队列中,并通知所述虚拟化容器;
所述虚拟化容器接收到通知,从所述第三Virtio队列中取出所述密码会话结束命令CSFC,完成数据加密,将加密结果返回给所述虚拟密码模块VCM。
8.一种提供密码资源的方法,其特征在于,所述方法包括:
确认租户所需的密码服务;
向所述租户提供用于虚拟密码服务的产品,其中,所述产品包括虚拟机镜像、云主机或者虚拟密码模块VCM的驱动程序;
通过所述产品并依据宿主机上的虚拟机和虚拟化容器获取所述密码服务;
其中,所述虚拟机包括表现层的虚拟密码模块VCM,所述虚拟化容器中运行虚拟密码后端模块,所述虚拟密码模块VCM和所述虚拟密码后端模块用于将由密码功能组件提供的所述密码服务映射至所述虚拟机;
所述虚拟密码模块VCM获取加密结果的过程如下:
所述虚拟密码模块VCM封装一个Virtio的密码会话初始化命令CSIC,送入第一Virtio队列中,并通知虚拟化容器;
所述虚拟化容器接收到通知,从所述第一Virtio队列中取出所述会话初始化命令CSIC,按照所述会话初始化命令CSIC中的要求建立实体机与密码计算设备或资源池的会话,同时在所述密码计算设备中由加密的租户主密钥ECMK恢复租户主密钥CMK,向所述虚拟密码模块VCM返回会话建立成功;
所述虚拟密码模块VCM封装一个Virtio的密码会话操作命令CSOC,送入第二Virtio队列中,并通知所述虚拟化容器;
所述虚拟化容器接收到通知,从所述第二Virtio队列中取出所述密码会话操作命令CSOC,对所述密码会话操作命令CSOC中的数据进行加密;
重复上述过程直至完成对所有待加密数据的处理;
所述虚拟密码模块VCM封装一个Virtio的密码会话结束命令CSFC,送入第三Virtio队列中,并通知所述虚拟化容器;
所述虚拟化容器接收到通知,从所述第三Virtio队列中取出所述密码会话结束命令CSFC,完成数据加密,将加密结果返回给所述虚拟密码模块VCM。
9.如权利要求8所述的方法,其特征在于,所述密码功能组件的密码资源包括密钥管理单元和密码计算资源池,所述方法还包括:
确认启动初始化操作;
通过所述虚拟密码模块VCM封装初始化命令,并通知所述虚拟化容器;
所述虚拟化容器调用所述密钥管理单元确认所述租户具有权限;
通过所述密码计算资源池产生主密钥和基于所述主密钥得到至少一个密钥;
保存所述租户主密钥,完成所述初始化操作。
10.如权利要求9所述的方法,其特征在于,所述至少一个密钥包括多级。
11.如权利要求9或10所述的方法,其特征在于,所述方法还包括:根据所述至少一个密钥完成所需的数据加密、数据解密、数字签名、验证数字签名、摘要计算、非对称加密和解密或者消息验证码。
12.如权利要求11所述的方法,其特征在于,当所述密码功能包括所述数据加密时,所述接收通过所述虚拟密码模块VCM的接口模块输入的所述密码服务的请求指令并基于所述请求指令由所述密码功能组件完成所需的密码服务,包括:
通过所述虚拟密码模块VCM封装的密码会话初始化指令和所述虚拟化容器建立宿主机与所述密码功能组件之间加密会话;
通过所述虚拟密码模块VCM封装的密码会话操作指令和所述虚拟化容器向所述密码功能组件输入待加密数据,完成加密得到加密结果并结束所述加密会话,其中,在一次会话中,可多次输入加密数据;
返回所述加密结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010634743.XA CN111782344B (zh) | 2020-07-02 | 2020-07-02 | 一种提供密码资源的方法、***及宿主机 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010634743.XA CN111782344B (zh) | 2020-07-02 | 2020-07-02 | 一种提供密码资源的方法、***及宿主机 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111782344A CN111782344A (zh) | 2020-10-16 |
CN111782344B true CN111782344B (zh) | 2024-06-21 |
Family
ID=72758431
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010634743.XA Active CN111782344B (zh) | 2020-07-02 | 2020-07-02 | 一种提供密码资源的方法、***及宿主机 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111782344B (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112487393A (zh) * | 2020-11-23 | 2021-03-12 | 苏州浪潮智能科技有限公司 | 一种实现虚拟机中访问pci密码卡的方法及装置 |
CN112433824B (zh) * | 2020-12-28 | 2023-06-20 | 郑州信大先进技术研究院 | 一种密码设备的虚拟化实现架构 |
CN114244565B (zh) * | 2021-11-16 | 2023-09-19 | 广东电网有限责任公司 | 密钥分发方法、装置、设备及存储介质 |
CN114338124B (zh) * | 2021-12-23 | 2024-04-12 | 成都卫士通信息产业股份有限公司 | 云密码计算服务的管理方法、***、电子设备及存储介质 |
CN115086015B (zh) * | 2022-06-10 | 2024-05-24 | 深圳市东进技术股份有限公司 | 基于OAuth认证的云密码服务平台及密码资源分配方法 |
CN115022095A (zh) * | 2022-08-09 | 2022-09-06 | 北京安盟信息技术股份有限公司 | 一种基于虚拟化技术的密码服务加速方法及装置 |
CN116260595B (zh) * | 2023-05-15 | 2023-07-25 | 豪符密码检测技术(成都)有限责任公司 | 一种云密码检测方法及*** |
CN117592039B (zh) * | 2024-01-18 | 2024-03-22 | 三未信安科技股份有限公司 | 一种灵活管理的硬件虚拟化***及方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871540A (zh) * | 2016-03-24 | 2016-08-17 | 北京江南天安科技有限公司 | 一种基于宿主机的密码机及密码运算实现方法 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104461678B (zh) * | 2014-11-03 | 2017-11-24 | 中国科学院信息工程研究所 | 一种在虚拟化环境中提供密码服务的方法和*** |
CN105184154B (zh) * | 2015-09-15 | 2017-06-20 | 中国科学院信息工程研究所 | 一种在虚拟化环境中提供密码运算服务的***和方法 |
US10048977B2 (en) * | 2015-12-22 | 2018-08-14 | Intel Corporation | Methods and apparatus for multi-stage VM virtual network function and virtual service function chain acceleration for NFV and needs-based hardware acceleration |
EP3563513A1 (en) * | 2016-12-30 | 2019-11-06 | Intel Corporation | Techniques for key exchange to establish secure connection in network function virtualization environment |
US10560525B2 (en) * | 2017-06-21 | 2020-02-11 | Juniper Networks, Inc. | Synchronization between virtual network functions and host systems |
CN108228316B (zh) * | 2017-12-26 | 2022-01-25 | 成都卫士通信息产业股份有限公司 | 一种密码设备虚拟化的方法及设备 |
-
2020
- 2020-07-02 CN CN202010634743.XA patent/CN111782344B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105871540A (zh) * | 2016-03-24 | 2016-08-17 | 北京江南天安科技有限公司 | 一种基于宿主机的密码机及密码运算实现方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111782344A (zh) | 2020-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111782344B (zh) | 一种提供密码资源的方法、***及宿主机 | |
EP3286867B1 (en) | Method, apparatus, and system for cloud-based encryption machine key injection | |
CN109858265B (zh) | 一种加密方法、装置及相关设备 | |
US9317316B2 (en) | Host virtual machine assisting booting of a fully-encrypted user virtual machine on a cloud environment | |
US9836308B2 (en) | Hardware security module access management in a cloud computing environment | |
US10122713B2 (en) | Method and device for the secure authentication and execution of programs | |
CN103069428B (zh) | 不可信云基础设施中的安全虚拟机引导 | |
EP3160103B1 (en) | Method, apparatus and system for encryption/decryption in virtualization system | |
US9846778B1 (en) | Encrypted boot volume access in resource-on-demand environments | |
EP2856386A1 (en) | Enhanced secure virtual machine provisioning | |
EP2947811A1 (en) | Method, server, host and system for protecting data security | |
EP2713548A1 (en) | Key generation, backup and migration method and system based on trusted computing | |
US20120173871A1 (en) | System for securing virtual machine disks on a remote shared storage subsystem | |
CN108418817B (zh) | 一种加密方法及装置 | |
KR20210122288A (ko) | 하드웨어 보안 모듈에 대한 보안 게스트들의 보안 키들의 바인딩 | |
CN104581214A (zh) | 基于ARM TrustZone***的多媒体内容保护方法和装置 | |
US8108940B2 (en) | Method for protecting data from unauthorised access | |
EP3555786B1 (en) | Secure provisioning of unique time-limited certificates to virtual application instances in dynamic and elastic systems | |
CN111191217B (zh) | 一种密码管理方法及相关装置 | |
US10516655B1 (en) | Encrypted boot volume access in resource-on-demand environments | |
CN113703918B (zh) | 一种基于硬件辅助的虚拟可信平台及安全处理方法 | |
CN111190700B (zh) | 针对虚拟化设备的跨域安全访问与资源控制方法 | |
CN110750326B (zh) | 一种虚拟机的磁盘加解密方法以及*** | |
US10691356B2 (en) | Operating a secure storage device | |
CN114296873B (zh) | 一种虚拟机镜像保护方法、相关器件、芯片及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |