首页> 中国专利> 一种基于软硬件结合的虚拟桌面授权许可方法

一种基于软硬件结合的虚拟桌面授权许可方法

摘要

本发明公开了一种基于软硬件结合的虚拟桌面授权许可方法,包括:将许可信息加密为授权码,运行UKey安全模块将授权码以及UKey序列号加密后写入UKey安全区,将客户名称和授权码发放给客户;获取客户名称和授权码,若客户名称和授权码解析的客户名称相同,运行UKey安全模块读取UKey安全区的信息并解密,若解密结果和授权码解析的许可信息以及UKey序列号相同,将授权码和许可信息保存;读取许可信息,若许可期限有效且虚拟桌面授权数小于最大虚拟桌面数量,允许虚拟桌面启动且更新虚拟桌面授权数,虚拟桌面关机时释放所占用的虚拟桌面授权。本发明不需要收集硬件特征码,并避免UKey丢失和盗窃后被非法硬件复制的风险。

著录项

  • 公开/公告号CN112486607A

    专利类型发明专利

  • 公开/公告日2021-03-12

    原文格式PDF

  • 申请/专利权人 湖南麒麟信安科技股份有限公司;

    申请/专利号CN202011314899.6

  • 申请日2020-11-20

  • 分类号G06F9/451(20180101);G06F21/31(20130101);G06F21/34(20130101);

  • 代理机构43008 湖南兆弘专利事务所(普通合伙);

  • 代理人刘畅舟

  • 地址 410000 湖南省长沙市高新区麒云路20号麒麟科技园4楼

  • 入库时间 2023-06-19 10:11:51

说明书

技术领域

本发明涉及虚拟桌面授权,尤其涉及一种基于软硬件结合的虚拟桌面授权许可方法。

背景技术

授权许可是软件发行比较通用的一种维权手段,也就是正版软件的一个身份证,本质是防止复制和盗版、按功能收费等。目前,商用软件和共享软件绝大部份都是采用授权许可的方式来保证软件本身不被盗用,以保证自身的利益。

和普通的软件不同,云桌面产品一般根据虚拟桌面数量进行报价,所以授权许可信息里必须要包含最大虚拟桌面数。

云桌面领域大部分厂商选择基于纯软件保护的授权许可方案,许可证就是一个固定长度的序列号串,在不结合其它辅助措施的情况下,存在被复用和盗版的风险。所以这种类型的授权许可往往需要先收集硬件特征码(一般称作机器码,主要包括主板、CPU、内存和网卡等信息),再根据硬件信息生成序列号,使其无法在其它硬件上复用。这会导致产品流程上的问题,许可证不能提前准备,需要等待开箱并部署完成,现场收集硬件特征码后才能生成许可序列号。

也有部分厂商选择基于硬件保护的授权许可方案,许可证信息预置在USB外设中(一般是UKey设备),一插上自动授权成功。UKey是一种广泛使用的安全机制,可用于软件保护、身份认证、电子交易、数据安全等,在金融企业、事业单位和军工领域均有诸多案例。UKey设备是一种USB接口的硬件设备,UKey内部采用智能卡芯片,内置C51虚拟机,能够加载和运行C51可执行程序,有一定的存储空间。UKey本身提供了一些安全认证机制:

1.开发商ID,长度为8个字节,使用种子的方式产生开发商ID,种子长度最大为250字节,开发商ID的生成是不可逆的,只有生成者,才知道什么样的种子能生成自己的开发商ID,提高了安全性。

2.开发商口令,长度为24个字节,只能写入和删除UKey内的文件(如创建文件和删除文件),而不能获取UKey内的任何数据,设置开发商口令的重试次数,当连续输入错误的次数达到了最大限制的次数,开发商口令被锁死,UKey将无法继续使用。

3.硬件序列号,UKey具有64位(8个字节)全球唯一硬件序列号,无法修改。

相对而言,UKey更加简单和安全。但是由于UKey是硬件实物,也存在丢失和盗窃的情况,特别是还存在被硬件复制的风险。

发明内容

