CN102799491B - 虚拟机间安全通信方法 - Google Patents

虚拟机间安全通信方法 Download PDF

Info

Publication number
CN102799491B
CN102799491B CN201210210044.8A CN201210210044A CN102799491B CN 102799491 B CN102799491 B CN 102799491B CN 201210210044 A CN201210210044 A CN 201210210044A CN 102799491 B CN102799491 B CN 102799491B
Authority
CN
China
Prior art keywords
virtual machine
xen
kernel module
data
virtual
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
Application number
CN201210210044.8A
Other languages
English (en)
Other versions
CN102799491A (zh
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.)
Beijing Zhongke Flux Technology Co ltd
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201210210044.8A priority Critical patent/CN102799491B/zh
Publication of CN102799491A publication Critical patent/CN102799491A/zh
Application granted granted Critical
Publication of CN102799491B publication Critical patent/CN102799491B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Storage Device Security (AREA)

Abstract

本发明公开一种虚拟机间安全通信方法,所述方法包括:步骤1,Xen创建虚拟机时,为每台虚拟机分配两页内存及一个未使用的事件通道端口号,填充到共享信息页新增的变量中;步骤2,创建虚拟机并启动,虚拟机装载内核模块,映射共享信息页以及所述两页内存,虚拟机之间通过内核模块将策略写入所述两页内存中,通过设备接口配置信息进行通信。

Description

