CN112699342B - 授权控制方法、授权方法、装置及计算设备 - Google Patents

授权控制方法、授权方法、装置及计算设备 Download PDF

Info

Publication number
CN112699342B
CN112699342B CN202110310664.8A CN202110310664A CN112699342B CN 112699342 B CN112699342 B CN 112699342B CN 202110310664 A CN202110310664 A CN 202110310664A CN 112699342 B CN112699342 B CN 112699342B
Authority
CN
China
Prior art keywords
authorization
information
application
client
public key
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
CN202110310664.8A
Other languages
English (en)
Other versions
CN112699342A (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.)
Uniontech Software Technology Co Ltd
Original Assignee
Uniontech Software Technology Co Ltd
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 Uniontech Software Technology Co Ltd filed Critical Uniontech Software Technology Co Ltd
Priority to CN202110310664.8A priority Critical patent/CN112699342B/zh
Priority to CN202110620146.6A priority patent/CN113326482A/zh
Publication of CN112699342A publication Critical patent/CN112699342A/zh
Application granted granted Critical
Publication of CN112699342B publication Critical patent/CN112699342B/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/105Arrangements for software license management or administration, e.g. for managing licenses at corporate level
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

本发明公开了一种授权控制方法,包括:接收客户端基于申请文件发送的授权请求,从申请文件中获取申请密文、第一签名信息和第一公钥;基于第一公钥对第一签名信息进行验证;基于第二私钥对申请密文进行解密,以获取客户端的设备标识,并基于设备标识生成相应的设备信息;将授权配置信息与设备信息建立关联,以生成授权文件;将授权文件发送至客户端,以便客户端基于授权文件对应用程序进行激活;定时获取客户端的实际运行时长,判断实际运行时长是否超过应用程序的预定运行时长,以确定应用程序授权是否到期。本发明一并公开了相应的授权方法、授权装置和计算设备。根据本发明的授权方案,可用于内网环境,能防止授权信息的泄露和复用。

Description