本发明要解决的技术问题就在于:针对现有技术存在的技术问题,本发明提供一种基于软硬件结合的虚拟桌面授权许可方法,不需要收集硬件特征码,也能避免UKey丢失和被盗窃后的风险,还能防止UKey被非法硬件复制。

为解决上述技术问题,本发明提出的技术方案为:

一种基于软硬件结合的虚拟桌面授权许可方法,包括以下步骤:

S1)生成授权码:判断UKey设备是否为正确设备,是则将许可信息加密为授权码并读取UKey设备硬件序列号作为UKey序列号,加载并运行UKey设备内的UKey安全模块将授权码以及UKey序列号加密后写入UKey安全区,将许可信息中的客户名称和授权码发放给用户,然后进入下一步,否则结束并退出;

S2)激活授权码:获取用户输入的客户名称0和授权码1,解析授权码1得到许可信息1,若客户名称0和许可信息1中的客户名称1相同,判断UKey设备是否为正确设备,是则读取UKey设备硬件序列号作为UKey序列号1,加载并运行UKey设备内的UKey安全模块读取UKey安全区的信息并解密得到许可信息和UKey序列号,若许可信息和许可信息1相同且UKey序列号和UKey序列号1相同,将授权码1和对应的许可信息保存在虚拟桌面管理系统的数据库,然后进入下一步,否则结束并退出;

S3)虚拟桌面授权:获取虚拟桌面启动请求,读取虚拟桌面管理系统的数据库的许可信息,若许可信息中的许可期限有效且虚拟桌面授权数小于许可信息中的最大虚拟桌面数量,则允许虚拟桌面启动且更新虚拟桌面授权数,否则不允许虚拟桌面启动,虚拟桌面关机时释放所占用的虚拟桌面授权。

进一步的,步骤S1)之前还包括配置UKey安全模块的步骤,具体包括:将核心加解密算法和对应代码封装成C51程序后写入到UKey设备。

进一步的,步骤S1)中将许可信息加密为授权码具体包括:输入许可信息,所述许可信息包括客户名称、许可期限和最大虚拟桌面数量,对客户名称、许可期限和最大虚拟桌面数量进行BASE64转换,然后拼接成AES加密块,使用AES加密生成密文,再对密文进行BASE64转换,最后分组生成格式为AAAAA-BBBBB-CCCCC-DDDDD-EEEEE的授权码。

进一步的,步骤S1)中UKey设备内的UKey安全模块将授权码以及UKey序列号加密后写入UKey安全区具体包括:对授权码和UKey序列号进行混淆操作得到许可信息密文和UKey序列号密文,通过UKey安全模块使用AES算法将许可信息密文和UKey序列号密文加密得到密钥文件,将密钥文件写入UKey安全区。

进一步的,步骤S2)的具体步骤包括:

S21)获取用户输入的客户名称0和授权码1,解析授权码1得到许可信息1,所述许可信息1包括客户名称1、许可期限1和最大虚拟桌面数量1;

S22)判断客户名称0和客户名称1是否相同,是则进入下一步,否则结束并退出;

S23)判断UKey设备是否为正确设备,是则进入下一步,否则结束并退出;

S24)读取UKey设备硬件序列号作为UKey序列号1,加载UKey设备内的UKey安全模块,读取UKey安全区的信息并解密得到许可信息和UKey序列号,所述许可信息包括客户名称、许可期限和最大虚拟桌面数量;

S25)若客户名称1和客户名称相同,且许可期限1和许可期限相同,且最大虚拟桌面数量1和最大虚拟桌面数量相同,且UKey序列号1和UKey序列号相同,则进入下一步,否则结束并退出;

S26)保存授权码1,将许可信息1或许可信息保存在虚拟桌面管理系统的数据库和内存。

进一步的,步骤S3)的具体步骤包括:

S31)获取当前虚拟桌面启动请求,从虚拟桌面管理系统的数据库读取许可信息;

S32)判断许可信息中的许可期限是否有效,是则进入下一步,否则不允许虚拟桌面启动并退出;

S33)判断虚拟桌面授权数是否小于许可信息中的虚拟桌面数量,是则进入下一步,否则不允许虚拟桌面启动并退出;

