CN110472440A - 对ai系统和其它异构系统的安全执行支持的方法和装置 - Google Patents
对ai系统和其它异构系统的安全执行支持的方法和装置 Download PDFInfo
- Publication number
- CN110472440A CN110472440A CN201910387553.XA CN201910387553A CN110472440A CN 110472440 A CN110472440 A CN 110472440A CN 201910387553 A CN201910387553 A CN 201910387553A CN 110472440 A CN110472440 A CN 110472440A
- Authority
- CN
- China
- Prior art keywords
- processor
- security object
- computer
- information
- security
- 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.)
- Granted
Links
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/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6209—Protecting access to data via a platform, e.g. using keys or access control rules to a single file or object, e.g. in a secure envelope, encrypted and accessed using a key, or with access control rules appended to the object itself
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- 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/606—Protecting data by securing the transmission between two devices or processes
-
- 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
-
- 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
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/547—Remote procedure calls [RPC]; Web services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/509—Offload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Mathematical Physics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本发明涉及一种对AI系统和其它异构系统的安全执行支持的方法和装置。一种用于保护安全对象的方法,所述安全对象被保护以免受包括多个不同类型的处理器的异构数据处理系统上的其它软件的攻击,其中,安全对象的不同部分可在不同类型的处理器上运行。安全对象可以在第一处理器上开始执行,然后取决于应用要求,所述安全对象可以使用特殊处理器间功能调用来调用第二处理器,从而将信息传递到所述第二处理器。所述第二处理器执行所请求的处理,然后执行处理器间“功能返回”,从而适当地将信息返回到所述第一处理器上的所述安全对象。
Description
相关申请的交叉引用
本申请涉及、参考以下专利申请(所有这些专利申请在此引入作为参考):2009年6月26日提交的Richard H.Boivie的序列号为12/492,738的美国专利申请,标题为“Supportfor Secure Objects in a Computer System(对计算机系统中的安全对象的支持)”,现在作为美国专利8,819,446公告;2010年9月9日提交的Richard H.Boivie的序列号为12/878,696的美国专利申请,标题为“Cache Structure for a Computer System ProvidingSupport for Secure Objects(用于提供对安全对象的支持的计算机系统的高速缓存结构)”,现在作为美国专利9,298,894公告;2011年2月23日提交的Boivie和Williams的序列号为13/033,367的美国专利申请,标题为“Secure Object Having Protected Region,Integrity Tree and Unprotected Region(具有受保护的区域、完整性树和未受保护的区域的安全对象)”,现在作为美国专利8,578,175公告;2011年2月23日提交的Boivie和Williams的序列号为13/033,455的美国专利申请,标题为“Building and DistributingSecure Object Software(构建和分发安全对象软件)”,现在作为美国专利8,954,752公告;2011年9月6日提交的Boivie和Pendarakis的序列号为13/226,079的美国专利申请,标题为“Protecting Application Programs from Malicious Software or Malware(保护应用程序以免受恶意软件的攻击)”,现在作为美国专利9,846,789公告;以及2015年8月28日提交的Boivie等人的序列号为14/839,691的美国专利申请,标题为“System and Methodfor Supporting Secure Objects Using a Memory Access Control Monitor(用于使用存储访问控制监视器支持安全对象的系统和方法)”。
技术领域
所公开的发明一般地涉及安全执行支持的实施例,更具体地说,但不作为限制,涉及使用对人工智能(AI)系统和其它异构系统的安全执行支持。
背景技术
近年来,计算机系统越来越多地受到各种形式的黑客行为和恶意软件的攻击。为了解决这个问题,引入包括代码和数据的“安全对象”的概念,安全对象被加密保护以免受包括攻击者能够引入目标计算机系统中的任何恶意软件的计算机系统上的其它软件的攻击。先前已在在此引入作为参考的专利申请中讨论了安全对象和用于支持这些安全对象的计算机架构。
在过去几年中,计算机系统已变得更加异构,除了传统CPU(中央处理单元)之外,还包括其它类型的特殊处理器,例如GPU(图形处理单元)和用于人工智能应用的专用处理单元,例如ANN(人工神经网络)和TPU(谷歌张量处理单元)。
随着系统变得更加异构,需要保护在这些异构系统上运行的应用的安全性。
发明内容
鉴于上述背景技术的前述和其它问题、劣势、以及缺点,所公开的发明的一个示例性方面提供对人工智能(AI)系统和其它异构系统的安全执行支持。
本发明的一个方面是提供对安全对象的支持,所述安全对象被保护以免受包括多个不同类型的处理器的异构数据处理系统上的其它软件的攻击,其中,安全对象的不同部分能够在不同类型的处理器上运行。安全对象可以在第一处理器上开始执行,然后取决于应用要求,所述安全对象可以使用特殊处理器间功能调用来调用第二处理器,从而将信息传递到所述第二处理器。所述第二处理器执行所请求的处理,然后执行处理器间“功能返回”,从而适当地将“返回值”返回到所述第一处理器上的所述安全对象。所述第二处理器上的处理可以被认为是所述第一处理器上的所述安全对象的“扩展”。
本发明的另一个方面提供一种用于保护数据处理系统的方法,所述方法包括:在第一处理器上提供包括代码和数据的安全对象,所述安全对象被保护以免受所述数据处理系统上的其它软件的攻击,所述第一处理器是第一类型的处理器,其中,所述数据处理系统具有多个不同类型的处理器;在所述第一处理器上开始执行所述安全对象;响应于所述安全对象的一部分需要在第二处理器上执行,由所述第一处理器在特殊调用中调用所述第二处理器,所述第二处理器是第二类型的处理器;由所述第二处理器向所述第一处理器返回用于所述安全对象的完整性根的新值;以及由所述第一处理器使用加密密钥和所述完整性根来从系统存储器中取得加密信息。
所公开的发明的另一个示例方面是提供一种计算机可读介质,其存储一种用于保护异构数据处理系统上的安全对象的方法,所述异构数据处理系统包括多个不同类型的处理器,其中,安全对象的不同部分能够在不同类型的处理器上运行,其中,安全对象可以在第一处理器上开始执行,然后取决于应用要求,所述安全对象可以经由特殊的处理器间功能调用来调用第二处理器,从而将信息传递到所述第二处理器。所述第二处理器执行所请求的处理,然后执行处理器间“功能返回”,从而适当地将“返回值”返回到所述第一处理器上的所述安全对象。
所公开的发明的另一个示例方面是提供一种计算机可读介质,其存储一种用于保护数据处理系统的方法,所述方法包括:在第一处理器上提供包括代码和数据的安全对象,所述安全对象被保护以免受所述数据处理系统上的其它软件的攻击,所述第一处理器是第一类型的处理器,其中,所述数据处理系统具有多个不同类型的处理器;在所述第一处理器上开始执行所述安全对象;响应于所述安全对象的一部分需要在第二处理器上执行,由所述第一处理器在特殊调用中调用所述第二处理器,所述第二处理器是第二类型的处理器;由所述第二处理器向所述第一处理器返回用于所述安全对象的完整性根的新值;以及由所述第一处理器使用加密密钥和所述完整性根来从系统存储器中取得加密信息。
因此,已相当广泛地概述了本发明的某些实施例,以便可以更好地理解此处对这些实施例的详细描述,以及可以更好地理解对本领域的目前贡献。当然,存在本发明的额外实施例,这些实施例将在下面描述并且将形成所附权利要求的主题。
要理解,本发明的应用并不限于在下面描述中给出或者在附图中示出的构造细节和组件布置。本发明能够适用于除了所述实施例之外的实施例,并且能够以各种方式实施和执行。此外,要理解,在此采用的措辞和术语、以及抽象用于描述目的并且不应该被视为限制。
因此,本领域的技术人员将理解,本公开所基于的概念可以容易地用作设计用于实现本发明的多个目的的其它结构、方法和系统的基础。因此,重要的是,权利要求被视为包括这种等效构造,只要它们不偏离本发明的精神和范围。
附图说明
从以下参考附图对本发明示例性实施例的详细描述,将更好地理解本发明的示例性方面,这些附图是:
图1示出包括被加密保护以免受其它软件的攻击的代码和数据的安全对象100的高级语言描述;
图2是安全对象的低级实现200(例如,编译版本)的图;
图3示出提供对安全对象的支持的微处理器的示例框图300;
图4示出包括基于安全对象的软件的可执行文件400的示例格式;
图5示出第一示例实施例的系统500;
图6示出第二示例实施例的系统600;
图7示出系统500和600的示例方法;
图8示出用于在其中包括本发明的示例性实施例的示例性硬件/信息处理系统;
图9示出用于存储实现根据本发明示例性实施例的方法的程序的机器可读指令的非瞬时性信号承载存储介质。
具体实施方式
现在将参考附图描述本发明,其中在附图内相同的参考标号指相同的部件。要强调的是,根据惯例,附图的各种特性不一定按比例。相反,为了清晰起见,可以任意地扩展或减小各种特性的尺寸。下面提供示例性实施例是为了说明目的而不是限制权利要求。
存在包括代码和数据的被保护以免受系统上的其它软件的攻击的安全对象的概念。与其它面向对象的编程语言中的对象一样,安全对象包含数据以及操纵和提供对该数据的访问的代码。安全对象不同于现有编程语言(例如Java)中的对象,因为安全对象的私有代码和数据被密码保护,以使得其它软件不能访问安全对象的私有信息。
图1提供安全对象100在高级编程语言中可能看起来像什么的示例。该安全对象包括私有数据101和私有方法102、以及允许通过安全对象的公共接口103、105来访问安全对象的方法。安全对象可以由其它软件使用(即,其它软件可以“调用”安全对象或者向安全对象“发送消息”),但其它软件只能通过安全对象的公共接口103、105来访问安全对象。
在基于安全对象的系统的一个实施例中,私有信息几乎始终被加密。当私有信息在内存中以及在磁盘上(无论是在分页系统还是在文件系统中)时,私有信息都被加密。
图2示出安全对象的编译版本200可能如何出现在存储器中。安全对象的私有信息仅在从安全对象内部访问私有信息以及仅当该信息在微处理器内部时才为“明文”。
因为任何其它代码不能访问安全对象的私有信息,所以通过另一个软件模块中的漏洞而进入系统的软件攻击无法访问安全对象的私有信息的未加密版本。如图2中所示,加密的私有信息可以包括与图1中的私有代码102和私有数据101相对应的私有代码以及私有数据。
例如,设计可以包括用于进入和离开安全对象的方法的两个新指令:即,分别用于“进入安全方法”和“离开安全方法”的“esm”和“lsm”。
“esm”指令将加密密钥信息加载到特殊寄存器中,这些特殊寄存器用于在安全对象的私有代码和数据从存储器移动到微处理器中时,对代码和数据进行解密。其它数据(例如被传递到方法的参数和当调用安全对象时被保存的返回地址)在没有该解密的情况下被访问。
图3是提供对安全对象的支持的微处理器301的框图300。该微处理器执行代码非常类似于当今常用的微处理器,但包括加密引擎302,其用于(1)在敏感信息从外部存储器303移动到L1高速缓存304中时,对该信息进行解密,以及(2)在敏感信息从L1高速缓存304移动到外部存储器303时,对敏感信息进行加密。该加密用于确保包括病毒、蠕虫和其它“攻击软件”的其它软件将不能访问未加密版本的敏感信息。
图3还示出在加密引擎内标记为“密钥”的块305,其保存在加密和解密过程中使用的密钥。密钥块可能包括专门指定用于保存这些密钥的一组加密寄存器。注意,加密引擎302可以是与处理器307关联的协处理器,或者加密引擎可以是由CPU处理器本身执行的功能。
“lsm”指令(其可以仅包括操作码)恢复特殊加密寄存器305的先前状态,以使得当安全方法返回时,普通的非安全代码可以在没有这种加密和解密的情况下执行。
在安全对象系统中,用于对安全对象的私有信息进行解密的密钥305对安全对象可用,但这些密钥对任何其它代码不可用。
现在转到示例实施例,安全对象可以用于保护应用或应用的敏感部分的机密性和完整性。安全对象还可以用于保护软件容器(例如Docker容器),以及保护支持多个虚拟机的并发执行的系统上的虚拟机。
随着系统变得更加异构,除了CPU之外,还引入其它类型的处理器,例如GPU(图形处理单元)、ANN(人工神经网络)、FPGA(现场可编程门阵列)、TPU(张量处理单元)、IBM Q(量子)处理器等,需要保护在异构系统上运行的应用的机密性和完整性。
如在在此引入作为参考的先前专利申请中讨论的,基于CPU的系统能够使用加密和完整性树(如果加密密钥和完整性树的根被保护以免受其它软件的攻击)来保护安全对象的机密性和完整性以免受系统上的其它软件的攻击。加密密钥和完整性树可以由硬件或硬件和固件的组合来管理。例如,硬件和固件可以在CPU中,或者在CPU中运行。
但是,在异构系统中,其它类型的处理器将需要能够访问未加密形式的安全对象的信息,以及可能需要访问安全对象的加密密钥和完整性根(当保护该信息以免受其它软件的攻击时)。
图4示出包括基于安全对象的软件的可执行文件400的示例性格式。该文件包含(1)加密形式的安全对象代码和数据401,(2)初始版本的完整性树402,其将在运行时用于保护安全对象的代码和数据的完整性,以及(3)加载器代码,其包括用于“进入安全模式”的“esm”指令(在403中)。“esm”指令允许在从外部存储器到CPU的路径上对安全对象的敏感信息进行解密,以及在从CPU到外部存储器的路径上对安全对象的敏感信息进行加密。
图4还示出未受保护的区域403中的通信缓冲器。这将在下面更详细地讨论。因此,在图4中,二进制文件的无阴影区域403是未受保护的区域,其包括加载器、包含“esm”操作数(或句柄)的“esm”指令、以及通信缓冲器。阴影区域包括完整性树402和加密区域401,加密区域401包括代码、数据、堆栈、以及堆数据中的一者或多者。该文件可能采取标准可执行格式,例如ELF。代码和数据被加密,以使得仅目标CPU能够读取加密区域并且仅在安全模式下读取。
用于安全对象的二进制文件包含安全对象的加密代码和数据401、初始完整性树402、以及未受保护的区域403,未受保护的区域403包括通信缓冲器、加载器代码以及将用于在运行时进入安全模式的“esm”指令。
在图5中所示的本发明的第一示例实施例中,系统500将包括系统存储器502,系统存储器502可由各种处理器访问,这些处理器例如包括一个或多个CPU(中央处理单元)510、GPU(图形处理单元)512、ANN(人工神经网络)、FPGA(现场可编程门阵列)514、TPU(张量处理单元)、IBM Q(量子)处理器或其它量子处理器516、ECC(椭圆曲线加密)处理器518等。安全对象的私有信息将在在该系统存储器502中时被加密保护,并且该信息将以未加密形式仅对具有安全对象的加密密钥的处理器可用。此外,该私有信息仅可由具有安全对象的加密密钥和完整性树的根两者的处理器以随后不会导致完整性异常的方式写入。
系统存储器502还可以包括“未受保护的存储器”504,安全对象可以将未受保护的存储器504用于通信缓冲器以与其它实体通信。该未受保护的存储器504中的信息不受安全对象保护机制的保护,尽管安全对象通常将借助诸如SSL/TLS(安全套接字层/传输安全层)、IPsec(网际协议安全性)或dm-crypt(透明磁盘加密子系统)之类的其它手段来保护它放置在未受保护的存储器504的该区域中的信息,如在先前专利申请中讨论的那样。
在该示例实施例中,安全对象将在CPU(中央处理单元)510上开始执行。例如,当将要在诸如GPU(图形处理单元)512或TPU(张量处理单元)之类的特殊处理器上完成处理的某个部分时,CPU 510将经由“硬件子例程调用”来“调用”特殊处理器512至518。该“调用”将包括正在被调用的处理器的指示、正在被调用的特定功能的指示、将要被处理的数据在系统存储器中的地址(多个)、以及可以存储返回值的系统存储器502中的地址(多个)。“调用”还将安全对象的加密密钥和完整性根安全地传递到特殊处理器,以使得特殊处理器能够访问和更新系统存储器510中的安全对象的受加密保护的信息。在该实施例中,诸如GPU(图形处理单元)512、FPGA(现场可编程门阵列)514、Q处理器(量子处理器)516、以及ECC(椭圆曲线加密)处理器518之类的特殊处理器分别包括加密引擎520、522、524、526、以及528,当从系统存储器502读取时,这些加密引擎对信息进行解密并且检查完整性,以及当写入系统存储器502时,这些加密引擎对信息进行加密并且更新完整性值,如在先前申请中讨论的那样。当特殊处理器512至518完成所请求的处理时,它将向CPU 510“返回”任何返回值以及用于安全对象的完整性树的根的新值。此时,安全对象可以在CPU 510上恢复执行,并访问和更新其在系统存储器502中的受加密保护的信息,该信息包括由特殊处理器(512至518)写入的任何信息,并且CPU 510将能够完成该操作而不会导致完整性异常。
根据需要,CPU 510还将能够“调用”其它特殊处理器512至518。“调用”和“返回”可以被实现为处理器间中断。传递到“硬件子例程调用”或者从“硬件子例程调用”返回的信息可以在受加密保护的系统存储器506中传递,并且加密密钥和完整性树的根可以在系统引导时在CPU与特殊处理器之间协商的密钥下经由TLS(传输层安全性)之类的标准通信安全机制来安全地传递。可以经由PCIe(快速外围组件互连)之类的处理器间通信机制或者通过“未受保护的”系统存储器504来传输TLS分组。
当然,本示例实施例并不限于特殊“人工智能”处理器。它还能够支持其它类型的特殊处理器。设计能够包括ECC(椭圆曲线加密)处理器(如图5中所示)、或者用于生成和验证数字签名的RSA(Rivest Shamir Adleman)处理器。
在图6中所示的第二示例实施例中,安全对象的敏感信息在系统存储器602中未被加密,但使用访问控制机制来控制对该存储器602的访问,如在序列号为14/839,691的美国专利申请中讨论的那样。在该第二示例实施例中,存储页面被标记有拥有该页面的安全对象的ID,以及当安全对象“调用”特殊处理器512至518时,安全对象的ID被安全地传递到特殊处理器512至518。该安全对象ID允许特殊处理器512至518访问安全对象的存储器,并且因为存储器未被加密,所以特殊处理器512至518可以在系统存储器602中读取和写入安全对象的受保护的信息,而不必对该信息进行解密或加密,并且不必检查或生成完整性值。当受保护的信息由特殊处理器512至518访问,或者由没有适当安全对象ID的CPU 510的CPU线程访问时,将发生CPU 510异常,这将允许CPU 510上的固件干预和处理异常。例如,如果磁盘驱动程序或磁盘固件尝试读取受保护的内存页以将其页出到磁盘,则例如CPU 510上的固件可以捕获异常并且对页面进行加密,然后允许磁盘驱动程序或磁盘固件读取页面以将其页出。
如果特殊处理器(例如512至518)仅包含可信硬件和固件,则上述示例实施例便已足够。但是,如果应用可以将它们自己的软件加载到特殊处理器512至518中,则需要额外机制来确保该潜在的恶意软件不能危及其它安全应用的私有信息。例如,当特殊处理器512至518上的一个安全对象获取访问系统存储器中的安全对象的私有信息所需的信息(例如第一示例实施例中的加密密钥和完整性根或者第二示例实施例中的安全对象的ID)时,该信息(在本专利申请的其余部分中,将被称为用于访问安全对象的私有信息的“访问密钥”)不应当对可能在特殊处理器上运行的其它软件可用。
当CPU 510上的安全对象对特殊处理器512至518进行“调用”时,访问系统存储器502或602中的安全对象的私有信息所需的“访问密钥”可以从CPU 510上的可信固件安全地传递到特殊处理器512至518上的可信固件。特殊处理器512至518上的可信固件可以使用该信息以使系统存储器502或602中将要被处理的数据可用于“被调用的”功能。固件可以通过以下方式来完成该操作:例如从系统存储器502或602获得信息并将其传递到“被调用的”功能,或者在特殊处理器512至518上配置访问控制硬件或加密硬件,以使得“被调用的”功能能够直接访问系统存储器502或602中的安全对象信息。
但是,可信固件将不向任何不可信软件提供“访问密钥”。此外,当特殊处理器512至518上的“被调用的”功能“返回”到CPU 510时,可信固件能够清除曾由“被调用的”功能使用的特殊处理器上的任何寄存器和任何存储器,以删除安全对象的私有信息的任何痕迹,以便保护该信息以免受随后可能在特殊处理器512至518上运行的任何不可信软件的攻击。在“返回”到CPU 510之前,可信固件还能够删除特殊处理器512至518上的“访问密钥”。
如果特殊处理器512至518可以同时处理多个请求,则特殊处理器512至518还应具有保护一个“调用”的数据和处理/将一个“调用”的数据和处理与其它“调用”的数据和处理相隔离的手段。这可以例如经由标准存储器管理机制或者经由在先前申请中讨论的安全对象机制来完成。
安全对象可以通过传递长度信息以及参数的地址(多个),限制它向特殊处理器512至518公开的私有信息量。特殊处理器512至518上的可信固件能够确保特殊处理器512至518上“被调用的”功能仅看到它应该看到的数据。在上面的第二示例实施例中,固件可以通过在特殊处理器512至518上适当地配置访问控制机制来完成该操作。在上面的第一示例实施例中,可信固件能够对系统存储器中的一个或多个适当块进行解密,然后仅将在“调用”中指定的那些字节传递到被调用的功能。
特殊处理器512至518上的可信固件例如能够“内置”在特殊处理器512至518上的ROM(只读存储器)中。备选地,TPM(由可信计算组织定义的可信平台模块)能够用于经由行业中公知的技术,使用可信固件安全地引导特殊处理器512至518。安全引导过程保证将适当的固件和数据加载到特殊处理器512至518中。加载的数据可以包括公钥和/或数字证书,安全处理器可以使用它们来验证其它实体,例如异构系统500或600中的CPU 510。因为TPM还能够将机密“密封”成可信状态,所以安全引导过程还能够向安全处理器提供机密,例如安全处理器能够用于向诸如CPU 510之类的其它实体证明其身份的私钥。可以使用公钥或数字证书和私钥来建立安全通道,CPU 510和特殊处理器512至518能够在运行时使用该安全通道来安全地传送敏感信息,例如上面讨论的加密密钥、完整性根和安全对象ID。
还可以将其它类型的信息加载到特殊处理器512至518中,例如可能用于在专用RSA(Rivest Shamir Adleman)公钥加密引擎上计算数字签名的微代码、用于FPGA的编程、或者ANN(人工神经网络)模型的连接性、权重和阈值等。
可以使用诸如由可信计算组织定义的“可信引导”或“安全引导”过程之类的标准技术,在系统引导时将该“功能”加载到特殊处理器512至518中。还可以在运行时经由来自安全对象或来自CPU 510上的普通应用的“调用”来加载功能。在这种情况下,“调用”将指定系统存储器中应该被加载到特殊处理器512至518中的信息的地址(多个)和长度(多个),特殊处理器512到518上的固件然后将该信息加载到特殊处理器512至518。然后,来自安全对象或普通应用的后续调用可以使用被加载到特殊处理器512至518中的功能来处理其它数据。这允许安全对象在特殊处理器上加载和使用敏感功能(例如敏感ANN模型)以及敏感数据,同时保护功能和数据两者以免受其它软件的攻击。
图7示出系统500和600(参考图5和6)的示例方法。一种用于保护异构数据处理系统500或600(其包括多个不同类型的处理器,其中安全对象的不同部分能够在不同类型的处理器上运行)上的安全对象的方法包括:针对异构系统构建安全对象(在步骤702中),在诸如CPU 510之类的第一处理器上开始执行安全对象(步骤704),然后取决于应用要求,安全对象可以对第二处理器(例如专用处理器512-518)做出处理器间功能调用,从而经由处理器间功能调用将要被处理的信息传递到第二处理器(步骤706)。
然后,第二处理器执行所请求的处理(步骤708),以及执行处理器间功能返回,从而适当地将信息返回到第一处理器上的安全对象(步骤710)。然后,安全对象在第一处理器上恢复执行(步骤712)。
特殊调用能够包括被调用的第二处理器(专用处理器512至518)的指示、被请求的特定功能的指示以及应该被处理的数据。调用能够包括图5中所示的第一实施例中的安全对象的加密密钥和完整性值。调用能够包括图6中所示的第二实施例中的安全对象ID。数据处理系统能够是人工智能系统。第二类型处理器能够是专用处理器,例如GPU或TPU、或者其它专用处理器512至518。能够在系统500或600的步骤700中进行其它替换或改变。
另一示例性硬件实现
图8示出根据本发明并优选地具有能够以软件程序的形式实现本发明技术的至少一个处理器或中央处理单元(CPU)1110的信息处理/计算机系统1100的另一硬件配置。
CPU 1110经由系统总线1112互连到随机存取存储器(RAM)1114、只读存储器(ROM)1116、输入/输出(I/O)适配器1118(用于将诸如磁盘机1121和磁带驱动器1140之类的外围设备连接到总线1112)、用户接口适配器1122(用于将键盘1124、鼠标1126、扬声器1128、麦克风1132、和/或其它用户接口设备连接到总线1112)、通信适配器1134(用于将信息处理系统连接到数据处理网络、因特网、内联网、个人区域网络(PAN)等)、以及显示适配器1136(用于将总线1112连接到显示设备1138和/或打印机1139(例如,数字打印机等))。
除了上述硬件/软件环境之外,本发明的不同方面还包括用于执行上面方法的计算机实现的方法。作为一个示例,该方法可以在上面讨论的特定环境中实现。
例如,可以通过操作由数字数据处理装置体现的计算机来实现这种方法,以执行一系列机器可读指令。这些指令可以驻留在各种类型的信号承载介质中。
因此,本发明的此方面涉及一种包括信号承载存储介质的编程产品,信号承载存储介质有形地包含机器可读指令程序,该程序能够由包括以上CPU 1110和硬件的数字数据处理器执行以执行本发明的方法。
该信号承载存储介质例如可以包括在CPU 1110内包含的例如由快速存取存储装置表示的RAM。
备选地,指令可以包含在能够直接或间接由CPU 1211访问的另一个信号承载介质1200中,例如数据存储磁盘1210或存储光盘1220(图9)。
无论包含在磁盘1210、光盘1220、计算机/CPU 1110还是其它位置中,指令都可以存储在各种机器可读数据存储介质中,例如DASD存储装置(例如,常规“硬盘驱动器”或RAID阵列)、磁带、电子只读存储器(例如,ROM、EPROM、或者EEPROM)、光存储设备(例如,CD-ROM、WORM、DVD、数字光学磁带等)、纸质“穿孔”卡、或者其它合适的信号承载介质,包括传输介质中的存储设备(例如通信链路和无线设备),并且采取各种格式(例如数字和模拟格式)。在本发明的一个说明性实施例中,机器可读指令可以包括软件目标代码。
因此,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是—但不限于—电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其它自由传播的电磁波、通过波导或其它传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机可读程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。
也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其它设备以特定方式工作,从而,存储有指令的计算机可读存储介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
从详细说明书中,本发明的许多特性和优势显而易见,因此,所附权利要求旨在覆盖落入本发明的真正精神和范围内的本发明的所有这些特性和优势。此外,因为本领域的技术人员将容易想到许多修改和变化,所以不希望将本发明限于示出和描述的确切构造和操作,因此,可以采取落入本发明的范围内的所有合适修改物和等同物。
Claims (14)
1.一种用于提供对数据处理系统上的安全对象的支持的方法,包括:
在第一处理器上提供包括代码和数据的安全对象,所述安全对象被保护以免受所述数据处理系统上的其它软件的攻击,所述第一处理器是第一类型的处理器,其中,所述数据处理系统具有多个不同类型的处理器;
在所述第一处理器上开始执行所述安全对象;
响应于所述安全对象的一部分需要在第二处理器上执行,由所述第一处理器在特殊调用中调用所述第二处理器,所述第二处理器是第二类型的处理器;
由所述第二处理器向所述第一处理器返回信息;以及
由所述第一处理器从系统存储器中取得所述信息。
2.根据权利要求1所述的方法,其中,所述特殊调用将加密密钥和完整性值从所述第一处理器传递到所述第二处理器,所述第二处理器使用所述加密密钥和所述完整性值来访问系统存储器中的受加密保护的区域。
3.根据权利要求1所述的方法,其中,所述特殊调用将安全对象ID从所述第一处理器传递到所述第二处理器,所述第二处理器使用所述安全对象ID来访问系统存储器中的受保护的区域。
4.根据权利要求2所述的方法,其中,所述第二处理器执行在所述特殊调用中请求的处理,将由所述处理产生的加密信息存储在系统存储器中。
5.根据权利要求2所述的方法,其中,所述返回包括用于所述安全对象的完整性值。
6.根据权利要求1所述的方法,其中,所述特殊调用包括被调用的特定处理器的指示、被请求的特定功能的指示以及应当被处理的数据。
7.根据权利要求1所述的方法,其中,所述数据处理系统是人工智能系统。
8.根据权利要求1所述的方法,其中,所述第二类型的处理器是以下中的一者:中央处理单元、图形处理单元、张量处理单元、现场可编程门阵列、人工神经网络、量子处理器、以及加密处理器。
9.根据权利要求1所述的方法,其中,所述第二类型的处理器是专用处理器,所述第一类型的处理器是中央处理单元CPU。
10.一种安全对象装置,其提供对安全对象的支持,所述安全对象被保护以免受异构数据处理系统上的其它软件的攻击,所述安全对象装置包括:
多个不同类型的处理器,包括至少第一处理器和第二处理器,其中,安全对象的不同部分在不同类型的处理器上运行,
其中,所述安全对象开始在第一处理器上执行,然后取决于应用要求,所述安全对象使用预定的处理器间功能调用来调用第二处理器,从而将信息传递到所述第二处理器,以及
其中,所述第二处理器执行所请求的处理,然后执行处理器间功能返回,从而将值返回到所述第一处理器上的所述安全对象。
11.根据权利要求10所述的安全对象装置,还包括:能够由所述多个处理器访问的系统存储器,
其中,所述系统存储器包括未受保护的存储器和受加密保护的系统存储器,
其中,安全对象的私有信息在所述受加密保护的存储器中被加密保护,所述私有信息仅以未加密的形式对具有安全对象的加密密钥的处理器可用,以及
其中,所述安全对象将未受保护的存储器用于通信缓冲器以与其它实体通信。
12.一种用于提供对数据处理系统上的安全对象的支持的计算机程序产品,所述计算机程序产品包括:
一个或多个计算机可读存储设备和程序指令,所述程序指令存储在所述一个或多个计算机可读存储设备的至少一个中以由计算机系统的至少一个或多个计算机处理器执行,所述程序指令在由所述一个或多个计算机处理器中的至少一个执行时使得所述计算机系统执行根据权利要求1至9中任一项所述的方法。
13.一种用于提供对数据处理系统上的安全对象的支持的计算机系统,所述计算机系统包括:
一个或多个计算机处理器、一个或多个计算机可读存储介质、以及程序指令,所述程序指令存储在一个或多个所述计算机可读存储介质上以由所述一个或多个计算机处理器中的至少一个执行,所述程序指令在由所述一个或多个计算机处理器中的所述至少一个执行时使得所述计算机系统执行根据权利要求1至9中任一项所述的方法。
14.一种用于提供对数据处理系统上的安全对象的支持的计算机系统,所述计算机系统包括用于执行根据权利要求1至9中任一项所述的方法的步骤的模块。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/977,429 US11520913B2 (en) | 2018-05-11 | 2018-05-11 | Secure execution support for A.I. systems (and other heterogeneous systems) |
US15/977429 | 2018-05-11 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110472440A true CN110472440A (zh) | 2019-11-19 |
CN110472440B CN110472440B (zh) | 2023-09-01 |
Family
ID=68463607
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910387553.XA Active CN110472440B (zh) | 2018-05-11 | 2019-05-10 | 对ai系统和其它异构系统的安全执行支持的方法和装置 |
Country Status (2)
Country | Link |
---|---|
US (2) | US11520913B2 (zh) |
CN (1) | CN110472440B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11789699B2 (en) | 2018-03-07 | 2023-10-17 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US11392802B2 (en) | 2018-03-07 | 2022-07-19 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11210375B2 (en) | 2018-03-07 | 2021-12-28 | Private Identity Llc | Systems and methods for biometric processing with liveness |
US11502841B2 (en) | 2018-03-07 | 2022-11-15 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11170084B2 (en) | 2018-06-28 | 2021-11-09 | Private Identity Llc | Biometric authentication |
US11138333B2 (en) | 2018-03-07 | 2021-10-05 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US10721070B2 (en) | 2018-03-07 | 2020-07-21 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11265168B2 (en) | 2018-03-07 | 2022-03-01 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11394552B2 (en) | 2018-03-07 | 2022-07-19 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11489866B2 (en) * | 2018-03-07 | 2022-11-01 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US10938852B1 (en) * | 2020-08-14 | 2021-03-02 | Private Identity Llc | Systems and methods for private authentication with helper networks |
WO2019227208A1 (en) * | 2018-05-28 | 2019-12-05 | Royal Bank Of Canada | System and method for secure electronic transaction platform |
US10922439B2 (en) * | 2018-06-29 | 2021-02-16 | Intel Corporation | Technologies for verifying memory integrity across multiple memory regions |
US11436342B2 (en) | 2019-12-26 | 2022-09-06 | Intel Corporation | TDX islands with self-contained scope enabling TDX KeyID scaling |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060130128A1 (en) * | 2002-07-01 | 2006-06-15 | Emir Gorancic | Process for compiling and executing software applications in a multi-processor environment |
CN101145173A (zh) * | 2006-09-12 | 2008-03-19 | 国际商业机器公司 | 安全地保存和还原安全程序加载程序上下文的系统及方法 |
CN102428473A (zh) * | 2009-06-26 | 2012-04-25 | 国际商业机器公司 | 用于计算机系统中安全对象的支持 |
US20120216051A1 (en) * | 2011-02-23 | 2012-08-23 | International Business Machines Corporation | Building and distributing secure object software |
US20140007044A1 (en) * | 2012-07-02 | 2014-01-02 | Lsi Corporation | Source Code Generator for Software Development and Testing for Multi-Processor Environments |
US20160171250A1 (en) * | 2009-06-26 | 2016-06-16 | International Business Machines Corporation | System and method for supporting secure objects using a memory access control monitor |
EP3242241A1 (en) * | 2016-05-06 | 2017-11-08 | The Boeing Company | Information assurance system for secure program execution |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5892900A (en) | 1996-08-30 | 1999-04-06 | Intertrust Technologies Corp. | Systems and methods for secure transaction management and electronic rights protection |
WO2007088582A1 (ja) * | 2006-01-31 | 2007-08-09 | Fujitsu Limited | 共有メモリ型マルチプロセッサにおける非同期遠隔手続き呼び出し方法、非同期遠隔手続き呼び出しプログラムおよび記録媒体 |
US9489541B2 (en) * | 2011-09-09 | 2016-11-08 | Nvidia Corporation | Content protection via online servers and code execution in a secure operating system |
US9171170B2 (en) * | 2012-08-17 | 2015-10-27 | Broadcom Corporation | Data and key separation using a secure central processing unit |
US9141823B2 (en) | 2013-03-15 | 2015-09-22 | Veridicom, Sa De Cv | Abstraction layer for default encryption with orthogonal encryption logic session object; and automated authentication, with a method for online litigation |
US9736147B1 (en) | 2013-04-08 | 2017-08-15 | Titanium Crypt, Inc. | Artificial intelligence encryption model (AIEM) with device authorization and attack detection (DAAAD) |
CN103399729B (zh) * | 2013-06-28 | 2016-04-27 | 广州市动景计算机科技有限公司 | 一种HTML5 Canvas应用处理方法、装置及处理器 |
CN104714923B (zh) * | 2013-12-17 | 2018-04-20 | 华为技术有限公司 | 一种实现设备共享的方法和装置 |
US9652390B2 (en) * | 2014-08-05 | 2017-05-16 | Advanced Micro Devices, Inc. | Moving data between caches in a heterogeneous processor system |
KR101566145B1 (ko) * | 2014-10-23 | 2015-11-06 | 숭실대학교산학협력단 | 모바일 기기 및 상기 모바일 기기의 동작 방법 |
JP2017010347A (ja) * | 2015-06-24 | 2017-01-12 | 株式会社東芝 | 情報処理装置 |
GB201522315D0 (en) * | 2015-12-17 | 2016-02-03 | Irdeto Bv | Securing webpages, webapps and applications |
EP3185168A1 (en) * | 2015-12-24 | 2017-06-28 | Gemalto Sa | Method and system for enhancing the security of a transaction |
US10289853B2 (en) * | 2016-03-31 | 2019-05-14 | Microsoft Technology Licensing, Llc | Secure driver platform |
-
2018
- 2018-05-11 US US15/977,429 patent/US11520913B2/en active Active
-
2019
- 2019-05-10 CN CN201910387553.XA patent/CN110472440B/zh active Active
-
2022
- 2022-10-04 US US17/959,741 patent/US20230034410A1/en active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060130128A1 (en) * | 2002-07-01 | 2006-06-15 | Emir Gorancic | Process for compiling and executing software applications in a multi-processor environment |
CN101145173A (zh) * | 2006-09-12 | 2008-03-19 | 国际商业机器公司 | 安全地保存和还原安全程序加载程序上下文的系统及方法 |
CN100580682C (zh) * | 2006-09-12 | 2010-01-13 | 国际商业机器公司 | 安全地保存和还原安全程序加载程序上下文的系统及方法 |
CN102428473A (zh) * | 2009-06-26 | 2012-04-25 | 国际商业机器公司 | 用于计算机系统中安全对象的支持 |
US20160171250A1 (en) * | 2009-06-26 | 2016-06-16 | International Business Machines Corporation | System and method for supporting secure objects using a memory access control monitor |
US20120216051A1 (en) * | 2011-02-23 | 2012-08-23 | International Business Machines Corporation | Building and distributing secure object software |
US20140007044A1 (en) * | 2012-07-02 | 2014-01-02 | Lsi Corporation | Source Code Generator for Software Development and Testing for Multi-Processor Environments |
EP3242241A1 (en) * | 2016-05-06 | 2017-11-08 | The Boeing Company | Information assurance system for secure program execution |
Also Published As
Publication number | Publication date |
---|---|
US11520913B2 (en) | 2022-12-06 |
CN110472440B (zh) | 2023-09-01 |
US20190347432A1 (en) | 2019-11-14 |
US20230034410A1 (en) | 2023-02-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110472440A (zh) | 对ai系统和其它异构系统的安全执行支持的方法和装置 | |
CN112005237B (zh) | 安全区中的处理器与处理加速器之间的安全协作 | |
US10007793B2 (en) | Secure object having protected region, integrity tree, and unprotected region | |
Xiao et al. | Stacco: Differentially analyzing side-channel traces for detecting SSL/TLS vulnerabilities in secure enclaves | |
Noorman et al. | Sancus: Low-cost trustworthy extensible networked devices with a zero-software trusted computing base | |
CN105389513B (zh) | 一种虚拟可信平台模块vTPM的可信执行方法和装置 | |
KR101067399B1 (ko) | 대칭 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체 | |
KR100996784B1 (ko) | 공개 키 암호화에 기초한 데이터의 저장 및 검색을 위한, 컴퓨팅 장치에서 구현되는 방법, 시스템 및 복수의 명령어를 저장하는 하나 이상의 컴퓨터 판독가능 매체 | |
US8954752B2 (en) | Building and distributing secure object software | |
CN107346401B (zh) | 用于安全地执行程序的信息保障系统 | |
Boivie et al. | SecureBlue++: CPU support for secure execution | |
CN107851163A (zh) | 用于i/o数据的完整性、防重放和真实性保证的技术 | |
CN110264198B (zh) | 结合代码标注与交易类型的有条件的收据存储方法和节点 | |
CN107077428A (zh) | 保护应用秘密免受操作系统攻击 | |
CN110276684B (zh) | 结合交易类型和事件函数类型的收据存储方法和节点 | |
CN109644196A (zh) | 消息保护 | |
CN110264194B (zh) | 基于事件函数类型的收据存储方法和节点 | |
CN107533615A (zh) | 用于利用安全飞地来强化数据加密的技术 | |
CN113807531B (zh) | 利用地址随机化的ai模型转移方法 | |
CN110825672A (zh) | 用于联机加密处理的高性能自主硬件引擎 | |
JP2018502371A (ja) | セキュア・オブジェクトをサポートするプロセッサ、方法およびコンピュータ・プログラム | |
US20230259660A1 (en) | Integrity tree for memory security | |
JP2024511253A (ja) | エッジデバイス用のポスト量子暗号によるセキュアな実行環境 | |
CN108537038A (zh) | 自定义规则密码管理方法、装置、终端设备及存储介质 | |
CN102708069A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |