CN103329139A - 在具有随机分配的存储范围的安全系统中支持jit的系统和方法 - Google Patents
在具有随机分配的存储范围的安全系统中支持jit的系统和方法 Download PDFInfo
- Publication number
- CN103329139A CN103329139A CN2012800056608A CN201280005660A CN103329139A CN 103329139 A CN103329139 A CN 103329139A CN 2012800056608 A CN2012800056608 A CN 2012800056608A CN 201280005660 A CN201280005660 A CN 201280005660A CN 103329139 A CN103329139 A CN 103329139A
- Authority
- CN
- China
- Prior art keywords
- code
- unsigned
- operating part
- instant
- storage area
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Stored Programmes (AREA)
- Memory System Of A Hierarchy Structure (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
本发明涉及在具有随机分配的存储范围的安全系统中支持JIT的系统和方法。在此公开了用于在实施代码签署要求的设备上处理即时代码的系统、方法和非暂态计算机可读存储介质。本公开包括在实施代码签署要求的设备处接收计算机代码,其中所述代码的一部分包括可执行即时代码;识别未经签署的即时可执行代码部分;在该设备上为所述未经签署的即时可执行部分的至少一部分分配随机选择的存储区域;以及好像所述未经签署的即时可执行代码部分是经签署的计算机代码那样,执行所述随机选择的存储区域中的所述未经签署的即时可执行代码部分。
Description
相关申请的交叉引用
本申请要求于2011年1月18日提交的、题为“SYSTEM ANDMETHOD FOR SUPPORTING JIT IN A SECURE SYSTEM WITHRANDOMLY ALLOCATED MEMORY RANGES”的美国专利申请序列号No.13/008,880的权益,该申请通过引用全文合并在此。
技术领域
本公开一般涉及即时代码,尤其涉及在实施代码签名要求的设备处处理未经签署的即时代码。
背景技术
安全性和性能属于技术领域中最渴望得到的两个特征。对计算设备中更佳的安全性和性能的需要在许多变化的环境中规律性地出现。然而,在软件日益增加的复杂度要求更高的性能以及安全性的日益流行威胁到改善安全性的要求的同时,开发者面对设计出提供改善的安全性和性能的系统的愈发艰巨的挑战。并非是改善其中之一,而是两者的整体改善。通常,开发者改善性能或安全性,但是很少一并改善两者——这通常因为增强的安全性会妨碍性能并且反之亦然。
一种用于改善安全性的技术是代码签署(code signing)。代码签署是数字签署计算机代码以允许系统确定代码源(诸如,作者或发行商)和/或确保该代码尚未被修改或破坏的处理。典型地,签署人(例如,作者或发行商)生成代码的消息摘要,并用私钥加密该摘要。为了签署代码,签署人随后将包括与上述私钥相对应的公钥的数字证书和加密的摘要插入代码。用户的计算机通过创建代码的摘要,使用来自数字证书的公钥解密由签署人加密的摘要并对结果加以比较来验证签名。如果两摘要匹配,则签名有效。使用代码签署,冒名顶替者和恶意攻击者篡夺设备上的资源以执行未授权代码的能力会受到大幅限制。总之,代码签署有助于识别真实应用并创建更为优质且值得信赖的用户体验。然而,不幸的是,代码签署对即时编译的代码不可用。
即时(JIT,Just-in-time)编译指的是一经要求(或“即时”)便将计算机代码翻译成机器指令。使用JIT,翻译持续发生,并且经翻译的代码可被高速缓存以提升性能并提供更快的代码执行。人们不会惊讶,JIT是一种流行的用于改善程序的运行时性能的技术。
然而,JIT却有若干限制。首先,开发者无法在编译运行中数字签署代码。结果,JIT剥夺了系统执行对JIT代码进行代码签署的能力。实际上,实施代码签署要求的安全系统无法运行JIT代码。其次,JIT编译器时常会遭受存储操纵攻击:攻击者使用JIT在可预测地址处创建存储区域,将其有效载荷复制到该存储区域内并且执行其代码。因此,虽然JIT提供了某些益处,但是安全性限制会构成显著的风险——所有这些风险会由于不存在代码签署技术而加剧。
发明内容
本公开的附加特征和优点将在随后的描述中阐述,将从该描述中变得部分显见,或者可以通过实践在此公开的原理而被习得。本公开的附加特征和优点可以借助在所附权利要求中具体指出的仪器和组合来实现和获得。本公开的这些和其他特征将从随后的描述和所附权利要求中变得更为完全的显见,或者可以通过实践在此阐述的原理来习得。
公开了用于在实施代码签署要求的设备上处理即时代码的系统、方法和非暂态计算机可读存储介质。本公开提供了一种在运行代码签署技术的安全系统中实现JIT同时经由地址空间布局随机化(ASLR)显著最小化JIT中存在的存储操纵脆弱性的方式。代码签署和ASLR是互补的安全性特征。它们一并提供增强的安全性保护,其在被实现为支持JIT能力的同时实现安全性和性能的改善。
本公开的系统根据设备处的代码签署要求处理即时代码。系统上的应用接收诸如HTML文档的计算机代码,并且识别计算机代码中的未经签署的即时可执行代码部分,例如JavaScript脚本。应用随后在设备上为所述未经签署的即时可执行代码部分的至少一部分分配随机选择的存储区域。在一个方面,每处理仅能为所述未经签署的即时可执行代码部分分配一个随机选择的存储区域。在另一个方面,每处理可以为所述未经签署的即时可执行代码部分分配一个以上的随机选择的存储区域。在又一个方面,每处理可以为所述未经签署的即时可执行代码部分分配一个或多个随机选择的存储区域以及一个或多个非随机选择的存储区域。
在一个实施例中,系统随后从代码签署要求中剔除该随机选择的存储区域,并且应用执行存储在经剔除的存储区域中的未经签署的即时可执行部分。因此,该应用就能够在无需从代码签署要求中剔除该随机选择的存储区域的额外步骤的情况下执行未经签署的即时可执行部分。
所述方法例示了本公开,并且与所述方法相关联的原理可应用于上述系统和计算机可读介质。借助于被配置为实践所述方法的系统来讨论所述方法。所述系统可以是实施代码签署要求的任何物理和/或虚拟设备(例如,运行代码签署技术的安全系统)。该系统首先接收计算机代码,其中该代码的一部分包括未经签署的即时可执行代码。该系统随后识别该未经签署的即时可执行代码部分,并且在所述设备上为所述未经签署的即时可执行部分的至少一部分分配随机选择的存储区域。识别可以基于代码中的即时标记;提取即时可执行部分的分析器或其他识别部件;即时可执行部分的位置表;代码的特定特征、特性、属性、模式或结构;或者任何其他形式的识别,诸如通过代码分析进行的识别。
接下来,系统就好像未经签署的即时可执行代码部分是经签署的计算机代码那样,执行随机选择的存储区域中的未经签署的即时可执行部分。在一个方面,该未经签署的即时可执行计算机代码部分由具有特定权限的应用(例如,web浏览器)处理。该特定权限确保该应用具有处理未经签署代码的许可。特定权限可以是许可标志、属性、参考、描述符、或由操作系统实施的任何其他特征。所述应用的特定权限可以基于证书和供应简档(provisioning profile)而被授予,并且通过公钥基础结构(例如,通过受信授权获得并共享的密码公钥和私钥对)和一个或多个操作系统级机制(例如,验证、安全策略、访问控制、安全协议、密码软件和协议等)来实施。
本公开的所述方法的其他版本可以包括在实施代码签署要求的设备中执行即时代码,其通过首先访问设备上存储未经签署的即时可执行代码部分的随机选择的存储区域开始,并在随后好像是经签署的计算机代码那样执行所述未经签署的即时可执行代码部分。对随机选择的存储区域的存储器访问许可可以是可读、可写和可执行的。因此,应用能够在这一存储区域中执行的操作就可以包括读取存储在该区域中的数据、修改所述数据以及执行该数据中的指令。
本公开于是有效地提供了一种在运行代码签署技术的安全系统中实现JIT同时经由ASLR显著最小化JIT中的存储操纵脆弱性的方式。这可以实现安全性和/或性能的改善。因此,任何设备都能够从由用于处理即时代码的所公开的系统、方法和非暂态计算机可读存储介质提供的增强的安全性和改善的性能中获益。
附图说明
为了描述能够获得本公开的上述和其他优点和特征的方式,将通过参考在附图中例示的特定实施例呈现以上简要描述的原理的更为具体的描述。应该理解,这些附图仅仅描绘了本公开的示例性实施例,并因此不应被考虑为对其范围的限制,本文的原理通过使用附图的附加细节和特定性而被描述和解释,在附图中:
图1示出了示例性的系统实施例;
图2示出了用于处理即时代码的示例性系统;
图3示出了计算机代码的例子;
图4示出了应用的随机化存储布局的例子;以及
图5和6示出了示例性的方法实施例。
具体实施方式
如下将详细讨论本公开的各实施例。虽然会对特定实现进行讨论,但应该理解的是,这些讨论仅仅出于说明的目的。相关领域技术人员将会认识到,可以在不背离本公开的精神和范围的情况下使用其他部件和配置。
本公开解决了在运行代码签名技术的安全系统中实现JIT的领域中的至少一个需要。在此讨论的方法可以用于在实施代码签名要求的系统中执行计算机代码的未经签署的即时部分。系统可以使用地址空间布局随机化来无效JIT中的存储操纵脆弱性。系统在设备上为未经签署的即时代码部分分配随机选择的存储区域,藉此降低存储布局的可预测性并降低成功进行安全攻击的可能性。虽然该系统在设备上实施代码签署要求,但是该系统可以从代码签署要求中剔除为JIT分配的上述随机选择的存储区域。于是,尽管设备处实施代码签署要求,但仍可执行来自剔除区域的未经签署的即时可执行代码部分。因此,该系统在添加了ASLR和代码签署技术的安全性保护的同时,还提供JIT的性能益处。
本公开将首先阐述可用于实践在此公开的原理的图1中的基本通用系统或计算设备的简要介绍性描述。本公开随后将转向对如下的详细描述:图2中用于处理即时代码的示例性系统、图3中计算机代码的示例性说明、以及图4中应用的随机化存储布局的例子。最后,本公开行进至图5和6中的两个示例性方法实施例。这些变体应随着对各实施例的阐述而在此讨论。本公开现转向图1。
参考图1,示例性系统100包括通用计算设备100,后者则包括处理单元(CUP或处理器)120以及用于将包括系统存储器130(诸如只读存储器(ROM)140和随机存取存储器(RAM)150)的各系统部件耦接至处理器120的系统总线110。系统100可以包括与处理器120直接高速存储器连接的、与处理器120极为接近的、或集成作为处理器120的一部分的高速缓存122。系统100将来自存储器130和/或存储设备160的数据复制到该高速缓存内以供处理器120快速访问。以此方式,该高速缓存提供避免处理器120在等待数据时有所延迟的性能提升。这些和其他模块可以控制或被配置为控制处理器120以执行各种动作。其他的系统存储器130也可供使用。存储器130可以包括具有不同性能特性的多种不同类型的存储器,包括RAM、ROM、硬盘驱动器、光学存储装置、闪存和任何其他的存储设备。系统100可以将系统存储器130划分为包括一个或多个存储块的存储区域,并且可以将处理使用的存储地址与实际物理地址相区别。处理单元120可以使用存储区域在整个系统100上分配存储空间。例如,处理单元120在处理单元120接收到存储请求时识别存储区域并且分配存储区(例如,存储地址)。此外,系统100可以通过使用诸如硬盘的其他存储设备创建虚拟存储器来模拟附加的随机存取存储器,即,通过将虚拟地址映射到实际地址而被创建的可寻址存储空间。
可以理解的是,本公开可以在具有一个以上处理器120的计算设备100上操作,或者可以在联网在一起的计算设备组或簇上操作,以提供更为强大的处理能力。处理器120可以包括任何通用处理器和硬件模块或软件模块,诸如在存储设备160中存储的被配置为控制处理器120的模块1162、模块2164和模块3166,以及在其中软件指令被并入实际处理器设计的专用处理器。处理器120实际上可以是完全自主的计算系统,其包含多个核或处理器、总线、存储器控制器、高速缓存等。多核处理器可以是同步或异步的。
系统总线110可以是包括如下的多种总线结构中的任一种:存储器总线或存储器控制器、外围总线、以及使用多种总线架构中的任一种的局域总线。存储在ROM140等中的基本输入/输出系统(BIOS)可以提供有助于在诸如启动期间在计算设备100内的各元件之间传递信息的基本例程。计算设备100还包括诸如硬盘驱动器、磁盘驱动器、光盘驱动器、磁带驱动器等的存储设备160。存储设备160可以包括用于控制处理器120的软件模块162、164和166。还可以考虑其他硬件或软件模块。存储设备160通过驱动器接口连接至系统总线110。驱动器和关联计算机可读存储介质提供对计算机可读指令、数据结构、程序模块以及用于计算设备100的其他数据的非易失性存储。在一个方面,执行具体功能的硬件模块包括存储在与必须的硬件部件(诸如,处理器120、总线110、显示器170等)相连接以执行所述功能的非暂态计算机可读存储介质中的软件部件。基本部件是本领域技术人员已知的,并且可以取决于诸如设备100是小型手持计算设备、台式计算机、还是计算机服务器之类的设备类型来考虑恰当的变形。
虽然在此描述的示例性实施例使用的是硬盘160,但是本领域技术人员应该理解的是,也可以在该示例性操作环境中使用能够存储可由计算机访问的数据的其他类型的计算机可读介质,诸如磁带盒、闪存卡、数字通用盘、盒式磁带、随机存取存储器(RAM)150、只读存储器(ROM)140、包含比特流的线缆或无线信号等。非暂态计算机可读存储介质本身明确不包括诸如能量、载波信号、电磁波和信号之类的介质。
为了使得用户能够与计算设备100交互,输入设备190表现为任何数量的输入机构,诸如用于语音的麦克风、用于手势或图形输入的触摸敏感屏、键盘、鼠标、运动输入、语音等。输出设备170也可以是本领域技术人员已知的多种输出机构中的一种或多种。在某些实例中,多模式系统使得用户能够提供多种类型的输入来与计算设备100通信。通信接口180一般性地支配和管理用户输入和系统输出。不存在有在任何具体硬件布置进行操作的限制,因此在此的基本特征可由方便对由研发出的改进硬件或固件布置来代替。
为了解释清楚,说明性的系统实施例被呈现为包括独立的功能块,这些功能块则包括被标记为“处理器”或处理器120的功能块。这些功能块所表现出的功能可以通过使用共享或专用硬件来提供,所述共享或专用硬件包括但不限于能够执行软件的硬件以及等同于在通用处理器上执行的软件那样操作的专门设计的硬件,诸如处理器120。例如,图1中呈现的一个或多个处理器的功能可由单个共享的处理器提供,也可由多个处理器提供。(术语“处理器”的使用不应被解释为排他地指代能够执行软件的硬件。)说明性的实施例可以包括微处理器和/或数字信号处理器(DSP)硬件、用于存储执行如下讨论操作的软件的只读存储器(ROM)140以及用于存储结果的随机存取存储器(RAM)150。还可以提供超大规模集成(VLSI)硬件实施例,以及与通用DSP电路相结合的定制VLSI电路。
各实施例的逻辑操作如下实现:(1)在通用计算机内的可编程电路上运行的计算机实现的步骤、操作或过程的序列;(2)在专用可编程电路上运行的计算机实现的步骤、操作或过程的序列;和/或(3)在可编程电路中的互连的机器模块或程序引擎。图1示出的系统100可以实践所述方法的全部或部分,可以是所述系统的一部分,和/或可以根据所述非暂态计算机可读存储介质中的指令进行操作。这些逻辑操作可被实现为被配置为根据模块的编程控制处理器120以执行具体功能的模块。例如,图1例示了被配置为控制处理器120的三个模块:Mod1162,Mod2164和Mod3166。举例而言,Mod1162可被配置为控制处理器120以在系统100上实施代码签署要求。Mod2164则可被配置为控制处理器120以在系统100上随机选择存储区域并且使用选择的存储区域在整个系统100上分配存储空间。而Mod3166则可被配置为控制处理器以执行计算机代码,包括静态、解译的和即时代码——无论其被签署与否。这些模块可被存储在存储设备160上并且可以在运行时装载到RAM150或存储器130,或者可以像本领域已知的那样存储在其他的计算机可读存储位置处。
在已经公开了计算系统的某些部件的情况下,本公开现转向图2,图中示出了用于处理即时代码的示例性系统。为清楚起见,借助于诸如图1所示的被配置为实施代码签署要求的示例性系统来对图2进行讨论。
在此例中,即时代码在系统202中由具有特定权限的应用处理。该特定权限确保该应用具有处理未经签署代码的许可。特定权限可以是许可标志、属性、参考、描述符、或由操作系统实施的任何其他特征。在一个方面,所述应用可以是web浏览器。该web浏览器可以是“完全的”web浏览器,诸如Opera、Safari或K-Meleon;也可以是具有“完全的”浏览器能力的子集的“移动”浏览器,诸如用于iOS的Safari或Opera Mini。
系统202中有权限的应用204首先接收计算机代码210,其包括作为未经签署的即时可执行代码的一部分代码。有权限的应用204随后识别未经签署的即时可执行代码部分212。识别可以基于代码中的即时标记;提取即时可执行部分的分析器或其他识别部件;即时可执行部分的位置表;代码的特定特征、特性、属性、模式或结构;或者任何其他形式的识别,诸如通过代码分析进行的识别。在识别了未经签署的即时可执行代码部分222之后,有权限的应用204在设备上为所述未经签署的即时可执行代码部分的至少一部分分配随机选择的存储区域224。系统还可以可选地处理216签署的代码部分214,并将经处理的签署的代码部分218送至执行模块220以供执行。
为了分配随机选择的存储区域,有权限的应用204可以包括指令集,例如NtAllocateVirtualMemory、VirtualAlloc、vm_aslr_mmap和vm_allocate。这些功能可以保留连续或不连续地址的块,并且在保留的地址块中分配页面区域。地址块可以从任意地址处(可以是固定的或动态选择的)的任意大小的存储区域中保留。有权限的应用204可以选择随机选择的存储区域,或者可以简单地使用由另一系统部件(诸如操作系统或存储器管理器)随机选择的存储区域。该存储区域是随机选择的,由此无效JIT中的存储操纵脆弱性。通过随机化执行代码的存储布局,使得系统202由于降低了存储布局的可预测性并且降低了攻击将成功的可能性,而能够提供对抗涉及代码注入或填充代码(shellcode)的安全级别。在一个方面,每个处理仅能为所述未经签署的可执行代码部分分配一个随机选择的存储区域。在另一个方面,每个处理能为所述未经签署的可执行代码部分分配一个以上的随机选择的存储区域。在又一个方面,每个处理可以为所述未经签署的即时可执行代码部分分配一个或多个随机选择的存储区域以及一个或多个非随机选择的存储区域。这一途径可以与其他的可兼容安全和/或性能增强技术相结合。
在一个实施例中,对随机选择的存储区域的存储器访问许可可以是可读、可写和可执行的。因此,有权限的应用204能够在这一存储区域中执行的操作就可以包括读取存储在该区域中的数据、修改所述数据以及执行该数据中的指令。于是,在此实施例中,有权限的应用204能够在无需从代码签署要求中剔除该随机选择的存储区域的额外步骤的情况下执行随机选择的存储区域中的未经签署的即时可执行代码部分222。
在另一实施例中,系统202或有权限的应用204从代码签署要求中剔除为未经签署的即时可执行代码部分228的至少一部分分配的随机选择的存储区域226。系统202或有权限的应用204可以在有权限的应用204为未经签署的即时可执行代码部分分配随机选择的存储区域之后再剔除该区域。系统202或有权限的应用204还可以在有权限的应用204为未经签署的即时可执行代码部分228分配随机选择的存储区域之时或之前剔除该区域。最后,有权限的应用204可以执行随机选择的存储区域220中的未经签署的即时可执行代码部分,或使其被执行。
图3示出了包括第一未经签署的即时可执行部分306和第二部分308的计算机代码302的例子。未经签署的即时可执行部分306可以包括以任何编程语言编写的、其中代码依赖于即使编译的任何代码部分。相比之下,第二部分308可以包括以任何编程语言编写的并且能够可选地被数字签署的任何代码部分。从图3中可见,未经签署的即时可执行部分306可以是JavaScript代码,而第二部分308则可以是标记语言。即时语言的另一个例子包括LISP、Java和.NET框架。此外,计算机代码302可以包括即时标志304,其中系统202可以使用该即时标志304识别计算机代码302的未经签署的即时可执行部分306。在一个实施例中,即时标志是脚本标签304。
图4示出了应用410的随机化存储布局的例子。在此例中,随机选择的存储区域412或装载地址已被分配用于存储未经签署的即时可执行代码部分。随机选择的装载地址也被分配用于关键数据区,即:处理堆414、线程栈416和另一线程栈418。应用的存储布局被随机化以保护免于存储操纵脆弱性攻击。通过随机化执行代码的存储布局,而由于随机化降低了存储布局的可预测性并且降低了攻击将成功的可能性,使得应用能够抵抗涉及代码注入或填充代码的安全攻击。
在已经公开了某些基本系统部件和原理的情况下,本公开现转向图5和6示出的示例性方法实施例。为清楚起见,借助于如图1所示的被配置为实践方法的示例性系统100来对所述方法进行讨论。在此概述的步骤是示例性的,并且能够以任何组合实现,包括去除、添加或修改特定步骤的组合。
图5示出了用于在被配置为实施代码签署要求的设备处处理即时代码的示例性方法实施例。该设备可以是移动或其他计算设备,诸如智能电话、平板、计算机、GPS、便携式媒体等。如图5中可见,该系统首先接收510计算机代码302,其中该代码的一部分是未经签署的即时可执行代码306。在具体实施例中,即时代码由具有特定权限的应用进行处理。所述应用的特定权限可以基于证书和供应简档(provisioning profile)而被授予,并且通过公钥基础结构(例如,通过受信授权获得并共享的密码公钥和私钥对)和一个或多个操作系统级机制(例如,验证、安全策略、访问控制、安全协议、密码软件和协议等)来实施。
接下来,该应用识别512未经签署的即时可执行代码部分306。识别可以被如上所述地执行。应用随后在设备上为所述未经签署的即时可执行代码部分306的至少一部分分配514随机选择的存储区域412。在一个方面,该应用可以为所述未经签署的即时可执行代码部分306的一部分分配随机选择的存储区域412,并为所述未经签署的即时可执行代码部分306的剩余部分分配另一存储区域。该存储区域可由在设备上运行的操作系统内核和/或另一应用随机选择。在一个方面,可以在该应用的剩余处理生存期期间禁止该应用重新使用该随机选择的存储区域。在另一方面,可以禁止该应用共享含有该随机选择的存储区域的存储页面。
在一个实施例中,系统随后从代码签署要求中剔除516该随机选择的存储区域412,并且应用执行518在该随机选择的存储区域412中的未经签署的即时可执行部分306。
在另一实施例中,应用在无需从代码签署要求中剔除该随机选择的存储区域412的额外步骤的情况下,执行518随机选择的存储区域412中的未经签署的即时可执行代码部分306。在此,对随机选择的存储区域的存储器访问许可是可读、可写和可执行的。于是,该应用能够在这一存储区域中执行的操作就可以包括读取存储在该区域中的数据、修改所述数据以及执行该数据中的指令。此外,JIT编译器可以使用该随机选择的存储区域412来创建经JIT编译的代码。
在一个方面,系统可以在传统JIT途径和在此阐述的增强途径之间切换。程序器可以指示例如JIT代码的一部分是特别敏感的,或是以其他方式命令升高的速度和/或安全性。类似地,如果web浏览器遇到来自受信站点的JavaScript代码,则该系统可以按传统方式处理该JavaScript代码,而如果web浏览器遇到来自潜在恶意或非受信域的JavaScript代码,则该系统可以切换至增强安全模式来处理该JavaScript代码。系统可以基于诸如用户输入、受信站点的数据库、特定代码模式、用户/设备偏好之类的一个或多个内部和/或外部事件而在“常规”和“增强”JIT代码处理之间切换。基于网络的服务器可以规定针对一组设备的JIT代码处理模式。
图6示出了用于在被配置为实施代码签署要求的设备处执行即时代码的方法的实施例600。该设备可以为其执行的部分或全部代码实施代码签署要求。此外,对随机选择的存储区域412的存储器访问许可可以是可读、可写和可执行的。
如图6中可见,系统中的应用首先访问602存储计算机代码302的未经签署的即时可执行部分306的随机选择的存储区域412。在此例中,对随机选择的存储区域412的访问许可是可读、可写和可执行的。随机选择的存储区域412中的未经签署的即时可执行代码部分例如可以是具有helloWorld功能的JavaScript脚本:
如虚线框所示,该系统可选地从代码签署要求中剔除604该随机选择的存储区域412,并且应用随后执行606在该随机选择的存储区域412中的未经签署的即时可执行代码部分306。例如,应用可以在系统或应用从代码签署要求中剔除存储该JavaScript脚本的随机选择的存储区域之后执行helloWorld功能。
替换地,应用可以在无需从代码签署要求中剔除该随机选择的存储区域412的额外步骤的情况下执行606随机选择的存储区域412中的未经签署的即时可执行代码部分306。在此,应用具有特定权限,允许其处理未经签署的代码。例如,应用可以具有特定权限,并由此在无需从代码签署要求中剔除该随机选择的存储区域412的额外步骤的情况下执行helloWorld功能。
这些途径可被用来在实施代码签署要求的系统中使用用以无效JIT中的存储操纵脆弱性的地址空间布局随机化来执行未经签署的经JIT编译的代码。因此,这些途径允许实施代码签署要求的安全系统使用随机分配的存储范围实现JIT,从而实现提升的安全性和/或性能。
本公开范围内的各实施例还可以包括载有或具有计算机可执行指令或其上存储有数据结构的有形和/或非暂态计算机可读存储介质。这一非暂态计算机可读存储介质可以是能由通用或专用计算机(包括如上所述的任何专用处理器的功能设计)访问的任何可用介质。作为例子而非限制,这一非暂态计算机可读存储介质可以包括RAM、ROM、EEPROM、CD-ROM或其他光盘存储、磁盘存储或其他磁性存储设备、或者能被用于载有或存储期望的程序代码单元(以计算机可执行指令、数据结构或处理器芯片设计的形式)的任何其他介质。当信息经网络或其他通信连接(硬连线、无线或其组合)传递至计算机时,计算机恰当地将该连接看作是计算机可读介质。于是,任何这类连接可被恰当称作是计算机可读介质。上述介质的组合可被包括在计算机可读介质的范围内。
计算机可执行指令例如包括使得通用计算机、专用计算机或专用处理设备执行特定功能或功能组的指令和数据。计算机可执行指令还包括由计算机独立执行或在网络环境中执行的程序模块。一般地,程序模块包括执行具体任务或实现具体抽象数据类型的例程、程序、部件、数据结构、对象以及专用处理器设计中的固有功能等。计算机可执行指令、关联数据结构和程序模块表现为用于执行在此公开的方法步骤的程序代码单元的例子。这类可执行指令或关联数据结构的具体顺序表现为实现在这类步骤中描述的功能的相应动作的例子。
本领域技术人员将会理解的是,可以在具有许多类型的计算机系统配置的网络计算环境中实践本公开的其他实施例,其中许多类型的计算机系统配置包括个人计算机、手持设备、多处理器系统、基于微处理器或可编程消费者电子产品、网络PC、小型机、大型机等。各实施例也可以在其中任务由通过通信网络链接的(通过硬连线链接、无线链接或其组合)本地和远程处理设备执行的分布式计算环境中实践。在分布式计算环境中,程序模块可以位于本地和远程存储器存储介质两者内。
如上所述的各实施例仅作为示例提供,并且不应被解释为限制本公开的范围。例如,在此描述的原理可以应用于诸如移动电话或平板的移动设备中,或是运行签署代码的台式计算设备中。本领域技术人员将会很容易地认识到,可以在不遵循在此描述和说明的示例实施例和应用且不背离本公开的精神和范围的情况下对在此描述的各原理作出各种修改和改变。
Claims (20)
1.一种方法,包括:
在实施代码签署要求的设备处接收计算机代码;
识别所述计算机代码的未经签署的即时可执行部分;
在该设备上为所述未经签署的即时可执行部分的至少一部分分配随机选择的存储区域;以及
好像所述未经签署的即时可执行部分是经签署的计算机代码那样,执行所述随机选择的存储区域中的所述未经签署的即时可执行部分。
2.如权利要求1所述的方法,其中,基于计算机代码中的即时标记来识别接收到的计算机代码的所述未经签署的即时可执行部分。
3.如权利要求1所述的方法,其中,计算机代码的所述未经签署的即时可执行部分由具有特定权限的应用处理。
4.如权利要求3所述的方法,其中,应用的特定权限基于证书和供应简档而被授予。
5.如权利要求3所述的方法,其中,应用的特定权限通过公钥基础结构和至少一个操作系统级机制来实施。
6.如权利要求1所述的方法,其中,每处理仅为计算机代码的所述未经签署的即时可执行部分分配一个随机选择的存储区域。
7.如权利要求1所述的方法,还包括:在应用的剩余处理生存期期间禁止所述应用重新使用所述随机选择的存储区域。
8.如权利要求1所述的方法,还包括:禁止共享含有所述随机选择的存储区域的存储页面。
9.一种系统,包括:
处理器;
具有在其中存储有指令的非暂态计算机可读存储器,所述指令在被处理器执行时,使所述处理器执行包括如下步骤的方法:
接收计算机代码;
识别所述计算机代码的未经签署的即时可执行部分;
在设备上为所述未经签署的即时可执行部分的至少一部分分配随机选择的存储区域;
从代码签署要求中剔除所述随机选择的存储区域;以及
执行所述未经签署的即时可执行部分。
10.如权利要求9所述的系统,其中,计算机代码的所述未经签署的即时可执行部分由具有特定权限的应用处理。
11.如权利要求9所述的系统,其中,每处理仅为计算机代码的所述未经签署的即时可执行部分分配一个随机选择的存储区域。
12.如权利要求9所述的系统,其中,在设备上运行的操作系统内核选择所述随机选择的存储区域。
13.一种存储用于处理即时代码的指令的非暂态计算机可读存储介质,所述指令在由实施代码签署要求的计算设备执行时,使所述计算设备执行如下步骤:
识别在所述计算设备处接收到的计算机代码的未经签署的即时可执行部分;
访问存储计算机代码的所述未经签署的即时可执行部分的随机选择的存储区域;以及
好像所述未经签署的即时可执行部分是经签署的计算机代码那样,执行所述随机选择的存储区域中的所述未经签署的即时可执行部分。
14.如权利要求13所述的非暂态计算机可读存储介质,其中,基于计算机代码中的即时标记来识别接收到的计算机代码的所述未经签署的即时可执行部分。
15.如权利要求13所述的非暂态计算机可读存储介质,其中,计算机代码的所述未经签署的即时可执行部分由具有特定权限的应用处理。
16.如权利要求13所述的非暂态计算机可读存储介质,其中,应用的特定权限通过公钥基础结构和至少一个操作系统级机制来实施。
17.如权利要求13所述的非暂态计算机可读存储介质,其中,计算机代码的所述未经签署的即时可执行部分是JavaScript代码。
18.如权利要求13所述的非暂态计算机可读存储介质,其中,所述未经签署的即时可执行部分由web浏览器执行。
19.如权利要求13所述的非暂态计算机可读存储介质,其中,计算机代码的所述未经签署的即时可执行部分由具有特定权限的应用处理。
20.如权利要求13所述的非暂态计算机可读存储介质,其中,在所述计算设备上运行的操作系统内核选择所述随机选择的存储区域。
Applications Claiming Priority (3)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US13/008,880 | 2011-01-18 | ||
| US13/008,880 US8646050B2 (en) | 2011-01-18 | 2011-01-18 | System and method for supporting JIT in a secure system with randomly allocated memory ranges |
| PCT/US2012/021696 WO2012099945A1 (en) | 2011-01-18 | 2012-01-18 | System and method for supporting jit in a secure system with randomly allocated memory ranges |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN103329139A true CN103329139A (zh) | 2013-09-25 |
| CN103329139B CN103329139B (zh) | 2016-08-10 |
Family
ID=45615051
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201280005660.8A Expired - Fee Related CN103329139B (zh) | 2011-01-18 | 2012-01-18 | 在具有随机分配的存储范围的安全系统中支持jit的系统和方法 |
Country Status (11)
| Country | Link |
|---|---|
| US (1) | US8646050B2 (zh) |
| EP (1) | EP2666116B1 (zh) |
| JP (1) | JP5647360B2 (zh) |
| KR (1) | KR101504857B1 (zh) |
| CN (1) | CN103329139B (zh) |
| AU (1) | AU2012200181B2 (zh) |
| BR (1) | BR112013018294A2 (zh) |
| DE (1) | DE102012200613A1 (zh) |
| GB (1) | GB2487645B (zh) |
| MX (1) | MX2013008218A (zh) |
| WO (1) | WO2012099945A1 (zh) |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114661584A (zh) * | 2022-03-05 | 2022-06-24 | 中电万维信息技术有限责任公司 | 一种用于软件测试的测试装置及使用方法 |
Families Citing this family (19)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9135434B2 (en) * | 2010-04-19 | 2015-09-15 | Appcentral, Inc. | System and method for third party creation of applications for mobile appliances |
| US8646050B2 (en) * | 2011-01-18 | 2014-02-04 | Apple Inc. | System and method for supporting JIT in a secure system with randomly allocated memory ranges |
| WO2013130548A2 (en) * | 2012-02-27 | 2013-09-06 | University Of Virginia Patent Foundation | Method of instruction location randomization (ilr) and related system |
| US9111093B1 (en) * | 2014-01-19 | 2015-08-18 | Google Inc. | Using signals from developer clusters |
| US9130996B1 (en) * | 2014-03-26 | 2015-09-08 | Iboss, Inc. | Network notifications |
| US9390260B2 (en) * | 2014-06-09 | 2016-07-12 | Lehigh University | Methods for enforcing control flow of a computer program |
| US9361102B2 (en) * | 2014-06-09 | 2016-06-07 | Lehigh University | Methods for enforcing control flow of a computer program |
| US10311227B2 (en) | 2014-09-30 | 2019-06-04 | Apple Inc. | Obfuscation of an address space layout randomization mapping in a data processing system |
| US10311228B2 (en) | 2014-09-30 | 2019-06-04 | Apple Inc. | Using a fine-grained address space layout randomization to mitigate potential security exploits |
| US9507526B2 (en) | 2014-11-14 | 2016-11-29 | Netapp, Inc. | Just-in time remote data storage allocation |
| US10303885B2 (en) | 2016-03-02 | 2019-05-28 | Apple Inc. | Methods and systems for securely executing untrusted software |
| US10268601B2 (en) | 2016-06-17 | 2019-04-23 | Massachusetts Institute Of Technology | Timely randomized memory protection |
| US10310991B2 (en) * | 2016-08-11 | 2019-06-04 | Massachusetts Institute Of Technology | Timely address space randomization |
| US10810137B2 (en) | 2017-02-27 | 2020-10-20 | Red Hat, Inc. | Physical address randomization for secure encrypted memory |
| US10785017B2 (en) | 2018-04-24 | 2020-09-22 | Microsoft Technology Licensing, Llc | Mitigating timing attacks via dynamically scaled time dilation |
| US10965444B2 (en) | 2018-04-24 | 2021-03-30 | Microsoft Technology Licensing, Llc | Mitigating timing attacks via dynamically triggered time dilation |
| US11017078B2 (en) * | 2018-04-24 | 2021-05-25 | Microsoft Technology Licensing, Llc | Environmentally-trained time dilation |
| US11593483B2 (en) * | 2018-12-19 | 2023-02-28 | The Board Of Regents Of The University Of Texas System | Guarder: an efficient heap allocator with strongest and tunable security |
| US10747510B1 (en) * | 2019-06-04 | 2020-08-18 | Apptimize Llc | Application runtime modification |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5412717A (en) * | 1992-05-15 | 1995-05-02 | Fischer; Addison M. | Computer system security method and apparatus having program authorization information data structures |
| US6883165B1 (en) * | 2000-09-28 | 2005-04-19 | International Business Machines Corporation | Apparatus and method for avoiding deadlocks in a multithreaded environment |
| US20070011091A1 (en) * | 2004-03-12 | 2007-01-11 | Sybase, Inc. | Hierarchical entitlement system with integrated inheritance and limit checks |
| US7191422B1 (en) * | 2004-05-26 | 2007-03-13 | Sun Microsystems, Inc. | System and method for determining a carrier layout using cornered chip-to-chip input/output |
| US20080184210A1 (en) * | 2007-01-26 | 2008-07-31 | Oracle International Corporation | Asynchronous dynamic compilation based on multi-session profiling to produce shared native code |
| CN101366038A (zh) * | 2006-09-11 | 2009-02-11 | 松下电器产业株式会社 | Ic卡及其访问控制方法 |
Family Cites Families (31)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| ATE177857T1 (de) * | 1992-05-15 | 1999-04-15 | Addison M Fischer | Verfahren und vorrichtung zur sicherheit eines computersystem mit programmberechtigungsdatenstrukturen |
| JPH10301773A (ja) * | 1997-04-30 | 1998-11-13 | Sony Corp | 情報処理装置および情報処理方法、並びに記録媒体 |
| US6308315B1 (en) * | 1998-10-14 | 2001-10-23 | Sun Microsystems, Inc. | System and method for automatically and selectively promoting object variables to method fields and variables in a digital computer system |
| JP2000207223A (ja) * | 1999-01-12 | 2000-07-28 | Matsushita Electric Ind Co Ltd | 並列処理向けのプログラム処理方法および装置、並びに並列処理向けのプログラム処理を実行するプログラムを記録した記録媒体および並列処理向けの命令列を記録した記録媒体 |
| JP3355602B2 (ja) * | 1999-01-27 | 2002-12-09 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 多次元配列オブジェクトの処理方法及び装置 |
| US20110178613A9 (en) * | 2000-02-14 | 2011-07-21 | Pierre Bonnat | Method And System For Processing Signals For A MEMS Detector That Enables Control Of A Device Using Human Breath |
| US6922782B1 (en) * | 2000-06-15 | 2005-07-26 | International Business Machines Corporation | Apparatus and method for ensuring data integrity of unauthenticated code |
| US7302467B2 (en) * | 2000-08-07 | 2007-11-27 | Sony Corporation | Information processing device and information processing method, service providing system, and computer-executable program for the same |
| US20020099563A1 (en) * | 2001-01-19 | 2002-07-25 | Michael Adendorff | Data warehouse system |
| US7526811B1 (en) * | 2001-05-22 | 2009-04-28 | Novell, Inc. | Methods for detecting executable code which has been altered |
| JP2004303114A (ja) * | 2003-04-01 | 2004-10-28 | Hitachi Ltd | インタープリタおよびネイティブコード実行方法 |
| US7380242B2 (en) * | 2003-05-14 | 2008-05-27 | Mainsoft Israel Ltd. | Compiler and software product for compiling intermediate language bytecodes into Java bytecodes |
| US7634778B2 (en) * | 2003-06-26 | 2009-12-15 | Microsoft Corporation | Operating system managing a linked list of callback dynamic function tables for acquiring exception handling information from a runtime environment |
| US7260691B2 (en) * | 2004-06-30 | 2007-08-21 | Intel Corporation | Apparatus and method for initialization of a double-sided DIMM having at least one pair of mirrored pins |
| US20060009112A1 (en) * | 2004-07-06 | 2006-01-12 | Guenther Donald E | Electronic random message storage and generation novelty device |
| US7502928B2 (en) * | 2004-11-12 | 2009-03-10 | Sony Computer Entertainment Inc. | Methods and apparatus for secure data processing and transmission |
| US7546430B1 (en) * | 2005-08-15 | 2009-06-09 | Wehnus, Llc | Method of address space layout randomization for windows operating systems |
| JP4754299B2 (ja) * | 2005-08-18 | 2011-08-24 | 株式会社エヌ・ティ・ティ・データ | 情報処理装置 |
| US20070283336A1 (en) * | 2006-06-01 | 2007-12-06 | Michael Karl Gschwind | System and method for just-in-time compilation in a heterogeneous processing environment |
| US20070283117A1 (en) * | 2006-06-05 | 2007-12-06 | Microsoft Corporation | Unmanaged memory accessor |
| US8028148B2 (en) * | 2006-09-06 | 2011-09-27 | Microsoft Corporation | Safe and efficient allocation of memory |
| US20080127142A1 (en) | 2006-11-28 | 2008-05-29 | Microsoft Corporation | Compiling executable code into a less-trusted address space |
| US8875271B2 (en) * | 2006-12-08 | 2014-10-28 | Microsoft Corporation | Executing unsigned content and securing access in a closed system |
| JP4473256B2 (ja) * | 2006-12-27 | 2010-06-02 | インターナショナル・ビジネス・マシーンズ・コーポレーション | アプリケーションプログラムによるリソースアクセスを制御するための情報処理装置、方法、及びプログラム |
| JP4930078B2 (ja) * | 2007-01-31 | 2012-05-09 | 富士通株式会社 | 情報処理方法、情報処理装置、情報処理プログラムおよび該プログラムを記録した記録媒体 |
| US8561135B2 (en) * | 2007-12-28 | 2013-10-15 | Motorola Mobility Llc | Wireless device authentication using digital certificates |
| US8819647B2 (en) * | 2008-01-25 | 2014-08-26 | International Business Machines Corporation | Performance improvements for nested virtual machines |
| CN101515300B (zh) * | 2009-04-02 | 2011-07-20 | 阿里巴巴集团控股有限公司 | 一种Ajax网页内容的抓取方法及系统 |
| JP2011002976A (ja) * | 2009-06-18 | 2011-01-06 | Panasonic Corp | プログラム実行制御装置 |
| US20110191848A1 (en) * | 2010-02-03 | 2011-08-04 | Microsoft Corporation | Preventing malicious just-in-time spraying attacks |
| US8646050B2 (en) * | 2011-01-18 | 2014-02-04 | Apple Inc. | System and method for supporting JIT in a secure system with randomly allocated memory ranges |
-
2011
- 2011-01-18 US US13/008,880 patent/US8646050B2/en active Active
-
2012
- 2012-01-12 AU AU2012200181A patent/AU2012200181B2/en not_active Ceased
- 2012-01-17 DE DE102012200613A patent/DE102012200613A1/de not_active Ceased
- 2012-01-18 GB GB1200836.3A patent/GB2487645B/en not_active Expired - Fee Related
- 2012-01-18 EP EP12704460.0A patent/EP2666116B1/en not_active Not-in-force
- 2012-01-18 CN CN201280005660.8A patent/CN103329139B/zh not_active Expired - Fee Related
- 2012-01-18 MX MX2013008218A patent/MX2013008218A/es not_active Application Discontinuation
- 2012-01-18 JP JP2013550558A patent/JP5647360B2/ja not_active Expired - Fee Related
- 2012-01-18 BR BR112013018294A patent/BR112013018294A2/pt not_active IP Right Cessation
- 2012-01-18 KR KR1020137021671A patent/KR101504857B1/ko not_active Expired - Fee Related
- 2012-01-18 WO PCT/US2012/021696 patent/WO2012099945A1/en not_active Ceased
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US5412717A (en) * | 1992-05-15 | 1995-05-02 | Fischer; Addison M. | Computer system security method and apparatus having program authorization information data structures |
| US6883165B1 (en) * | 2000-09-28 | 2005-04-19 | International Business Machines Corporation | Apparatus and method for avoiding deadlocks in a multithreaded environment |
| US20070011091A1 (en) * | 2004-03-12 | 2007-01-11 | Sybase, Inc. | Hierarchical entitlement system with integrated inheritance and limit checks |
| US7191422B1 (en) * | 2004-05-26 | 2007-03-13 | Sun Microsystems, Inc. | System and method for determining a carrier layout using cornered chip-to-chip input/output |
| CN101366038A (zh) * | 2006-09-11 | 2009-02-11 | 松下电器产业株式会社 | Ic卡及其访问控制方法 |
| US20080184210A1 (en) * | 2007-01-26 | 2008-07-31 | Oracle International Corporation | Asynchronous dynamic compilation based on multi-session profiling to produce shared native code |
Cited By (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN114661584A (zh) * | 2022-03-05 | 2022-06-24 | 中电万维信息技术有限责任公司 | 一种用于软件测试的测试装置及使用方法 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP2666116B1 (en) | 2018-01-10 |
| DE102012200613A1 (de) | 2012-12-06 |
| BR112013018294A2 (pt) | 2016-11-16 |
| GB2487645A (en) | 2012-08-01 |
| JP2014504764A (ja) | 2014-02-24 |
| KR20130114733A (ko) | 2013-10-17 |
| US8646050B2 (en) | 2014-02-04 |
| JP5647360B2 (ja) | 2014-12-24 |
| EP2666116A1 (en) | 2013-11-27 |
| WO2012099945A1 (en) | 2012-07-26 |
| AU2012200181A1 (en) | 2012-08-02 |
| KR101504857B1 (ko) | 2015-03-20 |
| MX2013008218A (es) | 2013-08-09 |
| GB2487645B (en) | 2014-03-19 |
| US20120185700A1 (en) | 2012-07-19 |
| GB201200836D0 (en) | 2012-02-29 |
| CN103329139B (zh) | 2016-08-10 |
| AU2012200181B2 (en) | 2014-04-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN103329139A (zh) | 在具有随机分配的存储范围的安全系统中支持jit的系统和方法 | |
| CN112639778B (zh) | 指针认证及指针认证方案之间的动态切换 | |
| CN105391840B (zh) | 自动创建目标应用程序 | |
| KR101608510B1 (ko) | 글로벌 플랫폼 규격을 사용하는 발행자 보안 도메인에 대한 키 관리 시스템 및 방법 | |
| CN105683990B (zh) | 用于保护动态库的方法和装置 | |
| US10127018B2 (en) | Dynamic addition of code in shared libraries | |
| WO2015150391A9 (en) | Software protection | |
| WO2013192448A1 (en) | Managing use of a field programmable gate array with isolated components | |
| WO2013192441A1 (en) | Managing use of a field programmable gate array with reprogrammable cryptographic operations | |
| US20230130746A1 (en) | Methods and apparatus for container attestation in client-based workloads | |
| CN110750488B (zh) | 在fpga中实现外部调用的方法及装置 | |
| Shepherd et al. | Trusted execution environments | |
| CN108171063A (zh) | 访问安全元件的方法、终端及计算机可读存储介质 | |
| CN110535642B (zh) | 一种分散存储密钥的方法、智能终端及存储介质 | |
| Vuillermoz | Analysis of TEE technologies as trust anchors | |
| AU2013202876B2 (en) | System and method for supporting JIT in a secure system with randomly allocated memory ranges | |
| Fouladi et al. | Vulnerability Analysis of a Commercial. NET Smart Card | |
| CN119475278A (zh) | 引导程序处理方法、装置、设备、存储介质及程序产品 | |
| Muthu et al. | Emulating trust zone in android emulator with secure channeling | |
| HK40022054A (zh) | 在fpga中实现外部调用的方法及装置 | |
| HK40022054B (zh) | 在fpga中实现外部调用的方法及装置 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| C06 | Publication | ||
| PB01 | Publication | ||
| C10 | Entry into substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| C14 | Grant of patent or utility model | ||
| GR01 | Patent grant | ||
| CF01 | Termination of patent right due to non-payment of annual fee | ||
| CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20160810 |