CN112487393A - 一种实现虚拟机中访问pci密码卡的方法及装置 - Google Patents

一种实现虚拟机中访问pci密码卡的方法及装置 Download PDF

Info

Publication number
CN112487393A
CN112487393A CN202011319143.0A CN202011319143A CN112487393A CN 112487393 A CN112487393 A CN 112487393A CN 202011319143 A CN202011319143 A CN 202011319143A CN 112487393 A CN112487393 A CN 112487393A
Authority
CN
China
Prior art keywords
virtual machine
pci
module
virtio
password card
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.)
Withdrawn
Application number
CN202011319143.0A
Other languages
English (en)
Inventor
李东世
苏广峰
郭敬宇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Suzhou Inspur Intelligent Technology Co Ltd
Original Assignee
Suzhou Inspur Intelligent Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Suzhou Inspur Intelligent Technology Co Ltd filed Critical Suzhou Inspur Intelligent Technology Co Ltd
Priority to CN202011319143.0A priority Critical patent/CN112487393A/zh
Publication of CN112487393A publication Critical patent/CN112487393A/zh
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/34User authentication involving the use of external additional devices, e.g. dongles or smart cards
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45537Provision of facilities of other operating environments, e.g. WINE

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Stored Programmes (AREA)

Abstract

本发明提供一种实现虚拟机中访问PCI密码卡的方法及装置,所述方法包括如下步骤:S1.为服务器配置PCI密码卡的硬件软件环境,安装PCI密码卡及其设备驱动,将环境配置完成的服务器作为宿主机,并设置宿主机开启CPU虚拟化;S2.在宿主机安装qemu工具,并为qemu工具配置kvm模块、crypto密码模块、virtio虚拟IO模块及virtio后端驱动;S3.通过qemu工具创建镜像,并启动虚拟机,在虚拟机安装virtio前端驱动;S4.虚拟机中应用通过virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。

Description

