CN111814209A - 用于将补丁应用于可执行代码的系统和方法 - Google Patents
用于将补丁应用于可执行代码的系统和方法 Download PDFInfo
- Publication number
- CN111814209A CN111814209A CN202010240372.7A CN202010240372A CN111814209A CN 111814209 A CN111814209 A CN 111814209A CN 202010240372 A CN202010240372 A CN 202010240372A CN 111814209 A CN111814209 A CN 111814209A
- Authority
- CN
- China
- Prior art keywords
- code
- patch
- execution
- control unit
- context
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 16
- 238000004590 computer program Methods 0.000 claims abstract description 7
- 238000013507 mapping Methods 0.000 claims description 10
- 230000006870 function Effects 0.000 description 10
- 238000004891 communication Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 230000003213 activating effect Effects 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/656—Updates while running
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/77—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 smart cards
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44557—Code layout in executable memory
- G06F9/44563—Sharing
-
- 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Mathematical Physics (AREA)
- Stored Programmes (AREA)
Abstract
根据本公开的第一个方面,提供一种用于将补丁应用于可执行代码的系统,其包括:多个执行环境,其被配置成在不同的执行上下文中执行所述代码;控制单元,其被配置成将所述补丁应用于所述代码;其中所述控制单元被配置成在被配置成执行具体代码的执行环境切换到对应于所述具体代码的执行上下文时或之后,将具体补丁应用于所述具体代码。根据本公开的其它方面,构想了一种用于将补丁应用于可执行代码的对应方法,并且提供对应的计算机程序。
Description
技术领域
本公开涉及一种用于将补丁应用于可执行代码的系统。此外,本公开涉及用于将补丁应用于可执行代码的对应方法,以及对应的计算机程序。
背景技术
诸如智能电话的移动装置可以包含其中执行可执行代码的若干执行环境。例如,移动电话通常包含所谓的嵌入式通用集成电路卡(eUICC)和嵌入式安全元件(eSE)。eUICC(其还可以被称为嵌入式订户身份模块(eSIM))是被设计成远程地管理多个移动网络运营商订阅并且符合GSMA规范的安全元件。eSE是防篡改芯片,其可以嵌入到任何移动装置中。具体地说,安全元件(SE)可以是具有已安装或预安装的智能卡级应用(例如支付应用)的防篡改集成电路,所述安全元件具有规定的功能和规定的安全级别。此外,安全元件可以实现安全功能,诸如加密功能和认证功能。移动装置的不同执行环境通常执行彼此不相关的应用。例如,eUICC可以执行与移动网络通信相关的应用,并且eSE可以执行与近场通信(NFC)事务相关的应用。
发明内容
根据本公开的第一个方面,提供一种用于将补丁应用于可执行代码的系统,其包括:多个执行环境,其被配置成在不同的执行上下文中执行所述代码;控制单元,其被配置成将补丁应用于所述代码;其中所述控制单元被配置成在被配置成执行所述具体代码的执行环境切换到对应于所述具体代码的执行上下文时或之后,将具体补丁应用于具体代码。
在实施例中,所述系统还包括执行上下文和补丁之间的映射,其中控制单元被配置成通过根据所述映射选择为执行上下文激活的补丁来确定要应用的具体补丁。
在实施例中,补丁被存储在与存储代码的存储器位置不同的存储器位置中。
在实施例中,控制单元还被配置成对代码和补丁生成校验和。
在实施例中,控制单元还被配置成应用共享补丁,所述共享补丁由具体执行上下文中的多个代码共享。
在实施例中,控制单元被配置成通过将补丁加载到由具体执行上下文中的代码共享的存储器位置来应用共享补丁。
在实施例中,控制单元是管理程序或通用操作系统。
在实施例中,执行环境至少包括嵌入式通用集成电路卡(eUICC)和嵌入式安全元件(eSE)。
在实施例中,执行环境包括操作系统,并且补丁包括可由所述操作系统执行的一个或多个代码的补丁。
在实施例中,代码包括小应用程序,并且补丁包括所述小应用程序的补丁。
根据本公开的第二方面,构想了一种用于将补丁应用于可执行代码的方法,其包括:由多个执行环境在不同的执行上下文中执行所述代码;由控制单元将所述补丁应用于所述代码;由控制单元在被配置成执行所述具体代码的执行环境切换到对应于所述具体代码的执行上下文时或之后,将具体补丁应用于具体代码。
在实施例中,执行上下文被映射到补丁,并且控制单元通过根据映射选择为执行上下文激活的补丁来确定要应用的具体补丁。
在实施例中,补丁被存储在与存储代码的存储器位置不同的存储器位置中。
在实施例中,控制单元对代码和补丁生成校验和。
根据本公开的第三方面,提供一种计算机程序,其包括可执行指令,所述可执行指令在由控制单元执行时执行所阐述类型的方法。
附图说明
将参考附图更详细地描述实施例,在附图中:
图1示出了用于将补丁应用于可执行代码的系统的说明性实施例;
图2示出了用于将补丁应用于可执行代码的方法的说明性实施例;
图3示出了具有多个执行环境的平台的说明性实施例;
图4示出了用于将补丁应用于可执行代码的系统的另一个说明性实施例;
图5示出了用于将补丁应用于可执行代码的系统的另一个说明性实施例。
具体实施方式
诸如智能电话的移动装置可以包含其中执行可执行代码的若干执行环境。例如,移动电话通常包含所谓的嵌入式通用集成电路卡(eUICC)和嵌入式安全元件(eSE)。eUICC(其还可以被称为嵌入式订户身份模块(eSIM))是被设计成远程地管理多个移动网络运营商订阅并且符合GSMA规范的安全元件。eSE是防篡改芯片,其可以嵌入到任何移动装置中。具体地说,安全元件(SE)可以是具有已安装或预安装的智能卡级应用(例如支付应用)的防篡改集成电路,所述安全元件具有规定的功能和规定的安全级别。此外,安全元件可以实现安全功能,诸如加密功能和认证功能。移动装置的不同执行环境通常执行彼此不相关的应用。例如,eUICC可以执行与移动网络通信相关的应用,并且eSE可以执行与近场通信(NFC)事务相关的应用。
除了包含可执行代码的通用操作系统,诸如可由若干执行环境共享的Java卡(JC)操作系统,每个执行环境还可以包含专用的可执行代码,诸如Java虚拟机和全球平台(GP)代码。此外,JC操作系统可以包含例如内核、闪存库和驱动程序。这些部件中的每一个都包括有时需要修补的可执行代码。然而,出于安全原因,所述代码在使用前应经过认证。这种安全认证既昂贵又耗时。因此,不应过于频繁地执行安全认证。
如今,包括安全元件的装置在操作系统中集成了许多功能。此外,服务提供商(诸如支付服务提供商)可能需要操作系统和支付小应用程序两者的认证。在认证之后,操作系统的代码不再能够在没有重新认证的情况下被改变。因此,代码的补丁也将需要重新认证。此外,如果操作系统的证书改变,则在所述操作系统上执行的小应用程序也应被重新认证。因此,小应用程序的功能测试也应重复进行。由于通常多个小应用程序都应经过认证,因此这既昂贵又耗时。现在描述一种用于应用补丁的系统和方法,其可以减少对所述类型的重新认证的需要。
图1示出了用于将补丁应用于可执行代码的系统100的说明性实施例。系统100包括多个执行环境104、110,所述多个执行环境104、110被配置成在不同的执行上下文106、108、112中执行代码。换句话说,每个执行环境104、110可在一个或多个执行上下文106、108、112中执行代码。执行上下文的例子是支付上下文和公共输送上下文,其中执行不同的小应用程序,并且为其预留具体的操作系统资源。此外,系统100包括可操作地联接到执行环境104、110的控制单元102。控制单元102被配置成将补丁应用于代码。此外,控制单元102被配置成在被配置成执行具体代码的执行环境切换到对应于具体代码的执行上下文时或之后,将所述补丁中的具体一个应用于所述代码中的具体一个。以这种方式,可以针对目标上下文动态地应用补丁。应注意,补丁可以是插入到程序中以改善其功能或纠正错误的一小块代码,或者更通常地,是修改或更新现有代码的任何代码。
具体地说,操作系统将在不同的执行上下文之间切换,以便于具体代码(例如,操作系统代码和小应用程序)的执行。切换到特定上下文用作将具体补丁应用于在所述上下文中执行的代码的触发器。所述补丁不应用于在其它上下文中执行的代码。因此,在其它上下文中执行的代码不会改变,并不需要被重新认证。应注意,上下文是指一组分配的资源,例如一组加载的变量和/或预留的存储器位置,用于在所述上下文内执行应用。例如,每个上下文可以具有预留的存储器空间,并且可以具有预留的硬件资源(例如,外围装置访问)。在这个意义上,每个上下文都可以具有专用的非易失性和易失性存储器空间。执行的小应用程序也是具体于上下文的。因此,如果小应用程序被加载到一个上下文中,则它通常不能在另一个上下文中执行,除非它被加载到另一个上下文中。全局变量也可以是具体于上下文的,并且如果需要,则可以将它们复制以使每个上下文都有自己的变量。应注意,不同的上下文可以共享相同的代码,但通常不会共享数据。
在实施例中,系统100还包括执行上下文和补丁之间的映射,并且控制单元102被配置成通过根据所述映射选择为执行上下文106、108、112激活的补丁来确定要应用的具体补丁。以这种方式,针对目标上下文动态地应用补丁变为更加容易。映射可以例如被实现为表格或列表或另一种表示。在实际和有效的实现方式中,控制单元102可以包含这种表或列表。
在实施例中,补丁被存储在与存储代码的存储器位置不同的存储器位置中。以这种方式,原始代码不会被覆盖,并且属于另一个上下文的代码受目标上下文的补丁影响的风险是小的。此外,在实施例中,控制单元102被配置成对代码和补丁生成校验和。以这种方式,可以证明属于目标上下文之外的上下文的代码没有被改变。这进而可以足以避免这些代码的重新认证。
在实施例中,控制单元102还被配置成应用共享补丁。这些补丁由具体执行上下文中的多个代码共享。例如,不仅可以区分支付上下文和公共输送上下文,并且且可以将完整的eSE或eUICC视为较高级别的执行上下文。在那种情况下,共享补丁可以应用于给定上下文中的所有代码。这个共享补丁也可以动态地应用。在实际和有效的实现方式中,控制单元102被配置成通过将共享补丁加载到由具体执行上下文中的代码共享的存储器位置来应用共享补丁。可替换的是,可以通过在当前存储器位置激活共享补丁来应用共享补丁,即无需将它们加载到共享存储器位置,例如通过利用硬件观察点。
在实施例中,控制单元102是管理程序或通用操作系统。管理程序导致实用和有效的实现方式。管理程序或虚拟机监测器(VMM)是创建和运行虚拟机的计算机软件、固件或硬件。因此,它可以控制实现不同的执行环境的虚拟机。控制单元102还可以在诸如JC操作系统内核的通用操作系统中实现。如上所述,执行环境可以至少包括嵌入式通用集成电路卡(eUICC)和嵌入式安全元件(eSE)。
在实施例中,执行环境包括操作系统,并且补丁包括可由所述操作系统执行的一个或多个代码的补丁。可替换的是,或另外地,代码包括小应用程序,并且补丁包括所述小应用程序的补丁。
图2示出了用于将补丁应用于可执行代码的方法200的说明性实施例。方法200包括:在202处,由多个执行环境在不同的执行上下文中执行代码;在204处,由控制单元将补丁应用于所述代码;以及在206处,由控制单元在被配置成执行所述具体代码的执行环境切换到对应于所述具体代码的执行上下文时或之后,将具体补丁应用于具体代码。如上所述,以这种方式,可以针对目标上下文动态地应用补丁。
图3示出了具有多个执行环境的平台300的说明性实施例。执行环境包含独立的数据和代码302、304,这意味着一个执行环境中的数据和代码不依赖于另一个执行环境中的数据和代码。在所述例子中,eUICC是包含独立数据和代码304的一个执行环境,并且eSE是包含独立数据和代码302的另一个执行环境。eUICC包含一个执行上下文,即用于执行移动网络应用,并且eSE包含两个执行上下文,一个用于执行公共输送应用(输送小应用),一个用于执行支付应用(EMV小应用)。执行环境也可以被称为域。通用操作系统306在本例子中是JC操作系统内核,它提供eSE域和eUICC域的分开。例如,除了在不同域之间共享的代码之外,还可能存在专用代码和数据,即具体于各个域并且仅在各个域中使用的代码和数据。在这个意义上,用于给定域的共享代码和专用代码和数据的组合可以被视为独立的操作系统。eSE域的独立操作系统可以例如支持支付、输送、认证、电子政务和超宽带(UWB)应用的执行。eUICC域的独立操作系统可以支持移动网络应用的执行。两个操作系统将彼此独立地工作。管理程序310管理不同执行上下文之间的切换。因此,管理程序将知道在给定时刻哪个执行上下文是活动的。如上所述,eSE域和eUICC域作为整体可以被视为不同的执行上下文。另外,可在特定域(例如,eSE域内的支付上下文和公共输送上下文)内区分不同的执行上下文。管理程序310被配置成管理这些上下文。在此类情况下,JC操作系统可能必须通知管理程序具体的执行上下文在给定的域中变为活动的。然后,管理程序可以为所述上下文启用或禁用对应的一个或多个补丁。
图4示出了用于将补丁应用于可执行代码的系统400的另一个说明性实施例。系统400包括控制单元402、包含执行上下文和补丁之间的映射的表404、以及多个补丁406、408、410、412、414。在运行时间,针对给定的活动执行上下文,控制单元402可以通过查找补丁406、408、410、412、414中的哪些被映射到所述活动执行上下文来应用补丁406、408、410、412、414。例如,如果eUICC上下文是活动的,则应应用识别为ID1、ID2、IDn的补丁,如果传输上下文是活动的,则仅应应用识别为ID2的补丁,并且支付上下文是活动的,则应应用识别为ID2和ID4的补丁。
更具体地说,控制单元402(例如,通用操作系统或管理程序)维护注册表(例如,表),在所述注册表中,系统中可用的所有补丁被映射到一个或多个执行上下文。当补丁被应用于芯片时,它被存储在单独的位置(例如,专用的闪存页),并且被分配给一个或多个执行上下文(这是补丁的元信息)。控制单元402将所述信息存储在注册表中。当上下文切换发生时,控制单元402访问注册表并且检查应应用哪个补丁或哪些补丁。随后,控制单元402可以应用所述一个补丁或多个补丁。
图5示出了用于将补丁应用于可执行代码的系统500的另一个说明性实施例。具体地说,示出了修补之前的存储器502的状态,以及修补之后的存储器504的状态。共享代码补丁应用于在eSE域和eUICC域之间共享的代码,但仅应用于执行上下文“eSE作为整体”。换句话说,如果eSE上下文不是活动的,则共享代码补丁不应用于共享代码。此外,应用了eSE代码的补丁。系统500包括管理程序512,其被配置成控制基于硬件的存储器管理单元(MMU)或存储器保护单元(MPU)。如参考图4所解释的,管理程序512在表中查找如果eSE上下文是活动的,则应应用哪些补丁,并且例如通过将新代码映射到共享存储器区域来应用所述补丁。应注意,还存在用于针对给定上下文激活补丁的替代方式。例如,可以使用观察点向量或分支表。此外,与非活动上下文相关的代码和其它数据可以被MPU阻止。
对于不使用补丁的执行上下文,可以应用校验和来证明仍然执行未经修改的原始认证代码。具体地说,如图5示出的,对于不使用补丁的执行上下文,代码校验和在补丁之前和之后将是相同的。这证明代码没有被修改或修补。在当前活动上下文中的运行时间期间计算校验和。为此,操作系统或管理程序512将支持应用编程接口(API)或应用协议数据单元(APDU)。可以将校验和与认证原始构建的校验和进行比较。每个域或上下文都将具有专用校验和,例如,一个用于eUICC,一个用于eSE。如果应用了小补丁,则管理程序512将把新代码映射到共享存储器区域(经由MMU或经由重新排序映射-ram)。这改变了在当前域中可见的代码,因此校验和也是不同的。基本上,闪存页由具有新代码的另一个闪存页代替。如果补丁不能就地应用,则它必须被放置在快闪存储器中的新位置处。但是,要调用这个新位置,必须修改原始代码以跳转到或调用新功能。这将改变校验和。因此,在这两种情况下,校验和机制都可以提供期望的证明。另外,管理程序补丁机制可在校验和计算中包括补丁代码。为了提高安全级别,还对管理程序校验和机制进行了认证。
本文描述的系统和方法可以至少部分地由计算机程序或多个计算机程序来实现,所述计算机程序或多个计算机程序可在单个计算机系统中或跨多个计算机系统以活动和非活动两者的多种形式存在。例如,它们可以作为由源代码、目标代码、可执行代码或用于执行一些步骤的其它格式的程序指令组成的软件程序而存在。上面的任一个可以在计算机可读介质上实施,所述计算机可读介质可以包括以压缩或未压缩形式的存储装置和信号。
如本文所使用的,术语“计算机”是指包括处理器(诸如通用中央处理单元(CPU)、专用处理器或微控制器)的任何电子装置。计算机能够接收数据(输入),在其上执行一系列预定操作,并且由此产生信息或信号形式的结果(输出)。视上下文而定,术语“计算机”具体地说将意指处理器,或者更通常地意指与包含在单个外壳或壳体内的相关联元件的集合相关联的处理器。
术语“处理器”或“处理单元”是指数据处理电路,其可以是微处理器、协处理器、微控制器、微型计算机、中央处理单元、现场可编程门阵列(FPGA)、可编程逻辑电路、和/或基于存储在存储器中的操作指令操纵信号(模拟或数字)的任何电路。术语“存储器”是指存储电路或多个存储电路,诸如只读存储器、随机存取存储器、易失性存储器、非易失性存储器、静态存储器、动态存储器、快闪存储器、高速缓冲存储器和/或存储数字信息的任何电路。
如本文所使用的,“计算机可读介质”或“存储介质”可以是能够包含、存储、通信、传播或传输由指令执行系统、设备或装置使用或与其结合使用的计算机程序的任何手段。计算机可读介质可以是,例如但不限于,电子、磁、光、电磁、红外或半导体系统、设备、装置或传播介质。计算机可读介质的更具体的例子(非穷举列表)可以包括以下:具有一个或多个导线的电连接件、便携式计算机磁盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便携式光盘只读存储器(CDROM)、数字多功能盘(DVD)、蓝光光盘(BD)和存储卡。
应注意,已经参考不同的主题描述了上述实施例。具体地说,一些实施例可能已经参考方法类型的权利要求进行了描述,而其它实施例可能已经参考设备类型的权利要求进行了描述。然而,本领域技术人员将从上述内容中了解到,除非另有说明,除了属于一种主题类型的特征的任何组合之外,与不同主题相关的特征的任何组合,尤其是方法类型权利要求的特征和设备类型权利要求的特征的组合,被视为与本文件一起公开的。
此外,应注意,附图是示意性的。在不同的附图中,类似或相同的元件被提供有相同的附图标记。此外,要注意的是,为了提供说明性实施例的简明描述,可能没有描述落入本领域技术人员的习惯实践中的实现细节。应理解,在任何此类实现方式的开发中,如同在任何工程或设计项目中一样,必须做出许多具体于实现方式的决定,以便实现开发者的具体目标,诸如符合系统相关和商业相关的约束,所述约束可能因实现方式的不同而不同。而且,应理解,此类开发努力可能是复杂且耗时的,但是对于普通技术人员来说,这将是设计、构造和制造的程序任务。
最后,应注意,在不脱离所附权利要求书的范围的情况下,技术人员将能够设计许多替代实施例。在权利要求中,放置在括号之间的任何附图标记都不应被解释为限制权利要求。词语“包括”或“包含”不排除权利要求中列出的元件或步骤之外的元件或步骤的存在。元件之前的单词“一”或“一个”不排除多个这种元件的存在。权利要求中陈述的措施可以借助于包括若干不同元件的硬件和/或借助于适当编程的处理器来实现。在列举了若干手段的装置权利要求中,这些手段中的若干可由同一个硬件来实施。在相互不同的从属权利要求中陈述某些措施的事实并不指示这些措施的组合不能被有利地使用。
附图标记列表
100 用于将补丁应用于可执行代码的系统;
102 控制单元;
104 执行环境;
106 执行上下文;
108 执行上下文;
110 执行环境;
112 执行上下文;
200 用于将补丁应用于可执行代码的方法;
202 由多个执行环境在不同的执行上下文中执行代码;
204 由控制单元将补丁应用于所述代码;
206 由所述控制单元在被配置成执行所述具体代码的执行环境切换到对应于所述具体代码的执行上下文时或之后,将具体补丁应用于具体代码;
300 具有多个执行环境的平台;
302 独立数据/代码;
304 独立数据/代码;
306JC 操作系统内核;
308 闪存库;
310 管理程序;
312 硬件;
314 驱动程序;
400 用于将补丁应用于可执行代码的系统;
402 控制单元;
404 表;
406 补丁ID1;
408 补丁ID2;
410 补丁ID3;
412 补丁ID4;
414 补丁IDn:
500 用于将补丁应用于可执行代码的系统;
502 修补前的存储器;
504 修补后的存储器;
506 eSE OS活动;
508 eUICC活动;
510 包括存储器管理单元和存储器保护单元的硬件;
51 2管理程序;
514 eUICC代码校验和;
516 eSE代码校验和;
518 eUICC代码校验和;
520 eSE代码校验和。
Claims (10)
1.一种用于将补丁应用于可执行代码的系统,其特征在于,包括:
多个执行环境,其被配置成在不同的执行上下文中执行所述代码;
控制单元,其被配置成将所述补丁应用于所述代码;
其中所述控制单元被配置成在被配置成执行具体代码的执行环境切换到对应于所述具体代码的执行上下文时或之后,将具体补丁应用于所述具体代码。
2.根据权利要求1所述的系统,其特征在于,进一步包括执行上下文和补丁之间的映射,其中所述控制单元被配置成通过根据所述映射来选择为所述执行上下文激活的补丁来确定要应用的所述具体补丁。
3.根据在前的任一项权利要求所述的系统,其特征在于,所述补丁被存储在与存储所述代码的存储器位置不同的所述存储器位置中。
4.根据在前的任一项权利要求所述的系统,其特征在于,所述控制单元进一步被配置成对所述代码和所述补丁生成校验和。
5.根据在前的任一项权利要求所述的系统,其特征在于,所述控制单元进一步被配置成应用共享补丁,所述共享补丁由具体执行上下文中的多个代码共享。
6.根据权利要求5所述的系统,其特征在于,所述控制单元被配置成通过将所述补丁加载到由所述具体执行上下文中的所述代码共享的存储器位置来应用所述共享补丁。
7.根据在前的任一项权利要求所述的系统,其特征在于,所述执行环境包括操作系统,并且其中所述补丁包括能够由所述操作系统执行的一个或多个代码的补丁。
8.根据在前的任一项权利要求所述的系统,其特征在于,所述代码包括小应用程序,并且其中所述补丁包括所述小应用程序的补丁。
9.一种用于将补丁应用于可执行代码的方法,其特征在于,包括:
由多个执行环境在不同的执行上下文中执行所述代码;
由控制单元将所述补丁应用于所述代码;
由所述控制单元在被配置成执行具体代码的执行环境切换到对应于所述具体代码的执行上下文时或之后,将具体补丁应用于所述具体代码。
10.一种包括可执行指令的计算机程序,其特征在于,当所述可执行指令由控制单元执行时,所述可执行指令执行根据权利要求9所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP19169052.8A EP3722981A1 (en) | 2019-04-12 | 2019-04-12 | System and method for applying patches to executable codes |
EP19169052.8 | 2019-04-12 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111814209A true CN111814209A (zh) | 2020-10-23 |
Family
ID=66396979
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010240372.7A Pending CN111814209A (zh) | 2019-04-12 | 2020-03-30 | 用于将补丁应用于可执行代码的系统和方法 |
Country Status (3)
Country | Link |
---|---|
US (1) | US11321076B2 (zh) |
EP (1) | EP3722981A1 (zh) |
CN (1) | CN111814209A (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7459899B2 (ja) | 2022-08-01 | 2024-04-02 | 大日本印刷株式会社 | 電子情報記憶媒体、検証方法、およびプログラム |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130283257A1 (en) * | 2012-04-24 | 2013-10-24 | Apple Inc. | Methods and apparatus for user identity module update without service interruption |
CN104331275A (zh) * | 2014-08-26 | 2015-02-04 | 大唐微电子技术有限公司 | 一种Java卡及其应用打补丁的方法 |
US20150193222A1 (en) * | 2014-01-03 | 2015-07-09 | Kiushan Pirzadeh | Systems and methods for updatable applets |
US20150334126A1 (en) * | 2014-05-15 | 2015-11-19 | Lynx Software Technologies, Inc. | Systems and Methods Involving Aspects of Hardware Virtualization Such as Hypervisor, Detection and Interception of Code or Instruction Execution Including API Calls, and/or Other Features |
CN107391085A (zh) * | 2017-06-20 | 2017-11-24 | 深圳芯邦科技股份有限公司 | 一种rom代码补丁运行方法和系统 |
EP3324655A1 (en) * | 2016-11-17 | 2018-05-23 | Gemalto SA | Method for managing a patch of a sofware component in a euicc |
US20190391857A1 (en) * | 2018-06-21 | 2019-12-26 | International Business Machines Corporation | Consolidating Read-Copy Update Flavors Having Different Notions Of What Constitutes A Quiescent State |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2009156884A1 (en) | 2008-06-27 | 2009-12-30 | Nxp B.V. | Method of interruption of meta language program code execution |
CN102722387B (zh) | 2012-05-29 | 2015-07-08 | 华为技术有限公司 | 动态打补丁的方法和装置 |
EP2884692B1 (en) * | 2013-12-13 | 2020-05-20 | Nxp B.V. | Updating software on a secure element |
US9483249B2 (en) * | 2014-01-06 | 2016-11-01 | Apple Inc. | On-board applet migration |
US10019569B2 (en) | 2014-06-27 | 2018-07-10 | Qualcomm Incorporated | Dynamic patching for diversity-based software security |
SG10201710449TA (en) * | 2014-10-10 | 2018-01-30 | Visa Int Service Ass | Methods and systems for partial personalization during mobile application update |
EP3208717A1 (en) * | 2016-02-17 | 2017-08-23 | Gemalto Sa | Method for managing objects in a secure element |
EP3608816A1 (en) * | 2018-08-08 | 2020-02-12 | Nxp B.V. | Processing system and method of executing functions |
WO2020171672A1 (en) * | 2019-02-22 | 2020-08-27 | Samsung Electronics Co., Ltd. | Method for interoperating between bundle download process and esim profile download process by ssp terminal |
-
2019
- 2019-04-12 EP EP19169052.8A patent/EP3722981A1/en active Pending
-
2020
- 2020-03-30 CN CN202010240372.7A patent/CN111814209A/zh active Pending
- 2020-04-06 US US16/841,109 patent/US11321076B2/en active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130283257A1 (en) * | 2012-04-24 | 2013-10-24 | Apple Inc. | Methods and apparatus for user identity module update without service interruption |
US20150193222A1 (en) * | 2014-01-03 | 2015-07-09 | Kiushan Pirzadeh | Systems and methods for updatable applets |
US20150334126A1 (en) * | 2014-05-15 | 2015-11-19 | Lynx Software Technologies, Inc. | Systems and Methods Involving Aspects of Hardware Virtualization Such as Hypervisor, Detection and Interception of Code or Instruction Execution Including API Calls, and/or Other Features |
CN104331275A (zh) * | 2014-08-26 | 2015-02-04 | 大唐微电子技术有限公司 | 一种Java卡及其应用打补丁的方法 |
EP3324655A1 (en) * | 2016-11-17 | 2018-05-23 | Gemalto SA | Method for managing a patch of a sofware component in a euicc |
CN107391085A (zh) * | 2017-06-20 | 2017-11-24 | 深圳芯邦科技股份有限公司 | 一种rom代码补丁运行方法和系统 |
US20190391857A1 (en) * | 2018-06-21 | 2019-12-26 | International Business Machines Corporation | Consolidating Read-Copy Update Flavors Having Different Notions Of What Constitutes A Quiescent State |
Also Published As
Publication number | Publication date |
---|---|
US20200326929A1 (en) | 2020-10-15 |
EP3722981A1 (en) | 2020-10-14 |
US11321076B2 (en) | 2022-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107273744B (zh) | 电子装置和保护方法 | |
US9361470B2 (en) | Secure element comprising separated containers and corresponding method | |
US10268845B2 (en) | Securing of the loading of data into a nonvolatile memory of a secure element | |
CN110471690B (zh) | 动态链接库so文件的加载方法、装置及存储介质 | |
CN107567629A (zh) | 在可信执行环境容器中的动态固件模块加载器 | |
US20170124339A1 (en) | Implementing method for javacard application function expansion | |
CN105938596B (zh) | 用于方便交易的装置和方法 | |
EP3286682B1 (en) | Method of managing applications in a secure element when updating the operating system | |
CN107943544B (zh) | 一种内核补丁的加载方法及装置 | |
US11321076B2 (en) | System and method for applying patches to executable codes | |
US10223291B2 (en) | Secure execution of native code | |
US10459851B2 (en) | Method and apparatus for executing a process on a device using memory privileges | |
US20170243105A1 (en) | Information processing apparatus, information processing method, and program | |
CN107392010B (zh) | 执行Root操作的方法及装置、终端设备、存储介质 | |
KR100890251B1 (ko) | 애플릿 패치 시스템 및 애플릿 패치 방법 | |
JP7202543B2 (ja) | eUICCおよびeUICCのプロビジョニング方法 | |
US20200050491A1 (en) | Processing system and method of executing functions | |
CN113282363A (zh) | 一种优化混合app的方法及装置 | |
US10489775B2 (en) | Integrated circuit card adapted to transfer first data from a first application for use by a second application | |
JP2021069050A (ja) | eUICCおよびeUICCの発行方法 | |
CN111008375B (zh) | 一种数据保护方法及装置 | |
JP6710942B2 (ja) | Icカード、データ保護方法、セキュリティ関連プログラム、及び通信システム | |
KR20230034178A (ko) | 변환된 애플릿 파일의 업데이트 방법들 및 단말, 및 자바 카드 장치 | |
CN112712356A (zh) | 一种配置Java Card参数的方法和系统 |
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 |