虚拟机间安全通信方法
技术领域
本发明涉及虚拟化环境,尤其涉及一种在虚拟化环境下虚拟机间安全通信方法。
背景技术
虚拟化环境下同一物理机上可同时存在多个虚拟机。他们之间的通信可分为两类,包括特权虚拟机和普通虚拟机间的通信,及普通虚拟机和普通虚拟机之间的通信。目前比较普遍的特权虚拟机和普通虚拟机之间的通信方式主要是半虚拟化下的前后端通信方式和全虚拟化下的仿真设备模型方式。普通虚拟机不能直接和同一物理机上的其他非特权虚拟机进行通信,而必须通过特权虚拟机进行中转,这种情形造成了同一物理机上的非特权虚拟机间通信开销非常高。目前,也有一些针对上述通信方式的改进方法,比如利用同一物理机上的虚拟机共享物理资源的特性优化普通虚拟机间的通信方式。但上述各种虚拟机间通信方法中普通虚拟机的安全性均依赖于特权虚拟机的安全性,即虚拟化环境下安全可信基过大。并且在这些通信方式中,对共享内存的安全保障仅仅依靠授权表来保证,这在一定程度上也降低了虚拟机之间通信的安全性。
发明内容
本发明的目的在于提高普通虚拟机间通信的安全性。所述虚拟机内核模块既可以为Linux内核模块,也可以为Windows内核模块。所述虚拟机环境为Xen支持的虚拟化环境。
本发明公开一种虚拟机间安全通信方法,包括:
步骤1,Xen创建虚拟机时,为每台虚拟机分配两页内存及一个未使用的事件通道端口号,填充到共享信息页新增的变量中;
步骤2,创建虚拟机并启动,虚拟机装载内核模块,映射共享信息页以及所述两页内存,虚拟机之间通过内核模块将策略写入所述两页内存中,通过设备接口配置信息进行通信。
所述的虚拟机间安全通信方法,所述步骤2还包括:
步骤21,Xen创建虚拟机A并启动,A中装载内核模块:映射共享信息页及所述两页内存;为虚拟机A所分配的事件通道端口绑定处理函数handler;并输出设备接口;
步骤22,Xen创建虚拟机B,B启动完毕后,其中装载内核模块,内核模块的具体流程同步骤21。
所述的虚拟机间安全通信方法,所述步骤2还包括:
步骤31,A中应用通过设备接口配置与B通信的安全策略,并通过内核模块将策略写入所述两页内存中的其中一页内,之后应用等待读设备接口;
步骤32,B中应用分配一页内存后通过设备接口,其虚拟页框号为VFNb,请求内核模块与A建立通信通道,内核模块通过新增的超级调用向Xen请求与A建立连接。
所述的虚拟机间安全通信方法,所述步骤32还包括:
步骤41,Xen查阅步骤31中提供安全策略的内存页对此请求进行验证,若未通过则返回错误;
步骤42,Xen为B分配未使用的事件通道端口号pnewb;之后将B的虚拟机id,VFNb,pnewb写入步骤31中为虚拟机A分配的剩余一页内存中,之后返回pnewb给B中的内核模块及应用;
步骤43,B中应用等待读设备文件,等待pnewb上事件的到来;
步骤44,Xen给A的事件通道端口Ap发送通知。
所述的虚拟机间安全通信方法,所述步骤2还包括:
步骤51,收到事件通知后,A中的handler执行:读取内存页中的请求信息;为虚拟机A分配本地未使用的事件通道端口pnewa;并且映射VFNb;让pnewa与pnewb进行域间绑定;返回端口号pnewa及虚拟地址给A中的应用;
步骤52,对于小数据由B往VFNb中直接写入数据并通过域间事件通道通知A,A中应用通过映射后的虚拟地址读出数据;对于大数据,由B往VFNb中写入数据的地址并通过域间事件通道通知A,A中应用通过映射后的虚拟地址读出数据的地址,进而根据数据的地址读出数据。小数据指的是能在一页(通常是4K)内放下的数据,当然除了数据之外还需要放些描述数据的信息,所以小数据最好能小于1K。
本发明的有益效果为:
本发明实现了普通虚拟机间安全通信的方法,通过该方法避免了普通虚拟机间通信绕经特权虚拟机所带来的可信基过大问题,而且通过添加安全策略页增强了普通虚拟机间通信的安全性。
附图说明
图1为虚拟机间安全通信体系结构图;
图2为虚拟机间安全通信流程图。
具体实施方式
下面给出本发明的具体实施方式,结合附图对本发明做出了详细描述。
本发明的目的在于提高普通虚拟机间通信的安全性。虚拟机间安全通信的体系结构如图1所示。所述虚拟机内核模块既可以为Linux内核模块,也可以为Windows内核模块。所述虚拟机环境为Xen支持的虚拟化环境。
具体来说,如图2所示,本发明针对虚拟机间安全通信方法包括下列步骤:
步骤1,在Xen的共享信息页数据结构shared_info里添加两个机器页框号mfn1,mfn2成员变量和事件端口号成员变量port;在Xen中添加超级调用实现机器页框号到物理页框号的映射;在Xen中添加超级调用实现向虚拟机发送建立连接请求;Xen在创建虚拟机的过程中为每台虚拟机分配两页内存(机器页框号为m1,m2)及一个未使用事件通道端口号p,分别填充到步骤1中shared_info新增的变量中。
步骤2,虚拟机A启动完毕后,A中装载内核模块:映射shared_info页;调用步骤1提供的超级调用映射Xen为虚拟机A所分配的两页内存Am1,Am2;为虚拟机A所分配的事件通道端口Ap绑定处理函数handler;并向应用层输出设备接口/dev/privcmd。
步骤3,虚拟机B启动完毕后,B中装载内核模块,具体操作同步骤2。
以下步骤假设B需要同A通信:
步骤4,A中应用通过步骤2提供的设备接口配置与B通信的安全策略并通过内核模块将策略写到Am2中,之后应用等待读设备接口/dev/privcmd。
步骤5,B中应用分配一页内存(虚拟页框号为VFNb)后通过设备接口,请求内核模块与A建立通信通道,内核模块通过调用步骤1中提供的超级调用向Xen请求与A建立连接,具体操作为:
5.1,Xen查阅Am2对此请求进行验证,若未通过则返回错误。
5.2,Xen为B分配未使用的事件通道端口号pnewb;之后将B的虚拟机id号domid,VFNb,pnewb写入Am1;之后返回pnewb给B中的内核模块及应用。
5.3,B中应用读等待设备文件,等待pnewb上事件的到来。
5.4,Xen给A的端口Ap发送通知。
步骤6,收到事件通知后,A中的handler执行:读取Am1中的内容;分配本地未使用事件通道端口pnewa;映射VFNb;域间绑定pnewb;返回端口号及虚拟地址给A中的应用。
步骤7,对于小于1k的数据由B往VFNb中直接写入数据并通过域间事件通道通知A,A中应用通过映射后的虚拟地址读出数据;对于大于1k的数据,由B往VFNb中写入数据的地址并通过域间事件通道通知A,A中应用通过映射后的虚拟地址读出数据的地址,进而根据地址读出数据。
本发明实现了普通虚拟机间安全通信的方法,通过该方法避免了普通虚拟机间通信绕经特权虚拟机所带来的可信基过大问题,而且通过添加安全策略页增强了普通虚拟机间通信的安全性。
本领域的技术人员在不脱离权利要求书确定的本发明的精神和范围的条件下,还可以对以上内容进行各种各样的修改。因此本发明的范围并不仅限于以上的说明,而是由权利要求书的范围来确定的。

