CN116490868A - 用于可信执行环境中的安全快速机器学习推理的***和方法 - Google Patents
用于可信执行环境中的安全快速机器学习推理的***和方法 Download PDFInfo
- Publication number
- CN116490868A CN116490868A CN202080106023.4A CN202080106023A CN116490868A CN 116490868 A CN116490868 A CN 116490868A CN 202080106023 A CN202080106023 A CN 202080106023A CN 116490868 A CN116490868 A CN 116490868A
- Authority
- CN
- China
- Prior art keywords
- model
- tee
- server
- application
- attestation
- 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
- 238000010801 machine learning Methods 0.000 title claims abstract description 430
- 238000000034 method Methods 0.000 title claims abstract description 116
- 230000015654 memory Effects 0.000 claims description 35
- 238000013175 transesophageal echocardiography Methods 0.000 description 196
- 238000002347 injection Methods 0.000 description 82
- 239000007924 injection Substances 0.000 description 82
- 230000008569 process Effects 0.000 description 40
- 238000013475 authorization Methods 0.000 description 23
- 238000012795 verification Methods 0.000 description 23
- 238000007789 sealing Methods 0.000 description 17
- 238000004806 packaging method and process Methods 0.000 description 15
- 238000012545 processing Methods 0.000 description 15
- 238000003860 storage Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 13
- 230000002085 persistent effect Effects 0.000 description 12
- 230000007246 mechanism Effects 0.000 description 10
- 230000004044 response Effects 0.000 description 10
- 238000012549 training Methods 0.000 description 10
- 230000003068 static effect Effects 0.000 description 8
- 230000005540 biological transmission Effects 0.000 description 6
- 238000004422 calculation algorithm Methods 0.000 description 6
- 239000003795 chemical substances by application Substances 0.000 description 6
- 238000007726 management method Methods 0.000 description 6
- 238000012986 modification Methods 0.000 description 5
- 230000004048 modification Effects 0.000 description 5
- 238000013473 artificial intelligence Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 3
- 230000001010 compromised effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000009795 derivation Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 238000005457 optimization Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000010276 construction Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002955 isolation Methods 0.000 description 2
- 238000003058 natural language processing Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 239000000243 solution Substances 0.000 description 2
- 238000010200 validation analysis Methods 0.000 description 2
- 102000004232 Mitogen-Activated Protein Kinase Kinases Human genes 0.000 description 1
- 108090000744 Mitogen-Activated Protein Kinase Kinases Proteins 0.000 description 1
- 230000006978 adaptation Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001149 cognitive effect Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000010924 continuous production Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 238000013524 data verification Methods 0.000 description 1
- 238000003066 decision tree Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000002829 reductive effect Effects 0.000 description 1
- 238000000611 regression analysis Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 238000013519 translation Methods 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/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
-
- 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/52—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow
- G06F21/53—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems during program execution, e.g. stack integrity ; Preventing unwanted data erasure; Buffer overflow by executing in a restricted environment, e.g. sandbox or secure virtual machine
-
- 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/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
- G06F21/6245—Protecting personal data, e.g. for financial or medical purposes
-
- 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
- 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/72—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 in cryptographic circuits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- 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/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/107—License processing; Key processing
-
- 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/2149—Restricted operating environment
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Databases & Information Systems (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Abstract
一种用于在计算环境中执行机器学习(machine learning,ML)应用程序的方法包括:将机密信息从用户计算设备的可信执行环境(trusted execution environment,TEE)接收到服务器的TEE中,其中,所述用户计算设备由身份和访问管理服务进行认证,所述TEE参照限时令牌验证所述机密信息。所述方法还包括:从模型发布工具的TEE接收绑定到所述ML应用程序的模型加密密钥。所述方法包括:将所述ML应用程序的ML模型接收到所述服务器的所述TEE中,其中,所述ML模型使用所述MEK进行加密。所述方法包括:使用所述MEK对所述ML模型进行解密。所述方法包括:将所述ML应用程序和所述ML应用程序的描述符接收到所述服务器的所述TEE中,其中,所述描述符使用从所述机密信息中导出的密码密钥进行加密。所述方法包括:使用所述ML模型和所述描述符执行所述ML应用程序。
Description
相关申请
本申请要求于2020年10月9日提交的申请号为17/066,550、发明名称为“用于可信执行环境中的安全快速机器学习推理的***和方法(SYSTEMS AND METHODS FOR SECUREAND FAST MACHINE LEARNING INFERENCE IN ATRUSTED EXECUTION ENVIRONMENT)”的在先提交的美国非临时申请的优先权,其内容在司法管辖区通过引用并入本申请中。
技术领域
本发明大体上涉及在云计算环境中安全执行计算机程序的领域,尤其涉及一种使用第三方云计算基础设施来执行人工智能/机器学习(Artificial Intelligence/MachineLearning,AI/ML)模型的装置和方法。
背景技术
机器学习(Machine Learning,ML)模型是许多以AI/ML为中心的公司建立的基础或至少是基石之一。ML模型可以体现这些公司的全部知识产权(intellectual property,IP)的很大一部分,因此必须严密保护ML模型的详细内容,以使AI/ML公司保持竞争力。
ML模型需要大量数据,其中一些数据可以包括数据所有者的个人可识别信息(personally identifiable information,PII)。这种PII可以包括姓名、地址、位置、生物特征信息、财务信息、病史等信息。这些ML模型所处理的数据的特性,加上各国的法律合规要求,使保护PII数据成为数据所有者和AI/ML公司的优先事项,以维护和保护用户隐私和安全。数据泄露或丢失会严重影响公司的声誉和未来发展前景,因此数据保护是大多数AI/ML公司最关心的问题。
ML应用程序需要大量计算资源来执行ML模型,许多中小型AI/ML公司选择从云计算(云)提供商租赁计算资源,而不是构建自己的数据中心,以此降低硬件和运营成本。云提供商的示例包括:亚马逊的AWS、谷歌的谷歌云和微软的Azure,等等。作为在云数据中心运行的一部分,AI/ML公司被迫给予云提供商一定程度的信任,以确保他们在租用的计算资源的安全和管理方面能够诚信行事。换句话说,这些AI/ML公司被迫相信云提供商不会访问运行他们应用程序的云基础设施上的数据或其它敏感机密信息。这种信任主要通过法律手段来执行,因为几乎没有物理手段或技术手段来执行。在这些云提供商工作的恶意员工还是可以决定使用他们的访问权限来渗透数据库或物理计算机,并且通过泄露或窃取私有或敏感数据或IP对其中一家AI/ML公司造成不可挽回的损失。
需要更好地保护数据所有者的敏感数据,AI/ML公司对IP进行建模,这样即使是恶意的内部人员也无法绕过现有的安全机制。还需要使AI/ML公司可以保留他们对ML模型和数据的控制权,即使ML模型不在他们自己的环境中运行。还需要使数据所有者能够保护他们的数据不受AI/ML公司的影响。
虽然有许多单独的技术可以解决上述场景中的具体安全挑战,但没有一种全面的技术或框架能够为上述问题提供全面的技术方案。上述技术要么水平太低,要么目的单一,无法解决本文中描述的本发明试图解决的问题。因此,这些技术可以用于实现整个发明中的特定功能,但完整的技术方案及其组成部分、过程和协议是独一无二的。
背景技术的目的是揭示申请人认为可能与本发明相关的信息。没有必要承认也不应解释任何上述信息构成与本发明相对的现有技术。
发明内容
本发明实施例提供了方法、装置和***,以使AI/ML应用程序的各方可以在潜在不安全的远程服务器环境中执行这些应用程序时保护各方IP(模型、引擎和数据)的安全性和机密性。IP注入到可信执行环境(Trusted Execution Environment,TEE)中并在其中执行,这样各方IP互不影响,而且不受服务器环境的操作者和所有者影响。敏感或机密信息还通过计算***的TEE之间的安全通道来传输。在一些实施例中,服务器环境是云计算环境。
根据本发明实施例,提供了一种用于在计算环境中执行机器学习(machinelearning,ML)应用程序的方法。所述方法包括:将机密信息从用户计算设备的可信执行环境(trusted execution environment,TEE)接收到服务器的TEE中,其中,所述用户计算设备由身份和访问管理(identity and access management,IAM)服务进行认证,所述TEE参照限时令牌验证所述机密信息。所述方法还包括:将绑定到所述ML应用程序的模型加密密钥(model encryption key,MEK)从模型发布工具的TEE接收到所述服务器的所述TEE中。广义上讲,当密码签名用于将密钥与令牌关联起来时,该令牌或其它软件数据可以说是“绑定”到该密钥。令牌的用户必须能够使用其密钥来验证签名,才能使用令牌。如果必须验证令牌,则该令牌可以说是绑定到加密密钥。所述方法包括:将所述ML应用程序的ML模型从所述ML模型发布工具的所述TEE接收到所述服务器的所述TEE中,其中,所述ML模型使用所述MEK进行加密;所述服务器的所述TEE使用所述MEK对所述ML模型进行解密。所述方法还包括:将所述ML应用程序和所述ML应用程序的描述符从注入服务器的TEE接收到所述服务器的所述TEE中,其中,所述描述符使用从所述机密信息中导出的密码密钥进行加密。所述方法包括:使用所述ML模型和所述描述符执行所述ML应用程序。
在其它实施例中,所述ML模型包括在ML磁盘卷中,所述ML模型使用所述MEK进行加密。
在其它实施例中,所述MEK绑定到所述ML模型的所有者的用户ID,哈希用于验证所述ML磁盘卷的完整性。
在其它实施例中,所述限时令牌绑定到所述用户计算设备的密码密钥。
在其它实施例中,所述方法还包括:所述用户计算设备向所述服务器发送证明引证请求,其中,所述证明引证请求包括所述限时令牌。所述方法还包括:所述用户计算设备从所述服务器接收证明引证,其中,所述证明引证基于所述服务器的所述TEE。所述方法还包括:所述用户计算设备向证明服务发送对证明报告的证明报告请求,其中,所述证明报告请求包括所述证明引证和所述访问令牌。所述方法还包括:所述用户计算设备接收所述证明报告,其中,所述用户计算设备验证所述证明报告。
在其它实施例中,所述MEK绑定到所述ML应用程序。
在其它实施例中,所述方法还包括:所述服务器将所述ML模型存储在模型注册表中,其中,所述ML模型密封在所述模型注册表中;ML-TEE接收所述模型注册表中的所述ML模型,并且对所述ML模型进行解封。
在其它实施例中,所述方法还包括:所述服务器使用从所述机密信息中导出的密码密钥对所述ML应用程序描述符进行密封,其中,所述服务器通过注入服务器的TEE和所述服务器的所述TEE之间的安全通道发送所述ML应用程序描述符,所述服务器的所述TEE独立地导出从存储在其中的所述机密信息中导出的所述密码密钥。
在其它实施例中,所述ML应用程序包括ML引擎和非机密数据,所述ML应用程序使用所述非机密数据在所述ML引擎上执行。
根据本发明实施例,提供了一种用于在计算环境中执行机器学习(machinelearning,ML)应用程序的***。所述***包括多个计算设备,所述计算设备都包括处理器和用于存储指令的非瞬态存储器,当所述处理器执行所述指令时,所述指令使得所述***执行本文中描述的方法。
上文结合本发明的各个方面描述了实施例,这些实施例可以基于这些方面来实现。本领域技术人员将理解,实施例可以结合描述这些实施例的方面来实现,但也可以与该方面的其它实施例一起实现。当实施例相互排斥或彼此不兼容时,这对于本领域技术人员将是显而易见的。一些实施例可以结合一个方面进行描述,但也可以适用于其它方面,这对本领域技术人员是显而易见的。
附图说明
图1示出了一个实施例提供的计算环境。
图2是一个实施例提供的可以用于实现设备、***和方法的计算***的框图。
图3示出了一个实施例提供的ML模型的生命周期的各个阶段。
图4示出了实施例为确保ML应用程序的完整性和保护ML应用程序的机密性而采取的各种步骤。
图5示出了一个实施例提供的用于配置ML模型的ML学习框架。
图6示出了一个实施例提供的ML模型开发者发布模型的方法。
图7示出了一个实施例提供的用于将ML模型安全地配置到云提供商网络中的方法。
图8示出了一个实施例提供的用于将ML引擎安全地注入到云提供商网络中的方法。
图9示出了一个实施例提供的用于将ML引擎安全地配置到云提供商网络的ML-TEE中的方法。
图10示出了一个实施例提供的通过IAM令牌绑定进行获得认证和授权的远程证明(authenticated and authorized remote attestation,A2RA)的方法的概述。
图11示出了一个实施例提供的用于用户认证和授权的方法。
图12示出了一个实施例提供的用于远程证明的方法。
图13示出了一个实施例提供的用于令牌验证的方法。
图14示出了一个实施例提供的机密信息配置的方法。
需要说明的是,在整个附图中,相似的特征由相似的附图标记标识。
具体实施方式
本发明实施例提供了方法、装置和***,以使人工智能/机器学习(artificialintelligence/machine learning,AI/ML)应用程序的各方可以在潜在不安全的远程执行环境中执行这些应用程序时保护各方知识产权(intellectual property,IP)(例如,模型、引擎、数据和应用程序)的安全性和机密性。IP注入到执行环境中并在可信执行环境(trusted execution environment,TEE)中执行,这样各方IP互不影响,而且不受执行环境的操作者和所有者影响。在一些实施例中,执行环境是云计算环境。
本文中描述的实施例包括用于安全地注入和操作在云提供商的基础设施上运行ML框架和ML应用程序的一群TEE容器的装置、***和方法。通过密码模块、运行时隔离和硬件安全模块的帮助,实施例在云提供商的基础设施内的传输、处理时间和静态过程中,保护私有ML模型和机密用户数据的机密性和完整性,其中,这些硬件安全模块是计算环境固有的,也可以通过物理接口或网络接口添加。所描述的一些***和方法还包括优化,用于减少由实施例中的安全性和隐私保护措施引入的性能开销。
本文中描述的实施例包括用于在两个计算机***之间安全地发送和接收敏感或机密数据的装置、***和方法,其中,每个计算机***包括可信执行环境(trustedexecution environment,TEE)。具体地,密码密钥或机密信息可以从一个计算机***的TEE发送到第二计算机***的TEE。
广义上讲,人工智能(artificial intelligence,AI)是指使用计算机硬件和软件来模仿通常是人类智能所为的“认知”功能。AI应用程序试图“学习”或执行问题解决,而不是简单地执行计算。AI应用程序的一些示例包括计算机视觉、自然语言处理、自动驾驶车辆、金融反欺诈、金融市场预测、医疗诊断等。
机器学习(machine learning,ML)是AI的一个子集,包括旨在通过经验改进的计算机程序和算法。ML算法包括可以数学模型,这些数学模型可以在样本数据上进行训练就能够产生结果,而无需显式编程来产生这些结果。ML编程技术在解决问题的显式算法未知时对解决问题非常有用。ML模型包括调整以提高ML模型输出精度的参数。训练ML模型包括确定ML模型参数的最佳值。一旦ML模型经过“训练”,ML模型就可以用于进行预测。ML模型可以分为许多类别,例如,神经网络、回归分析、决策树学习等。ML模型通常称为AI/ML模型,但在这里称为ML模型。
ML模型的工作方式是使用训练数据来训练ML模型的算法。训练数据包括选定的成对输入数据和输出数据,其中,输出数据是其对应输入数据给定时的“正确”或“最佳”答案。通过处理数据输入并观察ML模型的输出,得到一个误差。训练过程试图确定ML模型参数,以最小化或限制ML模型输出中的误差量。在许多AI/ML应用程序中,训练过程中使用来自多个源的大型数据集。例如,人脸识别应用可以使用大量人脸图像进行训练。ML模型通常归一方所有,而数据归其它一方或多方所有。数据还可以包括数据所有者的机密或私有数据。
ML模型可以编写为自包含的计算机程序,但各类ML模型在为各类问题设计的ML引擎上运行也很常见。例如,许多不同的自然语言AI/ML应用程序可以使用由为自然语言处理应用程序设计的ML引擎执行的不同模型。其它各类ML引擎包括人脸识别、语音处理等等。ML引擎可以由不同于ML模型所有者或数据所有者的一方拥有。ML模型的示例包括谷歌的AI平台和微软的Windows ML。
在一些实施例中,ML应用程序可以用于将ML模型与使ML模型在ML引擎上运行的附加配置代码、程序、操作***、脚本、参数等一起打包。在其它实施例中,ML引擎可以与使ML模型在ML引擎上运行的附加配置代码、脚本、参数等一起打包。ML应用程序可以表示ML模型所有者、ML引擎所有者的IP,也可以是单独的一方。非机密数据或公共数据可以与ML应用程序或ML模型组合,也可以在两者之间划分。
训练和执行ML模型可能需要大量的计算能力和数据存储,因此ML模型通常在云计算基础设施上运行。一些云计算运营商提供他们自己的ML引擎,通常针对图像识别、文本到语音、翻译等特定应用优化这些引擎。云计算运营商通常是不同于ML模型所有者或数据所有者的一方。云计算提供了一种灵活的、按需的计算能力和数据存储源。云计算与ML模型所有者的计算基础设施相距较远,也可能与ML引擎所有者和数据所有者相距较远。
可信计算基础(trusted computing base,TCB)是计算机***的一部分,包括形成可信基础以实施计算机***安全策略的硬件和软件。TCB可以包括内核、少量可信进程和可能认为是安全的硬件支持。如果TCB外部的一部分计算机***受到破坏,TCB部分仍然是安全的。
可信执行环境(trusted execution environment,TEE)可以是TCB的一部分,是计算机进程或***内的安全隔离环境,在机密性和完整性方面受到保护。TEE包括一组硬件和软件组件,这些组件用于保护应用程序和数据不受外部攻击。许多TEE包括“硬件可信根(hardware root of trust)”,该硬件信任根使用嵌入在处理器硬件中的一组私钥。这些密钥不能更改,可以用于控制软件和数据在TEE内的访问和执行。在本文中,执行ML模型的TEE、TEE组或TEE集群称为ML-TEE。证明服务可以是TEE硬件的制造商,可以用于验证TEE的安全性。在一些情况下,硬件供应商可能会在处理不当或怀疑密钥被攻击者破坏的情况下撤销硬件密钥。
实施例提高了ML模型的安全性、用户数据的安全性和隐私性,而且在实施这些安全和隐私措施的同时提高了性能。
实施例保护ML模型本身和经过训练的ML模型或ML应用程序的参数值。ML模型的各个方面在将ML模型从AI/ML公司注入给云提供商的基础设施时,在传输过程中保持机密,而在模型存储或运行在云提供商的基础设施上时,保持静态。
实施例保护ML模型可使用的用户数据的安全性和隐私性。无论数据的敏感性如何,例如,数据是机密还是众所周知,数据都可以受到保护。在将数据注入给云提供商时以及在云提供商提供的TEE中的ML模型使用数据来安全地执行ML模型时,数据受到保护,其中,该TEE在下文中称为ML-TEE。用户数据的机密性和完整性不受外部参与者的影响。只有在云提供商ML-TEE中注入加密密钥的用户才能将数据传输到TEE中并根据该数据查看结果。ML-TEE为保护安全注入到其中或在其中计算的数据提供了安全保证。
实施例确保存在其它实施例的安全和隐私措施下的性能。向***添加安全或隐私措施会增加性能开销。增加了OS和内核功能形式的优化,以减少执行ML模型所依据的ML框架时的文件***I/O、网络I/O和缓存性能的开销。实施例包括低层次优化方法,这些方法通过***调用的已知模式提高ML框架的性能。
图1示出了一个实施例提供的计算环境。ML模型102或ML应用程序可以由公司、组织或类似的团体拥有。ML模型所有者本地的、拥有的、租赁的或控制的计算资源104用于开发和存储ML模型102。ML模型所有者能够通过网络链路118安全地向云计算提供商130发送ML模型102,并且从云计算提供商130接收信息,例如,更新后的模型参数。ML引擎106类似地存储在计算资源108中,ML引擎所有者能够通过网络链路120安全地向云计算提供商130发送ML引擎106。数据110是关联数据所有者的私有数据,可以存储在数据所有者本地的、拥有的、租赁的或控制的计算资源112中。与ML模型所有者类似,数据所有者能够通过网络链路122安全地向云计算提供商130发送数据110,并且接收ML应用程序在被执行之后产生的结果。云计算提供商130包括计算资源132和存储器134。云计算资源132可以包括物理服务器和虚拟服务器,可以是集中式或分布式的,并且包括本领域已知的任意数量或任意组合的计算资源。云计算资源132可以包括用于将数据注入到云130中和从云130中注出数据的特定服务器、用作其它服务器代理的服务器以及用于执行、管理和存储ML模型102、ML引擎106或用户数据110的服务器。云存储134可以类似地包括本领域已知的任意数量或任意组合的计算机存储器。ML模型102、ML引擎106和数据110可以由单独的实体拥有,或者一个实体可以拥有模型、引擎或数据中的一个以上。云计算提供商130还可以拥有模型、引擎或数据中的一个或多个。实施例假设,涉及的任何一方或所有各方之间必须要保持完整性和机密性。
图2是可以用于实现本文中公开的设备、***和方法的计算机、服务器或网络设备等计算***200的框图。具体设备可以使用所有示出的组件或仅这些组件的一个子集,且设备的集成程度可能不同。此外,一种设备可以包括一个组件的多个实例,例如,多个处理单元、多个处理器、多个存储器、多个发送器、多个接收器等。计算***200包括处理单元202。处理单元202通常包括中央处理单元(central processing unit,CPU)205、总线210和存储器215,可选地还可以包括大容量存储设备220、视频适配器225和I/O接口230(如虚线所示)。
CPU 205可以包括任意类型的电子数据处理器。存储器215可以包括任意类型的非瞬时性***存储器,例如,静态随机存取存储器(static random access memory,SRAM)、动态随机存取存储器(dynamic random access memory,DRAM)、同步DRAM(synchronousDRAM,SDRAM)、只读存储器(read-only memory,ROM)或其组合。在一个实施例中,存储器215可以包括在开机时使用的ROM以及在执行程序时使用的存储程序和数据的DRAM。总线210可以是任意类型的几种总线架构中的一种或多种,包括存储器总线或内存控制器、***总线,或视频总线。
大容量存储器220可以包括任意类型的非瞬时性存储设备,用于存储数据、程序和其它信息并使这些数据、程序和其它信息能够通过总线210访问。大容量存储器220可以包括,例如,固态硬盘、硬盘驱动器、磁盘驱动器或光盘驱动器中的一个或多个。
视频适配器225和I/O接口230提供可选接口,以将外部输入和输出设备耦合到处理单元202。输入和输出设备的示例包括耦合到视频适配器225的显示器235和耦合到I/O接口230的I/O设备240(例如,触摸屏)。其它设备可以耦合到处理单元202,因此可以使用更多的或更少的接口。例如,通用串行总线(universal serial bus,USB)(未示出)等串行接口可以用于为外部设备提供接口。
处理单元202还可以包括一个或多个网络接口250,这些网络接口可以包括以太网电缆等有线链路或接入一个或多个网络245的无线链路。网络接口250使得处理单元220通过网络245与远程实体进行通信。例如,网络接口250可以通过一个或多个发送器/发射天线和一个或多个接收器/接收天线提供无线通信。在一个实施例中,处理单元202耦合到局域网或广域网,以与其它处理单元、互联网或远程存储设施等远程设备进行数据处理和通信。
实施例在AI/ML模型的生命周期300的各个阶段中保持ML模型的机密性并保护ML模型的完整性。ML模型的生命周期300的各个阶段如图3所示,包括模型生成302、模型发布304、模型授权306、模型注入308和模型执行310。
模型生成302的步骤针对每个应用,由AI/ML开发者和企业执行。模型生成302在安全计算环境中执行,包括确定训练ML模型要使用的数据。模型生成302的步骤的输出可以是ML模型,处于准备部署到训练环境中的状态。模型生成302的步骤的最终输出可以是经过训练的ML模型,处于准备部署到生产环境中的状态。ML模型可以分为静态模型和动态模型。离线训练静态ML模型,作为模型生成302或模型发布304的步骤的一部分。一旦完成训练,ML模型就可以在计算环境中使用。离线训练可以稍后执行,以更新模型及其参数。在线训练动态ML模型,作为模型执行310的步骤的一部分。随着ML模型运行,更新该ML模型,作为连续过程的一部分。用于机密性和完整性保护的安全机制可以根据ML模型是静态模型还是动态模型来定制。
ML模型所有者通过模型发布304来保护所发布的ML模型102的机密性和完整性。ML模型的开发者利用模型发布工具314,该工具是负责生成加密和签名的存档或磁盘卷的软件应用程序、例程或函数,这些存档或磁盘卷可以在执行环境中安全地加载和提取,以执行ML模型102。为了安全起见,模型发布工具314可能需要满足许多标准。模型发布工具314可以利用硬件安全模块来保护其可信执行环境(trusted execution environment,TEE)内的密钥和敏感密码操作。模型发布工具314应部署在安全、受限的计算环境中,该计算环境包括足够的安全防护确认。模型发布工具314将应用程序用户标识(user identification,UID)和ML模型102作为输入。模型发布工具314生成绑定到应用程序UID的模型加密密钥(model encryption key,MEK)、包括使用MEK进行加密的ML模型的存档或磁盘卷以及使用ML模型所有者的签名密钥的签名作为输出。作为介绍,使用模型加密密钥(modelencryption key,MEK)对ML模型进行加密包括使用该模型的加密密钥对ML模型(一个或多个计算机文件)进行数学加密。在一些实施例中,MEK可以是临时的,仅在足够完成ML模型102的注入和执行的时间内有效。签名可以用于对ML模型102的开发者或所有者进行认证。MEK可以由模型发布工具314的TEE生成和存储,并且可以由其它TEE通过模型授权过程306使用。MEK可以安全地注入到其它计算机***的TEE中,例如,注入到云计算提供商130的ML-TEE中。
模型授权306包括用于对远端(例如,云计算提供商130)进行认证和授权以访问模型发布工具314在模型发布304的步骤中生成的ML模型磁盘卷的过程。在云计算提供商130侧,称为模型管理器318的软件组件可以用于监听来自模型发布工具314的传入网络连接。当模型发布工具314通过本文中描述的远程证明过程将MEK注入到模型管理器318的TEE中时,模型授权过程306开始。远程证明在模型发布工具314使用MEK对ML模型磁盘卷进行加密时开始。下一步是模型发布工具314向模型注册表319发送ML模型磁盘卷进行长期存储。最后,模型注册表319在成功将ML模型磁盘卷存储在云提供商的存储器中之后使用确认进行响应。模型发布工具314是ML模型所有者的计算环境104的一部分。模型管理器318和模型注册表319是云计算环境130的一部分。
上述过程发生在ML模型公司的模型发布工具314、模型管理器318和模型注册表319之间。在一些实施例中,模型管理器318和模型注册表319可以位于ML模型公司拥有的分离私有云中,该ML模型公司是基础设施即服务(infrastructure as a service,IaaS)的一个示例,分离私有云可以在多个租户(即平台即服务(platform as a service,PaaS)或容器即服务(container as a service,CaaS)的示例)之间共用。一旦ML模型102存储在模型注册表319中,就能够将ML模型磁盘卷注入给ML-TEE来执行。在ML-TEE能够使用ML模型磁盘卷之前,模型管理器318使用模型注入308的过程将ML模型的MEK注入给ML-TEE。
模型注入308由模型管理器318执行,包括对云计算提供商的ML-TEE进行授权以及安全地分发要在ML-TEE中执行的ML模型的MEK。模型注入308由ML模型所有者通过将部署配置传输给云计算提供商的协调器组件来启动。协调器定义部署ML模型来执行的ML-TEE的属性。部署配置可以包括应用程序UID、ML模型UID、服务帐户机密信息和云计算提供商TEE的集群大小。
协调器采取部署配置并与模型管理器、模型管理器和ML-TEE主机互操作,以启动满足***管理员提供的配置的容器。在代表***管理员执行任何操作之前,协调器会验证服务帐户机密信息,以确保管理员经过认证和授权。广义上讲,软件“验证”的过程包括数学上验证(用户)机密信息、(加密)密钥、令牌、密码机密信息、密码签名等是否有效且可信任。验证可以防止使用未经授权的信息或防止未经授权访问软件资源。
将模型管理器318存储的MEK传输到在要云计算环境130中执行ML模型的ML-TEE。安全传输会发生在模型管理器218和运行在托管集群的每个计算机上的ML-TEE守护程序之间。ML-TEE守护程序向ML-TEE传输MEK,作为ML-TEE启动过程的一部分。MEK是在作为逻辑组件一部分运行的TEE之间的安全通道上完成传输的。因此,MEK永远不会在经过TEE完全封装之前存储或使用。
模型执行310在ML-TEE 332启动ML应用程序和ML模型时发生。该应用程序使用ML-TEE守护程序提供的MEK对保存ML模型的加载磁盘卷进行解密。在成功解密和加载之后,ML-TEE加载ML模型和与ML模型相关联的ML引擎,然后恢复执行。ML模型的解密过程可以使用可验证ML模型的完整性并源自ML模型所有者的密码算法。ML模型的完整性可以使用已知的认证加密算法(例如,AES-GCM)来验证。ML模型的起源可以通过对ML模型的签名执行密码验证以及对ML公司的相关证书进行验证来验证。此时,ML-TEE可以相信ML模型是合法的且没有被篡改。ML模型的软件包仅对在模型发布时冻结的静态模型可验证。
图3的实施例提供了使用两阶段过程在ML模型所有者104和云计算基础设施132之间以加密形式传输ML模型的方式。加密是使用临时MEK完成的,该MEK可能基于硬件TEE。在第一阶段中,模型发布工具314将加密的ML模型导出到模型管理器318。在第二阶段中,模型管理器318将加密的ML模型注入到ML-TEE中。
ML所有者能够向云计算环境130中的可以运行ML模型的ML-TEE发布授权令牌。广义上讲,授权令牌是包括安全身份信息以指示ML-TEE由ML所有者授权的计算机软件对象。“限时”令牌仅在预定时间段内有效或者在满足一个标准或一组标准之前有效。访问令牌的软件例程必须验证令牌的限时特性尚未过期且仍然可用。ML-TEE在启动期间将授权令牌提供给模型管理器318,以便在启动过程中下载ML模型及其MEK。授权令牌可以是限时的,以防止将来在授权令牌泄露时存在未经授权访问。限时授权令牌仅在限定的时间段内有效,在此之后,令牌变为无效且不得使用。当访问限时令牌时,访问软件在使用该令牌之前要验证令牌是否尚未过期。
ML应用程序包括ML模型以及关联的程序、操作***、参数、变量或在云计算环境中通过ML引擎执行ML模型所需的其它信息。图4示出了实施例为确保ML应用程序的完整性和保护ML应用程序的机密性而采取的各种步骤。这些步骤是应用程序创建402、应用程序打包和签名404、应用程序包注入406、注入应用程序包存储408、ML模型注入208、ML模型存储412、应用程序初始化和验证414、应用程序执行210以及应用程序组件更新和撤销416。
ML应用程序创建402的步骤针对每个单独的应用程序,是在ML模型所有者为应用程序开发他们的ML模型时执行的。假设ML应用程序创建402的步骤从构建的时候到应用程序打包和签名404的步骤为止都是可信的且完全不受影响。
然后,ML模型所有者使用可信工具在安全环境中执行应用程序打包和签名404的步骤。根据云计算提供商130的执行环境的配置方式,应用程序可以包括文件***,例如Linux,或者包括具有足以执行ML模型的组件的文件***的一部分。非机密数据、公共数据或应用程序开发者拥有的数据也可以包括在应用程序包中。应用程序可执行文件和非机密数据与常规文件支持的文件***一起打包。包文件已签名以进行完整性保护。应用程序打包和签名404的步骤可能需要单独的计算机功能来验证经签名的包文件。这种类型的计算机功能的一个示例是在磁盘块级执行验证和检查完整性的Linux dm-verity内核组件。应用程序打包和签名404的步骤可以包括构建文件***块的哈希树,该哈希树可以是Merkle哈希。Merkle哈希是一种具有树结构的数据结构,其中,每个叶节点都是数据块的哈希,每个非叶节点都是其子节点的哈希。通常情况下,Merkle哈希的每个节点最多可以有2个子节点。Merkle哈希使用哈希而不是完整文件,因此可以用于高效数据验证。应用程序打包和签名404的步骤产生完整性保护文件***映像(现在包括哈希树)以及包括文件***根哈希的应用程序包描述符结构。后者的值在所有阶段都受到完整性保护。在实施例中,应用程序遵循Kerchhoff原则,该原则指出,应用程序包代码本身不需要保密。由于应用程序包没有加密,解密引起的任何开销都会减少。
任何机密应用程序数据都可以使用相同的打包和签名404的过程打包在一个或几个单独的文件***映像中,并且添加加密步骤来产生机密性保护文件***映像。加密步骤可以使用带有对称密钥的块密码在文件***块级完成。执行加密的计算机函数的一个示例是dm-crypt Linux内核组件,该组件旨在执行磁盘加密。
应用程序包注入406的步骤可以用于对属于通过应用程序打包和签名404的步骤产生的应用程序包的文件***映像进行验证或解密。作为应用程序注入406的步骤的一部分,对应的根验证哈希和加密密钥必须在预期执行应用程序包的ML-TEE容器内部传递。在一些实施例中,ML-TEE容器需要执行多个应用程序,这些应用程序可能已经由不同的AI/ML公司开发,因此应用程序与它们各自的密钥和哈希之间的关联关系也被跟踪。
应用程序包注入406的步骤使用应用程序包描述符数据结构,以便将应用程序包注入给云计算ML-TEE。在一些实施例中,数据结构可以包括以下字段:
-每个完整性保护文件***映像的根验证哈希;
-每个机密性保护文件***映像的加密密钥(可以是对称密钥);
-应用程序UID;
-模型UID;
-将根哈希和加密密钥与对应的文件***映像结构关联起来所需的信息。
使用多步骤过程将应用程序包描述符数据结构安全地传输到ML-TEE容器中。首先,将应用程序包描述符传输到云计算环境130的注入代理基础设施TEE任务。注入代理可以与ML-TEE容器运行在同一主机上。接下来,注入代理基础设施TEE任务将应用程序包描述符密封在永久性存储器中(某种形式的非易失性存储器),这样即使在注入代理基础设施TEE任务结束之后,应用程序包描述符也会保留。密封是ML-TEE使用已注入到ML-TEE中的密钥对数据进行加密的过程。当ML-TEE使用注入到ML-TEE中的密钥对数据进行解密时,解封是与密封相反的过程。最后,ML-TEE容器在需要验证和执行与应用程序包描述符对应的应用程序时,将应用程序包描述符从永久性存储器中解封。
实施例还实现用于将应用程序包描述符数据结构传输到基于本地证明的安全动态通道、传输层安全(transport layer security,TLS)连接等ML-TEE容器中的替代方法。
在应用程序包注入406的步骤中,密封和解封通过相同的对称密钥(称为密封密钥)执行,这些对称密钥由ML-TEE设施根据注入代理TEE任务和TEE容器任务共用的机密信息导出。这个过程是安全的,因为密封密钥是在TEE容器任务所属的TEE域内导出的,并且永远不会离开ML-TEE的边界。密封密钥是从父密钥和ML模型、应用程序包描述符或应用程序唯一的附加标识符中导出的。密封密钥在ML-TEE内部用于对应用程序包描述符结构进行加密和签名。密封密钥可以使用AES-GCM密码,其中,单个密封密钥同时提供消息认证功能(message authentication function,MAC)和加密。然后,得到的经签名的密文可以保留在常规的未加密文件中。通过密封密钥构建,文件的内容只能在与内容创建者具有相同身份的ML-TEE内部成功解密。类似地,通过同一ML-TEE内的验证检测到任何损坏。GCM模式支持验证,并且在解密时执行验证。
在注入应用程序包存储408的步骤中,注入代理基础设施TEE任务负责在成功接收到注入数据之后将应用程序包描述符结构密封在永久性存储器中。永久性密封状态在云计算提供商130处由常规计算单元可访问的文件***上的常规文件表示。
ML-TEE容器和注入代理TEE任务共用TEE身份信息且存在于相同的信任根域中。这使TEE容器能够在需要时对应用程序包描述符结构进行解封。
为了使ML-TEE执行ML应用程序,ML-TEE需要ML模型和封装的支持数据,由于多种原因,ML模型和封装的支持数据都可以作为单独的实体维护。其中一个原因是,特定应用程序可以与不同的ML模型一起使用,具体取决于应用程序特定的配置还是用户特定的配置。另一个原因是,应用程序和模型映像可以相互独立地更新或撤销。
在ML模型注入208的步骤中,将ML模型打包在完整性保护文件***映像中,使用特定于ML模型的密钥对ML模型进行签名和加密。注入工作流类似于上述应用程序包本身的工作流。注入服务组件用于安全地将ML模型描述符结构传输到承载ML-TEE容器的云计算提供商130的CPU。ML模型数据结构可以包括以下字段:
-包括ML模型的完整性保护文件***映像的根验证哈希;
-包括ML模型的文件***映像的对称加密/解密密钥;
-ML模型UID;
-将根哈希和加密密钥与包括ML模型的文件***映像连接起来需要的信息。
在实施例中,可以使用以下方法将ML模型包描述符结构安全地传输到ML-TEE容器中:
-将ML模型描述符结构发送到与ML-TEE容器在同一主机上运行的注入代理基础设施TEE任务;
-注入代理基础设施TEE任务将描述符密封在永久性存储器中;
-当需要验证和加载对应的模型映像时,ML-TEE容器将描述符从永久性存储器中解封。
ML模型存储412的步骤包括将注入ML模型存储在永久性存储器中。与注入应用程序包存储408的步骤类似的方法可以用作模型的密封机制,包括使用相同的密钥导出方案。
与应用程序包注入406的步骤类似,注入代理基础设施TEE任务负责在成功接收到注入数据之后将模型包描述符结构密封在永久性存储器中。永久性密封状态由云计算提供商130的CPU主机可访问的文件***上的常规文件表示,从而使得ML-TEE容器可以加载、解封和验证ML模型映像。
为了执行应用程序初始化和验证414的步骤,ML-TEE容器将应用程序包描述符结构从密封状态加载到受保护的ML-TEE存储器中。通过结合应用程序包注入406的步骤所述的机制,这种结构是可信的。
在永久性存储器中,应用程序始终驻留在完整性保护文件***映像中。作为应用程序加载过程的一部分,这种映像从存储器中提取并由ML-TEE容器加载。在加载文件***映像时,ML-TEE容器确保,与映像一起存储的根哈希值与应用程序包描述符结构中的可信版本匹配。只有当两者相等时,才可以继续加载操作。
ML-TEE容器将文件***哈希树加载到受保护的ML-TEE存储器中。如果哈希树的任何部分被损坏,当容器I/O层请求相关数据时,会检测到哈希验证失败。类似地,试图读取损坏的文件***数据块会导致哈希不匹配。这可能是一个不间断的过程,在加载文件***映像时持续。该过程会检测到在ML-TEE读取文件、数据或磁盘扇区时修改这些内容,无论这种修改何时发生。
ML应用程序在应用程序执行210的步骤中执行。在使用时,应用程序可执行文件和数据组件驻留在完整性和机密性保护的ML-TEE存储器中且防止意外和恶意修改以及窃听。ML-TEE应用程序映像的可信性一方面由ML-TEE容器可信计算基础(trusted computingbase,TCB)保证,另一方面由前面描述的机制(3.3.3.5)保证。
在应用程序执行210的步骤结束时,应用程序组件更新和撤销416的步骤可以用于提供一种机制,以通过替换应用程序包描述符结构来更新或撤销应用程序的组件或授权。
为了实现机密计算ML框架,加密密钥、签名密钥和其它用户加密参数等“机密信息”必须注入到TEE(例如,云计算提供商130的ML-TEE)中。在机器学习的情况下,即在将用户的机密数据发送到云计算基础设施130中的情况下,使用未受硬件保护的密钥或密钥用于在TEE外部对用户数据进行解密时的TLS会造成用户数据泄露或被恶意内部员工拦截的威胁。为了减轻这种威胁,TLS连接必须在TEE内部终止,或者用户可以使用他们自己生成并安全注入到TEE中的应用程序特定对称密钥对他们的数据进行加密。
图5示出了一个实施例提供的用于将ML模型102、机密信息508和ML引擎106注入到云提供商数据中心130中的ML学习框架。ML引擎提供商104提供ML模型102、机密信息508和部署配置512。ML引擎提供商108提供ML引擎106。云提供商数据中心130包括用于接收ML模型102、机密信息508、部署配置512和ML引擎106的服务器。在实施例中,ML引擎提供商104和ML引擎提供商可以是相同的实体。在实施例中,ML引擎提供商可以是云提供商数据中心130的一部分。
ML模型102包括描述ML模型的目录和文件的集合。一个或多个机密信息508包括一个或多个加密密钥、密码、证书、私钥和本领域已知的用于执行证明和加密的其它密码数据。部署配置512包括硬件、网络、存储参数和云提供商数据中心130保护、存储和执行ML模型102所需的其它信息的描述和配置。ML打包服务506对ML模型102进行加密和签名以发布,并且添加生成存储磁盘卷和通过安全通道550传输到云提供商数据中心130所需的元数据。类似地,机密信息打包服务510用于对机密信息508进行加密和签名,并且通过安全通道552在机密信息打包服务510中的端点和云提供商数据中心130之间执行远程证明。
ML引擎提供商108提供ML引擎106、ML应用程序套件,以执行ML模型,例如,ML模型102。ML引擎打包服务524用于准备ML引擎106,以通过安全通道556向云提供商数据中心130发送。
安全通道550、552、554和556可以是分开的或组合的,并且在安全通道的每一端包括TEE。
云计算数据中心130提供了安全环境,以容纳执行ML应用程序所需的组件:ML模型102、机密信息508、ML引擎106和其它公共数据。ML模型102的软件包通过安全通道550接收到ML磁盘卷注入服务器532中。ML磁盘卷注入服务器532以标准格式对ML模型重新打包,这种格式使ML模型可以作为虚拟存储磁盘加载。然后,将ML模型102存储在ML磁盘卷存储器534中,ML磁盘卷存储器534是存储ML磁盘卷及其对应元数据的存储库。
打包的机密信息508通过安全通道552接收到机密信息注入服务器536中。然后,机密信息注入服务器536接收到的机密信息508可以用于初始化云计算数据中心130内的ML-TEE容器。
协调器538通过安全通道554从ML引擎提供商104接收部署配置512。协调器538利用部署配置512来调度ML-TEE的创建和销毁,并管理它们的生命周期。
ML引擎注入服务器542通过安全通道556接收由ML引擎打包服务524打包的ML引擎106。ML引擎注入服务器542创建包括所有依存关系的运行时引擎映像,并将其存储在ML引擎存储器544中。ML引擎存储器544是ML引擎映像及其元数据的存储库。
一个或多个ML-TEE主机546包括任意数量的ML-TEE容器540。每个ML-TEE容器都是运行与ML模型业务功能相关的服务的ML映像和ML磁盘卷的基于TEE的隔离执行环境。
ML磁盘卷注入服务器532、机密信息注入服务器536、ML引擎注入服务器542和协调器538是真实服务器或虚拟服务器,或者是具有TEE环境的服务器进程或功能,该TEE环境可以安全地接收、存储和处理开发者和用户上传的敏感数据。
安全通道550、552、554和556可以是物理通道或虚拟通道。这些通道可以是共享通道或隧道,或者使用本领域已知的方法隔离或组合。
图6示出了一个实施例提供的ML模型开发者发布模型的方法。该方法使得ML模型开发者可以安全地将ML模型注入到云提供商网络330中。
ML模型开发者操作包括至少一个TEE 310的ML模型所有者网络302。模型发布工具308使用的输入包括ML模型204、应用程序UID 304和签名密钥ID 306。模型发布工具308产生签名316作为输出。签名316包括开发者为模型创建的加密密钥。MEK 312是开发者为模型创建的加密密钥,存储在具有TEE 310的安全环境中,并被注入到云提供商网络330中的ML磁盘卷注入服务器232的ML-TEE 332中。模型发布工具308还对ML磁盘卷350打包,并且创建带有签名ID密钥306的加密模型磁盘卷314。模型磁盘卷350包括描述模型磁盘卷内容的包描述符352。模型磁盘卷350还包括一个或多个磁盘卷文件***(file system,FS)映像354……356。包括ML模型204和包描述符352的加密模型磁盘卷314安全地传输到云提供商网络330的模型管理器334。模型管理器334将加密的模型磁盘卷314存储在模型注册表336中。
图7示出了一个实施例提供的用于将ML模型安全地注入到云提供商网络中的方法。该方法还可以执行授权过程,作为该方法的一部分。ML模型所有者网络302中的模型发布工具308通过向ML磁盘卷注入服务器232发送模型授权请求702来启动该方法。模型授权请求702可以包括使用MEK进行加密的ML模型EncMEK(m)、加密模型的签名SignSK(a)和唯一模型ID mID。然后,在模型发布工具308和ML磁盘卷注入服务器232之间交换多个消息,以在模型发布工具308的TEE和ML磁盘卷注入服务器232的TEE之间执行远程证明过程704。在图7中,为了执行远程证明,交换了四个消息,但在实施例中,消息的数量、消息的顺序和消息的方向可以变化。在完成远程证明过程704时,模型发布工具308向ML磁盘卷注入服务器232发送消息,其中,该消息可以包括使用MEK进行加密的会话密钥EncSESSION KEY(MEK)。
一旦成功完成远程证明704,ML磁盘卷注入服务器232就可以将ML模型204存储706在其TEE安全环境中。然后,ML磁盘卷注入服务器232可以使用可利用模型ID mID和加密模型签名SignSK(a)的StoreModel消息将ML模型204存储708到模型管理器334中。ML模型204使用mID存储,并且使用MEK进行加密。模型管理器334将ML模型204存储710到模型注册表336中,模型注册表336进行确认712。为了完成该过程,模型管理器向ML磁盘卷注入服务器232确认712完成,ML磁盘卷注入服务器232向模型发布工具308发送确认。
图8示出了一个实施例提供的用于将ML引擎106安全地注入到云提供商网络130中以提供安全ML引擎初始化、验证和执行机制的方法。ML引擎106表示一组运行时组件和执行ML模型102所需的任何支持数据。ML引擎106的设计目的是向ML模型所有者和正在使用机密或私有数据的所有者提供安全保障。为此,ML引擎106的各个部分受到完整性保护。ML引擎106的某些组件还可以受到机密性保护。
在实施例中,ML引擎提供商202利用ML引擎打包服务224对ML引擎106进行打包和加密签名。ML引擎包可以包括一个或多个Linux文件***,这些文件***由收集ML引擎包的各个部分的描述符502描述。这些部分包括文件***(file system,FS)根验证哈希560、FS加密密钥562、FS元数据564和ML引擎UID 566。ML引擎打包服务224与云提供商数据中心230的ML引擎注入服务器542进行通信,以向ML引擎注入服务器542的安全环境发送ML引擎包504和描述符502。一旦处于云提供商数据中心230的环境中,ML引擎包504可以分发到本地CPU 510,本地CPU 510可以执行TEE基础设施任务520以实现注入代理522。然后,ML引擎包504和描述符502可以密封550到云存储器中,以安全地存储ML引擎和关联元数据。ML引擎包504和描述符502从云存储器中解封并读取到TEE容器任务540中,然后执行。
图9示出了一个实施例提供的用于将ML引擎安全地配置到云提供商网络的ML-TEE中的方法。将应用程序包描述符结构安全地传输到TEE容器332与几个事件相关。描述符502可以安全地传输到TEE注入代理242,TEE注入代理242与ML注入服务器542的TEE容器332运行在相同的主机和TEE环境中。TEE注入代理242将描述符密封在永久性存储器中。最后,当需要验证和执行ML应用程序时,TEE容器332将描述符502从永久性存储器中解封。
该方法可以由ML引擎注入服务器542启动。ML引擎注入服务器542负责在注入任何数据之前执行TEE之间的证明,接收和验证ML引擎包,以及创建对用于部署的应用程序包进行唯一标识和安全签名的应用程序包描述符。
该方法可以在云提供商数据中心230内执行,并且在ML引擎注入服务器542向TEE证明代理602发出证明报告请求610时开始,TEE证明代理602是负责服务证明请求的本地TEE组件。TEE注入代理242执行任务,该任务负责在成功接收到注入数据之后将ML引擎包描述符502的结构密封在永久性存储器中。反过来,TEE证明代理602向TEE注入代理242发送本地证明请求611和公钥。TEE注入代理242执行本地证明,并且使用确认612进行响应。当TEE证明代理602接收到确认612时,它可以向ML引擎注入服务器返回证明报告613和公钥。
一旦ML注入服务器542接收到证明报告613,它可以向TEE注入代理发送614上述ML引擎106和描述符502。在成功接收到注入数据之后,TEE注入代理242的任务可以是将ML引擎包描述符结构502密封615在永久性存储器中。密封密钥从TEE根密钥和其它身份材料中导出。密封密钥永远不会离开TEE的边界。一旦描述符502被密封,TEE注入代理242可以将ML引擎106和描述符502保存616在存储器244中。
为了执行ML引擎106,TEE容器332从存储器244中加载617ML引擎106和描述符617。TEE容器332和TEE注入代理242共用相同的TEE身份信息且存在于相同的信任根域中。这使TEE容器332能够对ML引擎包描述符502的结构进行解封。然后,TEE容器332对描述符617进行解封618。描述符502用于验证ML引擎106,然后可以执行ML引擎106。
实施例提供了一种用于安全地将用户数据注入到ML-TEE中的令牌绑定远程证明注入机制。在用户和在TEE中执行的应用程序后端之间传输敏感数据之前,注入机制验证硬件支持的TEE的安全状态。
远程证明是客户端或用户向远程服务器验证其硬件和软件配置的一种方法。远程证明的目标是使远程***能够确定对另一***的计算平台完整性的信任级别。远程证明也可以用作将机密信息注入给远程计算机***的方法,该***的平台完整性已由希望共享敏感数据的客户端或用户验证。但是,远程证明本身不足以认证用户的身份,也不足以授权同一用户将机密信息注入给远程***。
为了实现令牌绑定远程证明,实施例利用扩展的sigma协议来提供身份和访问管理(identity and access management,IAM)、响应于用户请求而发布的限时令牌。广义上讲,IAM是一个或多个软件功能或服务,用于定义和管理***中实体和用户的角色和权限以及对如何授予(或拒绝)用户这些权限的任何限制。sigma协议是一种基于密码学的“知识证明”,用于证明计算机***“知道”某件事情,而不必提供该知识。sigma协议的特点在于,它们包括三个步骤:承诺(commitment)、挑战(challenge)和应答(response)。承诺是从用户到待验证***的第一消息。挑战是来自待验证***的随机质询。应答是来自用户的第二消息。
当注入服务器执行远程证明方法时,注入服务器会显式验证访问令牌及其策略,以确保访问令牌未过期且是由请求令牌的用户发送的。在成功完成协议之后,注入服务器能够放心地将注入敏感数据绑定到用户的身份,该用户知道这些数据由可信***授权。
图10示出了一个实施例提供的通过IAM令牌绑定进行获得认证和授权的远程证明(authenticated and authorized remote attestation,A2RA)的方法1000的概述。在该方法中,个人可识别信息(personally identifiable information,PII)数据110的提供商生成长期加密密钥。长期加密密钥在本地存储到TEE安全元件中。加密密钥通过机密信息打包服务使用远程证明过程注入到机密信息注入服务器中。机密信息注入服务器将加密密钥绑定到数据提供商的身份,并且使用DB加密密钥对其进行包装。机密信息注入服务器将数据提供商加密密钥的DB注入给授权的ML-TEE容器。这时,数据提供商可以使用存储的加密密钥对PII数据进行加密,然后向ML-TEE容器发送该数据。接着,ML-TEE容器可以对用户数据进行解密和处理。在整个方法中,明文数据永远不会暴露在TEE保护环境之外。
方法1000提供了由IAM***和对应的IAM令牌支持的强大认证和访问控制,这比仅使用证书认证的方法有优势。获得认证和授权的远程证明(authenticated andauthorized remote attestation,A2RA)协议与IAM生成的令牌强绑定,用于通过IAM令牌过期、有效性和访问控制管理和实施的安全注入的限时窗口提高了安全性。
如图10所示,用于令牌绑定远程证明的方法1000可以分为四个阶段:
-用户认证和授权1100
-远程证明1200
-令牌验证1300
-机密信息注入1400
用户认证和授权1100的阶段如图11所示。协议假设用户设备和IAM 720之间存在安全和专用连接,其中的网络通信受TLS或等效协议保护。假设UE 104通过UE 104的事先注入而在其信任库中包括IAM 720的证书。信任库用于在UE 104内安全地存储安全机密信息,并且帮助确定UE 104在连接到外部网络设备或验证经签名的消息或数据时可以信任的内容。
为了执行认证,在步骤1中,UE 104(称为“A”)向IAM 720发送授予许可请求802。在一些实施例中,授予许可请求802包括UE 104的公钥和注入密钥,但是可以使用其它替代内容。响应于接收到授予许可请求802,IAM 720发起多因子认证(multi-factorauthentication,MFA)过程804以认证UE 104。MFA过程804可以提示UE,用户输入他们的密码连同MFA过程804指定的其它因子。其它因子可以包括生物特征数据、字母数字令牌、SMS代码或由MFA过程804定义的其它机密信息。
在授予许可请求802成功认证和授权之后,在步骤2中,IAM 720发回包括令牌t、访问令牌元数据tDATA和签名SIGIAM(t,tDATA,A)的响应806。令牌元数据可以包括关于令牌过期、刷新令牌和IAM 720确定的任何其它数据的信息。所有发回的数据都使用IAM的证书进行签名,以生成签名SIGIAM(t,tDATA,A)形式的基于密码学的来源证明。在该过程的这一点上,将UE的公钥A绑定到令牌t。在接收到消息806之后,UE 104能够验证令牌t的来源,该令牌的来源合法可信。IAM 720是可信设备,破坏它会破坏令牌绑定远程证明1000的安全性,因此实施例必须使用本领域已知的方法确保IAM 720的安全性。
如图12所示,实施例包括在成功完成用户认证和授权1100的协议之后执行的远程证明1200的协议。在一些实施例中,远程证明1200的协议是密码SIGMA协议的改编。具体地,SIGMA协议可以包括其它规定,以确保硬件真实性和验证。SIGMA协议的特点在于,这些协议提供了一种基于Diffie-Hellman密钥交换(Diffie-Hellman key exchange,DHKE)的安全密钥交换协议,以确保“完善的前向安全性”。完善的前向安全性是,即使设备的私钥被泄露,会话密钥也不会被泄露。唯一的会话密钥是根据操作或消息等事件生成的,并且该事件的单个会话密钥的泄漏不会影响作为该事件的一部分交换的数据以外的任何数据。
在步骤3中,先前认证的UE 104通过向注入服务器1202上的基于TEE的应用程序发送msg0 902开始。消息902可以包括在步骤2的响应806中接收到的访问令牌和签名SIGIAM(t,tDATA,A)等参数。消息902还可以包括新的会话ID sidA、DHKE原语gx和随机数nA。DHKE原语是在密钥交换中使用的公共值。随机数是一个任意数字,仅用作密码交换的一部分一次。
响应于接收到msg0 902,TEE应用程序生成证明引证904qB以及参数会话ID sidB、DHKE原语gy和随机数nB。基于TEE的应用程序还能够生成共享种子。共享种子由密钥导出函数(key derivation function,KDF)处理,以生成会话加密密钥Ke和会话MAC密钥Km。在步骤4中,TEE应用程序创建包括证明引证qB的msg1 906,并且向UE 104发回该消息。msg1 906包括访问令牌、证明引证和H(qB)。msg1 906还可以包括UE 104和IAM 720的会话ID。
当UE 104接收到msg1 906时,UE 104可以使用DHKE原语来独立生成共享种子,以用作自己KDF的输入,从而生成会话加密密钥Ke和会话MAC密钥Km。这使得UE 104可以对证明引证qB进行解密并从msg1响应906中提取。在步骤5中,UE 104可以向作为IAM 720的一部分或外部硬件供应商的证明服务发送对证明报告908qB的请求(在GetAttestationReport消息中)。
在步骤6中,IAM 720的证明服务使用证明报告912rB、其签名SIGAS(rB)和会话ID响应UE 104的请求908。UE 104能够验证914证明报告签名,以确认其来源可信,证明报告的属性与TEE的属性匹配且TEE处于安全状态。
图13示出了可以在成功完成远程证明1200的协议之后执行的权限验证1300的协议。权限验证1300的协议使得UE 104可以将IAM生成的访问令牌提供给基于TEE的应用程序,以进行最终授权来对所请求权限执行操作。在步骤7中,UE 104向基于TEE的应用程序发送包括UE 104在响应806中从IAM 720接收到的令牌t的msg2 1002,以进行最终授权来接收所请求的权限。UE 104对令牌、令牌元数据、H(qB)和基于密码学的来源证明以及在证明报告912中定义的其它参数进行加密,并且向基于TEE的应用程序发送。这样一来,UE 104将其身份绑定到由UE 104提供的IAM生成的访问令牌,以便向基于TEE的应用程序表明,UE 104实际上是在步骤2(806)中接收到的令牌t的所有者。
在msg2 1002中从UE 104接收到访问令牌之后,基于TEE的应用程序会验证1004IAM生成的访问令牌。验证过程1004包括验证令牌的签名,确保令牌仍然有效,以及通过msg2的参数验证UE 104的签名。如果验证都通过,基于TEE的应用程序会对在响应806中接收到的签名SIGIAM(t,tDATA,A)以及其它参数进行签名,作为成功验证UE 104的令牌的证明。在步骤8中,在msg3 1006中将会话ID返回给UE 104。
图14示出了机密信息注入1400的协议,其中,UE 104生成和打包它们的机密信息数据,以便由注入服务器1002在基于TEE的应用程序中注入。机密信息数据使用会话加密密钥Ke进行加密,接收方TEE根据限时令牌t验证机密信息数据。广义上讲,TEE是计算机处理器或计算机***的硬件安全区,可以执行验证,即验证由令牌限定的(机密)数据的正确性,该令牌在一段时间后过期。在TEE内执行验证确保了,软件代码和数据在机密性和完整性方面受到保护,使用限时令牌确保了,验证必须在预定的一段时间内执行。
在接收到msg3 1006之后,在步骤9中,UE 104继续准备机密信息数据AKEY。AKEY连同权限验证证明SIGB(nA,sidB,SIGIAM(t,tDATA,A))都由UE 104签名,并且***到配置密钥消息1104中。
当基于TEE的应用程序接收到配置密钥消息1104时,该应用程序使用会话加密密钥Ke对该消息进行解密。该应用程序继续验证,消息到达时带有权限验证证明,而且消息在令牌有效的时间段内到达。在这一点上,基于TEE的应用程序能够相信,AKEY是由UE 104生成的,令牌t由UE 104拥有,并且授予UE 104进行ProvisionKey操作的权限。
在步骤11中,一旦机密信息已经成功注入到基于TEE的应用程序中,将确认1108发回UE 104。
使用令牌绑定远程证明1000的实施例提供认证和身份保护。实施例使用IAM组件,这些组件通过多因子认证(multi-factor authentication,MFA)增加身份检查。UE能够请求IAM生成的访问令牌以接收访问权限。IAM的管理员可以根据IAM的需要生成策略和权限,独立于令牌绑定远程证明1000的协议。令牌绑定远程证明1000的协议以加密方式验证生成的访问令牌由IAM签名,并且遵从在TEE中运行的应用程序的后端服务,以实施权限和策略。
令牌绑定远程证明1000的协议独立于硬件属性证明或硬件安全状态。令牌绑定远程证明1000的协议依赖于以下内容:硬件是正版的,硬件的驱动程序是最新的,硬件的安全状态是最新的,并且应用程序的后端服务TEE通过硬件信任的密钥进行签名。令牌绑定远程证明1000的协议通过***额外的消息流来增加硬件证明,使得TEE生成引证并将其注册到硬件供应商的证明服务,该证明服务可能经过加密验证。证明服务还可以对证明报告进行签名,保证TEE的硬件属性只能在正版的硬件上生成。UE 104能够独立地接收证明报告,验证该证明报告的签名和内容,然后继续提供IAM生成的访问令牌。在硬件不处于有效状态的情况下,这可以防止意外泄漏。另外,如果证明服务支持撤销列表,则UE也可以请求这些撤销列表,以确保给定TEE的证明报告不会因为与令牌绑定远程证明1000的协议无关的操作安全问题而被撤销。
令牌绑定远程证明1000的协议可以包括IAM生成的访问令牌的策略元数据,其中一个属性是访问令牌有效并可用于证明的时间段。如果访问令牌过期,则可以通过根据对应的策略元数据对访问令牌进行额外的有效性检查,将令牌绑定远程证明1000的协议配置为失败。通过对访问令牌的有效性进行时间限制,令牌绑定远程证明1000的协议引入了额外机制,这些机制减少了通过基于SIGMA协议在客户端与服务器之间交互所导致的重放、伪造消息的攻击界面。一旦成功注入中使用了令牌,即使令牌的有效期未过,后端服务也可以与IAM一起使其失效。
本文中使用的术语“关于”和“大约”应理解为包括与标称值的变化,例如,与标称值的±10%变化。应当理解,无论是否具体提及,本文提供的给定值总是包括这种变化。
尽管已经参考本发明的特定特征和实施例描述了本发明,但是明显在不脱离本发明的情况下可以制定本发明的各种修改和组合。因此,说明书和附图仅被视为所附权利要求书限定的对本发明的说明,并且预期覆盖在本发明的范围内的任何和所有修改、变化、组合或等同物。
Claims (18)
1.一种用于在计算环境中执行机器学习(machine learning,ML)应用程序的方法,其特征在于,所述方法包括:
将机密信息从用户计算设备的可信执行环境(trusted execution environment,TEE)接收到服务器的TEE中,其中,所述用户计算设备由身份和访问管理(identity and accessmanagement,IAM)服务进行认证,所述TEE参照限时令牌验证所述机密信息;
将绑定到所述ML应用程序的模型加密密钥(model encryption key,MEK)从模型发布工具的TEE接收到所述服务器的所述TEE中;
将所述ML应用程序的ML模型从所述ML模型发布工具的所述TEE接收到所述服务器的所述TEE中,其中,所述ML模型使用所述MEK进行加密;
所述服务器的所述TEE使用所述MEK对所述ML模型进行解密;
将所述ML应用程序和所述ML应用程序的描述符从注入服务器的TEE接收到所述服务器的所述TEE中,其中,所述描述符使用从所述机密信息中导出的密码密钥进行加密;
使用所述ML模型和所述描述符执行所述ML应用程序。
2.根据权利要求1所述的方法,其特征在于,所述ML模型包括在ML磁盘卷中,所述ML模型使用所述MEK进行加密。
3.根据权利要求2所述的方法,其特征在于,所述MEK绑定到所述ML模型的所有者的用户ID,哈希用于验证所述ML磁盘卷的完整性。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述限时令牌绑定到所述用户计算设备的密码密钥。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
所述用户计算设备向所述服务器发送证明引证请求,其中,所述证明引证请求包括所述限时令牌;
所述用户计算设备从所述服务器接收证明引证,其中,所述证明引证基于所述服务器的所述TEE;
所述用户计算设备向证明服务发送对证明报告的证明报告请求,其中,所述证明报告请求包括所述证明引证和所述访问令牌;
所述用户计算设备接收所述证明报告,其中,所述用户计算设备验证所述证明报告。
6.根据权利要求1至5中任一项所述的方法,其特征在于,所述MEK绑定到所述ML应用程序。
7.根据权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
所述服务器将所述ML模型存储在模型注册表中,其中,所述ML模型密封在所述模型注册表中;
ML-TEE接收所述模型注册表中的所述ML模型,并且对所述ML模型进行解封。
8.根据权利要求1至7中任一项所述的方法,其特征在于,所述方法还包括:
所述服务器使用从所述机密信息中导出的密码密钥对所述ML应用程序描述符进行密封,其中,所述服务器通过注入服务器的TEE和所述服务器的所述TEE之间的安全通道发送所述ML应用程序描述符,所述服务器的所述TEE独立地导出从存储在其中的所述机密信息中导出的所述密码密钥。
9.根据权利要求1至8中任一项所述的方法,其特征在于,所述ML应用程序包括ML引擎和非机密数据,所述ML应用程序使用所述非机密数据在所述ML引擎上执行。
10.一种用于在计算环境中执行机器学习(machine learning,ML)应用程序的***,其特征在于,所述***包括多个计算设备,所述多个计算设备都包括处理器和用于存储指令的非瞬时性存储器,当所述处理器执行所述指令时,所述指令使得所述***执行以下操作:
将机密信息从用户计算设备的可信执行环境(trusted execution environment,TEE)接收到服务器的TEE中,其中,所述用户计算设备由身份和访问管理(identity and accessmanagement,IAM)服务进行认证,所述TEE参照限时令牌验证所述机密信息;
将绑定到所述ML应用程序的模型加密密钥(model encryption key,MEK)从模型发布工具的TEE接收到所述服务器的所述TEE中;
将所述ML应用程序的ML模型从所述ML模型发布工具的所述TEE接收到所述服务器的所述TEE中,其中,所述ML模型使用所述MEK进行加密;
所述服务器的所述TEE使用所述MEK对所述ML模型进行解密;
将所述ML应用程序和所述ML应用程序的描述符从注入服务器的TEE接收到所述服务器的所述TEE中,其中,所述描述符使用从所述机密信息中导出的密码密钥进行加密;
使用所述ML模型和所述描述符执行所述ML应用程序。
11.根据权利要求10所述的***,其特征在于,所述ML模型包括在ML磁盘卷中,所述ML模型使用所述MEK进行加密。
12.根据权利要求11所述的***,其特征在于,所述MEK绑定到所述ML模型的所有者的用户ID,哈希用于验证所述ML磁盘卷的完整性。
13.根据权利要求10至12中任一项所述的***,其特征在于,所述限时令牌绑定到所述用户计算设备的密码密钥。
14.根据权利要求10至13中任一项所述的***,其特征在于,所述指令还使得所述***执行以下操作:
所述用户计算设备向所述服务器发送证明引证请求,其中,所述证明引证请求包括所述限时令牌;
所述用户计算设备从所述服务器接收证明引证,其中,所述证明引证基于所述服务器的所述TEE;
所述用户计算设备向证明服务发送对证明报告的证明报告请求,其中,所述证明报告请求包括所述证明引证和所述访问令牌;
所述用户计算设备接收所述证明报告,其中,所述用户计算设备验证所述证明报告。
15.根据权利要求10至14中任一项所述的***,其特征在于,所述MEK绑定到所述ML应用程序。
16.根据权利要求10至15中任一项所述的***,其特征在于,所述指令还使得所述***执行以下操作:
所述服务器将所述ML模型存储在模型注册表中,其中,所述ML模型密封在所述模型注册表中;
ML-TEE接收所述模型注册表中的所述ML模型,并且对所述ML模型进行解封。
17.根据权利要求10至16中任一项所述的***,其特征在于,所述指令还使得所述***执行以下操作:
所述服务器使用从所述机密信息中导出的密码密钥对所述ML应用程序描述符进行密封,其中,所述服务器通过注入服务器的TEE和所述服务器的所述TEE之间的安全通道发送所述ML应用程序描述符,所述服务器的所述TEE独立地导出从存储在其中的所述机密信息中导出的所述密码密钥。
18.根据权利要求10至17中任一项所述的***,其特征在于,所述ML应用程序包括ML引擎和非机密数据,所述ML应用程序使用所述非机密数据在所述ML引擎上执行。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/066,550 US20220114249A1 (en) | 2020-10-09 | 2020-10-09 | Systems and methods for secure and fast machine learning inference in a trusted execution environment |
US17/066,550 | 2020-10-09 | ||
PCT/CN2020/124596 WO2022073264A1 (en) | 2020-10-09 | 2020-10-29 | Systems and methods for secure and fast machine learning inference in trusted execution environment |
Publications (1)
Publication Number | Publication Date |
---|---|
CN116490868A true CN116490868A (zh) | 2023-07-25 |
Family
ID=81077766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080106023.4A Pending CN116490868A (zh) | 2020-10-09 | 2020-10-29 | 用于可信执行环境中的安全快速机器学习推理的***和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20220114249A1 (zh) |
CN (1) | CN116490868A (zh) |
WO (1) | WO2022073264A1 (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20220164700A1 (en) * | 2020-11-25 | 2022-05-26 | UiPath, Inc. | Robotic process automation architectures and processes for hosting, monitoring, and retraining machine learning models |
US20220321332A1 (en) * | 2021-03-30 | 2022-10-06 | International Business Machines Corporation | Post-quantum cryptography secured execution environments for edge devices |
US11606416B2 (en) * | 2021-03-31 | 2023-03-14 | Telefonaktiebolaget Lm Ericsson (Publ) | Network controlled machine learning in user equipment |
US20230040577A1 (en) * | 2021-08-05 | 2023-02-09 | International Business Machines Corporation | Secure guest image and metadata update |
US20230044731A1 (en) * | 2021-08-05 | 2023-02-09 | International Business Machines Corporation | Attestation of a secure guest |
US20230155817A1 (en) * | 2021-11-15 | 2023-05-18 | Sap Se | Managing secret values using a secrets manager |
US11651287B1 (en) * | 2022-06-13 | 2023-05-16 | Snowflake Inc. | Privacy-preserving multi-party machine learning using a database cleanroom |
WO2023249548A1 (en) * | 2022-06-23 | 2023-12-28 | Canary Bit Ab | Methods and apparatus for data processing in a trusted execution environment |
WO2024000571A1 (en) * | 2022-07-01 | 2024-01-04 | Intel Corporation | Network architecture for artificial intelligence model protection |
CN115580413B (zh) * | 2022-12-07 | 2023-03-17 | 南湖实验室 | 一种零信任的多方数据融合计算方法和装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105095696A (zh) * | 2015-06-25 | 2015-11-25 | 三星电子(中国)研发中心 | 对应用程序进行安全认证的方法、***及设备 |
EP3040924A1 (en) * | 2014-12-30 | 2016-07-06 | Telefonica Digital España, S.L.U. | Method and system for providing device based authentication, integrity and confidentiality for transactions performed by mobile device users |
CN107766724A (zh) * | 2017-10-17 | 2018-03-06 | 华北电力大学 | 一种可信计算机平台软件栈功能架构的构建方法 |
US20180254898A1 (en) * | 2017-03-06 | 2018-09-06 | Rivetz Corp. | Device enrollment protocol |
CN111095256A (zh) * | 2019-04-26 | 2020-05-01 | 阿里巴巴集团控股有限公司 | 在可信执行环境中安全地执行智能合约操作 |
CN111382445A (zh) * | 2020-03-03 | 2020-07-07 | 首都师范大学 | 利用可信执行环境***提供可信服务的方法 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9871663B2 (en) * | 2015-03-25 | 2018-01-16 | Intel Corporation | Challenge response authentication for self encrypting drives |
CN111756754B (zh) * | 2017-07-28 | 2023-04-07 | 创新先进技术有限公司 | 一种训练模型的方法及装置 |
CN109426732B (zh) * | 2017-08-22 | 2021-09-21 | 创新先进技术有限公司 | 一种数据处理方法及装置 |
US20190140846A1 (en) * | 2017-11-03 | 2019-05-09 | Microsoft Technology Licensing, Llc | Provisioning trusted execution environment(s) based on chain of trust including platform |
AU2019277292B2 (en) * | 2018-05-28 | 2024-05-23 | Royal Bank Of Canada | System and method for secure electronic transaction platform |
US10939295B1 (en) * | 2018-08-21 | 2021-03-02 | HYPR Corp. | Secure mobile initiated authentications to web-services |
CN111460453B (zh) * | 2019-01-22 | 2023-12-12 | 百度在线网络技术(北京)有限公司 | 机器学习训练方法、控制器、装置、服务器、终端和介质 |
US11343068B2 (en) * | 2019-02-06 | 2022-05-24 | International Business Machines Corporation | Secure multi-party learning and inferring insights based on encrypted data |
US11423454B2 (en) * | 2019-02-15 | 2022-08-23 | Sateesh Kumar Addepalli | Real-time customizable AI model collaboration and marketplace service over a trusted AI model network |
WO2020206695A1 (en) * | 2019-04-12 | 2020-10-15 | Hangzhou Nuowei Information Technology Co., Ltd. | System for decentralized ownership and secure sharing of personalized health data |
US10846413B2 (en) * | 2019-04-18 | 2020-11-24 | Advanced New Technologies Co., Ltd. | Data processing method and device |
US11763157B2 (en) * | 2019-11-03 | 2023-09-19 | Microsoft Technology Licensing, Llc | Protecting deep learned models |
CN110796267A (zh) * | 2019-11-12 | 2020-02-14 | 支付宝(杭州)信息技术有限公司 | 数据共享的机器学习方法和机器学习装置 |
US11423171B2 (en) * | 2019-12-23 | 2022-08-23 | Intel Corporation | Protection of privacy and data on smart edge devices |
CN111310208A (zh) * | 2020-02-14 | 2020-06-19 | 云从科技集团股份有限公司 | 数据处理方法、***、平台、设备及机器可读介质 |
US11514366B2 (en) * | 2020-09-02 | 2022-11-29 | Microsoft Technology Licensing, Llc | System for content encryption for predictive models trained on private data |
-
2020
- 2020-10-09 US US17/066,550 patent/US20220114249A1/en not_active Abandoned
- 2020-10-29 WO PCT/CN2020/124596 patent/WO2022073264A1/en active Application Filing
- 2020-10-29 CN CN202080106023.4A patent/CN116490868A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP3040924A1 (en) * | 2014-12-30 | 2016-07-06 | Telefonica Digital España, S.L.U. | Method and system for providing device based authentication, integrity and confidentiality for transactions performed by mobile device users |
CN105095696A (zh) * | 2015-06-25 | 2015-11-25 | 三星电子(中国)研发中心 | 对应用程序进行安全认证的方法、***及设备 |
US20180254898A1 (en) * | 2017-03-06 | 2018-09-06 | Rivetz Corp. | Device enrollment protocol |
CN107766724A (zh) * | 2017-10-17 | 2018-03-06 | 华北电力大学 | 一种可信计算机平台软件栈功能架构的构建方法 |
CN111095256A (zh) * | 2019-04-26 | 2020-05-01 | 阿里巴巴集团控股有限公司 | 在可信执行环境中安全地执行智能合约操作 |
CN111382445A (zh) * | 2020-03-03 | 2020-07-07 | 首都师范大学 | 利用可信执行环境***提供可信服务的方法 |
Also Published As
Publication number | Publication date |
---|---|
US20220114249A1 (en) | 2022-04-14 |
WO2022073264A1 (en) | 2022-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2022073264A1 (en) | Systems and methods for secure and fast machine learning inference in trusted execution environment | |
EP2278514B1 (en) | System and method for providing secure virtual machines | |
US10498712B2 (en) | Balancing public and personal security needs | |
US11212095B2 (en) | Allowing restricted external access to devices | |
US10771467B1 (en) | External accessibility for computing devices | |
US9544137B1 (en) | Encrypted boot volume access in resource-on-demand environments | |
US20080077592A1 (en) | method and apparatus for device authentication | |
US20140096213A1 (en) | Method and system for distributed credential usage for android based and other restricted environment devices | |
US11853438B2 (en) | Providing cryptographically secure post-secrets-provisioning services | |
CN113014444B (zh) | 一种物联网设备生产测试***及安全保护方法 | |
CN110401640B (zh) | 一种基于可信计算双体系架构的可信连接方法 | |
WO2024139273A1 (zh) | 联邦学习方法、装置、可读存储介质及电子设备 | |
CN115580413B (zh) | 一种零信任的多方数据融合计算方法和装置 | |
US11398906B2 (en) | Confirming receipt of audit records for audited use of a cryptographic key | |
Shepherd et al. | Remote credential management with mutual attestation for trusted execution environments | |
US11405201B2 (en) | Secure transfer of protected application storage keys with change of trusted computing base | |
US20240193255A1 (en) | Systems and methods of protecting secrets in use with containerized applications | |
Wang et al. | MA-TEECM: Mutual Anonymous Authentication-Based Credential Migration Technology for Mobile Trusted Execution Environments | |
US20240249029A1 (en) | Utilizing hardware tokens in conjunction with HSM for code signing | |
CA3042984C (en) | Balancing public and personal security needs | |
US20230013780A1 (en) | Method and system for permitting one or more features on a computer program | |
Tamrakar et al. | On rehoming the electronic id to TEEs | |
Delaune et al. | Formal Security Analysis of Widevine through the W3C EME Standard | |
Albayati et al. | Profile Based Access Control Model Using JSON Web Tokens | |
Alawneh | Mitigating the risk of insider threats when sharing credentials. |
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 |