授权控制方法、授权方法、装置及计算设备
技术领域
本发明涉及应用程序授权技术领域,尤其涉及一种授权控制方法、授权方法、授权装置及计算设备。
背景技术
随着Linux的发展,Linux桌面系统已广泛应用于各行各业。目前,国产操作系统使用的都是Linux内核,在国产操作系统上安装软件通常有以下几种方式:基于源代码编译安装、基于离线包(例如deb、rpm等)安装、基于软件仓库包管理器(例如apt、yum、pacman、zypper等)安装、基于应用商店安装。其中,前两种安装方式需要具备一定的技术基础,能够解决软件包的依赖问题。基于应用商店安装一般是通过命令行执行,对于普通用户来说是最方便的安装方式。
目前,国产操作系统所应用的领域包括一些特殊领域,例如公安领域、金融领域等,这些特殊领域办公的网络环境通常是采用与互联网隔离的专用网络,处于无法访问互联网的离线环境下。而国产操作系统提供的软件仓库及应用商店,通常需要基于互联网才能够访问。因此,部署于互联网上的软件仓库及应用商店无法为该类用户提供服务。
现有技术中,软件激活与授权方案都是基于互联网环境的授权服务端来实现,软件在激活以及运行的过程中将本地硬件信息通过互联网上传至授权服务端,授权服务端通过匹配记录来判断软件的运行状况并做出授权决策。这种授权方案,需要基于互联网环境才能实现,而一些企业内网环境无法访问互联网,处于离线环境。
为此,需要一种可用于离线环境的授权控制方法,以解决上述技术方案中存在的问题。
发明内容
为此,本发明提供一种授权控制方法、授权方法、授权装置及计算设备,以解决或至少缓解上面存在的问题。
根据本发明的一个方面,提供一种授权控制方法,在服务器中执行,所述方法包括:接收客户端基于申请文件发送的对应用程序的授权请求,从所述申请文件中获取申请密文、第一签名信息和第一公钥;基于所述第一公钥对所述第一签名信息进行验证;如果所述第一签名信息验证通过,则基于第二私钥对所述申请密文进行解密,以获取客户端的设备标识,并基于所述设备标识生成相应的设备信息;将授权配置信息与所述设备信息建立关联,以生成授权文件;将授权文件发送至客户端,以便客户端基于授权文件对应用程序进行激活;以及定时获取与授权配置信息相关联的一个或多个客户端的实际运行时长,判断实际运行时长是否超过应用程序的预定运行时长,以确定应用程序授权是否到期。
可选地,在根据本发明的授权控制方法中,判断实际运行时长是否超过应用程序的预定运行时长的步骤包括:根据所述授权文件中的授权配置信息确定应用程序的预定运行时长;如果确定实际运行时长超过预定运行时长,则确定应用程序授权到期。
可选地,在根据本发明的授权控制方法中,定时获取与授权配置信息相关联的一个或多个客户端的实际运行时长的步骤包括:当授权配置信息关联多个客户端时,记录多个客户端的运行时长,生成时长记录;定时查询时长记录,以获取多个客户端的实际运行时长。
可选地,在根据本发明的授权控制方法中,定时获取与授权配置信息相关联的一个或多个客户端的实际运行时长的步骤包括:当授权配置信息关联一个客户端时,对该客户端的运行时间进行计时统计;定时获取计时统计值,以获取该客户端的实际运行时长。
可选地,在根据本发明的授权控制方法中,所述授权配置信息包括应用程序的预定运行时长、授权截止时间,确定应用程序授权是否到期的步骤还包括:判断当前使用时间是否超过应用程序的授权截止时间,如果超过授权截止时间,则确定应用程序授权到期。
可选地,在根据本发明的授权控制方法中,生成授权文件的步骤包括:将所述授权配置信息与设备信息建立关联,生成授权信息;基于第一公钥对所述授权信息进行加密,生成授权密文;基于第二私钥对所述授权密文进行签名,生成第二签名信息;基于所述授权密文、第二签名信息和第二公钥生成授权文件。
可选地,在根据本发明的授权控制方法中,从所述申请文件中获取申请密文、第一签名信息和第一公钥的步骤包括:基于Decode方法对所述申请文件进行解码,得到字符串信息;从所述字符串信息中获取申请密文、第一签名信息和第一公钥。
根据本发明的一个方面,提供一种授权方法,在客户端执行,包括步骤:获取客户端的设备信息,基于设备信息生成相应的设备标识;基于第二公钥对设备标识进行加密,生成申请密文,所述第二公钥与第二私钥相匹配;生成相匹配的第一私钥和第一公钥,基于第一私钥对所述申请密文进行签名,生成第一签名信息;基于所述申请密文、第一签名信息和第一公钥生成申请文件;基于申请文件向服务器发送对应用程序的授权请求,以获取服务器生成的授权文件;基于授权文件获取授权信息,以便基于授权信息对应用程序进行激活。
可选地,在根据本发明的授权方法中,基于授权文件获取授权信息的步骤包括:从所述授权文件中获取授权密文、第二签名信息和第二公钥;基于第二公钥对所述第二签名信息进行验证;如果第二签名信息验证通过,则基于第一私钥对所述授权密文进行解密,得到授权信息。
根据本发明的一个方面,提供一种授权装置,驻留在客户端,包括:获取模块,适于获取客户端的设备信息,基于设备信息生成相应的设备标识;加密模块,适于基于与第二私钥相匹配的第二公钥对设备标识进行加密,生成申请密文;生成相匹配的第一私钥和第一公钥,基于第一私钥对所述申请密文进行签名,生成第一签名信息;请求模块,适于基于所述申请密文、第一签名信息和第一公钥生成申请文件,基于申请文件向服务器发送对应用程序的授权请求,以获取授权文件;以及解密模块,适于基于授权文件获取授权信息,以便基于授权信息对应用程序进行激活。
根据本发明的一个方面,提供一种计算设备,包括:至少一个处理器;存储器,存储有程序指令,其中,程序指令被配置为适于由上述至少一个处理器执行,所述程序指令包括用于执行如上所述的方法的指令。
根据本发明的一个方面,提供一种存储有程序指令的可读存储介质,当该程序指令被计算设备读取并执行时,使得该计算设备执行如上所述的方法。
根据本发明的技术方案,提供了可应用于内网环境的授权控制方法,其中,客户端在基于设备信息生成申请文件的过程中进行了数字签名和加密,服务器只有在对申请文件进行验签和解密成功后,且设备信息匹配成功后,才会生成相应的授权文件返回给客户端。而且,服务器在生成授权文件的过程中也进行了数字签名和加密,客户端获取到授权文件后,也需要对授权文件进行验签和解密成功后才能获取到服务器提供的授权信息,进而基于授权信息成功获得应用程序的授权。这样,能防止授权信息的泄露和复用,避免对授权信息的盗用以及对授权配置信息的篡改,从而有效维护应用程序版权。
进一步地,本发明通过定时对存储的字段做增长操作来记录服务的运行时长,能防止用户企图通过修改系统时间来延长授权过期时间,从而确保授权服务安全可靠。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了实现上述以及相关目的,本文结合下面的描述和附图来描述某些说明性方面,这些方面指示了可以实践本文所公开的原理的各种方式,并且所有方面及其等效方面旨在落入所要求保护的主题的范围内。通过结合附图阅读下面的详细描述,本公开的上述以及其它目的、特征和优势将变得更加明显。遍及本公开,相同的附图标记通常指代相同的部件或元素。
图1示出了根据本发明一个实施例的应用程序授权系统100的示意图;
图2示出了根据本发明一个实施例的计算设备200的示意图;
图3示出了根据本发明一个实施例的授权控制方法300的流程图;
图4示出了根据本发明一个实施例的授权方法400的流程图;以及
图5示出了根据本发明一个实施例的授权装置160的示意图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
图1示出了根据本发明一个实施例的应用程序授权系统100的示意图。
如图1所示,应用程序授权系统100包括一个或多个客户端110、以及应用程序对应的服务器120。应当指出,本发明的应用程序授权系统100处于未接入互联网的离线环境,客户端110与服务器120并没有接入互联网,系统100中的客户端110与服务器120之间基于内网通信连接。
客户端110即用户所使用的适于安装应用程序、并需要获得应用程序的使用权限的终端设备,其具体可以是桌面电脑、笔记本电脑等个人计算机,也可以是手机、平板电脑、多媒体设备、智能可穿戴设备等,但不限于此。
服务器120用于控制客户端110中安装的应用程序的授权。其可以实现为为桌面电脑、笔记本电脑、处理器芯片、手机、平板电脑等计算设备,也可以实现为由多个计算设备组成的系统。
在一个实施例中,客户端110中驻留有待授权的应用程序,并驻留有与该应用程序相对应的授权装置160,利用授权装置160可以实现对应用程序进行激活,以获得对应用程序的授权。具体地,通过授权装置160可以生成申请文件,并基于申请文件向服务器120发送对应用程序的授权请求。服务器120在对客户端110的申请文件中的信息验证通过之后,可以生成与客户端110的设备信息相关联的授权文件,并返回至客户端110。客户端110中的授权装置160可以基于授权文件对本地的应用程序激活,获得应用程序的授权。
根据本发明的实施例,客户端110在生成申请文件的过程中会对申请信息进行签名和加密计算。基于此,在服务器120获取到客户端110的申请文件后,需要对申请文件进行验签和解密成功后才会为客户端生成授权文件。并且,服务器120在生成授权文件的过程中会对授权信息进行签名和加密计算,在客户端110获取到服务器120的授权文件后,同样需要对授权文件进行验签和解密成功后才能获取到服务器120提供的授权信息,进而基于授权信息获得应用程序的授权。
在一个实施例中,客户端110、服务器120中分别可以生成并提供各自的密钥对。其中,客户端110本地适于生成并提供第一密钥对,包括相互匹配的第一私钥和第一公钥。服务器120本地适于生成并提供第二密钥对,包括相互匹配的第二私钥和第二公钥。客户端110、服务器120分别基于相应的密钥来对申请信息、授权信息进行加密和签名。
在一个实施例中,本发明中的服务器120适于执行授权控制方法300,服务器120通过执行授权控制方法300来处理客户端110对应用程序的授权请求,以便控制客户端110获得应用程序的授权。本发明的授权控制方法300将在下文中详述。
在一个实施例中,本发明中的客户端110适于执行授权方法400,客户端110通过执行授权方法400来发送授权请求,以请求获取服务器120提供的授权文件,并基于授权文件获得应用程序的授权。本发明的授权方法400也将在下文中详述。
在一个实施例中,本发明中的服务器120、客户端110分别可以实现为一种计算设备,使得本发明的授权控制方法300、授权方法400可以在计算设备中执行。
图2示出了根据本发明一个实施例的计算设备200的结构图。如图2所示,在基本的配置202中,计算设备200典型地包括系统存储器206和一个或者多个处理器204。存储器总线208可以用于在处理器204和系统存储器206之间的通信。
取决于期望的配置,处理器204可以是任何类型的处理,包括但不限于:微处理器(UP)、微控制器(UC)、数字信息处理器(DSP)或者它们的任何组合。处理器204可以包括诸如一级高速缓存210和二级高速缓存212之类的一个或者多个级别的高速缓存、处理器核心214和寄存器216。示例的处理器核心214可以包括运算逻辑单元(ALU)、浮点数单元(FPU)、数字信号处理核心(DSP核心)或者它们的任何组合。示例的存储器控制器218可以与处理器204一起使用,或者在一些实现中,存储器控制器218可以是处理器204的一个内部部分。
取决于期望的配置,系统存储器206可以是任意类型的存储器,包括但不限于:易失性存储器(诸如RAM)、非易失性存储器(诸如ROM、闪存等)或者它们的任何组合。系统存储器106可以包括操作系统220、一个或者多个应用222以及程序数据224。应用222实际上是多条程序指令,其用于指示处理器204执行相应的操作。在一些实施方式中,应用222可以布置为在操作系统上使得处理器204利用程序数据224进行操作。
计算设备200还包括储存设备232,储存设备232包括可移除储存器236和不可移除储存器238。
计算设备200还可以包括储存接口总线234。储存接口总线234实现了从储存设备232(例如,可移除储存器236和不可移除储存器238)经由总线/接口控制器230到基本配置202的通信。操作系统220、应用222以及数据224的至少一部分可以存储在可移除储存器236和/或不可移除储存器238上,并且在计算设备200上电或者要执行应用222时,经由储存接口总线234而加载到系统存储器206中,并由一个或者多个处理器204来执行。
计算设备200还可以包括有助于从各种接口设备(例如,输出设备242、外设接口244和通信设备246)到基本配置202经由总线/接口控制器230的通信的接口总线240。示例的输出设备242包括图形处理单元248和音频处理单元250。它们可以被配置为有助于经由一个或者多个A/V端口252与诸如显示器或者扬声器之类的各种外部设备进行通信。示例外设接口244可以包括串行接口控制器254和并行接口控制器256,它们可以被配置为有助于经由一个或者多个I/O端口258和诸如输入设备(例如,键盘、鼠标、笔、语音输入设备、触摸输入设备)或者其他外设(例如打印机、扫描仪等)之类的外部设备进行通信。示例的通信设备246可以包括网络控制器260,其可以被布置为便于经由一个或者多个通信端口264与一个或者多个其他计算设备262通过网络通信链路的通信。
网络通信链路可以是通信介质的一个示例。通信介质通常可以体现为在诸如载波或者其他传输机制之类的调制数据信号中的计算机可读指令、数据结构、程序模块,并且可以包括任何信息递送介质。“调制数据信号”可以这样的信号,它的数据集中的一个或者多个或者它的改变可以在信号中以编码信息的方式进行。作为非限制性的示例,通信介质可以包括诸如有线网络或者专线网络之类的有线介质,以及诸如声音、射频(RF)、微波、红外(IR)或者其它无线介质在内的各种无线介质。这里使用的术语计算机可读介质可以包括存储介质和通信介质二者。
在根据本发明的计算设备200中,应用222包括用于执行授权控制方法300或者授权方法400的多条程序指令,这些程序指令分别可以指示处理器204执行本发明的授权控制方法300、授权方法400。需指出,计算设备200在作为服务器时可以执行本发明的执行授权控制方法300,计算设备200在作为客户端时可以执行本发明的执行授权方法400。
图3示出了根据本发明一个实施例的授权控制方法300的流程图。方法300适于在服务器120(例如前述计算设备200)中执行。
如图3所示,方法300始于步骤S310。
在步骤S310中,接收客户端110的授权装置基于申请文件发送的对应用程序的授权请求,从申请文件中获取申请密文、第一签名信息和第一公钥。
需要说明的是,客户端110的授权装置在发送授权请求之前,先基于设备信息生成申请文件。具体地,授权装置获取客户端110的设备信息,通过对设备信息进行序列化生成相应的设备标识。这里,客户端110的设备信息例如包括MAC地址,上层网关的MAC地址以及dmi模块中的硬件信息等,但不限于此。随后,基于第二公钥(服务器提供的证书,内置在应用程序中)对设备标识进行加密计算,加密后生成申请密文。随后,生成相匹配的第一私钥和第一公钥,基于第一私钥和签名算法SHA计算申请密文,即是对申请密文进行签名,以生成第一签名信息。最后,基于申请密文、第一签名信息和第一公钥生成申请文件。在一种实施方式中,客户端110的授权装置在生成申请文件时,首先对申请密文、第一签名信息和第一公钥进行序列化,得到字符串信息,进而,调用Encode方法将字符串信息编码为二进制数据,以生成二进制的申请文件。这样,客户端110可以将二进制的申请文件发送至服务器120,以请求获取对应用程序的授权。
根据一种实施方式,基于客户端110发送的是二进制的申请文件,在步骤S310中服务器120在获取申请文件中的数据时,需要调用Decode方法,基于Decode方法对申请文件进行解码,得到字符串信息,再从字符串信息中获取申请密文、第一签名信息和第一公钥。
随后,在步骤S320中,基于客户端提供的第一公钥对第一签名信息进行验证。如果对第一签名信息验证失败,说明客户端提供的申请信息被篡改,不再向客户端提供授权文件,从而能避免授权信息的泄露和复用。如果对第一签名信息验证通过,则执行步骤S330。
在步骤S330中,基于服务器本地的第二私钥对申请密文进行解密,以获取相应的明文内容,该明文内容即是客户端对其设备信息进行序列化之后的设备标识,通过对设备标识进行解码生成序列化之前的设备信息。
在生成设备信息之后,服务器120判断基于客户端的申请文件获取到的的设备信息与服务器本地存储的信息是否匹配,如果不匹配,则说明该客户端企图盗用授权信息,不会向客户端返回授权文件。这样,避免了对授权信息的盗用行为。
如果设备信息匹配成功,则执行步骤S340。
在步骤S340中,将授权配置信息与客户端110的设备信息建立关联,基于关联后的授权配置信息和设备信息生成授权文件。这里,授权配置信息即是与应用程序授权相关的配置信息。通过将授权配置信息与客户端110的设备信息建立关联关系,使授权配置信息与客户端绑定,以便客户端110能基于相匹配的授权配置信息对其本地的应用程序激活,获得应用程序的授权。
根据一个实施例,在基于授权配置信息和设备信息生成授权文件时,首先将授权配置信息与设备信息建立关联,得到授权信息,再对授权信息进行加密和签名。具体地,基于客户端提供的第一公钥对授权信息进行加密,生成授权密文。基于服务器本地的第二私钥对授权密文进行签名,生成第二签名信息。基于授权密文、第二签名信息和第二公钥生成授权文件。这里,也是通过对授权密文、第二签名信息和第二公钥进行序列化、再进行编码后生成二进制的授权文件。
随后,在步骤S350中,将授权文件发送至客户端110,以便客户端110基于授权文件对应用程序进行激活。
这里,由于授权文件是服务器120通过对授权信息进行加密和签名后生成的。因此客户端110在获取到授权文件之后,需要对授权文件进行验签、解密之后,才能获取到授权信息。具体地,客户端110中的授权装置在对二进制的授权文件进行解码之后,获取授权文件中的授权密文、第二签名信息和第二公钥,基于该第二公钥对第二签名信息进行验证,如果第二签名信息验证通过,再基于客户端110本地的第一私钥对授权密文进行解密得到授权信息(明文),基于授权信息可以对应用程序进行激活,从而获得应用程序的授权。
根据本发明的实施例,用于应用程序授权的每一份授权配置信息分别可以与一个或多个客户端110的设备信息建立关联,从而,基于一份授权配置信息可以生成与多个客户端110分别相对应的授权文件。这样,一份授权配置信息可以用于多个客户端110对应用程序的授权。
需要说明的是,授权配置信息包括但不限于应用程序的预定运行时长、授权截止时间、设备数量最大值。在根据本发明的实施例中,与授权配置信息相关联的一个或多个客户端110的运行总时长不能超过预定运行时长。
根据一个实施例,在客户端110运行授权后的应用程序期间,服务器120还执行步骤S360。
在步骤S360中,定时获取与授权配置信息相关联的一个或多个客户端(即是基于同一份授权配置信息获得应用程序授权的客户端)的实际运行时长,判断获取到的实际运行时长是否超过应用程序的预定运行时长,以确定应用程序的授权服务是否到期。具体地,根据获得的授权文件中的授权配置信息来确定应用程序的预定运行时长,判断授权配置信息对应的一个或多个客户端的实际运行时长是否超过预定运行时长,当运行总时长超过预定运行时长时,确定应用程序的授权服务到期,即是与该授权配置信息相关联的客户端110中应用程序的授权到期。这里,实际运行时长是指一个或多个客户端当前的运行总时长。在确定应用程序授权到期后,服务器可以生成应用程序到期的消息发送至客户端110,以提示用户授权服务到期。
根据一个实施例,定时获取与授权配置信息相关联的一个或多个客户端110对应用程序的实际运行时长,具体可以通过定时对存储的字段做增长操作来记录服务的运行时长,如果实际运行时长超过配置的预定运行时长,则确定应用程序的授权服务到期,停止服务。这样,不依赖系统时间,从而能防止用户企图通过修改系统时间来延长授权过期时间的行为。
在一种实施方式中,当授权配置信息关联多个客户端时,利用支持cron的数据存储装置来记录多个客户端的运行时长,并生成时长记录。这样,服务器120通过定时查询时长记录,便能获取多个客户端对应用程序的实际运行时长。通过比较多个客户端的实际运行时长是否超过授权配置信息中的预定运行时长,来确定应用程序的授权服务是否到期。
在又一种实施方式中,当授权配置信息关联一个客户端时,对这一个客户端的运行时间进行计时统计。例如,通过在客户端110中布置计时器,来对应用程序的运行做计时统计,在计时器中断后,对计时统计值做增长处理。服务器120通过异步检测模块来定时获取客户端110中应用程序运行的计时统计值,即是定时查询应用程序的运行时间,从而实现获取该客户端的实际运行时长。通过比较该客户端的实际运行时长是否超过授权配置信息中的预定运行时长,来确定应用程序的授权服务是否到期。
根据一个实施例,本发明可以并行执行以下方法来确定应用程序授权是否到期:
根据授权配置信息确定应用程序的授权截止时间,判断当前使用时间是否超过应用程序的授权截止时间,如果超过授权截止时间,则确定应用程序的授权到期。随后可以生成应用程序到期的消息来提示用户。此外,还可以根据授权配置信息确定设备数量最大值,判断当前授权客户端的数量是否超过设备数量最大值,如果超过设备数量最大值,则停止对应用程序的授权服务。
图4示出了根据本发明一个实施例的授权方法400的流程图。方法400适于在客户端110(例如前述计算设备200)中执行。
具体地,客户端110中驻留有待授权的应用程序,并驻留有与待授权的应用程序相对应的授权装置160,授权装置160适于执行本发明的授权方法400,通过执行本发明的授权方法400能实现对客户端110中的应用程序激活,获得应用程序的授权。
如图4所示,方法400始于步骤S410。
在步骤S410中,获取客户端110的设备信息,通过对设备信息进行序列化生成相应的设备标识。这里,客户端110的设备信息例如包括MAC地址,上层网关的MAC地址以及dmi模块中的硬件信息等,但不限于此。
随后,在步骤S420中,基于第二公钥(服务器提供的证书,内置在应用程序中)对设备标识进行加密计算,加密后生成申请密文。应当指出,第二公钥、第二私钥是服务器120提供的一对密钥,第二公钥与第二私钥相匹配。
随后,在步骤S430中,生成相匹配的第一私钥和第一公钥,基于第一私钥和签名算法SHA计算申请密文,即是基于第一私钥和签名算法SHA对申请密文进行签名,以生成第一签名信息。
随后,在步骤S440中,基于申请密文、第一签名信息和第一公钥生成申请文件。在一种实施方式中,客户端在生成申请文件时,首先对申请密文、第一签名信息和第一公钥进行序列化,得到字符串信息。进而,调用Encode方法将字符串信息编码为二进制数据,以生成二进制的申请文件。在生成申请文件之后,可以执行步骤S450来请求获取对应用程序的授权。
在步骤S450中,基于申请文件向服务器120发送对应用程序的授权请求,以请求获取服务器120基于授权配置信息和设备信息生成的授权文件。这里,服务器120基于授权配置信息和设备信息生成授权文件的具体方法如前文方法300中所述,这里不再赘述。
最后,在步骤S460中,基于授权文件获取授权信息,以便基于授权信息对应用程序进行激活,获得应用程序的授权。
如前文中所述,授权文件是服务器120通过对授权信息进行加密和签名后生成的。基于此,客户端110在获取到授权文件之后,需要对授权文件进行验签、解密之后,才能获取到授权信息。具体地,客户端110中的授权装置在对二进制的授权文件进行解码之后,获取授权文件中的授权密文、第二签名信息和第二公钥,基于该第二公钥对第二签名信息进行验证,如果第二签名信息验证通过,再基于客户端110本地的第一私钥对授权密文进行解密得到授权信息(明文),基于授权信息可以激活应用程序,获得应用程序的授权。这里,在解密得到授权信息之后,还将授权信息中的设备信息与客户端110本地的实际设备信息进行匹配,如果匹配成功,则能够基于授权信息成功获得应用程序的授权。如果匹配失败,说明授权信息可能被泄露和复用,则该客户端110不能获得应用程序的授权。
图5示出了根据本发明一个实施例的授权装置160的流程图。
如图5所示,授权装置160包括依次相连的获取模块161、加密模块162和请求模块163。其中,获取模块161适于获取客户端的设备信息,基于设备信息生成相应的设备标识。加密模块162适于基于与第二私钥相匹配的第二公钥对设备标识进行加密,生成申请密文;生成相匹配的第一私钥和第一公钥,基于第一私钥对申请密文进行签名,生成第一签名信息。请求模块163适于基于申请密文、第一签名信息和第一公钥生成申请文件,基于申请文件向服务器发送对应用程序的授权请求,以获取授权文件。解密模块164适于基于授权文件获取授权信息,以便基于授权信息对应用程序进行激活,获得应用程序的授权。
应当指出,获取模块161用于执行授权方法400的步骤S410中的方法,加密模块162用于执行授权方法400的步骤S420~S440中的方法,请求模块163用于执行授权方法400的步骤S450中的方法,解密模块164用于执行授权方法400的步骤S460中的方法。这里,对获取模块161、加密模块162、请求模块163以及解密模块164的具体执行逻辑不做赘述。
综上,根据本发明的授权方案,客户端在基于设备信息生成申请文件的过程中进行了数字签名和加密,服务器只有在对申请文件进行验签和解密成功后,并且设备信息匹配成功后,才会生成相应的授权文件返回给客户端。而且,服务器在生成授权文件的过程中也进行了数字签名和加密,客户端获取到授权文件后,也需要对授权文件进行验签和解密成功后才能获取到服务器提供的授权信息,进而基于授权信息成功获得应用程序的授权。这样,能防止授权信息的泄露和复用,避免对授权信息的盗用以及对授权配置信息的篡改。此外,本发明通过定时对存储的字段做增长操作来记录服务的运行时长,能防止用户企图通过修改系统时间来延长授权过期时间,从而确保授权服务安全可靠。
这里描述的各种技术可结合硬件或应用程序,或者它们的组合一起实现。从而,本发明的方法和设备,或者本发明的方法和设备的某些方面或部分可采取嵌入有形媒介,例如可移动硬盘、U盘、软盘、CD-ROM或者其它任意机器可读的存储介质中的程序代码(即指令)的形式,其中当程序被载入诸如计算机之类的机器,并被所述机器执行时,所述机器变成实践本发明的设备。
在程序代码在可编程计算机上执行的情况下,移动终端一般包括处理器、处理器可读的存储介质(包括易失性和非易失性存储器和/或存储元件),至少一个输入装置,和至少一个输出装置。其中,存储器被配置用于存储程序代码;处理器被配置用于根据该存储器中存储的所述程序代码中的指令,执行本发明的应用程序授权方法。
以示例而非限制的方式,可读介质包括可读存储介质和通信介质。可读存储介质存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息。通信介质一般以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。以上的任一种的组合也包括在可读介质的范围之内。
在此处所提供的说明书中,算法和显示不与任何特定计算机、虚拟系统或者其它设备固有相关。各种通用系统也可以与本发明的示例一起使用。根据上面的描述,构造这类系统所要求的结构是显而易见的。此外,本发明也不针对任何特定编程语言。应当明白,可以利用各种编程语言实现在此描述的本发明的内容,并且上面对特定语言所做的描述是为了披露本发明的最佳实施方式。
在此处所提供的说明书中,说明了大量具体细节。然而,能够理解,本发明的实施例可以在没有这些具体细节的情况下被实践。在一些实例中,并未详细示出公知的方法、结构和技术,以便不模糊对本说明书的理解。
类似地,应当理解,为了精简本公开并帮助理解各个发明方面中的一个或多个,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时被一起分组到单个实施例、图、或者对其的描述中。然而,并不应将该公开的方法解释成反映如下意图:即所要求保护的本发明要求比在每个权利要求中所明确记载的特征更多特征。更确切地说,如下面的权利要求书所反映的那样,发明方面在于少于前面公开的单个实施例的所有特征。因此,遵循具体实施方式的权利要求书由此明确地并入该具体实施方式,其中每个权利要求本身都作为本发明的单独实施例。
本领域那些技术人员应当理解在本文所公开的示例中的设备的模块或单元或组件可以布置在如该实施例中所描述的设备中,或者可替换地可以定位在与该示例中的设备不同的一个或多个设备中。前述示例中的模块可以组合为一个模块或者此外可以分成多个子模块。
本领域那些技术人员可以理解,可以对实施例中的设备中的模块进行自适应性地改变并且把它们设置在与该实施例不同的一个或多个设备中。可以把实施例中的模块或单元或组件组合成一个模块或单元或组件,以及此外可以把它们分成多个子模块或子单元或子组件。除了这样的特征和/或过程或者单元中的至少一些是相互排斥之外,可以采用任何组合对本说明书(包括伴随的权利要求、摘要和附图)中公开的所有特征以及如此公开的任何方法或者设备的所有过程或单元进行组合。除非另外明确陈述,本说明书(包括伴随的权利要求、摘要和附图)中公开的每个特征可以由提供相同、等同或相似目的的替代特征来代替。
此外,本领域的技术人员能够理解,尽管在此所述的一些实施例包括其它实施例中所包括的某些特征而不是其它特征,但是不同实施例的特征的组合意味着处于本发明的范围之内并且形成不同的实施例。例如,在下面的权利要求书中,所要求保护的实施例的任意之一都可以以任意的组合方式来使用。
此外,所述实施例中的一些在此被描述成可以由计算机系统的处理器或者由执行所述功能的其它装置实施的方法或方法元素的组合。因此,具有用于实施所述方法或方法元素的必要指令的处理器形成用于实施该方法或方法元素的装置。此外,装置实施例的在此所述的元素是如下装置的例子:该装置用于实施由为了实施该发明的目的的元素所执行的功能。
如在此所使用的那样,除非另行规定,使用序数词“第一”、“第二”、“第三”等等来描述普通对象仅仅表示涉及类似对象的不同实例,并且并不意图暗示这样被描述的对象必须具有时间上、空间上、排序方面或者以任意其它方式的给定顺序。
尽管根据有限数量的实施例描述了本发明,但是受益于上面的描述,本技术领域内的技术人员明白,在由此描述的本发明的范围内,可以设想其它实施例。此外,应当注意,本说明书中使用的语言主要是为了可读性和教导的目的而选择的,而不是为了解释或者限定本发明的主题而选择的。因此,在不偏离所附权利要求书的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。对于本发明的范围,对本发明所做的公开是说明性的而非限制性的,本发明的范围由所附权利要求书限定。

