CN115391753A - 一种兼容不同部署环境的软件授权方法和系统 - Google Patents

一种兼容不同部署环境的软件授权方法和系统 Download PDF

Info

Publication number
CN115391753A
CN115391753A CN202211108631.6A CN202211108631A CN115391753A CN 115391753 A CN115391753 A CN 115391753A CN 202211108631 A CN202211108631 A CN 202211108631A CN 115391753 A CN115391753 A CN 115391753A
Authority
CN
China
Prior art keywords
deployment
digital certificate
service
environment
host
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.)
Pending
Application number
CN202211108631.6A
Other languages
English (en)
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.)
China Telecom Digital Intelligence Technology Co Ltd
Original Assignee
China Telecom Digital Intelligence 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 China Telecom Digital Intelligence Technology Co Ltd filed Critical China Telecom Digital Intelligence Technology Co Ltd
Priority to CN202211108631.6A priority Critical patent/CN115391753A/zh
Publication of CN115391753A publication Critical patent/CN115391753A/zh
Pending legal-status Critical Current

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/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
    • G06F21/53Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Stored Programmes (AREA)

Abstract

本发明涉及一种兼容不同部署环境的软件授权方法和系统,属于软件授权技术领域。方法包括:根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;针对不同的部署环境进行服务的部署,所述部署环境包括虚拟机或云主机、容器环境、容器云平台环境;在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证。本方法只需为一个部署环境生成授权证书,即可实现系统中所有微服务都能验证软件的许可,实现了统一的软件授权验证和软件授权对多种部署环境的兼容。

Description

