CN109190335B - 一种软件版权保护方法和*** - Google Patents

一种软件版权保护方法和*** Download PDF

Info

Publication number
CN109190335B
CN109190335B CN201811083036.5A CN201811083036A CN109190335B CN 109190335 B CN109190335 B CN 109190335B CN 201811083036 A CN201811083036 A CN 201811083036A CN 109190335 B CN109190335 B CN 109190335B
Authority
CN
China
Prior art keywords
fingerprint information
virtual machine
software
device fingerprint
container
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
CN201811083036.5A
Other languages
English (en)
Other versions
CN109190335A (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 COMPUTING CENTER
Original Assignee
BEIJING COMPUTING CENTER
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 BEIJING COMPUTING CENTER filed Critical BEIJING COMPUTING CENTER
Priority to CN201811083036.5A priority Critical patent/CN109190335B/zh
Publication of CN109190335A publication Critical patent/CN109190335A/zh
Application granted granted Critical
Publication of CN109190335B publication Critical patent/CN109190335B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • 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/44Program or device authentication

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Storage Device Security (AREA)

Abstract

本发明实施例提供一种软件版权保护方法和***,其中方法包括:若判断获知物理机的设备指纹信息与物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动虚拟机;虚拟机启动后,若判断获知物理机的设备指纹信息与虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件。本发明实施例提供的方法和***,分别在虚拟机和Docker容器启动前对设备指纹信息进行认证,确保软件只能在一个授权的物理机上运行,解决了现有的软件版权保护方法无法限制软件的反复安装的问题,实现了有效的软件版权保护,且无需任何额外的硬件,成本低廉。

Description

一种软件版权保护方法和***
技术领域
本发明实施例涉及信息安全技术领域,尤其涉及一种软件版权保护方法和***。
背景技术
随着软件产品的日益丰富和完善,软件产品的版权保护得到了越来越多的重视。
目前,通用的软件版权保护方法是在用户购买正版软件后,由软件供应商向用户提供软件授权码,用户通过软件授权码对软件授权后,才能正常使用软件,否则软件将在试用期限到期后限制使用。
然而,经过软件授权码授权之后的软件可以不受物理机的限制,在多台计算机上有效运行,上述软件版权保护方法无法限制软件的反复安装。因此,软件的版权保护依然是软件开发商面临的严峻问题。
发明内容
本发明实施例提供一种软件版权保护方法和***,用以解决现有的软件保护方法无法限制软件在不同物理机上反复安装的问题。
一方面,本发明实施例提供一种软件版权保护方法,包括:
若判断获知物理机的设备指纹信息与物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动虚拟机;
虚拟机启动后,若判断获知物理机的设备指纹信息与虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件。
另一方面,本发明实施例提供一种软件版权保护***,包括:
虚拟机认证单元,用于若判断获知物理机的设备指纹信息与物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动虚拟机;
容器认证单元,用于若判断获知物理机的设备指纹信息与虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件。
又一方面,本发明实施例提供一种电子设备,包括处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信,处理器可以调用存储器中的逻辑指令,以执行如前所述的软件版权保护方法。
再一方面,本发明实施例提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现如前所述的软件版权保护方法。
本发明实施例提供的一种软件版权保护方法和***,分别在虚拟机和Docker容器启动前对设备指纹信息进行认证,确保软件只能在一个授权的物理机上运行,解决了现有的软件版权保护方法无法限制软件的反复安装的问题,实现了有效的软件版权保护,且无需任何额外的硬件,成本低廉。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的软硬件结构示意图;
图2为本发明实施例提供的软件版权保护方法的流程示意图;
图3为本发明实施例提供的软件版权保护***的结构示意图;
图4为本发明实施例提供的电子设备的结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
当前的软件版权保护方法主要是通过软件授权码对软件进行授权,但上述保护方法只能对直接运行在物理机环境中的软件,以及软件的数字内容进行保护,如果将软件安装在物理机中布置的虚拟机的Docker容器内,则上述保护方法无法监控虚拟机环境和Docker容器中的软件以及软件的数字内容,拷贝虚拟机内的或Docker容器内的软件和软件的数字内容即可使软件在其他物理机中运行,重复安装极大地伤害了软件版权。本发明实施例提出的软件版权保护方法,适用于对安装在虚拟机内的Docker容器中的软件的保护,非法的软件及数字内容迁移会造成软件及内容不可用。与传统的软件版权保护方式不同,本发明实施例将软件及硬件整体作为保护对象,一方面防止用户在非授权情况下使用软件和数字内容,另一方面防止软件和数字内容非法迁移至其他硬件。
图1为本发明实施例提供的软硬件结构示意图,如图1所示,本发明实施例所处的***中存在三种角色:物理机、虚拟机(KVM)和Docker容器(Docker)。其中,物理机即宿主机,为虚拟机提供运行环境。每一虚拟机下部署有若干个Docker容器,Docker容器内包含有各种软件及各种软件的数字内容。启动Docker容器,则Docker容器内包含的软件及其数字内容也会随之启动。
图2为本发明实施例提供的软件版权保护方法的流程示意图,如图2所示,一种软件版权保护方法,包括:
101,若判断获知物理机的设备指纹信息与物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动虚拟机。
具体地,本发明实施例提出的软件版权保护方法针对安装在物理机部署的任一虚拟机内的Docker容器内的软件。101中的虚拟机,是指安装有需要版权保护的软件对应的Docker容器的虚拟机,启动虚拟机是启动并运行软件的必须步骤。在启动虚拟机之前,需要比较物理机的设备指纹信息,与在该物理机部署的虚拟机中安装该软件时存储在虚拟机中的软件许可文件中的虚拟机设备指纹信息是否一致。此处,物理机的设备指纹信息是指用于唯一标识出物理机的设备特征或者独特的设备标识。虚拟机设备指纹信息则是虚拟机预存的软件许可文件中授权的物理机的设备指纹信息。如果物理机的设备指纹信息和虚拟机设备指纹信息一致,则说明虚拟机预存的软件许可文件中授权的物理机即为当前的物理机,在当前物理机上运行该软件是经过授权的,因此启动虚拟机,进行下一步认证。
102,虚拟机启动后,若判断获知物理机的设备指纹信息与虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件。
具体地,102中的Docker容器,是指安装有需要版权保护的软件对应的Docker容器,在启动部署有该Docker容器的虚拟机之后,启动该Docker容器是启动并运行软件的必须步骤。在完成虚拟机的启动之后,启动该Docker容器之前,需要比较物理机的设备指纹信息,与在该物理机部署的虚拟机的Docker容器中安装该软件时存储在Docker容器中的软件许可文件中的容器设备指纹信息是否一致。此处,容器设备指纹信息则是Docker容器预存的软件许可文件中授权的物理机的设备指纹信息。如果物理机的设备指纹信息和容器设备指纹信息一致,则说明Docker容器预存的软件许可文件中授权的物理机即为当前的物理机,在当前物理机上运行该软件是经过授权的,因此启动Docker容器,运行本发明实施例提出的版权保护方法保护的软件。
本发明实施例提供的方法,分别在虚拟机和Docker容器启动前对设备指纹信息进行认证,确保软件只能在一个授权的物理机上运行,解决了现有的软件版权保护方法无法限制软件的反复安装的问题,实现了有效的软件版权保护,且无需任何额外的硬件,成本低廉。
基于上述实施例,101,若判断获知物理机的设备指纹信息与物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动虚拟机,之前还包括:
100,获取物理机的设备指纹信息;在物理机中部署的虚拟机上安装Docker容器,并将物理机的设备指纹信息写入虚拟机的软件许可文件与Docker容器的软件许可文件中。
具体地,在对安装在物理机中部署的虚拟机中的Docker容器内的软件进行授权时,需要将授权的物理机的设备指纹信息写入虚拟机的软件许可文件,以使得在执行软件版权保护方法时,能够从虚拟机的软件许可文件中提取虚拟机设备指纹信息,即虚拟机的软件许可文件中存储的授权物理机的设备指纹信息,并与当前物理机的设备指纹信息进行对比,判断当前物理机是否为授权物理机。此外,还需要将授权的物理机的设备指纹信息写入Docker容器的软件许可文件,以使得在执行软件版权保护方法时,能够从Docker容器的软件许可文件中提取容器设备指纹信息,即Docker容器的软件许可文件中存储的授权物理机的设备指纹信息,并与当前物理机的设备指纹信息进行对比,判断当前物理机是否为授权物理机。
基于上述任一实施例,101,若判断获知物理机的设备指纹信息与物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动虚拟机,具体包括:
1011,对物理机的设备指纹信息进行加密,得到加密设备指纹信息。
具体地,首先获取物理机的设备指纹信息。为了便于后续与虚拟机设备指纹信息进行比较,在进行设备指纹信息认证前,需要对当前物理机的设备指纹信息进行加密。
1012,从物理机中部署的虚拟机预存的软件许可文件中提取虚拟机设备指纹信息,并对虚拟机设备指纹信息进行加密,得到加密虚拟机设备指纹信息。此处,加密虚拟机设备指纹信息是在虚拟机预存的软件许可文件中加密后的授权物理机的设备指纹信息。对虚拟机设备指纹信息进行加密时应用的加密算法,与对物理机的设备指纹信息进行加密时应用的加密算法一致。
1013,若加密设备指纹信息与加密虚拟机设备指纹信息一致,则启动虚拟机;否则,进入挂起状态,发出认证失败信息。
具体地,将两种经过同种加密算法进行加密后的设备指纹信息(其中,加密设备指纹信息为当前物理机加密后的设备指纹信息,加密虚拟机设备指纹信息为虚拟机预存的软件许可文件中加密后的授权物理机的设备指纹信息)进行比较,如果一致则说明虚拟机预存的软件许可文件中授权的物理机即为当前的物理机,在当前物理机上运行该软件是经过授权的,因此启动虚拟机,进行下一步认证;如果不一致,则说明虚拟机预存的软件许可文件中授权的物理机不是当前的物理机,在当前物理机上运行该软件是非法的,进入挂起状态指将当前操作***挂起,停止启动虚拟器,同时发出认证失败信息,提示操作人员该软件未在当前物理机上授权。
基于上述任一实施例,102,虚拟机启动后,若判断获知物理机的设备指纹信息与虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件,具体包括:
1021,虚拟机启动后,从虚拟机中部署的Docker容器预存的软件许可文件中提取容器设备指纹信息。具体地,此处,加密容器设备指纹信息是在Docker容器预存的软件许可文件中加密后的授权物理机的设备指纹信息。
1022,若加密设备指纹信息与加密容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件;否则,停止启动Docker容器,发出认证失败信息。
具体地,将两种经过同种加密算法进行加密后的设备指纹信息(其中,加密设备指纹信息为当前物理机加密后的设备指纹信息,加密容器设备指纹信息为Docker预存的软件许可文件中加密后的授权物理机的设备指纹信息)进行比较,如果一致则说明Docker容器预存的软件许可文件中授权的物理机即为当前的物理机,在当前物理机上运行该软件是经过授权的,因此启动Docker容器,运行Docker容器内的软件;如果不一致,则说明Docker容器预存的软件许可文件中授权的物理机不是当前的物理机,在当前物理机上运行该软件是非法的,停止启动Docker容器,同时发出认证失败信息,提示操作人员该软件未在当前物理机上授权。
需要说明的是,如果对虚拟机的软件许可文件中虚拟机设备指纹信息进行加密应用的加密算法与对Docker容器的软件许可文件中容器设备指纹信息进行加密应用的加密算法是同一加密算法,则在执行步骤1022时,可以沿用步骤101中获取的加密设备指纹信息与加密容器设备指纹信息进行对比。否则,在执行步骤1022之前,还需要应用对Docker容器的软件许可文件中容器设备指纹信息进行加密的加密算法,对当前物理机的设备指纹信息进行加密,得到加密设备指纹信息,再与加密容器设备指纹信息进行对比。
基于上述任一实施例,102,虚拟机启动后,若判断获知物理机的设备指纹信息与虚拟机中部署的Docker容器预存的软件许可文件中的Docker容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件,之后还包括:
103,每隔预设时间,更新虚拟机设备指纹信息和容器设备指纹信息;若判断获知设备指纹信息与虚拟机设备指纹信息不同,和/或,设备指纹信息与容器设备指纹信息不同,则退出软件,发出认证失败信息。
具体地,在通过虚拟机和Docker容器双层认证后,软件开始运行。在软件运行过程中,每隔预设时间,重新获取虚拟机中软件许可文件中的虚拟机设备指纹信息,以及Docker容器中软件许可文件中的容器设备指纹信息,分别与物理机的设备指纹信息比较。如果设备指纹信息、虚拟机设备指纹信息以及容器设备指纹信息一致,则认证通过,继续运行软件;如果设备指纹信息与虚拟机设备指纹信息不一致,或者设备指纹信息与容器设备指纹信息不一致,再或者设备指纹信息与虚拟机设备指纹信息和容器设备指纹信息均不一致,则在软件运行过程中,虚拟机中的软件许可文件和/或Docker容器中的软件许可文件被恶意修改,因而导致了认证失败,软件退出。本发明实施例不对预设时间作具体限定。
本发明实施例提出的方法,通过进行周期性认证,防止软件在运行过程中软件许可文件遭到恶意修改,有效保护软件版权。
基于上述任一实施例,设备指纹信息为MAC地址。MAC(Media AccessControl)地址,又称为物理地址、硬件地址,用来定义网络设备的位置。在OSI模型中,第二层数据链路层负责MAC地址。因此一个物理机会有一个专属的MAC地址,MAC地址是网卡决定的,是固定的。本发明实施例中,应用MAC地址作为物理机的唯一标识,从而确保软件只能在一个授权的物理机上运行。
基于上述任一实施例,对物理机的设备指纹信息进行加密,得到加密设备指纹信息,具体包括:对物理机的设备指纹信息进行md5加密,得到加密设备指纹信息。
此处,md5消息摘要算法(MD5Message-Digest Algorithm),是一种被广泛使用的密码散列函数,可以产生出一个128位(16字节)的散列值(hashvalue),用于确保信息传输完整一致。md5就可以为任何文件产生一个同样独一无二的数字指纹,如果任何人对文件做了任何改动,其md5值也就是对应的数字指纹都会发生变化。应用md5算法进行加密,则加密设备指纹信息为设备指纹信息的md5值,加密虚拟机设备指纹信息为虚拟机设备指纹信息的md5值,加密容器设备指纹信息为容器设备指纹信息的md5值。
为了更好地理解与应用本发明提出的软件版权保护方法,现结合上述实施例的内容,本发明以如下示例对软件版权保护过程进行解释说明,具体阐述如下:
针对需要启动的软件安装在物理机中虚拟机内的Docker容器内的情况,首先,获取物理机的设备指纹信息,并对设备指纹信息进行md5加密,得到加密设备指纹信息。
其次,从物理机中部署的虚拟机预存的软件许可文件中提取虚拟机设备指纹信息,并对虚拟机设备指纹信息进行md5加密,得到加密虚拟机设备指纹信息。若加密设备指纹信息与加密虚拟机设备指纹信息一致,则启动虚拟机;否则,进入挂起状态,发出认证失败信息。
虚拟机启动后,从虚拟机中部署的Docker容器预存的软件许可文件中提取容器设备指纹信息,并对容器设备指纹信息进行md5加密,得到加密容器设备指纹信息。若加密设备指纹信息与所述加密容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件;否则,停止启动Docker容器,发出认证失败信息。
基于上述任一方法实施例,图3为本发明实施例提供的软件版权保护***的结构示意图,如图3所示,一种软件版权保护***,包括虚拟机认证单元301和容器认证单元302;
其中,虚拟机认证单元301,用于若判断获知物理机的设备指纹信息与物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动虚拟机;
容器认证单元302,用于虚拟机启动后,若判断获知物理机的设备指纹信息与虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件。
本发明实施例提供的***,分别在虚拟机和Docker容器启动前对设备指纹信息进行认证,确保软件只能在一个授权的物理机上运行,解决了现有的软件版权保护方法无法限制软件的反复安装的问题,实现了有效的软件版权保护,且无需任何额外的硬件,成本低廉。
基于上述任一实施例,还包括:
安装授权单元,用于获取物理机的设备指纹信息;在物理机中部署的虚拟机上安装Docker容器,并将物理机的设备指纹信息写入虚拟机的软件许可文件与Docker容器的软件许可文件中。
基于上述任一实施例,虚拟机认证单元301,具体包括:
指纹加密子单元,用于对物理机的设备指纹信息进行加密,得到加密设备指纹信息;
虚拟机指纹加密子单元,用于从物理机中部署的虚拟机预存的软件许可文件中提取虚拟机设备指纹信息,并对虚拟机设备指纹信息进行加密,得到加密虚拟机设备指纹信息;
虚拟机认证子单元,用于若加密设备指纹信息与加密虚拟机设备指纹信息一致,则启动虚拟机;否则,进入挂起状态,发出认证失败信息。
基于上述任一实施例,容器认证单元302,具体用于:
容器指纹加密子单元,用于从虚拟机中部署的Docker容器预存的软件许可文件中提取容器设备指纹信息,并对容器设备指纹信息进行加密,得到加密容器设备指纹信息;
容器认证子单元,用于若加密设备指纹信息与加密容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件;否则,停止启动Docker容器,发出认证失败信息。
基于上述任一实施例,还包括:
周期认证单元,用于每隔预设时间,更新虚拟机设备指纹信息和容器设备指纹信息;若判断获知设备指纹信息与虚拟机设备指纹信息不同,和/或,设备指纹信息与容器设备指纹信息不同,则退出软件,发出认证失败信息。
基于上述任一实施例,设备指纹信息为MAC地址。
基于上述任一实施例,指纹加密子单元,具体用于:对物理机的设备指纹信息进行md5加密,得到加密设备指纹信息。
图4为本发明实施例提供的电子设备的结构示意图,如图4所示,电子设备包括:处理器(processor)401、通信接口(Communications Interface)402、存储器(memory)403和总线404,其中,处理器401,通信接口402,存储器403通过总线404完成相互间的通信。处理器401可以调用存储器403中的逻辑指令,以执行如下方法,例如包括:若判断获知物理机的设备指纹信息与物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动虚拟机;虚拟机启动后,若判断获知物理机的设备指纹信息与虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件。
本发明实施例公开一种计算机程序产品,计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,计算机程序包括程序指令,当程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:若判断获知物理机的设备指纹信息与物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动虚拟机;虚拟机启动后,若判断获知物理机的设备指纹信息与虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件。
本实施例提供一种非暂态计算机可读存储介质,非暂态计算机可读存储介质存储计算机指令,计算机指令使计算机执行上述各方法实施例所提供的方法,例如包括:若判断获知物理机的设备指纹信息与物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动虚拟机;虚拟机启动后,若判断获知物理机的设备指纹信息与虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动Docker容器,运行Docker容器内的软件。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的通信设备等实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。

Claims (10)

1.一种软件版权保护方法,其特征在于,包括:
若判断获知物理机的设备指纹信息与所述物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动所述虚拟机;
所述虚拟机启动后,若判断获知所述物理机的设备指纹信息与所述虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动所述Docker容器,运行所述Docker容器内的软件。
2.根据权利要求1所述的方法,其特征在于,所述若判断获知物理机的设备指纹信息与所述物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动所述虚拟机,之前还包括:
获取所述物理机的设备指纹信息;
在所述物理机中部署的所述虚拟机上安装所述Docker容器,并将所述物理机的设备指纹信息写入所述虚拟机的软件许可文件与所述Docker容器的软件许可文件中。
3.根据权利要求1所述的方法,其特征在于,所述若判断获知物理机的设备指纹信息与所述物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动所述虚拟机,具体包括:
对所述物理机的设备指纹信息进行加密,得到加密设备指纹信息;
从所述物理机中部署的虚拟机预存的软件许可文件中提取虚拟机设备指纹信息,并对所述虚拟机设备指纹信息进行加密,得到加密虚拟机设备指纹信息;
若所述加密设备指纹信息与所述加密虚拟机设备指纹信息一致,则启动所述虚拟机;
否则,进入挂起状态,发出认证失败信息。
4.根据权利要求3所述的方法,其特征在于,所述虚拟机启动后,若判断获知所述物理机的设备指纹信息与所述虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动所述Docker容器,运行所述Docker容器内的软件,具体包括:
所述虚拟机启动后,从所述虚拟机中部署的Docker容器预存的软件许可文件中提取容器设备指纹信息,并对所述容器设备指纹信息进行加密,得到加密容器设备指纹信息;
若所述加密设备指纹信息与所述加密容器设备指纹信息一致,则启动所述Docker容器,运行所述Docker容器内的软件;
否则,停止启动所述Docker容器,发出认证失败信息。
5.根据权利要求1所述的方法,其特征在于,所述虚拟机启动后,若判断获知所述物理机的设备指纹信息与所述虚拟机中部署的Docker容器预存的软件许可文件中的Docker容器设备指纹信息一致,则启动所述Docker容器,运行所述Docker容器内的软件,之后还包括:
每隔预设时间,更新所述虚拟机设备指纹信息和所述容器设备指纹信息;
若判断获知所述设备指纹信息与所述虚拟机设备指纹信息不同,和/或,所述设备指纹信息与所述容器设备指纹信息不同,则退出所述软件,发出认证失败信息。
6.根据权利要求1所述的方法,其特征在于,所述设备指纹信息为MAC地址。
7.根据权利要求3或4所述的方法,其特征在于,所述对所述物理机的设备指纹信息进行加密,得到加密设备指纹信息,具体包括:
对所述物理机的设备指纹信息进行md5加密,得到加密设备指纹信息。
8.一种软件版权保护***,其特征在于,包括:
虚拟机认证单元,用于若判断获知物理机的设备指纹信息与所述物理机中部署的虚拟机预存的软件许可文件中的虚拟机设备指纹信息一致,则启动所述虚拟机;
容器认证单元,用于所述虚拟机启动后,若判断获知所述物理机的设备指纹信息与所述虚拟机中部署的Docker容器预存的软件许可文件中的容器设备指纹信息一致,则启动所述Docker容器,运行所述Docker容器内的软件。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和总线,其中,处理器,通信接口,存储器通过总线完成相互间的通信,处理器可以调用存储器中的逻辑指令,以执行如权利要求1至7任一所述的软件版权保护方法。
10.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1至7任一所述的软件版权保护方法。
CN201811083036.5A 2018-09-17 2018-09-17 一种软件版权保护方法和*** Active CN109190335B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811083036.5A CN109190335B (zh) 2018-09-17 2018-09-17 一种软件版权保护方法和***

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811083036.5A CN109190335B (zh) 2018-09-17 2018-09-17 一种软件版权保护方法和***

Publications (2)

Publication Number Publication Date
CN109190335A CN109190335A (zh) 2019-01-11
CN109190335B true CN109190335B (zh) 2020-05-05

Family

ID=64911841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811083036.5A Active CN109190335B (zh) 2018-09-17 2018-09-17 一种软件版权保护方法和***

Country Status (1)

Country Link
CN (1) CN109190335B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111143784A (zh) * 2019-12-12 2020-05-12 合肥大唐存储科技有限公司 一种版权保护的实现方法和版权保护存储装置
CN111046367B (zh) * 2019-12-24 2022-05-03 思必驰科技股份有限公司 语音设备鉴权方法及***
CN112751832B (zh) * 2020-12-18 2022-08-02 湖南麒麟信安科技股份有限公司 一种虚拟机操作***在线授权认证方法、设备和存储介质
CN113051036A (zh) * 2021-03-31 2021-06-29 京东方科技集团股份有限公司 基于Docker容器的应用程序许可方法、装置、设备和介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1834973A (zh) * 2006-04-18 2006-09-20 北京大学 数字产品中指纹的构造和验证方法及数字产品发行***
CN102446106A (zh) * 2010-09-30 2012-05-09 联想(北京)有限公司 应用程序的安装管理方法、服务器和终端
CN102982263A (zh) * 2012-11-19 2013-03-20 中国联合网络通信集团有限公司 应用程序保护方法和设备
CN107679371A (zh) * 2017-09-25 2018-02-09 用友网络科技股份有限公司 软件许可控制方法、装置、计算机设备和可读存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1834973A (zh) * 2006-04-18 2006-09-20 北京大学 数字产品中指纹的构造和验证方法及数字产品发行***
CN102446106A (zh) * 2010-09-30 2012-05-09 联想(北京)有限公司 应用程序的安装管理方法、服务器和终端
CN102982263A (zh) * 2012-11-19 2013-03-20 中国联合网络通信集团有限公司 应用程序保护方法和设备
CN107679371A (zh) * 2017-09-25 2018-02-09 用友网络科技股份有限公司 软件许可控制方法、装置、计算机设备和可读存储介质

Also Published As

Publication number Publication date
CN109190335A (zh) 2019-01-11

Similar Documents

Publication Publication Date Title
CN109190335B (zh) 一种软件版权保护方法和***
EP3889766B1 (en) Secure firmware upgrade method, device, on-board system, and vehicle
EP3453136B1 (en) Methods and apparatus for device authentication and secure data exchange between a server application and a device
JP6072091B2 (ja) アプリケーション・プログラム用の安全なアクセス方法および安全なアクセス装置
CN112257086B (zh) 一种用户隐私数据保护方法及电子设备
CN108229144B (zh) 一种应用程序的验证方法、终端设备及存储介质
CN110414248B (zh) 一种调试微处理器的方法及微处理器
CN107292176A (zh) 用于访问计算设备的可信平台模块的方法和***
JP2007534544A (ja) 車両内の制御機器の認証
CN112800392A (zh) 基于软证书的授权方法和装置、存储介质
EP3001341B1 (en) NFC device, software installation method, software uninstallation method, computer program and article of manufacture
CN105308610A (zh) 用于设备上的平台和用户应用安全性的方法和***
CN115314253A (zh) 数据处理方法、装置、***、设备及作业机械
CN110633172A (zh) U盘以及u盘的数据同步方法
CN109889334A (zh) 嵌入式固件加密方法、装置、wifi设备及存储介质
CN110619194B (zh) 一种升级包加密、解密方法及装置
CN108390892B (zh) 一种远程存储***安全访问的控制方法和装置
CN105653932A (zh) 软件升级验证的方法和装置
CN113127141B (zh) 一种容器***管理方法、装置、终端设备及存储介质
US9633207B2 (en) Method for downloading at least one software component onto a computing device, and associated computer program product, computing device and computer system
CN114817956A (zh) 一种usb通信对象验证方法、***、装置及存储介质
CN114584318A (zh) 一种证书和密钥的访问控制方法、电子设备和存储介质
CN112363776A (zh) 一种终端控制方法、装置及终端
CN113966510A (zh) 可信设备和计算***
CN116938471A (zh) 一种pos机安全授权部署方法、装置及存储介质

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