掌桥专利:专业的专利平台
掌桥专利
首页

基于软证书的授权方法和装置、存储介质

文献发布时间:2023-06-19 10:58:46


基于软证书的授权方法和装置、存储介质

技术领域

本公开涉及计算机技术领域,尤其涉及基于软证书的授权方法和装置、存储介质。

背景技术

随着科技的不断发展和进步,各种应用软件得到广泛应用。应用软件的开发往往需要耗费巨大的资金成本和时间成本,当前软件盗版屡有发生,严重损害了开发者的利益。于是,从技术上解决软件防盗的思路应运而生,包括有加密锁、软件授权书授权、注册码正版验证、数字签名加密等。授权功能是用户在购买软件时所获取的最基本的权益,软件许可证在授权期间,需要防止软件被他人盗用和滥用;软件许可证的授权过期后,软件将不能继续被使用。因此,如何提供一种合理的授权方案,是个非常重要的问题。

发明内容

本公开的主要目的在于提出一种基于软证书的授权方法和装置、存储介质,可以通过License软证书进行授权,提高应用程序的安全性。

实现上述目的,本公开的第一方面提出了一种基于软证书的授权方法,包括:

获取授权请求;

根据所述授权请求生成密钥对;

根据所述密钥对部署信息进行加密处理,得到加密信息;其中,所述部署信息包括待授权机器信息;

根据所述加密信息生成License文件;其中,所述License文件包括License软证书;

验证所述License软证书的合法性;

根据所述License软证书的合法性确定待授权机器。

优选地,所述部署信息还包括授权内容,所述待授权机器信息包括所述待授权机器的特征信息,所述根据所述密钥对部署信息进行加密处理,得到加密信息,包括:

提取所述待授权机器的特征信息;

根据所述密钥对所述特征信息和所述授权内容进行加密处理,得到所述加密信息。

优选地,所述部署信息还包括CPU信息和网卡信息,所述根据所述密钥对部署信息进行加密处理,得到加密信息,还包括:

提取所述CPU信息和所述网卡信息;

根据所述CPU信息和所述网卡信息确定所述待授权机器的特征信息。

优选地,所述授权请求包括所述特征信息和所述授权内容,根据所述授权请求生成密钥对,包括:

根据所述授权内容和所述特征信息生成授权数据块;

对所述授权数据块进行非对称加密算法,生成所述密钥对。

优选地,所述密钥对包括私钥,所述根据所述密钥对部署信息进行加密处理,得到加密信息,包括:

根据所述密钥对的私钥对所述部署信息进行加密处理,得到所述加密信息。

优选地,所述验证所述License软证书的合法性,包括:

解析所述License软证书的格式;

根据解析出的格式提取出所述特征信息和所述授权内容;

根据提取出的所述特征信息和所述授权内容验证所述License软证书的合法性。

优选地,所述License软证书的合法性包括合法证书和非法证书,所述根据所述License软证书的合法性确定待授权机器,包括:

若所述License软证书为所述合法证书,则根据所述特征信息和所述授权内容确定所述待授权机器;

若所述License软证书为所述非法证书,则生成重新生成证书命令。

为实现上述目的,本公开的第二方面提出了一种基于软证书的授权装置,包括:

请求获取模块,用于获取授权请求;

密钥对生成模块,用于根据所述授权请求生成密钥对;

加密模块,用于根据所述密钥对部署信息进行加密处理,得到加密信息;其中,所述部署信息包括待授权机器信息;

License文件生成模块,用于根据所述加密信息生成License文件;其中,所述License文件包括License软证书;

验证模块,用于验证所述License软证书的合法性;

授权模块,用于根据所述License软证书的合法性确定待授权机器。

为实现上述目的,本公开的第三方面提出了另一种基于软证书的授权装置,包括:

至少一个存储器;

至少一个处理器;

至少一个程序;

所述程序被存储在存储器中,处理器执行所述至少一个程序以实现本公开如上述第一方面所述的方法。

为实现上述目的,本公开的第四方面提出了一种存储介质,该存储介质是计算机可读存储介质,所述计算机可读存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行:

如上述第一方面所述的方法。

本公开提出的基于软证书的授权方法和装置、存储介质,通过获取授权请求,并根据所述授权请求生成密钥对,再根据所述密钥对部署信息进行加密处理,得到加密信息,然后根据所述加密信息生成License文件,再验证所述License文件中的License软证书的合法性,从而可以根据所述License软证书的合法性确定待授权机器,进而实现通过License软证书进行授权,提高应用程序的安全性。

附图说明

图1是本公开实施例提供的基于软证书的授权方法的流程图。

图2是图1的步骤103的流程图。

图3是图1的步骤102的流程图。

图4是图1的步骤105的流程图。