Claims (9)

1.一种授权控制方法,在服务器中执行,所述服务器与客户端基于内网通信连接,其中客户端适于生成并提供第一密钥对,第一密钥对包括相互匹配的第一私钥和第一公钥,所述服务器适于生成并提供第二密钥对,第二密钥对包括相互匹配的第二私钥和第二公钥,所述方法包括:
接收客户端基于申请文件发送的对应用程序的授权请求,从所述申请文件中获取申请密文、第一签名信息和第一公钥;
基于所述第一公钥对所述第一签名信息进行验证;
如果所述第一签名信息验证通过,则基于第二私钥对所述申请密文进行解密,以获取客户端的设备标识,并基于所述设备标识生成相应的设备信息;
将授权配置信息与所述设备信息建立关联,生成授权信息,基于第一公钥对所述授权信息进行加密,生成授权密文,基于第二私钥对所述授权密文进行签名,生成第二签名信息,基于所述授权密文、第二签名信息和第二公钥生成授权文件;
将授权文件发送至客户端,以便客户端基于授权文件获取授权密文、第二签名信息和第二公钥,基于第二公钥对所述第二签名信息进行验证,如果第二签名信息验证通过,则基于第一私钥对所述授权密文进行解密,得到授权信息,并基于所述授权信息对应用程序进行激活;以及
定时获取与授权配置信息相关联的一个或多个客户端的实际运行时长,判断实际运行时长是否超过应用程序的预定运行时长,以确定应用程序授权是否到期。
2.如权利要求1所述的方法,其中,判断实际运行时长是否超过应用程序的预定运行时长的步骤包括:
根据所述授权文件中的授权配置信息确定应用程序的预定运行时长;
如果确定实际运行时长超过预定运行时长,则确定应用程序授权到期。
3.如权利要求1所述的方法,其中,定时获取与授权配置信息相关联的一个或多个客户端的实际运行时长的步骤包括:
当授权配置信息关联多个客户端时,记录多个客户端的运行时长,生成时长记录;
定时查询时长记录,以获取多个客户端的实际运行时长。
4.如权利要求1所述的方法,其中,定时获取与授权配置信息相关联的一个或多个客户端的实际运行时长的步骤包括:
当授权配置信息关联一个客户端时,对该客户端的运行时间进行计时统计;
定时获取计时统计值,以获取该客户端的实际运行时长。
5.如权利要求1-4任一项所述的方法,其中,所述授权配置信息包括应用程序的预定运行时长、授权截止时间,确定应用程序授权是否到期的步骤还包括:
判断当前使用时间是否超过应用程序的授权截止时间,如果超过授权截止时间,则确定应用程序授权到期。
6.一种授权方法,在客户端执行,所述客户端与服务器基于内网通信连接,其中客户端适于生成并提供第一密钥对,第一密钥对包括相互匹配的第一私钥和第一公钥,所述服务器适于生成并提供第二密钥对,第二密钥对包括相互匹配的第二私钥和第二公钥,所述方法包括步骤:
获取客户端的设备信息,基于设备信息生成相应的设备标识;
基于第二公钥对设备标识进行加密,生成申请密文,所述第二公钥与第二私钥相匹配;
生成相匹配的第一私钥和第一公钥,基于第一私钥对所述申请密文进行签名,生成第一签名信息;
基于所述申请密文、第一签名信息和第一公钥生成申请文件;
基于申请文件向服务器发送对应用程序的授权请求,以获取服务器生成的授权文件,其中,所述服务器适于将授权配置信息与所述设备信息建立关联,生成授权信息,基于第一公钥对所述授权信息进行加密,生成授权密文,基于第二私钥对所述授权密文进行签名,生成第二签名信息,基于所述授权密文、第二签名信息和第二公钥生成授权文件;
基于授权文件获取授权密文、第二签名信息和第二公钥,基于第二公钥对所述第二签名信息进行验证,如果第二签名信息验证通过,则基于第一私钥对所述授权密文进行解密,得到授权信息,以便基于授权信息对应用程序进行激活。
7.一种授权装置,驻留在客户端,所述客户端与服务器基于内网通信连接,其中客户端适于生成并提供第一密钥对,第一密钥对包括相互匹配的第一私钥和第一公钥,所述服务器适于生成并提供第二密钥对,第二密钥对包括相互匹配的第二私钥和第二公钥,所述装置包括:
获取模块,适于获取客户端的设备信息,基于设备信息生成相应的设备标识;
加密模块,适于基于与第二私钥相匹配的第二公钥对设备标识进行加密,生成申请密文;生成相匹配的第一私钥和第一公钥,基于第一私钥对所述申请密文进行签名,生成第一签名信息;
请求模块,适于基于所述申请密文、第一签名信息和第一公钥生成申请文件,基于申请文件向服务器发送对应用程序的授权请求,以获取服务器生成的授权文件,其中,所述服务器适于将授权配置信息与所述设备信息建立关联,生成授权信息,基于第一公钥对所述授权信息进行加密,生成授权密文,基于第二私钥对所述授权密文进行签名,生成第二签名信息,基于所述授权密文、第二签名信息和第二公钥生成授权文件;以及
解密模块,适于基于授权文件获取授权密文、第二签名信息和第二公钥,基于第二公钥对所述第二签名信息进行验证,如果第二签名信息验证通过,则基于第一私钥对所述授权密文进行解密,得到授权信息,以便基于授权信息对应用程序进行激活。
8.一种计算设备,包括:
至少一个处理器;以及
存储器,存储有程序指令,其中,所述程序指令被配置为适于由所述至少一个处理器执行,所述程序指令包括用于执行如权利要求1-5中任一项所述的方法的指令。
9.一种存储有程序指令的可读存储介质,当所述程序指令被计算设备读取并执行时,使得所述计算设备执行如权利要求1-5中任一项所述方法。
CN202110310664.8A 2021-03-24 2021-03-24 授权控制方法、授权方法、装置及计算设备 Active CN112699342B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN202110310664.8A CN112699342B (zh) 2021-03-24 2021-03-24 授权控制方法、授权方法、装置及计算设备
CN202110620146.6A CN113326482A (zh) 2021-03-24 2021-03-24 授权控制方法、授权方法、装置及计算设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110310664.8A CN112699342B (zh) 2021-03-24 2021-03-24 授权控制方法、授权方法、装置及计算设备

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202110620146.6A Division CN113326482A (zh) 2021-03-24 2021-03-24 授权控制方法、授权方法、装置及计算设备

