首页> 中国专利> 一种针对离线容器环境软件合法性的校验方法及系统

一种针对离线容器环境软件合法性的校验方法及系统

摘要

本发明涉及一种针对离线容器环境软件合法性的校验方法及系统,包括将生成的license文件导入应用进行校验,判断license是否被篡改;根据签名、公钥以及日期信息生成HASH值,组成HASH链表;认证服务开启定时任务,间隔一定时间段与宿主机微服务进行通信,获取宿主机时间并与链表进行比对,判断系统时间是否被更改以及宿主机mac地址是否变更;宿主机微服务定时获取宿主机mac地址或者hostid信息、日期以及公钥,生成校验指纹值分布存储在磁盘扇区中。本发明解决了离线容器环境下的license校验问题,由于license文件跟宿主机硬件信息、企业信息做了绑定,避免了同一license多处使用的问题。

著录项

  • 公开/公告号CN116225923A

    专利类型发明专利

  • 公开/公告日2023-06-06

    原文格式PDF

  • 申请/专利权人 软安科技有限公司;

    申请/专利号CN202310130725.1

  • 发明设计人 朱辉;蒋刚;

    申请日2023-02-17

  • 分类号G06F11/36(2006.01);G06F21/60(2013.01);G06F21/64(2013.01);G06F21/31(2013.01);

  • 代理机构成都言成诺知识产权代理事务所(特殊普通合伙) 51314;

  • 代理人张川

  • 地址 610000 四川省成都市高新区交子大道233号19层1904

  • 入库时间 2023-06-23 06:30:03

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2023-06-23

    实质审查的生效 IPC(主分类):G06F11/36 专利申请号:2023101307251 申请日:20230217

    实质审查的生效

说明书

技术领域

本发明涉及数据安全技术领域,尤其涉及一种针对离线容器环境软件合法性的校验方法及系统。

背景技术

现有验证软件合法性方式基本都是基于公网通信实现合法性的校验和授权,但是很多情况下基于保密需求或者网络环境隔离等情况,软件不允许外部网络的访问,此时,在这种情况下只能采用离线方式实现合法性的校验和授权;而随着容器化技术成熟,对离线容器环境应用合法性校验和授权提出了新的挑战,容器部署具有更容易移植、复制、复用和重启等特点。

传统的离线软件合法性校验方式是将离线软件部署完成后,导入license验证license的签名以及日期,实现license的校验和授权;但是传统的技术在离线的容器环境中,用户可以很轻易的做到操作系统时间更改以及操作系统的重装,特别随着虚拟机技术的发展,越来越多的用户使用容器作为软件的部署运行环境,容器技术可以轻松做到可复制,重启,系统时间修改从而导致license存在被复用的风险。

需要说明的是,在上述背景技术部分公开的信息只用于加强对本公开的背景的理解,因此可以包括不构成对本领域普通技术人员已知的现有技术的信息。

发明内容

本发明的目的在于克服现有技术的缺点,提供了一种针对离线容器环境软件合法性的校验方法及系统,解决了传统的离线软件合法性校验方式存在的不足。

本发明的目的通过以下技术方案来实现:一种针对离线容器环境软件合法性的校验方法,所述校验方法包括:

S1、license申请步骤;客户提交包括客户企业信息、使用用户数、开始和结束有效期以及客户机器环境的信息申请license;

S2、license生成步骤:根据客户录入信息整理排序并根据公钥生成数字签名,将录入信息以及公钥组装成xml格式导出为license文件提供给客户;

S3、将生成的license文件导入应用进行校验,并判断license是否被篡改;

S4、校验通过后激活系统,并根据签名、公钥以及日期信息生成HASH值,组成一个HASH链表;

S5、认证服务开启定时任务,间隔一定时间段与宿主机微服务进行通信,获取宿主机时间并与HASH链表进行比对,判断系统时间是否被更改以及宿主机mac地址是否变更;