一种兼容不同部署环境的软件授权方法和系统
技术领域
本发明属于软件授权技术领域,尤其涉及一种兼容不同部署环境的软件授权方法和系统。
背景技术
当前软件系统的部署运行环境日趋多样化、集群化,从比较传统的虚拟机(包括本地机房的虚拟机以及云端平台的云主机等等),到运行于虚拟机上的docker容器环境,再到基于kubernetes平台的容器云平台环境。软件系统也由最早的单体服务演变为诸多微服务组成的复杂系统,一般都需要部署运行于多台虚拟机组成的集群中。
传统的基于单台虚拟机进行软件授权的方式在这种背景下显得不够灵活通用且无法匹配多种环境的授权需求。尤其是在基于kubernetes平台的容器云平台环境中,服务会经常调度到不同的主机节点或者创建多个实例进行扩容,这种场景是传统的单台软件授权机制无法满足的。
现有的软件授权方式,一般是针对单一主机的特征信息生成数字证书,这种方式不适应于当前的微服务集群式部署的模式,很多软件系统部署于几十台虚拟机集群上,而且各个微服务也会随着业务的调整调度到不同的主机节点,因此不存在单一主机和某个具体服务的绑定关系,无法使用传统模式生成数字证书。
同时,很多软件系统支持多种环境的部署,即虚拟机、容器环境以及容器云平台环境,传统的授权模式无法支持或者兼容这些部署环境,如果为每一种环境单独生成证书以及开发不同的验证模块,又丧失了通用性。实际上,用户可能根据自身需求,在同一个主机集群中,轮换使用或者同时采用多种部署环境模式,因此需要一个通用的授权证书和验证模式。
发明内容
本发明的主要目的在于克服现有技术的缺点与不足,提供一种兼容不同部署环境的软件授权方法和系统,通过调整不同环境部署脚本/机制,利用环境变量获取主机特征信息,然后和证书信息比对,进行软件授权验证,只需为一个部署环境生成授权证书,即可实现系统中所有微服务都能验证软件的许可,实现了统一的软件授权验证和软件授权对多种部署环境的兼容。
根据本发明的一个方面,本发明提供了一种兼容不同部署环境的软件授权方法,所述方法包括:
S1:根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;
S2:针对不同的部署环境进行服务的部署,所述部署环境包括虚拟机或云主机、容器环境、容器云平台环境;
S3:在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证。
优选地,所述根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑包括:
使用非对称加密算法生成密钥对并保存在私钥库文件中,使用私钥对包含授权信息的内容进行数字签名并生成数字证书,将公钥和生成的所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;其中,所述含授权信息包括软件许可的有效期,虚拟机和/或容器主机和/或容器云平台节点的IP地址列表和MAC地址列表。
优选地,所述针对不同的部署环境进行服务的部署包括:
若部署环境为虚拟机或云主机,则通过命令行或脚本启动;
若部署环境为容器环境,则在启动脚本中添加环境变量DOCKER_NODE_IP和DOCKER_NODE_MAC,分别代表宿主机的IP地址和MAC地址,使用脚本或部署工具启动docker镜像运行服务;
若部署环境为容器云平台环境,则在部署脚本中添加环境变量K8S_NODE_IP和K8S_NODE_MAC,分别代表k8s主机节点的IP地址和MAC地址,使用部署工具或部署平台进行服务的创建和调度。
优选地,所述在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证包括:
在服务启动时,执行添加的所述代码逻辑,加载数字证书并用公钥进行验证,获取软件授权信息,依据环境变量判断所属环境并获取宿主机的IP地址和MAC地址,将所述IP地址和MAC地址与所述软件授权信息中的内容进行比对,比对通过后,允许服务启动,否则终止服务启动。
优选地,所述方法还包括:
在服务启动之后,对于每一个用户请求,都进行拦截并校验当前证书是否还在有效期内,如果证书过期,则终止当前请求并返回错误提示信息。
根据本发明的另一个方面,本发明还提供了一种兼容不同部署环境的软件授权系统,所述系统包括:
生成模块,用于根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;
部署模块,用于针对不同的部署环境进行服务的部署,所述部署环境包括虚拟机或云主机、容器环境、容器云平台环境;
验证模块,用于在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证。
优选地,所述生成模块根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑包括:
使用非对称加密算法生成密钥对并保存在私钥库文件中,使用私钥对包含授权信息的内容进行数字签名并生成数字证书,将公钥和生成的所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;其中,所述含授权信息包括软件许可的有效期,虚拟机和/或容器主机和/或容器云平台节点的IP地址列表和MAC地址列表。
优选地,所述部署模块针对不同的部署环境进行服务的部署包括:
若部署环境为虚拟机或云主机,则通过命令行或脚本启动;
若部署环境为容器环境,则在启动脚本中添加环境变量DOCKER_NODE_IP和DOCKER_NODE_MAC,分别代表宿主机的IP地址和MAC地址,使用脚本或部署工具启动docker镜像运行服务;
若部署环境为容器云平台环境,则在部署脚本中添加环境变量K8S_NODE_IP和K8S_NODE_MAC,分别代表k8s主机节点的IP地址和MAC地址,使用部署工具或部署平台进行服务的创建和调度。
优选地,所述验证模块在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证包括:
在服务启动时,执行添加的所述代码逻辑,加载数字证书并用公钥进行验证,获取软件授权信息,依据环境变量判断所属环境并获取宿主机的IP地址和MAC地址,将所述IP地址和MAC地址与所述软件授权信息中的内容进行比对,比对通过后,允许服务启动,否则终止服务启动。
优选地,所述验证模块还用于:
在服务启动之后,对于每一个用户请求,都进行拦截并校验当前证书是否还在有效期内,如果证书过期,则终止当前请求并返回错误提示信息。
有益效果:本发明通过调整不同环境部署脚本/机制,利用环境变量获取主机特征信息,然后和证书信息比对,进行软件授权验证,只需为一个部署环境生成授权证书,即可实现系统中所有微服务都能验证软件的许可,实现了统一的软件授权验证和软件授权对多种部署环境的兼容。
通过参照以下附图及对本发明的具体实施方式的详细描述,本发明的特征及优点将会变得清楚。
附图说明
图1是兼容不同部署环境的软件授权方法流程图;
图2是兼容不同部署环境的软件授权系统示意图。
具体实施方式
下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例1
图1是兼容不同部署环境的软件授权方法流程图。如图1所示,本发明提供了一种兼容不同部署环境的软件授权方法,所述方法包括:
S1:根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;
S2:针对不同的部署环境进行服务的部署,所述部署环境包括虚拟机或云主机、容器环境、容器云平台环境;
S3:在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证。
本实施例通过调整不同环境部署脚本/机制,利用环境变量获取主机特征信息,然后和证书信息比对,进行软件授权验证,只需为一个部署环境生成授权证书,即可实现系统中所有微服务都能验证软件的许可,实现了统一的软件授权验证和软件授权对多种部署环境的兼容。
优选地,所述根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑包括:
使用非对称加密算法生成密钥对并保存在私钥库文件中,使用私钥对包含授权信息的内容进行数字签名并生成数字证书,将公钥和生成的所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;其中,所述含授权信息包括软件许可的有效期,虚拟机和/或容器主机和/或容器云平台节点的IP地址列表和MAC地址列表。
具体地,本步骤包括:
1、密钥对生成
首先使用keytool工具利用非对称加密算法生成密钥对并保存在私钥库文件privateKeys.keystore中,然后把私匙库内的证书导出到一个文件certfile.cer当中,最后把这个证书文件导入到公匙库文件publicCerts.store中。
2、数字证书生成
授权方保留私钥,使用私钥对包含授权信息(包括软件许可的有效期,虚拟机/容器主机/容器云平台节点的IP地址列表和MAC地址列表)的license内容进行数字签名并生成数字证书license.lic。这里可以使用truelicense之类的开源依赖包实现证书的生成。
3、数字证书引入
将公钥库文件publicCerts.store和生成的数字证书license.lic打包到软件系统的各个微服务中(例如:springboot服务demo-server.war),并添加相应的代码逻辑,在服务启动的时候加载数字证书并使用公钥验证证书的有效性。
优选地,所述针对不同的部署环境进行服务的部署包括:
若部署环境为虚拟机或云主机,则通过命令行或脚本启动;
若部署环境为容器环境,则在启动脚本中添加环境变量DOCKER_NODE_IP和DOCKER_NODE_MAC,分别代表宿主机的IP地址和MAC地址,使用脚本或部署工具启动docker镜像运行服务;
若部署环境为容器云平台环境,则在部署脚本中添加环境变量K8S_NODE_IP和K8S_NODE_MAC,分别代表k8s主机节点的IP地址和MAC地址,使用部署工具或部署平台进行服务的创建和调度。
具体地,本步骤针对不同的部署环境,使用不用的方式和机制进行服务的部署,包括:
A、部署环境为虚拟机或云主机:服务直接运行在虚拟机上,一般通过命令行或脚本启动,这种部署方式不需调整。
B、部署环境为容器环境:服务构建为docker镜像并在宿主机上安装docker环境,一般使用脚本或部署工具启动docker镜像运行服务,这种部署方式需要在启动脚本中添加环境变量DOCKER_NODE_IP和DOCKER_NODE_MAC,分别代表宿主机的IP地址和MAC地址,具体的值在启动时动态获取。以centos7.6主机为例,这里可以在启动脚本中先通过命令获取到宿主机的IP地址和MAC地址,然后通过-e选项指定容器环境变量并赋值。例如:docker run–e DOCKER_NODE_IP=$(ip r|awk'/default/{print$3}')-e DOCKER_NODE_MAC=$(iplink show eth0|awk'/ether/{print$2}')。
通常,一般软件产品会封装并提供自己的部署工具,提升用户易用性的同时会屏蔽授权验证细节,有利于授权机制的保密性和可靠性,因此建议采用此种模式。
C、部署环境为容器云平台环境:服务构建为docker镜像并在虚拟机集群上搭建基于kubernetes平台的容器云平台环境,一般使用部署工具或部署平台进行服务的创建和调度,这种部署方式需要在部署脚本中添加环境变量K8S_NODE_IP和K8S_NODE_MAC,分别代表k8s主机节点的IP地址和MAC地址,具体的值在启动时动态获取。以centos7.6主机为例,使用helm工具部署k8s服务,在helm脚本中修改对应的yaml文件,通过pod的状态数据字段动态获取宿主机IP并添加环境变量K8S_NODE_IP,例如:
containers:
-name:demo-server
image:demo-server:1.0
env:
-name:K8S_NODE_IP
valueFrom:
fieldRef:
apiVersion:v1
fieldPath:status.hostIP
同时判断网卡地址所在文件位置并使用只读的hostPath方式挂载到Pod中,例如:
containers:
-name:demo-server
image:demo-server:1.0
volumeMounts:
-name:k8s-node-mac
mountPath:/root/k8s-node-mac
readOnly:true
volumes:
-name:k8s-node-mac
hostPath:
type:File
path:/sys/class/net/eth0/address
另外在构建镜像的Dockerfile里面的entrypoint指定的启动脚本中读取挂载的文件内容并赋值给环境变量K8S_NODE_MAC,例如:
export K8S_NODE_MAC=`cat/root/k8s-node-mac`
优选地,所述在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证包括:
在服务启动时,执行添加的所述代码逻辑,加载数字证书并用公钥进行验证,获取软件授权信息,依据环境变量判断所属环境并获取宿主机的IP地址和MAC地址,将所述IP地址和MAC地址与所述软件授权信息中的内容进行比对,比对通过后,允许服务启动,否则终止服务启动。
具体地,在服务启动时,执行添加的代码逻辑,加载数字证书并用公钥验证,获取软件的授权信息(包括软件许可的有效期,虚拟机/容器主机/容器云平台节点的IP地址列表和MAC地址列表)。然后依据环境变量判断所属环境并获取宿主机的IP地址和MAC地址,和软件授权信息中的进行比对,包括判断当前时间是否在许可有效期内。全部符合要求之后,允许服务启动。否则终止服务启动。
在比对宿主机信息和数字证书信息时,根据环境变量依次判断,优先使用K8S_NODE_IP和K8S_NODE_MAC对比,不存在则使用DOCKER_NODE_IP和K8S_DOCKER_MAC进行对比,也不存在则说明当前是单纯的虚拟机环境,使用代码逻辑通过调用系统命令获取主机的IP地址和MAC地址进行对比。
优选地,所述方法还包括:
在服务启动之后,对于每一个用户请求,都进行拦截并校验当前证书是否还在有效期内,如果证书过期,则终止当前请求并返回错误提示信息。
具体地,在服务启动之后,对于每一个用户请求(接口调用),都进行拦截并校验当前证书是否还在有效期内,如果过期则终止当前请求并返回错误提示信息。
本实施例针对一个用户部署环境的主机集群进行数字证书的生成,只要服务部署于主机集群中,就能正常验证和使用。本实施例通过调整不同环境部署脚本/机制,利用环境变量的方式实现主机特征信息的获取,然后和证书信息比对,实现统一的授权验证逻辑。
实施例2
图2是兼容不同部署环境的软件授权系统示意图。如图2所示,本发明还提供了一种兼容不同部署环境的软件授权系统,所述系统包括:
生成模块201,用于根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;
部署模块202,用于针对不同的部署环境进行服务的部署,所述部署环境包括虚拟机或云主机、容器环境、容器云平台环境;
验证模块203,用于在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证。
优选地,所述生成模块201根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑包括:
使用非对称加密算法生成密钥对并保存在私钥库文件中,使用私钥对包含授权信息的内容进行数字签名并生成数字证书,将公钥和生成的所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;其中,所述含授权信息包括软件许可的有效期,虚拟机和/或容器主机和/或容器云平台节点的IP地址列表和MAC地址列表。
优选地,所述部署模块202针对不同的部署环境进行服务的部署包括:
若部署环境为虚拟机或云主机,则通过命令行或脚本启动;
若部署环境为容器环境,则在启动脚本中添加环境变量DOCKER_NODE_IP和DOCKER_NODE_MAC,分别代表宿主机的IP地址和MAC地址,使用脚本或部署工具启动docker镜像运行服务;
若部署环境为容器云平台环境,则在部署脚本中添加环境变量K8S_NODE_IP和K8S_NODE_MAC,分别代表k8s主机节点的IP地址和MAC地址,使用部署工具或部署平台进行服务的创建和调度。
优选地,所述验证模203块在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证包括:
在服务启动时,执行添加的所述代码逻辑,加载数字证书并用公钥进行验证,获取软件授权信息,依据环境变量判断所属环境并获取宿主机的IP地址和MAC地址,将所述IP地址和MAC地址与所述软件授权信息中的内容进行比对,比对通过后,允许服务启动,否则终止服务启动。
优选地,所述验证模块203还用于:
在服务启动之后,对于每一个用户请求,都进行拦截并校验当前证书是否还在有效期内,如果证书过期,则终止当前请求并返回错误提示信息。
本实施例2中各个模块所实现的功能的具体实施过程与实施例1中的各个步骤的实施过程相同,在此不再赘述。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是在本发明的构思下,利用本发明说明书及附图内容所作的等效结构变换,或直接/间接运用在其他相关的技术领域均包括在本发明的专利保护范围内。