图5是是本公开实施例提供的基于软证书的授权装置的硬件结构示意图。

具体实施方式

为了使本公开的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本公开进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本公开,并不用于限定本公开。

需要说明的是,虽然在装置示意图中进行了功能模块划分,在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于装置中的模块划分,或流程图中的顺序执行所示出或描述的步骤。说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。

除非另有定义,本文所使用的所有的技术和科学术语与属于本公开的技术领域的技术人员通常理解的含义相同。本文中所使用的术语只是为了描述本公开实施例的目的,不是旨在限制本公开。

首先,对本公开中涉及的若干名词进行解析:

MAC(MediaAccessControl,媒体访问控制)地址:也称为局域网地址(LANAddress)、MAC位址、以太网地址(Ethernet Address)或物理地址(Physical Address),MAC位址是一个用来确认网络设备位置的位址。在OSI模型中,第三层网络层负责IP地址,第二层数据链路层则负责MAC位址。MAC地址用于在网络中唯一标识一个网卡,一台设备若有一或多个网卡,则每个网卡都需要并会有一个唯一的MAC地址。MAC地址也叫物理地址、硬件地址,由网络设备制造商生产时烧录在网卡(Network lnterface Card)的EPROM(一种闪存芯片,通常可以通过程序擦写)。网络中每台设备都有一个唯一的网络标识,这个网络标识叫MAC地址或网卡地址,由网络设备制造商生产时写在硬件内部。

keytool:keytool是个密钥和证书管理工具,keytool使用户能够管理自己的公钥/私钥对及相关证书,用于(通过数字签名)自我认证(用户向别的用户/服务认证自己)或数据完整性以及认证服务;还允许用户储存他们的通信对等者的公钥(以证书形式)。keytool将密钥和证书储存在一个所谓的密钥仓库(keystore)中。缺省的密钥仓库实现将密钥仓库实现为一个文件。keytool用口令来保护私钥。

软件许可(License)证:软件许可(License)证可以控制服务部署的情况,比如服务部署的硬件环境和服务到期日期。生产证书的服务端需要根据部署服务器的信息(如MAC地址等)和指定到期日期生成License证书。

非对称加密算法:非对称加密算法需要两个密钥:公开密钥(publickey,简称公钥)和私有密钥(privatekey,简称私钥)。公钥与私钥是一对,如果用公钥对数据进行加密,只有用对应的私钥才能解密。因为加密和解密使用的是两个不同的密钥,所以这种算法叫作非对称加密算法。非对称加密算法实现机密信息交换的基本过程是:甲方生成一对密钥并将公钥公开,需要向甲方发送信息的其他角色(乙方)使用该密钥(甲方的公钥)对机密信息进行加密后再发送给甲方;甲方再用自己私钥对加密后的信息进行解密。甲方想要回复乙方时正好相反,使用乙方的公钥对数据进行加密,同理,乙方使用自己的私钥来进行解密。

随着科技的不断发展和进步,各种应用软件得到广泛应用。应用软件的开发往往需要耗费巨大的资金成本和时间成本,当前软件盗版屡有发生,严重损害了开发者的利益。于是,从技术上解决软件防盗的思路应运而生,包括有加密锁、软件授权书授权、注册码正版验证、数字签名加密等。授权功能是用户在购买软件时所获取的最基本的权益,软件许可证在授权期间,需要防止软件被他人盗用、滥用、随意篡改;软件许可证的授权过期后,软件将不能继续被使用。

基于此,本公开实施例提供一种基于软证书的授权方法的技术方案,可以提供一种合理的授权方案,避免应用软件被随意使用或者随意篡改。

本公开实施例提供基于软证书的授权方法和装置、读存储介质,具体通过如下实施例进行说明,首先描述本公开实施例中的基于软证书的授权方法。

本公开实施例提供的基于软证书的授权方法,可应用于终端中,也可应用于服务器端中,还可以是运行于终端或服务器端中的软件。在一些实施例中,终端可以是智能手机、平板电脑、笔记本电脑、台式计算机或者智能手表等;服务器端可以配置成独立的物理服务器,也可以配置成多个物理服务器构成的服务器集群或者分布式系统,还可以配置成提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN以及大数据和人工智能平台等基础云计算服务的云服务器;软件可以是实现基于软证书的授权方法的应用等,该软件可以部署在服务器端;但并不局限于以上形式。

图1是本公开实施例提供的基于软证书的授权方法的一个可选的流程图,图1中的方法包括步骤101至步骤106。

步骤101、获取授权请求;

步骤102、根据授权请求生成密钥对;

步骤103、根据密钥对部署信息进行加密处理,得到加密信息;其中,部署信息包括待授权机器信息;

步骤104、根据加密信息生成License文件;其中,License文件包括License软证书;