S6、宿主机微服务定时获取宿主机mac地址或者hostid信息、日期以及公钥,并利用单向散列函数生成校验指纹值分布存储在磁盘扇区中,实现应用与机器的绑定以及避免机器时间的修改。

所述license生成步骤具体包括:使用非对称加密算法生成公钥和私钥,对步骤S1中的数据按照规则进行编排,根据生成的公钥通过单向散列函数生成签名信息,并将签名信息写入xml文件中导出给客户。

所述将生成的license文件导入应用进行校验,并判断license是否被篡改具体包括:

S31、将生成的公钥的镜像提供给客户,并根据镜像客户容器环境部署应用软件和应用宿主机客户端需要保证容器中能够获取宿主机的机器信息;

S32、将生成的license文件通过应用界面上传到应用中,开启校验,校验规则根据上传的license文件获取license数据,将获取到的数据按规则进行编排,然后通过单向散列函数以及公钥信息生成HASH序列并与签名比对,从而校验license文件的合法性以及判断license是否被篡改。

所述步骤S32具体包括以下内容:

用户导入获取的license文件,将文件导入安装的应用,应用中的license校验程序解析导入的license文件并获取license信息;

根据license信息编排排序以及镜像下载时灌入的公钥+盐值信息再次校验签名信息是否匹配,不匹配则license异常,如果签名信息校验成功,则继续校验license签名以及客户主机信息,校验匹配成功后,根据日期+按规则生成的字符串+机器信息+哈希摘要算法生成指纹HASH存入数据库;

同时启动认证服务的校验任务定时获取宿主机信息并做校验。

所述步骤S5具体包括以下内容:

S51、将获取的宿主机时间与HASH链表中的日期进行比较,如果获取的宿主机时间大于HASH链表中的最大日期,则将最新时间记入到HASH链表中,并根据HASH链表最近三次HASH值+再次HASH生成校验值1;

S52、根据生成的校验值1,在进行下一次定时任务时,获取HASH链表最近三条HASH生成校验值2,并对两个校验值进行比较,以避免数据库层面的数据被篡改。

一种针对离线容器环境软件合法性的校验系统,它包括license申请模块、license生成模块、license管理模块、认证服务模块和宿主机微服务模块;

所述license申请模块:用于根据客户提交的包括客户企业信息、使用用户数、开始和结束有效期以及客户机器环境的信息申请license;

所述license生成步骤:用于根据客户录入信息整理排序并根据公钥生成数字签名,将录入信息以及公钥组装成xml格式导出为license文件提供给客户;

所述license管理模块:用于将生成的license文件导入应用进行校验,并判断license是否被篡改,并在校验通过后激活系统,然后根据签名、公钥以及日期信息生成HASH值,组成一个HASH链表;

所述认证服务模块:用于开启定时任务,间隔一定时间段与宿主机微服务进行通信,获取宿主机时间并与HASH链表进行比对,判断系统时间是否被更改以及宿主机mac地址是否变更;

所述宿主机微服务模块:用于定时获取宿主机mac地址或者hostid信息、日期以及公钥,并利用单向散列函数生成校验指纹值分布存储在磁盘扇区中,实现应用与机器的绑定以及避免机器时间的修改。

所述license管理模块中将生成的license文件导入应用进行校验,并判断license是否被篡改的具体实现流程如下:

将生成的公钥的镜像提供给客户,并根据镜像客户容器环境部署应用软件和应用宿主机客户端需要保证容器中能够获取宿主机的机器信息;

将生成的license文件通过应用界面上传到应用中,开启校验,校验规则根据上传的license文件获取license数据,将获取到的数据按规则进行编排,然后通过单向散列函数以及公钥信息生成HASH序列并与签名比对,从而校验license文件的合法性以及判断license是否被篡改。

所述将生成的license文件通过应用界面上传到应用中,开启校验,校验规则根据上传的license文件获取license数据,将获取到的数据按规则进行编排,然后通过单向散列函数以及公钥信息生成HASH序列并与签名比对,从而校验license文件的合法性以及判断license是否被篡改具体包括以下内容:

用户导入获取的license文件,将文件导入安装的应用,应用中的license校验程序解析导入的license文件并获取license信息;

根据license信息编排排序以及镜像下载时灌入的公钥+盐值信息再次校验签名信息是否匹配,不匹配则license异常,如果签名信息校验成功,则继续校验license签名以及客户主机信息,校验匹配成功后,根据日期+按规则生成的字符串+机器信息+哈希摘要算法生成指纹HASH存入数据库;

同时启动认证服务的校验任务定时获取宿主机信息并做校验。

所述认证服务具体包括以下内容:

将获取的宿主机时间与HASH链表中的日期进行比较,如果获取的宿主机时间大于HASH链表中的最大日期,则将最新时间记入到HASH链表中,并根据HASH链表最近三次HASH值+再次HASH生成校验值1;

根据生成的校验值1,在进行下一次定时任务时,获取HASH链表最近三条HASH生成校验值2,并对两个校验值进行比较,以避免数据库层面的数据被篡改。

本发明具有以下优点:一种针对离线容器环境软件合法性的校验方法及系统,解决了离线容器环境下的license校验问题,由于license文件跟宿主机硬件信息、企业信息做了绑定,避免了同一license多处使用的问题,由于存储了license基于日期的链式指纹信息,防止了客户通过调整系统时间方式,造成license超过实际有效期还能使用的问题,以及容器环境应用重启以及较长不使用重新恢复使用的问题。

附图说明

图1为本发明方法的流程示意图;

图2为本发明license申请生成的流程示意图;

图3为本发明数据流的指向示意图。

具体实施方式

为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下结合附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的保护范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。下面结合附图对本发明做进一步的描述。

本发明目的是提供一种离线环境场景下软件license的合法性校验方法及系统,该校验方法可以校验授权license的合法性以及防止license因容器复制、重启、机器时间篡改导致被非法复用问题。

如图1所示,本发明其中一种实施方式涉及一种针对离线容器环境软件合法性的校验方法,所述校验方法包括:

S1、license申请步骤;客户提交包括客户企业信息、使用用户数、开始和结束有效期以及客户机器环境的信息申请license;

S2、license生成步骤:根据客户录入信息整理排序并根据公钥生成数字签名,将录入信息以及公钥组装成xml格式导出为license文件提供给客户;

进一步地,使用非对称加密算法生成公钥和私钥,对步骤S1中的数据按照规则进行编排,根据生成的公钥通过单向散列函数生成签名信息,并将签名信息写入xml文件中导出给客户;其中,其中单向散列函数,有一个输入和一个输出,其中输入称为消息(message),输出称为散列值(hash value)。单向散列函数可以根据消息的内容计算出散列值,而散列值就可以被用来检查消息的完整性。简单说就是把任意长度的内容转换成固定长度的输出串,且通过输出串难以还原原始内容,常用的单项散列函数有MD4、MD5、SHA1、SHA-224、SHA-256、SHA-384、SHA-512,计算公式为signature=h(m)d mod n,其中h是单向散列函数,m是message,signature就是签名信息。

进一步地,如图2所示,包括制作license、计算HASH值生成SIGN、生成license和分发license,其中,制作的license包括开始日期/有效期截止日期、服务器hostid、用户数、版本信息等等;License生成软件中,录入客户提供的环境安装信息以及授权客户使用期限,授权使用版本号信息,并采用关系数据库存储,同时使用非对称加密算法生成公钥与私钥,并打包成应用安装镜像供客户下载;

根据客户录入信息整理排序并根据公钥生成数字签名,将录入信息以及公钥组装成xml格式导出为license文件提供给客户。

S3、将生成的license文件导入应用进行校验,并判断license是否被篡改;具体包括以下内容:

将生成的公钥的镜像提供给客户,并根据镜像客户容器环境部署应用软件和应用宿主机客户端需要保证容器中能够获取宿主机的机器信息;