S34)允许当前虚拟桌面启动且当前虚拟桌面占用一个虚拟桌面授权,更新虚拟桌面授权数;

S35)监听所有启动的虚拟桌面,监听到有虚拟桌面关机时释放关机的虚拟桌面所占用的虚拟桌面授权,更新虚拟桌面授权数。

进一步的,步骤S1)和步骤S2)中判断UKey设备是否为正确设备具体包括:打开UKey设备,读取UKey设备的开发商ID和开发商口令,验证UKey设备的开发商ID和开发商口令是否正确,是则UKey设备为正确设备,否则UKey设备为错误设备。

本发明还提供一种基于软硬件结合的虚拟桌面授权许可装置,包括:

授权码生产工具模块,用于判断UKey设备是否为正确设备,是则将许可信息加密为授权码并读取UKey设备硬件序列号作为UKey序列号,加载并运行UKey设备内的UKey安全模块将授权码以及UKey序列号加密后写入UKey安全区;

虚拟桌面管理系统模块,用于获取用户输入的客户名称0和授权码1,解析授权码1得到许可信息1,若客户名称0和许可信息1中的客户名称1相同,判断UKey设备是否为正确设备,是则读取UKey设备硬件序列号作为UKey序列号1,加载并运行UKey设备内的UKey安全模块读取UKey安全区的信息并解密得到许可信息和UKey序列号,若许可信息和许可信息1相同且UKey序列号和UKey序列号1相同,将授权码1和对应的许可信息保存在虚拟桌面管理系统的数据库;还用于获取虚拟桌面启动请求,读取虚拟桌面管理系统的数据库的许可信息,若许可信息中的许可期限有效且当前虚拟桌面授权数小于许可信息中的最大虚拟桌面数量,则允许虚拟桌面启动且将当前虚拟桌面授权数加一,否则不允许虚拟桌面启动,虚拟桌面关机时释放所占用的虚拟桌面授权;

UKey设备,用于提供UKey安全模块的运行环境,同时保存加密后的授权码以及UKey序列号。

本发明还提供一种基于软硬件结合的虚拟桌面授权许可装置,包括计算机设备,所述计算机设备被编程或配置以执行上述的基于软硬件结合的虚拟桌面授权许可方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有被编程或配置以执行上述的基于软硬件结合的虚拟桌面授权许可方法的计算机程序。

与现有技术相比,本发明的优点在于:

1.本发明能提前准备和制作授权码,将许可信息保存在虚拟桌面管理系统的数据库,在虚拟桌面授权许可时无需收集和绑定用户现场机器的硬件特征码,并且无需等待现场开箱部署,简化了部署流程。

2.本发明通过软硬件结合方式,同时认证机制采用了两次加密生成授权许可信息,六重检查激活授权码,大大提高了许可证的安全强度。

3.本发明的安全机制基于UKey安全模块,在保证可靠性和算法复杂度的前提下,UKey安全模块被破解的可能性很小,可以防止逆向破解、数据泄漏和硬件复制。

附图说明

图1为本发明实施例中UKey安全模块示意图。

图2为本发明实施例的步骤示意图。

图3为本发明实施例的生成授权码流程图。

图4为本发明实施例的激活授权码流程图。

图5为本发明实施例的虚拟桌面授权流程图。

具体实施方式

以下结合说明书附图和具体优选的实施例对本发明作进一步描述,但并不因此而限制本发明的保护范围。

如图1所示,本发明针对UKey设备进行二次开发,在UKey设备中配置UKey安全模块,使得授权码和UKey序列号通过UKey安全模块加密得到密钥文件,同时密钥文件通过UKey安全模块解密得到对应的许可信息和UKey序列号,UKey安全模块就是将核心加解密算法和代码封装成C51程序,经过编译后生成的二进制文件,并在UKey内部运行的一个安全组件。初始化每一个新的UKey设备时,会自动设置开发商ID和开发商口令,同时把该UKey安全模块也写入到UKey设备,以便于后续加载和运行,UKey安全模块将加密后得到的密钥文件写入UKey安全区,密钥文件中的UKey序列号可以防止硬件级别的物理复制。在保证可靠性和算法复杂度的前提下,UKey安全模块被破解的可能性等于零。

