CN108446161B - 在虚拟机环境下运行应用程序的方法及装置 - Google Patents
在虚拟机环境下运行应用程序的方法及装置 Download PDFInfo
- Publication number
- CN108446161B CN108446161B CN201810126882.4A CN201810126882A CN108446161B CN 108446161 B CN108446161 B CN 108446161B CN 201810126882 A CN201810126882 A CN 201810126882A CN 108446161 B CN108446161 B CN 108446161B
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- fingerprint password
- application program
- fingerprint
- encryption lock
- 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 35
- 238000005516 engineering process Methods 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000012356 Product development Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000010367 cloning Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种在虚拟机环境下运行应用程序的方法及装置,该方法包括:在虚拟机的操作***启动至虚拟机下的应用程序运行的时间段T内,使虚拟机在第一时刻随机生成第一指纹密码;使虚拟机将第一指纹密码写入加密锁中,并在本地保存第一指纹密码;在时间段T内的至少一个第二时刻,使虚拟机从加密锁读出第二指纹密码,第二时刻在第一时刻之后;若第二指纹密码与本地保存的第一指纹密码匹配,则允许虚拟机下的应用程序运行,若第二指纹密码与本地保存的第一指纹密码不匹配,则禁止虚拟机下的应用程序运行。通过上述方式,本申请能够防止多个虚拟机下的应用程序同时认证和运行。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种在虚拟机环境下运行应用程序的方法及装置。
背景技术
随着虚拟机在行业内越来越广泛的使用,虚拟化部署作为目前个人计算机上应用程序交付的一种先进技术,它可以在向客户交付服务器类应用程序之前,就预先把各种服务器在一个虚拟环境中部署完毕并且形成镜像文件。客户只需在自己的电脑上加载该镜像文件即可直接使用,而无需进行复杂的安装与配置过程。
尽管虚拟化带来了便捷,但同时由于虚拟化是“抹除”硬件底层差异,因此导致某些应用程序的开发商试图利用硬件差异来进行授权管控的方式失效。因为用户可以在多个不同的个人电脑上安装虚拟化容器,而实际应用程序在运行时无法探测到外部硬件的差别。目前服务器应用程序多采用硬件加密锁进行保护,一个加密锁只能对应一套应用程序授权。
但是,本申请的发明人在长期的研发过程中发现,虚拟化容器可在一台实机上运行多个镜像,这些镜像可以以完全相同的方法获得加密锁的认证,并同时运行。这使得开发出来的应用程序极易被克隆使用,无法保护应用程序的真正价值。
发明内容
本申请主要解决的技术问题是提供一种在虚拟机环境下运行应用程序的方法及装置,能够防止多个虚拟机下的应用程序同时认证和运行。
为解决上述技术问题,本申请采用的一个技术方案是:提供一种在虚拟机环境下运行应用程序的方法,所述方法包括:在虚拟机的操作***启动至所述虚拟机下的应用程序运行的时间段T内,使所述虚拟机在第一时刻随机生成第一指纹密码;使所述虚拟机将所述第一指纹密码写入加密锁中,并在本地保存所述第一指纹密码;在所述时间段T内的至少一个第二时刻,使所述虚拟机从所述加密锁读出第二指纹密码,所述第二时刻在所述第一时刻之后;若所述第二指纹密码与本地保存的所述第一指纹密码匹配,则允许所述虚拟机下的应用程序运行,若所述第二指纹密码与本地保存的所述第一指纹密码不匹配,则禁止所述虚拟机下的应用程序运行。
为解决上述技术问题,本申请采用的另一个技术方案是:提供一种在虚拟机环境下运行应用程序的装置,所述装置包括:处理器和存储器,所述处理器与所述存储器耦合,其中,所述存储器用于存储程序;所述处理器当运行所述程序时,用于在虚拟机的操作***启动至所述虚拟机下的应用程序运行的时间段T内,使所述虚拟机在第一时刻随机生成第一指纹密码;使所述虚拟机将所述第一指纹密码写入加密锁中,并在本地保存所述第一指纹密码;在所述时间段T内的至少一个第二时刻,使所述虚拟机从所述加密锁读出第二指纹密码,所述第二时刻在所述第一时刻之后;若所述第二指纹密码与本地保存的所述第一指纹密码匹配,则允许所述虚拟机下的应用程序运行,若所述第二指纹密码与本地保存的所述第一指纹密码不匹配,则禁止所述虚拟机下的应用程序运行。
本申请的有益效果是:区别于现有技术的情况,本申请在虚拟机的操作***启动至所述虚拟机下的应用程序运行的时间段T内,使所述虚拟机在第一时刻随机生成第一指纹密码;使所述虚拟机将所述第一指纹密码写入加密锁中,并在本地保存所述第一指纹密码;在所述时间段T内的至少一个第二时刻,使所述虚拟机从所述加密锁读出第二指纹密码,所述第二时刻在所述第一时刻之后;若所述第二指纹密码与本地保存的所述第一指纹密码匹配,则允许所述虚拟机下的应用程序运行,若所述第二指纹密码与本地保存的所述第一指纹密码不匹配,则禁止所述虚拟机下的应用程序运行。由于在虚拟机的操作***启动至所述虚拟机下的应用程序运行的时间段T内,虚拟机在第一时刻随机生成第一指纹密码,之后虚拟机至少一次从加密锁读出第二指纹密码,如果存在多个虚拟机访问同一个加密锁,则多个虚拟机随机产生的多个第一指纹密码必定不同,如果同一个写入的第一指纹密码与读出的第二指纹密码不一致,至少可以判断还有其他虚拟机的存在,因此只有在第二指纹密码与第一指纹密码匹配时才允许虚拟机下的应用程序运行,如果第二指纹密码与第一指纹密码不匹配,说明密码锁内的第一指纹密码已经被其他虚拟机更改,此时禁止该虚拟机下的应用程序运行,通过这种方式,能够防止多个虚拟机下的应用程序同时认证和运行。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。其中:
图1是本申请在虚拟机环境下运行应用程序的方法一实施方式的流程示意图;
图2是本申请在虚拟机环境下运行应用程序的方法另一实施方式的流程示意图;
图3是本申请在虚拟机环境下运行应用程序的装置一实施方式的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性的劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
参阅图1,图1是本申请在虚拟机环境下运行应用程序的方法一实施方式的流程示意图,需要说明的是,本实施方式的方法需要结合加密锁一起实施,且加密锁可以被进行写入和读出操作。具体来说,该方法包括:
步骤S101:在虚拟机的操作***启动至虚拟机下的应用程序运行的时间段T内,使虚拟机在第一时刻随机生成第一指纹密码。
步骤S102:使虚拟机将第一指纹密码写入加密锁中,并在本地保存第一指纹密码。
步骤S103:在时间段T内的至少一个第二时刻,使虚拟机从加密锁读出第二指纹密码,第二时刻在第一时刻之后。
步骤S104:若第二指纹密码与本地保存的第一指纹密码匹配,则允许虚拟机下的应用程序运行,若第二指纹密码与本地保存的第一指纹密码不匹配,则禁止虚拟机下的应用程序运行。
在本实施方式中,虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件***功能的、运行在一个完全隔离环境中的完整计算机***。对于硬件机器来说,一个机器上只能一次运行一种操作***。但是虚拟机可以通过软件模拟完整硬件***功能,且运行在一个完全隔离环境中。一个机器(例如服务器)上可以运行多个虚拟机,每个虚拟机中都运行着一个相同或不同的操作***,并且每个虚拟机可以拥有一个比较大的容量。
虚拟机下的应用程序需要运行,首先需要启动虚拟机的操作***,虚拟机的操作***启动后,即可以运行该虚拟机下的应用程序。在虚拟机的操作***启动至虚拟机下的应用程序运行的时间段T内,使虚拟机在第一时刻随机生成第一指纹密码;例如:在虚拟机的操作***启动的时候,使虚拟机随机生成第一指纹密码,或者,在虚拟机下的应用程序运行的某一时刻,使虚拟机随机生成第一指纹密码,等等。在一实施方式中,应用程序为服务器应用程序。
当虚拟机随机生成第一指纹密码后,使虚拟机将第一指纹密码写入加密锁中,并在本地保存第一指纹密码。随后,在时间段T内,至少一次(即在第一时刻之后)使虚拟机从加密锁读出第二指纹密码。如果存在多个虚拟机访问同一个加密锁,则多个虚拟机随机产生的多个第一指纹密码必定不同,如果同一个虚拟机写入的第一指纹密码与读出的第二指纹密码不一致,至少可以判断还有其他虚拟机的存在。如果第二指纹密码与本地保存的第一指纹密码匹配,说明当下只存在该虚拟机,那么此时允许虚拟机下的应用程序运行,如果第二指纹密码与本地保存的第一指纹密码不匹配,说明当下还存在其他的虚拟机,其他的虚拟机也访问了该加密锁,且已经修改了第一指纹密码,此时的第二指纹密码并不是当前虚拟机写入的第一指纹密码,而是其他的虚拟机随机生成、并写入的第一指纹密码,那么此时禁止当前虚拟机下的应用程序运行,其他的虚拟机在进行判断各自的第一指纹密码和第二指纹密码是否匹配之前,还可以运行,因此,通过这种方式,可以防止多个虚拟机下的应用程序同时认证和运行,防止应用程序在没有被授权的情况下被克隆,进而能够真正保护应用程序的价值。
在一实施方式中,在虚拟机下的应用程序运行过程中,可以以固定的时间间隔,周期性地使虚拟机从加密锁读出第二指纹密码,周期性地检测第二指纹密码和第一指纹密码是否匹配,这样可以在虚拟机下的应用程序的整个运行过程中监测是否存在其他的虚拟机,从而更加周密地防止多个虚拟机下的应用程序同时认证和运行,进一步防止应用程序在没有被授权的情况下被克隆,进而能够真正保护应用程序的价值。
在一个应用场景中,本申请实施方式可以应用在操作***的虚拟化环境中,即容器(containers),例如:Docker,容器提供了可以在一个服务器上把各个运行环境(操作***)隔离开的一种方法。容器位于硬件和操作***的上方,这个操作***可以是Linux,也可以是Windows。每个容器都共享主机操作***的内核通常还包括文件的库。简单来说,容器可以看成一个装好了一组特定应用的虚拟机,它直接利用了宿主机的内核,抽象层比虚拟机更少,更加轻量化,启动速度极快。在这种应用场景下,实施本申请的方法,也可以防止多个虚拟机下的应用程序同时认证和运行,防止应用程序在没有被授权的情况下被克隆,进而能够真正保护应用程序的价值。
本申请实施方式在虚拟机的操作***启动至所述虚拟机下的应用程序运行的时间段T内,使所述虚拟机在第一时刻随机生成第一指纹密码;使所述虚拟机将所述第一指纹密码写入加密锁中,并在本地保存所述第一指纹密码;在所述时间段T内的至少一个第二时刻,使所述虚拟机从所述加密锁读出第二指纹密码,所述第二时刻在所述第一时刻之后;若所述第二指纹密码与本地保存的所述第一指纹密码匹配,则允许所述虚拟机下的应用程序运行,若所述第二指纹密码与本地保存的所述第一指纹密码不匹配,则禁止所述虚拟机下的应用程序运行。由于在虚拟机的操作***启动至所述虚拟机下的应用程序运行的时间段T内,虚拟机在第一时刻随机生成第一指纹密码,之后虚拟机至少一次从加密锁读出第二指纹密码,如果存在多个虚拟机访问同一个加密锁,则多个虚拟机随机产生的多个第一指纹密码必定不同,如果同一个写入的第一指纹密码与读出的第二指纹密码不一致,至少可以判断还有其他虚拟机的存在,因此只有在第二指纹密码与第一指纹密码匹配时才允许虚拟机下的应用程序运行,如果第二指纹密码与第一指纹密码不匹配,说明密码锁内的第一指纹密码已经被其他虚拟机更改,此时禁止该虚拟机下的应用程序运行,通过这种方式,能够防止多个虚拟机下的应用程序同时认证和运行。
在一实施方式中,步骤S101中,在虚拟机的操作***启动至虚拟机下的应用程序运行的时间段T内,使虚拟机在第一时刻随机生成第一指纹密码,具体可以包括:在虚拟机的操作***启动时,使虚拟机随机生成第一指纹密码。
即在本实施方式中,在虚拟机的操作***启动的时候,随机生成虚拟机的第一指纹密码。虚拟机的操作***启动,即为一个虚拟机开始运行,在这个时候生成第一指纹密码,即可将第一指纹密码写入加密锁中,并在本地保存第一指纹密码,这样可以使其他当前已正在运行的虚拟机很快停止运行,从而能够在虚拟机启动的时候,即可防止多个虚拟机下的应用程序同时认证和运行。
在一实施方式中,步骤S102中,在时间段T内的至少一个第二时刻,使虚拟机从加密锁读出第二指纹密码,具体可以包括:在时间段T内的多个第二时刻,周期性地使虚拟机从加密锁读出第二指纹密码。
在本实施方式中,多个第二时刻之间的时间间隔可以相同,也可以不同。周期性地使虚拟机从加密锁读出第二指纹密码,可以周期性地检测第二指纹密码和第一指纹密码是否匹配,这样可以在虚拟机下的应用程序的整个运行过程中监测是否存在其他的虚拟机,从而更加周密地防止多个虚拟机下的应用程序同时认证和运行,进一步防止应用程序在没有被授权的情况下被克隆,进而能够真正保护应用程序的价值。
进一步,步骤S103中,在时间段T内的至少一个第二时刻,使虚拟机从加密锁读出第二指纹密码,具体可以包括:在虚拟机下的应用程序运行时,使虚拟机从加密锁读出第二指纹密码。
第二指纹密码与本地保存的第一指纹密码不匹配时,主要是禁止虚拟机下的应用程序运行,因为应用程序是开发商投入大量成本开发出来的,因此,自然不希望应用程序随随便便被客户进行克隆而无偿使用,存在其他的虚拟机,但是没有运行应用程序也不会构成太大的问题,如果虚拟机还运行应用程序,就使应用程序得不到真正的保护了,因此,选择在虚拟机下的应用程序运行时,使虚拟机从加密锁读出第二指纹密码,可以对虚拟机的运行进行有针对性的处理,避免对无意义的虚拟机运行进行对应的禁止运行处理。
在一实施方式中,还可以在虚拟机下的应用程序运行时,使虚拟机以预定的周期从加密锁读出第二指纹密码,这样在虚拟机下的应用程序运行时,可以持续进行监控,防止多个虚拟机下的应用程序同时认证和运行。
其中,步骤S104中,若第二指纹密码与本地保存的第一指纹密码匹配,则允许虚拟机下的应用程序运行,若第二指纹密码与本地保存的第一指纹密码不匹配,则禁止虚拟机下的应用程序运行,具体可以包括:
若第二指纹密码与本地保存的第一指纹密码匹配,则允许虚拟机下的应用程序继续运行,若第二指纹密码与本地保存的第一指纹密码不匹配,则终止虚拟机下的应用程序运行。也就是说,虚拟机下的应用程序运行时,如果发现第二指纹密码与本地保存的第一指纹密码匹配,则使虚拟机下的应用程序继续运行,如果第二指纹密码与本地保存的第一指纹密码不匹配,则终止虚拟机下的应用程序运行。
在一实际应用中,将多模终端新产品smart MDM(智能移动设备管理***)管理***的部署给某市公安局及某市某区交警大队时,由于政府***也是使用的虚拟服务器,需要虚拟容器部署支持,采用本申请的方案应用,从而实现快速的虚拟容器部署技术,同时保证该新产品的唯一使用情况,防止客户克隆***多次使用情况。
在另一实际应用中,海外某客户需要一套新产品DEM(电子证据***),客户也是虚拟化服务器,需要虚拟容器部署支持,采用本申请的方案应用,从而实现快速的虚拟容器部署技术,同时保证该新产品的唯一使用情况,防止客户克隆***多次使用情况。
在一个实际应用中,比如某市某个总局采购了一套新产品设备,并部署在在虚拟化容器(如VMware/Docker容器)下,在采用本申请的方案之前,总局给各个分局都克隆一套,这样各个分局不需要采购新的***侧软件,不需要付费,就可以做到通过总局买一套,分局克隆多套使用的可能,而这对产品市场来说,原本是每个分局实际需要一套***的情况,就变成了一套的需求,从而失去更多实际的潜在客户价值。所以,通过使用本申请的技术方案,开发的新产品尤其是客户在虚拟化容器(如VMware/Docker容器)应用场景下,能充分完整的保证新开发产品的实际使用价值。反过来说,如果不使用本申请的虚拟机防克隆保护技术方案,就很容易给客户有机可乘,存在买一套***,而做多套***使用的可能,这样原本比较大的实际市场产品价值需求就可能缩小,容易失去更大的产品价值空间,打击了新产品开发的积极性。
参见图2,在一实施方式中,该方法还包括:
步骤S201:若虚拟机初次访问加密锁,则使虚拟机读出加密锁中当前的计数参数n,并将加密锁中当前的计数参数修改为n+1,加密锁中的计数参数的初始值为零,n为自然数。
步骤S202:通过加密锁中当前的计数参数n+1,确定虚拟机的克隆数为n。
在本实施方式中,加密锁内预先设置一个计数参数,一般出厂的时候该计数参数的初始值为零。如果虚拟机初始化连接加密锁,即第一次访问加密锁时,使虚拟机读出加密锁中当前的计数参数n,n为自然数,当前的n是多少,表示在之前就有多少个第一次访问加密锁的虚拟机,也就表示之前存在过多少个虚拟机。然后虚拟机在n的基础上累加1,并将n+1写入加密锁中当前的计数参数,那么通过加密锁中当前的计数参数n+1,即可以确定虚拟机的克隆数为n。
如果虚拟机在第一次访问加密锁后,后续继续访问加密锁,就不需要再去执行步骤S201,只有在第一次访问加密锁时,才执行步骤S201,通过这种方式,可以获知定虚拟机的克隆数,进而可以预测应用程序的潜在需求。
参见图3,图3是本申请在虚拟机环境下运行应用程序的装置一实施方式的结构示意图,需要说明的是,本实施方式的装置可以执行上述方法中的步骤,相关内容的详细说明请参见上述方法部分,在此不再赘叙。
该装置包括:处理器1和存储器2,处理器1与存储器2耦合。
存储器2用于存储程序;处理器1当运行程序时,用于在虚拟机的操作***启动至虚拟机下的应用程序运行的时间段T内,使虚拟机在第一时刻随机生成第一指纹密码;使虚拟机将第一指纹密码写入加密锁中,并在本地保存第一指纹密码;在时间段T内的至少一个第二时刻,使虚拟机从加密锁读出第二指纹密码,第二时刻在第一时刻之后;若第二指纹密码与本地保存的第一指纹密码匹配,则允许虚拟机下的应用程序运行,若第二指纹密码与本地保存的第一指纹密码不匹配,则禁止虚拟机下的应用程序运行。
其中,处理器2当运行程序时,在虚拟机的操作***启动时,使虚拟机随机生成第一指纹密码;处理器2当运行程序时,在时间段T内的多个第二时刻,周期性地使虚拟机从加密锁读出第二指纹密码。
其中,处理器2当运行程序时,在虚拟机下的应用程序运行时,使虚拟机从加密锁读出第二指纹密码。
其中,处理器2当运行程序时,若第二指纹密码与本地保存的第一指纹密码匹配,则允许虚拟机下的应用程序继续运行,若第二指纹密码与本地保存的第一指纹密码不匹配,则终止虚拟机下的应用程序运行。
其中,处理器2当运行程序时,若虚拟机初次访问加密锁,则使虚拟机读出加密锁中当前的计数参数n,并将加密锁中当前的计数参数修改为n+1,加密锁中的计数参数的初始值为零,n为自然数;通过加密锁中当前的计数参数n+1,确定虚拟机的克隆数为n。
本申请实施方式在虚拟机的操作***启动至所述虚拟机下的应用程序运行的时间段T内,使所述虚拟机在第一时刻随机生成第一指纹密码;使所述虚拟机将所述第一指纹密码写入加密锁中,并在本地保存所述第一指纹密码;在所述时间段T内的至少一个第二时刻,使所述虚拟机从所述加密锁读出第二指纹密码,所述第二时刻在所述第一时刻之后;若所述第二指纹密码与本地保存的所述第一指纹密码匹配,则允许所述虚拟机下的应用程序运行,若所述第二指纹密码与本地保存的所述第一指纹密码不匹配,则禁止所述虚拟机下的应用程序运行。由于在虚拟机的操作***启动至所述虚拟机下的应用程序运行的时间段T内,虚拟机在第一时刻随机生成第一指纹密码,之后虚拟机至少一次从加密锁读出第二指纹密码,如果存在多个虚拟机访问同一个加密锁,则多个虚拟机随机产生的多个第一指纹密码必定不同,如果同一个写入的第一指纹密码与读出的第二指纹密码不一致,至少可以判断还有其他虚拟机的存在,因此只有在第二指纹密码与第一指纹密码匹配时才允许虚拟机下的应用程序运行,如果第二指纹密码与第一指纹密码不匹配,说明密码锁内的第一指纹密码已经被其他虚拟机更改,此时禁止该虚拟机下的应用程序运行,通过这种方式,能够防止多个虚拟机下的应用程序同时认证和运行。
以上所述仅为本申请的实施方式,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种在虚拟机环境下运行应用程序的方法,其特征在于,所述方法包括:
在虚拟机的操作***启动至所述虚拟机下的应用程序运行的时间段T内,使所述虚拟机在第一时刻随机生成第一指纹密码;
使所述虚拟机将所述第一指纹密码写入加密锁中,并在本地保存所述第一指纹密码;
在所述时间段T内的至少一个第二时刻,使所述虚拟机从所述加密锁读出第二指纹密码,所述第二时刻在所述第一时刻之后;
若所述第二指纹密码与本地保存的所述第一指纹密码匹配,则允许所述虚拟机下的应用程序运行,若所述第二指纹密码与本地保存的所述第一指纹密码不匹配,则禁止所述虚拟机下的应用程序运行。
2.根据权利要求1所述的方法,其特征在于,所述在虚拟机的操作***启动至所述虚拟机下的应用程序运行的时间段T内,使所述虚拟机在第一时刻随机生成第一指纹密码,包括:
在所述虚拟机的操作***启动时,使所述虚拟机随机生成第一指纹密码;
所述在所述时间段T内的至少一个第二时刻,使所述虚拟机从所述加密锁读出第二指纹密码,包括:
在所述时间段T内的多个第二时刻,周期性地使所述虚拟机从所述加密锁读出第二指纹密码。
3.根据权利要求2所述的方法,其特征在于,所述在所述时间段T内的至少一个第二时刻,使所述虚拟机从所述加密锁读出第二指纹密码,包括:
在所述虚拟机下的应用程序运行时,使所述虚拟机从所述加密锁读出第二指纹密码。
4.根据权利要求3所述的方法,其特征在于,所述若所述第二指纹密码与本地保存的所述第一指纹密码匹配,则允许所述虚拟机下的应用程序运行,若所述第二指纹密码与本地保存的所述第一指纹密码不匹配,则禁止所述虚拟机下的应用程序运行,包括:
若所述第二指纹密码与本地保存的所述第一指纹密码匹配,则允许所述虚拟机下的应用程序继续运行,若所述第二指纹密码与本地保存的所述第一指纹密码不匹配,则终止所述虚拟机下的应用程序运行。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
若所述虚拟机初次访问所述加密锁,则使所述虚拟机读出所述加密锁中当前的计数参数n,并将所述加密锁中所述当前的计数参数修改为n+1,所述加密锁中的计数参数的初始值为零,n为自然数;
通过所述加密锁中当前的计数参数n+1,确定所述虚拟机的克隆数为n。
6.一种在虚拟机环境下运行应用程序的装置,其特征在于,所述装置包括:处理器和存储器,所述处理器与所述存储器耦合,其中,
所述存储器用于存储程序;
所述处理器当运行所述程序时,用于在虚拟机的操作***启动至所述虚拟机下的应用程序运行的时间段T内,使所述虚拟机在第一时刻随机生成第一指纹密码;使所述虚拟机将所述第一指纹密码写入加密锁中,并在本地保存所述第一指纹密码;在所述时间段T内的至少一个第二时刻,使所述虚拟机从所述加密锁读出第二指纹密码,所述第二时刻在所述第一时刻之后;若所述第二指纹密码与本地保存的所述第一指纹密码匹配,则允许所述虚拟机下的应用程序运行,若所述第二指纹密码与本地保存的所述第一指纹密码不匹配,则禁止所述虚拟机下的应用程序运行。
7.根据权利要求6所述的装置,其特征在于,所述处理器当运行所述程序时,在所述虚拟机的操作***启动时,使所述虚拟机随机生成第一指纹密码;
所述处理器当运行所述程序时,在所述时间段T内的多个第二时刻,周期性地使所述虚拟机从所述加密锁读出第二指纹密码。
8.根据权利要求7所述的装置,其特征在于,所述处理器当运行所述程序时,在所述虚拟机下的应用程序运行时,使所述虚拟机从所述加密锁读出第二指纹密码。
9.根据权利要求8所述的装置,其特征在于,所述处理器当运行所述程序时,若所述第二指纹密码与本地保存的所述第一指纹密码匹配,则允许所述虚拟机下的应用程序继续运行,若所述第二指纹密码与本地保存的所述第一指纹密码不匹配,则终止所述虚拟机下的应用程序运行。
10.根据权利要求6所述的装置,其特征在于,所述处理器当运行所述程序时,若所述虚拟机初次访问所述加密锁,则使所述虚拟机读出所述加密锁中当前的计数参数n,并将所述加密锁中所述当前的计数参数修改为n+1,所述加密锁中的计数参数的初始值为零,n为自然数;通过所述加密锁中当前的计数参数n+1,确定所述虚拟机的克隆数为n。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810126882.4A CN108446161B (zh) | 2018-02-06 | 2018-02-06 | 在虚拟机环境下运行应用程序的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810126882.4A CN108446161B (zh) | 2018-02-06 | 2018-02-06 | 在虚拟机环境下运行应用程序的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108446161A CN108446161A (zh) | 2018-08-24 |
CN108446161B true CN108446161B (zh) | 2022-03-18 |
Family
ID=63191893
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810126882.4A Active CN108446161B (zh) | 2018-02-06 | 2018-02-06 | 在虚拟机环境下运行应用程序的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108446161B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112115451B (zh) * | 2020-09-28 | 2024-04-12 | 天地伟业技术有限公司 | 一种在ARM架构的Docker容器中识别热插拔硬件USB加密狗的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101661545A (zh) * | 2009-09-22 | 2010-03-03 | 江汉大学 | 可卸载再安装的软件防盗版方法及装置 |
CN103235906A (zh) * | 2013-03-27 | 2013-08-07 | 广东欧珀移动通信有限公司 | 一种应用程序加密、解密方法及加密、解密装置 |
US8875266B2 (en) * | 2007-05-16 | 2014-10-28 | Vmware, Inc. | System and methods for enforcing software license compliance with virtual machines |
CN104484629A (zh) * | 2014-12-03 | 2015-04-01 | 合肥联宝信息技术有限公司 | 一种计算机启动方法及装置 |
CN104866759A (zh) * | 2014-02-20 | 2015-08-26 | 鸿富锦精密工业(深圳)有限公司 | 动态设定超级用户密码的***及方法 |
EP2955651A1 (en) * | 2014-06-10 | 2015-12-16 | Services Petroliers Schlumberger | Methods and systems for managing license distribution for software |
CA2780393C (en) * | 2011-06-21 | 2016-06-07 | Dls Technology Corporation | Key based secure operating system with secure dongle and method, and cryptographic method |
-
2018
- 2018-02-06 CN CN201810126882.4A patent/CN108446161B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8875266B2 (en) * | 2007-05-16 | 2014-10-28 | Vmware, Inc. | System and methods for enforcing software license compliance with virtual machines |
CN101661545A (zh) * | 2009-09-22 | 2010-03-03 | 江汉大学 | 可卸载再安装的软件防盗版方法及装置 |
CA2780393C (en) * | 2011-06-21 | 2016-06-07 | Dls Technology Corporation | Key based secure operating system with secure dongle and method, and cryptographic method |
CN103235906A (zh) * | 2013-03-27 | 2013-08-07 | 广东欧珀移动通信有限公司 | 一种应用程序加密、解密方法及加密、解密装置 |
CN104866759A (zh) * | 2014-02-20 | 2015-08-26 | 鸿富锦精密工业(深圳)有限公司 | 动态设定超级用户密码的***及方法 |
EP2955651A1 (en) * | 2014-06-10 | 2015-12-16 | Services Petroliers Schlumberger | Methods and systems for managing license distribution for software |
CN104484629A (zh) * | 2014-12-03 | 2015-04-01 | 合肥联宝信息技术有限公司 | 一种计算机启动方法及装置 |
Non-Patent Citations (1)
Title |
---|
NFV可靠性探讨;杨旭等;《电信科学》;20170720;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108446161A (zh) | 2018-08-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11762986B2 (en) | System for securing software containers with embedded agent | |
US9729579B1 (en) | Systems and methods for increasing security on computing systems that launch application containers | |
US8904552B2 (en) | System and method for protecting data information stored in storage | |
EP2795829B1 (en) | Cryptographic system and methodology for securing software cryptography | |
US11693952B2 (en) | System and method for providing secure execution environments using virtualization technology | |
WO2019104988A1 (zh) | Plc的安全处理单元及其总线仲裁方法 | |
US20160275019A1 (en) | Method and apparatus for protecting dynamic libraries | |
CN103827881A (zh) | 用于设备操作***中的动态平台安全的方法和*** | |
CN110383277A (zh) | 虚拟机监视器测量代理 | |
US9262631B2 (en) | Embedded device and control method thereof | |
US20170255775A1 (en) | Software verification systems with multiple verification paths | |
CN112069506B (zh) | 一种安全启动方法和装置 | |
US10810137B2 (en) | Physical address randomization for secure encrypted memory | |
CN109190335B (zh) | 一种软件版权保护方法和*** | |
CN105308610A (zh) | 用于设备上的平台和用户应用安全性的方法和*** | |
Yalew et al. | Hail to the Thief: Protecting data from mobile ransomware with ransomsafedroid | |
CN108985096B (zh) | 一种Android SQLite数据库安全增强、安全操作方法以及装置 | |
CN108446161B (zh) | 在虚拟机环境下运行应用程序的方法及装置 | |
US8972745B2 (en) | Secure data handling in a computer system | |
US20210342092A1 (en) | Apparatus and method for providing one time programmable memory features in a hypervisor of a computing device | |
EP1512060A1 (en) | Tamper evident removable media storing executable code | |
CN113868691B (zh) | 一种基于云原生的区块链的授权运行方法及装置 | |
CN112199678B (zh) | 一种在线取证的方法、装置、计算机设备和可读存储介质 | |
CN111611551A (zh) | 一种基于国密算法的动态链接库保护方法及其*** | |
CN114730338A (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 |