CN118171276A - 异构可信执行环境的创建方法、装置及计算系统 - Google Patents
异构可信执行环境的创建方法、装置及计算系统 Download PDFInfo
- Publication number
- CN118171276A CN118171276A CN202310382703.4A CN202310382703A CN118171276A CN 118171276 A CN118171276 A CN 118171276A CN 202310382703 A CN202310382703 A CN 202310382703A CN 118171276 A CN118171276 A CN 118171276A
- Authority
- CN
- China
- Prior art keywords
- processor
- security isolation
- security
- entity
- isolation entity
- 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 124
- 238000002955 isolation Methods 0.000 claims abstract description 580
- 230000004044 response Effects 0.000 claims abstract description 10
- 238000005259 measurement Methods 0.000 claims description 273
- 230000006854 communication Effects 0.000 claims description 103
- 238000012545 processing Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 10
- 238000011217 control strategy Methods 0.000 claims description 9
- 239000000758 substrate Substances 0.000 claims 2
- 238000007726 management method Methods 0.000 description 162
- 238000004891 communication Methods 0.000 description 88
- 238000012795 verification Methods 0.000 description 53
- 238000010586 diagram Methods 0.000 description 18
- 230000008569 process Effects 0.000 description 17
- 238000004364 calculation method Methods 0.000 description 16
- 230000003993 interaction Effects 0.000 description 11
- 238000013175 transesophageal echocardiography Methods 0.000 description 8
- 230000004888 barrier function Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 230000001133 acceleration Effects 0.000 description 3
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013461 design Methods 0.000 description 3
- 239000000835 fiber Substances 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010801 machine learning Methods 0.000 description 2
- 239000000523 sample Substances 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008672 reprogramming Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000004557 technical material Substances 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
Classifications
-
- 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/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/74—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
-
- 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)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Storage Device Security (AREA)
Abstract
一种异构可信执行环境的创建方法、装置及计算系统,涉及计算机技术领域,能够覆盖更加全面的机密计算场景,具有较好的适用性。该方法应用于包括异构的第一处理器和第二处理器的计算设备,第一处理器基于第一处理器的计算资源创建第一安全隔离实体,且第一处理器向第二处理器发送第一创建请求;响应于第一创建请求,第二处理器基于第二处理器的计算资源创建第二安全隔离实体,之后,第一处理器对第二处理器侧的第二安全隔离实体进行完整性度量;且第二处理器对第一处理器侧的第一安全隔离实体进行完整性度量。
Description
本申请要求于2022年12月08日提交国家知识产权局、申请号为202211571870.5、申请名称为“一种机密计算系统”的中国专利申请的优先权,其全部内容通过引用结合在本申请中
技术领域
本申请实施例涉及计算机技术领域,尤其涉及一种异构可信执行环境的创建方法、装置及计算系统。
背景技术
机密计算是基于硬件隔离的可信执行环境(trusted execution environment,TEE)实现的,基于TEE,在设备上创建安全隔离实体(例如虚拟机),进而多个设备之间通过各自建立的安全隔离实体进行通信。目前,主要围绕不同芯片厂商的计算设备(例如不同厂商生产的CPU)创建安全隔离实体。
随着机器学习、深度神经网络为代表的人工智能技术的发展,需要进行大规模数据的并行计算,包含CPU和加速器(例如GPU或NPU)的异构计算架构随之出现,CPU可以将计算任务下发至加速器,由加速器完成计算任务。在该异构计算架构中进行机密计算时,CPU和加速分别建立安全隔离实体,并基于安全隔离实体传输机密数据。
然而,基于现有的技术基础,CPU是计算设备的主控单元,由CPU提供数据并且CPU确定加速器创建的安全隔离实体可信之后,将数据下发至加速器以完成机密计算,随之技术的进步,该异构计算架构下的机密计算需要覆盖更加全面的计算场景,因此也将面临更多的挑战。
发明内容
本申请实施例提供一种异构可信执行环境的创建方法、装置及计算系统,能够覆盖更加全面的机密计算场景,具有较好的适用性。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种异构可信执行环境的创建方法,应用于包括异构的第一处理器和第二处理器的计算设备,该方法包括:第一处理器基于第一处理器的计算资源,创建第一安全隔离实体,并向第二处理器发送第一创建请求;第二处理器响应于第一创建请求,基于第二处理器的计算资源,创建第二安全隔离实体;进而,第一处理器对第二处理器侧的第二安全隔离实体进行完整性度量;且第二处理器对第一处理器侧的第一安全隔离实体进行完整性度量。
本申请实施例提供的异构可信执行环境的创建方法中,由于第一处理器和第二处理器均可以对其对侧创建的第一安全隔离实体进行完整性度量,这样,第一处理器和第二处理器均可以提供用于机密计算的信息,即该方法能够适用于第一处理器提供机密数据和/或第二处理提供机密数据的场景,即能够覆盖更加全面的机密计算场景,具有较好的适用性。
一种可能的实现方式中,第一处理器为中央处理器CPU,第二处理器为人工智能AI加速器。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第一处理器设置访问控制策略;该访问控制策略包括第一出端访问权限表和第一入端访问权限表。其中,第一出端访问权限表用于对第一安全隔离实体访问第二安全隔离实体的访问请求进行权限检查,第一入端访问权限表用于对第二安全隔离实体访问第一安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第二处理器设置访问控制策略;该访问控制策略包括第二出端访问权限表和第二入端访问权限表。其中,第二出端访问权限表用于对第二安全隔离实体访问第一安全隔离实体的访问请求进行权限检查,第二入端访问权限表用于对第一安全隔离实体访问第二安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,上述第一处理器对第二处理器侧的第二安全隔离实体进行完整性度量,包括:第一处理器向第二处理器发送第一度量请求,该第一度量请求用于请求度量第二处理器侧的第二安全隔离实体的完整性;并且第二处理器向第一处理器发送第一度量值,第一度量值为第二处理器侧的第二安全隔离实体的度量值;以及根据第一度量值,对第二处理器侧的第二安全隔离实体进行完整性度量。
一种可能的实现方式中,上述第二处理器对第一处理器侧的第一安全隔离实体进行完整性度量,包括:第二处理器向第一处理器发送第二度量请求,该第二度量请求用于请求度量第一处理器侧的第一安全隔离实体的完整性;并且第一处理器向第二处理器发送第二度量值;第二度量值为第一处理器侧的第一安全隔离实体的度量值;以及根据第二度量值,对第一处理器侧的第一安全隔离实体进行完整性度量。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第一处理器与第二处理器进行密钥协商,生成第一会话密钥,该第一会话密钥用于对机密通信过程中的机密数据进行加解密。
本申请实施例中,第一处理器与第二处理器交互创建第一安全隔离实体和第二安全隔离实体之后,第一安全隔离实体和第二安全隔离实体进行机密通信,该第一安全隔离实体可以抵御通过软件方式进行的攻击,即可以保证机密数据不被通过软件层面的方法进行监听、篡改。但是不能保证数据被攻击者通过物理方法(例如采用探针)进行监听、篡改。因此,第一处理器与第二处理器进行密钥协商,生成第一会话密钥以对机密通信过程中的机密数据进行加解密,如此,能够使得提升机密计算的安全性。
一种可能的实现方式中,第一处理器和第二处理器的计算资源被划分为多个资源切片,多个资源切片包括安全态资源切片和非安全态资源切片;用于创建第一安全隔离实体和第二安全隔离实体的计算资源是安全态资源切片。
本申请实施例中,基于处理器的一个资源切片创建的安全隔离实体,并非基于处理器的全部资源创建,因此,处理器的其他资源切片可以用于创建其他的安全隔离实体,使得处理器的资源能够得到充分利用,提升了处理器的资源利用率。
一种可能的实现方式中,计算设备还包括第三处理器,本申请实施例提供的异构可信执行环境的创建方法还包括:第三处理器创建第三安全隔离实体;然后第一处理器对第三处理器侧的第三安全隔离实体进行完整性度量;并且第三处理器对第一处理器侧的第一安全隔离实体进行完整性度量。
一种可能的实现方式中,第三处理器是AI加速器。
本申请实施例提供的异构可信执行环境的创建方法可以根据需求灵活的在多个处理器之间建立用于机密通信的安全隔离实体。例如,在一个CPU和两个AI加速器之间建立用于机密通信的安全隔离实体。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第一处理器与第三处理器进行密钥协商,生成第二会话密钥;并且第一处理器使用第二会话密钥对第一会话密钥进行加密;以及向第三处理器发送加密后的第一会话密钥。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第三处理器设置访问控制策略,该访问控制策略包括第三出端访问权限表和第三入端访问权限表。其中,第三出端访问权限表用于对第三安全隔离实体访问第一安全隔离实体的访问请求进行权限检查,第三入端访问权限表用于对第一安全隔离实体访问第三安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第一处理器更新访问控制策略,第一处理器更新的访问控制策略包括第四出端访问权限表和第四入端访问权限表。其中,第四出端访问权限表用于对第一安全隔离实体访问,第三安全隔离实体的访问请求进行权限检,第四入端访问权限表用于对第三安全隔离实体访问第一安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,计算设备还包括第四处理器;本申请实施例提供的异构可信执行环境的创建方法还包括:第四处理器创建第四安全隔离实体;且第二处理器创建第五安全隔离实体;进而第四处理器对第二处理器侧的第五安全隔离实体进行完整性度量;且第二处理器对第四处理器侧的第四安全隔离实体进行完整性度量。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第三处理器创建第六安全隔离实体;然后第四处理器对第三处理器侧的第六安全隔离实体进行完整性度量;且第三处理器对第四处理器侧的第四安全隔离实体进行完整性度量。
一种可能的实现方式中,第四处理器是CPU。
本申请实施例提供的异构可信执行环境的创建方法可以根据需求灵活的在多个处理器之间建立用于机密通信的安全隔离实体。例如,在两个CPU和两个AI加速器之间建立用于机密通信的安全隔离实体。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第四处理器设置访问控制策略,该访问控制策略包括第五出端访问权限表和第五入端访问权限表。其中,第五出端访问权限表用于对第四安全隔离实体访问第二安全隔离实体的访问请求进行权限检查。第五入端访问权限表用于对第五安全隔离实体访问第四安全隔离实体的访问去请求进行权限检查。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第二处理器设置访问控制策略包括:第一AI加速器生成访问控制策略,该访问控制策略包括第六出端访问权限表和第六入端访问权限表。其中,第六出端访问权限表用于对第五安全隔离实体访问第四安全隔离实体的访问请求进行权限检查,第六入端访问权限表用于对第四安全隔离实体访问第五安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第四处理器更新访问控制策略,该第四处理器更新的访问控制策略包括第七出端访问权限表和第七入端访问权限表。其中,第七出端访问权限表用于对第四安全隔离实体访问第六安全隔离实体的访问请求进行权限检查,第七入端访问权限表用于对第六安全隔离实体访问第四安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第三处理器设置访问控制策略,该访问控制策略包括第八出端访问权限表和第八入端访问权限表。其中,第八出端访问权限表用于对第六安全隔离实体访问第四安全隔离实体的访问请求进行权限检查,第八入端访问权限表用于对第四安全隔离实体访问第六安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第四处理器与第二处理器进行密钥协商,生成第三会话密钥,该第三会话密钥用于对机密通信过程中的机密数据进行加解密;并且第四处理器与第三处理器进行密钥协商,生成第四会话密钥;以及第四处理器使用第四会话密钥对第三会话密钥进行加密,并向第三处理器发送加密后的第三会话密钥。
一种可能的实现方式中,本申请实施例提供的异构可信执行环境的创建方法还包括:第一处理器释放第一安全隔离实体;并且第一处理器向第二处理器发送释放指令;释放指令用于指示释放第二处理器侧的与第一安全隔离实体通信的第二安全隔离实体;第二处理器响应于释放指令,释放第二安全隔离实体。
第一处理器释放第一安全隔离实体包括:删除第一安全隔离实体对应的数据和访问控制策略。可选地,第一CPU也可以将创建第一安全隔离实体的资源切片的状态设置为非安全态。第二处理器释放第二安全隔离实体包括:第二处理器删除第二安全隔离实体对应的数据和访问控制策略。可选地,第二处理器也可以将创建第二安全隔离实体的资源切片的状态设置为非安全态。
第一处理器和第二处理器释放各自创建的安全隔离实体,这样,后续的,第一处理器的切片资源可用于第一处理器创建其他的安全隔离实体,第二处理器的资源切片也可以用于针对第一处理器或者其他处理器发送的用于创建其他安全隔离实体的创建请求,创建其他的安全隔离实体。
第二方面,本申请实施例提供一种计算系统,包括异构的第一处理器和第二处理器,第一处理器包括第一安全管理模块和第一可信度量模块;第二处理器包括第二安全管理模块和第二可信度量模块。其中,第一安全管理模块用于基于第一处理器的计算资源,创建第一安全隔离实体;并且向第二安全管理模块发送第一创建请求。第二安全管理模块用于响应于第一创建请求,基于第二处理器的计算资源,创建第二安全隔离实体。第一可信度量模块用于对第二处理器侧的第二安全隔离实体进行完整性度量。第一可信度量模块用于对第一处理器侧的第一安全隔离实体进行完整性度量。
一种可能的实现方式中,第一安全管理模块还用于设置访问控制策略;该访问控制策略包括第一出端访问权限表和第一入端访问权限表;其中,第一出端访问权限表用于对第一安全隔离实体访问第二安全隔离实体的访问请求进行权限检查,第一入端访问权限表用于对第二安全隔离实体访问第一安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,第二安全管理模块还用于设置访问控制策略;访问控制策略包括第二出端访问权限表和第二入端访问权限表;其中,第二出端访问权限表用于对第二安全隔离实体访问第一安全隔离实体的访问请求进行权限检查,第二入端访问权限表用于对第一安全隔离实体访问第二安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,上述第一可信度量模块具体用于向第二可信度量模块发送第一度量请求,第一度量请求用于请求度量第二处理器侧的第二安全隔离实体的完整性。第二可信度量模块还用于向第一可信度量模块发送第一度量值,第一度量值为第二处理器侧的第二安全隔离实体的度量值。第一可信度量模块具体用于根据第一度量值,对第二处理器侧的第二安全隔离实体进行完整性度量。
一种可能的实现方式中,上述第二可信度量模块具体用于向第一可信度量模块发送第二度量请求,第二度量请求用于请求度量第一处理器侧的第一安全隔离实体的完整性。第一可信度量模块还用于向第二可信度量模块发送第二度量值,该第二度量值为第一处理器侧的第一安全隔离实体的度量值。第二可信度量模块具体用于根据第二度量值,对第一处理器侧的第一安全隔离实体进行完整性度量。
一种可能的实现方式中,第一安全管理模块还用于与第二安全管理模块进行密钥协商,生成第一会话密钥,该第一会话密钥用于对机密通信过程中的机密数据进行加解密。
一种可能的实现方式中,本申请实施例提供的计算系统还包括第三处理器,第三处理器包括第三安全管理模块和第三可信度量模块。第三安全管理模块用于创建第三安全隔离实体。上述第一可信度量模块还用于对第三处理器侧的第三安全隔离实体进行完整性度量;第三可信度量模块用于对第一处理器侧的第一安全隔离实体进行完整性度量。
一种可能的实现方式中,该第三安全管理模块还用于与第一安全管理模块进行密钥协商,生成第二会话密钥。第一安全管理模块还用于使用第二会话密钥对第一会话密钥进行加密,并向第三安全管理模块发送加密后的第一会话密钥。
一种可能的实现方式中,本申请实施例提供的计算系统还包括第四处理器,第四处理器包括第四安全管理模块和第四可信度量模块。第四安全管理模块用于创建第四安全隔离实体;第二安全管理模块还用于创建第五安全隔离实体;第四可信度量模块用于对第二处理器侧的第五安全隔离实体进行完整性度量;第二可信度量模块还用于对第四处理器侧的第四安全隔离实体进行完整性度量。
一种可能的实现方式中,第三安全管理模块还用于创建第六安全隔离实体;第四可信度量模块还用于对第三处理器侧的第六安全隔离实体进行完整性度量;第三可信度量模块还用于对第四处理器侧的第四安全隔离实体进行完整性度量。
一种可能的实现方式中,第一安全管理模块还用于更新访问控制策略,第一处理器更新的访问控制策略包括第四出端访问权限表和第四入端访问权限表。其中,第四出端访问权限表用于对第一安全隔离实体访问,第三安全隔离实体的访问请求进行权限检,第四入端访问权限表用于对第三安全隔离实体访问第一安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,第三安全管理模块还用于设置访问控制策略,该访问控制策略包括第三出端访问权限表和第三入端访问权限表。其中,第三出端访问权限表用于对第三安全隔离实体访问第一安全隔离实体的访问请求进行权限检查,第三入端访问权限表用于对第一安全隔离实体访问第三安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,第四安全管理模块还用于设置访问控制策略,该访问控制策略包括第五出端访问权限表和第五入端访问权限表。其中,第五出端访问权限表用于对第四安全隔离实体访问第二安全隔离实体的访问请求进行权限检查。第五入端访问权限表用于对第五安全隔离实体访问第四安全隔离实体的访问去请求进行权限检查。
一种可能的实现方式中,第二安全管理模块还用于设置访问控制策略,该访问控制策略包括:第一AI加速器生成访问控制策略,该访问控制策略包括第六出端访问权限表和第六入端访问权限表。其中,第六出端访问权限表用于对第五安全隔离实体访问第四安全隔离实体的访问请求进行权限检查,第六入端访问权限表用于对第四安全隔离实体访问第五安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,第四安全管理模块还用于更新访问控制策略,该第四处理器更新的访问控制策略包括第七出端访问权限表和第七入端访问权限表。其中,第七出端访问权限表用于对第四安全隔离实体访问第六安全隔离实体的访问请求进行权限检查,第七入端访问权限表用于对第六安全隔离实体访问第四安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,第三安全管理模块还用于设置访问控制策略,该访问控制策略包括第八出端访问权限表和第八入端访问权限表。其中,第八出端访问权限表用于对第六安全隔离实体访问第四安全隔离实体的访问请求进行权限检查,第八入端访问权限表用于对第四安全隔离实体访问第六安全隔离实体的访问请求进行权限检查。
一种可能的实现方式中,第四处理器还包括第四安全管理模块;第四安全管理模块用于与第二安全管理模块进行密钥协商,生成第三会话密钥;第三会话密钥用于对机密通信过程中的机密数据进行加解密。第四安全管理模块还用于与第三安全管理模块进行密钥协商,生成第四会话密钥;并且使用第四会话密钥对第三会话密钥进行加密;以及向第三处理器发送加密后的第三会话密钥。
一种可能的实现方式中,第一安全管理模块还用于释放第一安全隔离实体;并且向第二处理器发送释放指令,该释放指令用于指示释放第二处理器侧的与第一安全隔离实体通信的第二安全隔离实体。第二安全管理模块响应于释放指令,释放第二安全隔离实体。
第三方面,本申请实施例提供一种计算设备,包括存储器和与存储器连接的至少一个处理器,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被至少一个处理器执行时,使得计算设备执行第一方面及其可能的实现方式中任意之一所述的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,存储有计算机指令,计算机指令在计算机上运行时,执行第一方面及其可能的实现方式中任意之一的方法。
第五方面,本申请实施例提供一种计算机程序产品,该计算机程序产品包含计算机指令,当计算机指令在计算机上运行时,执行第一方面及其可能的实现方式中任意之一所述的方法。
第六方面,本申请实施例提供一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行第一方面及其可能的实现方式中任意之一所述的方法。
应当理解的是,本申请的第二方面至第六方面技术方案及对应的可能的实施方式所取得的有益效果可以参见上述对第一方面及其对应的可能的实施方式的技术效果,此处不再赘述。
附图说明
图1为本申请实施例提供的一种计算设备的硬件结构示意图;
图2为本申请实施例提供的一种异构可信执行环境的创建方法示意图之一;
图3为本申请实施例提供的一种异构可信执行环境的创建方法示意图之二;
图4为本申请实施例提供的一种异构可信执行环境的创建方法中的各个模块的交互关系示意图之一;
图5为本申请实施例提供的一种异构可信执行环境的创建方法示意图之三;
图6为本申请实施例提供的一种异构可信执行环境的创建方法中的各个模块的交互关系示意图之二;
图7为本申请实施例提供的异构可信执行环境的创建方法示意图之四;
图8为本申请实施例提供的一种异构可信执行环境的创建方法中的各个模块的交互关系示意图之三;
图9为本申请实施例提供的计算系统的结构示意图之一;
图10为本申请实施例提供的计算系统的结构示意图之二;
图11为本申请实施例提供的计算系统的结构示意图之三。
具体实施方式
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。
首先对本申请实施例提供的一种异构可信执行环境的创建方法、装置及计算系统涉及的一些概念做解释说明。
1、机密计算
机密计算是一种基于可信硬件,结合固件和软件构建加密、隔离、可证明的计算环境(该计算环境称为机密计算环境),保证计算环境内数据机密性、完整性,代码完整性以及运算过程机密性的计算模式。
机密计算技术的基础在于基于硬件架构构建机密计算环境,通过硬件隔离机制保证了机密计算环境中运行的代码、数据不可被不可信代码访问、篡改。
2、可信执行环境(TEE)
TEE是一种以硬件隔离为基础创建的安全区域,即TEE运行在隔离的硬件的机密计算环境,TEE与操作系统并行运行。当前各个主流芯片厂商都提出了围绕CPU而创建的TEE架构,例如,Intel SGX、Intel TDX、AMD SEV、ARM TrustZone、ARM CCA等。关于基于CPU创建TEE的过程可以参考现有的技术资料。
基于TEE可以创建安全隔离实体,通过安全隔离实体完成机密计算,例如,一个处理器上创建一个安全隔离实体,在另一个处理器上也创建一个安全隔离实体,这两个安全隔离实体之间交互进行机密通信,例如机密数据传输和机密计算。
示例性的,安全隔离实体可以是虚拟机、应用程序、容器、固件程序等等。
针对背景技术存在的问题,本申请实施例提供一种异构可信执行环境的创建方法,主要应用于包括异构的第一处理器和第二处理器的计算设备,计算设备中的第一处理器基于该第一处理器的计算资源,创建第一安全隔离实体;之后,第一处理器向第二处理器发送第一创建请求,第二处理器响应于该第一创建请求,基于该第二处理器的计算资源创建第二安全隔离实体;进而第一处理器对第二处理器侧的第二安全隔离实体进行完整性度量,并且第二处理器也对第一处理器侧的第一安全隔离实体进行完整性度量。该方法中,第一处理器和第二处理器均可以对其对侧创建的第一安全隔离实体进行完整性度量,这样,第一处理器和第二处理器均可以提供用于机密计算的信息(以下均称为机密数据)。综上,本申请实施例提供的异构可信执行环境的创建方法,能够适用于第一处理器提供机密数据和/或第二处理提供机密数据的场景,即能够覆盖更加全面的机密计算场景,具有较好的适用性。
图1为本申请实施例提供的一种计算设备的硬件结构示意图,图1中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。如图1所示,计算设备可以包括:处理器101、存储器102、通信接口103。其中,处理器101、存储器102以及通信接口103之间可以通过总线104连接,或采用其他方式相互连接。
其中,处理器101是计算设备的控制中心,处理器101可以是通用中央处理单元(central processing unit,CPU),也可以是其他通用处理器等,其中,通用处理器可以是微处理器或者是任何常规的处理器等。
处理器101中的控制器是计算设备的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。可选地,处理器101中还可以设置存储器,用于存储指令和数据。示例性的,处理器101可以包括一个或多个CPU,例如图1中所示的CPU 0和CPU 1。
存储器102包括但不限于是随机存取存储器(random access memory,RAM)、只读存储器(read only memory,ROM)、可擦除可编程只读存储器(erasable programmableread-only memory,EPROM)、快闪存储器、或光存储器、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质。本申请实施例中,存储器102可以存储计算机指令等信息。
一种可能的实现方式中,存储器102可以独立于处理器101存在。存储器102可以通过总线104与处理器101相连接,用于存储数据、指令或者程序代码。处理器101调用并执行存储器102中存储的指令或程序代码时,能够实现本申请实施例提供的异构可信执行环境的创建方法中的相关步骤。
另一种可能的实现方式中,存储器102也可以和处理器101集成在一起。
通信接口103可以是收发模块,用于与其他设备或通信网络通信,如以太网,RAN,无线局域网(wireless local area networks,WLAN)等通信,通信接口103可以接收指令、消息或数据等。收发模块可以是收发器、收发机一类的装置。可选地,通信接口103也可以是位于处理器101内的收发电路,用以实现处理器的信号输入和信号输出。通信接口103可以是有线接口(端口),例如光纤分布式数据接口(fiber distributed data interface,FDDI)、千兆以太网(gigabit ethernet,GE)接口,或者,通信接口103也可以是无线接口。
总线104可以是工业标准体系结构(industry standard architecture,ISA)总线、外部设备互连(peripheral component interconnect,PCI)总线或扩展工业标准体系结构(extended industry standard architecture,EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。总线也可以分为串行总线和并行总线。为便于表示,图1中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
本申请实施例提供的计算设备还包括与上述处理器101异构的AI加速器105(AI加速器也可以称为AI晶元或计算卡或异构加速单元等),AI加速器105是专用于处理人工智能领域中的大量计算任务的模块,AI加速器105也是一种处理器。AI加速器105也通过总线104与其他部件连接。
上述处理器102(即中央处理器CPU)是通用计算模块,主要负责负载的逻辑计算和逻辑控制功能,能高效处理单个的复杂计算顺序的任务,但在大量计算方面的性能比较低。因此,处理器可以将大量计算的任务分发到AI加速器105,AI加速器105完成计算之后,将计算结果返回至处理器101。
示例性的,AI加速器105可以包括图形处理器(graphics processing unit,GPU)、现场可编程门阵列(field-programmable gate array,FPGA)、专用集成电路(application-specific integrated circuit,ASIC)等。
GPU又可以称视觉处理器、显示芯片,是一种专门在个人电脑、工作站、游戏机和一些移动设备(如平板电脑、智能手机等)上做图像和图形相关运算工作的微处理器。GPU包含数千个内核,能同时处理数千个线程,可并行运行大量计算。
FPGA是可编程逻辑处理器,用户可以根据自身的需求进行重复编程,FPGA擅长处理短小而密集的数据访问。FPGA允许用户通过微小的逻辑块对电路路数编程,可以处理任何类型的数字函数。
ASIC是一种为专门目的而设计的特殊规格的集成电路,由特定使用者要求和特定电子系统的需要而设计制造。例如张量处理器(tensor processing unit,TPU)、神经网络处理器(neural network processing unit,NPU)等都属于ASIC,TIP和NPU是机器学习设计的芯片,适合海量数据的计算,具有强大的计算能力。
需要说明的是,图1所示的计算设备仅仅是计算设备的一个范例,该计算设备可以具有比图1中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。
处理器101可以基于处理器101的计算资源创建实例,AI加速器105也可以基于该AI加速器105的计算资源创建与处理器101侧对应的实例,进而,通过创建的实例之间可以通信,完成计算任务。本申请实施例中,将机密通信的场景中创建的实例称为安全隔离实体。
应理解,本申请实施例中,CPU和AI加速器的计算资源包括算力资源和存储资源,CPU和AI加速器的计算资源被划分为多个资源切片,多个资源切片包括安全态资源切片和非安全态资源切片。
在一种实现方式中,多个资源切片中的每一个资源切片的状态包括安全态和非安全态。所有资源切片的初始状态均设置为非安全态,根据实际使用需求,可以对资源切片的状态进行配置,例如将某一资源切片的状态由非安全态设置为安全态,并将基于安全态的资源切片创建可信执行环境中的安全隔离实体。也可以将某一资源切片的状态由安全态修改为非安全态,并基于非安全态的资源切片创建富执行环境中的实体。
示例性的,可以采用不同的标识信息标识资源切片的状态,例如采用“0”标识资源切片的状态为非安全态,采用“1”标识资源切片的状态为安全态。
在本申请实施例中,计算设备的运算单元(包括CPU和AI加速器)的运行状态可以划分为安全态和非安全态,同时,其内存、缓存的状态也被划分为安全态和非安全态。对于安全态的运算单元,根据访问权限表可以访问安全态的内存、缓存,也可以访问非安全态的内存、缓存;对于非安全态的运算单元,根据访问权限表仅可以访问非安全态的内存、缓存。为支持区分安全态运算单元与非安全态运算单元对计算资源的访问,需要在资源请求报文中携带用于区分运算单元处于安全状态的安全比特位。该安全比特位通过硬件透传,软件不可感知、不可修改。
本申请实施例中,CPU和/或AI加速器的资源切片可以由资源管理设备进行管理,其他设备可以通过该资源管理设备获知CPU和/或AI加速器中是否存在可用资源切片。可选地,该资源管理设备可以是独立于上述计算设备的设备,该资源管理设备也可以是计算设备本身,例如计算设备中的CPU。
应理解,进行机密通信时,CPU和AI加速器需要分别基于各自的TEE创建一对或多对安全隔离实体,从而安全隔离实体之间的安全通信通道来传输信令和数据,例如,CPU创建该CPU侧的安全隔离实体1,然后CPU向AI加速器发送创建请求,AI加速器接收到该创建请求之后,创建该AI加速器侧的安全隔离实体2,进而安全隔离实体1和安全隔离实体2机密通信。
本申请实施例提供的异构可信执行环境的创建方法可以应用于云场景中,CPU的可信执行环境中承载有租户的虚拟机或者容器,AI加速器通过设备互联协议或者网络互联协议与承载在该CPU上的虚拟机或容器通信,提供运算加速服务。
本申请实施例提供的异构可信执行环境的创建方法应用于包括异构的第一处理器和第二处理器的计算设备,第一处理器是CPU,第二处理器是AI加速器。参考图2,该方法包括:
S201、第一处理器基于第一处理器的计算资源,创建第一安全隔离实体。
本申请实施例中,第一处理器的计算资源的粒度可以是资源切片,第一处理器创建第一安全隔离实体具体是:将第一安全隔离实体的代码存储至所划分的资源切片的存储资源内,并且使用所划分的资源切片的算力资源运行第一安全隔离实体的代码。第一安全隔离实体的形态可以是虚拟机或容器等。
可选地,第一处理器创建了第一安全隔离实体之后,第一处理器还需验证第一处理器侧的第一安全隔离实体的完整性,即对第一处理器侧的第一安全隔离实体进行完整性度量,具体包括:第一处理器对第一安全隔离实体的度量值进行验证,以确认第一安全隔离实体是否可信。应理解,第一安全隔离实体的度量值是第一安全隔离实体的代码以及其硬件配置的度量值。关于完整性度量的详细过程可以参考现有的技术资料,本申请实施例不做详细描述。
S202、第一处理器向第二处理器发送第一创建请求。
该第一创建请求用于请求创建第二处理器侧的第二安全隔离实体。
S203、响应于第一创建请求,第二处理器基于第二处理器的计算资源,创建第二安全隔离实体。
第二处理器创建第二安全隔离实体的过程与第一处理器创建第一安全隔离实体的过程类似,即将第二安全隔离实体的代码存储至所划分的资源切片的存储资源内,并且使用所划分的资源切片的算力资源运行第二安全隔离实体的代码。第二安全隔离实体的形态可以是固件程序。
S204、第一处理器对第二安全隔离实体进行完整性度量。
可选地,第一处理器对第二处理器侧的第二安全隔离实体进行完整性度量的实质是第一处理器对第二处理器侧的第二安全隔离实体的度量值进行验证,以确定第二处理器侧的第二安全隔离实体是否完整,S204具体包括:
S2041、第一处理器向第二处理器发送第一度量请求,第一度量请求用于请求度量第二处理器侧的第二安全隔离实体的完整性。
S2042、第二处理器生成第一度量值,该第一度量值为第二处理器侧的第二安全隔离实体的度量值。
S2043、第二处理器向第一处理器发送第一度量值。
S2044、第一处理器根据第一度量值,对第二处理器侧的第二安全隔离实体进行完整性度量。
S205、第二处理器对第一处理器侧的第一安全隔离实体进行完整性度量。
同理,第二处理器对第一处理器侧的第一安全隔离实体进行完整性度量的实质是第一处理器对第二处理器侧的第二安全隔离实体的度量值进行验证,以确定第二处理器侧的第二安全隔离实体是否完整,S205具体包括:
S2051、第二处理器向第一处理器发送第二度量请求,第二度量请求用于请求度量第一处理器侧的第一安全隔离实体的完整性。
S2052、第一处理器生成第二度量值,第二度量值为第一处理器侧的第一安全隔离实体的度量值。
S2053、第一处理器向第二处理器发送第二度量值。
S2054、第二处理器根据第二度量值,对第一处理器侧的第一安全隔离实体进行完整性度量。
本申请实施例提供的异构可信执行环境的创建方法中,由于第一处理器和第二处理器均可以对其对侧创建的第一安全隔离实体进行完整性度量,这样,第一处理器和第二处理器均可以提供用于机密计算的信息(以下均称为机密数据)。该方法能够适用于第一处理器提供机密数据和/或第二处理提供机密数据的场景,即能够覆盖更加全面的机密计算场景,具有较好的适用性。
应理解,创建安全隔离实体的过程中涉及到多个模块之间的交互,具体的,在CPU侧涉及的模块包括安全管理模块、可信度量模块、安全通信模块,以及创建的安全隔离实体和度量值验证模块,该度量值验证模块可以是第三方服务的模块或者第一处理器侧的模块,也可以称为远端的度量值验证模块或本地的度量值验证模块。在AI加速器侧涉及的模块包括安全管理模块、可信度量模块、安全通信模块以及创建的安全隔离实体。
本申请实施例中,计算设备可以包括多个CPU和多个AI加速器,CPU和AI加速器可以进行交互创建安全隔离实体,并且可以灵活地在M个CPU和N个AI加速器之间建立一对或多对安全隔离实体,M和N均为大于或等于1的整数。
以下实施例中示例性地介绍M和N取不同值时,从CPU与AI加速器交互的角度描述可信执行环境中的实例的创建过程,M表示CPU的数量,N表示AI加速器的数量。
第一种情况:M:N=1:1。
第二种情况是:M:N=1:2。
第三种情况是:M:N=2:2。
对于第一种情况(M:N=1:1),计算设备的第一处理器和第二处理器交互建立安全隔离实体,其中,第一处理器为CPU,第二处理器为AI加速器。为了便于描述,以下实施例中将第一处理器称为第一CPU,将第二处理器称为第一AI加速器。
参考图3,从各个模块交互的角度介绍本申请实施例提供的异构可信执行环境的创建方法,该方法包括:
S301、第一CPU侧的安全管理模块接收平台使用方的指令,配置第一CPU侧的计算资源(包括算力资源和存储资源)及其安全属性,设置访问控制策略,并创建第一安全隔离实体。
本申请实施例中,平台使用方的指令可以理解为用户触发的创建CPU侧和AI加速器侧的安全隔离实体的指令。第一CPU侧的安全管理模块配置的第一CPU侧的计算资源用于创建第一CPU侧的第一安全隔离实体。安全管理模块配置计算资源的安全属性包括将资源切片的状态设置为安全态。
在一种实现方式中,上指令中可以携带第一安全隔离实体的资源请求,该资源请求用于指示创建第一安全隔离实体所需的计算资源,如此,第一CPU根据第一安全隔离实体的资源请求,采用该第一CPU的资源切片创建该第一安全隔离实体。
在另一种实现方式中,上述第一CPU也可以根据预先约定的资源划分方式,采用第一CPU的资源切片。应理解,根据资源划分方式可以确定第一CPU的哪些资源可用于创建第一安全隔离实体。
本申请实施例中,第一CPU设置访问控制策略具体包括:第一CPU生成访问控制策略,并将第一访问权限表配置到第一CPU侧的安全通信模块。
可选地,访问控制策略可以是以用户为粒度进行配置,对于同一个用户,生成访问控制策略相同;对于不同的用户,生成的访问控制策略不同。
本申请实施例中,第一CPU设置的访问控制策略包括第一出端访问权限表和第一入端访问权限表。
其中,第一出端访问权限表用于对第一安全隔离实体访问第二安全隔离实体的访问请求进行权限检查,第二安全隔离实体是第一AI加速器侧的安全隔离实体。具体的,由第一CPU侧的安全通信模块基于第一出端访问权限表对访问请求中的访问地址进行权限检查,应理解,第一安全隔离实例先将访问请求发送至第一CPU侧的安全通信模块,安全通信模块对访问地址进行权限检查通过后,第一CPU侧的安全通信模块将访问请求发送至第一AI加速器侧的安全通信模块。此时,访问地址为第一AI加速器的物理地址,第一出端访问权限表中包括多个AI加速器的物理地址以及物理地址对应的权限标签,权限标签指示有权限或无权限。也就是说,第一安全隔离实体对第二安全隔离实体发起访问请求时,第一CPU基于第一出端访问权限表对访问请求中的第一AI加速器的物理地址进行权限检查,若确定有权限,则可以发出访问请求。
第一入端访问权限表用于对第二安全隔离实体访问第一CPU侧的第一安全隔离实体的访问请求进行权限检查。具体的,由第一CPU侧的安全通信模块基于第一入端访问权限表对访问请求中的访问地址进行权限检查,应理解,第一CPU侧的安全通信模块接收到第一AI加速器侧的安全通信模块发送的访问请求,第一CPU侧的安全通信模块对访问地址进行权限检查通过后,第一CPU侧的安全通信模块将访问请求转发到第一CPU侧的第一安全隔离实体。此时,访问地址为第一CPU的物理地址,第一入端访问权限表中包括多个CPU的物理地址以及物理地址对应的权限标签。也就是说,第一AI加速器对第一CPU发起访问请求时,该访问请求到达第一CPU(具体是第一CPU的安全通信模块)后,第一CPU基于第一入端访问权限表对访问请求中的第一CPU的物理地址进行权限检查,若确定有权限,则第一CPU接收该地址访问请。
可以理解的,第一CPU侧的安全管理模块配置好第一CPU侧的计算资源(包括算力资源和存储资源)及其安全属性之后,第一CPU基于配置的计算资源运行第一安全隔离实体的代码即可创建第一安全隔离实体。
S302、第一CPU侧的可信度量模块向安全管理模块请求获取第一安全隔离实体的度量值。
S303、第一CPU侧的第一安全隔离实体与安全管理模块交互,生成(计算)第一安全隔离实体的度量值。
S304、第一CPU侧的安全管理模块向可信度量模块发送第一安全隔离实体的度量值。
S305、第一CPU侧的可信度量模块与度量值验证模块交互进行度量值验证,获得度量值的验证结果。
具体的,第一CPU侧的可信度量模块向度量值验证模块发送完整性验证请求,该完整性验证请求中包含第一CPU侧的第一安全隔离实体的度量值;度量值验证模块对其接收到的第一安全隔离实体的度量值进行完整性验证。完整性验证通过,说明第一CPU侧的第一安全隔离实体完整且可信,否则,该第一安全隔离实体不完整且不可信。
S306、第一CPU侧的安全管理模块向第一AI加速器的安全管理模块请求创建第一AI加速器侧的第二安全隔离实体。
具体的,第一CPU侧的安全管理模块向第一AI加速器的安全管理模块发送第一创建请求。
S307、第一AI加速器侧的安全管理模块配置第一AI加速器侧的计算资源(包括算力资源和存储资源)及其安全属性,并设置访问控制策略,并创建第一AI加速器侧的第二安全隔离实体。
第一AI加速器侧的安全管理模块配置的第一AI加速器侧的计算资源用于创建第一AI加速器侧的第二安全隔离实体。安全管理模块配置计算资源的安全属性包括将资源切片的状态设置为安全态。
针对一个CPU发送的创建请求,AI加速器基于该AI加速器的一个资源切片创建的安全隔离实体,并非基于该AI加速器的全部资源创建,因此,该AI加速器的其他资源切片可以用于创建其他的安全隔离实体,可见,AI加速器的资源能够得到充分利用,提升了AI加速器的资源利用率。
本申请实施例中,第一AI加速器设置访问控制策略具体包括:第一AI加速器生成访问控制策略,并将访问控制策略配置到第一AI加速器侧的安全通信模块。
同理,访问控制策略可以是以用户为粒度进行配置,对于同一个用户,生成的访问控制策略相同;对于不同的用户,生成的访问控制策略不同。
本申请实施例中,第一AI加速器设置的访问控制策略包括第二出端访问权限表和第二入端访问权限表。
其中,第二出端访问权限表用于对第二安全隔离实体访问第一安全隔离实体的访问请求进行权限检查。具体的,由第一AI加速器侧的安全通信模块基于第二出端访问权限表对访问请求中的访问地址进行权限检查,应理解,第一AI加速器侧的第二安全隔离实例先将访问请求发送至第一AI加速器侧的安全通信模块,安全通信模块对访问地址进行权限检查通过后,第一AI加速器侧的安全通信模块将访问请求发送至第一CPU侧的安全通信模块。此时,访问地址为第一CPU的物理地址,第二出端访问权限表中包括多个CPU的物理地址以及物理地址对应的权限标签,权限标签指示有权限或无权限。也就是说,第二安全隔离实体对第一安全隔离实体发起访问请求时,第一AI加速器基于第二出端访问权限表对访问请求中的第一CPU的物理地址进行权限检查,若确定有权限,则可以发出访问请求。
第二入端访问权限表用于对第一安全隔离实体访问第二安全隔离实体的访问请求进行权限检查。具体的,由第一AI加速器侧的安全通信模块基于第二入端访问权限表对访问请求中的访问地址进行权限检查,应理解,第一AI加速器侧的安全通信模块接收到第一CPU侧的安全通信模块发送的访问请求,第一AI加速器的安全通信模块对访问地址进行权限检查通过后,第一AI加速器侧的安全通信模块将访问请求转发到第一AI加速器侧的第二安全隔离实体。此时,访问地址为第一AI加速器的物理地址,第二入端访问权限表中包括多个AI加速器的物理地址以及物理地址对应的权限标签。也就是说,第一安全隔离实体对第二安全隔离实体发起访问请求时,该访问请求到达第一AI加速器(具体是第一AI加速器侧的安全通信模块)之后,第一AI加速器基于第二入端访问权限表对访问请求中的第一AI加速器的物理地址进行权限检查,若确定有权限,则第二安全隔离实体可以接收该访问请求。
S308、第一CPU侧的可信度量模块向第一AI加速器侧的可信度量模块请求对第一AI加速器侧的第二安全隔离实体进行完整性度量。
具体的,第一CPU侧的可信度量模块向第一AI加速器侧的可信度量模块发送度量请求,该度量请求用于请求对第一AI加速器侧的第一安全隔离实体进行完整性度量。
S309、第一AI加速器侧的可信度量模块向第一AI加速器侧的安全管理模块请求获取第一安全隔离实体的度量值。
S310、第一AI加速器侧的第二安全隔离实体与安全管理模块交互,生成第一AI加速器侧的第二安全隔离实体的度量值。
第二安全隔离实体的度量值可以称为第一度量值。
S311、第一AI加速器侧的安全管理模块向第一AI加速器侧的可信度量模块发送第一AI加速器侧的第二安全隔离实体的度量值。
S312、第一AI加速器侧的可信度量模块向第一CPU侧的可信度量模块发送第一AI加速器侧的第二安全隔离实体的度量值。
本申请实施例中,第一AI加速器侧的安全管理模块生成第一度量值之后,第一AI加速器的安全管理模块可以采用预置的私钥对该第一度量值加密,并将加密后的第一度量值发送至第一CPU侧的可信度量模块;第一CPU侧的可信度量模块接收到加密的第一度量值之后,采用预置的公钥对该第一度量值进行解密。
S313、第一CPU侧的可信度量模块与度量值验证模块交互进行度量值验证,获得完整性的验证结果。
具体的,第一CPU侧的可信度量模块向度量值验证模块发送完整性验证请求,该完整性验证请求中包含第一AI加速器侧的第二安全隔离实体的度量值;度量值验证模块对其接收到的第一AI加速器侧的第二安全隔离实体的度量值进行完整性验证,完整性验证结果包括验证成功或验证失败。完整性验证成功,说明第一AI加速器侧的第二安全隔离实体完整且可信,否则,该第一安全隔离实体不完整且不可信。关于根据完整性验证的详细内容可以参考现有的技术资料。
通过上述S308-S313完成了第一CPU对第一AI加速器侧的第二安全隔离实体的完整性度量。
S314、第一AI加速器侧的可信度量模块向第一CPU侧的可信度量模块请求对第一CPU侧的第一安全隔离实体进行完整性度量。
具体的,第一AI加速器侧的可信度量模块向第一CPU侧的可信度量模块发送度量请求,该度量请求用于请求对第一CPU侧的第一安全隔离实体进行完整性度量。
S315、第一CPU侧的可信度量模块向第一CPU侧的安全管理模块请求获取第一安全隔离实体的度量值。
S316、第一CPU侧的第一安全隔离实体与第一CPU侧的安全管理模块交互,生成第一CPU侧的第一安全隔离实体的度量值。
第一CPU侧的第一安全隔离实体的度量值可以称为第二度量值。
S317、第一CPU侧的安全管理模块向第一CPU侧的可信度量模块发送第一CPU侧的第一安全隔离实体的度量值。
S318、第一CPU侧的可信度量模块向第一AI加速器侧的可信度量模块发送第一CPU侧的第一安全隔离实体的度量值。
第一CPU侧的可信度量模块可以对第二度量值进行加密后发送至第一AI加速器侧的可信度量模块,第一AI加速器侧的可信度量模块接收到加密的第二度量值之后,再进行解密获得第二度量值。
S319、第一AI加速器侧的可信度量模块与度量值验证模块交互进行度量值验证,获得度量值的验证结果。
具体的,第一AI加速器的可信度量模块向度量值验证模块发送完整性验证请求,该完整性验证请求中包含第一CPU侧的第一安全隔离实体的度量值;度量值验证模块对其接收到的第一CPU侧的第一安全隔离实体的度量值进行完整性验证。完整性验证通过,说明第一CPU侧的第一安全隔离实体完整,否则,该第一安全隔离实体不完整。
通过上述S314-S319完成了第一AI加速器对第一CPU侧的第一安全隔离实体的完整性度量。
综上,第一CPU对第一AI加速器侧的第二安全隔离实体进行完整性度量,并且第一AI加速器对第一CPU侧的第一安全隔离实体进行完整性度量之后,第一安全隔离实体和第二安全隔离实体即建立了安全通信关系。后续的,第一安全隔离实体和第二安全隔离实体进行机密通信。
可选地,本申请实施例提供的异构可信执行环境的创建方法还包括:
S320、第一CPU侧的安全管理模块与第一AI加速器侧的安全管理模块进行密钥协商,生成第一会话密钥。
该第一会话密钥用于对第一安全隔离实体与第二安全隔离实体进行机密通信过程中的机密数据加解密。
S321、第一CPU侧的安全管理模块将第一会话密钥存储至第一CPU侧的安全通信模块。
S322、第一AI加速器侧的安全管理模块将第一会话密钥存储至第一AI加速器侧的安全通信模块。
结合图3所示的异构可信执行环境的创建方法的流程示意图,图4示出了第一CPU和第一AI加速器的各个模块的交互关系示意图。
本申请实施例中,第一CPU与第一AI加速器交互创建第一安全隔离实体和第二安全隔离实体之后,第一安全隔离实体和第二安全隔离实体进行机密通信,该第一安全隔离实体可以抵御通过软件方式进行的攻击,即可以保证机密数据不被通过软件层面的方法进行监听、篡改。但是不能保证数据被攻击者通过物理方法(例如采用探针)进行监听、篡改。因此,第一CPU侧的安全管理模块与第一AI加速器侧的安全管理模块进行密钥协商,生成第一会话密钥以对机密通信过程中的机密数据进行加解密,如此,能够使得提升机密计算的安全性。
可选地,第一安全隔离实体和第二安全隔离实体完成机密计算之后,第一CPU和第一AI加速器可以释放各自建立的安全隔离实体。具体的,第一CPU和第一AI加速器释放第一安全隔离实体的过程包括:
S1、第一CPU释放第一CPU侧的第一安全隔离实体。
第一CPU释放第一CPU侧的第一安全隔离实体,包括:第一CPU将删除第一安全隔离实体对应的数据和访问控制策略。可选地,第一CPU也可以将创建第一安全隔离实体的资源切片的状态设置为非安全态。
S2、第一CPU向第一AI加速器发送第一释放指令。相应地,第一AI加速器从第一CPU接收第一释放指令。
该第一释放指令用于指示第一AI加速器释放该第一AI加速器侧的第二安全隔离实体。
S3、第一AI加速器响应于第一释放指令,释放第一AI加速器侧的第二安全隔离实体。
具体的,第一AI加速器释放该第一AI加速器侧的第二安全隔离实体,包括:第一AI加速器删除第二安全隔离实体对应的数据和访问控制策略。可选地,第一AI加速器也可以将创建第二安全隔离实体的资源切片的状态设置为非安全态。
S4、第一AI加速器向第一CPU发送响应消息。相应地,第一CPU接收该响应消息。
该响应消息用于通知第一CPU,该第一AI加速器已释放第一AI加速器侧的第二安全隔离实体。
通过上述S1-S4,第一CPU和第一AI加速器释放各自创建的安全隔离实体,这样,后续的,第一CPU的切片资源可用于第一CPU创建其他的安全隔离实体,第一AI加速器的资源切片也可以用于针对第一CPU或者其他CPU发送的用于创建其他安全隔离实体的创建请求,创建其他的安全隔离实体。
对于上述第二种情况(M:N=1:2),本申请实施例提供的计算设备还包括第三处理器,该第三处理器是AI加速器,为了便于描述,以下实施例中将第三处理器称为第二IA加速器。
参考图5,从各个模块交互的角度介绍本申请实施例提供的异构可信执行环境的创建方法(图5中省略了度量值验证模块),该方法包括:
S501、第一CPU侧的安全管理模块接收平台使用方的指令,配置第一CPU侧的计算资源及其安全属性,设置访问控制策略,并创建第一安全隔离实体。
S502、第一CPU侧的可信度量模块向安全管理模块请求获取第一安全隔离实体的度量值。
S503、第一CPU侧的第一安全隔离实体与安全管理模块交互,生成第一CPU侧的第一安全隔离实体的度量值。
S504、第一CPU侧的安全管理模块向可信度量模块发送第一CPU侧的第一安全隔离实体的度量值。
S505、第一CPU侧的可信度量模块与度量值验证模块交互进行度量值验证,获得度量值的验证结果。
S506、第一CPU侧的安全管理模块向第一AI加速器的安全管理模块请求创建第一AI加速器侧的第二安全隔离实体。
S507、第一AI加速器侧的安全管理模块配置第一AI加速器侧的计算资源及其安全属性,设置访问控制策略,并创建第二安全隔离实体。
S508、第一CPU侧的可信度量模块向第一AI加速器侧的可信度量模块请求对第一AI加速器侧的第一安全隔离实体进行完整性度量。
S509、第一AI加速器侧的可信度量模块向第一AI加速器侧的安全管理模块请求获取第一安全隔离实体的度量值。
S510、第一AI加速器侧的第二安全隔离实体与第一AI加速器侧的安全管理模块交互,生成第一AI加速器侧的第二安全隔离实体的度量值。
S511、第一AI加速器侧的安全管理模块向第一AI加速器侧的可信度量模块发送第一AI加速器侧的第二安全隔离实体的度量值。
S512、第一AI加速器侧的可信度量模块向第一CPU侧的可信度量模块发送第一AI加速器侧的第二安全隔离实体的度量值。
S513、第一CPU侧的可信度量模块与度量值验证模块交互进行度量值验证,获得完整性的验证结果。
上述S508-S513是第一CPU对第一AI加速器侧的第二安全隔离实体进行完整性度量的过程。
S514、第一AI加速器侧的可信度量模块向第一CPU侧的可信度量模块请求对第一CPU侧的第一安全隔离实体进行完整性度量。
S515、第一CPU侧的可信度量模块向第一CPU侧的安全管理模块请求获取第一安全隔离实体的度量值。
S516、第一CPU侧的第一安全隔离实体与第一CPU侧的安全管理模块交互,生成第一CPU侧的第一安全隔离实体的度量值。
S517、第一CPU侧的安全管理模块向第一CPU侧的可信度量模块发送第一CPU侧的第一安全隔离实体的度量值。
S518、第一CPU侧的可信度量模块向第一AI加速器侧的可信度量模块发送第一CPU侧的第一安全隔离实体的度量值。
S519、第一AI加速器侧的可信度量模块与度量值验证模块交互进行度量值验证,获得度量值的验证结果。
上述S514-S519是第一AI加速器对第一CPU侧的第一安全隔离实体进行完整性度量的过程。
通过上述S501-S519,创建了第一CPU侧的第一安全隔离实体以及第一AI加速器侧的第二安全隔离实体,并且第一CPU和第一AI加速器对彼此建立的安全隔离实体进行了完整性度量。
S520、第一CPU侧的安全管理模块与第一AI加速器侧的安全管理模块进行密钥协商,生成第一会话密钥。
该第一会话密钥用于对第一安全隔离实体和第二安全隔离实体进行机密通信过程中的机密数据加解密。
S521、第一CPU侧的安全管理模块将第一会话密钥存储至第一CPU侧的安全通信模块。
S522、第一AI加速器侧的安全管理模块将第一会话密钥存储至第一AI加速器侧的安全通信模块。
关于S501-S522的更多细节描述可以参考上述实施例中对于S301-S322的描述,此处不再赘述。
本申请实施例中,第一CPU还与第二AI加速器交互创建第二AI加速器侧的第三安全隔离实体。具体如下:
S523、第一CPU更新访问控制策略。
本申请实施例中,第一CPU更新访问控制策略包括:第一CPU生成与第二AI加速器侧的第一安全隔离实体进行通信的访问控制策略,并将该访问控制策略配置到第一CPU侧的安全通信模块。
本申请实施例中,第一CPU更新的访问控制策略包括第四出端访问权限表和第四入端访问权限表。
其中,第四出端访问权限表用于对第一安全隔离实体访问,第三安全隔离实体的访问请求进行权限检,第三安全隔离实体是第二AI侧的安全隔离实体。此时,访问请求中的访问地址为第二AI加速器的物理地址,第四出端访问权限表中包括多个AI加速器的物理地址以及物理地址对应的权限标签,权限标签指示有权限或无权限。也就是说,第一安全隔离实体对第三安全隔离实体发起访问请求时,第一CPU基于第四出端访问权限表对访问请求中的第二AI加速器的物理地址进行权限检查,若确定有权限,则可以发出访问请求。
第四入端访问权限表用于对第三安全隔离实体访问第一安全隔离实体的访问请求进行权限检查。此时,访问请求中的访问地址为第一CPU的物理地址,第四入端访问权限表中包括多个CPU的物理地址以及物理地址对应的权限标签。也就是说,第三安全隔离实体对第一安全隔离实体发起访问请求时,该访问请求到达第一CPU(具体是CPU侧的安全通信模块)之后,第一CPU基于第四入端访问权限表对访问请求中的第一CPU的物理地址进行权限检查,若确定有权限,则第一安全隔离实体接收该访问请求。
S524、第一CPU侧的安全管理模块向第二AI加速器的安全管理模块请求创建第二AI加速器侧的第三安全隔离实体。
具体的,第一CPU侧的安全管理模块向第二AI加速器的安全管理模块发送第二创建请求。该第二创建请求用于请求创建第二AI加速器侧的第三安全隔离实体。
S525、第二AI加速器侧的安全管理模块配置第二AI加速器侧的计算资源及其安全属性,设置访问控制策略,并创建第三安全隔离实体。
第二AI加速器侧的安全管理模块配置的第二AI加速器侧的计算资源用于创建第三安全隔离实体。第二AI加速器侧的安全管理模块配置计算资源的安全属性包括将资源切片的状态设置为安全态。
第二AI加速器设置访问控制策略具体包括:第二AI加速器生成访问控制策略,并将该访问控制策略配置到第二AI加速器侧的安全通信模块。
本申请实施例中,第二AI加速器设置的访问控制策略包括第三出端访问权限表和第三入端访问权限表。
其中,第三出端访问权限表用于对第三安全隔离实体访问第一安全隔离实体的访问请求进行权限检查。此时,访问请求中的访问地址为第一CPU的物理地址,第三出端访问权限表中包括多个CPU的物理地址以及物理地址对应的权限标签,权限标签指示有权限或无权限。也就是说,第三安全隔离实体对第一安全隔离实体发起地址访问时,第二AI加速器侧的安全通信模块基于第三出端访问权限表对访问请求中的第一CPU的物理地址进行权限检查,若确定有权限,则可以发出访问请求。
第三入端访问权限表用于对第一安全隔离实体访问第三安全隔离实体的访问请求进行权限检查。此时,访问请求中的访问地址为第二AI加速器的物理地址,第三入端访问权限表中包括多个AI加速器的物理地址以及物理地址对应的权限标签。也就是说,第一安全隔离实体对第三安全隔离实体发起访问请求时,该访问请求到达第二AI加速器(具体是第二AI加速器侧的安全通信模块)时,第二AI加速器基于第三入端访问权限表对访问请求中的第二AI加速器的物理地址进行权限检查,若确定有权限,则第三安全隔离实体可以接收该访问请求。
S526、第一CPU侧的可信度量模块向第二AI加速器侧的可信度量模块请求对第二AI加速器侧的第三安全隔离实体进行完整性度量。
具体的,第一CPU侧的可信度量模块向第二AI加速器侧的可信度量模块发送度量请求,该度量请求用于请求对第二AI加速器侧的第三安全隔离实体进行完整性度量。
S527、第二AI加速器侧的可信度量模块向第二AI加速器侧的安全管理模块请求获取第三安全隔离实体的度量值。
S528、第二AI加速器侧的第三安全隔离实体与第二AI加速器侧的安全管理模块交互,生成第二AI加速器侧的第三安全隔离实体的度量值。
第二AI加速器侧的第三安全隔离实体的度量值可以称为第三度量值。
S529、第二AI加速器侧的安全管理模块向第二AI加速器侧的可信度量模块发送第二AI加速器侧的第三安全隔离实体的度量值。
S530、第二AI加速器侧的可信度量模块向第一CPU侧的可信度量模块发送第二AI加速器侧的第三安全隔离实体的度量值。
S531、第一CPU侧的可信度量模块与度量值验证模块交互进行度量值验证,获得完整性的验证结果。
上述S526-S531是第一CPU对第二AI加速器侧的第三安全隔离实体进行完整性度量的过程。
S532、第二AI加速器侧的可信度量模块向第一CPU侧的可信度量模块请求对第一CPU侧的第一安全隔离实体进行完整性度量。
具体的,第二AI加速器侧的可信度量模块向第一CPU侧的可信度量模块发送度量请求,该度量请求用于请求对第一CPU侧的第一安全隔离实体进行完整性度量。
S533、第一CPU侧的可信度量模块向第一CPU侧的安全管理模块请求获取第一安全隔离实体的度量值。
S534、第一CPU侧的第一安全隔离实体与第一CPU侧的安全管理模块交互,生成第一CPU侧的第一安全隔离实体的度量值。
第一CPU侧的第一安全隔离实体的度量值即为上述的第二度量值。
S535、第一CPU侧的安全管理模块向第一CPU侧的可信度量模块发送第一CPU侧的第一安全隔离实体的度量值。
S536、第一CPU侧的可信度量模块向第二AI加速器侧的可信度量模块发送第一CPU侧的第一安全隔离实体的度量值。
S537、第二AI加速器侧的可信度量模块与度量值验证模块交互进行度量值验证,获得度量值的验证结果。
上述S532-S537是第二AI加速器对第一CPU侧的第一安全隔离实体进行完整性度量的过程。
通过上述S523-S537,创建了第一CPU侧的第一安全隔离实体以及第二AI加速器侧的第三安全隔离实体,并且第一CPU和第二AI加速器对彼此建立的安全隔离实体进行了完整性度量。
S538、第一CPU侧的安全管理模块与第二AI加速器侧的安全管理模块进行密钥协商,生成第二会话密钥。
第二会话密钥可以称为临时会话密钥。
S539、第一CPU侧的安全管理模块使用第二会话密钥对上述第一会话密钥进行加密。
S540、第一CPU侧的安全管理模块向第二AI加速器侧的安全管理模块的发送加密后的第一会话密钥。
S541、第二AI加速器侧的安全管理模块将第一会话密钥存储至第二AI加速器侧的安全通信模块。
第二AI加速器侧的安全管理模块接收到加密后的第一会话密钥,采用第二会话密钥对该加密的第一会话密钥进行解密,并将该第一会话密钥存储至第二AI加速器侧的安全通信模块。
本申请实施例中,第一CPU侧的第一安全隔离实体与第二AI加速器侧的第三安全隔离实体基于第一会话密钥对机密通信过程中的机密数据进行加解密,如此,能够使得提升机密计算的安全性。
结合图5所示的异构可信执行环境的创建方法的流程示意图,图6示出了第一CPU、第一AI加速器以及第二AI加速器的各个模块的交互关系示意图。
对于上述第三种情况(M:N=2:2),本申请实施例提供的计算设备还包括第四处理器,该第四处理器是CPU,为了便于描述,以下实施例中将第四处理器称为第二CPU。
参考图7,从各个模块交互的角度介绍本申请实施例提供的异构可信执行环境的创建方法,该方法包括:
S701、执行上述S501-S505创建第一CPU侧的第一安全隔离实体,并对第一安全隔离实体进行完整性度量。
S702、执行上述S506,第一CPU侧的安全管理模块向第一AI加速器的安全管理模块请求创建第一AI加速器侧的第二安全隔离实体。
S703、执行上述S507创建第一AI加速器侧的第二安全隔离实体。
S704、执行上述S508-S513,第一CPU对第一AI加速器侧的第二安全隔离实体进行完整性度量。
S705、执行上述S514-S519,第一AI加速器对第一CPU侧的第一安全隔离实体进行完整性度量。
S706、执行上述S520-S522,第一CPU与第一AI加速器进行密钥协商,生成第一会话密钥,并将第一会话密钥存储至第一CPU侧的安全通信模块和第一AI侧的安全通信模块。
第一会话密钥用于对第一安全隔离实体与第二安全隔离实体进行机密通信过程中的机密数据加解密。
S707、执行上述S523,第一CPU更新访问控制策略。
S708、执行上述S524,第一CPU侧的安全管理模块向第二AI加速器的安全管理模块请求创建第二AI加速器侧的第三安全隔离实体。
S709、执行上述S525,创建第二AI加速器侧的第三安全隔离实体。
S710、执行上述S526-S531,第一CPU对第二AI加速器侧的第三安全隔离实体进行完整性度量。
S711、执行上述S532-S537,第二AI加速器对第一CPU侧的第一安全隔离实体进行完整性度量。
S712、执行上述S538-S541,第一CPU与第二AI加速器进行密钥协商,生成第二会话密钥,并采用第二会话密钥对上述第一会话密钥进行加密后发送至第二AI加速器侧的安全管理模块,进而安全管理模块将第一会话密钥存储至第二AI加速器侧的安全通信模块。
第一会话密钥用于对第一安全隔离实体与第三安全隔离实体进行机密通信过程中的机密数据加解密。
S713、第二CPU侧的安全管理模块接收平台使用方的指令,配置第二CPU侧的计算资源及其安全属性,设置访问控制策略,并创建第二CPU侧的第四安全隔离实体。
第二CPU侧的安全管理模块配置的第二CPU侧的计算资源用于创建第二CPU侧的第四安全隔离实体。安全管理模块配置计算资源的安全属性包括将资源切片的状态设置为安全态。
本申请实施例中,第二CPU设置访问控制策略具体包括:第二CPU生成访问控制策略,并将该访问控制策略配置到第二CPU侧的安全通信模块。
第二CPU设置的访问控制策略包括第五出端访问权限表和第五入端访问权限表。
其中,第五出端访问权限表用于对第四安全隔离实体访问第二安全隔离实体的访问请求进行权限检查。此时,访问请求中的访问地址为第一AI加速器的物理地址,第五出端访问权限表中包括多个AI加速器的物理地址以及物理地址对应的权限标签,权限标签指示有权限或无权限。也就是说,第四安全隔离实体对第五安全隔离实体(第五安全隔离实体是第一AI加速器侧的隔离实体)发起访问请求时,第二CPU基于第五出端访问权限表对访问请求中的第一AI加速器的物理地址进行权限检查,若确定有权限,则可以发出访问请求。
第五入端访问权限表用于对第五安全隔离实体访问第四安全隔离实体的访问去请求进行权限检查。此时,访问请求中的访问地址为第二CPU的物理地址,第五入端访问权限表中包括多个CPU的物理地址以及物理地址对应的权限标签。也就是说,第五安全隔离实体对第四安全隔离实体发起访问请求时,该访问请求到达第二CPU(具体是第二CPU侧的安全通信模块)之后,第二CPU基于第五入端访问权限表对访问请求中的第二CPU的物理地址进行权限检查,若确定有权限,则第四安全隔离实体可以接收该访问请求。
可以理解的,第二CPU侧的安全管理模块配置好第二CPU侧的计算资源(包括算力资源和存储资源)及其安全属性之后,第二CPU基于配置的计算资源运行第四安全隔离实体的代码即可创建第二CPU侧的第四安全隔离实体。
S714、第二CPU侧的可信度量模块向安全管理模块请求获取第四安全隔离实体的度量值。
S715、第二CPU侧的第四安全隔离实体与安全管理模块交互,生成第二CPU侧的第四安全隔离实体的度量值。
S716、第二CPU侧的安全管理模块向可信度量模块发送第二CPU侧的第四安全隔离实体的度量值。
S717、第二CPU侧的可信度量模块与度量值验证模块交互进行度量值验证,获得度量值的验证结果。
上述S713-S717是第二CPU创建第二CPU侧的第四安全隔离实体并对该第四安全隔离实体进行完整性度量的过程。
S718、第二CPU侧的安全管理模块向第一AI加速器的安全管理模块请求创建第一AI加速器侧的第五安全隔离实体。
S719、第一AI加速器侧的安全管理模块配置第一AI加速器侧的计算资源及其安全属性,设置访问控制策略,创建第五安全隔离实体。
第一AI加速器侧的安全管理模块配置的计算资源用于创建第一AI加速器侧的第二安全隔离实体。安全管理模块配置计算资源的安全属性包括将资源切片的状态设置为安全态。
本申请实施例中,第一AI加速器设置访问控制策略具体包括:第一AI加速器生成访问控制策略,并将该访问控制策略配置到第一AI加速器侧的安全通信模块。
第一AI加速器设置的访问控制策略包括第六出端访问权限表和第六入端访问权限表。
其中,第六出端访问权限表用于对第五安全隔离实体访问第四安全隔离实体的访问请求进行权限检查。此时,访问请求中的访问地址为第二CPU的物理地址,第六出端访问权限表中包括多个CPU的物理地址以及物理地址对应的权限标签,权限标签指示有权限或无权限。也就是说,第五安全隔离实体对第四安全隔离实体发起地址访问时,第一AI加速器基于第六出端访问权限表对访问请求中的第二CPU的物理地址进行权限检查,若确定有权限,则可以向发出访问请求。
第六入端访问权限表用于对第四安全隔离实体访问第五安全隔离实体的访问请求进行权限检查。此时,访问请求中的访问地址为第一AI加速器的物理地址,第六入端访问权限表中包括多个AI加速器的物理地址以及物理地址对应的权限标签。也就是说,第四安全隔离实体对第五安全隔离实体发起访问请求时,该访问请求到达第一AI加速器(具体是第一AI加速器的安全通信模块)之后,第一AI加速器基于第六入端访问权限表对访问请求中的第一AI加速器的物理地址进行权限检查,若确定有权限,则第五安全隔离实体接收该访问请求。
S720、第二CPU侧的可信度量模块向第一AI加速器侧的可信度量模块请求对第一AI加速器侧的第五安全隔离实体进行完整性度量。
S721、第一AI加速器侧的可信度量模块向第一AI加速器侧的安全管理模块请求获取第五安全隔离实体的度量值。
S722、第一AI加速器侧的第二安全隔离实体与第一AI加速器侧的安全管理模块交互,生成第一AI加速器侧的第五安全隔离实体的度量值。
S723、第一AI加速器侧的安全管理模块向第一AI加速器侧的可信度量模块发送第一AI加速器侧的第五安全隔离实体的度量值。
S724、第一AI加速器侧的可信度量模块向第二CPU侧的可信度量模块发送第一AI加速器侧的第五安全隔离实体的度量值。
S725、第二CPU侧的可信度量模块与度量值验证模块交互进行度量值验证,获得完整性的验证结果。
上述S720-S725是第二CPU对第一AI加速器侧的第五安全隔离实体进行完整性度量的过程。
S726、第一AI加速器侧的可信度量模块向第二CPU侧的可信度量模块请求对第二CPU侧创建的第四安全隔离实体进行完整性度量。
S727、第二CPU侧的可信度量模块向第二CPU侧的安全管理模块请求获取第四安全隔离实体的度量值。
S728、第二CPU侧的第四安全隔离实体与第二CPU侧的安全管理模块交互,生成第二CPU侧的第四安全隔离实体的度量值。
S729、第二CPU侧的安全管理模块向第二CPU侧的可信度量模块发送第二CPU侧的第四安全隔离实体的度量值。
S730、第二CPU侧的可信度量模块向第一AI加速器侧的可信度量模块发送第二CPU侧的第四安全隔离实体的度量值。
S731、第一AI加速器侧的可信度量模块与度量值验证模块交互进行度量值验证,获得度量值的验证结果。
上述S726-S731是第一AI加速器对第二CPU侧的第四安全隔离实体进行完整性度量的过程。
通过上述S713-S731,创建了第二CPU侧的第四安全隔离实体以及第一AI加速器侧的第五安全隔离实体,并且第二CPU和第一AI加速器对彼此建立的安全隔离实体进行了完整性度量。
S732、第二CPU侧的安全管理模块与第一AI加速器侧的安全管理模块进行密钥协商,生成第三会话密钥。
该第三会话密钥用于对第四安全隔离实体与第五安全隔离实体进行机密通信过程中的机密数据加解密。
S733、第二CPU侧的安全管理模块将第三会话密钥存储至第二CPU侧的安全通信模块。
S734、第一AI加速器侧的安全管理模块将第三会话密钥存储至第一AI加速器侧的安全通信模块。
本申请实施例中,第二CPU还与第二AI加速器交互创建第二AI加速器侧的第六安全隔离实体。具体如下:
S735、第二CPU更新访问控制策略。
本申请实施例中,第二CPU更新访问控制策略具体包括:第二CPU生成与第二AI加速器侧的第六安全隔离实体进行通信的访问控制策略,并且将该访问控制策略配置到第二CPU侧的安全通信模块。
第二CPU更新的访问控制策略包括第七出端访问权限表和第七入端访问权限表。
其中,第七出端访问权限表用于对第四安全隔离实体访问第六安全隔离实体(是第二AI加速器侧的安全隔离实体)的访问请求进行权限检查。此时,访问请求中的访问地址为第二AI加速器的物理地址,第七出端访问权限表中包括多个AI加速器的物理地址以及物理地址对应的权限标签,权限标签指示有权限或无权限。也就是说,第四安全隔离实体对第六安全隔离实体发起访问请求时,第二CPU基于第七出端访问权限表对访问请求中的第二AI加速器的物理地址进行权限检查,若确定有权限,则第可以发出访问请求。
第七入端访问权限表用于对第六安全隔离实体访问第四安全隔离实体的访问请求进行权限检查。此时,访问请求中访问地址为第二CPU的物理地址,第七入端访问权限表中包括多个CPU的物理地址以及物理地址对应的权限标签。也就是说,第六安全隔离实体对第四安全隔离实体发起访问请求时,该访问请求到达第二CPU(具体是第二CPU的安全通信模块)之后,第二CPU基于第七入端访问权限表对访问请求中的第二CPU的物理地址进行权限检查,若确定有权限,则第四安全隔离实体可以接收该访问请求。
S736、第二CPU侧的安全管理模块向第二AI加速器的安全管理模块请求创建第二AI加速器侧的第六安全隔离实体。
具体的,第二CPU侧的安全管理模块向第二AI加速器的安全管理模块发送创建请求。该创建请求用于请求创建第二AI加速器侧的第六安全隔离实体。
S737、第二AI加速器侧的安全管理模块配置第二AI加速器侧的计算资源及其安全属性,并设置访问控制策略,并创建第二AI加速器侧的第三安全隔离实体。
第二AI加速器侧的安全管理模块配置的第二AI加速器侧的计算资源用于创建第二AI加速器侧的第六安全隔离实体。第二AI加速器侧的安全管理模块配置计算资源的安全属性包括将资源切片的状态设置为安全态。
第二AI加速器设置访问控制策略具体包括:第二AI加速器生成访问控制策略,并将该访问控制策略配置到第二AI加速器的安全通信模块。
第二AI加速器设置的访问控制策略包括第八出端访问权限表和第八入端访问权限表。
其中,第八出端访问权限表用于对第六安全隔离实体访问第四安全隔离实体的访问请求进行权限检查。此时,访问请求中的访问地址为第二CPU的物理地址,第八出端访问权限表中包括多个CPU的物理地址以及物理地址对应的权限标签,权限标签指示有权限或无权限。也就是说,第六安全隔离实体对第四安全隔离实体发起地址访问时,第二AI加速器基于第八出端访问权限表对访问请求中的第二CPU的物理地址进行权限检查,若确定有权限,则可以向发出访问请求。
第八入端访问权限表用于对第四安全隔离实体访问第六安全隔离实体的访问请求进行权限检查。此时,访问请求中的访问地址为第二AI加速器的物理地址,第八入端访问权限表中包括多个AI加速器的物理地址以及物理地址对应的权限标签。也就是说,第四安全隔离实体对第六安全隔离实体发起访问请求时,该访问请求到达第二AI加速器(具体是第二AI加速器侧的安全通信模块)之后,第二AI加速器基于第八入端访问权限表对访问请求中的第二AI加速器的物理地址进行权限检查,若确定有权限,则第六安全隔离实体可以接收该访问请求。
S738、第二CPU侧的可信度量模块向第二AI加速器侧的可信度量模块请求对第二AI加速器侧的第六安全隔离实体进行完整性度量。
具体的,第二CPU侧的可信度量模块向第二AI加速器侧的可信度量模块发送度量请求,该度量请求用于请求对第二AI加速器侧的第六安全隔离实体进行完整性度量。
S739、第二AI加速器侧的可信度量模块向第二AI加速器侧的安全管理模块请求获取第六安全隔离实体的度量值。
S740、第二AI加速器侧的第六安全隔离实体与第二AI加速器侧的安全管理模块交互,生成第二AI加速器侧的第六安全隔离实体的度量值。
S741、第二AI加速器侧的安全管理模块向第二AI加速器侧的可信度量模块发送第二AI加速器侧的第六安全隔离实体的度量值。
S742、第二AI加速器侧的可信度量模块向第二CPU侧的可信度量模块发送第二AI加速器侧的第六安全隔离实体的度量值。
S743、第二CPU侧的可信度量模块与度量值验证模块交互进行度量值验证,获得完整性的验证结果。
上述S738-S743是第二CPU对第二AI加速器侧的第六安全隔离实体进行完整性度量的过程。
S744、第二AI加速器侧的可信度量模块向第二CPU侧的可信度量模块请求对第二CPU侧的第四安全隔离实体进行完整性度量。
具体的,第二AI加速器侧的可信度量模块向第二CPU侧的可信度量模块发送度量请求,该度量请求用于请求对第二CPU侧的第四安全隔离实体进行完整性度量。
S745、第二CPU侧的可信度量模块向第二CPU侧的安全管理模块请求获取第四安全隔离实体的度量值。
S746、第二CPU侧的第四安全隔离实体与第二CPU侧的安全管理模块交互,生成第二CPU侧的第四安全隔离实体的度量值。
S747、第二CPU侧的安全管理模块向第二CPU侧的可信度量模块发送第二CPU侧的第四安全隔离实体的度量值。
S748、第二CPU侧的可信度量模块向第二AI加速器侧的可信度量模块发送第二CPU侧的第四安全隔离实体的度量值。
S749、第二AI加速器侧的可信度量模块与度量值验证模块交互进行度量值验证,获得度量值的验证结果。
上述S744-S749是第二AI加速器对第二CPU侧的第四安全隔离实体进行完整性度量的过程。
通过上述S735-S749,创建了第二CPU侧的第四安全隔离实体以及第二AI加速器侧的第六安全隔离实体,并且第二CPU和第二AI加速器对彼此建立的安全隔离实体进行了完整性度量。
S750、第二CPU侧的安全管理模块与第二AI加速器侧的安全管理模块进行密钥协商,生成第四会话密钥。
第四会话密钥可以称为临时会话密钥。
S751、第二CPU侧的安全管理模块使用第四会话密钥对上述第三会话密钥进行加密。
S752、第二CPU侧的安全管理模块向第二AI加速器侧的安全管理模块的发送加密后的第三会话密钥。
S753、第二AI加速器侧的安全管理模块将第三会话密钥存储至第二AI加速器侧的安全通信模块。
该第三会话密钥用于对第二CPU与第二AI加速器基于第二安全隔离实体进行机密通信过程中的机密数据进行加解密。
在上述实施例中,以上述的第一CPU、第二CPU以及第一AI加速器为例,第一CPU与第一AI加速器交互创建第一CPU侧的第一安全隔离实体和第二安全隔离实体,并且第一CPU和第一AI加速器对彼此建立的安全隔离实体进行完整性度量;第二CPU与第一AI加速器交互创建第二CPU侧的第四安全隔离实体和第一AI加速器侧的第五安全隔离实体,并且第二CPU和第一AI加速器对彼此建立的安全隔离实体进行完整性度量。可知,对于第一AI加速器,其部分资源(一个资源切片)用于创建第一CPU对应的安全隔离实体(第一CPU对应的安全隔离实体即:与第一CPU侧的安全隔离实体所对应的第一AI加速器侧的安全隔离实体),其另一部分资源(另一个资源切片)用于创建第二CPU对应的安全隔离实体,即一个AI加速器的资源可以用于创建不同的CPU对应的安全隔离实体,可以合理地利用AI加速器的资源,有利用提升AI加速器的资源利用率。
结合图7所示的异构可信执行环境的创建方法的流程示意图,图8示出了第一CPU、第二CPU、第一AI加速器以及第二AI加速器的各个模块的交互关系示意图。
可选地,本申请实施例中,对于上述三种情况创建的安全隔离实体,后续可以根据使用需求释放各自创建的安全隔离实体。安全隔离实体释放后,对应的资源切片可以重新进行配置,用于创建其他的安全隔离实体。
需要说明的是,本申请实施例中,由CPU发起对AI加速器侧的安全隔离实体进行完整性度量,即AI加速器侧创建了与CPU侧应的安全隔离实体后,AI加速器请求对CPU侧的安全隔离实体进行完整性度量。在一种可能的实现方式中,AI加速器也可以主动发起对CPU侧的安全隔离实体进行完整性度量。
相应地,本申请实施例提供一种计算系统,如图9所示,该计算系统设备包括异构的第一处理器和第二处理器,所述第一处理器包括第一安全管理模块9011和第一可信度量模块9012;所述第二处理器包括第二安全管理模块9021和第二可信度量模块9022。
其中,第一安全管理模块9011用于执行上述方法实施例中的S201、S202、S301、S303、S304、S306、S316、S317、S320、S321、S501、S503、S504、S506、S516、S517、S520、S521、S523、S524、S534、S535、S538、S539、S540、S701、S702、S706、S707、S708、S712。
第一可信度量模块9012用于执行上述方法实施例中的S204、S2041、S2044、S302、S305、S308、S313、S315、S318、S502、S505、S508、S513、S515、S518、S526、S531、S533、S536、S701、S704、S710。
第二安全管理模块9021用于执行上述方法实施例中的S203、S307、S310、S311、S322、S507、S510、S511、S522、S703、S706、S719、S722、S723、S732、S734。
第二可信度量模块9022用于执行上述方法实施例中的S205、S2051、S2054、S309、S312、S314、S319、S509、S512、S514、S519、S705、S721、S724、S726、S731。
可选地,第一处理器还包括第一安全通信模块9013,第二处理器还包括第二安全通信模块9023,第一安全通信模块9013用于接收第一安全管理模块9011配置的访问控制策略以及第一会话密钥。第二安全通信模块9023用于第二安全管理模块9021配置的访问控制策略、第一会话密钥和第三会话密钥。
结合图9,如图10所示,本申请实施例提供的计算系统还包括第三处理器,第三处理器包括第三安全管理模块9031和第三可信度量模块9032。
其中,第三安全管理模块9031用于执行上述方法实施例中的S525、S528、S529、S538、S541、S709、S712、S737、S740、S741、S750、S753。
第三可信度量模块9032用于执行上述方法实施例中的S527、S530、S532、S537、S541、S711、S739、S742、S744、S749。
可选地,第三处理器还包括第三安全通信模块9033;第三安全通信模块9033接收第三安全管理模块9031配置的访问控制策略、第一会话密钥以及第三会话密钥。
结合图10,如图11所示,本申请实施例提供的计算系统还包括第四处理器,第四处理器包括第四安全管理模块9041和第四可信度量模块9042。
第四安全管理模块9041用于执行上述方法实施例中的S713、S715、S716、S718、S732、S728、S729、S732、S733、S735、S736、S746、S747、S750、S751、S752。
第四可信度量模块9042用于执行上述方法实施例中的S714、S717、S720、S725、S727、S729、S730、S738、S743、S745、S748。
可选地,第四处理器还包括第四安全通信模块9043;第四安全通信模块9043用于接收第三安全管理模块9031配置的访问控制策略以及第一会话密钥。
本申请实施例提供一种计算设备,包括存储器和与存储器连接的至少一个处理器,存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当计算机指令被至少一个处理器执行时,使得计算设备执行上述实施例所述的方法。
本申请实施例提供一种计算机可读存储介质,存储有计算机指令,计算机指令在计算机上运行时,执行上述实施例所述的方法。
本申请实施例提供一种计算机程序产品,该计算机程序产品包含计算机指令,当计算机指令在计算机上运行时,执行上述实施例所述的方法。
本申请实施例提供一种芯片,包括存储器和处理器,存储器用于存储计算机指令,处理器用于从存储器中调用并运行该计算机指令,以执行上述实施例所述的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件程序实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机指令时,全部或部分地产生按照本申请实施例中的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(digital subscriber line,DSL))方式或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包括一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、磁盘、磁带)、光介质(例如,数字视频光盘(digital video disc,DVD))、或者半导体介质(例如固态硬盘(solid state drives,SSD))等。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:快闪存储器、移动硬盘、只读存储器、随机存取存储器、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (30)
1.一种异构可信执行环境的创建方法,其特征在于,应用于包括异构的第一处理器和第二处理器的计算设备,所述方法包括:
所述第一处理器基于所述第一处理器的计算资源,创建第一安全隔离实体;
所述第一处理器向所述第二处理器发送第一创建请求;
响应于所述第一创建请求,所述第二处理器基于所述第二处理器的计算资源,创建第二安全隔离实体;
所述第一处理器对所述第二处理器侧的第二安全隔离实体进行完整性度量;
所述第二处理器对所述第一处理器侧的第一安全隔离实体进行完整性度量。
2.根据权利要求1所述的方法,其特征在于,
所述第一处理器为中央处理器CPU,所述第二处理器为人工智能AI加速器。
3.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
所述第一处理器设置访问控制策略;所述访问控制策略包括第一出端访问权限表和第一入端访问权限表;其中,所述第一出端访问权限表用于对所述第一安全隔离实体访问所述第二安全隔离实体的访问请求进行权限检查,所述第一入端访问权限表用于对所述第二安全隔离实体访问所述第一安全隔离实体的访问请求进行权限检查。
4.根据权利要求1至3任一项所述的方法,其特征在于,所述方法还包括:
所述第二处理器设置访问控制策略;所述访问控制策略包括第二出端访问权限表和第二入端访问权限表;其中,所述第二出端访问权限表用于对所述第二安全隔离实体访问所述第一安全隔离实体的访问请求进行权限检查,所述第二入端访问权限表用于对所述第一安全隔离实体访问所述第二安全隔离实体的访问请求进行权限检查。
5.根据权利要求1至4任一项所述的方法,其特征在于,所述第一处理器对所述第二处理器侧的第二安全隔离实体进行完整性度量,包括:
所述第一处理器向所述第二处理器发送第一度量请求,所述第一度量请求用于请求度量所述第二处理器侧的第二安全隔离实体的完整性;
所述第二处理器向所述第一处理器发送第一度量值,所述第一度量值为所述第二处理器侧的第二安全隔离实体的度量值;
所述第一处理器根据所述第一度量值,对所述第二处理器侧的第二安全隔离实体进行完整性度量。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述第二处理器对所述第一处理器侧的第一安全隔离实体进行完整性度量,包括:
所述第二处理器向所述第一处理器发送第二度量请求,所述第二度量请求用于请求度量所述第一处理器侧的第一安全隔离实体的完整性;
所述第一处理器向所述第二处理器发送第二度量值;所述第二度量值为所述第一处理器侧的第一安全隔离实体的度量值;
所述第二处理器根据所述第二度量值,对所述第一处理器侧的第一安全隔离实体进行完整性度量。
7.根据权利要求1至6任一项所述的方法,其特征在于,所述方法还包括:
所述第一处理器与所述第二处理器进行密钥协商,生成第一会话密钥;所述第一会话密钥用于对机密通信过程中的机密数据进行加解密。
8.根据权利要求1至7任一项所述的方法,其特征在于,
所述第一处理器和所述第二处理器的计算资源被划分为多个资源切片,所述多个资源切片包括安全态资源切片和非安全态资源切片;
用于创建所述第一安全隔离实体和所述第二安全隔离实体的计算资源是安全态资源切片。
9.根据权利要求1至8任一项所述的方法,其特征在于,所述计算设备还包括第三处理器,所述方法还包括:
所述第三处理器创建第三安全隔离实体;
所述第一处理器对所述第三处理器侧的第三安全隔离实体进行完整性度量;
所述第三处理器对所述第一处理器侧的第一安全隔离实体进行完整性度量。
10.根据权利要求9所述的方法,其特征在于,
所述第三处理器是AI加速器。
11.根据权利要求9或10所述的方法,其特征在于,所述方法还包括:
所述第一处理器与所述第三处理器进行密钥协商,生成第二会话密钥;
所述第一处理器使用所述第二会话密钥对所述第一会话密钥进行加密;
所述第一处理器向所述第三处理器发送加密后的第一会话密钥。
12.根据权利要求11所述的方法,其特征在于,所述计算设备还包括第四处理器;
所述第四处理器创建第四安全隔离实体;
所述第二处理器创建第五安全隔离实体;
所述第四处理器对所述第二处理器侧的第五安全隔离实体进行完整性度量;
所述第二处理器对所述第四处理器侧的第四安全隔离实体进行完整性度量。
13.根据权利要求12所述的方法,其特征在于,所述方法还包括:
所述第三处理器创建第六安全隔离实体;
所述第四处理器对所述第三处理器侧的第六安全隔离实体进行完整性度量;
所述第三处理器对所述第四处理器侧的第四安全隔离实体进行完整性度量。
14.根据权利要求12或13所述的方法,其特征在于,
所述第四处理器是CPU。
15.根据权利要求12至14任一项所述的方法,其特征在于,所述方法还包括:
所述第四处理器与所述第二处理器进行密钥协商,生成第三会话密钥;所述第三会话密钥用于对机密通信过程中的机密数据进行加解密;
所述第四处理器与所述第三处理器进行密钥协商,生成第四会话密钥;
所述第四处理器使用所述第四会话密钥对所述第三会话密钥进行加密;
所述第四处理器向所述第三处理器发送加密后的第三会话密钥。
16.根据权利要求1至15任一项所述的方法,其特征在于,所述方法还包括:
所述第一处理器释放所述第一安全隔离实体;
所述第一处理器向所述第二处理器发送释放指令;所述释放指令用于指示释放所述第二处理器侧的与所述第一安全隔离实体通信的第二安全隔离实体;
所述第二处理器响应于所述释放指令,释放所述第二安全隔离实体。
17.一种计算系统,其特征在于,包括异构的第一处理器和第二处理器,所述第一处理器包括第一安全管理模块和第一可信度量模块;所述第二处理器包括第二安全管理模块和第二可信度量模块;
所述第一安全管理模块,用于基于所述第一处理器的计算资源,创建第一安全隔离实体;并且向所述第二安全管理模块发送第一创建请求;
所述第二安全管理模块,用于响应于所述第一创建请求,基于所述第二处理器的计算资源,创建第二安全隔离实体;
所述第一可信度量模块,用于对所述第二处理器侧的第二安全隔离实体进行完整性度量;
所述第一可信度量模块,用于对所述第一处理器侧的第一安全隔离实体进行完整性度量。
18.根据权利要求17所述的计算系统,其特征在于,
所述第一安全管理模块,还用于设置访问控制策略;所述访问控制策略包括第一出端访问权限表和第一入端访问权限表;其中,所述第一出端访问权限表用于对所述第一安全隔离实体访问所述第二安全隔离实体的访问请求进行权限检查,所述第一入端访问权限表用于对所述第二安全隔离实体访问所述第一安全隔离实体的访问请求进行权限检查。
19.根据权利要求17或18所述的计算系统,其特征在于,
所述第二安全管理模块,还用于设置访问控制策略;所述访问控制策略包括第二出端访问权限表和第二入端访问权限表;其中,所述第二出端访问权限表用于对所述第二安全隔离实体访问所述第一安全隔离实体的访问请求进行权限检查,所述第二入端访问权限表用于对所述第一安全隔离实体访问所述第二安全隔离实体的访问请求进行权限检查。
20.根据权利要求17至19任一项所述的计算系统,其特征在于,
所述第一可信度量模块,具体用于向所述第二可信度量模块发送第一度量请求,所述第一度量请求用于请求度量所述第二处理器侧的第二安全隔离实体的完整性;
所述第二可信度量模块,还用于向所述第一可信度量模块发送第一度量值,所述第一度量值为所述第二处理器侧的第二安全隔离实体的度量值;
所述第一可信度量模块,具体用于根据所述第一度量值,对所述第二处理器侧的第二安全隔离实体进行完整性度量。
21.根据权利要求17至20任一项所述的计算系统,其特征在于,
所述第二可信度量模块,具体用于向所述第一可信度量模块发送第二度量请求,所述第二度量请求用于请求度量所述第一处理器侧的第一安全隔离实体的完整性;
所述第一可信度量模块,还用于向所述第二可信度量模块发送第二度量值;所述第二度量值为所述第一处理器侧的第一安全隔离实体的度量值;
所述第二可信度量模块,具体用于根据所述第二度量值,对所述第一处理器侧的第一安全隔离实体进行完整性度量。
22.根据权利要求17至21任一项所述的计算系统,其特征在于,
所述第一安全管理模块,用于与所述第二安全管理模块进行密钥协商,生成第一会话密钥;所述第一会话密钥用于对机密通信过程中的机密数据进行加解密。
23.根据权利要求17至22任一项所述的计算系统,其特征在于,所述计算系统还包括第三处理器,所述第三处理器包括第三安全管理模块和第三可信度量模块;
所述第三安全管理模块,用于创建第三安全隔离实体;
所述第一可信度量模块,还用于对所述第三处理器侧的第三安全隔离实体进行完整性度量;
所述第三可信度量模块,用于对所述第一处理器侧的第一安全隔离实体进行完整性度量。
24.根据权利要求23所述的计算系统,其特征在于,
所述第三安全管理模块,用于与所述第一安全管理模块进行密钥协商,生成第二会话密钥;
所述第一安全管理模块,还用于使用所述第二会话密钥对所述第一会话密钥进行加密;并向所述第三安全管理模块发送加密后的第一会话密钥。
25.根据权利要求24所述的计算系统,其特征在于,所述计算系统还包括第四处理器,所述第四处理器包括第四安全管理模块和第四可信度量模块;
所述第四安全管理模块,用于创建第四安全隔离实体;
所述第二安全管理模块,还用于创建第五安全隔离实体;
所述第四可信度量模块,用于对所述第二处理器侧的第五安全隔离实体进行完整性度量;
所述第二可信度量模块,还用于对所述第四处理器侧的第四安全隔离实体进行完整性度量。
26.根据权利要求25所述的计算系统,其特征在于,
所述第三安全管理模块,还用于创建第六安全隔离实体;
所述第四可信度量模块,还用于对所述第三处理器侧的第六安全隔离实体进行完整性度量;
所述第三可信度量模块,还用于对所述第四处理器侧的第四安全隔离实体进行完整性度量。
27.根据权利要求25或26所述的计算系统,其特征在于,
所述第四安全管理模块,用于与所述第二安全管理模块进行密钥协商,生成第三会话密钥;所述第三会话密钥用于对机密通信过程中的机密数据进行加解密;
所述第四安全管理模块,还用于与所述第三安全管理模块进行密钥协商,生成第四会话密钥;并且使用所述第四会话密钥对所述第三会话密钥进行加密;以及向所述第三处理器发送加密后的第三会话密钥。
28.根据权利要求17至27任一项所述的计算系统,其特征在于,
所述第一安全管理模块还用于,释放所述第一安全隔离实体;并且向所述第二处理器发送释放指令;所述释放指令用于指示释放所述第二处理器侧的与所述第一安全隔离实体通信的第二安全隔离实体;
所述第二安全管理模块响应于所述释放指令,释放所述第二安全隔离实体。
29.一种计算设备,其特征在于,包括存储器和与所述存储器连接的至少一个处理器,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述计算机指令被所述至少一个处理器执行时,使得所述计算设备执行如权利要求1至16任一项所述的方法。
30.一种计算机可读存储介质,其特征在于,存储有计算机指令,所述计算机指令在计算机上运行时,执行如权利要求1至16任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CN2023/121076 WO2024119978A1 (zh) | 2022-12-08 | 2023-09-25 | 异构可信执行环境的创建方法、装置及计算系统 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211571870 | 2022-12-08 | ||
CN2022115718705 | 2022-12-08 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN118171276A true CN118171276A (zh) | 2024-06-11 |
Family
ID=91347677
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310382703.4A Pending CN118171276A (zh) | 2022-12-08 | 2023-03-31 | 异构可信执行环境的创建方法、装置及计算系统 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN118171276A (zh) |
WO (1) | WO2024119978A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20160036826A1 (en) * | 2014-07-29 | 2016-02-04 | Mcafee, Inc. | Secure content packaging using multiple trusted execution environments |
US9940456B2 (en) * | 2014-12-16 | 2018-04-10 | Intel Corporation | Using trusted execution environments for security of code and data |
CN115344871A (zh) * | 2022-08-17 | 2022-11-15 | 上海交通大学 | 基于arm架构的机密计算环境构建方法和系统 |
-
2023
- 2023-03-31 CN CN202310382703.4A patent/CN118171276A/zh active Pending
- 2023-09-25 WO PCT/CN2023/121076 patent/WO2024119978A1/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2024119978A1 (zh) | 2024-06-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220245070A1 (en) | Technologies for secure authentication and programming of accelerator devices | |
CN111859472B (zh) | 用于片上系统平台的安全插件 | |
EP3363149A1 (en) | System, apparatus and method for migrating a device having a platform group | |
WO2020171272A1 (ko) | 블록체인 플랫폼 기반 서비스 시스템 및 방법 | |
CN106599694A (zh) | 安全防护管理方法、计算机系统和计算机可读取存储媒体 | |
EP4258593A1 (en) | Ota update method and apparatus | |
CN111355684B (zh) | 一种物联网数据传输方法、装置、系统、电子设备及介质 | |
WO2021082647A1 (zh) | 一种联合学习系统、训练结果聚合的方法及设备 | |
TW202011712A (zh) | 密碼運算、創建工作密鑰的方法、密碼服務平台及設備 | |
CN100550030C (zh) | 在便携式终端主机上添加可信平台的方法 | |
CN108418817A (zh) | 一种加密方法及装置 | |
CN110891062A (zh) | 密码更改方法、服务器及存储介质 | |
US20240184909A1 (en) | Data security processing method and apparatus | |
CN105991562A (zh) | IPSec加速方法、装置及系统 | |
CN103457919A (zh) | 虚拟机镜像的安全验证方法和装置 | |
CN108521424B (zh) | 面向异构终端设备的分布式数据处理方法 | |
US10673827B1 (en) | Secure access to user data | |
CN113556333A (zh) | 一种计算机网络数据安全传输方法、装置 | |
CN111459869B (zh) | 一种数据访问的方法、装置、设备及存储介质 | |
RU2730368C1 (ru) | Способ криптографической защиты каналов связи между наземной станцией управления и одновременно несколькими управляемыми с нее беспилотными летательными аппаратами | |
CN118171276A (zh) | 异构可信执行环境的创建方法、装置及计算系统 | |
US9135449B2 (en) | Apparatus and method for managing USIM data using mobile trusted module | |
CN1808457A (zh) | 可远程动态管理的便携式可信平台模块 | |
EP4283955A1 (en) | Communication key configuration method and apparatus | |
CN109948359A (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 |