CN115859389B - 一种基于私有化部署的软件序列号授权方法及系统 - Google Patents
一种基于私有化部署的软件序列号授权方法及系统 Download PDFInfo
- Publication number
- CN115859389B CN115859389B CN202310126454.2A CN202310126454A CN115859389B CN 115859389 B CN115859389 B CN 115859389B CN 202310126454 A CN202310126454 A CN 202310126454A CN 115859389 B CN115859389 B CN 115859389B
- Authority
- CN
- China
- Prior art keywords
- software
- serial number
- equipment
- preset
- time stamp
- 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
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于私有化部署的软件序列号授权方法及系统,属于数据处理技术领域,用于解决在私有化部署时,软件序列号授权灵活性差的技术问题,方法包括:应用设备获取预设唯一的第一设备标识以及设备当前的第一时间戳;对所第一设备标识与第一时间戳进行加密,生成机器码;授权设备对机器码进行解密,得到第二设备标识与第二时间戳;确定第二时间戳对应的有效期时间戳;确定第二设备标识支持的软件功能模块信息;对第二设备标识、有效期时间戳以及软件功能模块信息进行加密,得到软件序列号;应用设备根据第一设备标识以及第一时间戳,对软件序列号进行检验,确定软件序列号为授权状态。软件序列号授权安全且灵活应用。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及一种基于私有化部署的软件序列号授权方法及系统。
背景技术
客户在购买软件使用时,可以选择各种软件授权的权限控制方法,比如会员vip制、按功能模块购买、在线激活码等,这类方法将客户权限信息存在软件服务商的某个服务器中,需要客户能够访问互联网才可生效,在断网的私有部署模式下无法应用。
例如,客户购买软件时所涉及的场景可以包括:如果企业需要个性化定制,为客户A定制的软件包在客户B的企业中不适用,此时干脆不做授权限制;或者买断式,软件终身使用权,辅以纸面合同限制其他客户使用,也不用授权限制;或者软件包配套序列号的方案,激活时需要序列号和激活码一起使用,但是需要联网验证。
但是,随着传统制造企业开始推广信息化改造,在生产流程中应用工业软件。工业软件实施过程中,会遇到保密性有一定要求的企业,现场服务器只连接企业内部网络,禁止与外部互联网连接,机房服务器的操作要求严格,只允许指定的网络管理人员进入机房,此情况下,需要软件私有化部署,且无法连接互联网,对软件的授权控制有一定难度,此时通常只能采用买断式的权限控制方法,对客户费用昂贵且限制其他客户使用,从而给用户不好的体验。
基于此,若需要软件私有化部署,且无法连接互联网,将导致在私有化部署的应用场景下,软件序列号授权安全控制难度高,灵活性差。
发明内容
本申请实施例提供一种基于私有化部署的软件序列号授权方法及系统,用于解决对于具有保密性要求的企业,其现场服务器只连接企业内部网络,禁止与外部互联网连接。此时,若需要软件私有化部署,且无法连接互联网,将导致在私有化部署的应用场景下,软件序列号授权安全控制难度高,灵活性差的问题。
本申请实施例采用下述技术方案:
一方面,本申请实施例提供了一种基于私有化部署的软件序列号授权方法,应用于软件序列号授权系统,该系统包括应用设备、授权设备,该方法包括:所述应用设备接收软件的软件序列号获取请求;获取预设唯一的第一设备标识以及设备当前的第一时间戳;其中,所述第一设备标识为所述应用设备的系统序列号;根据预设公钥,对所第一设备标识与所述第一时间戳进行加密,生成机器码,并将所述机器码通过第三方传输介质发送至所述授权设备;所述授权设备根据预设私钥,对所述机器码进行解密,得到第二设备标识与第二时间戳;所述预设公钥与所述预设私钥为通过非对称加密得到公私钥对;根据预设有效期数值,确定所述第二时间戳对应的有效期时间戳;其中,所述有效期时间戳晚于所述第二时间戳;确定所述第二设备标识所支持的软件功能模块信息;根据所述预设私钥,对所述第二设备标识、所述有效期时间戳以及所述软件功能模块信息进行加密,得到软件序列号,并将所述软件序列号发送至所述应用设备;所述应用设备接收软件的首次激活请求,根据所述第一设备标识以及所述第一时间戳,对所述软件序列号进行检验;在校验通过后,则确定所述软件序列号为授权状态,以对所述软件进行首次激活。
一个示例中,所述应用设备根据所述第一设备标识以及所述第一时间戳,对所述软件序列号进行检验,具体包括:所述应用设备根据所述预设公钥,对所述软件序列号进行解密,得到所述第二设备标识、所述有效期时间戳以及所述软件功能模块信息;判断所述第一设备标识与所述第二设备标识是否一致;
若是,则判断所述有效期时间戳与所述第一时间戳之间的时间差值是否小于预设有效期限数值;若是,则确定所述软件序列号校验通过。
一个示例中,所述方法还包括:若所述第一设备标识与所述第二设备标识不一致,则所述应用设备确定所述软件序列号检验失败,并在前端用户界面提示所述软件序列号为未授权状态;所述方法还包括:若所述有效期时间戳与所述第一时间戳之间的时间差值大于或等于预设有效期限数值;则所述应用设备确定所述软件序列号检验失败,并在所述前端用户界面提示所述软件序列号为未授权状态。
一个示例中,所述根据预设有效期数值,确定所述第二时间戳对应的有效期时间戳之前,所述方法还包括:所述授权设备根据所述第二设备标识的前缀,判断所述应用设备是否为虚拟机;若是,则向所述应用设备发送是否确认继续获取所述软件序列号的通知,以接收所述应用设备的确认信息。
一个示例中,所述方法还包括:若所述应用设备为非虚拟机和/或在接收所述应用设备的确认信息后,所述授权设备确定所述第二时间戳与当前时间之间的时间差值;将所述时间差值与预设差值阈值进行对比,以确定所述时间差值未超过所述预设差值阈值。
一个示例中,所述根据预设公钥,对所第一设备标识与所述第一时间戳进行加密,生成机器码,具体包括:所述应用设备根据预先设定的数据结构组合,将所述第一设备标识与所述第一时间戳进行组合,生成第一数据结构字符串;将所述第一时间戳插入所述第一数据结构字符串中的预设位置,生成第二数据结构字符串;根据预设公钥,对所述第二数据结构字符串进行加密,生成所述机器码。
一个示例中,所述根据所述预设私钥,对所述第二设备标识、所述有效期时间戳以及所述软件功能模块信息进行加密,得到软件序列号,具体包括:所述授权设备将所述第二设备标识进行Base64编码,得到所述第二设备标识的第一转码信息;通过Go语言,随机生成通用唯一识别码,以及随机生成非对称加密的随机私钥与随机公钥;对所述有效期时间戳进行四则混合运算,得到运算结果,将所述运算结果进行Base64编码,得到所述有效期时间戳的第二转码信息;对所述软件功能模块进行可逆加密,生成所述软件功能模块的加密信息;根据所述随机私钥,对所述第一转码信息、所述通用唯一识别码、所述第二转码信息以及所述软件功能模块的加密信息进行加密,得到加密字符串;
根据所述预设私钥,对所述加密字符串与所述随机公钥进行加密,得到软件序列号。
一个示例中,所述以对所述软件进行首次激活之后,所述方法还包括:所述应用设备将所述软件功能模块信息存储至数据库,将所述软件序列号存储至指定文件夹;根据预设检验触发条件,触发所述软件序列号的检验请求;从所述指定文件夹读取所述软件序列号,根据所述第一设备标识以及所述第一时间戳,对所述软件序列号进行检验;若所述软件序列号校验通过,则获取所述软件的运行功能模块信息;从所述数据库读取所述软件功能模块信息,将所述软件功能模块信息与所述运行功能模块信息进行对比;若所述软件功能模块信息与所述运行功能模块信息一致,则确定所述软件为允许运行状态。
一个示例中,所述以对所述软件进行首次激活之后,所述方法还包括:所述授权设备获取更新的软件功能模块信息;根据所述预设私钥,对所述第二设备标识、所述有效期时间戳以及所述更新的软件功能模块信息进行加密,得到更新的软件序列号,并将所述更新的软件序列号发送至所述应用设备;所述应用设备接收软件的更新请求,根据所述第一设备标识以及所述第一时间戳,对所述更新的软件序列号进行检验;在校验通过后,则确定所述更新的软件序列号为授权状态,根据所述更新的软件功能模块信息,对所述软件进行功能更新。
另一方面,一种基于私有化部署的软件序列号授权系统,其特征在于,所述系统包括应用设备、授权设备;所述应用设备用于接收软件的软件序列号获取请求;获取预设唯一的第一设备标识以及设备当前的第一时间戳;其中,所述第一设备标识为所述应用设备的系统序列号;根据预设公钥,对所第一设备标识与所述第一时间戳进行加密,生成机器码,并将所述机器码通过第三方传输介质发送至所述授权设备;所述授权设备用于根据预设私钥,对所述机器码进行解密,得到第二设备标识与第二时间戳;所述预设公钥与所述预设私钥为通过非对称加密得到公私钥对;根据预设有效期数值,确定所述第二时间戳对应的有效期时间戳;其中,所述有效期时间戳晚于所述第二时间戳;确定所述第二设备标识所支持的软件功能模块信息;根据所述预设私钥,对所述第二设备标识、所述有效期时间戳以及所述软件功能模块信息进行加密,得到软件序列号,并将所述软件序列号发送至所述应用设备;所述应用设备还用于接收软件的首次激活请求,根据所述第一设备标识以及所述第一时间戳,对所述软件序列号进行检验;
在校验通过后,则确定所述软件序列号为授权状态,以对所述软件进行首次激活。
本申请实施例采用的上述至少一个技术方案能够达到以下有益效果:
通过将应用设备的系统序列号作为设备的唯一标识,能够实现一个设备一个机器码的前提下,不易篡改或模仿且具有唯一性,并且根据第一设备标识与第一时间戳生成公钥加密的机器码,提高机器码的破解难度,并且根据第二设备标识、有效期时间戳以及软件功能模块信息生成私钥加密的软件序列号,不仅限制软件的可用功能和有效期限,还能够提高软件序列号的破解难度,为软件增加一道强力保护,软件强绑定应用设备,一机一软件序列号,无法被其他应用设备使用,增强产品保护力度,减少软件被盗用被破解的概率,从而实现了应用设备与授权设备之间只有机器码与软件序列号的交换,在私有部署模式、内网断网环境下可以灵活安全应用。
附图说明
为了更清楚地说明本申请的技术方案,下面将结合附图来对本申请的部分实施例进行详细说明,附图中:
图1为本申请实施例提供的一种基于私有化部署的软件序列号授权方法的流程示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面参照附图来对本申请的一些实施例进行详细说明。
图1为本申请实施例提供的一种基于私有化部署的软件序列号授权方法的流程示意图。该方法可以应用于不同的业务领域,比如,互联网金融业务领域、电商业务领域、即时通讯业务领域、游戏业务领域、公务业务领域等。该流程可以由相应领域的计算设备,该流程中的某些输入参数或者中间结果允许人工干预调节,以帮助提高准确性。
图1中的流程可以包括以下步骤:
S101:所述应用设备接收软件的软件序列号获取请求。
在本申请的一些实施例中,应用场景为私有化部署的软件序列号授权系统,系统包括应用设备、授权设备。
其中,应用设备方的用户通过相关设备(比如,U盘)将软件包传输至应用设备。基于用户的操作,应用设备根据软件包进行软件安装,应用设备安装软件成功之后,需要获取授权设备授权的软件序列号,因此,基于用户的操作,应用设备接收软件的软件序列号获取请求。
S102:获取预设唯一的第一设备标识以及设备当前的第一时间戳;其中,所述第一设备标识为所述应用设备的系统序列号。
需要说明的是,在现有技术中,存在提供应用设备的MAC地址,然后生成一个license返回给应用设备,则应用设备视为授权,由于MAC地址本身就是敏感信息,多张网卡便具有多个mac地址,如果切换网卡,那么MAC地址顺序也会改变,有很多方式伪造MAC地址,比如,通过docker容器伪造MAC地址,容器启动时可以手动设置MAC地址。因此,采用系统序列号作为应用设备的设备标识,而不是采用MAC地址。
其中,通过预设命令行读取系统序列号。系统序列号在win系统和linux系统中虽有差异,但都具备唯一性,且无法被设置。
S103:根据预设公钥,对所第一设备标识与所述第一时间戳进行加密,生成机器码,并将所述机器码通过第三方传输介质发送至所述授权设备。
其中,第一时间戳则可作为生成机器码的时间戳。
需要说明的是,第三方传输介质可以包括应用设备对应的第一传输设备,以及授权设备对应的第二传输设备,第一传输设备能够将机器码传输至第二传输设备,从而基于授权设备方的用户的操作,通过第二传输设备将机器码发送至授权设备。其中,第一传输设备与第二传输设备可以为手机。
在本申请的一些实施例中,采用非对称加密,非对称加密使用一对公钥私钥,用公钥加密的数据,只能用私钥才能解密出结果,反之私钥加密的数据只能用公钥才能解出。非对称加密的强度与公私钥对的长度正相关,但太长会影响加解密效率。其中,常用1024长度或2048长度强度,可随机取二者之间的一个数作为长度。
其中,在开发软件时,开发设备可以通过预先设定的RSA加密算法生成一对公私钥对,应用设备安装的软件中只包含公钥,打入软件包中,不可暴漏,由Go语言编写,Go语言打包时混淆加壳处理,打包得到的可执行程序不容易被反编译,另外,Go语言跨平台编译方便,适用于多个系统,不必安装额外的运行环境。
在本申请的一些实施例中,在生成机器码时,可以按照特定的数据结构组合,生成JSON数据结构字符串,然后对JSON数据结构字符串进行处理,再对处理的字符串进行公钥加密,从而能够提高机器码的破解难度,提高机器码的安全性。
具体地,应用设备根据预先设定的数据结构组合,将第一设备标识与第一时间戳进行组合,生成第一数据结构字符串,然后将第一时间戳插入第一数据结构字符串中的预设位置,生成第二数据结构字符串,最后根据预设公钥,对第二数据结构字符串进行加密,生成机器码。
需要说明的是,还可以对第一数据结构字符串进行加盐处理以及混淆字段等处理。通过Go后端加web前端实现,从而将生成的机器码展示在web页面中,机器码可以复制,可以另存为文件。
S104:所述授权设备根据预设私钥,对所述机器码进行解密,得到第二设备标识与第二时间戳;所述预设公钥与所述预设私钥为通过非对称加密得到公私钥对。
在本申请的一些实施例中,授权设备采用Go后端加web前端,前端用户页面包括:机器码输入框,授权有效期限输入框,功能模块列表的勾选框,生成软件序列号按钮,以及生成软件序列号的展示框,从而授权设备通过前端用户界面获取对应的信息。
需要说明的是,授权设备设置有序列号生成机,预先在序列号生成机中,存放预设私钥。
其中,授权设备接收到机器码后,将机器码存放至序列号生成机,从而通过预设私钥对对机器码进行解密。
需要说明的是,若解密失败,则向应用设备返回解密失败提醒。
S105:根据预设有效期数值,确定所述第二时间戳对应的有效期时间戳;其中,所述有效期时间戳晚于所述第二时间戳。
在本申请的一些实施例中,由于应用设备存在虚拟机时,虚拟机安装软件时,运行性能不佳,而在应用设备的唯一标识为系统序列号时,由于虚拟机的系统序列号具有明显的前缀,因此可以根据系统序列号,识别出是否具有虚拟机。
基于此,授权设备在确定第二时间戳对应的有效期时间戳之前,将根据第二设备标识的前缀,判断应用设备是否为虚拟机。
若是,则向应用设备发送是否确认继续获取软件序列号的通知,以接收应用设备的确认信息。
然后,授权设备确定第二时间戳与当前时间之间的时间差值,将时间差值与预设差值阈值进行对比,以确定时间差值未超过预设差值阈值,然后对所述第二时间戳进行设置有效期标识。其中,预设差值阈值用于表示第二时间戳距离当前时间的时长大小,比如,预设时间差值为7天,则可认为第二时间戳距离当前时间的前7天有效。
其中,第二时间戳应该是过去时间的,且不能距离当前时间太久,若时间差值超过预设差值阈值时,则说明第二时间戳距离当前时间太久。
若时间差值超过预设差值阈值,则向应用设备发送时间戳过期提醒。
需要说明的是,若应用设备为非虚拟机,则执行确定第二时间戳与当前时间之间的时间差值,以及将时间差值与预设差值阈值进行对比,以确定时间差值是否超过预设差值阈值。
在本申请的一些实施例中,在设置第二时间戳的有效期时间戳时,有效期输入框可以修改有效时间,方便生成不同有效期限的时间戳,从而授权设备根据预设有效期数值,选取一个时间点作为第二时间戳的到期时间,从而将选取的时间点作为有效期时间戳。比如,比如,有效期限为一年,则获取第二时间戳一年后的时间戳,作为有效期时间戳。
S106:确定所述第二设备标识所支持的软件功能模块信息。
也就是说,应用设备对于软件是具有功能权限的,对于用户已经购买的功能模块具有使用权限。那么,软件开发商可以在功能模块列表选中可以授权的功能模块。
S107:根据所述预设私钥,对所述第二设备标识、所述有效期时间戳以及所述软件功能模块信息进行加密,得到软件序列号,并将所述软件序列号发送至所述应用设备。
在本申请的一些实施例中,为了提高软件序列号的安全性,对第二设备标识、有效期时间戳以及软件功能模块信息组织成特定数据结构。然后,根据预设私钥,对特定数据结构进行加密,得到软件序列号,进一步提高软件序列号的仿制难度。
具体地,授权设备将第二设备标识进行Base64编码,得到第二设备标识的第一转码信息。以及通过Go语言,随机生成通用唯一识别码,以及随机生成非对称加密的随机私钥与随机公钥。以及对有效期时间戳进行四则混合运算,得到运算结果,将运算结果进行Base64编码,得到有效期时间戳的第二转码信息。以及对软件功能模块进行可逆加密,生成软件功能模块的加密信息。
然后,根据随机私钥,对第一转码信息、通用唯一识别码、第二转码信息以及软件功能模块的加密信息进行加密,得到加密字符串。
最后,根据预设私钥,对加密字符串与随机公钥进行加密,得到软件序列号。
需要说明的是,需要预先在应用设备的软件中,加入对应的解析特定数据结构的还原逻辑。
需要说明的是,可以通过S103中的第三方传输介质将软件序列号发送至所述应用设备,具体过程在此不再进行详细描述。
S108:所述应用设备接收软件的首次激活请求,根据所述第一设备标识以及所述第一时间戳,对所述软件序列号进行检验。
在本申请的一些实施例中,应用设备基于用户在前端用户界面的操作,接收软件的首次激活请求时,根据预设公钥,对软件序列号进行解密,得到第二设备标识、有效期时间戳以及软件功能模块信息。
需要说明的时,若解密失败,则向自身前端用户界面反馈解密失败提醒。
然后,判断第一设备标识与第二设备标识是否一致。也就是说,应用设备检验授权设备发送的设备标识是否与发给授权设备的设备标识一致,以防止被篡改。
若是,则判断有效期时间戳与第一时间戳之间的时间差值是否小于预设有效期限数值。若是,则确定软件序列号校验通过。其中,若有效期时间戳与第一时间戳之间的时间差值大于或等于预设有效期限数值,则说明有效期时间戳失效,应用设备确定软件序列号检验失败,并在前端用户界面提示所述软件序列号为未授权状态。
若第一设备标识与第二设备标识不一致,则应用设备确定软件序列号检验失败,并在前端用户界面提示所述软件序列号为未授权状态。
S109:在校验通过后,则确定所述软件序列号为授权状态,以对所述软件进行首次激活。
在本申请的一些实施例中,在对软件进行首次激活后,需要定期检验软件序列号的授权状态。比如,有效期时间戳是否过期,即,软件的有效期限是否过期或者将要过期,以提前通知用户。
基于此,应用设备将软件功能模块信息存储至数据库,将软件序列号存储至指定文件夹。
根据预设检验触发条件,触发软件序列号的检验请求。其中,预设检验触发条件可以为每次打开软件首页,或者每次登录软件,或每次软件后台服务重新开启等。
然后,从指定文件夹读取软件序列号,判断软件序列号是否存在,若不存在,则视为软件序列号未授权。
若存在,则根据第一设备标识以及第一时间戳,对软件序列号进行检验。需要说明的是,如何对软件序列号进行检验,参见S108中的内容。
若软件序列号校验通过,则获取软件的运行功能模块信息。比如,运行功能模块的ID或编号。
从数据库读取软件功能模块信息,将软件功能模块信息与运行功能模块信息进行对比。
若软件功能模块信息与运行功能模块信息一致,则确定软件为允许运行状态。也就是说,在一致时,说明应用终端在使用已经授权的功能模块,并未非法使用非授权功能模块。
在本申请的一些实施例中,存在主动对软件进行更新的情况,比如,应用设备增加软件功能模块,实现满足更多功能的需求。
基于此,授权设备获取更新的软件功能模块信息,根据预设私钥,对第二设备标识、有效期时间戳以及更新的软件功能模块信息进行加密,得到更新的软件序列号,并将更新的软件序列号发送至应用设备。
应用设备接收软件的更新请求,根据第一设备标识以及第一时间戳,对更新的软件序列号进行检验。
在校验通过后,则确定更新的软件序列号为授权状态,根据更新的软件功能模块信息,对软件进行功能更新。
需要说明的是,应用设备也可以主动更新软件序列号,比如,应用设备需要延长软件的有效期,则需要根据更新的第一时间戳,重新生成机器码,将更新的机器码发送至授权设备,以获取更新的软件序列号。
实现了即使断网情况下,部署在应用设备的软件也能够获取机器码、获取软件序列号、定时校验序列号。
需要说明的是,虽然本申请实施例是参照图1来对步骤S101至步骤S109依次进行介绍说明的,但这并不代表步骤S101至步骤S109必须按照严格的先后顺序执行。本申请实施例之所以按照图1中所示的顺序对步骤S101至步骤S109依次进行介绍说明,是为了方便本领域技术人员理解本申请实施例的技术方案。换句话说,在本申请实施例中,步骤S101至步骤S109之间的先后顺序可以根据实际需要进行适当调整。
通过图1的方法,通过将应用设备的系统序列号作为设备的唯一标识,能够实现一个设备一个机器码的前提下,不易篡改或模仿且具有唯一性,并且根据第一设备标识与第一时间戳生成公钥加密的机器码,提高机器码的破解难度,并且根据第二设备标识、有效期时间戳以及软件功能模块信息生成私钥加密的软件序列号,不仅限制软件的可用功能和有效期限,还能够提高软件序列号的破解难度,为软件增加一道强力保护,软件强绑定应用设备,一机一软件序列号,无法被其他应用设备使用,增强产品保护力度,减少软件被盗用被破解的概率,从而实现了应用设备与授权设备之间只有机器码与软件序列号的交换,在私有部署模式、内网断网环境下可以灵活安全应用。
进一步地,若是工业、制造业类型的软件涉及大量的生产控制信息,对时间的准确性要求非常高,如果用户选择将第一时间戳往未来时间延期,以延长软件序列号的授权时间,那么软件功能中存在的大量时间校验会导致功能流转不正常,得不偿失,实际上数据存取量大、对时间准确度有较高要求的复杂软件系统都应在时间戳准确的前提下使用,客户端服务器时间统一,否则功能必定受影响,因此,本申请中第一时间戳作为标准,通过有效期时间戳衡量软件序列号的有效期,能够有效避免软件时间戳作弊的情况。
基于同样的思路,本申请的一些实施例还提供了上述对应的系统。
一种基于私有化部署的软件序列号授权系统,所述系统包括应用设备、授权设备;
所述应用设备用于接收软件的软件序列号获取请求;
获取预设唯一的第一设备标识以及设备当前的第一时间戳;其中,所述第一设备标识为所述应用设备的系统序列号;
根据预设公钥,对所第一设备标识与所述第一时间戳进行加密,生成机器码,并将所述机器码通过第三方传输介质发送至所述授权设备;
所述授权设备用于根据预设私钥,对所述机器码进行解密,得到第二设备标识与所述第二时间戳;所述预设公钥与所述预设私钥为通过非对称加密得到公私钥对;
根据预设有效期数值,确定所述第二时间戳对应的有效期时间戳;其中,所述有效期时间戳晚于所述第二时间戳;
确定所述第二设备标识所支持的软件功能模块信息;
根据所述预设私钥,对所述第二设备标识、所述有效期时间戳以及所述软件功能模块信息进行加密,得到软件序列号,并将所述软件序列号发送至所述应用设备;
所述应用设备还用于接收软件的首次激活请求,根据所述第一设备标识以及所述第一时间戳,对所述软件序列号进行检验;
在校验通过后,则确定所述软件序列号为授权状态,以对所述软件进行首次激活。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请技术原理之内所作的任何修改、等同替换、改进等,均应落入本申请的保护范围之内。
Claims (10)
1.一种基于私有化部署的软件序列号授权方法,其特征在于,应用于软件序列号授权系统,所述系统包括应用设备、授权设备,所述方法包括:
所述应用设备接收软件的软件序列号获取请求;
获取预设唯一的第一设备标识以及设备当前的第一时间戳;其中,所述第一设备标识为所述应用设备的系统序列号;
根据预设公钥,对所第一设备标识与所述第一时间戳进行加密,生成机器码,并将所述机器码通过第三方传输介质发送至所述授权设备;
所述授权设备根据预设私钥,对所述机器码进行解密,得到第二设备标识与第二时间戳;所述预设公钥与所述预设私钥为通过非对称加密得到公私钥对;
根据预设有效期数值,确定所述第二时间戳对应的有效期时间戳;其中,所述有效期时间戳晚于所述第二时间戳;
确定所述第二设备标识所支持的软件功能模块信息;
根据所述预设私钥,对所述第二设备标识、所述有效期时间戳以及所述软件功能模块信息进行加密,得到软件序列号,并将所述软件序列号发送至所述应用设备;
所述应用设备接收软件的首次激活请求,根据所述第一设备标识以及所述第一时间戳,对所述软件序列号进行检验;
在校验通过后,则确定所述软件序列号为授权状态,以对所述软件进行首次激活。
2.根据权利要求1所述的方法,其特征在于,所述应用设备根据所述第一设备标识以及所述第一时间戳,对所述软件序列号进行检验,具体包括:
所述应用设备根据所述预设公钥,对所述软件序列号进行解密,得到所述第二设备标识、所述有效期时间戳以及所述软件功能模块信息;
判断所述第一设备标识与所述第二设备标识是否一致;
若是,则判断所述有效期时间戳与所述第一时间戳之间的时间差值是否小于预设有效期限数值;
若是,则确定所述软件序列号校验通过。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述第一设备标识与所述第二设备标识不一致,则所述应用设备确定所述软件序列号检验失败,并在前端用户界面提示所述软件序列号为未授权状态;
所述方法还包括:
若所述有效期时间戳与所述第一时间戳之间的时间差值大于或等于预设有效期限数值;
则所述应用设备确定所述软件序列号检验失败,并在所述前端用户界面提示所述软件序列号为未授权状态。
4.根据权利要求1所述的方法,其特征在于,所述根据预设有效期数值,确定所述第二时间戳对应的有效期时间戳之前,所述方法还包括:
所述授权设备根据所述第二设备标识的前缀,判断所述应用设备是否为虚拟机;
若是,则向所述应用设备发送是否确认继续获取所述软件序列号的通知,以接收所述应用设备的确认信息。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
若所述应用设备为非虚拟机和/或在接收所述应用设备的确认信息后,所述授权设备确定所述第二时间戳与当前时间之间的时间差值;
将所述时间差值与预设差值阈值进行对比,以确定所述时间差值未超过所述预设差值阈值。
6.根据权利要求1所述的方法,其特征在于,所述根据预设公钥,对所第一设备标识与所述第一时间戳进行加密,生成机器码,具体包括:
所述应用设备根据预先设定的数据结构组合,将所述第一设备标识与所述第一时间戳进行组合,生成第一数据结构字符串;
将所述第一时间戳插入所述第一数据结构字符串中的预设位置,生成第二数据结构字符串;
根据预设公钥,对所述第二数据结构字符串进行加密,生成所述机器码。
7.根据权利要求1所述的方法,其特征在于,所述根据所述预设私钥,对所述第二设备标识、所述有效期时间戳以及所述软件功能模块信息进行加密,得到软件序列号,具体包括:
所述授权设备将所述第二设备标识进行Base64编码,得到所述第二设备标识的第一转码信息;
通过Go语言,随机生成通用唯一识别码,以及随机生成非对称加密的随机私钥与随机公钥;
对所述有效期时间戳进行四则混合运算,得到运算结果,将所述运算结果进行Base64编码,得到所述有效期时间戳的第二转码信息;
对所述软件功能模块进行可逆加密,生成所述软件功能模块的加密信息;
根据所述随机私钥,对所述第一转码信息、所述通用唯一识别码、所述第二转码信息以及所述软件功能模块的加密信息进行加密,得到加密字符串;
根据所述预设私钥,对所述加密字符串与所述随机公钥进行加密,得到软件序列号。
8.根据权利要求1所述的方法,其特征在于,所述以对所述软件进行首次激活之后,所述方法还包括:
所述应用设备将所述软件功能模块信息存储至数据库,将所述软件序列号存储至指定文件夹;
根据预设检验触发条件,触发所述软件序列号的检验请求;
从所述指定文件夹读取所述软件序列号,根据所述第一设备标识以及所述第一时间戳,对所述软件序列号进行检验;
若所述软件序列号校验通过,则获取所述软件的运行功能模块信息;
从所述数据库读取所述软件功能模块信息,将所述软件功能模块信息与所述运行功能模块信息进行对比;
若所述软件功能模块信息与所述运行功能模块信息一致,则确定所述软件为允许运行状态。
9.根据权利要求1所述的方法,其特征在于,所述以对所述软件进行首次激活之后,所述方法还包括:
所述授权设备获取更新的软件功能模块信息;
根据所述预设私钥,对所述第二设备标识、所述有效期时间戳以及所述更新的软件功能模块信息进行加密,得到更新的软件序列号,并将所述更新的软件序列号发送至所述应用设备;
所述应用设备接收软件的更新请求,根据所述第一设备标识以及所述第一时间戳,对所述更新的软件序列号进行检验;
在校验通过后,则确定所述更新的软件序列号为授权状态,根据所述更新的软件功能模块信息,对所述软件进行功能更新。
10.一种基于私有化部署的软件序列号授权系统,其特征在于,所述系统包括应用设备、授权设备;
所述应用设备用于接收软件的软件序列号获取请求;
获取预设唯一的第一设备标识以及设备当前的第一时间戳;其中,所述第一设备标识为所述应用设备的系统序列号;
根据预设公钥,对所第一设备标识与所述第一时间戳进行加密,生成机器码,并将所述机器码通过第三方传输介质发送至所述授权设备;
所述授权设备用于根据预设私钥,对所述机器码进行解密,得到第二设备标识与第二时间戳;所述预设公钥与所述预设私钥为通过非对称加密得到公私钥对;
根据预设有效期数值,确定所述第二时间戳对应的有效期时间戳;其中,所述有效期时间戳晚于所述第二时间戳;
确定所述第二设备标识所支持的软件功能模块信息;
根据所述预设私钥,对所述第二设备标识、所述有效期时间戳以及所述软件功能模块信息进行加密,得到软件序列号,并将所述软件序列号发送至所述应用设备;
所述应用设备还用于接收软件的首次激活请求,根据所述第一设备标识以及所述第一时间戳,对所述软件序列号进行检验;
在校验通过后,则确定所述软件序列号为授权状态,以对所述软件进行首次激活。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310126454.2A CN115859389B (zh) | 2023-02-17 | 2023-02-17 | 一种基于私有化部署的软件序列号授权方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310126454.2A CN115859389B (zh) | 2023-02-17 | 2023-02-17 | 一种基于私有化部署的软件序列号授权方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115859389A CN115859389A (zh) | 2023-03-28 |
CN115859389B true CN115859389B (zh) | 2023-04-28 |
Family
ID=85658272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310126454.2A Active CN115859389B (zh) | 2023-02-17 | 2023-02-17 | 一种基于私有化部署的软件序列号授权方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115859389B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314572A (zh) * | 2011-10-14 | 2012-01-11 | 迈普通信技术股份有限公司 | 应用软件的使用授权方法、注册信息文件生成方法及装置 |
CN110213248A (zh) * | 2019-05-20 | 2019-09-06 | 武汉市灯塔互动文化传播有限公司 | 一种离线环境下授权方法和装置 |
CN110348181A (zh) * | 2019-07-15 | 2019-10-18 | 广东名阳信息科技有限公司 | 一种校验软件使用权合法性的方法 |
CN110572396A (zh) * | 2019-09-10 | 2019-12-13 | 广州创维平面显示科技有限公司 | 一种功能使用授权的控制方法和系统 |
CN111881424A (zh) * | 2020-08-03 | 2020-11-03 | 上海英方软件股份有限公司 | 一种基于机器识别码的许可授权方法及装置 |
WO2021128244A1 (zh) * | 2019-12-27 | 2021-07-01 | 威创集团股份有限公司 | 一种注册授权方法及系统 |
CN113553629A (zh) * | 2021-09-18 | 2021-10-26 | 新大陆数字技术股份有限公司 | 一种硬件的授权方法及系统 |
CN115563588A (zh) * | 2022-10-26 | 2023-01-03 | 杭州微帧信息科技有限公司 | 一种软件离线鉴权的方法、装置、电子设备和存储介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE19950249C1 (de) * | 1999-10-18 | 2001-02-01 | Siemens Ag | Elektronisches Gerät mit Softwareschutz |
CN114626025A (zh) * | 2020-12-09 | 2022-06-14 | 台达电子工业股份有限公司 | 于离线环境下使用的软件授权验证方法 |
-
2023
- 2023-02-17 CN CN202310126454.2A patent/CN115859389B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102314572A (zh) * | 2011-10-14 | 2012-01-11 | 迈普通信技术股份有限公司 | 应用软件的使用授权方法、注册信息文件生成方法及装置 |
CN110213248A (zh) * | 2019-05-20 | 2019-09-06 | 武汉市灯塔互动文化传播有限公司 | 一种离线环境下授权方法和装置 |
CN110348181A (zh) * | 2019-07-15 | 2019-10-18 | 广东名阳信息科技有限公司 | 一种校验软件使用权合法性的方法 |
CN110572396A (zh) * | 2019-09-10 | 2019-12-13 | 广州创维平面显示科技有限公司 | 一种功能使用授权的控制方法和系统 |
WO2021128244A1 (zh) * | 2019-12-27 | 2021-07-01 | 威创集团股份有限公司 | 一种注册授权方法及系统 |
CN111881424A (zh) * | 2020-08-03 | 2020-11-03 | 上海英方软件股份有限公司 | 一种基于机器识别码的许可授权方法及装置 |
CN113553629A (zh) * | 2021-09-18 | 2021-10-26 | 新大陆数字技术股份有限公司 | 一种硬件的授权方法及系统 |
CN115563588A (zh) * | 2022-10-26 | 2023-01-03 | 杭州微帧信息科技有限公司 | 一种软件离线鉴权的方法、装置、电子设备和存储介质 |
Non-Patent Citations (2)
Title |
---|
Rizwana Shaher Bano 等.COTS based multichannel FM receiver and recorder using SDR concept.《2013 IEEE 20th International Conference on Electronics, Circuits, and Systems (ICECS)》.2014,第213-216页. * |
周敏 等.基于机器特征码和时间戳的软件注册机制的设计与实现.《 科学技术创新》.2020,(第19期),第65-66页. * |
Also Published As
Publication number | Publication date |
---|---|
CN115859389A (zh) | 2023-03-28 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103067401B (zh) | 密钥保护方法和系统 | |
CN110162936A (zh) | 一种软件内容的使用授权方法 | |
CN107508791B (zh) | 一种基于分散密钥加密的终端身份验证方法及系统 | |
CN1937498A (zh) | 一种动态密码认证方法、系统及装置 | |
CN111884811B (zh) | 一种基于区块链的数据存证方法和数据存证平台 | |
CN112291201B (zh) | 业务请求的传输方法及装置、电子设备 | |
CN111222160B (zh) | 一种智能合约执行方法及系统 | |
CN110401613B (zh) | 一种认证管理方法和相关设备 | |
CN112699353B (zh) | 一种金融信息传输方法以及金融信息传输系统 | |
CN112257093B (zh) | 数据对象的鉴权方法、终端及存储介质 | |
CN111130798A (zh) | 一种请求鉴权方法及相关设备 | |
CN112165382A (zh) | 软件授权方法、装置、授权服务端及终端设备 | |
CN112765626A (zh) | 基于托管密钥授权签名方法、装置、系统及存储介质 | |
CN112653556A (zh) | 一种基于token的微服务安全认证方法、装置、存储介质 | |
CN112865965B (zh) | 一种基于量子密钥的列车业务数据处理方法及系统 | |
CN115859389B (zh) | 一种基于私有化部署的软件序列号授权方法及系统 | |
CN111523128B (zh) | 信息保护方法、系统、电子设备及介质 | |
CN115225286A (zh) | 应用访问鉴权方法及装置 | |
CN112084485B (zh) | 数据获取方法、装置、设备以及计算机存储介质 | |
CN114598478B (zh) | 数据加密的方法、装置、电子设备和存储介质 | |
CN110972141B (zh) | 信息验证方法、装置、电子设备及可读存储介质 | |
CN114500032B (zh) | 一种路由器调试模式的开启方法 | |
CN113672898B (zh) | 服务授权方法、授权设备、系统、电子设备及存储介质 | |
CN112737790B (zh) | 数据传输方法、装置及服务器、客户终端 | |
CN109951319B (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 |