一种实现虚拟机中访问PCI密码卡的方法及装置
技术领域
本发明属于信息安全技术领域,具体涉及一种实现虚拟机中访问PCI密码卡的方法及装置。
背景技术
kvm-qemu,是一种linux***下的虚拟化方案,kvm是linux内核提供的虚拟化架构,qemu是一个主机上的虚拟机控制器。
virtio,是虚拟IO半虚拟化技术。
密码卡作为信息安全领域重要的基础设备,提供了一系列的信息安全基础功能,例如真随机数的生成、数据的加密解密、文件的签名验签、密码的生成和安全存储,通过搜集环境物理噪声生成的真随机数具有更高的安全性,基于硬件的加解密操作能够提供更快的速度,相较于基于软件的实现,密码卡能够提供更安全、可靠、高性能的密码运算服务,在一些关键的安全领域,例如CA***、秘钥管理***、VPN安全网关起到重要作用,广泛应用于政府、银行、证券、电子商务、电信等行业,PCI密码卡是一种通过PCI/PCIe接口连接到计算机主板的密码卡。
在信息安全领域,涉及到关键密码计算的服务,一般需要部署到安装有密码卡设备的物理服务器上,因为这些密码计算依赖于密码卡设备,这就增加了设备采购和运维成本。虽然当前已经有基于全虚拟化技术实现的在虚拟机中访问PCI密码卡的方案,但是由于全虚拟化技术中涉及到数据传输链路长,数据在虚拟机和宿主机之间传输过程中拷贝次数多,导致虚拟机内部访问宿主机PCI密码卡设备IO性能损耗严重。
此为现有技术的不足,因此,针对现有技术中的上述缺陷,提供一种实现虚拟机中访问PCI密码卡的方法及装置,是非常有必要的。
发明内容
针对现有技术的上述虚拟机中访问PCI密码卡采用全虚拟化技术导致数量链路长,数据在虚拟机和宿主机之间传输过程中拷贝次数多,导致虚拟机内部访问宿主机PCI密码卡设备IO性能损耗严重的缺陷,本发明提供一种实现虚拟机中访问PCI密码卡的方法及装置,以解决上述技术问题。
第一方面,本发明提供一种实现虚拟机中访问PCI密码卡的方法,包括如下步骤:
S1.为服务器配置PCI密码卡的硬件软件环境,安装PCI密码卡及其设备驱动,将环境配置完成的服务器作为宿主机,并设置宿主机开启CPU虚拟化;
S2.在宿主机安装qemu工具,并为qemu工具配置kvm模块、crypto密码模块、virtio虚拟IO模块及virtio后端驱动;
S3.通过qemu工具创建镜像,并启动虚拟机,在虚拟机安装virtio前端驱动;
S4.虚拟机中应用通过virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。
进一步地,步骤S1具体步骤如下:
S11.将PCI密码卡安装到服务器的PCI或者PCIe插槽;
S12.在服务器安装linux操作***及PCI密码卡设备驱动;
S13.将配置完成PCI密码卡硬件软件环境的服务器作为宿主机;
S14.检查宿主机是否开启CPU虚拟化;
若是,进入步骤S2;
若否,进入步骤S15;
S15.设置宿主机在BIOS下开启CPU虚拟化,进入步骤S2。
进一步地,步骤S2具体步骤如下:
S21.在宿主机安装qemu工具;
S22.编译qemu工具,设置kvm模块及crypto密码模块功能开启;
S23.判断kvm模块是否安装成功;
若是,进入步骤S24;
若否,返回步骤S22;
S24.在宿主机启动qemu工具,添加cryptodev密码模块驱动参数及virtio虚拟IO模块参数;
S25.在宿主机linux操作***安装virtio后端驱动。
进一步地,步骤S3具体步骤如下:
S31.通过qemu工具创建镜像,启动虚拟机;
S32.判断虚拟机linux操作***的内核是否满足版本要求;
若是,进入步骤S33;
若否,在虚拟机安装符合版本要求的linux操作***内核,进入步骤S33;
S33.判断虚拟机linux***内核是否安装virtio前端驱动;
若是,进入步骤S4;
若否,在虚拟机linux***内核安装virtio前端驱动,进入步骤S4。
进一步地,步骤S4具体步骤如下:
S41.判断虚拟机中应用是否要访问宿主机PCI密码卡完整功能;
若是,进入步骤S42;
若否,进入步骤S44;
S42.在虚拟机linux操作***安装PCI密码卡匹配的SDK模块;
S43.虚拟机中应用通过SDK模块访问virtio前端驱动,进入步骤S45;
S44.虚拟机中应用通过linux操作***的cryptodev密码模块驱动参数访问virtio前端驱动;
S45.virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。
第二方面,本发明提供一种实现虚拟机中访问PCI密码卡的装置,包括:
PCI密码卡环境配置模块,用于为服务器配置PCI密码卡的硬件软件环境,安装PCI密码卡及其设备驱动,将环境配置完成的服务器作为宿主机,并设置宿主机开启CPU虚拟化;
qemu工具安装模块,用于在宿主机安装qemu工具,并为qemu工具配置kvm模块、crypto密码模块、virtio虚拟IO模块及virtio后端驱动;
虚拟机启动模块,用于通过qemu工具创建镜像,并启动虚拟机,在虚拟机安装virtio前端驱动;
PCI密码卡访问模块,用于设置虚拟机中应用通过virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。
进一步地,PCI密码卡环境配置模块包括:
PCI密码卡安装单元,用于将PCI密码卡安装到服务器的PCI或者PCIe插槽;
PCI密码卡驱动安装单元,用于在服务器安装linux操作***及PCI密码卡设备驱动;
宿主机设置单元,用于将配置完成PCI密码卡硬件软件环境的服务器作为宿主机;
CPU虚拟化开启检查单元,用于检查宿主机是否开启CPU虚拟化;
CPU虚拟化开启单元,用于宿主机未开启CPU虚拟化时,设置宿主机在BIOS下开启CPU虚拟化。
进一步地,qemu工具安装模块包括:
qemu工具安装单元,用于在宿主机安装qemu工具;
功能模块开启单元,用于编译qemu工具,设置kvm模块及crypto密码模块功能开启;
kvm模块安装判断单元,用于判断kvm模块是否安装成功;
参数添加单元,用于在kvm模块安装成功时,在宿主机启动qemu工具,添加cryptodev密码模块驱动参数及virtio虚拟IO模块参数;
virtio后端驱动安装单元,用于在宿主机linux操作***安装virtio后端驱动。
进一步地,虚拟机启动模块包括:
虚拟机启动单元,用于通过qemu工具创建镜像,启动虚拟机;
linux内核版本判断单元,用于判断虚拟机linux操作***的内核是否满足版本要求;
linux操作***内核相应版本安装单元,用于虚拟机linux操作***的内核不满足版本要求时,在虚拟机安装符合版本要求的linux操作***内核;
virtio前端驱动安装判断单元,用于判断虚拟机linux***内核是否安装virtio前端驱动;
virtio前端驱动安装单元,用于在虚拟机linux***内核未安装virtio前端驱动,在虚拟机linux***内核安装virtio前端驱动。
进一步地,PCI密码卡访问模块包括:
PCI密码卡功能访问判断单元,用于判断虚拟机中应用是否要访问宿主机PCI密码卡完整功能;
SDK模块安装单元,用于虚拟机中应用需要访问宿主机PCI密码卡完整功能时,在虚拟机linux操作***安装PCI密码卡匹配的SDK模块;
SDK模块访问前端驱动单元,用于设置虚拟机中应用通过SDK模块访问virtio前端驱动,进入步骤S45;
cryptodev密码模块访问前端驱动单元,用于虚拟机中应用不需要访问宿主机PCI密码卡完整功能,设置虚拟机中应用通过linux操作***的cryptodev密码模块驱动参数访问virtio前端驱动;
PCI密码卡访问单元,用于设置virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。
本发明的有益效果在于,
本发明提供的实现虚拟机中访问PCI密码卡的方法及装置,通过virtio虚拟IO模块的半虚拟化技术,宿主机的virtio后端驱动由qemu实现,完成与PCI密码卡设备的数据交互,同时在虚拟机机的操作***安装virtio前端驱动,完成与用户态应用程序数据交互,最终virtio前端驱动和后端驱动之间数据交互通过virtio虚拟IO模块来完成;宿主机的virtio后端驱动与PCI密码卡的设备驱动完成数据交换,通过宿主机将PCI密码卡的密码计算功能传递到virtio虚拟IO模块,再到虚拟机;
本发明利用virtio后端驱动与PCI密码卡设备驱动交互,打通了虚拟机内应用于PCI密码卡设备硬件通信链路;利用了virtio虚拟IO模块的零拷贝计算,降低了虚拟机内应用访问外部PCI密码卡设备的性能损耗;
在虚拟机内部提供了外部PCI密码卡不同等级的访问能力,对于轻量级的密码运算应用,可以通过linux操作***的cryptodev密码模块利用PCI密码卡的运算资源,对于安全级别更高的应用,可以调用设备厂家SDK模块实现对PCI密码卡的全功能访问。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
由此可见,本发明与现有技术相比,具有突出的实质性特点和显著进步,其实施的有益效果也是显而易见的。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明的方法流程示意图一;
图2是本发明的方法流程示意图二;
图3为本发明的***示意图;
图中,1-PCI密码卡环境配置模块;1.1-PCI密码卡安装单元;1.2-PCI密码卡驱动安装单元;1.3-宿主机设置单元;1.4-CPU虚拟化开启检查单元;1.5-CPU虚拟化开启单元;2-qemu工具安装模块;2.1-qemu工具安装单元;2.2-功能模块开启单元;2.3-kvm模块安装判断单元;2.4-参数添加单元;2.5-virtio后端驱动安装单元;3-虚拟机启动模块;3.1-虚拟机启动单元;3.2-linux内核版本判断单元;3.3-linux操作***内核相应版本安装单元;3.4-virtio前端驱动安装判断单元;3.5-virtio前端驱动安装单元;4-PCI密码卡访问模块;4.1-PCI密码卡功能访问判断单元;4.2-SDK模块安装单元;4.3-SDK模块访问前端驱动单元;4.4-cryptodev密码模块访问前端驱动单元;4.5-PCI密码卡访问单元。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
实施例1:
如图1所示,本发明提供一种实现虚拟机中访问PCI密码卡的方法,包括如下步骤:
S1.为服务器配置PCI密码卡的硬件软件环境,安装PCI密码卡及其设备驱动,将环境配置完成的服务器作为宿主机,并设置宿主机开启CPU虚拟化;
S2.在宿主机安装qemu工具,并为qemu工具配置kvm模块、crypto密码模块、virtio虚拟IO模块及virtio后端驱动;
S3.通过qemu工具创建镜像,并启动虚拟机,在虚拟机安装virtio前端驱动;
S4.虚拟机中应用通过virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。
实施例2:
如图2所示,本发明提供一种实现虚拟机中访问PCI密码卡的方法,包括如下步骤:
S1.为服务器配置PCI密码卡的硬件软件环境,安装PCI密码卡及其设备驱动,将环境配置完成的服务器作为宿主机,并设置宿主机开启CPU虚拟化;具体步骤如下:
S11.将PCI密码卡安装到服务器的PCI或者PCIe插槽;
S12.在服务器安装linux操作***及PCI密码卡设备驱动;
S13.将配置完成PCI密码卡硬件软件环境的服务器作为宿主机;
S14.检查宿主机是否开启CPU虚拟化;
若是,进入步骤S2;
若否,进入步骤S15;
S15.设置宿主机在BIOS下开启CPU虚拟化,进入步骤S2;
S2.在宿主机安装qemu工具,并为qemu工具配置kvm模块、crypto密码模块、virtio虚拟IO模块及virtio后端驱动;具体步骤如下:
S21.在宿主机安装qemu工具;
S22.编译qemu工具,设置kvm模块及crypto密码模块功能开启;
S23.判断kvm模块是否安装成功;
若是,进入步骤S24;
若否,返回步骤S22;
S24.在宿主机启动qemu工具,添加cryptodev密码模块驱动参数及virtio虚拟IO模块参数;
S25.在宿主机linux操作***安装virtio后端驱动;
S3.通过qemu工具创建镜像,并启动虚拟机,在虚拟机安装virtio前端驱动;具体步骤如下:
S31.通过qemu工具创建镜像,启动虚拟机;
S32.判断虚拟机linux操作***的内核是否满足版本要求;
若是,进入步骤S33;
若否,在虚拟机安装符合版本要求的linux操作***内核,进入步骤S33;
S33.判断虚拟机linux***内核是否安装virtio前端驱动;
若是,进入步骤S4;
若否,在虚拟机linux***内核安装virtio前端驱动,进入步骤S4;
S4.虚拟机中应用通过virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速;具体步骤如下:
S41.判断虚拟机中应用是否要访问宿主机PCI密码卡完整功能;
若是,进入步骤S42;
若否,进入步骤S44;
S42.在虚拟机linux操作***安装PCI密码卡匹配的SDK模块;
S43.虚拟机中应用通过SDK模块访问virtio前端驱动,进入步骤S45;
S44.虚拟机中应用通过linux操作***的cryptodev密码模块驱动参数访问virtio前端驱动;
S45.virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。
实施例3:
如图3所示,本发明提供一种实现虚拟机中访问PCI密码卡的装置,包括:
PCI密码卡环境配置模块1,用于为服务器配置PCI密码卡的硬件软件环境,安装PCI密码卡及其设备驱动,将环境配置完成的服务器作为宿主机,并设置宿主机开启CPU虚拟化;PCI密码卡环境配置模块1包括:
PCI密码卡安装单元1.1,用于将PCI密码卡安装到服务器的PCI或者PCIe插槽;
PCI密码卡驱动安装单元1.2,用于在服务器安装linux操作***及PCI密码卡设备驱动;
宿主机设置单元1.3,用于将配置完成PCI密码卡硬件软件环境的服务器作为宿主机;
CPU虚拟化开启检查单元1.4,用于检查宿主机是否开启CPU虚拟化;
CPU虚拟化开启单元1.5,用于宿主机未开启CPU虚拟化时,设置宿主机在BIOS下开启CPU虚拟化;
qemu工具安装模块2,用于在宿主机安装qemu工具,并为qemu工具配置kvm模块、crypto密码模块、virtio虚拟IO模块及virtio后端驱动;qemu工具安装模块2包括:
qemu工具安装单元2.1,用于在宿主机安装qemu工具;
功能模块开启单元2.2,用于编译qemu工具,设置kvm模块及crypto密码模块功能开启;
kvm模块安装判断单元2.3,用于判断kvm模块是否安装成功;
参数添加单元2.4,用于在kvm模块安装成功时,在宿主机启动qemu工具,添加cryptodev密码模块驱动参数及virtio虚拟IO模块参数;
virtio后端驱动安装单元2.5,用于在宿主机linux操作***安装virtio后端驱动;
虚拟机启动模块3,用于通过qemu工具创建镜像,并启动虚拟机,在虚拟机安装virtio前端驱动;虚拟机启动模块3包括:
虚拟机启动单元3.1,用于通过qemu工具创建镜像,启动虚拟机;
linux内核版本判断单元3.2,用于判断虚拟机linux操作***的内核是否满足版本要求;
linux操作***内核相应版本安装单元3.3,用于虚拟机linux操作***的内核不满足版本要求时,在虚拟机安装符合版本要求的linux操作***内核;
virtio前端驱动安装判断单元3.4,用于判断虚拟机linux***内核是否安装virtio前端驱动;
virtio前端驱动安装单元3.5,用于在虚拟机linux***内核未安装virtio前端驱动,在虚拟机linux***内核安装virtio前端驱动;
PCI密码卡访问模块4,用于设置虚拟机中应用通过virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速;PCI密码卡访问模块4包括:
PCI密码卡功能访问判断单元4.1,用于判断虚拟机中应用是否要访问宿主机PCI密码卡完整功能;
SDK模块安装单元4.2,用于虚拟机中应用需要访问宿主机PCI密码卡完整功能时,在虚拟机linux操作***安装PCI密码卡匹配的SDK模块;
SDK模块访问前端驱动单元4.3,用于设置虚拟机中应用通过SDK模块访问virtio前端驱动,进入步骤S45;
cryptodev密码模块访问前端驱动单元4.4,用于虚拟机中应用不需要访问宿主机PCI密码卡完整功能,设置虚拟机中应用通过linux操作***的cryptodev密码模块驱动参数访问virtio前端驱动;
PCI密码卡访问单元4.5,用于设置virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。
对于运行在虚拟机中的普通业务,如果涉及较多加密解密、签名验签的运算,将会给CPU带来较大的负载,此时可以利用宿主机上密码卡运算资源降低CPU负载压力,提高业务的整体处理能力;
对于安全敏感的业务,需要依赖密码卡提供的安全秘钥存储、加解密运算功能,通过本发明可以将此类业务移植到虚拟机中运行,这样带来了更好的隔离环境,同时也节省了业务部署和运维成本。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