Publications (2)

Publication Number Publication Date
CN112699342A CN112699342A (zh) 2021-04-23
CN112699342B true CN112699342B (zh) 2021-07-16

Family

ID=75515626

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202110310664.8A Active CN112699342B (zh) 2021-03-24 2021-03-24 授权控制方法、授权方法、装置及计算设备
CN202110620146.6A Pending CN113326482A (zh) 2021-03-24 2021-03-24 授权控制方法、授权方法、装置及计算设备

Family Applications After (1)

Application Number Title Priority Date Filing Date
CN202110620146.6A Pending CN113326482A (zh) 2021-03-24 2021-03-24 授权控制方法、授权方法、装置及计算设备

Country Status (1)

Country Link
CN (2) CN112699342B (zh)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113242224B (zh) * 2021-04-30 2022-08-30 北京市商汤科技开发有限公司 授权方法及装置、电子设备和存储介质
CN113536334A (zh) * 2021-06-09 2021-10-22 佛山市青松科技股份有限公司 授权校验方法、模块及系统
CN113378119B (zh) * 2021-06-25 2023-04-07 成都卫士通信息产业股份有限公司 一种软件授权方法、装置、设备及存储介质
CN113612744B (zh) * 2021-07-23 2023-09-22 天津中新智冠信息技术有限公司 远程授权系统和方法
CN113543123B (zh) * 2021-07-23 2024-02-20 闻泰通讯股份有限公司 无线网路动态设定权限方法与装置
CN114186199B (zh) * 2022-02-15 2022-06-28 北京安帝科技有限公司 许可授权方法及装置
CN114465803B (zh) * 2022-02-15 2024-03-01 阿里巴巴(中国)有限公司 对象授权方法、装置、系统及存储介质
CN115086053A (zh) * 2022-06-23 2022-09-20 支付宝(杭州)信息技术有限公司 用于识别伪装设备的方法和系统
CN115080928A (zh) * 2022-06-30 2022-09-20 北京亚控科技发展有限公司 应用授权管理方法及相关设备
CN115374405B (zh) * 2022-08-22 2024-02-20 广州鼎甲计算机科技有限公司 软件授权方法、许可授权方法、装置、设备和存储介质
CN116545658A (zh) * 2022-11-09 2023-08-04 阿里巴巴(中国)有限公司 确权方法、系统以及装置
CN115859337B (zh) * 2023-02-14 2023-05-16 杭州大晚成信息科技有限公司 基于内核的防止设备破解方法、设备、服务器及介质
CN115964681A (zh) * 2023-03-16 2023-04-14 北京艾瑞数智科技有限公司 目标应用程序的证书文件的生成方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106465112A (zh) * 2014-05-21 2017-02-22 维萨国际服务协会 离线认证
CN110968844B (zh) * 2019-12-02 2021-12-17 卫盈联信息技术(深圳)有限公司 离线状态下的软件授权方法、服务器及可读存储介质
CN111901321A (zh) * 2020-07-17 2020-11-06 云账户技术(天津)有限公司 一种认证鉴权方法、装置、电子设备和可读存储介质
CN112165382B (zh) * 2020-09-28 2023-09-08 大唐高鸿信安(浙江)信息科技有限公司 软件授权方法、装置、授权服务端及终端设备
CN112347428A (zh) * 2020-11-20 2021-02-09 浙江百应科技有限公司 一种分布式软件产品离线授权方法