步骤105、验证License软证书的合法性;

步骤106、根据License软证书的合法性确定待授权机器。

在一些实施例,待授权机器是用户端,可以是单个终端,也可以是服务器。本公开实施例不做限定,可以根据实际需要进行授权。

在一些实施例,部署信息还包括授权内容,待授权机器信息包括待授权机器的特征信息,请参阅图2,步骤103包括:

步骤201、提取待授权机器的特征信息;

步骤201、根据密钥对特征信息和授权内容进行加密处理,得到加密信息。

具体地,待授权机器的特征信息包括唯一标识码,唯一标识码与待授权机器是一一对应,用于唯一标识对相应的待授权机器进行授权。

在一些实施例的步骤101,用户端可以触发授权请求,请求获得相关应用程序的授权权限。

在一些实施例的步骤102中,可以通过keytool工具生成密钥对。

在一些实施例,部署信息还包括CPU信息和网卡信息,在步骤201之前,步骤103包括:

提取CPU信息和网卡信息;

根据CPU信息和网卡信息确定待授权机器的特征信息。

在一些实施例,授权请求包括特征信息和授权内容,请参阅图3,步骤102包括:

步骤301、根据授权内容和特征信息生成授权数据块;

步骤302、对授权数据块进行非对称加密算法,生成密钥对。

具体地,将授权内容和特征信息构成对应数据块,使得授权数据块作为一个数据整体,然后对授权数据块进行非对称加密算法,以生成密钥对。

在一些实施例,密钥对包括私钥,步骤103还包括:

根据密钥对的私钥对部署信息进行加密处理,得到加密信息。

具体地,利用密钥对的私钥对对部署信息进行加密处理,从而得到加密信息。因此,可以实现软证书的本地签名,从而避免软证书被随意篡改和伪造,有利于提高应用程序的安全性。

部署信息包括授权数据块,则根据密钥对的私钥对部署信息进行加密处理,得到加密信息,包括:

根据密钥对的私钥对授权数据块进行加密处理,得到加密信息。

在一些实施例的步骤104中,可以通过相应的License生成工具生成License文件。具体地,生成License文件的过程为可视化显示。在可视化界面上,可以设置License文件的输出路径(即输出目录),并设置待授权机器的MAC地址、授权内容(用户端相关信息,例如客户代码、客户名称、产品名称、产品编码、版本号信息等)、有效期信息等。可以结合实际需要进行设置。例如,可以根据与客户的合同期限,设置有效期。

License文件包括License软证书,License软证书包括单机型和浮动型,其中单机型是指一个License软证书绑定单台待授权机器,浮动型是指一个License软证书通过指定服务器绑定多个待授权机器。

在一些实施例,请参阅图4,步骤105包括:

步骤401、解析License软证书的格式;

步骤402、根据解析出的格式提取出特征信息和授权内容;

步骤403、根据提取出的特征信息和授权内容验证License软证书的合法性。

具体地,由于License软证书是通过加密生成,因此,要验证License软证书的合法性,需先解析出License软证书的格式,再从解析出的格式提取出特征信息和授权内容,以根据提取出的特征信息和授权内容对License软证书的合法性进行验证。

在实际应用中,验证License软证书的合法性时,可以通过WEB启动,访问BS(Browser/Server)程序。License软证书存储在服务器中,加载或启动时,验证License软证书格式中的参数(特征信息和授权内容,例如MAC地址、版本信息、有效期信息),从而判断License软证书的合法性。

在一些实施例,License软证书的合法性包括合法证书和非法证书,根据License软证书的合法性确定待授权机器,包括:

若License软证书为合法证书,则根据特征信息和授权内容确定待授权机器;

若License软证书为非法证书,则生成重新生成证书命令。

License软证书的合法性包括有效性及有效期,其中,有效性包括指License软证书是否有效,具体包括License软证书的版本号是否有效、License软证书的账户是否有效,有效期是包括使用License软证书的期限是否过期,从而可以结合实际需要进行设置。例如,可以根据与用户端(客户)的合同约定,设置有效期;若与用户端的合同约定的有效期过期,则说明License软证书的有效期过期,防止用户端在有效期过期后仍使用相关应用程序。

在实际应用中,将应用程序部署至用户端时,由于用户端的代码不受控制,从而应用程序容易被复制、篡改、随意使用和传播,且不能约束客户使用应用程序的期限。因此,本公开实施例,通过软证书授权的方式控制应用程序部署在指定的服务器(例如指定MAC地址)上,并限定用户端使用的有效期。相比于常用的使用开源项目trueLicense来生成证书及验证证书,trueLicense使用时需要大量的配置信息,且配置信息都是明文配置,非常不安全。而本公开实施例提供的技术方案,不需要进行任何配置,均可自动化完成,并且生成License文件的过程完全可视化,直观显示,使用非常方便。