Claims (10)

1.一种实现虚拟机中访问PCI密码卡的方法,其特征在于,包括如下步骤:
S1.为服务器配置PCI密码卡的硬件软件环境,安装PCI密码卡及其设备驱动,将环境配置完成的服务器作为宿主机,并设置宿主机开启CPU虚拟化;
S2.在宿主机安装qemu工具,并为qemu工具配置kvm模块、crypto密码模块、virtio虚拟IO模块及virtio后端驱动;
S3.通过qemu工具创建镜像,并启动虚拟机,在虚拟机安装virtio前端驱动;
S4.虚拟机中应用通过virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。
2.如权利要求1所述的实现虚拟机中访问PCI密码卡的方法,其特征在于,步骤S1具体步骤如下:
S11.将PCI密码卡安装到服务器的PCI或者PCIe插槽;
S12.在服务器安装linux操作***及PCI密码卡设备驱动;
S13.将配置完成PCI密码卡硬件软件环境的服务器作为宿主机;
S14.检查宿主机是否开启CPU虚拟化;
若是,进入步骤S2;
若否,进入步骤S15;
S15.设置宿主机在BIOS下开启CPU虚拟化,进入步骤S2。
3.如权利要求2所述的实现虚拟机中访问PCI密码卡的方法,其特征在于,步骤S2具体步骤如下:
S21.在宿主机安装qemu工具;
S22.编译qemu工具,设置kvm模块及crypto密码模块功能开启;
S23.判断kvm模块是否安装成功;
若是,进入步骤S24;
若否,返回步骤S22;
S24.在宿主机启动qemu工具,添加cryptodev密码模块驱动参数及virtio虚拟IO模块参数;
S25.在宿主机linux操作***安装virtio后端驱动。
4.如权利要求3所述的实现虚拟机中访问PCI密码卡的方法,其特征在于,步骤S3具体步骤如下:
S31.通过qemu工具创建镜像,启动虚拟机;
S32.判断虚拟机linux操作***的内核是否满足版本要求;
若是,进入步骤S33;
若否,在虚拟机安装符合版本要求的linux操作***内核,进入步骤S33;
S33.判断虚拟机linux***内核是否安装virtio前端驱动;
若是,进入步骤S4;
若否,在虚拟机linux***内核安装virtio前端驱动,进入步骤S4。
5.如权利要求1所述的实现虚拟机中访问PCI密码卡的方法,其特征在于,步骤S4具体步骤如下:
S41.判断虚拟机中应用是否要访问宿主机PCI密码卡完整功能;
若是,进入步骤S42;
若否,进入步骤S44;
S42.在虚拟机linux操作***安装PCI密码卡匹配的SDK模块;
S43.虚拟机中应用通过SDK模块访问virtio前端驱动,进入步骤S45;
S44.虚拟机中应用通过linux操作***的cryptodev密码模块驱动参数访问virtio前端驱动;
S45.virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。
6.一种实现虚拟机中访问PCI密码卡的装置,其特征在于,包括:
PCI密码卡环境配置模块(1),用于为服务器配置PCI密码卡的硬件软件环境,安装PCI密码卡及其设备驱动,将环境配置完成的服务器作为宿主机,并设置宿主机开启CPU虚拟化;
qemu工具安装模块(2),用于在宿主机安装qemu工具,并为qemu工具配置kvm模块、crypto密码模块、virtio虚拟IO模块及virtio后端驱动;
虚拟机启动模块(3),用于通过qemu工具创建镜像,并启动虚拟机,在虚拟机安装virtio前端驱动;
PCI密码卡访问模块(4),用于设置虚拟机中应用通过virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。
7.如权利要求6所述的实现虚拟机中访问PCI密码卡的装置,其特征在于,PCI密码卡环境配置模块(1)包括:
PCI密码卡安装单元(1.1),用于将PCI密码卡安装到服务器的PCI或者PCIe插槽;
PCI密码卡驱动安装单元(1.2),用于在服务器安装linux操作***及PCI密码卡设备驱动;
宿主机设置单元(1.3),用于将配置完成PCI密码卡硬件软件环境的服务器作为宿主机;
CPU虚拟化开启检查单元(1.4),用于检查宿主机是否开启CPU虚拟化;
CPU虚拟化开启单元(1.5),用于宿主机未开启CPU虚拟化时,设置宿主机在BIOS下开启CPU虚拟化。
8.如权利要求6所述的实现虚拟机中访问PCI密码卡的装置,其特征在于,qemu工具安装模块(2)包括:
qemu工具安装单元(2.1),用于在宿主机安装qemu工具;
功能模块开启单元(2.2),用于编译qemu工具,设置kvm模块及crypto密码模块功能开启;
kvm模块安装判断单元(2.3),用于判断kvm模块是否安装成功;
参数添加单元(2.4),用于在kvm模块安装成功时,在宿主机启动qemu工具,添加cryptodev密码模块驱动参数及virtio虚拟IO模块参数;
virtio后端驱动安装单元(2.5),用于在宿主机linux操作***安装virtio后端驱动。
9.如权利要求6所述的实现虚拟机中访问PCI密码卡的装置,其特征在于,虚拟机启动模块(3)包括:
虚拟机启动单元(3.1),用于通过qemu工具创建镜像,启动虚拟机;
linux内核版本判断单元(3.2),用于判断虚拟机linux操作***的内核是否满足版本要求;
linux操作***内核相应版本安装单元(3.3),用于虚拟机linux操作***的内核不满足版本要求时,在虚拟机安装符合版本要求的linux操作***内核;
virtio前端驱动安装判断单元(3.4),用于判断虚拟机linux***内核是否安装virtio前端驱动;
virtio前端驱动安装单元(3.5),用于在虚拟机linux***内核未安装virtio前端驱动,在虚拟机linux***内核安装virtio前端驱动。
10.如权利要求6所述的实现虚拟机中访问PCI密码卡的装置,其特征在于,PCI密码卡访问模块(4)包括:
PCI密码卡功能访问判断单元(4.1),用于判断虚拟机中应用是否要访问宿主机PCI密码卡完整功能;
SDK模块安装单元(4.2),用于虚拟机中应用需要访问宿主机PCI密码卡完整功能时,在虚拟机linux操作***安装PCI密码卡匹配的SDK模块;
SDK模块访问前端驱动单元(4.3),用于设置虚拟机中应用通过SDK模块访问virtio前端驱动,进入步骤S45;
cryptodev密码模块访问前端驱动单元(4.4),用于虚拟机中应用不需要访问宿主机PCI密码卡完整功能,设置虚拟机中应用通过linux操作***的cryptodev密码模块驱动参数访问virtio前端驱动;
PCI密码卡访问单元(4.5),用于设置virtio前端驱动与宿主机中virtio后端驱动建立连接,再通过PCI密码卡设备驱动访问宿主机PCI密码卡进行加解密的加速。
CN202011319143.0A 2020-11-23 2020-11-23 一种实现虚拟机中访问pci密码卡的方法及装置 Withdrawn CN112487393A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011319143.0A CN112487393A (zh) 2020-11-23 2020-11-23 一种实现虚拟机中访问pci密码卡的方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011319143.0A CN112487393A (zh) 2020-11-23 2020-11-23 一种实现虚拟机中访问pci密码卡的方法及装置

