由于虚拟机的硬件信息可以随意修改,使得虚拟机可能具有相同的硬件信息,在传统的应用软件License认证方式中会导致License认证漏洞。本专利提供了一种有效的解决方法。

文/王宏财

目 前,云计算的概念已经被大家广为接受,数据中心三大组成部分——计算、网络和存储都在向虚拟化方向发展。其中,服务器一虚多的技术是云计算的核心技术之 一。传统服务器由于服务器性能和网络通信端口的不匹配导致服务器计算性能的闲置浪费。虚拟软件是一种能够将一台物理服务器虚拟化成若干台逻辑服务器的软 件,各逻辑服务器为运行在物理服务器上的虚拟机,各虚拟机上均具备CPU、内存、硬盘、主板、网卡等硬件环境,对于虚拟机上运行的应用软件,在虚拟机上运 行与在物理服务器上运行没有差别。

传统的应用软件License认证过程为:应用软件在注册过程中, 将所在设备的硬件信息发送给License文件生成设备,由其生成包含有该硬件信息的License文件,并将该License文件保存在应用软件中;注 册过程结束之后,应用软件在认证过程中,首先获取应用软件当前所处设备的硬件信息,并通过比较License文件中记录的硬件信息与当前获得的硬件信息是 否相同,从而确定License认证成功或者失败。

但是,由于虚拟机的硬件信息可以随意进行修改和克 隆,多台虚拟机可能会具有相同的硬件信息,因此如果将传统的License认证方式应用在虚拟机上时,会导致License认证漏洞。例如,在某应用场景 下,虚拟机1和虚拟机2具有相同的硬件信息,应用软件本应该运行在虚拟机1上,License文件中记录虚拟机1的硬件信息;但是在虚拟机2上认证该应用 软件时,由于获取的虚拟机2的硬件信息与虚拟机1相同,因此,通过比较License文件中记录的硬件信息(虚拟机1的硬件信息)与应用软件当前所处设备 的硬件信息(虚拟机2的硬件信息),会得出License认证成功的结果,但显然这一License认证结果并不符合实际情况。

为了解决该问题,本专利通过结合虚拟机所在物理服务器的信息来实现应用软件的License认证。具体如下:

1、在虚拟机上注册应用软件时,获取该应用软件当前所运行虚拟机的硬件信息,并获得该应用软件当前所运行虚拟机所在物理服务器的硬件信息和其在物理服务器上的唯一标识。

2、将虚拟机的硬件信息、虚拟机所在物理服务器的硬件信息和虚拟机在物理服务器上的唯一标识发送给License文件生成设备,License文件生成设备根据前述信息生成License文件,并将该License文件保存在应用软件中。

3、 注册应用软件成功之后,在虚拟机上认证该应用软件时,获得该应用软件当前所运行虚拟机的硬件信息,并比较License文件中记录的虚拟机的硬件信息与获 得的虚拟机的硬件信息;如果相同,则进一步获取应用软件当前所运行虚拟机所在物理服务器的硬件信息和该虚拟机在物理服务器上的唯一标识,与License 文件中记录的相关信息进行比较,如果相同,确定License认证成功,否则,License认证失败。

当虚拟机发生克隆时,尽管虚拟机上的硬件信息未发生变化,但由于虚拟机在物理服务器上的唯一标识会发生变化,因此通过本发明技术,可以有效地解决虚拟机克隆过程中的License认证漏洞。

专利点评:

本 发明通过在License文件中记录虚拟机所在物理服务器的硬件信息和虚拟机在物理服务器上的唯一识别标识,并利用License文件中记录的这些信息进 行License认证,巧妙地利用了虚拟机在物理服务器上的唯一标识会随着虚拟机而发生变化的特点,从而避免了传统的License认证方式应用在虚拟机 上时的认证失效。另外,本发明只需要多收集两个信息参数,不需要对现有网络进行任何改造,具有较高的应用价值。

