CN116775322A - 模型调用方法、装置及存储介质 - Google Patents
模型调用方法、装置及存储介质 Download PDFInfo
- Publication number
- CN116775322A CN116775322A CN202210222968.3A CN202210222968A CN116775322A CN 116775322 A CN116775322 A CN 116775322A CN 202210222968 A CN202210222968 A CN 202210222968A CN 116775322 A CN116775322 A CN 116775322A
- Authority
- CN
- China
- Prior art keywords
- model
- target
- access control
- application
- verification
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 117
- 238000012795 verification Methods 0.000 claims abstract description 277
- 238000012545 processing Methods 0.000 claims abstract description 26
- 238000013475 authorization Methods 0.000 claims description 111
- 230000005540 biological transmission Effects 0.000 claims description 27
- 238000013473 artificial intelligence Methods 0.000 claims description 5
- 230000008569 process Effects 0.000 abstract description 40
- 230000003993 interaction Effects 0.000 description 9
- 238000011161 development Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 4
- 239000000284 extract Substances 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000001010 compromised effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/21—Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/2141—Access rights, e.g. capability lists, access control lists, access tables, access matrices
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Abstract
本申请实施例公开了一种模型调用方法、装置及存储介质,属于计算机技术领域。在本申请实施例中,第一设备根据待调用的目标AI模型的模型标识和AI应用的权限验证参数,对AI应用的模型使用权限进行验证,确保AI应用为合法且具有使用权限的应用。在AI应用的模型使用权限验证通过的情况下,在TEE中对目标AI模型的加密模型文件进行解密,得到解密模型文件,并将解密模型文件直接加载至内存中,以运行目标AI模型,进而通过目标AI模型对AI应用的推理数据进行处理。在整个过程中,目标AI模型的解密模型文件都保存在内存中,也即该目标AI模型的解密模型文件不会落盘,有效的保障了目标AI模型的安全应用。
Description
技术领域
本申请涉及计算机技术领域,特别涉及一种模型调用方法、装置及存储介质。
背景技术
随着计算机技术以及人工智能(artificial intelligence,AI)技术的快速发展,AI应用被广泛的用于各行各业中。其中,AI应用是指通过调用AI模型来实现业务逻辑的应用。
通常,AI应用的开发方和AI模型的开发方可能不是同一方。为了保障AI模型的数据安全,在部署有AI应用且具有合法使用权限的第一设备运行AI模型之前,提供AI模型的第二设备可以通过第三方的加密服务器来对AI模型文件进行加密,然后将加密模型文件发送到第一设备。之后,第一设备从加密服务器中获取加密密钥,通过该加密密钥对加密模型文件进行解密,从而获得该AI模型文件的明文,并将该AI模型文件的明文保存在本地存储器中,以便后续加载该AI模型文件来运行AI模型。
然而,第一设备在将AI模型文件的明文保存在本地存储器之后,可以在任意时间将该AI模型文件的明文发给任意设备来使用。也即,第二设备无法控制第一设备在获得该AI模型文件的明文之后对该AI模型文件的进一步使用。这样,该AI模型文件所涉及的各项参数依旧具有被泄露的风险。
发明内容
本申请实施例提供了一种模型调用方法、装置及存储介质,能够保障AI模型的安全使用。所述技术方案如下:
第一方面,提供了一种模型调用方法,应用于第一设备,所述第一设备中部署有人工智能AI应用,所述方法包括:响应于所述AI应用的模型调用请求,根据待调用的目标AI模型的模型标识和所述AI应用的权限验证参数,对所述AI应用的模型使用权限进行验证;在所述AI应用的模型使用权限验证通过的情况下,在可信执行环境TEE中对所述目标AI模型的加密模型文件进行解密,得到解密模型文件;将所述解密模型文件加载至内存中,以运行所述目标AI模型;通过所述目标AI模型对所述AI应用的推理数据进行处理,得到推理结果。
在本申请实施例中,该第一设备根据待调用的目标AI模型的模型标识和AI应用的权限验证参数,对AI应用的模型使用权限进行验证,这样可以对该第一设备进行访问权限控制,确保该第一设备中的AI应用对目标AI模型的调用为合法调用。在AI应用的模型使用权限验证通过的情况下,该第一设备可以在TEE中对目标AI模型的加密模型文件进行解密,得到解密模型文件,并将解密模型文件直接加载至内存中,以运行目标AI模型,进而通过目标AI模型对AI应用的推理数据进行处理,得到推理结果。如此,在整个过程中,目标AI模型的解密模型文件都保存在内存中,也即该目标AI模型的解密模型文件不会落盘,其他设备无法访问该目标AI模型的解密模型文件,有效的保障了目标AI模型的安全应用。
可选地,所述通过所述目标AI模型对所述AI应用的推理数据进行处理,得到推理结果之后,还包括:在检测到所述AI应用结束运行的情况下,删除所述内存中的所述解密模型文件。
在本申请实施例中,在检测到AI应用结束运行的情况下,就删除内存中的解密模型文件,有效保障了模型文件的安全性。
可选地,所述第一设备中存储有加密的访问控制信息;所述根据待调用的目标AI模型的模型标识和所述AI应用的权限验证参数,对所述AI应用的模型使用权限进行验证的实现过程为:在所述TEE中对加密的访问控制信息进行解密,得到解密的访问控制信息;基于所述目标AI模型的模型标识、所述权限验证参数和解密的访问控制信息,对所述AI应用的模型使用权限进行验证。
在本申请实施例中,对加密的访问控制信息进行解密的过程在TEE中进行,这样可以有效防止该访问控制信息被篡改。
可选地,所述访问控制信息包括至少一个AI模型的访问控制条目,每个AI模型的访问控制条目包括相应AI模型的模型标识和授权验证参数;所述基于所述目标AI模型的模型标识、所述权限验证参数和解密的访问控制信息,对所述AI应用的模型使用权限进行验证,包括:基于所述目标AI模型的模型标识,从解密的访问控制信息中获取所述目标AI模型的访问控制条目;从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目;在查找到所述第一访问控制条目的情况下,确定所述AI应用的模型使用权限验证通过。其中,所述权限验证参数包括所述第一设备的设备标识、调用时间以及所述AI应用的应用标识中的至少一个。
在本申请实施例中,首先基于目标AI模型的模型标识从解密的访问控制信息中获取目标AI模型的访问控制条目,之后,再从获取到的目标AI模型的访问控制条目中,查找包括的授权验证参数与AI应用的权限验证参数相匹配的第一访问控制条目,在查找到第一访问控制条目的情况下,确定AI应用的模型使用权限验证通过。由于该权限验证参数中包含多个维度的验证参数,这样可以从多个维度对AI应用的使用权限进行细粒度的权限控制,确保该AI应用是一个合法且具有使用权限的应用。
可选地,所述目标AI模型的访问控制条目具有第一签名信息,所述第一签名信息为第二设备对所述目标AI模型的访问控制条目进行数字签名得到,所述第二设备为提供所述目标AI模型的设备;所述从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目之前,还包括:对所述第一签名信息进行验证;在所述第一签名信息的验证通过的情况下,执行从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目的步骤。
在本申请实施例中,在查找第一访问控制条目之前,也即在对AI应用的使用权限进行验证之前,可以对目标AI模型的访问控制条目进行验证,在验证通过的情况下,才去查找第一访问控制条目,这样可以保证目标AI模型的访问控制条目未被篡改。此时,再执行从目标AI模型的访问控制条目中查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目的步骤,以此来保证后续基于该访问控制条目所得到的权限验证结果的准确性。
可选地,所述解密模型文件具有第二签名信息,所述第二签名信息为第二设备对所述解密模型文件进行数字签名得到,所述第二设备为提供所述目标AI模型的设备;所述将所述解密模型文件加载至内存中之前,还包括:对所述第二签名信息进行验证;在所述第二签名信息的验证通过的情况下,执行将所述解密模型文件加载至内存中的步骤。
在本申请实施例中,解密模型文件还具有第二签名信息,在这种情况下,将解密模型文件加载至内存之前,对第二签名信息进行验证,在验证通过的情况下,才将解密模型文件加载至内存中运行,这样可以保证该解密模型文件是一个未被篡改的模型文件,保障了该模型文件的安全性。
可选地,所述模型调用方法还包括:基于安全传输协议向第二设备发送所述AI应用的权限申请请求,所述权限申请请求包括所述目标AI模型的模型标识和待申请的授权验证参数,所述第二设备为提供所述目标AI模型的设备;接收所述第二设备基于所述安全传输协议发送的所述目标AI模型的访问控制条目和解密模型文件,所述目标AI模型的访问控制条目为所述第二设备基于所述目标AI模型的模型标识和待申请的授权验证参数生成;在所述TEE中对所述目标AI模型的访问控制条目和解密模型文件进行加密,得到加密的所述目标AI模型的访问控制条目和加密模型文件;存储加密的所述目标AI模型的访问控制条目和所述加密模型文件。
在本申请实施例中,第一设备可以基于安全传输协议向第二设备发送AI应用的权限申请请求,并接收第二设备基于安全传输协议发送的目标AI模型的访问控制条目和解密模型文件。这样后续可以利用该访问控制条目对该AI应用的使用权限进行验证,保证该AI应用为一个合法且具有使用权限的应用。另外,由于第一设备在接收到第二设备发送的目标AI模型的访问控制条目和解密模型文件之后,直接在TEE中对访问控制条目和解密模型文件进行加密,这样可以防止该访问控制条目被篡改,并且第一设备无法获取该解密模型文件的明文,有效的保证了模型文件的安全性。
可选地,所述第一设备包括控制组件,所述AI应用的模型调用请求为所述AI应用通过调用所述控制组件提供的API接口向所述控制组件发送的请求。
第一设备的控制组件可以提供API接口,且该控制组件内部包含有适用于不同底层硬件架构的逻辑代码,这样AI应用的开发者在开发过程中,无需考虑底层硬件架构的不同所导致的代码实现的不同,极大的降低了AI应用的开发难度。
第二方面,提供了一种模型调用方法,应用于第二设备,所述第二设备中运行有目标AI模型,所述方法包括:接收第一设备发送的AI应用的模型调用请求,所述模型调用请求包括待调用的所述目标AI模型的模型标识、权限验证参数和推理数据,所述AI应用部署在所述第一设备中;基于所述目标AI模型的模型标识和所述权限验证参数,对所述AI应用的模型使用权限进行验证;在所述AI应用的模型使用权限验证通过的情况下,通过所述目标AI模型对所述推理数据进行处理,得到推理结果;向所述第一设备发送所述推理结果。
在本申请实施例中,目标AI模型运行于第二设备中,AI应用部署在第一设备中,第二设备可以接收第一设备发送的AI应用的模型调用请求,并基于该模型调用请求中包括的目标AI模型的模型标识和权限验证参数,对AI应用的模型使用权限进行验证,这样可以确保该AI应用为合法且具有使用权限的应用。在AI应用的模型使用权限验证通过的情况下,通过目标AI模型对AI应用的模型调用请求中包括的推理数据进行处理,得到推理结果,并向第一设备发送推理结果。由于在整个调用过程中目标AI模型一直运行于第二设备中,第一设备不会获取到目标AI模型的模型明文,这样有效的保障了目标AI模型的安全应用。
可选地,所述第二设备中存储有访问控制信息,所述访问控制信息包括所述目标AI模型的访问控制条目,所述目标AI模型的访问控制条目包括所述目标AI模型的模型标识和授权验证参数;所述基于所述目标AI模型的模型标识和所述权限验证参数,对所述AI应用的模型使用权限进行验证的实现过程为:基于所述目标AI模型的模型标识,从所述访问控制信息中获取所述目标AI模型的访问控制条目;从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目;在查找到所述第一访问控制条目的情况下,确定所述AI应用的模型使用权限验证通过。
在本申请实施例中,首先基于目标AI模型的模型标识从解密的访问控制信息中获取目标AI模型的访问控制条目,之后,再从获取到的目标AI模型的访问控制条目中,查找包括的授权验证参数与AI应用的权限验证参数相匹配的第一访问控制条目,在查找到第一访问控制条目的情况下,确定AI应用的模型使用权限验证通过。由于该权限验证参数中包含多个维度的验证参数,这样可以从多个维度对AI应用的使用权限进行验证,确保该AI应用是一个合法且具有使用权限的应用。
可选地,所述权限验证参数包括所述第一设备的设备标识、调用时间和待验证随机数,所述待验证随机数为所述第一设备中存储的、用于验证所述AI应用的模型使用权限的随机数,所述访问控制条目中的授权验证参数包括授权设备标识、授权时间段和授权随机数,所述第一访问控制条目是指包含的授权设备标识为所述第一设备的设备标识,包含的授权随机数为所述待验证随机数且包含的授权时间段包括所述调用时间的条目。
在本申请实施例中,权限验证参数和访问控制条目可以包括多个维度的参数,基于该权限验证参数和访问控制条目来对AI应用的使用权限进行验证,可以实现对AI应用对AI模型的访问权限的细粒度控制。
可选地,所述待验证随机数具有第三签名信息;所述从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目之前,还包括:在可信执行环境TEE中对所述待验证随机数的第三签名信息进行验证;在所述第三签名信息的验证通过的情况下,执行从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目的步骤。
在TEE中对待验证随机数的第三签名信息进行验证,可以确保后续从目标AI模型的访问控制条目中查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目时,该权限验证参数中包括的待验证随机数是一个未被篡改的合法的随机数。
可选地,所述模型调用方法还包括:接收所述第一设备基于安全传输协议发送的权限申请请求,所述权限申请请求包括所述目标AI模型的模型标识和待申请的授权验证参数;生成授权随机数;基于所述目标AI模型的模型标识、所述待申请的授权验证参数和所述授权随机数,生成所述目标AI模型的第一访问控制条目,所述第一访问控制条目中的授权验证参数包括所述待申请的授权验证参数和所述授权随机数。
在本申请实施例中,第二设备可以接收第一设备基于安全传输协议发送的权限申请请求,并生成授权随机数,然后基于权限申请请求中包括的目标AI模型的模型标识、待申请的授权验证参数和授权随机数,生成目标AI模型的第一访问控制条目。这样,后续根据该第一访问控制条目对AI应用的模型使用权限进行验证,可以对第一设备进行访问权限控制,以此来保障调用该目标AI模型的设备为具有合法使用权限的设备。
可选地,所述生成所述目标AI模型的第一访问控制条目之后,还包括:在TEE中对所述第一访问控制条目进行数字签名,得到签名的第一访问控制条目,所述签名的第一访问控制条目具有第三签名信息;向所述第一设备发送签名的第一访问控制条目。
在本申请实施例中,在生成目标AI模型的第一访问控制条目之后,在TEE中对该第一访问控制条目进行数字签名,这样可以保证该访问控制条目不被篡改。
可选地,所述签名的第一访问控制条目是基于第一私钥进行数字签名得到,所述第一私钥为所述目标AI模型的模型证书的私钥;所述向所述第一设备发送签名的第一访问控制条目时,所述方法还包括:向所述第一设备发送通过第二私钥签名的所述第二设备的设备证书以及通过第三私钥签名的所述目标AI模型的模型证书,所述目标AI模型的模型证书包括所述目标AI模型的模型证书的公钥;其中,所述第二私钥为根证书的私钥,所述第三私钥为所述第二设备的设备证书的私钥,签名的第二设备的设备证书用于所述第一设备对签名的所述目标AI模型的模型证书进行签名验证,签名的目标AI模型的模型证书用于所述第一设备对签名的第一访问控制条目进行签名验证。
由于第一访问控制条目是基于第一私钥(也即目标AI模型的模型证书私钥)进行数字签名得到的,因此第一设备对该第一访问控制条目进行验证的时候,可以利用目标AI模型的模型证书公钥对该第一访问控制条目进行验证,而该模型证书公钥保存在目标AI模型的模型证书中,该模型证书由第二设备的设备证书私钥进行签名,该第二设备的设备证书公钥保存在该第二设备中。因此在向第一设备发送签名的访问控制条目的时候,还需向该第一设备发送第二设备的设备证书和目标AI模型的模型证书,以便第二设备对该第一访问控制条目进行验证。
可选地,所述第二设备中存储有通过所述第三私钥加密后的第一私钥,以及通过所述第二设备的设备根密钥加密的第三私钥,所述第二设备的设备根密钥存储于所述TEE中;所述在TEE中对所述第一访问控制条目进行数字签名时,还包括:在所述TEE中基于所述第二设备的设备根密钥对加密的第三私钥进行解密,并基于所述第三私钥获得所述第一私钥。
可选地,所述第二设备中存储有通过所述第二设备的设备根密钥加密的第一私钥,所述第二设备的设备根密钥存储于所述TEE中;所述在TEE中对所述第一访问控制条目进行数字签名时,还包括:在所述TEE中基于所述第二设备的设备根密钥对加密的第一私钥进行解密,获得所述第一私钥。
可选地,所述模型调用方法还包括:生成所述目标AI模型的模型证书和所述第一私钥;在所述TEE中通过所述第三私钥对所述目标AI模型的模型证书进行数字签名,并通过所述第三私钥或所述第二设备的设备根密钥加密所述第一私钥;保存签名的所述目标AI模型的模型证书以及加密的第一私钥。
在本申请实施例中,提供目标AI模型的第二设备在开发出一个AI模型之后,可以为AI模型生成一个模型证书,以便在后续调用过程中基于该模型证书对该AI模型进行密码学方面的处理,从而保证该AI模型的安全性。
第三方面,提供了一种模型调用装置,所述模型调用装置具有实现上述第一方面中模型调用方法的功能。所述模型调用装置包括至少一个模块,该至少一个模块包括验证模块、解密模块、运行模块、处理模块。
验证模块,用于响应于所述AI应用的模型调用请求,根据待调用的目标AI模型的模型标识和所述AI应用的权限验证参数,对所述AI应用的模型使用权限进行验证;解密模块,用于在所述AI应用的模型使用权限验证通过的情况下,在可信执行环境TEE中对所述目标AI模型的加密模型文件进行解密,得到解密模型文件;运行模块,用于将所述解密模型文件加载至内存中,以运行所述目标AI模型;处理模块,用于通过所述目标AI模型对所述AI应用的推理数据进行处理,得到推理结果。
可选地,所述装置还包括:删除模块,用于在检测到所述AI应用结束运行的情况下,删除所述内存中的所述解密模型文件。
可选地,所述第一设备中存储有加密的访问控制信息;所述验证模块包括:解密子模块,用于在所述TEE中对加密的访问控制信息进行解密,得到解密的访问控制信息;验证子模块,用于基于所述目标AI模型的模型标识、所述权限验证参数和解密的访问控制信息,对所述AI应用的模型使用权限进行验证。
可选地,所述访问控制信息包括至少一个AI模型的访问控制条目,每个AI模型的访问控制条目包括相应AI模型的模型标识和授权验证参数;所述验证子模块用于:基于所述目标AI模型的模型标识,从解密的访问控制信息中获取所述目标AI模型的访问控制条目;从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目;在查找到所述第一访问控制条目的情况下,确定所述AI应用的模型使用权限验证通过。
可选地,所述目标AI模型的访问控制条目具有第一签名信息,所述第一签名信息为第二设备对所述目标AI模型的访问控制条目进行数字签名得到,所述第二设备为提供所述目标AI模型的设备;所述验证子模块还用于:对所述第一签名信息进行验证;在所述第一签名信息的验证通过的情况下,执行从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目的步骤。
可选地,所述权限验证参数包括所述第一设备的设备标识、调用时间以及所述AI应用的应用标识中的至少一个。
可选地,所述解密模型文件具有第二签名信息,所述第二签名信息为第二设备对所述解密模型文件进行数字签名得到,所述第二设备为提供所述目标AI模型的设备;所述装置还用于:对所述第二签名信息进行验证;在所述第二签名信息的验证通过的情况下,触发所述运行模块执行将所述解密模型文件加载至内存中的步骤。
可选地,所述装置还用于:基于安全传输协议向第二设备发送所述AI应用的权限申请请求,所述权限申请请求包括所述目标AI模型的模型标识和待申请的授权验证参数,所述第二设备为提供所述目标AI模型的设备;接收所述第二设备基于所述安全传输协议发送的所述目标AI模型的访问控制条目和解密模型文件,所述目标AI模型的访问控制条目为所述第二设备基于所述目标AI模型的模型标识和待申请的授权验证参数生成;在所述TEE中对所述目标AI模型的访问控制条目和解密模型文件进行加密,得到加密的所述目标AI模型的访问控制条目和加密模型文件;存储加密的所述目标AI模型的访问控制条目和所述加密模型文件。
可选地,所述第一设备包括控制组件,所述AI应用的模型调用请求为所述AI应用通过调用所述控制组件提供的API接口向所述控制组件发送的请求。
第四方面,提供了一种模型调用装置,所述模型调用装置具有实现上述第二方面中模型调用方法行为的功能。所述模型调用装置包括至少一个模块,该至少一个模块包括接收模块、验证模块、处理模块、发送模块。
接收模块,用于接收第一设备发送的AI应用的模型调用请求,所述模型调用请求包括待调用的所述目标AI模型的模型标识、权限验证参数和推理数据,所述AI应用部署在所述第一设备中;验证模块,用于基于所述目标AI模型的模型标识和所述权限验证参数,对所述AI应用的模型使用权限进行验证;处理模块,用于在所述AI应用的模型使用权限验证通过的情况下,通过所述目标AI模型对所述推理数据进行处理,得到推理结果;发送模块,用于向所述第一设备发送所述推理结果。
可选地,所述第二设备中存储有访问控制信息,所述访问控制信息包括所述目标AI模型的访问控制条目,所述目标AI模型的访问控制条目包括所述目标AI模型的模型标识和授权验证参数;所述验证模块用于:基于所述目标AI模型的模型标识,从所述访问控制信息中获取所述目标AI模型的访问控制条目;从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目;在查找到所述第一访问控制条目的情况下,确定所述AI应用的模型使用权限验证通过。
可选地,所述权限验证参数包括所述第一设备的设备标识、调用时间和待验证随机数,所述待验证随机数为所述第一设备中存储的、用于验证所述AI应用的模型使用权限的随机数,所述访问控制条目中的授权验证参数包括授权设备标识、授权时间段和授权随机数,所述第一访问控制条目是指包含的授权设备标识为所述第一设备的设备标识,包含的授权随机数为所述待验证随机数且包含的授权时间段包括所述调用时间的条目。
可选地,所述待验证随机数具有第三签名信息;所述验证模块主要用于:在可信执行环境TEE中对所述待验证随机数的第三签名信息进行验证;在所述第三签名信息的验证通过的情况下,执行从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目的步骤。
可选地,该装置还用于:接收所述第一设备基于安全传输协议发送的权限申请请求,所述权限申请请求包括所述目标AI模型的模型标识和待申请的授权验证参数;生成授权随机数;基于所述目标AI模型的模型标识、所述待申请的授权验证参数和所述授权随机数,生成所述目标AI模型的第一访问控制条目,所述第一访问控制条目中的授权验证参数包括所述待申请的授权验证参数和所述授权随机数。
可选地,所述装置用于:在TEE中对所述第一访问控制条目进行数字签名,得到签名的第一访问控制条目,所述签名的第一访问控制条目具有第三签名信息;向所述第一设备发送签名的第一访问控制条目。
可选地,所述签名的第一访问控制条目是基于第一私钥进行数字签名得到,所述第一私钥为所述目标AI模型的模型证书的私钥;所述向所述第一设备发送签名的第一访问控制条目时,所述装置还用于:向所述第一设备发送通过第二私钥签名的所述第二设备的设备证书以及通过第三私钥签名的所述目标AI模型的模型证书,所述目标AI模型的模型证书包括所述目标AI模型的模型证书的公钥;其中,所述第二私钥为根证书的私钥,所述第三私钥为所述第二设备的设备证书的私钥,签名的第二设备的设备证书用于所述第一设备对签名的所述目标AI模型的模型证书进行签名验证,签名的目标AI模型的模型证书用于所述第一设备对签名的第一访问控制条目进行签名验证。
可选地,所述第二设备中存储有通过所述第三私钥加密后的第一私钥,以及通过所述第二设备的设备根密钥加密的第三私钥,所述第二设备的设备根密钥存储于所述TEE中;所述装置还用于:在所述TEE中基于所述第二设备的设备根密钥对加密的第三私钥进行解密,并基于所述第三私钥获得所述第一私钥。
可选地,所述第二设备中存储有通过所述第二设备的设备根密钥加密的第一私钥,所述第二设备的设备根密钥存储于所述TEE中;所述装置还用于:在所述TEE中基于所述第二设备的设备根密钥对加密的第一私钥进行解密,获得所述第一私钥。
可选地,所述装置还用于:生成所述目标AI模型的模型证书和所述第一私钥;在所述TEE中通过所述第三私钥对所述目标AI模型的模型证书进行数字签名,并通过所述第三私钥或所述第二设备的设备根密钥加密所述第一私钥;保存签名的所述目标AI模型的模型证书以及加密的第一私钥。
第五方面,提供了一种模型调用装置,所述模型调用装置的结构中包括处理器和存储器,所述存储器用于存储支持模型调用装置执行上述第一方面或第二方面所提供的模型调用方法的程序,以及存储用于实现上述第一方面或第二方面所提供的模型调用方法所涉及的数据。所述处理器被配置为用于执行所述存储器中存储的程序。
第六方面,提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的模型调用方法。
第七方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面或第二方面所述的模型调用方法。
上述第三至第七方面所获得的技术效果与第一方面或第二方面中对应的技术手段获得的技术效果近似,在这里不再赘述。
本申请实施例提供的技术方案带来的有益效果至少包括:
在本申请实施例中,该第一设备根据待调用的目标AI模型的模型标识和AI应用的权限验证参数,对AI应用的模型使用权限进行验证,这样可以对该第一设备进行访问权限控制,确保该AI应用为合法且具有使用权限的应用。在AI应用的模型使用权限验证通过的情况下,该第一设备可以在TEE中对目标AI模型的加密模型文件进行解密,得到解密模型文件,并将解密模型文件直接加载至内存中,以运行目标AI模型,进而通过目标AI模型对AI应用的推理数据进行处理,得到推理结果。如此,在整个过程中,目标AI模型的解密模型文件都保存在内存中,也即该目标AI模型的解密模型文件不会落盘,其他设备无法访问该解密模型文件,有效的保障了目标AI模型的安全应用。
附图说明
图1是本申请实施例提供的一种模型调用方法所涉及的系统架构图;
图2是本申请实施例提供的一种模型证书生成和处理方法的流程图;
图3是本申请实施例提供示出的一种第二设备中各个组件交互以生成模型证书和并进行处理的流程图;
图4是本申请实施例提供的一种本地调用之前AI应用对目标AI模型的使用权限进行申请的方法流程图;
图5是本申请实施例示出的一种本地调用时第一设备和第二设备之间交互以实现AI应用的权限申请的方法流程图;
图6是本申请实施例提供的一种对目标AI模型进行本地调用的方法流程图;
图7是本申请实施例示出的一种第一设备中各个组件之间进行交互以实现模型本地调用的流程图;
图8是本申请实施例示出的另一种第一设备中各个组件之间进行交互以实现模型本地调用的流程图;
图9是本申请实施例提供的一种远程调用时AI应用对目标AI模型的使用权限进行申请的方法流程图;
图10是本申请实施例示出的一种远程调用时第一设备和第二设备之间交互以实现AI应用的权限申请的流程图;
图11是本申请实施例提供的一种对目标AI模型进行远程模型调用的方法流程图;
图12是本申请实施例示出的一种第一设备和第二设备的组件之间交互以实现远程调用的流程图;
图13是本申请实施例提供的一种模型调用的装置结构示意图;
图14是本申请实施例提供的另一种模型调用的装置结构示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
在对本申请实施例进行详细的解释说明之前,先对本申请实施例的应用场景予以介绍。
近年来,随着计算机技术以及AI技术的快速发展,AI应用被广泛应用于各行各业中。其中,AI应用是指通过调用AI模型来实现业务逻辑的应用。AI模型在整个AI应用的开发和执行中起到了至关重要的作用。通常,AI模型的开发方和AI应用的开发方可能不是同一方。对于AI模型的开发方而言,一款AI模型在投入应用之前,需要经历设计、训练、验证等多个阶段,整个过程需要耗费大量的计算资源与时间成本。因此,当AI模型投入应用系统之后,如何保障AI模型的各项参数的安全性就显得尤为重要。基于此,本申请实施例提供了一种模型调用方法,该方法可以应用于AI应用进行AI模型的调用过程中,以此来保护AI模型的各项参数的安全性。
接下来对本申请实施例涉及的系统架构进行介绍。
图1是本申请实施例提供的一种模型调用方法所涉及的系统架构图。如图1所示,该系统中包括第一设备101和第二设备102。其中,第一设备101为部署有AI应用的设备,第二设备102为提供目标AI模型的设备。该第一设备101和第二设备102之间可以建立有通信连接。
其中,如图1所示,该第一设备101中部署有AI应用1011,且该第一设备101中还可以包括控制组件1012、运行于TEE中的安全组件1013以及推理组件1014。其中,控制组件1012可以分别与安全组件1013和推理组件1014进行交互。并且,该AI应用1011可以与控制组件1012进行通信。
第二设备102中存储有目标AI模型的模型文件,并且,该第二设备102也可以包括控制组件1021、运行于TEE中的安全组件1022、推理组件1023,且第二设备中的控制组件1021也可以与安全组件1022、推理组件1023进行交互。第一设备101和第二设备102可以通过各自的控制组件进行交互。
需要说明的是,该第一设备的控制组件1012可以提供API接口,AI应用1011可以通过控制组件1012提供的API接口进行模型调用,该控制组件1012内部包含适用于不同硬件架构的逻辑代码。
在一种可能的实现方式中,第一设备101上的AI应用可以通过本地调用的方式来调用AI模型。也即,第二设备102可以预先将AI应用1011所需的目标AI模型部署至第一设备101。在AI应用1011需要调用目标AI模型时,AI应用1011可以向控制组件1012发送模型调用请求。控制组件1012在接收到AI应用1011发送的模型调用请求之后,可以根据该模型调用请求中包括的目标AI模型的模型标识和AI应用的权限验证参数,对AI应用的模型使用权限进行验证。在验证通过的情况下,控制组件1012可以向安全组件1013发送加密的模型文件,安全组件1013在接收到控制组件发送的加密模型文件之后,对该加密的模型文件进行解密。
之后,安全组件1013可以将解密模型文件发送至控制组件1012。控制组件1012在接收到解密模型文件后,向推理组件1014发送解密模型文件和推理数据,推理组件1014在接收到控制组件1012发送的解密模型文件和推理数据之后,加载该解密模型文件,以运行目标AI模型,进而通过目标AI模型对该推理数据进行处理,得到推理结果。之后该推理组件1014可以将目标AI模型的推理结果发送至控制组件1012,进而由控制组件1012将该推理结果反馈至AI应用1011。
在另一种可能的实现方式中,第一设备101上的AI应用可以通过远程调用的方式来调用AI模型。也即,第二设备102可以不将AI应用1011所需调用的目标AI模型部署至第一设备101。在AI应用1011需要调用目标AI模型时,AI应用1011可以向控制组件1012发送模型调用请求。控制组件1012在接收到AI应用1011发送的模型调用请求之后,将接收到的模型调用请求发送至控制组件1021。控制组件1021在接收到模型调用请求之后,基于目标AI模型的模型标识与权限验证参数对AI应用的模型使用权限进行验证。在验证通过的情况下,该控制组件1021可以向推理组件1023发送推理数据。推理组件1023在接收到控制组件1021发送的推理数据之后,通过运行的目标AI模型对该推理数据进行处理,得到推理结果。之后,将该推理结果发送至控制组件1021。控制组件1021在接收到推理结果之后,将该推理结果发送至控制组件1012,进而由控制组件1012将该推理结果反馈至AI应用1011。
需要说明的是,如果上述第一设备101中的AI应用在调用AI模型时,都是通过远程调用的方式来实现,则第一设备101中也可以不包括推理组件1014。如果上述第一设备101中的AI应用在调用AI模型时,均是通过本地调用的方式来实现,则第二设备102也可以不包括推理组件1023。本申请实施例对此不作限定。
另外,上述第一设备和第二设备中的各个组件的划分仅代表逻辑上的划分,并不对其物理实现做任何的限定。例如,上述任一设备中的控制组件和推理组件可以是该设备中两个不同的应用,或不同的进程。可选地,上述任一设备中的控制组件和推理组件也可以是同一个进程中两个不同的线程,本申请实施例对此不作限定。另外,上述任一设备中的安全组件可以是指该设备中运行在TEE中的安全应用。
还需要说明的是,上述的第一设备可以为终端设备,也可以为用于提供AI应用服务的服务器,当第一设备为服务器时,该第一设备可以为云服务中心的服务器。上述的第二设备可以为用于提供AI模型的服务器。
在本申请实施例中,第一设备和第二设备中可以存储有多种密码信息,第一设备或第二设备可以基于存储的密码信息对目标AI模型进行保护和验证。示例性地,第一设备和第二设备中都包括设备根密钥,该设备根密钥具有唯一性,也即一个设备有一个设备根密钥,且该设备根密钥保存在相应设备的TEE中。每个设备中还保存有设备证书,该设备证书可以为自签名证书,也可以为证书颁发机构(certificate authority,CA)签名的证书,本申请实施例对此不作限定。其中,该设备证书中包含设备证书公钥,与该设备证书公钥对应的设备证书私钥可以通过相应设备的设备根密钥进行加密后保存在相应设备中。
在本申请实施例中,提供目标AI模型的第二设备在开发出一个AI模型之后,可以为AI模型生成一个模型证书,以便在后续调用过程中基于该模型证书对该AI模型进行密码学方面的处理,从而保证该AI模型的安全性。接下来首先对AI模型的模型证书生成和处理方法进行介绍。
图2是本申请实施例提供的一种模型证书生成和处理方法的流程图。该方法可以应用于前述介绍的第二设备中,下文中以第二设备生成目标AI模型的模型证书为例对该过程进行说明,如图2所示,该过程包括以下步骤:
步骤201:基于目标AI模型的模型信息生成目标AI模型的模型证书、模型证书公钥和私钥。
由前述介绍可知,第二设备中包括控制组件和运行于TEE中的安全组件。基于此,第二设备的控制组件可以基于目标AI模型的模型信息生成目标AI模型的模型证书、以及该目标AI模型的模型证书公钥和模型证书私钥,为了方便说明,将该目标AI模型的模型证书私钥称作第一私钥。其中,目标AI模型的模型信息可以包括目标AI模型所涉及的各项参数、目标AI模型的算法文件、目标AI模型的模型标识。
步骤202:对所述目标AI模型的模型证书和模型证书私钥进行处理。
在生成目标AI模型的模型证书公钥、第一私钥以及目标AI模型的模型证书之后,控制组件可以将生成的目标AI模型的模型证书、第一私钥以及由第二设备的设备根密钥加密的第二设备的设备证书私钥发送至安全组件,以便安全组件对该目标AI模型的模型证书和第一私钥进行处理。为了方便说明,将该第二设备的设备证书私钥称作第三私钥。
由前述介绍可知,第三私钥由第二设备的设备根密钥加密保存,且该第二设备的设备根密钥保存在TEE中。基于此,安全组件在接收到控制组件发送的模型证书、第一私钥以及第三私钥后,首先获取存储在TEE中的第二设备的设备根密钥。在获取到第二设备的设备根密钥之后,安全组件通过该第二设备的设备根密钥对该第三私钥进行解密。之后,该安全组件利用解密得到的第三私钥对目标AI模型的模型证书进行数字签名,并利用第三私钥对第一私钥进行加密。将经第三私钥进行数字签名后的目标AI模型的模型证书和利用第三私钥加密后的第一私钥发送至控制组件。控制组件可以将签名后的目标AI模型的模型证书和加密的第一私钥保存在存储器中,等待后续使用。
可选地,在一些可能的实现方式中,上述安全组件在获取到第二设备的设备根密钥之后,可以直接利用该第二设备的设备根密钥对第一私钥进行加密,并利用该第二设备的设备根密钥对第三私钥进行解密。之后,利用第三私钥对目标AI模型的模型证书进行数字签名。之后,将经第三私钥进行数字签名后的目标AI模型的模型证书和利用第二设备的设备根密钥加密后的第一私钥发送至控制组件。控制组件可以将签名后的目标AI模型的模型证书和加密的第一私钥保存在存储器中,等待后续使用。
示例性地,图3是本申请实施例示出的另一种模型证书生成的流程图。参见图3,该模型证书生成流程包括以下步骤:
1:控制组件生成目标AI模型的模型证书、模型证书公钥和私钥。
2:控制组件将生成的目标AI模型的模型证书、模型证书公钥和第二设备的设备证书私钥发送至安全组件。
3:安全组件利用第二设备的设备根密钥对第二设备的设备证书私钥进行解密,利用解密得到的第二设备的设备证书私钥对目标AI模型的模型证书进行数字签名,并利用该第二设备的设备证书私钥对模型证书私钥进行加密。
4:安全组件将签名后的目标AI模型的模型证书和加密后的模型证书私钥发送至控制组件。
5:控制组件接收并保存签名后的目标AI模型的模型证书和加密后的模型证书私钥。
在本申请实施例中,第一设备中的AI应用在调用目标AI模型之前,AI应用首先可以对AI模型进行使用权限的申请。由前述介绍可知,第一设备中的AI应用在调用AI模型时有两种不同的调用方式,在采用的调用方式不同的情况下,AI应用的权限申请方法也不同。基于此,接下来首先对采用本地调用方式的情况下,AI应用进行权限申请的方法进行介绍。
图4是本申请实施例提供的一种本地调用时AI应用的权限申请方法的流程图。其中,以第一设备中的AI应用申请目标AI模型的使用权限为例进行介绍。参见图4,该方法包括以下步骤:
步骤401:基于安全传输协议向第二设备发送AI应用的权限申请请求,权限申请请求包括目标AI模型的模型标识和待申请的授权验证参数。
在本申请实施例中,第一设备的控制组件与第二设备的控制组件可以基于安全传输协议建立通信连接,之后,第一设备的控制组件可以基于安全传输协议向第二设备的控制组件发送AI应用的权限申请请求,该权限申请请求中包括目标AI模型的模型标识和待申请的授权验证参数。
其中,该安全传输协议可以为超文本传输安全协议(hypertext transferprotocol secure,HTTPS)、安全传输层协议(transport layer security,TLS)或其他安全传输协议,本申请实施例对此不作限定。当第一设备的控制组件基于该安全传输协议与第二设备的控制组件建立通信连接后,可以保证该第一设备为一个合法且具有申请使用权限的设备。
需要说明的是,该第一设备的控制组件可以提供API接口,AI应用可以通过API接口向该第一设备的控制组件发送初始的权限申请请求,该初始的权限申请请求中包括该AI应用待调用的目标AI模型的模型标识和调用时间段。当第一设备中的控制组件接收到AI应用发送的初始的权限申请请求之后,该控制组件可以提取该第一设备的设备标识。其中,该第一设备的设备标识可以为一个用于唯一标识该第一设备的物理标识,例如设备编码、设备条码等;或者该第一设备的设备标识也可以为该第一设备当前使用的一个网络协议(internet protocol,IP)地址。这样该控制组件可以将提取到的第一设备的设备标识添加到该初始的权限申请请求中。之后,该控制组件可以基于目标AI模型的模型标识、调用时间段和第一设备的设备标识生成AI应用的权限申请请求。其中,该权限申请请求中包括目标AI模型的模型标识和待申请的授权验证参数,该待申请的授权验证参数中包括调用时间段和第一设备的设备标识。
可选地,在一些可能的实现方式中,AI应用向第一设备的控制组件发送的初始的权限申请请求中还可以包括一个AI应用的应用标识,在这种情况下,最后生成的权限申请请求中可以包括目标AI模型的模型标识、调用时间段、AI应用的应用标识、第一设备的设备标识。当然,上述是本申请实施例中给出的权限申请请求中几种可能的参数,在实际应用中,根据第二设备的权限控制需要,该权限申请请求中也可以包括其他种类的参数,本申请实施例对此不做限定。
在生成AI应用的权限申请请求之后,该第一设备的控制组件可以基于安全传输协议向第二设备的控制组件发送该AI应用的权限申请请求。
步骤402:接收第二设备基于安全传输协议发送的目标AI模型的访问控制条目和解密模型文件,目标AI模型的访问控制条目为第二设备基于目标AI模型的模型标识和待申请的授权验证参数生成。
在本申请实施例中,当第二设备中的控制组件接收到AI应用的权限申请请求之后,可以根据该权限申请请求中包括的目标AI模型的模型标识和待申请的授权验证参数生成目标AI模型的访问控制条目。然后该第二设备可以基于安全传输协议向第一设备发送目标AI模型的访问控制条目和解密模型文件。相应地,第一设备接收第二设备发送的目标AI模型的访问控制条目和解密模型文件。其中,该解密模型文件为待调用的目标AI模型的明文模型文件。
示例性地,由前述介绍可知,该权限申请请求中的待申请的授权验证参数可以包括调用时间段和第一设备的设备标识。基于此,当第二设备的控制组件在接收到AI应用的权限申请请求之后,可以生成一个授权随机数。之后,该第二设备中的控制组件可以将权限申请请求中包括的目标AI模型的模型标识、调用时间段、第一设备的设备标识和授权随机数对应存储,从而得到该目标AI模型的访问控制条目。此时,该访问控制条目中包括的调用时间段即为经过第二设备授权的授权时间段,第一设备的设备标识即为该第二设备授权的允许使用该目标AI模型的授权设备标识。由此可见,由第二设备生成的某个AI模型的访问控制条目可以包括该AI模型的模型标识、授权时间段、授权设备标识和授权随机数。
需要说明的是,第二设备在向第一设备发送目标AI模型的访问控制条目和解密模型文件之前,还可以对目标AI模型的访问控制条目和解密模型文件进行数字签名。
示例性地,第二设备中的控制组件在生成目标AI模型的访问控制条目之后,可以将该目标AI模型的访问控制条目、解密模型文件以及前述被第三私钥加密的第一私钥发送至第二设备中的安全组件中进行数字签名。由前述介绍可知,该第三私钥由第二设备的设备根密钥加密保存在第二设备中,且该第二设备的设备根密钥保存在该第二设备的TEE中。基于此,当安全组件在接收到控制组件发送的访问控制条目、解密模型文件以及被第三私钥加密的第一私钥后,该安全组件首先获取TEE中存储的设备根密钥,然后利用设备根密钥对第三私钥进行解密。之后,再利用该第三私钥对加密的第一私钥进行解密,得到解密的第一私钥。在得到解密的第一私钥之后,该安全组件可以利用解密的第一私钥对接收到的目标AI模型的访问控制条目进行数字签名,得到具有第一签名信息的目标AI模型的访问控制条目,该安全组件还可以利用第一私钥对解密模型文件进行数字签名,得到具有第二签名信息的解密模型文件。
可选地,如果上述第三私钥是由第二设备的设备根密钥加密的,在这种情况下,当安全组件接收到控制组件发送的访问控制条目、解密模型文件以及被第二设备的设备根密钥加密的第一私钥后,该安全组件首先获取TEE中存储的设备根密钥,然后利用设备根密钥对第一私钥进行解密。在得到解密的第一私钥后,该安全组件可以参考上述介绍的方法对目标AI模型的访问控制条目和解密模型文件进行数字签名,得到具有第一签名信息的目标AI模型的访问控制条目和具有第二签名信息的解密模型文件,本申请实施例对此不再赘述。
之后,第二设备的安全组件可以将具有第一签名信息的目标AI模型的访问控制条目和具有第二签名信息的解密模型文件发送给第二设备的控制组件,进而由第二设备的控制组件将上述信息发送至第一设备的控制组件。
由于第二设备的控制组件向第一设备的控制组件发送的目标AI模型的访问控制条目和解密模型文件都是具有签名信息的,因此为了保证在后续调用过程中第一设备的控制组件能够对接收到的目标AI模型的访问控制条目和解密模型文件进行验证,第二设备的控制组件还可以向第一设备的控制组件发送第二设备的设备证书和目标AI模型的模型证书。当第一设备中的控制组件在接收到第二设备的控制组件发送的上述信息之后,首先可以对该目标AI模型的模型证书进行验证,来查看该目标AI模型的模型证书是否被篡改过。其中,由前述介绍可知,该目标AI模型的模型证书是由第三私钥(即第二设备的设备证书私钥)进行数字签名的,由于第二设备的设备证书中包含设备证书公钥。基于此,该第一设备的控制组件对目标AI模型的模型证书进行验证的时候,可以利用第二设备的设备证书中包括的设备证书公钥对该模型证书进行验证。验证通过之后,说明该目标AI模型的模型证书没有被篡改,该第一设备的控制组件保存该目标AI模型的模型证书。之后,该第一设备的控制组件可以将接收到的具有第一签名信息的访问控制条目、具有第二签名信息的解密模型文件发送至第一设备中的安全组件申请加密。
步骤403:在TEE中对目标AI模型的访问控制条目和解密模型文件进行加密,得到加密的目标AI模型的访问控制条目和加密模型文件。
示例性地,第一设备的安全组件可以利用第一设备的设备根密钥对具有第一签名信息的访问控制信息和具有第二签名信息的解密模型文件进行加密处理,从而得到加密的目标AI模型的访问控制条目和加密模型文件。之后,第一设备的安全组件将加密的访问控制条目和加密模型文件发送至该第一设备中的控制组件。
步骤404:存储加密的目标AI模型的访问控制条目和加密模型文件。
第一设备的控制组件在接收到安全组件发送的加密的访问控制条目和加密模型文件之后,可以将接收到的该加密后的访问控制条目和加密模型文件保存在存储器中,等待后续使用。
需要说明的是,对于每个AI应用在调用目标AI模型之前,都可以通过上述介绍的方法进行权限申请,得到加密的访问控制条目,这些加密的访问控制条目构成加密的访问控制信息。
在本申请实施例中,第一设备可以基于安全传输协议向第二设备发送AI应用的权限申请请求,并接收第二设备基于安全传输协议发送的目标AI模型的访问控制条目和解密模型文件。这样后续可以利用该访问控制条目对该AI应用的使用权限进行验证,保证该AI应用为一个合法且具有使用权限的应用。
另外,由于第一设备在接收到第二设备发送的目标AI模型的访问控制条目和解密模型文件之后,直接在TEE中对访问控制条目和解密模型文件进行加密,这样可以防止该访问控制条目被篡改,并且第一设备无法获取该解密模型文件的明文,有效的保证了模型文件的安全性。
图5是本申请实施例示出的另一种本地调用时AI应用的权限申请请求的流程图。参见图5,该流程包括以下步骤:
1:AI应用向第一设备的控制组件发送初始的权限申请请求,初始的权限申请请求包括目标AI模型的模型标识和调用时间段。
2:第一设备的控制组件提取第一设备的设备标识,并将提取到的第一设备的设备标识添加到初始的权限申请请求中生成AI应用的权限申请请求。
3:第一设备的控制组件向第二设备的控制组件发送AI应用的权限申请请求。
4:第二设备的控制组件接收AI应用的权限申请请求,并生成授权随机数。
5:第二设备的控制组件基于权限申请请求和授权随机数生成目标AI模型的访问控制条目。
6:第二设备的控制组件向第二设备的安全组件发送目标AI模型的访问控制条目和解密模型文件。
7:第二设备的安全组件对目标AI模型的访问控制条目和解密模型文件进行数字签名。
8:第二设备的安全组件将签名后的目标AI模型的访问控制条目和解密模型文件发送至第二设备的控制组件。
9:第二设备的控制组件将签名的目标AI模型的访问控制条目、解密模型文件、第二设备的设备证书、目标AI模型的模型证书发送至第一设备的控制组件。
10:第一设备的控制组件基于第二设备的设备证书对目标AI模型的模型证书进行验证。
11:第一设备的控制组件将签名的访问控制条目和解密模型文件发送至第一设备的安全组件。
12:第一设备的安全组件对签名的访问控制条目和解密模型文件进行加密。
13:第一设备的安全组件向第一设备的控制组件发送加密的访问控制条目和加密模型文件。
14:第一设备的控制组件将接收到的加密的访问控制条目和加密模型文件保存在存储器中。
在通过上述图4或5介绍的方法对目标AI模型进行权限申请之后,接下来第一设备中的AI应用可以通过下述介绍的方法对目标AI模型进行本地调用。
图6是本申请实施例提供的一种本地模型调用方法的流程图,该方法可以应用于前述介绍的第一设备中,该第一设备中部署有AI应用。参见图6,该方法包括以下步骤:
步骤601:响应于AI应用的模型调用请求,根据待调用的目标AI模型的模型标识和AI应用的权限验证参数,对AI应用的模型使用权限进行验证。
在本申请实施例中,第一设备中部署有AI应用,且该第一设备还可以包括控制组件、安全组件和推理组件。其中,第一设备的控制组件可以提供API接口,基于此,AI应用可以通过调用该控制组件提供的API接口向该控制组件发送模型调用请求。其中,该模型调用请求包括目标AI应用的模型标识、AI应用的权限验证参数和推理数据。
第一设备的控制组件可以接收AI应用的模型调用请求,进而根据待调用的目标AI模型的模型标识和AI应用的权限验证参数,对AI应用的模型使用权限进行验证。
需要说明的是,该第一设备中存储有加密的访问控制信息,该访问控制信息中包括至少一个AI模型的访问控制条目。其中,本申请实施例中的至少一个是指一个或多个,且该至少一个AI模型的访问控制条目指的是该第一设备中的AI应用已经申请到使用权限的AI模型的访问控制条目。例如,该至少一个AI模型的访问控制条目可以是由第一设备中的AI应用通过前述图4或图5所示的权限申请方法获得的。
基于此,第一设备的控制组件首先可以在TEE中对加密的访问控制信息进行解密,得到解密的访问控制信息。之后,基于目标AI模型的模型标识、权限验证参数和解密的访问控制信息,对AI应用的模型使用权限进行验证。
由于该访问控制信息中包括至少一个AI模型的访问控制条目,且每个访问控制条目都由第一设备的根密钥进行加密。基于此,第一设备的控制组件首先将加密的访问控制信息发送至安全组件,安全组件在接收到加密的访问控制信息之后,获取TEE中存储的第一设备的根密钥,然后利用该第一设备的根密钥对该访问控制信息中包括的每个AI模型的访问控制条目进行解密,得到解密的访问控制信息。之后,安全组件将解密的访问控制信息发送至控制组件。
当控制组件接收到解密的访问控制信息之后,该控制组件可以基于目标AI模型的模型标识,从解密的访问控制信息中获取目标AI模型的访问控制条目;从目标AI模型的访问控制条目中,查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目;在查找到第一访问控制条目的情况下,确定AI应用的模型使用权限验证通过。其中,该权限验证参数中包括第一设备的设备标识、调用时间以及AI应用的应用标识中的至少一个。
示例性地,该解密的访问控制信息包括的每个AI模型的访问控制条目中可以均包括相应AI模型的模型标识、授权设备标识、授权时间段和授权随机数。权限验证参数可以包括第一设备的设备标识、调用时间。控制组件首先可以将目标AI模型的模型标识与解密的各个访问控制条目中的AI模型的模型标识进行对比,进而从中获取包含目标AI模型的模型标识的访问控制条目,将获取到的访问控制条目作为目标AI模型的访问控制条目。需要说明的是,在本申请实施例中,获取到的目标AI模型的访问控制条目有可能有一个,也可能有多个。当有多个时,该目标AI模型的多个访问控制条目可以是由该第一设备中的多个不同的AI应用申请的,这样,该目标AI模型的多个访问控制条目中将分别包含有对应的AI应用的应用标识。或者,该目标AI模型的多个访问控制条目也可以是由第一设备中的一个AI应用申请的,但是各个访问控制条目中包括的授权时间段或者是其他参数不同,本申请实施例在此不做限定。
在获取到目标AI模型的访问控制条目之后,对于该目标AI模型的任一访问控制条目,控制组件可以将权限验证参数中的第一设备的设备标识与该访问控制条目中包括的授权设备标识进行对比,将权限验证参数中的调用时间和该访问控制条目中的授权时间段进行对比,以此来判断目标AI模型的访问控制条目中是否存在包含的授权设备标识为第一设备标识,授权时间段为调用时间的访问控制条目,也即是否存在第一访问控制条目。如果在目标AI模型的访问控制条目中查找到第一访问控制条目,则说明AI应用的使用权限验证通过。如果没有查找到第一访问控制条目,则说明AI应用的使用权限未通过,整个流程结束。
需要说明的是,由前述介绍可知,目标AI模型的访问控制条目还具有第一签名信息,该第一签名信息为第二设备对目标AI模型的访问控制条目进行数字签名得到的。基于此,在从目标AI模型的访问控制条目中查找第一访问控制条目之前,还可以对第一签名信息进行验证,在第一签名信息验证通过的情况下,再执行从目标AI模型的访问控制条目中,查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目的步骤。
示例性地,由前述介绍可知,该第一签名信息是由第一私钥(也即目标AI模型的模型证书私钥)对目标AI模型的访问控制条目进行数字签名得到的。并且,在上述步骤402,第一设备的控制组件在接收到第二设备的控制组件发送的目标AI模型的模型证书后,已经对该模型证书进行了验证,确定该模型证书未被篡改过,那么该模型证书中包括的模型证书公钥也未被篡改过。这样,第一设备的控制组件在接收到安全组件发送的解密后的目标AI模型的访问控制条目之后,还可以利用模型证书中包括的模型证书公钥对该第一签名信息进行验证,在该第一签名信息验证通过的情况下,说明该访问控制条目未被篡改过,此时,再执行从目标AI模型的访问控制条目中查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目的步骤,以此来保证后续基于该访问控制条目所得到的权限验证结果的准确性。
步骤602:在AI应用的模型使用权限验证通过的情况下,在TEE中对目标AI模型的加密模型文件进行解密,得到解密模型文件。
在本申请实施例中,在AI应用的模型使用权限验证通过的情况下,第一设备的控制组件可以将目标AI模型的加密模型文件发送至安全组件,安全组件在接收到控制组件发送的加密模型文件之后,可以在TEE中对AI模型的加密模型文件进行解密,得到解密模型文件,并将该解密模型文件发送至控制组件。
示例性地,由前述介绍可知,目标AI模型的模型文件由第一设备的根密钥进行加密,基于此,安全组件在接收到控制组件发送的加密模型文件之后,可以获取TEE中存储的设备根密钥,进而利用获取到的设备根密钥对该加密模型文件进行解密,得到解密模型文件,并将该解密模型文件发送至控制组件。相应地,控制组件接收该安全组件发送的解密模型文件。
步骤603:将解密模型文件加载至内存中,以运行目标AI模型。
在获取到解密模型文件之后,该控制组件可以将该解密模型文件发送至推理组件,推理组件在接收到该解密模型文件后,将该解密模型文件加载至内存中,以运行目标AI模型。
需要说明的是,由前述实施例的介绍可知,第二设备发送给第一设备的解密模型文件具有第二签名信息,该第二签名信息为第二设备对该解密模型文件进行数字签名得到。
在这种情况下,在将该解密模型文件加载至内存中之前还可以对该第二签名信息进行验证,在该第二签名信息验证通过的情况下,执行将解密模型文件加载至内存中的步骤。
示例性地,由前述介绍可知,该第二签名信息为第二设备利用第一私钥(也即目标AI模型的模型证书私钥)对解密模型文件进行数字签名得到。在这种情况下,控制组件可以利用目标AI模型的模型证书中包括的模型证书公钥对该第二签名信息进行验证,在验证通过的情况下,说明该模型文件未被篡改过,此时执行将解密模型文件加载至内存中的步骤。如果验证不通过,则说明该模型文件可能被篡改过,则不执行将解密模型文件加载至内存中的步骤。
步骤604:通过目标AI模型对AI应用的推理数据进行处理,得到推理结果。
在本申请实施例中,AI应用在前述步骤601中向控制组件发送模型调用请求时,该模型调用请求中包括推理数据,在AI应用的模型使用权限验证通过的情况下,控制组件可将推理数据发送至推理组件。推理组件在接收到推理数据之后,可以通过目标AI模型对该推理数据进行推理运算,进而获得推理结果。之后,推理组件可以将推理结果发送至控制组件,由控制组件将该推理结果反馈给AI应用。
可选地,在另一种可能的实现方式中,前述步骤601中AI应用发送的模型调用请求中也可以不包含推理数据,在这种情况下,在AI应用的模型使用权限验证通过之后,控制组件可以向AI应用发送模型使用权限验证通过的消息。AI应用在接收到模型使用权限验证通过的消息之后,向控制组件发送推理数据。之后,控制组件再将该推理数据发送到推理组件。
可选地,控制组件在将推理结果反馈给AI之后,如果该控制组件检测到AI应用结束运行,则该控制组件可以删除内存中的解密模型文件。
示例性地,控制组件可以向推理组件发送删除解密模型文件的删除命令。推理组件在接收到该删除命令之后,可以结束目标AI模型的运行,并删除内存中的解密模型文件。
在本申请实施例中,第一设备可以根据待调用的目标AI模型的模型标识和AI应用的权限验证参数,对AI应用的模型使用权限进行验证。其中,该权限验证参数中包括多个维度的验证参数,例如设备标识、调用时间等,这样可以对第一设备进行细粒度的访问权限控制,确保该第一设备中的AI应用对目标AI模型的调用为合法调用。在AI应用的模型使用权限验证通过的情况下,该第一设备可以在TEE中对目标AI模型的加密模型文件进行解密,得到解密模型文件,并将解密模型文件直接加载至内存中,以运行目标AI模型,进而通过目标AI模型对AI应用的推理数据进行处理,得到推理结果。如此,在整个过程中,目标AI模型的解密模型文件都保存在内存中,也即该目标AI模型的解密模型文件不会落盘,其他设备无法访问该解密模型文件,有效的保障了目标AI模型的安全应用。
基于上述图6所示的调用方法,本申请实施例给出了一种第一设备中各个组件之间进行交互以实现模型本地调用的实现流程,参见图7,该流程包括以下步骤:
1:AI应用向第一设备的控制组件发送模型调用请求。
2:第一设备的控制组件向安全组件发送加密的访问控制信息。
3:安全组件对该加密的访问控制信息进行解密。
4:安全组件向控制组件发送解密的访问控制信息。
5:控制组件根据模型调用请求中包含的目标AI模型的模型标识从解密的访问控制信息中查找目标AI模型的访问控制条目。
6:控制组件对具有第一签名信息的目标AI模型的访问控制条目进行验证。
7:控制组件从验证通过的目标AI模型的访问控制条目中,查找包括的授权验证参数与模型调用请求中的权限验证参数相匹配的第一访问控制条目。
8:在查找到第一访问控制条目的情况下,确定对AI应用的模型使用权限验证通过。
9:控制组件将目标AI模型的加密模型文件发送至安全组件。
10:安全组件对加密模型文件进行解密。
11:安全组件将解密模型文件发送至控制组件。
12:控制组件将解密模型文件发送至推理组件。
13:推理组件加载解密模型文件,以运行目标AI模型。
14:控制组件将AI应用的推理数据发送至推理组件。
15:推理组件通过目标AI模型对推理数据进行处理,得到推理结果。
16:推理组件向控制组件发送推理结果。
17:控制组件将推理结果反馈至AI应用。
可选地,在另一种可能的实现方式中,上述对访问控制信息进行解密的步骤以及对模型文件进行解密并加载至内存中运行的步骤也可以在AI应用初始化,或者控制组件启动的时候就执行。其中,对访问控制信息进行解密的步骤可以参考上述步骤601,对模型文件进行解密并加载至内存中运行的步骤可以参考上述步骤602和步骤603,本申请实施例对此不再赘述。在这种情况下,当控制组件接收到AI应用的模型调用请求后,可以根据前述步骤601中介绍的方法,对该模型调用请求中携带的权限验证参数进行验证,在验证通过的情况下,通过步骤604中介绍的方法,对推理数据进行处理,进而将推理结果反馈至AI应用。
基于此,图8是本申请实施例给出的另一种第一设备中各个组件之间进行交互以实现模型本地调用的实现流程,参见图8,该流程包括以下步骤:
1:控制组件将加密的访问控制信息和目标AI模型的加密模型文件发送至安全组件。
2:安全组件对加密的访问控制信息和加密模型文件进行解密。
3:安全组件将解密的访问控制信息和解密模型文件发送至控制组件。
4:控制组件将解密模型文件发送至推理组件。
5:推理组件加载解密模型文件,以运行目标AI模型。
6:AI应用向第一设备的控制组件发送模型调用请求。
7:控制组件根据模型调用请求中包含的目标AI模型的模型标识从解密的访问控制信息中查找目标AI模型的访问控制条目。
8:控制组件对具有第一签名信息的目标AI模型的访问控制条目进行验证。
9:控制组件从验证通过的目标AI模型的访问控制条目中,查找包括的授权验证参数与模型调用请求中的权限验证参数相匹配的第一访问控制条目。
10:在查找到第一访问控制条目的情况下,确定对AI应用的模型使用权限验证通过。
11:控制组件将AI应用的推理数据发送至推理组件。
12:推理组件通过目标AI模型对推理数据进行处理,得到推理结果。
13:推理组件向控制组件发送推理结果。
14:控制组件将推理结果反馈至AI应用。
上述图4至图8主要介绍了在采用本地调用方式时,AI应用对目标AI模型的使用权限进行申请和模型调用的实现过程。由前述介绍可知,在一些可能的实现方式中,AI应用还可以通过远程调用的方法来调用目标AI模型,接下来对远程调用之前AI应用对目标AI模型的使用权限进行申请的方法进行介绍。参见图9,该方法应用于第二设备中,该方法包括以下步骤:
步骤901:接收第一设备基于安全传输协议发送的权限申请请求,该权限申请请求包括目标AI模型的模型标识和待申请的授权验证参数。
在本申请实施例中,第一设备中部署有AI应用,第二设备中运行有目标AI模型。在该AI应用调用第二设备中的目标AI模型之前,第一设备可以基于安全传输协议向第二设备发送该AI应用的权限申请请求。相应地,该第二设备接收第一设备发送的权限申请请求。其中,该权限申请请求包括该AI应用实现业务逻辑所需调用的目标AI模型的模型标识和待申请的授权验证参数。其中,有关安全传输协议的介绍可以参考前述步骤401,本申请实施例对此不再赘述。
示例性地,该第一设备的控制组件可以提供API接口,AI应用可以通过API接口向第一设备的控制组件发送初始的权限申请请求,该初始的权限申请请求中可以包括目标AI模型的模型标识和调用时间段。当第一设备中的控制组件接收到AI应用发送的初始的权限申请请求之后,该控制组件可以提取该第一设备的设备标识,并将该第一设备的设备标识添加至初始的权限申请请求中,从而得到AI应用的权限申请请求。此时,该权限申请请求中包括目标AI模型的模型标识和待申请的授权验证参数,该待申请的授权验证参数中包括调用时间段和第一设备的设备标识。之后,该第一设备的控制组件可以基于安全传输协议将该权限申请请求发送至第二设备的控制组件,第二设备的控制组件接收该权限申请请求。
其中,AI应用的权限申请请求的其他可能实现方式可以参考前述步骤401中介绍的方法,本申请实施例对此不再赘述。
步骤902:生成授权随机数。
第二设备的控制组件接收到权限申请请求之后,可以生成一个授权随机数。
步骤903:基于目标AI模型的模型标识、待申请的授权验证参数和授权随机数,生成目标AI模型的第一访问控制条目,该第一访问控制条目中的授权验证参数包括待申请的授权验证参数和授权随机数。
示例性地,在生成授权随机数之后,该第二设备的控制组件可以基于目标AI模型的模型标识、待申请的授权验证参数和授权随机数,生成目标AI模型的第一访问控制条目。其中,该第一访问控制条目中的授权验证参数包括待申请的授权验证参数和授权随机数。
示例性地,当待申请的授权验证参数中包括第一设备的设备标识、调用时间段时,该第一访问控制条目也将包括第一设备的设备标识和该调用时间段,此时,该第一设备的设备标识即为该第一访问控制条目中的授权设备标识,该调用时间段为该第一访问控制条目中的授权时间段。
在生成目标AI模型的第一访问控制条目之后,该第二设备还可以在TEE中对该第一访问控制条目进行数字签名,得到签名的第一访问控制条目。其中,该签名的第一访问控制条目具有第三签名信息,之后,该第二设备向第一设备发送签名的第一访问控制条目。
示例性地,该第二设备的控制组件可以将该目标AI模型的第一访问控制条目、第一私钥发送至安全组件。由前述介绍可知,该第一私钥既可以通过第三私钥加密,也可以通过第二设备的设备根密钥加密。基于此,如果该第一私钥是通过第三私钥加密的,由前述介绍可知,该第三私钥是由第二设备的设备根密钥加密,且该第二设备的设备根密钥存储在TEE中。在这种情况下,当安全组件接收到控制组件发送的第一访问控制条目和第一私钥之后,首先获取TEE中存储的第二设备的设备根密钥,然后利用该第二设备的设备根密钥对第三私钥进行解密。之后,利用解密后的第三私钥对第一私钥进行解密,进而利用解密后的第一私钥对目标AI模型的第一访问控制条目进行数字签名,得到签名后的第一访问控制条目,该签名的第一访问控制条目具有第三签名信息。之后,该第二设备的安全组件可以将该签名的第一访问控制条目发送至第二设备的控制组件。第二设备的控制组件在接收签名的第一访问控制条目之后,将该签名的第一访问控制条目发送至第一设备的控制组件。
可选地,如果该第一私钥是通过第二设备的设备根密钥加密的,在这种情况下,当安全组件接收到控制组件发送的第一访问控制条目和第一私钥后,直接获取TEE中存储的第二设备的设备根密钥,然后利用该第二设备的设备根密钥对第一私钥进行解密。之后,该安全组件可以参考上述介绍的方法对目标AI模型的第一访问控制条目进行数字签名,得到具有第三签名信息的第一访问控制条目。之后,该第二设备的安全组件可以将该具有第三签名信息的访问控制条目发送至第二设备的控制组件。其中,具体的发送过程可以参考上述介绍的实现方式,本申请实施例对此不再赘述。
可选地,在一些可能的情况中,第二设备也可以对第一访问控制条目中的授权随机数签名,而不对其他参数进行签名。其中,对授权随机数进行签名的实现方式可以参考上述介绍的对第一访问控制条目进行签名的实现方式,本申请实施例在此不再赘述。
由上述介绍可知,该签名的第一访问控制条目是基于第一私钥进行数字签名得到的,该第一私钥为目标AI模型的模型证书的私钥。基于此,为了第一设备能够对签名的第一访问控制条目进行验证,在向第一设备发送签名的第一访问控制条目时,还可以向第一设备发送通过第二私钥签名的第二设备的设备证书以及通过第三私钥签名的目标AI模型的模型证书,目标AI模型的模型证书包括目标AI模型的模型证书的公钥;其中,第二私钥为根证书的私钥,第三私钥为第二设备的设备证书的私钥。
示例性地,第二设备可以通过自身的控制组件将上述第一私钥签名的第一访问控制条目、第二私钥签名的第二设备的设备证书以及通过第三私钥签名的目标AI模型的模型证书发送至第一设备的控制组件。
第一设备的控制组件在接收到签名的第一访问控制条目、第二设备的设备证书以及目标AI模型的模型证书之后,首先对接收到的目标AI模型的模型证书进行签名验证,以判断该目标AI模型的模型证书是否被篡改。由前述介绍可知,该目标AI模型的模型证书由第三私钥进行数字签名。基于此,在对目标AI模型的模型证书进行签名验证时,可以先对第二设备的设备证书进行签名验证,由于第二设备的设备证书由第二私钥(也即根证书的私钥)进行数字签名,所以在对第二设备的设备证书进行签名验证的时候,可以利用根证书的公钥对该第二设备的设备证书进行签名验证。其中,该根证书以及该根证书的公钥提前预置在了第一设备和第二设备中。
在第二设备的设备证书验证通过的情况下,说明该第二设备的设备证书没有被篡改过,也可以说明该第二设备的设备证书中包含的设备证书公钥也未被篡改过。这样第一设备的控制组件利用该第二设备的设备证书公钥对目标AI模型的模型证书进行签名验证,以此来判断该目标AI模型的模型证书是否被篡改过。在该目标AI模型的模型证书验证通过的情况下,说明该目标AI模型的模型证书未被篡改过,也可以说明该模型证书中包括的模型证书公钥也未被篡改过。之后再利用该模型证书公钥对由第一私钥(也即目标AI模型的模型证书的私钥)进行数字签名的第一访问控制条目进行验证,验证通过后,说明该第一访问控制条目也未被篡改过。此时该第一设备的控制组件将目标AI模型的模型证书和第一访问控制条目保存在存储器中,等待后续使用。
在本申请实施例中,第二设备可以接收第一设备基于安全传输协议发送的权限申请请求,并生成授权随机数,然后基于权限申请请求中包括的目标AI模型的模型标识、待申请的授权验证参数和授权随机数,生成目标AI模型的第一访问控制条目。由于该第一访问控制条目中包含多个维度的验证参数,例如授权设备标识、授权时间段等,这样根据该第一访问控制条目对AI应用的模型使用权限进行验证,可以对第一设备进行细粒度的访问权限控制,以此来保障调用该目标AI模型的设备为具有合法使用权限的设备。
基于图9提供的权限申请方法,本申请实施例示出了一种第一设备和第二设备之间交互以实现AI应用的权限申请的流程图。参见图10,该流程包括以下步骤:
1:AI应用向第一设备的控制组件发送初始的权限申请请求。
2:第一设备的控制组件提取第一设备的设备标识,并将提取到的第一设备的设备标识添加到初始的权限申请请求中生成AI应用的权限申请请求。
3:第一设备的控制组件向第二设备的控制组件发送AI应用的权限申请请求。
4:第二设备的控制组件生成授权随机数。
5:第二设备的控制组件基于权限申请请求和授权随机数生成目标AI模型的第一访问控制条目。
6:第二设备的控制组件向第二设备的安全组件发送目标AI模型的第一访问控制条目和第一私钥。
7:第二设备的安全组件利用第一私钥对目标AI模型的第一访问控制条目进行数字签名。
8:第二设备的安全组件将签名后的第一访问控制条目发送至第二设备的控制组件。
9:第二设备的控制组件将签名的第一访问控制条目、第二设备的设备证书、目标AI模型的模型证书发送至第一设备的控制组件。
10:第一设备的控制组件基于第二设备的设备证书对目标AI模型的模型证书进行签名验证,并基于验证通过后的目标AI模型的模型证书对第一访问控制条目进行签名验证。
11:第一设备的控制组件将验证通过的目标AI模型的模型证书和第一访问控制条目保存在存储器中。
在通过上述图9或图10介绍的方法对目标AI模型进行权限申请之后,接下来第一设备中的AI应用可以通过图11介绍的方法对目标AI模型进行远程调用。该方法可以应用与前述介绍的第二设备中,该第二设备中运行有目标AI模型。参见图11,该方法包括以下步骤:
步骤1101:接收第一设备发送的AI应用的模型调用请求,模型调用请求包括待调用的目标AI模型的模型标识、权限验证参数和推理数据,AI应用部署在第一设备中。
在本申请实施例中,由于AI应用部署在第一设备中,目标AI模型运行于第二设备中。基于此,第二设备可以接收第一设备发送的AI应用的模型调用请求,该模型调用请求中包括待调用的目标AI模型的模型标识、权限验证参数和推理数据。
示例性地,由前述介绍可知第一设备的控制组件可以提供API接口,AI应用可以基于第一设备的控制组件提供的API接口向第一设备的控制组件发送模型调用请求,该模型调用请求中包括待调用的目标AI模型的模型标识、权限验证参数和推理数据。该权限验证参数包括第一设备的设备标识、调用时间和待验证随机数,其中该待验证随机数为第一设备中存储的、用于验证AI应用的模型使用权限的随机数。
由前述介绍可知,第一设备的控制组件中存储有预先从第二设备中为该AI应用调用目标AI模型所申请的签名的访问控制条目,该访问控制条目中包括随机数。在这种情况下,第一设备的控制组件可以将该签名的访问控制条目作为待验证控制条目,相应地,该权限验证参数中包括该待验证控制条目,该待验证控制条目中的随机数即为待验证随机数。
可选地,由前述介绍可知,该第一设备的控制组件中存储的也可以是预先从第二设备中为该AI应用调用目标AI模型所申请的签名的随机数,在这种情况下,可以将该签名的随机数作为待验证随机数。
当该第一设备的控制组件接收到AI应用发送的模型调用请求之后,可以将该模型调用请求发送至第二设备的控制组件,该第二设备的控制组件接收该模型调用请求。
步骤1102:基于目标AI模型的模型标识和权限验证参数,对AI应用的模型使用权限进行验证。
在本申请实施例中,第二设备的控制组件在接收到第一设备的控制组件发送的模型调用请求之后,可以基于该模型调用请求中包括的目标AI模型的模型标识和权限验证参数,对AI应用的模型使用权限进行验证。
需要说明的是,第二设备中存储有访问控制信息,该访问控制信息包括目标AI模型的访问控制条目,目标AI模型的访问控制条目包括目标AI模型的模型标识和授权验证参数。在这种情况下,第二设备基于目标AI模型的模型标识,从存储的访问控制信息中获取目标AI模型的访问控制条目;从目标AI模型的访问控制条目中,查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目;在查找到第一访问控制条目的情况下,确定AI应用的模型使用权限验证通过。
示例性地,该第二设备的控制组件可以将目标AI模型的模型标识与访问控制信息中包括的访问控制条目中的AI模型的模型标识进行比对,进而从中获取包含目标AI模型的模型标识的访问控制条目,将获取到的访问控制条目作为目标AI模型的访问控制条目。
需要说明的是,目标AI模型的访问控制条目可能有一个,也可能有多个。当目标AI模型的访问控制条目有多个时,该多个访问控制条目可能包括用于控制不同设备或应用对该目标AI模型的访问权限的条目,还可能包括用于控制相同设备或应用对该目标AI模型的不同访问时间或其他权限的条目,本申请实施例在此不做限定。
示例性地,该权限验证参数中可以包括第一设备的设备标识、调用时间和待验证随机数,该目标AI模型的访问控制条目中包括授权设备标识、授权时间段和授权随机数。基于此,在获取到目标AI模型的访问控制条目之后,对于该目标AI模型的任一访问控制条目,该第二设备的控制组件可以将该权限验证参数中的第一设备的设备标识与该访问控制条目中的授权设备标识进行比对,将调用时间与该访问控制条目中的授权时间段进行比对,将待验证随机数与该访问控制条目中的授权随机数进行比对,如果该访问控制条目中包含的授权设备标识即为第一设备标识、包含的授权时间段包括该调用时间、且包含的授权随机数即为待验证随机数,则说明该访问控制条目即为第一访问控制条目,也即,查找到了第一访问控制条目,此时,可以确定AI应用的模型使用权限验证通过。如果没有查找到第一访问控制条目,则说明第一设备的AI应用未被授权,AI应用无法调用目标AI模型。
需要说明的是,如果模型调用请求中包括待验证参数,而不是包括待验证控制条目,则该待验证随机数可以具有第三签名信息,基于此,从目标AI模型的访问控制条目中,查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目之前,还可以在可信执行环境TEE中对待验证随机数的第三签名信息进行验证;在第三签名信息的验证通过的情况下,执行从目标AI模型的访问控制条目中,查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目的步骤。
示例性地,由前述介绍可知,第三签名信息是由第一私钥进行数字签名得到的,该第一私钥为目标AI模型的模型证书的私钥。基于此,对待验证随机数的第三签名信息进行验证时,可以利用目标AI模型的模型证书的公钥对该待验证随机数的第三签名信息进行验证,如果验证通过,则说明该待验证随机数未被篡改,可以执行从目标AI模型的访问控制条目中,查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目的步骤。如果验证不通过,则说明该待验证随机数可能已经被篡改了,此时不执行从目标AI模型的访问控制条目中查找第一访问控制条目的步骤,整个流程结束。
可选地,如果前述的模型调用请求中包括待验证控制条目,且该待验证控制条目包括待验证参数,则该待验证控制条目具有第三签名信息。在这种情况下,第二设备的控制组件在查找第一访问控制条目之前,还可以先对该待验证控制条目的第三签名信息进行验证,并在验证通过的情况下,从待验证控制条目中获取待验证随机数,进而基于待验证随机数和权限验证参数中的其他参数来查找第一访问控制条目。其中,验证第三签名信息的过程可以参考前述介绍,本申请实施例在此赘述。
步骤1103:在AI应用的模型使用权限验证通过的情况下,通过目标AI模型对推理数据进行处理,得到推理结果。
在本申请实施例中,在AI应用的模型使用权限验证通过的情况下,该第二设备的控制组件可以将模型调用请求中包括的推理数据发送至第二设备的推理组件,该推理组件在接收到控制组件发送的推理数据之后,可以通过自身运行的目标AI模型对推理数据进行处理,得到推理结果,进而将该推理结果发送至该第二设备的控制组件。
步骤1104:向第一设备发送推理结果。
第二设备的控制组件在接收到第二设备的推理组件发送的推理结果之后,可以将该推理结果发送至第一设备的控制组件,进而由第一设备的控制组件将该推理结果反馈给AI应用。
在本申请实施例中,目标AI模型运行于第二设备中,AI应用部署在第一设备中,第二设备可以接收第一设备发送的AI应用的模型调用请求,并基于该模型调用请求中包括的目标AI模型的模型标识和权限验证参数,对AI应用的模型使用权限进行验证,这样可以对第一设备进行访问权限控制,确保该第一设备为合法且具有使用权限的设备。在AI应用的模型使用权限验证通过的情况下,通过目标AI模型对AI应用的模型调用请求中包括的推理数据进行处理,得到推理结果,并向第一设备发送推理结果。由于在整个调用过程中目标AI模型一直运行于第二设备中,第一设备不会获取到目标AI模型的模型明文,这样有效的保障了目标AI模型的安全应用。
另外,AI应用通过调用控制组件的API接口发送模型调用请求,并基于两个设备的控制组件来实现AI模型的调用,其中,两个设备的控制组件中包含了适配底层硬件架构的逻辑代码,这样,AI应用的开发者在开发过程中,无需考虑底层硬件架构的不同所导致的代码实现的不同,降低了AI应用的开发难度。
基于图11提供的AI模型调用方法,本申请实施例示出了一种设备的组件间互相交互以实现远程调用的实现流程图,参见图12,该流程包括以下步骤:
1:AI应用向第一设备的控制组件发送模型调用请求。
2:第一设备的控制组件向第二设备的控制组件发送模型调用请求。
3:第二设备的控制组件根据模型调用请求中包括的目标AI模型的模型标识从访问控制信息中获取目标AI模型的访问控制条目。
4:第二设备的控制组件向第二设备的安全组件发送具有第三签名信息的待验证随机数。
5:第二设备的安全组件对具有第三签名信息的待验证随机数进行签名验证。
6:第二设备的安全组件将通过签名验证的待验证随机数发送至第二设备的控制组件。
7:第二设备的控制组件从目标AI模型的访问控制条目中查找第一访问控制条目,在查找到第一访问控制条目的情况下,确定AI应用的模型使用权限通过。
8:第二设备的控制组件将模型调用请求中的推理数据发送至推理组件;
9:推理组件通过自身运行的目标AI模型对推理数据进行处理,得到推理结果。
10:推理组件将推理结果发送至第二设备的控制组件。
11:第二设备的控制组件将推理结果发送至第一设备的控制组件。
12:第一设备的控制组件将推理结果发送至AI应用。
值得注意的是,在前述的各个实施例中所提及的各个设备中的组件,仅是本申请实施例给出的一种示例性地执行本申请实施例中的相应步骤的组件。在其他可能的情况中,上述组件的功能也可以由其他组件来实现,或者,上述多个组件的功能可以集中于一个组件来实现,或者是一个组件的功能也可以由多个组件配合来实现。总之,上述介绍的各种组件并不构成对本申请实施例的限定。
参见图13,本发明实施例提供了一种模型调用装置1300,该装置包括:验证模块1301、解密模块1302、运行模块1303、处理模块1304。
验证模块1301,用于执行前述实施例中的步骤601;
解密模块1302,用于执行前述实施例中的步骤602;
运行模块1303,用于执行前述实施例中的步骤603;
处理模块1304,用于执行前述实施例中的步骤604。
可选地,该装置还包括:
删除模块1305,用于在检测到AI应用结束运行的情况下,删除内存中的解密模型文件。
可选地,第一设备中存储有加密的访问控制信息;验证模块1301包括:
解密子模块,用于在TEE中对加密的访问控制信息进行解密,得到解密的访问控制信息;
验证子模块,用于基于目标AI模型的模型标识、权限验证参数和解密的访问控制信息,对AI应用的模型使用权限进行验证。
可选地,访问控制信息包括至少一个AI模型的访问控制条目,每个AI模型的访问控制条目包括相应AI模型的模型标识和授权验证参数;验证子模块用于:
基于所述目标AI模型的模型标识,从解密的访问控制信息中获取所述目标AI模型的访问控制条目;
从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目;
在查找到所述第一访问控制条目的情况下,确定所述AI应用的模型使用权限验证通过。
可选地,目标AI模型的访问控制条目具有第一签名信息,第一签名信息为第二设备对目标AI模型的访问控制条目进行数字签名得到,第二设备为提供目标AI模型的设备;
验证子模块还用于:
对第一签名信息进行验证;
在第一签名信息的验证通过的情况下,执行从目标AI模型的访问控制条目中,查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目的步骤。
可选地,权限验证参数包括第一设备的设备标识、调用时间以及AI应用的应用标识中的至少一个。
可选地,解密模型文件具有第二签名信息,第二签名信息为第二设备对解密模型文件进行数字签名得到,第二设备为提供目标AI模型的设备;
该装置1300还用于:
对第二签名信息进行验证;
在第二签名信息的验证通过的情况下,触发运行模块1303执行将解密模型文件加载至内存中的步骤。
可选地,该装置1300还用于:
基于安全传输协议向第二设备发送AI应用的权限申请请求,权限申请请求包括目标AI模型的模型标识和待申请的授权验证参数,第二设备为提供目标AI模型的设备;
接收第二设备基于安全传输协议发送的目标AI模型的访问控制条目和解密模型文件,目标AI模型的访问控制条目为第二设备基于目标AI模型的模型标识和待申请的授权验证参数生成;
在TEE中对目标AI模型的访问控制条目和解密模型文件进行加密,得到加密的目标AI模型的访问控制条目和加密模型文件;
存储加密的目标AI模型的访问控制条目和加密模型文件。
可选地,第一设备包括控制组件,AI应用的模型调用请求为AI应用通过调用控制组件提供的API接口向控制组件发送的请求。
综上所述,在本申请实施例中,该第一设备根据待调用的目标AI模型的模型标识和AI应用的权限验证参数,对AI应用的模型使用权限进行验证,这样可以对该AI应用进行访问权限控制,确保该AI应用为合法且具有使用权限的应用。在AI应用的模型使用权限验证通过的情况下,该第一设备可以在TEE中对目标AI模型的加密模型文件进行解密,得到解密模型文件,并将解密模型文件直接加载至内存中,以运行目标AI模型,进而通过目标AI模型对AI应用的推理数据进行处理,得到推理结果。如此,在整个过程中,目标AI模型的解密模型文件都保存在内存中,也即该目标AI模型的解密模型文件不会落盘,其他设备也无法访问该解密模型文件,有效的保障了目标AI模型的安全应用。
参见图14,本申请实施例提供了一种模型调用装置1400,该装置1400包括:接收模块1401、验证模块1402、处理模块1403、发送模块1404。
接收模块1401,用于执行前述实施例中的步骤1101;
验证模块1402,用于执行前述实施例中的步骤1102;
处理模块1403,用于执行前述实施例中的步骤1103;
发送模块1404,用于执行前述实施例中的步骤1104。
可选地,第二设备中存储有访问控制信息,访问控制信息包括目标AI模型的访问控制条目,目标AI模型的访问控制条目包括目标AI模型的模型标识和授权验证参数;验证模块1402用于:
基于目标AI模型的模型标识,从访问控制信息中获取目标AI模型的访问控制条目;
从目标AI模型的访问控制条目中,查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目;
在查找到第一访问控制条目的情况下,确定AI应用的模型使用权限验证通过。
可选地,权限验证参数包括第一设备的设备标识、调用时间和待验证随机数,待验证随机数为第一设备中存储的、用于验证AI应用的模型使用权限的随机数,访问控制条目中的授权验证参数包括授权设备标识、授权时间段和授权随机数,第一访问控制条目是指包含的授权设备标识为第一设备的设备标识,包含的授权随机数为待验证随机数且包含的授权时间段包括调用时间的条目。
可选地,待验证随机数具有第三签名信息;验证模块1402主要用于:
在可信执行环境TEE中对待验证随机数的第三签名信息进行验证;
在第三签名信息的验证通过的情况下,执行从目标AI模型的访问控制条目中,查找包括的授权验证参数与权限验证参数相匹配的第一访问控制条目的步骤。
可选地,该装置1400还用于:
接收第一设备基于安全传输协议发送的权限申请请求,权限申请请求包括目标AI模型的模型标识和待申请的授权验证参数;
基于目标AI模型的模型标识、待申请的授权验证参数和授权随机数,生成目标AI模型的第一访问控制条目,第一访问控制条目中的授权验证参数包括待申请的授权验证参数和授权随机数。
可选地,该装置1400还用于:
在TEE中对第一访问控制条目进行数字签名,得到签名的第一访问控制条目,签名的第一访问控制条目具有第三签名信息;
向第一设备发送签名的第一访问控制条目。
可选地,签名的第一访问控制条目是基于第一私钥进行数字签名得到,第一私钥为目标AI模型的模型证书的私钥;
向第一设备发送签名的第一访问控制条目时,该装置1400还用于:
向第一设备发送通过第二私钥签名的第二设备的设备证书以及通过第三私钥签名的目标AI模型的模型证书,目标AI模型的模型证书包括目标AI模型的模型证书的公钥;
其中,第二私钥为根证书的私钥,第三私钥为第二设备的设备证书的私钥,签名的第二设备的设备证书用于第一设备对签名的目标AI模型的模型证书进行签名验证,签名的目标AI模型的模型证书用于第一设备对签名的第一访问控制条目进行签名验证。
可选地,第二设备中存储有通过第三私钥加密后的第一私钥,以及通过第二设备的设备根密钥加密的第三私钥,第二设备的设备根密钥存储于TEE中;
该装置1400还用于:
在TEE中基于第二设备的设备根密钥对加密的第三私钥进行解密,并基于第三私钥获得第一私钥。
可选地,该装置1400还用于:
生成所述目标AI模型的模型证书和所述第一私钥;
在所述TEE中通过所述第三私钥对所述目标AI模型的模型证书进行数字签名,并通过所述第三私钥加密所述第一私钥;
保存签名的所述目标AI模型的模型证书以及加密的第一私钥。
综上所述,在本申请实施例中,目标AI模型运行于第二设备中,AI应用部署在第一设备中,第二设备可以接收第一设备发送的AI应用的模型调用请求,并基于该模型调用请求中包括的目标AI模型的模型标识和权限验证参数,对AI应用的模型使用权限进行验证,这样可以对AI应用进行访问权限控制,确保该AI应用为合法且具有使用权限的应用。在AI应用的模型使用权限验证通过的情况下,通过目标AI模型对AI应用的模型调用请求中包括的推理数据进行处理,得到推理结果,并向第一设备发送推理结果。由于在整个调用过程中目标AI模型一直运行于第二设备中,第一设备不会获取到目标AI模型的模型明文,这样有效的保障了目标AI模型的安全应用。
需要说明的是:上述实施例提供的模型调用装置在调用模型时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的模型调用装置与模型调用方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意结合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如:同轴电缆、光纤、数据用户线(Digital Subscriber Line,DSL))或无线(例如:红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质(例如:软盘、硬盘、磁带)、光介质(例如:数字通用光盘(Digital Versatile Disc,DVD))、或者半导体介质(例如:固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述并不用以限制本申请实施例,凡在本申请实施例的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请实施例的保护范围之内。
需要说明的是,本申请中所有获取信号、信息或数据的动作都是在遵照所在地国家相应的数据保护法规政策的前提下,并获得由相应装置所有者给予授权的情况下进行的。
Claims (19)
1.一种模型调用方法,其特征在于,应用于第一设备,所述第一设备中部署有人工智能AI应用,所述方法包括:
响应于所述AI应用的模型调用请求,根据待调用的目标AI模型的模型标识和所述AI应用的权限验证参数,对所述AI应用的模型使用权限进行验证;
在所述AI应用的模型使用权限验证通过的情况下,在可信执行环境TEE中对所述目标AI模型的加密模型文件进行解密,得到解密模型文件;
将所述解密模型文件加载至内存中,以运行所述目标AI模型;
通过所述目标AI模型对所述AI应用的推理数据进行处理,得到推理结果。
2.根据权利要求1所述的方法,其特征在于,所述通过所述目标AI模型对所述AI应用的推理数据进行处理,得到推理结果之后,还包括:
在检测到所述AI应用结束运行的情况下,删除所述内存中的所述解密模型文件。
3.根据权利要求1或2所述的方法,其特征在于,所述第一设备中存储有加密的访问控制信息;
所述根据待调用的目标AI模型的模型标识和所述AI应用的权限验证参数,对所述AI应用的模型使用权限进行验证,包括:
在所述TEE中对加密的访问控制信息进行解密,得到解密的访问控制信息;
基于所述目标AI模型的模型标识、所述权限验证参数和解密的访问控制信息,对所述AI应用的模型使用权限进行验证。
4.根据权利要求3所述的方法,其特征在于,所述访问控制信息包括至少一个AI模型的访问控制条目,每个AI模型的访问控制条目包括相应AI模型的模型标识和授权验证参数;
所述基于所述目标AI模型的模型标识、所述权限验证参数和解密的访问控制信息,对所述AI应用的模型使用权限进行验证,包括:
基于所述目标AI模型的模型标识,从解密的访问控制信息中获取所述目标AI模型的访问控制条目;
从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目;
在查找到所述第一访问控制条目的情况下,确定所述AI应用的模型使用权限验证通过。
5.根据权利要求4所述的方法,其特征在于,所述目标AI模型的访问控制条目具有第一签名信息,所述第一签名信息为第二设备对所述目标AI模型的访问控制条目进行数字签名得到,所述第二设备为提供所述目标AI模型的设备;
所述从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目之前,还包括:
对所述第一签名信息进行验证;
在所述第一签名信息的验证通过的情况下,执行从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目的步骤。
6.根据权利要求1-5任一所述的方法,其特征在于,所述权限验证参数包括所述第一设备的设备标识、调用时间以及所述AI应用的应用标识中的至少一个。
7.根据权利要求1-6任一所述的方法,其特征在于,所述解密模型文件具有第二签名信息,所述第二签名信息为第二设备对所述解密模型文件进行数字签名得到,所述第二设备为提供所述目标AI模型的设备;
所述将所述解密模型文件加载至内存中之前,还包括:
对所述第二签名信息进行验证;
在所述第二签名信息的验证通过的情况下,执行将所述解密模型文件加载至内存中的步骤。
8.根据权利要求3-7任一所述的方法,其特征在于,所述方法还包括:
基于安全传输协议向第二设备发送所述AI应用的权限申请请求,所述权限申请请求包括所述目标AI模型的模型标识和待申请的授权验证参数,所述第二设备为提供所述目标AI模型的设备;
接收所述第二设备基于所述安全传输协议发送的所述目标AI模型的访问控制条目和解密模型文件,所述目标AI模型的访问控制条目为所述第二设备基于所述目标AI模型的模型标识和待申请的授权验证参数生成;
在所述TEE中对所述目标AI模型的访问控制条目和解密模型文件进行加密,得到加密的所述目标AI模型的访问控制条目和加密模型文件;
存储加密的所述目标AI模型的访问控制条目和所述加密模型文件。
9.根据权利要求1-8任一所述的方法,其特征在于,所述第一设备包括控制组件,所述AI应用的模型调用请求为所述AI应用通过调用所述控制组件提供的API接口向所述控制组件发送的请求。
10.一种模型调用装置,其特征在于,应用于第一设备,所述第一设备中部署有人工智能AI应用,所述装置包括:
验证模块,用于响应于所述AI应用的模型调用请求,根据待调用的目标AI模型的模型标识和所述AI应用的权限验证参数,对所述AI应用的模型使用权限进行验证;
解密模块,用于在所述AI应用的模型使用权限验证通过的情况下,在可信执行环境TEE中对所述目标AI模型的加密模型文件进行解密,得到解密模型文件;
运行模块,用于将所述解密模型文件加载至内存中,以运行所述目标AI模型;
处理模块,用于通过所述目标AI模型对所述AI应用的推理数据进行处理,得到推理结果。
11.根据权利要求10所述的装置,其特征在于,所述装置还包括:
删除模块,用于在检测到所述AI应用结束运行的情况下,删除所述内存中的所述解密模型文件。
12.根据权利要求10或11所述的装置,其特征在于,所述第一设备中存储有加密的访问控制信息;
所述验证模块包括:
解密子模块,用于在所述TEE中对加密的访问控制信息进行解密,得到解密的访问控制信息;
验证子模块,用于基于所述目标AI模型的模型标识、所述权限验证参数和解密的访问控制信息,对所述AI应用的模型使用权限进行验证。
13.根据权利要求12所述的装置,其特征在于,所述访问控制信息包括至少一个AI模型的访问控制条目,每个AI模型的访问控制条目包括相应AI模型的模型标识和授权验证参数;
所述验证子模块用于:
基于所述目标AI模型的模型标识,从解密的访问控制信息中获取所述目标AI模型的访问控制条目;
从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目;
在查找到所述第一访问控制条目的情况下,确定所述AI应用的模型使用权限验证通过。
14.根据权利要求13所述的装置,其特征在于,所述目标AI模型的访问控制条目具有第一签名信息,所述第一签名信息为第二设备对所述目标AI模型的访问控制条目进行数字签名得到,所述第二设备为提供所述目标AI模型的设备;
所述验证子模块还用于:
对所述第一签名信息进行验证;
在所述第一签名信息的验证通过的情况下,执行从所述目标AI模型的访问控制条目中,查找包括的授权验证参数与所述权限验证参数相匹配的第一访问控制条目的步骤。
15.根据权利要求10-14任一所述的装置,其特征在于,所述权限验证参数包括所述第一设备的设备标识、调用时间以及所述AI应用的应用标识中的至少一个。
16.根据权利要求10-15任一所述的装置,其特征在于,所述解密模型文件具有第二签名信息,所述第二签名信息为第二设备对所述解密模型文件进行数字签名得到,所述第二设备为提供所述目标AI模型的设备;
所述装置还用于:
对所述第二签名信息进行验证;
在所述第二签名信息的验证通过的情况下,触发所述运行模块执行将所述解密模型文件加载至内存中的步骤。
17.根据权利要求12-16任一所述的装置,其特征在于,所述装置还用于:
基于安全传输协议向第二设备发送所述AI应用的权限申请请求,所述权限申请请求包括所述目标AI模型的模型标识和待申请的授权验证参数,所述第二设备为提供所述目标AI模型的设备;
接收所述第二设备基于所述安全传输协议发送的所述目标AI模型的访问控制条目和解密模型文件,所述目标AI模型的访问控制条目为所述第二设备基于所述目标AI模型的模型标识和待申请的授权验证参数生成;
在所述TEE中对所述目标AI模型的访问控制条目和解密模型文件进行加密,得到加密的所述目标AI模型的访问控制条目和加密模型文件;
存储加密的所述目标AI模型的访问控制条目和所述加密模型文件。
18.根据权利要求10-17任一所述的装置,其特征在于,所述第一设备包括控制组件,所述AI应用的模型调用请求为所述AI应用通过调用所述控制组件提供的API接口向所述控制组件发送的请求。
19.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述指令在计算机上运行时,使得计算机执行权利要求1-9任一项所述的模型调用方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210222968.3A CN116775322A (zh) | 2022-03-09 | 2022-03-09 | 模型调用方法、装置及存储介质 |
PCT/CN2023/080050 WO2023169409A1 (zh) | 2022-03-09 | 2023-03-07 | 模型调用方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210222968.3A CN116775322A (zh) | 2022-03-09 | 2022-03-09 | 模型调用方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116775322A true CN116775322A (zh) | 2023-09-19 |
Family
ID=87935993
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210222968.3A Pending CN116775322A (zh) | 2022-03-09 | 2022-03-09 | 模型调用方法、装置及存储介质 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN116775322A (zh) |
WO (1) | WO2023169409A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9558330B2 (en) * | 2014-12-23 | 2017-01-31 | Intel Corporation | Technologies for digital rights managment of 3D printable models |
US10355858B2 (en) * | 2016-03-30 | 2019-07-16 | Intel Corporation | Authenticating a system to enable access to a diagnostic interface in a storage device |
CN111859415A (zh) * | 2020-06-18 | 2020-10-30 | 上海艾麒信息科技有限公司 | 神经网络模型加密系统和方法 |
-
2022
- 2022-03-09 CN CN202210222968.3A patent/CN116775322A/zh active Pending
-
2023
- 2023-03-07 WO PCT/CN2023/080050 patent/WO2023169409A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2023169409A1 (zh) | 2023-09-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110120869B (zh) | 密钥管理系统及密钥服务节点 | |
US8196186B2 (en) | Security architecture for peer-to-peer storage system | |
EP2973183B1 (en) | Intra-computer protected communications between applications | |
CN111460453A (zh) | 机器学习训练方法、控制器、装置、服务器、终端和介质 | |
US20220114249A1 (en) | Systems and methods for secure and fast machine learning inference in a trusted execution environment | |
CN103138939B (zh) | 云存储模式下基于可信平台模块的密钥使用次数管理方法 | |
CN111191286A (zh) | Hyperledger Fabric区块链隐私数据存储与访问系统及其方法 | |
US9954834B2 (en) | Method of operating a computing device, computing device and computer program | |
CN110611657A (zh) | 一种基于区块链的文件流处理的方法、装置及系统 | |
US11245527B2 (en) | Secure distribution networks | |
CN106936588B (zh) | 一种硬件控制锁的托管方法、装置及系统 | |
CN109145628B (zh) | 一种基于可信执行环境的数据采集方法及系统 | |
CN107040520B (zh) | 一种云计算数据共享系统及方法 | |
CN110740038B (zh) | 区块链及其通信方法、网关、通信系统和存储介质 | |
CN111538977B (zh) | 云api密钥的管理、云平台的访问方法、装置及服务器 | |
WO2023151504A1 (zh) | 一种基于物联网的数据处理方法和装置 | |
CN112995144A (zh) | 文件处理方法、系统、可读存储介质及电子设备 | |
US20110154436A1 (en) | Provider Management Methods and Systems for a Portable Device Running Android Platform | |
CN111917711A (zh) | 数据访问方法、装置、计算机设备和存储介质 | |
CN112136133A (zh) | 用于管理对区块链的访问的方法和网络节点 | |
US20120213370A1 (en) | Secure management and personalization of unique code signing keys | |
CN114611124A (zh) | 一种防止数据泄露的方法及装置 | |
KR20200104084A (ko) | Puf 기반 사물인터넷 디바이스 인증 장치 및 방법 | |
CN111901287B (zh) | 一种为轻应用提供加密信息的方法、装置和智能设备 | |
CN110287725B (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 |