Claims (2)

1.一种虚拟机间安全通信方法,其特征在于,该方法在具有如下结构的系统上实现:该系统具有虚拟机监控器Xen及多个虚拟机,该多个虚拟机为由该Xen创建的普通虚拟机;该方法包括以下步骤:
步骤1,Xen创建虚拟机时,为每台虚拟机分配两页内存及一个未使用的事件通道端口号,填充到共享信息页新增的变量中,
步骤2,创建虚拟机并启动,虚拟机装载内核模块,映射共享信息页以及所述两页内存,虚拟机之间通过内核模块将安全策略写入所述两页内存中,通过设备接口配置信息进行通信;
其中所述步骤2包括:
步骤21,Xen创建虚拟机A并启动,A中装载内核模块:映射共享信息页及所述两页内存;为虚拟机A所分配的事件通道端口绑定处理函数handler;并输出设备接口,
步骤22,Xen创建虚拟机B,B启动完毕后,其中装载内核模块,内核模块的具体流程同步骤21;
所述步骤2还包括:
步骤31,A中应用通过设备接口配置与B通信的安全策略,并通过内核模块将安全策略写入所述两页内存中的其中一页内,之后应用等待读设备接口,
步骤32,B中应用分配一页内存后通过设备接口,其虚拟页框号为VFNb,请求内核模块与A建立通信通道,内核模块通过新增的超级调用向Xen请求与A建立连接;
所述步骤2还包括:
步骤51,收到事件通知后,A中的handler执行:读取内存页中的请求信息;为虚拟机A分配本地未使用的事件通道端口号pnewa;并且映射VFNb;让pnewa与pnewb进行域间绑定,其中pnewb为Xen为B分配未使用的事件通道端口号;返回端口号pnewa及虚拟地址给A中的应用,
步骤52,对于小数据由B往VFNb中直接写入数据并通过域间事件通道通知A,A中应用通过映射后的虚拟地址读出数据;对于大数据,由B往VFNb中写入数据的地址并通过域间事件通道通知A,A中应用通过映射后的虚拟地址读出数据的地址,进而根据数据的地址读出数据,其中小数据是指小于1k的数据,大数据是指大于1k的数据。
2.如权利要求1所述的虚拟机间安全通信方法,其特征在于,所述步骤32还包括:
步骤41,Xen查阅步骤31中提供安全策略的内存页对此请求进行验证,若未通过则返回错误;
步骤42,Xen为B分配未使用的事件通道端口号pnewb;之后将B的虚拟机id、VFNb、pnewb写入步骤31中为虚拟机A分配的剩余一页内存中,之后返回pnewb给B中的内核模块及应用;
步骤43,B中应用等待读设备文件,等待pnewb上事件的到来;
步骤44,Xen给A的事件通道端口Ap发送通知。
CN201210210044.8A 2012-06-19 2012-06-19 虚拟机间安全通信方法 Active CN102799491B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210210044.8A CN102799491B (zh) 2012-06-19 2012-06-19 虚拟机间安全通信方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210210044.8A CN102799491B (zh) 2012-06-19 2012-06-19 虚拟机间安全通信方法

Publications (2)

Publication Number Publication Date
CN102799491A CN102799491A (zh) 2012-11-28
CN102799491B true CN102799491B (zh) 2015-12-09

Family

ID=47198606

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210210044.8A Active CN102799491B (zh) 2012-06-19 2012-06-19 虚拟机间安全通信方法

Country Status (1)