如图2所示,本实施例的基于软硬件结合的虚拟桌面授权许可方法,包括以下步骤:

S1)生成授权码:判断UKey设备是否为正确设备,是则将许可信息加密为授权码并读取UKey设备硬件序列号作为UKey序列号,加载并运行UKey设备内的UKey安全模块将授权码以及UKey序列号加密后写入UKey安全区,将许可信息中的客户名称和授权码发放给用户,然后进入下一步,否则结束并退出,如图3所示;

S2)激活授权码:获取用户输入的客户名称0和授权码1,用户可能因为操作失误等原因导致所输入的客户名称和授权码与所接收的原始客户名称和授权码不一致,因此本实施例中对用户所输入的客户名称和授权码以客户名称0和授权码1与原始的客户名称和授权码加以区分,解析授权码1得到许可信息1,若客户名称0和许可信息1中的客户名称1相同,判断UKey设备是否为正确设备,是则读取UKey序列号1,加载并运行UKey设备内的UKey安全模块读取UKey安全区的信息并解密得到许可信息和UKey序列号,即步骤S1)中的原始授权码解密得到的许可信息和原始UKey序列号,若许可信息和许可信息1相同且UKey序列号和UKey序列号1相同,满足上述条件时,说明客户所输入的内容与所获取的原始客户名称和授权码相同,授权码1即为步骤S1)中的授权码,将授权码1和对应的许可信息保存在虚拟桌面管理系统的数据库,然后进入下一步,否则结束并退出;

S3)虚拟桌面授权:获取虚拟桌面启动请求,读取虚拟桌面管理系统的数据库的许可信息,若许可信息中的许可期限有效且虚拟桌面授权数小于许可信息中的最大虚拟桌面数量,则允许虚拟桌面启动且更新虚拟桌面授权数,否则不允许虚拟桌面启动,虚拟桌面关机时释放所占用的虚拟桌面授权。

上述步骤使得本实施例的方法可以提前准备和制作带有许可信息的UKey设备,授权码激活时只需要验证用户输入的许可信息以及用户携带的UKey设备中的许可信息,并将授权码和对应的许可信息保存在虚拟桌面管理系统的数据库,而不需要收集和绑定用户现场机器的硬件特征码,并且无需等待现场开箱部署,简化了部署流程。同时在生成授权码过程中,本实施例采用两次加密,在激活授权码过程中,本实施例采用用户输入的许可信息和UKey设备中的许可信息分别验证,大大提高了安全强度。最后本实施例中由UKey设备保存经UKey安全模块处理后的密钥文件,可以防止逆向破解、数据泄露和硬件复制。

本实施例的步骤S1)之前还包括配置UKey安全模块的步骤,具体包括:将核心加解密算法和对应代码封装成C51程序后写入到UKey设备,后续步骤中按照实际需求加载并运行该C51程序就可以实现UKey安全模块将授权码以及UKey序列号加密后写入UKey安全区或者UKey安全模块读取UKey安全区的信息并解密得到许可信息和UKey序列号。

本实施例的步骤S1)和步骤S2)中判断UKey设备是否为正确设备具体包括:读取UKey设备的开发商ID和开发商口令,验证UKey设备的开发商ID和开发商口令是否正确,是则UKey设备为正确设备,否则UKey设备为错误设备。

本实施例的步骤S1)中将许可信息加密为授权码具体包括:输入许可信息,本实施例的许可信息包括客户名称、许可期限和最大虚拟桌面数量,对客户名称、许可期限和最大虚拟桌面数量进行BASE64转换,然后拼接成AES加密块,使用AES加密生成密文,再对密文进行BASE64转换,最后分组生成格式为AAAAA-BBBBB-CCCCC-DDDDD-EEEEE的授权码。

本实施例的步骤S1)中通过UKey设备内的UKey安全模块将授权码以及UKey序列号加密后写入UKey安全区具体包括:对授权码和UKey序列号进行混淆操作得到许可信息密文和UKey序列号密文,通过UKey安全模块使用AES算法将许可信息密文和UKey序列号密文加密得到密钥文件,将密钥文件写入UKey安全区,在将许可信息加密为授权码的基础上对授权码和UKey序列号二次加密得到密钥,提高了安全强度,其中对于对授权码和UKey序列号进行混淆操作增加安全性。

