一种算法授权方法、装置、电子设备和存储介质与流程
1.本发明涉及软件授权相关技术领域,特别涉及到深度学习算法的一种算法授权方法、装置、电子设备和存储介质。
背景技术:
2.随着人工智能领域发展,深度学习算法应用越来广泛,例如,人脸识别、目标检测等,企业或个人开发者研发的核心深度学习算法成本高。由于深度学习算法通常包含算法模型和程序两部分,这两部分复制成本低、极易扩散,算法框架多,难以统一管理,如果算法模型被泄露、算法程序被泄露或篡改,都会给企业和个人开发者带来巨大的经济损失。因此,如何以低成本、便捷的方式保护深度学习算法不被泄露,成为各大企业急需解决的技术难题。
3.当前算法授权的方法有多种方式,有些采用云服务的方式提供算法授权,由厂商以统一算法库进行管理和客户端访问授权控制,如公开号为cn111431726a的“算法授权方法、装置、计算机设备和存储介质”中国发明专利,用户使用客户端访问算法库来使用算法,算法程序只在厂商服务器上运行,从而避免算法交至客户后发生泄露或篡改。但这种方式没法满足客户的私有化部署需求,例如,有些客户出于对数据安全的考虑,通常不会直接将数据发送至互联网,需要算法支持私有化部署。
4.为了满足私有化算法部署要求,同时避免算法泄露或篡改,需要对私有化部署的算法进行授权控制,公开号为cn112632476a的“算法授权保护方法、装置、集成电路芯片及电子设备”中国发明专利采用一次性可编程的集成电路芯片存储算法授权信息来保护算法,结合硬件的方式可以提高算法破解难度,但也提升了算法应用的成本。
技术实现要素:
5.本发明的目的在于提供一种算法授权方法、装置、电子设备和存储介质,以解决算法模型和程序泄露、篡改引起的商业授权安全的问题。
6.本发明的第一目的,提供了一种算法授权方法,包括以下步骤:1)获取目标服务器设备指纹,并在算法授权模块填写服务器设备指纹及授权有效时间,提交算法授权请求;2)算法授权模块接收算法授权请求,在算法库中检索请求的算法所对应的算法程序文件、算法模型原始文件,生成授权证书原始文件,将目标服务器设备指纹信息以及授权有效时间记录在授权证书原始文件中;3)算法加密模块生成两组非对称密钥;使用第一组密钥的公钥对算法模型原始文件进行加密,将第一组密钥的私钥记录至授权证书原始文件中;使用第二组密钥的公钥对授权证书原始文件进行加密,生成授权证书文件;4)算法编译模块将算法程序文件封装到算法模型加载程序,将第二组密钥的私钥记录在算法模型加载程序中,并把算法模型加载程序编译为二进制程序文件;
5)算法打包模块将算法对应的算法容器化部署文件、部署配置文件、算法编译模块生成的算法模型加载程序打包压缩形成安装包;6)下载算法的授权证书文件、算法模型文件以及安装包,解压安装包,编译生成算法服务的docker镜像,配置授权证书文件和算法模型文件路径参数,创建算法服务容器并启动;7)算法模型加载程序解析授权证书文件,判断目标服务器实际的设备指纹是否与证书中记录的目标服务器设备指纹信息记录一致,且在授权有效时间范围内,则运行算法服务,否则终止服务。
7.所述获取服务器设备指纹包括如下步骤:获取目标服务器设备标识;将目标服务器设备标识组合形成一段字符串,并使用摘要算法生成签名,作为服务器设备指纹。
8.优选的,所述算法模型加载程序的程序结构包括以下五个部分:封装算法程序的处理逻辑;解析授权证书文件;封装指纹生成脚本的代码逻辑;对算法模型文件进行解密和加载操作;对授权证书文件的有效性进行校验并授权运行算法服务。
9.优选的,还包括重新获取新的授权证书文件步骤,包括以下三种方式中的任一种:1)当授权证书文件无效,在算法授权模块中填写目标服务器设备指纹信息,重新申请新的授权证书文件;所述授权证书文件无效,指授权证文件中记录的目标服务器设备指纹信息与实际服务器设备指纹信息不一致;2)当授权证书文件过期,在算法授权模块填写授权有效时间,重新申请新的授权证书文件,算法授权模块将按照预先存储的指纹信息,根据填写授权有效时间重新生成授权证书文件,由算法加密模块根据算法授权模块记录的第二组密钥的公钥加密授权证书文件;3)当授权证书文件丢失,在算法授权模块中重新下载授权证书文件。
10.优选的,还包括算法模型文件更新时,采用如下步骤替换目标服务器上的算法模型文件:1)在算法授权模块中,重新根据第一组密钥的公钥加密新的算法模型文件,获取升级后的算法模型文件;2)下载新版算法模型文件,在目标服务器替换算法模型文件;3)重新配置算法模型文件路径信息,重启算法服务容器。
11.本发明第二目的在于提供一种算法授权装置,包括:指纹生成脚本程序,用于通过运行指纹生成脚本获取目标服务器设备指纹,并在算法授权模块填写服务器设备指纹及授权有效时间,提交算法授权请求;算法库,用于记录可选算法的原始文件集合,每个算法包括算法程序文件、算法模型原始文件、容器化部署文件以及配置文件;算法授权模块,用于接收算法授权请求,生成授权证书原始文件,将目标服务器设备指纹信息以及授权有效时间记录在授权证书原始文件中;算法加密模块,用于生成两组非对称密钥;所述第一组密钥的公钥用于对算法模型原始文件进行加密,第一组密钥的私钥被记录在授权证书原始文件中;所述第二组密钥的公钥用于对授权证书原始文件进行加密,生成授权证书文件;算法编译模块,用于将算法程序文件封装到算法模型加载程序,将第二组密钥的
私钥记录在算法模型加载程序中,并把算法模型加载程序编译为二进制程序文件;算法模型加载程序,用于:封装算法程序的处理逻辑;解析授权证书文件;封装指纹生成脚本的代码逻辑;对于算法模型文件进行解密和加载操作;对授权证书文件的有效性进行校验并授权运行算法服务,当目标服务器实际的设备指纹与证书中记录的目标服务器设备指纹信息记录一致,且在授权有效时间范围内,运行算法服务,否则终止服务;算法打包模块,用于将算法对应的算法容器化部署文件、部署配置文件、算法编译模块生成的算法模型加载程序打包压缩形成安装包。
12.本发明第三目的在于提供一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行存储器上所存储的程序,实现上述算法授权方法所述的方法步骤。
13.本发明第三目的在于提供一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述算法授权方法所述的方法步骤。
14.采用本发明,可以满足算法在私有服务器设备上部署,可以避免授权被复制和泄露,便于授权证书文件和算法模型文件的更新,提高算法程序以及深度学习模型软件商业授权保护的安全性。
15.相比现有的算法授权方法,本发明主要有以下几个方面的优势:1)考虑到算法的私有化部署需求,支持将算法程序打包并部署在指定的服务器,在未授权的情况下,算法将无法在未授权的服务器上运行,只能在指定且授权的服务器上运行,从而避免算法泄露;2)从软件层面对算法进行授权控制,相比硬件芯片方式,降低了算法授权的成本;3)针对深度学习类算法的特点,将算法模型、算法程序进行解耦,分别进行加密控制,这样使得算法模型和程序可以非常方便的、独立的升级,有利于算法优化,降低算法授权流程的复杂性;4)可以兼容主流的深度学习算法框架和算法模型格式,不受算法框架限制,均可进行算法授权控制。
附图说明
16.图1为本发明实施例的算法服务授权方法的流程示意图;图2为本发明实施例中的授权证书文件结构示意图;图3为本发明实施例中的算法程序处理逻辑示意图;图4为本发明实施例中的授权装置关系示意图。
具体实施方式
17.下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
18.图1是根据本发明实施例的算法服务授权方法的实现方法流程示意图,该流程包括如下步骤,本实施例的,包括如下步骤:步骤s101:获取目标服务器设备指纹,并在算法授权模块填写服务器设备指纹及授权有效时间,提交算法授权请求。具体步骤包括:1)读取目标服务器的设备标识。
19.服务器设备通常包括cpu、网卡、主板、磁盘等。本实施例中,获取目标服务器设备标识可包括cpu序列号、网卡序列号、主板序列号、服务器序列号,例如,{’cpu id’:
ꢀ’
ea 06 09 00 ff fb bb bf’,’ether’:’6c:4c:90:f3:8d:ec’,
ꢀ’
serial number’:
ꢀ’
m90f1q13’,
ꢀ’
uuid’:
ꢀ’
75330180-bde4-11fa-b494-51586df41900’}。本实施例所述的目标服务器,是指用户打算部署算法的服务器。本实施例中,服务器设备标识的读取,可通过在目标服务器上运行指纹生成脚本来完成。指纹生成脚本包含获取设备标识的工具,例如dmidecode,可以采用bash、python等语言编写执行命令,并将指纹生成脚本编译为可执行文件。
20.2)将目标服务器设备标识组合形成一段字符串,并使用摘要算法生成签名,作为服务器设备指纹。
21.本实施例中,可将以上信息按照cpu序列号、网卡序列号、主板序列号、服务器序列号这个顺序组合,使用固定字母或字符进行拼接,形成一段字符串,然后使用摘要算法如md5、sha1或sha512(md5的全称是message-digest algorithm 5,信息-摘要算法;sha的全称是secure hash algorithm,安全散列算法)生成签名,将签名作为服务器设备指纹。例如,第一步中服务器序列示例,经过空格字符拼接,使用md5方法生成的签名为b3cc60916441a03c4354e2c129e8b76c,这段签名作为该目标服务器的设备指纹。
22.通过上述步骤,可以获取目标服务器的唯一标识,即服务器设备指纹信息,用于后续校验算法运行的服务器是否为授权的服务器,以避免算法泄露,在未授权的服务器上运行。
23.3)在算法授权模块中填写目标服务器设备指纹信息,设置算法授权有效时间,并提交算法授权请求。
24.本实施例中,授权有效时间即算法有效的截止时间,例如2022-10-1,表示可以在2022年10月1日前的时间范围内使用算法。算法授权请求,包含需要授权算法的标识,即用户需要私有化部署的算法的标识,例如,车牌识别算法的标识。
25.步骤s102:算法授权模块接收算法授权请求,在算法库中检索请求的算法所对应的算法程序文件、算法模型原始文件,生成授权证书原始文件,即加密前的授权证书文件,将目标服务器设备指纹信息以及授权有效时间记录在授权证书原始文件中。
26.本实施例的算法授权模块会根据提交的算法授权请求,在算法库中检索请求的算法所对应的算法程序文件、算法模型原始文件,此处的算法模型原始文件为加密前的算法模型文件。
27.本实施例中,算法库为记录所有可选算法的原始文件集合,每个算法包括算法程序文件、算法模型原始文件、容器化部署文件以及配置文件。算法模型原始文件将由后续步骤中算法加密模块进行加密,加密后的算法模型文件,在未进行解码前,无法使用,可以避免算法模型文件泄露;算法程序将由后续步骤中的算法编码模块进行编译封装,形成二进制程序文件,可以避免算法程序篡改;容器化部署文件以及配置文件将由后续算法打包模
块打包至安装包。
28.步骤s103:算法加密模块生成两组非对称密钥;使用第一组密钥的公钥对算法模型原始文件进行加密,将第一组密钥的私钥记录至授权证书原始文件中;使用第二组密钥的公钥对授权证书原始文件进行加密,生成授权证书文件。
29.本实施例中,算法加密模块生成两组非对称密钥,设第一组密钥为公钥k1、私钥s1,第二组密钥为公钥k2、私钥s2,其中第一组密钥用于对算法模型文件进行加解密,第二组密钥用于对授权证书文件进行加解密。
30.本实施例中,使用第一组密钥的公钥k1对算法授权模块发送过来的算法模型原始文件进行加密,生成算法模型文件。将用于解密算法模型文件的第一组密钥的私钥s1记录至授权证书原始文件中,并使用第二组密钥的公钥k2对授权证书原始文件进行加密,生成授权证书文件。
31.本实施例中,用于解密授权证书文件的第二组密钥的私钥s2被发送至算法编译模块。授权证书文件和算法模型文件将在算法授权模块中进行存储,分别用于授权证书文件和算法模型文件的下载。
32.在本实施例步骤s103中,算法加密模块生成的授权证书文件结构如图2所示,包括四个部分:第一部分为随机码,作为特定的解析标识,避免外部人为破解证书内容,所述随机码的位数通常为固定位数,例如,8位数字的随机码31530528或g32k-67i。随机码可由数字、字符、符号等组成。
33.第二部分为长度标识,是加密后的授权主体内容长度的标识,用于定位证书主体内容;通常由4个字节记录;第三部分为授权主体内容;授权证书原始文件包括目标服务器设备指纹、授权有效时间以及第一组密钥的私钥s1,通过第二组密钥的公钥k2对这些信息加密得到加密后的内容,即作为授权证书文件结构中的第三部分授权主体内容;第四部分为证书签名,是通过摘要算法对证书前三部分内容进行签名所得。
34.本实施例中,授权证书文件中第一部分随机码主要用于加大授权证书破解的难度,外部系统通常无法获知授权证书的随机码,难以解析授权证书文件的结构内容,进而保护授权证书文件不被破解。第四部分的证书签名,可以用于对证书的内容完整性进行校验,通过签名可以快速判断证书内容是否被篡改,提高判断效率。
35.通过上述过程可以对授权证书文件和算法模型进行保护,确保授权证书文件内容不可篡改,保护算法模型文件避免泄露。
36.本实施例生成的两组密钥会在算法授权模块中记录,用于后续对重新生成的授权证书文件和算法模型文件进行加解密。针对每个算法授权请求,算法加密模块会生成独立的两组密钥,可以限制算法的使用范围,避免不同授权的授权证书文件和算法之间发生交叉使用,即同一个算法的两次授权,产生的授权证书文件和算法模型文件是不相互可以替换使用的。
37.步骤s104:所述算法编译模块将算法程序文件封装到算法模型加载程序,将第二组密钥的私钥记录在算法模型加载程序中,并把算法模型加载程序编译为二进制程序文件。
38.本实施例的算法模型加载程序采用抽象接口,可以兼容主流的深度学习算法框架和算法模型格式,不受算法框架限制。二进制程序文件为机器执行程序,通常难以破译代码逻辑,将算法模型加载程序编译为二进制程序文件,可以避免算法程序的泄露、篡改。
39.本实施例算法对应的算法程序处理逻辑如图3所示,包括:算法接收到外部请求参数到算法模型推理之前的处理逻辑,称为前置处理;算法模型推理,加载算法模型文件,执行推理过程;以及算法模型推理产生的结果到返回响应结果之前的处理逻辑,称为后置处理。
40.本实施例的算法模型加载程序,可由静态编译语言编写,例如c、c++或者cython等,所述算法模型加载程序的程序结构包括以下五个部分:1)封装算法程序的处理逻辑,采用抽象接口的方式对算法程序文件的前置处理和后置处理进行代理,并将处理过程的代码逻辑改写、迁移至算法模型加载程序中;2)解析授权证书文件,模型加载程序可以根据程序中记录的第二组密钥的私钥s2,解密授权证书文件,获取授权证书文件中记录的目标服务器设备指纹、授权有效时间和第一组密钥的私钥s1;3)封装指纹生成脚本的代码逻辑,可以执行指纹生成脚本,获取当前程序运行所在服务器的设备指纹;4)对于算法模型文件进行解密和加载操作。由于算法模型文件已经加密,当算法运行时,加载算法模型文件,需要进行解码,可使用从授权证书文件中解析出来的第一组密钥的私钥s1,解密算法模型文件,并加载至内存中;5)校验授权,可以对授权证书文件的有效性进行校验,包括校验授权证书文件的签名是否正确,校验当前运行的服务器的实际设备指纹是否与授权证书文件中记录的授权证书文件一致,判断当前运行的服务的时间是否在授权证书记录的授权有效时间范围内,如果上述条件都满足,则加载算法模块,运行算法服务,否则终止服务。其中,如果算法模型文件解密失败,服务也无法正常运行。
41.本实施例中,编译为二进制程序文件的算法模型加载程序将由算法打包模块打包至安装包中。
42.步骤s105:算法打包模块将算法对应的算法容器化部署文件、部署配置文件、算法编译模块生成的算法模型加载程序打包压缩形成安装包。具体步骤如下:1)算法打包模块将算法对应的算法容器化部署文件(即dockerfile)、部署配置文件、算法编译模块生成的算法模型加载程序打包压缩形成安装包。所述部署配置文件用于记录算法模型文件、授权证书文件的路径参数,其中:dockerfile包括算法运行的必要环境信息,用于构建算法服务的docker镜像;部署配置文件,包括算法模型文件、授权证书文件的路径配置信息;算法模型加载程序,即步骤s104由算法编译模块生成的二进制程序。
43.2)对上述文件使用zip、tar或rar等常规文件方式进行压缩,形成安装包。
44.本实施例中,安装包将在算法授权模块存储。对上述文件进行压缩形成安装包,主要是便于在算法授权模块下载。
45.步骤s106:目标用户在算法授权模块下载算法的授权证书文件、算法模型文件以及安装包,在目标服务器解压安装包,编译生成算法服务的docker镜像(docker是一个开源
的应用容器引擎),配置授权证书文件和算法模型文件路径参数,创建算法服务容器并启动。此步骤即为算法服务的部署过程。具体包括如下步骤:1)目标用户访问算法授权模块,选择已授权的算法,下载对应授权证书文件、算法模型文件以及安装包;2)将授权证书文件、算法模型文件以及安装包上传至目标服务器,解压安装包,运行dockerfile生成docker镜像,将部署配置文件中的授权证书文件、算法模型文件路径设置为当前算法的授权证书文件所在路径、算法模型文件所在路径,创建并运行容器。根据服务器硬件配置和选择是否开启gpu配置,运行容器命令示例如下:sudonvidia-docker run
ꢀ‑
it
ꢀ‑
dp 9861:8868
ꢀ‑
v /sbin/dmidecode:/sbin/dmidecode
ꢀ‑
v /dev/mem:/dev/mem
ꢀ‑‑
privileged
ꢀ‑‑
name generalocr
ꢀ‑
d generalocr:gpu后续运行容器即指运行算法服务。
46.步骤s107:算法模型加载程序解析授权证书文件,获取目标服务器设备指纹,判断目标服务器实际的设备指纹是否与证书中记录的目标服务器设备指纹信息记录一致,一致则继续判断是否在授权有效时间范围内,符合条件则运行算法服务,否则终止服务。包括如下步骤:1)算法加载程序根据部署配置文件中的路径信息解析授权证书文件,判断授权证书文件签名是否正确,如果不正确则终止运行;2)如果授权证书文件签名正确,根据程序中的第二组密钥的私钥s2解密授权证书文件,获得授权证书内容,获取授权证书文件中的目标服务器设备指纹信息,运行指纹生成脚本获取目标服务器实际的设备指纹信息,判断授权证书文件中记录的指纹信息与服务器实际的设备指纹信息是否一致;3)如果指纹信息一致,则继续判断授权时间范围,判断服务器实际时间是否在授权证书文件中记录的授权有效时间范围内;4)如果上述几个条件都满足,则运行算法服务;如果有任何一个条件不满足则终止停止运行。
47.本实施例中,授权证书文件中记录的指纹信息与服务器实际的设备指纹信息一致,表明授权有效。如果不一致,会有如下情形:1)由于服务器设备指纹可以作为服务器的唯一标识,服务器的实际设备指纹与授权证书文件中记录的目标服务器设备指纹不一致,则表明当前运行的服务器不是授权证书对应授权的服务器,因此,授权无效,算法将无法运行;2)由于授权证书中记录了授权有效时间,当运行所在的服务器时间在证书中记录的有效时间范围外,则表明当前运行的算法超过授权时间,算法将无法运行,授权终止。
48.需要说明的是,授权证书文件在传输过程中、部署的过程中还可能存在无效、过期或者丢失等情形,如果出现这种情况,算法服务将无法正常运行。本实施例中可增加重新获取新的授权证书文件步骤,目标用户可在算法授权模块中重新获取新的授权证书文件,将授权证书文件下载并上传至目标服务器,重新配置证书路径信息,目标服务器可以继续正常运行算法服务。重新获取新的授权证书文件,包括以下几种方式:1)目标服务器上授权证书文件无效,可在算法授权模块中填写目标服务器设备指
纹信息,重新申请新的授权证书文件。其中授权证书文件无效,是指授权证文件中记录的目标服务器设备指纹信息与实际服务器设备指纹信息不一致;2)目标服务器上授权证书文件过期,可在算法授权模块填写授权有效时间,重新申请新的授权证书文件,算法授权模块将按照预先存储的指纹信息,根据填写授权有效时间重新生成授权证书文件,由算法加密模块根据算法授权模块记录的公钥k2加密授权证书文件;3)目标服务器上授权证书文件丢失,可在算法授权模块中重新下载授权证书文件。
49.需要说明的是,算法服务在部署过程中,还会出现算法模型文件更新如升级,就需要替换服务器上的算法模型文件,具体步骤如下:1)在算法授权模块中,重新根据第一组密钥的公钥k1加密新的算法模型文件,获取升级后的算法模型文件;2)目标用户下载新版算法模型文件,可在目标服务器替换算法模型文件;3)重新配置算法模型文件路径信息,重启算法服务容器。
50.通过上述过程,只能在已授权的目标服务器上运行授权的算法服务,这个措施能有效保护算法服务的算法模型和程序商业授权。
51.本实施例详细描述本发明算法授权方法,该方法对目标服务器上运行的算法进行授权和权限控制,提升算法商业授权的安全性。
52.如图4所示为本发明的一种算法授权装置实施例,包括:1、指纹生成脚本程序401所述指纹生成脚本程序在目标服务器设备上运行指纹生成脚本,用于生成目标服务器的设备指纹信息;具体包括:1)获取目标服务器设备标识,包括cpu序列号、网卡序列号、主板序列号、服务器序列号;2)将目标服务器设备标识组合形成一段字符串,并使用摘要算法生成签名,作为服务器设备指纹;3)在算法授权模块中填写目标服务器设备指纹信息,设置算法授权有效时间,并提交算法授权请求。
53.2、算法授权模块402所述算法授权模块用于:接收算法授权请求,生成授权证书原始文件,即加密前的授权证书文件,并将目标服务器设备指纹信息以及授权有效时间记录在授权证书原始文件中。
54.本实施例的算法授权模块会根据提交的算法授权请求,在算法库中检索请求的算法所对应的算法程序文件、算法模型原始文件。
55.3、算法库 403所述算法库为记录所有可选算法的原始文件集合,每个算法包括算法程序文件、算法模型原始文件、容器化部署文件以及配置文件。
56.本实施例中,算法库为记录所有可选算法的原始文件集合,每个算法包括算法程序文件、算法模型原始文件、容器化部署文件以及配置文件。算法模型原始文件将由后续步
骤中算法加密模块进行加密,加密后的算法模型文件,在未进行解码前,无法使用,可以避免算法模型文件泄露;算法程序将由后续步骤中的算法编码模块进行编译封装,形成二进制程序文件,可以避免算法程序篡改;容器化部署文件以及配置文件将由后续算法打包模块打包至安装包。
57.4、算法加密模块404所述算法加密模块用于:生成两组密钥,第一组密钥为公钥k1、私钥s1,另一组密钥为公钥k2、私钥s2;其中,第一组密钥用于对算法模型文件进行加解密,第二组密钥用于对授权证书文件进行加解密。
58.所述第一组密钥的公钥k1用于对算法授权模块发送过来的算法模型文件进行加密,将第一组密钥的私钥s1记录到算法授权模块发送过来的授权证书原始文件中,即改写了授权证书原始文件。
59.所述第二组密钥的公钥k2用于对改写后的授权证书原始文件进行加密,生成加密后的授权证书文件。
60.将两组密钥及加密后的授权证书文件和算法模型文件传回并记录于算法授权模块中,并将第二组密钥的私钥s2传到算法编译模块中。
61.5、算法编译模块405所述算法编译模块用于将目标用户选择的算法程序文件封装到算法模型加载程序,以及将算法加密模块生成的第二组密钥的私钥s2记录在算法模型加载程序中,并把算法模型加载程序编译为二进制程序文件。
62.6、算法模型加载程序406所述算法模型加载程序的程序结构包括以下五个部分:1)封装算法程序的处理逻辑,采用抽象接口的方式对算法程序文件的前置处理和后置处理进行代理,并将处理过程的代码逻辑改写、迁移至算法模型加载程序中;2)解析授权证书文件,模型加载程序可以根据程序中记录的第二组密钥的私钥s2,解密授权证书文件,获取授权证书文件中记录的目标服务器设备指纹、授权有效时间和第一组密钥的私钥s1;3)封装指纹生成脚本的代码逻辑,可以执行指纹生成脚本,获取当前程序运行所在服务器的设备指纹;4)对于算法模型文件进行解密和加载操作。由于算法模型文件已经加密,当算法运行时,加载算法模型文件,需要进行解码,可使用从授权证书文件中解析出来的第一组密钥的私钥s1,解密算法模型文件,并加载至内存中;5)校验授权,可以对授权证书文件的有效性进行校验,包括校验授权证书文件的签名是否正确,校验当前运行的服务器的实际设备指纹是否与授权证书文件中记录的授权证书文件一致,判断当前运行的服务的时间是否在授权证书记录的授权有效时间范围内,如果上述条件都满足,则加载算法模块,运行算法服务,否则终止服务。其中,如果算法模型文件解密失败,服务也无法正常运行。
63.执行封装到算法模型加载程序的算法程序。算法模型加载程序运行在目标服务器上,每次客户端有请求,会校验服务器设备指纹是否与授权证书文件中记录的设备指纹匹
配,以及服务器运行时间是否在授权证书文件记录的有效时间范围内,满足条件则继续提供算法服务,响应请求。如果校验失败,即不满足条件,则终止服务。
64.7、算法打包模块407所述算法打包模块用于根据目标用户选择的算法将对应的算法容器化部署文件dockerfile、部署配置文件、算法编译模块生成的算法模型加载程序打包压缩形成安装包。所述dockerfile包括算法运行的必要环境信息,用于构建算法服务的docker镜像;所述部署配置文件用于记录算法模型文件、授权证书文件的路径参数。
65.关于本实施例授权装置的各模块或程序的具体实现以及相关解释内容可以参见图1所示的方法实施例,在此不做赘述。
66.本发明实施例还提供了一种电子设备,包括:存储器,用于存储计算机程序;处理器,用于执行存储器上所存储的程序,实现如下方法步骤:1)获取目标服务器设备指纹,并在算法授权模块填写服务器设备指纹及授权有效时间,提交算法授权请求;2)算法授权模块接收算法授权请求,生成授权证书原始文件,将目标服务器设备指纹信息以及授权有效时间记录在授权证书原始文件中;3)算法加密模块生成两组非对称密钥;使用第一组密钥的公钥对算法模型原始文件进行加密,将第一组密钥的私钥记录至授权证书原始文件中;使用第二组密钥的公钥对授权证书原始文件进行加密,生成授权证书文件;4)算法编译模块将算法程序文件封装到算法模型加载程序,将第二组密钥的私钥记录在算法模型加载程序中,并把算法模型加载程序编译为二进制程序文件;5)算法打包模块将算法对应的算法容器化部署文件、部署配置文件、算法编译模块生成的算法模型加载程序打包压缩形成安装包;6)下载算法的授权证书文件、算法模型文件以及安装包,解压安装包,编译生成算法服务的docker镜像,配置授权证书文件和算法模型文件路径参数,创建算法服务容器并启动;7)算法模型加载程序解析授权证书文件,判断目标服务器实际的设备指纹是否与证书中记录的目标服务器设备指纹信息记录一致,且在授权有效时间范围内,则运行算法服务,否则终止服务。
67.关于该方法各个步骤的具体实现以及相关解释内容可以参见图1所示的方法实施例,在此不做赘述。
68.本实施例提到的电子设备的存储器可以包括随机存取存储器(random access memory,ram),也可以包括非易失性存储器(non-volatile memory,nvm),例如至少一个磁盘存储器。
69.上述的处理器可以是通用处理器,包括中央处理器(central processing unit,cpu)、网络处理器(network processor,np)等;还可以是数字信号处理器(digital signalprocessing,dsp)、专用集成电路(application specific integrated circuit,asic)、现场可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
70.本发明还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,该计算机程序被处理器执行时实现图1所示的算法授权方法实施例的方法步骤。
71.需要说明的是,本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。
72.尤其,对于装置、电子设备、计算机可读存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
73.在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法或者设备所固有的要素。
74.上述描述仅是对本发明较佳实施例的描述,并非对本发明范围的任何限定,本发明领域的普通技术人员根据上述揭示内容做的任何变更、修饰,均属于本发明的保护范围之内。
