CN112433824B - 一种密码设备的虚拟化实现架构 - Google Patents
一种密码设备的虚拟化实现架构 Download PDFInfo
- Publication number
- CN112433824B CN112433824B CN202011575763.0A CN202011575763A CN112433824B CN 112433824 B CN112433824 B CN 112433824B CN 202011575763 A CN202011575763 A CN 202011575763A CN 112433824 B CN112433824 B CN 112433824B
- Authority
- CN
- China
- Prior art keywords
- user
- password
- kernel
- encryption
- crypto
- 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
Images
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
- 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
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明提供一种密码设备的虚拟化实现架构,包括应用程序接口、linux用户空间加密接口cryptodev、linux内核加密框架Linux Kernel Crypto Framework、I/O半虚拟化程序Virtio‑Crypto、QEMU模拟器、密码卡接口和物理密码设备驱动程序,所述应用程序接口,发送用户的密码服务请求;所述linux用户空间加密接口cryptodev,将用户的密码服务请求发送至用户虚拟机内核态;所述linux内核加密框架Linux Kernel Crypto Framework,提供用户虚拟机内核态调用加密算法的数据处理接口;所述I/O半虚拟化程序Virtio‑Crypto,用于将所述linux内核加密框架Linux Kernel Crypto Framewor中的用户的密码服务请求发送至所述QEMU模拟器中;所述QEMU模拟器,用于根据用户的密码服务请求调用所述密码卡接口访问所述物理密码设备驱动程序以提供密码服务。
Description
技术领域
本发明涉及信息安全领域,具体的说,涉及了一种密码设备的虚拟化实现架构。
背景技术
现有密码服务提供模式包括两种模式,第一种基于云提供密码服务的模式,具有运算性能高,***可伸缩性强,用户对密码运算过程与数据安全可控,能够适应私有云、公有云、混合云等不同类型云计算环境的优点,不足是***结构和服务初始化流程复杂,***部署成本高,只适合为大型云平台提供安全服务。第二种密码服务提供模式是由业务云平台同时提供密码服务的模式,运算速度快,结构与协议流程简单,部署成本低,缺点是云服务提供商既要提供业务服务,同时又要提供密码服务,用户对密码运算的实现是不可控的,较适合于用户对使用成本敏感,对安全性要求不高,用户对云服务提供商完全信任的场合。
为了解决以上存在的问题,人们一直在寻求一种理想的技术解决方案。
发明内容
本发明的目的是针对现有技术的不足,从而提供了一种密码设备的虚拟化实现架构。
为了实现上述目的,本发明所采用的技术方案是:一种密码设备的虚拟化实现架构,包括应用程序接口、linux用户空间加密接口cryptodev、linux内核加密框架LinuxKernel Crypto Framework、I/O半虚拟化程序Virtio-Crypto、QEMU模拟器、密码卡接口和物理密码设备驱动程序,
所述应用程序接口,部署在用户虚拟机用户态,用于发送用户的密码服务请求;
所述linux用户空间加密接口cryptodev,部署在用户虚拟机中,用于连接用户虚拟机用户态和用户虚拟机内核态,以将用户的密码服务请求发送至用户虚拟机内核态;
所述linux内核加密框架Linux Kernel Crypto Framework,部署在用户虚拟机内核态,用于对加密算法进行管理,并提供用户虚拟机内核态调用加密算法的数据处理接口;
所述I/O半虚拟化程序Virtio-Crypto,所述I/O半虚拟化程序Virtio-Crypto的前端驱动模块部署在所述linux内核加密框架Linux Kernel Crypto Framewor中,所述I/O半虚拟化程序Virtio-Crypto的后端处理程序部署在所述QEMU模拟器中,用于将所述linux内核加密框架Linux Kernel Crypto Framewor中的用户的密码服务请求发送至所述QEMU模拟器中;
所述密码卡接口,部署在主机用户态,用于访问物理密码设备驱动程序;
所述物理密码设备驱动程序,部署在主机内核态,用于驱动物理密码设备工作,提供密码服务;
所述QEMU模拟器,部署在主机用户态,用于根据用户的密码服务请求调用所述密码卡接口访问所述物理密码设备驱动程序。
本发明相对现有技术具有突出的实质性特点和显著的进步,具体的说,本方法通过应用程序接口、linux用户空间加密接口cryptodev、linux内核加密框架Linux KernelCrypto Framework、I/O半虚拟化程序Virtio-Crypto、QEMU模拟器、密码卡接口和物理密码设备驱动程序提供了一套密码设备的虚拟化模式,使得用户可以在自己的虚拟机内通过API直接管理和使用密码设备,不存在更多的网络开销和管理环节;在该虚拟化模式下虚拟密码设备和用户虚拟机生命周期共存,虚拟密码设备只在用户虚拟机启停时直接进行分配回收,不存在中间资源回收的问题,并且所述虚拟密码设备整个生命周期为用户独享,也不存在中途密钥更换问题,所以***部署成本比较低;并且由于在硬件分配时就做了地址隔离,因此该虚拟密码设备不与云环境下的其它用户共享、安全性比较高,适用于对安全性要求比较高的专属私有云中。
该虚拟化模式化,cryptodev还可以实现硬件加速功能,且在Virtio实现了数据零复制,因此每次也实现了加速功能。
附图说明
图1是本发明所述密码设备的虚拟化实现架构的示意图。
具体实施方式
下面通过具体实施方式,对本发明的技术方案做进一步的详细描述。
实施例1
如图1所示,本实施例提供了一种密码设备的虚拟化实现架构,包括应用程序接口APP(API)、linux用户空间加密接口cryptodev、linux内核加密框架Linux Kernel CryptoFramework、I/O半虚拟化程序Virtio-Crypto、QEMU模拟器、密码卡接口USER API和物理密码设备驱动程序Dirver for Linux,
所述应用程序接口APP(API),部署在用户虚拟机用户态Guest user space,用于发送用户的密码服务请求;
所述linux用户空间加密接口cryptodev,部署在用户虚拟机中,用于连接用户虚拟机用户态Guest user space和用户虚拟机内核态Guest kernal space,以将用户的密码服务请求发送至用户虚拟机内核态Guest kernal space;
所述linux内核加密框架Linux Kernel Crypto Framework,部署在用户虚拟机内核态Guest kernal space,用于对加密算法进行管理,并提供用户虚拟机内核态调用加密算法的数据处理接口;
所述I/O半虚拟化程序Virtio-Crypto,所述I/O半虚拟化程序Virtio-Crypto的前端驱动模块部署在所述linux内核加密框架Linux Kernel Crypto Framewor中,所述I/O半虚拟化程序Virtio-Crypto的后端处理程序部署在所述QEMU模拟器中,用于将所述linux内核加密框架Linux Kernel Crypto Framewor中的用户的密码服务请求发送至所述QEMU模拟器中;
所述密码卡接口USER API,部署在主机用户态Host user space,用于访问物理密码设备驱动程序;
所述物理密码设备驱动程序Dirver for Linux,部署在主机内核态Host kernalspace,用于驱动物理密码设备工作,提供密码服务;
所述QEMU模拟器,部署在主机用户态Host user space,用于根据用户的密码服务请求调用所述密码卡接口访问所述物理密码设备驱动程序。
具体的,所述虚拟化实现架构的工作流程,包括以下步骤:
用户通过应用程序接口APP(API)发送用户的密码服务请求;
Cryptodev-linux接收到用户的密码服务请求后,将用户的密码服务请求传递给用户虚拟机内核态Guest kernal space;
用户虚拟机内核态Guest kernal space调用所述linux内核加密框架LinuxKernel Crypto Framework中的加密算法处理用户的密码服务请求;
I/O半虚拟化程序Virtio-Crypto的前端驱动模块从所述linux内核加密框架获取用户的密码服务请求,并通过中间通信模块发送至I/O半虚拟化程序Virtio的后端处理程序;
QEMU模拟器,截获用户的密码服务请求,并调用密码卡接口访问底层的物理密码设备,以提供密码服务。
具体的,cryptodev是一种linux加密接口实现方式,基于linux原生加密接口实现,不需要硬件驱动做任何修改,执行加密效率高,而且编译安装步骤更简单,只需同时***cryptodev.ko 和硬件加密引擎驱动ko 就可以用了。
在使用时,cryptodev部署于用户虚拟机中,作为一个可直连linux内核加密框架的设备连接用户态和内核态,在用户空间可充分发挥硬件加速的能力,用户在用户态虚机端通过动态库提供的API访问cryptodev,他的API与openBSD用户态API兼容,cryptodev提供了一种标准方式使得应用程序在用户虚拟机用户态能够访问内核层的密码资源。
Linux内核加密框架(Linux Kernel Crypto Framework)是内核实现的一套通用crypto算法框架,用于提供内核的密码资源,是一个独立的子***,源码位于kernel/crypto下;它实现了对算法的统一管理,并提供出统一的数据处理接口给其他子***使用;基于这套框架,用户可根据需求添加能够用物理密码设备实现的加密算法至所述linux内核加密框架,并在***启动之初将所述linux内核加密框架加载到用户虚拟机内核态。
Linux Kernel Crypto Framework透过virtio的前后端驱动把用户的密码服务请求传递给主机。
Virtio是一种I/O半虚拟化解决方案,是一套通用I/O设备虚拟化的程序,是对半虚拟化Hypervisor中的一组通用I/O设备的抽象,提供了一套上层应用与各Hypervisor虚拟化设备之间的通信框架和编程接口,减少跨平台所带来的兼容性问题,大大提高驱动程序开发效率。
Virtio使用Virtqueue来实现I/O机制,每个Virtqueue是一个承载大量数据的队列,可以根据需求动态调整virtqueue数量。Virtqueue是一个简单的结构,它识别一个可选的回调函数,一个virtio_device的引用、一个到Virtqueue操作的引用,以及一个引用使用的priv引用。
在具体实施时,Virtio包括前端驱动模块VirtIO-FE Driver和后端处理程序VirtIO- BE Driver,其中,前端驱动模块VirtIO-FE Driver存在于虚拟机,后端处理程序VirtIO- BE Driver存在于QEMU。
在前端驱动模块VirtIO-FE Driver和后端处理程序VirtIO- BE Driver之间还定义了中间层来支持虚拟机与Qemu之间的通信。
不管是什么虚拟化平台,虚拟机是运行在host内存中或者说虚拟机共享同一块内存,因此无需在同一块内存不同区域之间复制数据,只需进行简单的地址重映射即可。因此在Virtio实现了数据零复制。以网络传输为例,宿主机接收数据包后根据目的MAC地址进行数据包转发,本质上是把数据共享至用户空间应用程序,即QEMU,以实现宿主机与虚拟机的通信。
QEMU在主机用户态截获用户请求调用真正的密码卡接口USER API访问底层的物理密码设备。
最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制;尽管参照较佳实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者对部分技术特征进行等同替换;而不脱离本发明技术方案的精神,其均应涵盖在本发明请求保护的技术方案范围当中。
Claims (2)
1.一种密码设备的虚拟化实现架构,其特征在于:包括应用程序接口、linux用户空间加密接口cryptodev、linux内核加密框架Linux Kernel Crypto Framework、I/O半虚拟化程序Virtio-Crypto、QEMU模拟器、密码卡接口和物理密码设备驱动程序,
所述应用程序接口,部署在用户虚拟机用户态,用于发送用户的密码服务请求;
所述linux用户空间加密接口cryptodev,部署在用户虚拟机中,用于连接用户虚拟机用户态和用户虚拟机内核态,以将用户的密码服务请求发送至用户虚拟机内核态;
所述linux内核加密框架Linux Kernel Crypto Framework,部署在用户虚拟机内核态,用于对加密算法进行管理,并提供用户虚拟机内核态调用加密算法的数据处理接口;
所述I/O半虚拟化程序Virtio-Crypto,所述I/O半虚拟化程序Virtio-Crypto的前端驱动模块部署在所述linux内核加密框架Linux Kernel Crypto Framewor中,所述I/O半虚拟化程序Virtio-Crypto的后端处理程序部署在所述QEMU模拟器中,用于将所述linux内核加密框架Linux Kernel Crypto Framewor中的用户的密码服务请求发送至所述QEMU模拟器中;
所述密码卡接口,部署在主机用户态,用于访问物理密码设备驱动程序;
所述物理密码设备驱动程序,部署在主机内核态,用于驱动物理密码设备工作,提供密码服务;
所述QEMU模拟器,部署在主机用户态,用于根据用户的密码服务请求调用所述密码卡接口访问所述物理密码设备驱动程序。
2.根据权利要求1所述的密码设备的虚拟化实现架构,其特征在于:用户可根据需求添加能够用物理密码设备实现的加密算法至所述linux内核加密框架,并在***启动之初将所述linux内核加密框架加载到用户虚拟机内核态。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011575763.0A CN112433824B (zh) | 2020-12-28 | 2020-12-28 | 一种密码设备的虚拟化实现架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011575763.0A CN112433824B (zh) | 2020-12-28 | 2020-12-28 | 一种密码设备的虚拟化实现架构 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112433824A CN112433824A (zh) | 2021-03-02 |
CN112433824B true CN112433824B (zh) | 2023-06-20 |
Family
ID=74697003
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011575763.0A Active CN112433824B (zh) | 2020-12-28 | 2020-12-28 | 一种密码设备的虚拟化实现架构 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112433824B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113626156A (zh) * | 2021-10-14 | 2021-11-09 | 云宏信息科技股份有限公司 | 虚拟机磁盘的加密方法、***及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968746A (zh) * | 2010-09-02 | 2011-02-09 | 北京航空航天大学 | 一种内核虚拟机组织架构模式的实现方法 |
CN104461678A (zh) * | 2014-11-03 | 2015-03-25 | 中国科学院信息工程研究所 | 一种在虚拟化环境中提供密码服务的方法和*** |
CN111782344A (zh) * | 2020-07-02 | 2020-10-16 | 北京数字认证股份有限公司 | 一种提供密码资源的方法、***及宿主机 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102295960B1 (ko) * | 2015-02-10 | 2021-09-01 | 한국전자통신연구원 | 가상화 기반의 보안 서비스 제공 장치 및 제공 방법 |
CN105184154B (zh) * | 2015-09-15 | 2017-06-20 | 中国科学院信息工程研究所 | 一种在虚拟化环境中提供密码运算服务的***和方法 |
CN107634950A (zh) * | 2017-09-19 | 2018-01-26 | 重庆大学 | 一种利用流水线硬件设计卸载ssl/tls协议的方法 |
-
2020
- 2020-12-28 CN CN202011575763.0A patent/CN112433824B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101968746A (zh) * | 2010-09-02 | 2011-02-09 | 北京航空航天大学 | 一种内核虚拟机组织架构模式的实现方法 |
CN104461678A (zh) * | 2014-11-03 | 2015-03-25 | 中国科学院信息工程研究所 | 一种在虚拟化环境中提供密码服务的方法和*** |
CN111782344A (zh) * | 2020-07-02 | 2020-10-16 | 北京数字认证股份有限公司 | 一种提供密码资源的方法、***及宿主机 |
Non-Patent Citations (2)
Title |
---|
基于KVM-QEMU与Libvirt的虚拟化资源池构建;姚华超;王振宇;;计算机与现代化(07);全文 * |
密码卡虚拟化技术研究与实现;苏振宇;;集成技术(03);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN112433824A (zh) | 2021-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7941812B2 (en) | Input/output virtualization through offload techniques | |
EP2831732B1 (en) | System and method for supporting live migration of virtual machines in an infiniband network | |
EP2992422B1 (en) | Undifferentiated service domains | |
US9201704B2 (en) | System and method for migrating application virtual machines in a network environment | |
US9397954B2 (en) | System and method for supporting live migration of virtual machines in an infiniband network | |
US8849941B2 (en) | Virtual desktop configuration and operation techniques | |
JP5275407B2 (ja) | 複数の仮想マシンで共有されるネットワークインターフェースのための方法 | |
CN108228316B (zh) | 一种密码设备虚拟化的方法及设备 | |
US7743107B2 (en) | System and method for using remote module on VIOS to manage backups to remote backup servers | |
US20110296411A1 (en) | Kernel Bus System to Build Virtual Machine Monitor and the Performance Service Framework and Method Therefor | |
US20180329828A1 (en) | Kernel-assisted inter-process data transfer | |
US20080189432A1 (en) | Method and system for vm migration in an infiniband network | |
US20090083829A1 (en) | Computer system | |
US20120110574A1 (en) | Methods and systems to clone a virtual machine instance | |
US8091086B1 (en) | System and method for virtualization using an open bus hypervisor | |
CN103207965A (zh) | 一种虚拟环境下License认证的方法及装置 | |
CN112433824B (zh) | 一种密码设备的虚拟化实现架构 | |
US11954198B2 (en) | Unifying hardware trusted execution environment technologies using virtual secure enclave device | |
CN113242175B (zh) | 一种基于spdk的存储网关及其实现方法 | |
CN116418522A (zh) | 一种基于虚拟化技术的云服务器密码机*** | |
WO2007123025A1 (ja) | 組込機器による外部との通信を代行サーバにより制御させる技術 | |
US20230138867A1 (en) | Methods for application deployment across multiple computing domains and devices thereof | |
US20240126580A1 (en) | Transparently providing virtualization features to unenlightened guest operating systems | |
LU500447B1 (en) | Nested isolation host virtual machine | |
WO2024081072A1 (en) | Transparently providing virtualization features to unenlightened guest operating systems |
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 |