Also Published As

Publication number Publication date
CN113326482A (zh) 2021-08-31
CN112699342A (zh) 2021-04-23

Similar Documents

Publication Publication Date Title
CN112699342B (zh) 授权控制方法、授权方法、装置及计算设备
US6993648B2 (en) Proving BIOS trust in a TCPA compliant system
CN112182550A (zh) 应用程序的授权方法、授权系统、激活装置及计算设备
WO2021012552A1 (zh) 一种登录处理方法及相关设备
US8533859B2 (en) System and method for software protection and secure software distribution
US7484105B2 (en) Flash update using a trusted platform module
KR101356282B1 (ko) 이동 장치로부터 컴퓨터로의 안전한 원격 웨이크, 부트, 및 로그인을 하기 위한 방법 및 시스템
CN102508791B (zh) 一种对硬盘分区进行加密的方法及装置
US20200311309A1 (en) Encryption techniques for cookie security
CN101443774A (zh) 优化的完整性验证过程
WO2021219086A1 (zh) 基于区块链的数据传输方法和系统
US20070157318A1 (en) Method and apparatus for managing digital rights of secure removable media
CN109981562B (zh) 一种软件开发工具包授权方法及装置
KR20150036104A (ko) 로그인 검증의 방법, 클라이언트, 서버 및 시스템
WO2021159931A1 (zh) 软件许可本地部署方法、装置、设备及存储介质
CN111818529B (zh) 一种激活管理方法、激活管理装置及终端设备
US20130019110A1 (en) Apparatus and method for preventing copying of terminal unique information in portable terminal
CN110661817B (zh) 资源访问方法、装置及服务网关
WO2012075904A1 (zh) 一种验证绑定数据卡和移动主机的方法、装置及系统
CN115859267A (zh) 一种应用程序安全启动的方法、存储控制芯片和电子设备
TWI817002B (zh) 文檔上傳下載方法、裝置、電腦裝置及介質
US7577849B2 (en) Keyed-build system for controlling the distribution of software
CN107133499B (zh) 一种软件版权保护方法、客户端、服务端以及系统
US11216571B2 (en) Credentialed encryption
WO2023236720A1 (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