将生成的license文件通过应用界面上传到应用中,开启校验,校验规则根据上传的license文件获取license数据,将获取到的数据按规则进行编排,然后通过单向散列函数以及公钥信息生成HASH序列并与签名比对,从而校验license文件的合法性以及判断license是否被篡改。

进一步地,用户导入获取的license文件,将文件导入安装的应用,应用中的license校验程序解析导入的license文件并获取license信息;根据license信息编排排序以及镜像下载时灌入的公钥+盐值信息再次校验签名信息是否匹配,不匹配则license异常,如果签名信息校验成功,则继续校验license签名以及客户主机信息,校验匹配成功后,根据日期+按规则生成的字符串+机器信息+哈希摘要算法生成指纹HASH存入数据库;采用这种方式的指纹hash具有算法简单不可逆向还原的特点有较好的安全特性如果用户删除部分历史数据对校验不会造成影响,如果删除最近用到的数据或者篡改指纹hash值则会导致校验不成功而license失效。同时启动认证服务的校验任务定时获取宿主机信息并做校验;同时启动认证服务的校验任务定时获取宿主机信息并做校验。

S4、校验通过后激活系统,并根据签名、公钥以及日期信息生成HASH值,组成一个HASH链表;

S5、认证服务开启定时任务,间隔一定时间段与宿主机微服务进行通信,获取宿主机时间并与HASH链表进行比对,判断系统时间是否被更改以及宿主机mac地址是否变更;

S51、将获取的宿主机时间与HASH链表中的日期进行比较,如果获取的宿主机时间大于HASH链表中的最大日期,则将最新时间记入到HASH链表中,并根据HASH链表最近三次HASH值+再次HASH生成校验值1;

S52、根据生成的校验值1,在进行下一次定时任务时,获取HASH链表最近三条HASH生成校验值2,并对两个校验值进行比较,以避免数据库层面的数据被篡改。

如图3所示,认证服务的校验任务首先做自校验然后与宿主机客户端作信息交换,具体包括以下内容:

图中采取的方式取首先校验最近三条数据生成校验值,实际使用中可以按不同策略组合数据生成校验值。校验值生成本身与时间以及机器信息相关如果其中一处变化就导致校验值异常从而避免信息被篡改。校验值生成示例比如:数据存储中获取最近三条数据20220102Hash指纹BBB123B89C 20220109Hash指纹CCC123B89C 20220110Hash指纹DDD123B89C,校验值=((BBB123B89C+CCC123B89C+DDD123B89C)*盐=》计算结果:YYYY123d获取到校验值与上一次的校验值作匹配,匹配上则正确否则存储数据被篡改。

进一步,校验成功后,宿主机客户端交换信息,定时任务周期时长可以设置为分钟级别的,比如5分钟10分钟等,当超过两个时长周期还未搜到通信,则可认为校验异常,整体应用应为不可使用状态,同时定时校验任务保存最后一次与宿主机交换的信息。待宿主机客户端与定时任务恢复通信后再次校验交换通过则恢复应用为可使用状态。交换信息成功后,校验交换时间,当交换时间与上一次比对长超过一个任务周期时长则为校验正常,校验通过后再次日期+按规则生成的字符串+机器信息+哈希摘要算法生成指纹hash存入数据库。

其中,校验程序与宿主机客户端服务交换信息通过密文传输:由于需要交互信息,涉及到信息的加密与解密这里采用对称加密算法,数据发信方将日期+主机信息+校验状态(原始数据)和加密密钥(公钥)一起经过特殊加密算法处理后,使其变成复杂的加密密文发送出去。收信方收到密文后,使用加密用过的密钥及相同算法的逆算法对密文进行解密,成对应日期hostId以及校验状态。

S6、宿主机微服务定时获取宿主机mac地址或者hostid信息、日期以及公钥,并利用单向散列函数生成校验指纹值分布存储在磁盘扇区中,实现应用与机器的绑定以及避免机器时间的修改。

进一步地,宿主机客户端程序定时采集宿主机信息,主要是日期与主机hostId信息,每次采集的信息日期与上一次采集的日期信息做比对,新的日期不能比上一次采集日期小,且要至少大于一个采集周期比如上次采集时间2022\12\28\12\00\00,采集周期为1小时则下次采集时间需要等于或大于2022\12\28\13\00\00,日期和宿主机信息校验成功后需要根据盐信息以及按规则生成的字符串根据Hash摘要算法生成一串字符作为指纹信息,该指纹信息存放到宿主机磁盘上,为了避免被刻意删除,可放多份文件存储。

本发明的另一种实施方式具体涉及一种针对离线容器环境软件合法性的校验系统,它包括license申请模块、license生成模块、license管理模块、认证服务模块和宿主机微服务模块;

所述license申请模块:用于根据客户提交的包括客户企业信息、使用用户数、开始和结束有效期以及客户机器环境的信息申请license;

所述license生成步骤:用于根据客户录入信息整理排序并根据公钥生成数字签名,将录入信息以及公钥组装成xml格式导出为license文件提供给客户;

所述license管理模块:用于将生成的license文件导入应用进行校验,并判断license是否被篡改,并在校验通过后激活系统,然后根据签名、公钥以及日期信息生成HASH值,组成一个HASH链表;

所述认证服务模块:用于开启定时任务,间隔一定时间段与宿主机微服务进行通信,获取宿主机时间并与HASH链表进行比对,判断系统时间是否被更改以及宿主机mac地址是否变更;

所述宿主机微服务模块:用于定时获取宿主机mac地址或者hostid信息、日期以及公钥,并利用单向散列函数生成校验指纹值分布存储在磁盘扇区中,实现应用与机器的绑定以及避免机器时间的修改。

所述license管理模块中将生成的license文件导入应用进行校验,并判断license是否被篡改的具体实现流程如下:

将生成的公钥的镜像提供给客户,并根据镜像客户容器环境部署应用软件和应用宿主机客户端需要保证容器中能够获取宿主机的机器信息;

将生成的license文件通过应用界面上传到应用中,开启校验,校验规则根据上传的license文件获取license数据,将获取到的数据按规则进行编排,然后通过单向散列函数以及公钥信息生成HASH序列并与签名比对,从而校验license文件的合法性以及判断license是否被篡改。

所述将生成的license文件通过应用界面上传到应用中,开启校验,校验规则根据上传的license文件获取license数据,将获取到的数据按规则进行编排,然后通过单向散列函数以及公钥信息生成HASH序列并与签名比对,从而校验license文件的合法性以及判断license是否被篡改具体包括以下内容:

用户导入获取的license文件,将文件导入安装的应用,应用中的license校验程序解析导入的license文件并获取license信息;

根据license信息编排排序以及镜像下载时灌入的公钥+盐值信息再次校验签名信息是否匹配,不匹配则license异常,如果签名信息校验成功,则继续校验license签名以及客户主机信息,校验匹配成功后,根据日期+按规则生成的字符串+机器信息+哈希摘要算法生成指纹HASH存入数据库;

同时启动认证服务的校验任务定时获取宿主机信息并做校验。

所述认证服务具体包括以下内容:

将获取的宿主机时间与HASH链表中的日期进行比较,如果获取的宿主机时间大于HASH链表中的最大日期,则将最新时间记入到HASH链表中,并根据HASH链表最近三次HASH值+再次HASH生成校验值1;

根据生成的校验值1,在进行下一次定时任务时,获取HASH链表最近三条HASH生成校验值2,并对两个校验值进行比较,以避免数据库层面的数据被篡改。

以上所述仅是本发明的优选实施方式,应当理解本发明并非局限于本文所披露的形式,不应看作是对其他实施例的排除,而可用于各种其他组合、修改和环境,并能够在本文所述构想范围内,通过上述教导或相关领域的技术或知识进行改动。而本领域人员所进行的改动和变化不脱离本发明的精神和范围,则都应在本发明所附权利要求的保护范围内。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号