Publications (1)

Publication Number Publication Date
CN112487393A true CN112487393A (zh) 2021-03-12

Family

ID=74932884

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011319143.0A Withdrawn CN112487393A (zh) 2020-11-23 2020-11-23 一种实现虚拟机中访问pci密码卡的方法及装置

Country Status (1)

Country Link
CN (1) CN112487393A (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703672A (zh) * 2021-07-30 2021-11-26 郑州云海信息技术有限公司 一种超融合***及其io请求下发方法、物理服务器
CN114238938A (zh) * 2021-12-15 2022-03-25 北京安盟信息技术股份有限公司 一种pcie密码卡虚拟化配置管理方法
CN115022095A (zh) * 2022-08-09 2022-09-06 北京安盟信息技术股份有限公司 一种基于虚拟化技术的密码服务加速方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461678A (zh) * 2014-11-03 2015-03-25 中国科学院信息工程研究所 一种在虚拟化环境中提供密码服务的方法和***
CN107515775A (zh) * 2016-06-15 2017-12-26 华为技术有限公司 一种数据传输方法及装置
CN111782344A (zh) * 2020-07-02 2020-10-16 北京数字认证股份有限公司 一种提供密码资源的方法、***及宿主机

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104461678A (zh) * 2014-11-03 2015-03-25 中国科学院信息工程研究所 一种在虚拟化环境中提供密码服务的方法和***
CN107515775A (zh) * 2016-06-15 2017-12-26 华为技术有限公司 一种数据传输方法及装置
CN111782344A (zh) * 2020-07-02 2020-10-16 北京数字认证股份有限公司 一种提供密码资源的方法、***及宿主机

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113703672A (zh) * 2021-07-30 2021-11-26 郑州云海信息技术有限公司 一种超融合***及其io请求下发方法、物理服务器
CN113703672B (zh) * 2021-07-30 2023-07-14 郑州云海信息技术有限公司 一种超融合***及其io请求下发方法、物理服务器
CN114238938A (zh) * 2021-12-15 2022-03-25 北京安盟信息技术股份有限公司 一种pcie密码卡虚拟化配置管理方法
CN114238938B (zh) * 2021-12-15 2022-10-21 北京安盟信息技术股份有限公司 一种pcie密码卡虚拟化配置管理方法
CN115022095A (zh) * 2022-08-09 2022-09-06 北京安盟信息技术股份有限公司 一种基于虚拟化技术的密码服务加速方法及装置

Similar Documents

Publication Publication Date Title
CN112487393A (zh) 一种实现虚拟机中访问pci密码卡的方法及装置
US9208319B2 (en) Code base partitioning system
US20050289646A1 (en) Virtual firmware smart card
JP5777810B2 (ja) セキュアホスト実行アーキテクチャ
KR20110128248A (ko) 데이터 저장 장치에 대한 원격 서버로부터의 안전한 스캔을 위한 방법 및 장치
WO2010105259A1 (en) Secure card access module for integrated circuit card applications
CN104539622A (zh) 虚拟机的深度证明方法、计算设备和计算机***
CN103164260A (zh) 用于移动终端的应用程序管理***及方法
CN101807237B (zh) 签名方法及装置
CN112463294A (zh) 一种物理gpu虚拟化管理方法、***、设备、产品
KR100833618B1 (ko) 다중 os를 이용하여 전자 금융 거래가 가능한 단말기 및그 제어 방법
US20210374005A1 (en) Systems and methods for verifying and preserving the integrity of basic input/output system before powering on of host system and management engine
CN111198832B (zh) 一种处理方法和电子设备
CN110263532B (zh) 可信计算方法、设备及***
CN201327659Y (zh) 可信刷卡装置
CN111935092A (zh) 一种基于第三方应用的信息交互方法、装置和电子设备
US20220253366A1 (en) Platform measurement collection mechanism
CN112416525B (zh) 设备驱动初始化方法、直接存储访问方法及相关装置
CN111625846A (zh) 一种移动终端设备及***状态记录方法
WO2024002342A1 (zh) 基于云技术的可信执行***及方法
CN101739763A (zh) 一种可信刷卡装置
CN115113848B (zh) 签名/验签电路、装置、设备、方法及坐标还原电路
EP4145318A1 (en) System and method for monitoring delivery of messages passed between processes from different operating systems
US11978063B2 (en) Establishing ownership of dual route processors (RPs) using secure zero-touch provisioning (ZTP)
CN113873029B (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
WW01 Invention patent application withdrawn after publication
WW01 Invention patent application withdrawn after publication

Application publication date: 20210312