Claims (10)

1.一种兼容不同部署环境的软件授权方法,其特征在于,所述方法包括:
S1:根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;
S2:针对不同的部署环境进行服务的部署,所述部署环境包括虚拟机或云主机、容器环境、容器云平台环境;
S3:在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证。
2.根据权利要求1所述的方法,其特征在于,所述根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑包括:
使用非对称加密算法生成密钥对并保存在私钥库文件中,使用私钥对包含授权信息的内容进行数字签名并生成数字证书,将公钥和生成的所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;其中,所述含授权信息包括软件许可的有效期,虚拟机和/或容器主机和/或容器云平台节点的IP地址列表和MAC地址列表。
3.根据权利要求1所述的方法,其特征在于,所述针对不同的部署环境进行服务的部署包括:
若部署环境为虚拟机或云主机,则通过命令行或脚本启动;
若部署环境为容器环境,则在启动脚本中添加环境变量DOCKER_NODE_IP和DOCKER_NODE_MAC,分别代表宿主机的IP地址和MAC地址,使用脚本或部署工具启动docker镜像运行服务;
若部署环境为容器云平台环境,则在部署脚本中添加环境变量K8S_NODE_IP和K8S_NODE_MAC,分别代表k8s主机节点的IP地址和MAC地址,使用部署工具或部署平台进行服务的创建和调度。
4.根据权利要求1所述的方法,其特征在于,所述在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证包括:
在服务启动时,执行添加的所述代码逻辑,加载数字证书并用公钥进行验证,获取软件授权信息,依据环境变量判断所属环境并获取宿主机的IP地址和MAC地址,将所述IP地址和MAC地址与所述软件授权信息中的内容进行比对,比对通过后,允许服务启动,否则终止服务启动。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括:
在服务启动之后,对于每一个用户请求,都进行拦截并校验当前证书是否还在有效期内,如果证书过期,则终止当前请求并返回错误提示信息。
6.一种兼容不同部署环境的软件授权系统,其特征在于,所述系统包括:
生成模块,用于根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;
部署模块,用于针对不同的部署环境进行服务的部署,所述部署环境包括虚拟机或云主机、容器环境、容器云平台环境;
验证模块,用于在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证。
7.根据权利要求6所述的系统,其特征在于,所述生成模块根据非对称加密算法和包含软件授权信息的内容生成数字证书;将所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑包括:
使用非对称加密算法生成密钥对并保存在私钥库文件中,使用私钥对包含授权信息的内容进行数字签名并生成数字证书,将公钥和生成的所述数字证书打包到软件系统的各个服务中,并添加相应的代码逻辑;其中,所述含授权信息包括软件许可的有效期,虚拟机和/或容器主机和/或容器云平台节点的IP地址列表和MAC地址列表。
8.根据权利要求6所述的系统,其特征在于,所述部署模块针对不同的部署环境进行服务的部署包括:
若部署环境为虚拟机或云主机,则通过命令行或脚本启动;
若部署环境为容器环境,则在启动脚本中添加环境变量DOCKER_NODE_IP和DOCKER_NODE_MAC,分别代表宿主机的IP地址和MAC地址,使用脚本或部署工具启动docker镜像运行服务;
若部署环境为容器云平台环境,则在部署脚本中添加环境变量K8S_NODE_IP和K8S_NODE_MAC,分别代表k8s主机节点的IP地址和MAC地址,使用部署工具或部署平台进行服务的创建和调度。
9.根据权利要求6所述的系统,其特征在于,所述验证模块在服务启动时,执行所述代码逻辑获取宿主机信息和所述数字证书的信息,进行数字证书验证包括:
在服务启动时,执行添加的所述代码逻辑,加载数字证书并用公钥进行验证,获取软件授权信息,依据环境变量判断所属环境并获取宿主机的IP地址和MAC地址,将所述IP地址和MAC地址与所述软件授权信息中的内容进行比对,比对通过后,允许服务启动,否则终止服务启动。
10.根据权利要求9所述的系统,其特征在于,所述验证模块还用于:
在服务启动之后,对于每一个用户请求,都进行拦截并校验当前证书是否还在有效期内,如果证书过期,则终止当前请求并返回错误提示信息。
CN202211108631.6A 2022-09-13 2022-09-13 一种兼容不同部署环境的软件授权方法和系统 Pending CN115391753A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211108631.6A CN115391753A (zh) 2022-09-13 2022-09-13 一种兼容不同部署环境的软件授权方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211108631.6A CN115391753A (zh) 2022-09-13 2022-09-13 一种兼容不同部署环境的软件授权方法和系统