一种针对虚拟机的应用软件License认证方法的更多相关文章

  1. 深入了解三种针对文件(JSON、XML与INI)的配置源

    深入了解三种针对文件(JSON.XML与INI)的配置源 物理文件是我们最常用到的原始配置的载体,最佳的配置文件格式主要由三种,它们分别是JSON.XML和INI,对应的配置源类型分别是JsonCon ...

  2. [工控安全]“祝融”—一种针对PLC控制系统的欺骗攻击病毒

    “祝融”作为一种针对传统PLC控制系统的欺骗攻击病毒,所述的典型的PLC控制系统通常包括两部分: 用于组态.编程.监视.控制的工程师站(通常是PC设备) PLC控制器(通常如西门子.施耐德.三菱等厂家 ...

  3. java JAXB + STAX(是一种针对XML的流式拉分析API)读取xml

    JDK1.5需要添加jar包,1.6以后就不需要了<dependency> <groupId>stax</groupId> <artifactId>st ...

  4. 转载:一种云环境下SaaS软件部署方法及装置与流程

    转载:http://www.xjishu.com/zhuanli/55/201710103925.html 本发明涉及云计算技术领域,特别是涉及一种云环境下SaaS软件部署方法及装置. 背景技术: 随 ...

  5. jvm入门及理解(五)——运行时数据区(虚拟机栈)和本地方法接口

    一.虚拟机栈背景 由于跨平台性的设计,java的指令都是根据栈来设计的.不同平台CPU架构不同,所以不能设计为基于寄存器的. 优点是跨平台,指令集小,编译器容易实现,缺点是性能下降,实现同样的功能需要 ...

  6. 把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进)

    #把JSON数据载入到页面表单的两种思路(对easyui自带方法进行改进) ##背景 项目中经常需要把JSON数据填充到页面表单,一开始我使用easyui自带的form load方法,觉得效率很低,经 ...

  7. 基于Qt有限状态机的一种实现方式和完善的人工智能方法

    基于Qt有限状态机的一种实现方式和完善的人工智能方法 人工智能在今年是一个非常火的方向,当然了.不不过今年,它一直火了非常多年,有关人工智能的一些算法层出不穷.人工智能在非常多领域都有应用,就拿我熟悉 ...

  8. 一种快速查询多点DS18B20温度的方法(转)

    源:http://hi.baidu.com/james_xiao/item/79b961c90623093e45941623 一种快速查询多点DS18B20温度的方法 引言      为了满足实时性要 ...

  9. Hyper-V与VirtualBox或VMware虚拟机软件冲突的解决方法(VirtualBox只能创建32位虚拟机)

    Hyper-V与VirtualBox或VMware虚拟机软件冲突的解决方法 Hyper-V是微软的虚拟化软件,功能类似VirtualBox.VMware,可以用来创建虚拟机. 虚拟化软件都是基于CPU ...

随机推荐

  1. 【剑指offer】面试题36:数组中的逆序对

    题目: 在数组中的两个数字,如果前面一个数字大于后面的数字,则这两个数字组成一个逆序对.输入一个数组,求出这个数组中的逆序对的总数. 思路: 归并排序的合并过程.主要是考虑合并两个有序序列时,计算逆序 ...

  2. Decorator学习笔记

    初学者,自己的理解,请各位前辈不吝指正! Decorator,装饰模式,设计模式之一,谈谈我的理解,装饰这个词在我概念中就是给某个事物加上一些美丽的外表,把它变得更加完美.但是装饰是可以随时改变的,可 ...

  3. 高性能以太网芯片W5500 数据手册 V1.0(一)

    W5500 W5500 是一款全硬件 TCP/IP 嵌入式以太网控制器,为嵌入式系统提供了更加简易的互联网连接方案.W5500 集成了 TCP/IP 协议栈,10/100M 以太网数据链路层(MAC) ...

  4. JAVA并发实现五(生产者和消费者模式Condition方式实现)

    package com.subject01; import java.util.PriorityQueue; import java.util.concurrent.locks.Condition; ...

  5. RequireJS入门(二)

    上一篇是把整个jQuery库作为一个模块.这篇来写一个自己的模块:选择器. 为演示方便这里仅实现常用的三种选择器id,className,attribute.RequireJS使用define来定义模 ...

  6. css中的边框样式

    在盒子模型中,盒子的边框是其重要的样式,通过边框我们可以很方便地看出盒子的长宽以及大小.边框的特性可以通过边框线,边框的宽度及颜色来呈现. 1,边框线 边框线指的是边框线条的样式,包括实线,虚线,点划 ...

  7. C++ Primer 学习笔记_84_模板与泛型编程 --模板特化

    模板与泛型编程 --模板特化 引言: 我们并不总是能够写出对全部可能被实例化的类型都最合适的模板.某些情况下,通用模板定义对于某个类型可能是全然错误的,通用模板定义或许不能编译或者做错误的事情;另外一 ...

  8. JS 事件冒泡整理 浏览器的事件流

    JavaScript与HTML的交互通过事件来实现.而浏览器的事件流是一个非常重要的概念.不去讨论那些古老的浏览器有事件捕获与事件冒泡的争议, 只需要知道在DOM2中规定的事件流包括了三个部分,事件捕 ...

  9. MyEclipse 安装activiti designer

    下载activiti designer 文件地址:http://activiti.org/designer/archived/ 注意:我的是myeclipse9.0,我下载的版本是:(当我下载高版本安 ...

  10. python 之 Paramiko学习

    paramiko模块,基于SSH用于连接远程服务器并执行相关操作. 一.安装 pip3 install paramiko 二.使用 SSHClient 用于连接远程服务器并执行基本命令 基于用户名密码 ...