如图4所示,本实施例的步骤S2)的具体步骤包括:

S21)获取用户输入的客户名称0和授权码1,解析授权码1得到许可信息1,所述许可信息1包括客户名称1、许可期限1和最大虚拟桌面数量1;

S22)判断客户名称0和客户名称1是否相同,是则进入下一步,否则结束并退出;

S23)判断UKey设备是否为正确设备,是则进入下一步,否则结束并退出;

S24)读取UKey设备硬件序列号作为UKey序列号1,加载UKey设备内的UKey安全模块,读取UKey安全区的信息并解密得到许可信息和UKey序列号,所述许可信息包括客户名称、许可期限和最大虚拟桌面数量;

S25)若客户名称1和客户名称相同,且许可期限1和许可期限相同,且最大虚拟桌面数量1和最大虚拟桌面数量相同,且UKey序列号1和UKey序列号相同,则进入下一步,否则结束并退出;

S26)保存授权码1,将许可信息1或许可信息保存在虚拟桌面管理系统的数据库和内存。

步骤S2)的具体步骤中,不仅对于用户自行输入的客户名称和授权码解析得到的许可信息中的客户名称进行检验,还将UKey设备读取得到的UKey序列号加上授权码解析得到的许可信息与UKey设备的UKey安全区所保存的密钥的解密结果进行检验,在每一项检验通过的情况下才能激活授权码,确保了激活授权码过程的安全性,此外激活成功后,授权码和对应的许可信息保存在虚拟桌面管理系统的数据库,而不需要收集和绑定运行虚拟桌面的用户现场机器的硬件特征码,并且无需等待现场开箱部署,简化了部署流程。

如图5所示,本实施例的步骤S3)的具体步骤包括:

S31)获取当前虚拟桌面启动请求,从虚拟桌面管理系统的数据库读取许可信息;

S32)判断许可信息中的许可期限是否有效,是则进入下一步,否则不允许虚拟桌面启动并退出;

S33)判断虚拟桌面授权数是否小于许可信息中的虚拟桌面数量,是则进入下一步,否则不允许虚拟桌面启动并退出;

S34)允许当前虚拟桌面启动且当前虚拟桌面占用一个虚拟桌面授权,更新虚拟桌面授权数;

S35)监听所有启动的虚拟桌面,监听到有虚拟桌面关机时释放关机的虚拟桌面所占用的虚拟桌面授权,更新虚拟桌面授权数。

步骤S3)的具体步骤中,在不绑定运行虚拟桌面的用户现场机器的硬件特征码的情况下,为避免运行的虚拟桌面的数量超出最大虚拟桌面数,本实施例采用运行的虚拟桌面占用虚拟桌面授权的方式,当前虚拟桌面授权数大于最大虚拟桌面数时则不允许后续虚拟桌面启动,当虚拟桌面关闭时则释放所占用的虚拟桌面授权,为后续启动的虚拟桌面提供虚拟桌面授权的指标,从而实现了对于虚拟桌面启动数量的动态管理。

本实施例还提供一种基于软硬件结合的虚拟桌面授权许可装置,包括:

授权码生产工具模块,用于判断UKey设备是否为正确设备,是则将许可信息加密为授权码并读取UKey序列号,加载并运行UKey设备内的UKey安全模块将授权码以及UKey序列号加密后写入UKey安全区;

虚拟桌面管理系统模块,用于获取用户输入的客户名称0和授权码1,解析授权码1得到许可信息1,若客户名称0和许可信息1中的客户名称1相同,判断UKey设备是否为正确设备,是则读取UKey设备硬件序列号作为UKey序列号1,加载并运行UKey设备内的UKey安全模块读取UKey安全区的信息并解密得到许可信息和UKey序列号,若许可信息和许可信息1相同且UKey序列号和UKey序列号1相同,将授权码1和对应的许可信息保存在虚拟桌面管理系统的数据库;还用于获取虚拟桌面启动请求,读取虚拟桌面管理系统的数据库的许可信息,若许可信息中的许可期限有效且当前虚拟桌面授权数小于许可信息中的最大虚拟桌面数量,则允许虚拟桌面启动且将当前虚拟桌面授权数加一,否则不允许虚拟桌面启动,虚拟桌面关机时释放所占用的虚拟桌面授权;