Country Link
CN (1) CN102799491B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103500304B (zh) * 2013-10-13 2016-06-29 西安电子科技大学 基于Xen的虚拟机个性化安全监控系统及监控方法
CN105117273A (zh) * 2015-09-11 2015-12-02 中科信息安全共性技术国家工程研究中心有限公司 一种xen虚拟化平台中获取客户机进程信息的方法及系统
CN110351264A (zh) * 2019-07-01 2019-10-18 电子科技大学 多安全等级分区间通信的实现方法
CN112148432A (zh) * 2020-10-12 2020-12-29 北京计算机技术及应用研究所 一种基于物理环境下的虚拟机通信方法、装置及龙芯主机
CN112148434A (zh) * 2020-10-12 2020-12-29 北京计算机技术及应用研究所 基于龙芯主机环境下的微内核虚拟机通信方法、装置及龙芯主机
CN113608835A (zh) * 2021-07-29 2021-11-05 深圳市鑫信腾科技股份有限公司 虚拟机的通信应用方法、装置、服务器及可读存储介质

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101520738A (zh) * 2008-02-27 2009-09-02 黄歆媚 基于设备访存管理技术的虚拟机系统及其设备访问方法
CN101667144B (zh) * 2009-09-29 2013-02-13 北京航空航天大学 一种基于共享内存的虚拟机通信方法
CN102129531B (zh) * 2011-03-22 2013-07-24 北京工业大学 一种基于Xen的主动防御方法

Also Published As

Publication number Publication date
CN102799491A (zh) 2012-11-28

Similar Documents

Publication Publication Date Title
CN102799491B (zh) 虚拟机间安全通信方法
CN102609298B (zh) 基于硬件队列扩展的网卡虚拟化系统及其方法
CN102110196B (zh) 并行运行多用户操作系统间的数据安全传输方法及系统
CN103257929B (zh) 一种虚拟机内存映射方法及系统
CN106301859B (zh) 一种管理网卡的方法、装置及系统
CN103282881B (zh) 通过虚拟化直接共享智能设备
EP3608792A1 (en) Managed switching between one or more hosts and solid state drives (ssds) based on the nvme protocol to provide host storage services
CN103491188B (zh) 利用虚拟桌面和gpu透传实现多用户共享图形工作站的方法
CN103942087B (zh) 虚拟机热迁移方法及相关装置和集群系统
US20130219090A1 (en) System and method for virtualizing the peripherals in a terminal device to enable remote management via removable portable media with processing capability
CN106445628A (zh) 一种虚拟化方法、装置和系统
WO2016109154A8 (en) Trusted computing
CN106250211A (zh) 一种基于sr_iov的虚拟化实现方法
US20090172667A1 (en) Method and computer system for sharing graphics card among multiple operation systems
CN103176833A (zh) 一种基于虚拟机的数据发送方法、接收方法及系统
CN108228309B (zh) 基于虚拟机的数据包发送和接收方法及装置
CN105786589A (zh) 一种云渲染系统、服务器及方法
CN107870879A (zh) 一种数据搬移方法、加速器板卡、主机及数据搬移系统
CN104615480A (zh) 基于numa高性能网络处理器负载的虚拟处理器调度方法
US9507617B1 (en) Inter-virtual machine communication using pseudo devices
CN104199718A (zh) 一种基于numa高性能网络缓存资源亲和度的虚拟处理器的调度方法
US10140214B2 (en) Hypervisor translation bypass by host IOMMU with virtual machine migration support
CN110442425A (zh) 一种虚拟化地址空间隔离系统及方法
CN103870311A (zh) 通过半虚拟化驱动访问硬件的方法、后端驱动及前端驱动
CN105556473A (zh) 一种i/o任务处理的方法、设备和系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20240320

Address after: Room 711C, Floor 7, Building A, Yard 19, Ronghua Middle Road, Daxing District, Beijing Economic-Technological Development Area, 100176

Patentee after: Beijing Zhongke Flux Technology Co.,Ltd.

Country or region after: China

Address before: 100190 No. 6 South Road, Zhongguancun Academy of Sciences, Beijing, Haidian District

Patentee before: Institute of Computing Technology, Chinese Academy of Sciences

Country or region before: China