Publications (1)

Publication Number Publication Date
CN115391753A true CN115391753A (zh) 2022-11-25

Family

ID=84127123

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211108631.6A Pending CN115391753A (zh) 2022-09-13 2022-09-13 一种兼容不同部署环境的软件授权方法和系统

Country Status (1)

Country Link
CN (1) CN115391753A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117290822A (zh) * 2023-11-23 2023-12-26 深圳华杰共创科技有限公司 一种云数据库软件系统的许可证许可控制方法及相关设备

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN117290822A (zh) * 2023-11-23 2023-12-26 深圳华杰共创科技有限公司 一种云数据库软件系统的许可证许可控制方法及相关设备
CN117290822B (zh) * 2023-11-23 2024-03-08 深圳华杰共创科技有限公司 一种云数据库软件系统的许可证许可控制方法及相关设备

Similar Documents

Publication Publication Date Title
JP4410821B2 (ja) 保護された処理システムへの初期トラステッド・デバイスのバインディングの検証
KR101075844B1 (ko) 통신 시스템에서 원격 메시지 인증을 위한 방법
JP5747981B2 (ja) 仮想機械を用いた電子ネットワークにおける複数のクライアントの遠隔保守のためのシステム及び方法
US20160188349A1 (en) Client Authentication During Network Boot
US7539868B2 (en) Run-time firmware authentication
CN101231768B (zh) 一种多应用智能卡及实现智能卡多应用的方法
CN112887160B (zh) 区块链一体机及其多节点部署方法、装置、存储介质
CN109146679A (zh) 基于区块链的智能合约调用方法及装置、电子设备
AU2014226162A1 (en) Configuration and verification by trusted provider
CN113821305B (zh) 基于Docker的云密码服务调用方法及中间件系统
CN115391753A (zh) 一种兼容不同部署环境的软件授权方法和系统
EP4035327A1 (en) Template-based onboarding of internet-connectible devices
CN111783051A (zh) 身份认证方法及装置和电子设备
CN101119362A (zh) 计算机安全代理的自定义安装、注册及卸载方法
CN111880781A (zh) 一种rpm安装包的生成方法、装置、设备及存储介质
CN106326723A (zh) Apk签名认证的方法及装置
CN110231950A (zh) 一种bios的升级方法、系统及相关装置
CN109408197A (zh) 一种边缘计算引擎的实现方法及装置
CN112580112B (zh) 一种基于全链共识、局部部署的智能合约实现方法、装置
CN115278671A (zh) 网元鉴权方法、装置、存储介质和电子设备
CN114024978A (zh) 一种云资源的同步方法、装置、节点及存储介质
CN117319212B (zh) 云环境下多租户隔离的密码资源自动化调度系统及其方法
CN114584398B (zh) 一种计费管理方法及系统
CN116208501A (zh) Nfv中的tee资源编排方法、系统、设备及存储介质
CN114840883A (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