UKey设备,用于提供UKey安全模块的运行环境,同时保存加密后的授权码以及UKey序列号。

本实施例中,授权码生产工具模块为运行授权码生产工具程序的专门用于制作和发放授权码的机器,如图3所示,根据步骤S1)生成授权码时,需要把UKey设备插入到所述机器上并运行授权码生产工具程序,程序会读取UKey设备的开发商ID和开发商口令,验证UKey设备的开发商ID和开发商口令是否正确,否则直接结束,是则在输入客户名称、许可期限和最大虚拟桌面数量等许可信息后,对客户名称、许可期限和最大虚拟桌面数量进行BASE64转换,然后拼接成AES加密块,使用AES加密生成密文,再对密文进行BASE64转换,最后分组生成格式为AAAAA-BBBBB-CCCCC-DDDDD-EEEEE的授权码,同时加载和运行UKey安全模块,将授权码和读取到的UKey设备硬件序列号作为UKey序列号进行混淆操作得到许可信息密文和UKey序列号密文,然后使用AES算法将许可信息密文和UKey序列号密文加密得到密钥并写入UKey安全区,制作完成后拔下UKey设备,同时记录好客户名称和授权码,将UKey设备、客户名称和授权码发放给用户。

本实施例中,虚拟桌面管理系统模块为运行虚拟桌面管理系统的服务器,如图4所示,根据步骤S2)激活授权码时,需要把UKey设备插入到所述服务器上,进入授权码激活页面,用户输入相应的客户名称0和授权码1,管理系统后台会对授权码1解密以获得包含客户名称1、许可期限1和最大虚拟桌面数量1的许可信息1,并检查客户名称0和客户名称1是否一致,不相同则直接激活失败,相同则读取UKey设备的开发商ID和开发商口令,验证UKey设备的开发商ID和开发商口令是否正确,否则激活失败,是则读取UKey设备硬件序列号作为UKey序列号1,加载并运行UKey安全模块,读取存储在UKey安全区的信息,并解密出之前授权码生产工具模块加载和运行UKey安全模块所加密的包含客户名称、许可期限和最大虚拟桌面数量的许可信息以及UKey序列号,依次将客户名称、许可期限、最大虚拟桌面数量和UKey序列号与客户名称1、许可期限1、最大虚拟桌面数量1和UKey序列号1进行比较,若有一项不相同则激活失败,全部信息都一致时才激活成功,保存授权码和对应的许可信息到虚拟桌面管理系统的数据库和内存。

如图5所示,根据步骤S3)虚拟桌面授权时,虚拟桌面管理系统启动时从数据库读取许可信息并同步到运行时内存,然后获取虚拟桌面准备启动请求,每当虚拟桌面准备启动时,检查许可期限是否有效,已到期则不允许启动,仍在有效期内则进一步检查当前虚拟桌面授权总数是否大于最大虚拟桌面数量,达到或超出限制则不允许启动,小于时允许启动虚拟桌面,并占用一个虚拟桌面授权数,每个虚拟桌面在运行期间都会一直占用授权,直到虚拟桌面关机,才会释放所占用的授权。

本发明还提供一种基于软硬件结合的虚拟桌面授权许可装置,包括计算机设备,所述计算机设备被编程或配置以执行上述的基于软硬件结合的虚拟桌面授权许可方法。

本发明还提供一种计算机可读存储介质,所述计算机可读存储介质存储有被编程或配置以执行上述的基于软硬件结合的虚拟桌面授权许可方法的计算机程序。

上述只是本发明的较佳实施例,并非对本发明作任何形式上的限制。虽然本发明已以较佳实施例揭露如上,然而并非用以限定本发明。因此,凡是未脱离本发明技术方案的内容,依据本发明技术实质对以上实施例所做的任何简单修改、等同变化及修饰,均应落在本发明技术方案保护的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号