在一具体应用场景中,待授权机器服务器,通过JAVA提供的keytool工具生成秘钥对,并将部署信息(例如待授权的服务器信息、CPU信息、网卡信息等)通过私钥进行加密处理,并使用License生成工具生成License文件,再将应用程序和License文件一起发布,在进行应用程序部署时,验证License文件的合法性(例如有效性及有效期),若License文件无效或有效期已过,则无法使用该应用程序,必须重新生成有效的License文件。其中,使用License生成工具生成License文件的界面是可视化界面,License文件的生成过程可以直观显示。

此外,本公开实施例中,通过软证书授权,相比于硬件证书,可以节约成本,也便于使用,不需要携带在身边。软证书的更新也更加便捷。并且,通过软证书授权,可以很方便对软证书指定待授权机器,不需要针对被指定的授权机器特意定制定做硬件证书。

本公开实施例提供的基于软证书的授权方法,通过获取授权请求,并根据授权请求生成密钥对,再根据密钥对部署信息进行加密处理,得到加密信息,然后根据加密信息生成License文件,再验证License文件中的License软证书的合法性,从而可以根据License软证书的合法性确定待授权机器,进而实现通过License软证书进行授权,提高应用程序的安全性。

本公开实施例还提供一种基于软证书的授权装置,可以实现上述基于软证书的授权方法,该装置包括:

请求获取模块,用于获取授权请求;

密钥对生成模块,用于根据授权请求生成密钥对;

加密模块,用于根据密钥对部署信息进行加密处理,得到加密信息;其中,部署信息包括待授权机器信息;

License文件生成模块,用于根据加密信息生成License文件;其中,License文件包括License软证书;

验证模块,用于验证License软证书的合法性;

授权模块,用于根据License软证书的合法性确定待授权机器。

本公开实施例还提供了一种基于软证书的授权装置,包括:

至少一个存储器;

至少一个处理器;

至少一个程序;

所述程序被存储在存储器中,处理器执行所述至少一个程序以实现本公开实施例上述基于软证书的授权方法。该电子设备可以为包括手机、平板电脑、个人数字助理(Personal Digital Assistant,简称PDA)、销售终端(Point of Sales,简称POS)、车载电脑等任意智能终端。

本公开实施例还提供了一种存储介质,该存储介质是计算机可读存储介质,该计算机可读存储介质存储有计算机可执行指令,该计算机可执行指令用于使计算机执行上述基于软证书的授权方法。

本公开实施例提出的基于软证书的授权方法、基于软证书的授权装置、存储介质,通过获取授权请求,并根据授权请求生成密钥对,再根据密钥对部署信息进行加密处理,得到加密信息,然后根据加密信息生成License文件,再验证License文件中的License软证书的合法性,从而可以根据License软证书的合法性确定待授权机器,进而实现通过License软证书进行授权,提高应用程序的安全性。此外,生成License文件的过程完全可视化,直观显示,使用非常方便。

存储器作为一种非暂态计算机可读存储介质,可用于存储非暂态软件程序以及非暂态性计算机可执行程序。此外,存储器可以包括高速随机存取存储器,还可以包括非暂态存储器,例如至少一个磁盘存储器件、闪存器件、或其他非暂态固态存储器件。在一些实施方式中,存储器可选包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至该处理器。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

本公开实施例描述的实施例是为了更加清楚的说明本公开实施例的技术方案,并不构成对于本公开实施例提供的技术方案的限定,本领域技术人员可知,随着技术的演变和新应用场景的出现,本公开实施例提供的技术方案对于类似的技术问题,同样适用。

以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。

本领域普通技术人员可以理解,上文中所公开方法中的全部或某些步骤、系统、设备中的功能模块/单元可以被实施为软件、固件、硬件及其适当的组合。

本公开的说明书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本公开的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

应当理解,在本公开中,“至少一个(项)”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系,例如,“A和/或B”可以表示:只存在A,只存在B以及同时存在A和B三种情况,其中A,B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b或c中的至少一项(个),可以表示:a,b,c,“a和b”,“a和c”,“b和c”,或“a和b和c”,其中a,b,c可以是单个,也可以是多个。

在本公开所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括多指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,简称ROM)、随机存取存储器(Random Access Memory,简称RAM)、磁碟或者光盘等各种可以存储程序的介质。

以上参照附图说明了本公开实施例的优选实施例,并非因此局限本公开实施例的权利范围。本领域技术人员不脱离本公开实施例的范围和实质内所作的任何修改、等同替换和改进,均应在本公开实施例的权利范围之内。

相关技术
  • 基于软证书的授权方法和装置、存储介质
  • 授权证书校验方法、装置及可读存储介质、应用设备
技术分类

06120112758287