CN117716361A - 安全元件中操作系统的更新 - Google Patents
安全元件中操作系统的更新 Download PDFInfo
- Publication number
- CN117716361A CN117716361A CN202280052746.XA CN202280052746A CN117716361A CN 117716361 A CN117716361 A CN 117716361A CN 202280052746 A CN202280052746 A CN 202280052746A CN 117716361 A CN117716361 A CN 117716361A
- Authority
- CN
- China
- Prior art keywords
- update agent
- file system
- operating system
- update
- temporary file
- 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 claims abstract description 48
- 238000004590 computer program Methods 0.000 claims abstract description 11
- 238000004519 manufacturing process Methods 0.000 claims description 27
- 230000004044 response Effects 0.000 claims description 17
- 230000007246 mechanism Effects 0.000 claims description 6
- 230000008569 process Effects 0.000 abstract description 18
- 238000004891 communication Methods 0.000 description 8
- 230000003993 interaction Effects 0.000 description 7
- 230000006870 function Effects 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000009434 installation Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000001419 dependent effect Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000009849 deactivation Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012552 review Methods 0.000 description 1
- 230000011664 signaling Effects 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012546 transfer 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/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
- G06F21/572—Secure firmware programming, e.g. of basic input output system [BIOS]
-
- 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/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
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/61—Installation
- G06F8/63—Image based installation; Cloning; Build to order
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种用于更新管理安全元件SE(100)中的文件系统(32)的操作系统OS(30)的方法。该方法包括以下步骤:在SE(100)中提供S1更新代理(10);由更新代理(10)从操作系统(30)承担SE(100)的控制S3;将OS映像(31)加载S4到SE(100)中,OS映像(31)表示操作系统(30)的更新;通过安装OS映像(31)来提供S5a更新的操作系统(30);以及由更新代理(10)将SE(100)的控制移交S6给更新的操作系统(30)。在该更新过程中,更新代理(10)在SE(100)中提供S1a临时文件系统(12),并且只要更新代理(10)控制SE(100),就管理S5a临时文件系统(12)。本发明还涉及相应的安全元件(100)、相应的更新代理(10)以及相应的计算机程序产品。
Description
技术领域
本发明总体上涉及安全元件,并且具体地涉及用于更新安全元件的操作系统的方法、配备有具有更新能力的更新代理的安全元件、以及相应的更新代理和计算机程序产品。
背景技术
智能卡广泛用于诸如移动电话、支付卡、访问卡的各种系统中,以提供识别、认证和数据存储服务以及应用程序处理。
在智能卡包含安全关键应用程序和敏感数据的情况下,诸如在支付卡等的情况下,使用安全元件来存储数据。安全元件是防篡改元件TRE,其提供安全的存储器和执行环境,其中可以安全地存储和管理应用程序代码和应用程序数据。安全元件确保仅在被授权时才提供对存储在卡上的数据的访问。这样的安全元件可以以任何外形因素存在,诸如UICC、嵌入式SE、smartSD、智能microSD等。
安全元件可包括一个或多个安全域,每个安全域包括使用安全密钥进行认证的数据集合,诸如操作系统、个性化数据、包、小应用程序、应用程序等。因此,操作系统和应用程序存储在安全元件内的易失性和非易失性存储器模块中,并且由安全元件的安全处理器执行。
安全元件还可以包括根据ISO/IEC 7816-4的文件系统,其形式为分层文件结构,该分层文件结构包括主文件和多个专用文件(DF)以及基本文件(EF),分别作为目录和数据文件。在安全元件或连接到安全元件的外部终端上执行的应用程序可以选择EF并对EF的数据执行读/写操作。安全元件的通信接口以及其与外部终端的交互在标准ETSI TS102 221(智能卡;UICC-终端接口;物理和逻辑特性)中(例如,在版本v15.2.0中)指定。
此外,用于防篡改元件的全球平台卡片技术开放固件加载器规范(thespecification Global Platform Card Technology Open Firmware Loader for TamperResistant Element)v1.3描述了用于将固件(可能包含操作系统和应用程序数据的用例相关数据)加载到安全元件中的标准化机制。具体地,在安全元件内部提供的映像可信加载器ITL或更新代理被配置为接收操作系统映像,对映像执行真实性和完整性检查,并且触发将映像安装到安全元件的存储器中。
在接收、检查和安装操作系统的整个过程中,ITL或更新代理控制安全元件,并且特别地负责其与安全元件可以例如经由根据ISO/IEC 7816-4的传入和传出APDU消息连接的外部实体或终端的通信。同样地,在操作系统更新的过程中,存在更新代理负责安全元件的时段,因为操作系统既不可操作也还没完成更新过程。
图1示出了将固件(例如,操作系统OS)加载到安全元件中的常规过程的示意图。上行示出了负责对应的生产阶段(I、II、III、IV)的实体,而下行示出了特定生产阶段中的安全元件(即,芯片)的内容。在芯片生产场所(即,芯片工厂)处的第一生产阶段I期间,芯片制造商提供要加载有可信软件(诸如安全操作系统)的安全元件100。初始安全OS 30利用凭证13来个性化,并且个性化的安全OS映像(在图1中由“maxiInit”标识)与更新代理一起被加载在芯片内。然后,具有其OS的芯片可以嵌入在便携式设备中(阶段II)或交付给另一个设备制造商以包括在更大的电子设备(如智能电话、计算机、汽车、测量设备等)中(阶段III),并最终发布到市场(阶段IV)。
与这种常规方法互补,可能需要改变或更新加载在芯片上的OS,直到甚至在嵌入式芯片被交付到市场之后,因为可信软件(诸如操作系统)可以经由SE的更新代理被加载到任何地方。然而,在OS映像被加载到SE上并作为更新的OS被安装的场景中,连接到安全元件的外部终端的命令或请求可能不会被正确地响应,因为常规文件系统和相关数据在操作系统更新期间不可用。
更新代理不能处理这样的外部请求可能导致终端对安全元件的停用,因为它在OS更新期间没有从SE接收到有意义的响应。出于安全原因,这甚至可能使SE完全不可用。
因此,仍然需要提供一种解决上述缺点的用于更新安全元件的操作系统的解决方案。
发明内容
本发明通过独立权利要求所涵盖的主题来解决上述目的。本发明的优选实施例在从属权利要求中限定。
根据本发明的第一方面,提出了一种用于更新管理安全元件SE中的文件系统的操作系统OS的方法。该方法包括在第一步骤中在SE中提供更新代理。在进一步的步骤中,更新代理从操作系统承担对SE的控制。此外,OS映像被加载到SE中,其表示当前安装的操作系统的更新。通过安装OS映像,在SE上提供更新的操作系统。在最后的步骤中,更新代理将SE的控制移交给更新的操作系统。为了克服上述缺点,更新代理在SE中提供临时文件系统,并且只要更新代理负责SE,即,在从OS承担控制与将控制移交回更新的OS之间的时段期间,就管理临时文件系统。
在整个本申请中,术语“操作系统”应涵盖操作安全元件所需的并且在安全元件中加载和执行的任何可信的系统关键软件或其部分。这种可信软件的示例包括固件、操作系统和操作SE所需的任何其他依赖于用例的安全应用程序。表述“OS映像”是指封装要由操作系统或SE的代理(诸如根据本发明的更新代理)使用的软件版本和密码数据的通用数据格式。
所提出的方法提供了一种有效且安全的解决方案,用于在更新可信软件的操作系统时,在不中断外部终端与安全元件的交互的情况下更新可信软件,并且因此在SE不被停用或断开的情况下更新可信软件。
因为只要更新代理控制SE及其与外部终端的通信,临时文件系统就被管理,它就替换了暂时不可用的常规文件系统,并使更新代理能够以有意义的方式处理来自外部终端的命令或请求。换句话说,临时文件系统模拟或者甚至可以推断“模拟”常规文件系统到所连接的终端接收到响应其命令和请求的有意义的响应的程度。因此,因为SE与终端之间的交互不被中断,所以安全元件不需要被外部终端停用或断开。
在一些实施例中,由更新代理提供的临时文件系统可以仅包含最小功能和/或最小数据以允许处理来自外部终端的命令。由于临时文件系统的最小功能和/或数据,所需的存储器空间也被最小化,使得临时文件系统适合在更新过程期间更新代理可用的有限存储器空间内。
在一些实施例中,临时文件系统可以被充分地构造和/或配备有足够的数据,使得对于外部终端透明的是,仅临时文件系统可用而不是常规文件系统可用。优选地,对于外部终端特别透明的是,它不是管理可用文件系统的SE的操作系统,而是更新代理。由此,可以可靠地防止外部终端对SE的停用或断开。
本发明提供了以下优点:供应文件系统需要比常规文件系统少得多的存储器空间,但是仍然被充分配置为当更新代理负责SE及其通信和接口时,允许对来自外部终端的命令或请求的有意义的响应,该外部终端在OS更新期间寻址SE。
事实上,在更广泛的范围上,本发明的另一个优点是配备有根据本发明的更新代理的SE支持处理操作系统或操作安全元件所需的另一个可信的系统相关软件的中间非功能状态。例如,在系统从一个状态转换到另一个状态时,本发明通过提供适当的明确定义的行为来确保外部实体或终端在转换情况下与SE接合或继续与SE接合。
更新代理在芯片工厂的初始生产阶段中被加载到SE中,即在芯片制造站点的安全环境内(在图1中被称为阶段I)。优选地,包括安全凭证的个性化数据与更新代理一起被加载到安全元件中,从而确保严格的安全条件并保护机密数据免受未经授权的修改。如果应用确保篡改保护的安全措施,则可以在初始生产阶段或后续阶段在SE上加载、个性化和安装初始操作系统。然而,可能需要在SE的生命周期的稍后阶段更新初始操作系统,例如在初始生产阶段之后的阶段(在图1中称为阶段II、III、IV)。
优选地,临时文件系统被提供在更新代理内或作为更新代理的一部分,例如作为更新代理的个性化数据的一部分或被包括在更新代理的个性化数据中。因此,由于临时文件系统被实现为更新代理的一部分,后者提供临时文件系统,使得它可以由更新代理管理,从而只要更新代理在SE的控制中就临时替换不可用的常规文件系统。在这种情况下,在更新代理的加密密钥的个性化过程中提供临时文件系统。因此,在安全元件的生产阶段期间在安全环境内提供临时文件系统。
可以重复由可信更新代理进行的更新安装的操作系统的过程。因此,如果需要,再次更新已经更新的操作系统。原则上,在安装时提供当前安装的操作系统和/或相应个性化数据的更新的操作系统映像可以在初始生产阶段期间加载,或者可以在后续阶段中加载,只要这种加载以防篡改和可信的方式进行。
无论哪种方式,在某个点,更新代理从要更新的操作系统承担对SE的控制,使得实际上,到这个时间点,操作系统不再负责SE,并且不能控制其处理和交互。特别地,因为只要SE不在常规操作系统的控制下,常规文件系统就不可用,所以更新代理被配置为通过提供和管理临时文件系统来克服在没有常规操作系统的情况下SE的其他受限功能。当操作系统由于其更新而被停用时,更新代理从操作系统承担控制。
实质上,如果更新代理在负责,则临时文件系统被管理并且因此是激活的。一旦完成OS的更新,控制就切换到更新的OS,常规文件系统被管理/激活,而临时文件系统不再激活。
归因于临时文件系统在当前操作系统不再存在并且更新的操作系统尚未控制SE的时期内的可用性,本发明提供了一种用于在现场更新操作系统的有效且安全的解决方案,因为临时文件系统确保了SE的最小功能和互操作性,从而防止外部终端停用或断开SE。因此,当在芯片工厂中在SE的初始生产阶段期间将更新代理加载到SE中时,在SE的初始生产阶段之后,在安全元件的生命周期的后续阶段中,可以将OS映像加载到SE中和/或可以将加载的OS映像安装在SE上,从而提供用于在安全元件的生命周期期间的任何时间更新操作系统并防止传统更新方案的缺点的灵活解决方案。
在一些实施例中,临时文件系统被构造为特定数据记录,优选地被构造为由数据分组标识符DGI标识的数据分组。DGI确定如何构造数据分组以及如何访问和处理数据分组。表示临时文件系统和相应DGI的数据分组优选地可以是由SE的制造商定义并在更新代理中编码的专有结构。在提供临时文件系统时,基于由DGI标识的其规范在SE内创建相应的数据分组。数据分组根据其指定结构存储在SE的存储器中,例如存储在其非易失性存储器中。优选地,表示临时文件系统的数据分组存储在更新代理的特定存储器结构中。
优选地,数据分组提供表示根据ISO/IEC 7816-4的分层智能卡文件系统的内部结构,包括专用文件DF和基本文件EF。临时文件系统的DFs和EFs表示对临时不可用的常规文件系统的DFs和EFs的最小选择,而临时文件系统的分层文件结构镜像临时文件系统临时替换或模拟的常规文件系统的结构和文件。
优选地,所提供的数据分组和分层文件结构在逻辑上以反映各个文件的分层父/子关系的TLV格式(标签、长度、值)来组织。也就是说,临时文件系统的每个文件被编码为TLV项,其具有标识文件类型的二进制代码(标签)、字节大小的指示(长度)和携带相应文件的数据的指定大小的数据字段(值)。
当更新代理控制SE时,如果外部终端向SE发送指向基本文件的命令(例如通过命令APDU),则通过提供指向表示相应文件的TLV项的标签的指针来选择EF。指向所选文件的指针由更新代理保持,使得指向所选文件的外部终端的命令可以由更新代理处理并响应(例如由响应-APDU)。
当更新代理控制SE时,如果外部终端向SE发送与临时文件系统的特定文件无关的命令,则更新代理可以响应状态码或状态字节,该状态码或状态字节发信令通知该命令被处理,而实际上,该命令不被更新代理处理,或者该处理被推迟直到常规文件系统可用。然而,状态码相对于外部终端发信令通知SE是可操作的并且不需要被停用。
根据本发明的第二方面,提供了一种安全元件,所述安全元件包括管理文件系统的操作系统和被配置为执行如上所述的方法的更新代理。特别地,更新代理被配置为从操作系统承担对SE的控制;将表示所述操作系统的更新的OS映像加载到所述SE中;安装OS映像,并由此提供更新的操作系统;以及最终将SE的控制移交给更新的操作系统。为了防止外部终端由于缺少对终端请求的响应或对终端请求的错误响应而停用或断开安全元件,更新代理提供或被配置为在SE中提供临时文件系统,并且在更新代理控制SE的时段期间(即,直到更新的操作系统承担对SE的控制并提供其常规功能和互操作性)管理临时文件系统。
根据本发明的第三方面,提供了一种更新代理,其被配置为执行如上所述的方法。更新代理优选地被实现为可执行软件产品,该可执行软件产品被配置为安装在根据第二方面公开的安全元件上,并且由安全元件的处理器执行,以便执行根据本发明第一方面公开的方法。
根据本发明的又一方面,提供了一种用于与根据第二方面的安全元件结合使用的计算机程序,该安全元件被嵌入或可以被嵌入在电子设备中。该计算机程序产品包括非暂态计算机可读存储介质和嵌入其中的计算机程序机制,以将软件加载到电子设备中的安全元件中。该计算机程序机制包括用于以下操作的指令:从操作系统承担对所述SE的控制;用于将表示操作系统的更新的OS映像加载到所述SE中;用于通过安装OS映像来提供更新的操作系统;用于将更新代理对SE的控制移交给更新的操作系统;以及用于在SE中提供临时文件系统,并且用于只要更新代理处于SE的控制中就管理临时文件系统。
必须注意,本申请中描述的所有过程、设备、元件、单元和装置可以以软件或硬件元件或其组合来实现。由本申请中描述的各种实体执行的所有步骤以及所描述的功能旨在表示相应的实体适于或被配置为执行相应的步骤和功能。
在结合附图阅读本发明的优选实施例和变型的以下详细描述后,本发明的其他方面、特征和优点对于本领域普通技术人员将变得显而易见。
附图说明
现在将参考附图,其中:
图1示出了具有更新代理的安全元件的常规生产流程的示意性表示;
图2示出了根据本发明优选实施例的安全元件的结构;
图3示出了根据本发明的临时文件系统的优选结构以及安全元件与外部终端的通信;以及
图4示出了说明根据本发明的方法的流程图。
具体实施方式
下面参考附图给出本发明的详细说明,附图示出了本发明的具体实施例示例。足够详细地描述这些实施例以使本领域技术人员能够实践本发明。应当理解,本发明的各种实施例虽然不同,但不一定是相互排斥的。例如,在不脱离本发明范围的情况下,本文结合一个实施例描述的特定特征、结构或特性可以在其他实施例中实现。另外,应当理解,在不脱离本发明范围的情况下,可以修改每个公开的实施例内的各个元件的位置或布置。因此,以下详细描述不应被视为具有限制意义,并且本发明的范围仅由适当解释的所附权利要求以及权利要求所赋予的等同物的全部范围来限定。在附图中,贯穿若干视图,相同的附图标记指代相同或相似的功能。
图2更详细地示出了根据优选实施例的安全元件SE 100的结构。图3中示出了由SE100的更新代理10管理的临时文件系统12以及SE 100与外部终端200之间的交互。最后,图4结合图2和图3示出了根据本发明的方法的步骤。
图2中所示的SE 100是防篡改元件TPE,其包含更新代理10、操作系统OS 30和处理器CPU 40。更新代理10和OS 30都可以存储在SE 100的存储器(诸如非易失性存储器50)中。OS 30和更新代理10是可以通过适当的接口(例如通过应用程序编程接口API)彼此通信的独立实体。存储器50是SE 100的存储器,其存储安装在SE 100上并可由CPU 40执行的上载软件。这样安装的软件可以是向SE 100提供某种功能的可执行应用程序或程序,或者甚至可以是安全元件100的OS 30。OS 30是例如基于Java Card平台的标准智能卡操作系统。由个性化数据13个性化的OS 30在图1中被标识为“maxInit”。与安装在SE 100上的任何其他软件一样,还可能需要在SE 100的生命周期的某个点更新OS 30。
更新代理10可以是操作系统30的功能模块或允许在SE 100内提供软件(例如,依赖于用例的固件)的独立加载器实体。这样的加载器实体在本领域中也被称为映像可信加载器ITL。更新代理(如在图1至图3中标识为附图标记10的更新代理)是负责将软件或软件映像加载到安全元件100中以及与其相关的任何其他过程(诸如安装的软件的更新、恢复或回滚)的主要实体。在图2中,旨在用于更新OS 30的软件映像由附图标记31表示。OS映像31已被上载到SE 100上并存储在SE 100的非易失性存储器(例如存储器50)中。更新代理10也在工厂生产期间被加载到SE 100上(参见图4的步骤S1),因为它反映了SE 100的安全关键实体。
更新代理10可以以存储器结构11的形式包含其自己保留的存储器空间,以在其上存储敏感数据,例如个性化数据和/或认证数据,后者用于在软件映像(诸如OS映像31)被个性化之前对其进行认证和/或解密。
如在任何其他计算机实体中一样,由SE 100使用、生成和处理的数据以由该计算机实体的操作系统30管理的文件系统32的形式逻辑地组织。在智能卡的上下文中,诸如安全和防篡改元件,文件系统可以根据ISO/IEC 7816-9来构造。因此,智能卡文件系统32采用树结构,其中根元件是主文件(MF),叶元件是专用目录文件(DF)和基本数据文件(EF),后者包括智能卡或安全元件100的应用程序所需的所有数据。
图2和图3中所示的外部终端200可以表示与SE 100通信的实体。它可以是LPA(本地配置文件助理)、服务器或SE 100可以与之连接的任何设备。特别地,外部终端200是或包括映像递送服务器,并且在随后的制作阶段(图1,阶段II、III、IV)期间通过定制接口提供OS映像31。更广泛地说,图2和图3的终端200表示SE 100连接到的网络,在本领域中有时称为“宽带”基础设施。
SE 100与外部终端200之间的交互和消息交换可以根据ISO/IEC 7816-12来组织,并且包括APDU容纳消息(应用程序协议数据单元)。因此,终端200可以发送命令14(cmd),即所谓的命令-APDU或C-APDU,并且响应于终端的请求,从OS 30接收响应15(rsp),即所谓的响应-APDU或R-APDU。
处于图2所示状态的SE 100已经完成了初始芯片生产(图1,阶段I)并且已经离开芯片制造商的认证环境以进行后续生产阶段(图1,阶段II、II或IV)。在这种情况下,个性化数据13已经被上载到SE 100上(参见图4的步骤S2),并且OS映像31已经被上载到存储器50中(参见图4的步骤S4),后者由更新代理10安装为SE 100的新的更新的操作系统30。
在这种情况下,OS 30在更新期间不可用,因此至少暂时不能提供其关于管理文件系统32或处理从终端200接收的命令14的通常功能和互操作性。因此,更新代理10从OS 30承担对SE 100的控制。在OS更新期间负责SE 100,更新代理10通过提供临时文件系统12来维持SE 100的可操作性,以确保终端200仍然接收到响应于命令14的有意义的响应15,并且SE 100不会由于缺少这样的响应而被终端200停用或断开。
图4示出了用于通过OS映像31更新安全元件100中安装的OS 30的方法的主要步骤的流程图。参考图2所示的SE 100和图3所示的详细视图详细描述该方法的步骤。
如下所述,根据本发明的方法不限于操作系统更新的特定情况。事实上,可以根据本发明处理SE操作的进一步中断或操作系统或其他关键可信软件的中间非功能状态,以实现外部终端200或与这种SE 100通信的另一实体不受中断或状态转换的影响,而是继续经历SE 100的适当的、响应的和明确定义的行为。
步骤S1、S1a和S2在SE 100的工厂生产阶段期间在经认证的环境内执行,以确保其软件组件和数据的安全性和真实性。步骤S3至S6表示OS更新过程,其可以在芯片制造商的认证环境之外、在随后的阶段II或III或甚至稍后(参见图1)中执行。
参考图3,在初始芯片生产阶段I中执行的第一步骤S1中,可能通过将更新代理10上载到SE 100上来在SE 100中提供更新代理10。更新代理10反映SE 100的安全关键实体,该安全关键实体在工厂生产阶段I期间在芯片制造商的认证环境内被加载到SE 100上。
在步骤S1a(其可以被实现为单独的步骤或者可以是在步骤S1中在SE 100中提供更新代理10的一部分)中,在SE 100中提供临时文件系统12。临时文件系统12是更新代理10自己的个性化的一部分,并且这可以是在步骤S1的过程中提供可操作更新代理10的功能结果。特别地,以与向更新代理10提供其凭证和密码密钥相同的方式提供临时文件系统12。
在第二步骤S2中,个性化数据13被上载到SE 100上。个性化数据13也是安全关键的,因为它特别地包括安全凭证和密码密钥。在工厂生产阶段I期间,可信软件(例如SE 100的初始操作系统30)被上载并安装在SE 100上。在其初始安装的过程中,使用个性化数据13对上载的操作系统进行个性化,并且呈现在图1中被称为“maxInit”的操作性的操作系统30。
为了在随后的生产阶段II、III或IV中在芯片制造商的认证环境之外通过OS映像31更新所安装的OS 30,在步骤S3中,更新代理10从OS 30承担对SE 100的控制。在步骤S4中,更新代理10将OS映像31上载到存储器50中。OS映像31可以由终端200或负责在SE 100上提供要更新的软件的映像的专用软件映像服务器提供。
至此,代替OS 30,更新代理10特别地负责SE与终端200的通信。此外,通常由SE100的OS 30管理的常规文件系统32不再可用,并且不能处理与文件系统32的专用文件DF或基本文件EF相关的操作。这是因为,一方面,OS 30暂时不负责,另一方面,常规文件系统32不可用于更新代理10以处理来自终端200的与文件系统32相关的请求或命令14。
为了防止SE 100由于缺乏有意义的响应15而被终端200停用,在步骤S1a中提供临时文件系统12,其可以替换常规文件系统32,直到操作系统30被更新并再次完全负责。
根据替代实施例,与图4所示的顺序相比,可以以不同的顺序执行步骤S3和S4。例如,可以在更新代理10从OS 30接管控制之前上载OS映像31。然而,在任何情况下,临时文件系统12都是在更新代理10承担SE 100的控制之前提供的,因为前者发生在生产阶段I期间,而后者发生在阶段I之后的稍后生产阶段。
同样,在步骤S3和S4的过程期间常规文件系统32不再可用的确切时间点可以变化。虽然根据图3的实施例,由于更新代理10在步骤S3中承担控制而假设文件系统32不可用,但是根据其他实施例,当OS映像在步骤S4中上载时或甚至稍后当OS映像的安装实际开始时,文件系统32可能是不可用的。
图3示出了在步骤S1a中由更新代理10提供并存储在存储器结构11中的临时文件系统12的优选实施例。图3还示出了根据步骤S5由更新代理10对临时文件系统12的管理,以及在SE 100与终端200之间或者分别在SE 100所连接的网络或宽带基础设施之间交换APDU消息14、15。
逻辑上,图3的临时文件系统12被实现为由数据分组标识符DGI标识的数据分组。在智能卡环境中,数据分组是其结构由其DGI指定的数据记录。因此,通过参考数据分组的DGI,诸如更新代理10的应用程序可以识别数据分组的内部结构并且访问或处理分组的特定数据项,例如临时文件系统12的DF或EF文件。在字节级别上,表示临时文件系统12的数据分组以TLV格式实现,根据该格式,临时文件系统12的任何文件由字节序列表示,该字节序列包括提供TLV结构的类型的前导标签字节(T)、随后是提供由特定TLV结构存储的数据的字节大小的两个长度字节(L),以及存储实际使用数据或值(V)的指定字节数。
图3所示的临时文件系统由更新代理10提供,使得它覆盖它临时替换或模拟的不可用文件系统32的最小数量的文件。因此,表示临时文件系统12的数据结构以主文件MF开始,接着是基本文件EF1和一系列另外的专用和基本文件,其中的基本文件EFn逻辑上位于专用文件DF内。在该TLV结构内表示的文件观察常规文件系统32的分层父/子结构,因为它还反映了基本文件EF是否以及哪些基本文件EF在逻辑上位于专用文件DF内。文件系统的分层结构可以被编码在专用文件DF的标签T中。
作为步骤S5中临时文件系统12的管理的组成部分,更新代理10保持指针pt,其指示当前选择的文件,也称为上下文,即要由下一个命令操作的特定文件。
给定最初选择的主文件MF的图3的临时文件系统12,终端200将例如发送指示选择的文件EFn的C-APDU 14。如果更新代理10在步骤S3中接管SE 100的控制之后将不管理临时文件系统12,则由于OS 30和文件系统32的不可用性,命令14将不会被处理和适当地响应。实际上,终端200将停用SE 100。
然而,在步骤S1a中提供临时文件系统12并在步骤S5中管理临时文件系统12允许正确地处理和响应选择命令14。首先,更新代理10调用上下文改变,因为指针pt从主文件MF移动到指向由终端200选择的基本文件EFn。其次,更新代理10通过R-APDU 15向终端200报告成功的上下文改变,R-APDU 15传送指示进行了所请求的上下文改变的适当状态码SW,例如状态码‘9000’。也就是说,即使常规文件系统32的原始文件EFn不可用,终端200也接收基于临时文件系统12的文件EFn的有意义的响应15。
此外,即使在终端200的请求不能被更新代理100成功处理的情况下,例如,选择文件EFx的命令14,其将存在于常规文件系统32中但不被创建为临时文件系统12的一部分,更新代理10捕获命令14并响应可由终端200转译的适当的“错误代码”以防止SE 100被停用。
与临时文件系统12的特定文件无关的终端200的命令14由更新代理10处理,这是因为响应了标准状态码,而一旦OS 30在步骤S6中收回对SE 100的控制,命令14本身或者被完全忽略或者被注册以供OS 30稍后处理。
为了平衡存储器消耗与通用性和扩展性,更新代理10提供临时文件系统12,该临时文件系统12仅覆盖最小功能和最小数据以尽可能多地处理外部终端200的命令14。显然,终端200在图3中指示选择的文件EFx可以存在于常规文件系统32中,但是显然在提供临时文件系统12时已经被留出,因为它对临时文件系统12应该提供的最小功能没有贡献。通常,临时文件系统12被设计成使得终端200不会注意到操作系统30和文件系统32两者的暂时不可用性。
虽然在步骤S5中管理临时文件系统12使得操作系统30的不可用对终端200是透明的,在步骤S4中上载到非易失性存储器50中的OS映像31在步骤S5a中由更新代理10来安装以成为新的更新的操作系统30。OS 30的安装可以涉及各种步骤和过程,其中包括使用已经在步骤S2中上载到更新代理10的存储器结构11中的个性化数据13来个性化OS映像31。
最后,当完成OS更新时,在步骤S6中,更新代理10可以将SE 100的控制移交回更新的OS 30。至此,来自终端200的命令14由更新的OS 30基于常规文件系统32进行处理和响应,常规文件系统32在步骤S6中作为切换控制的结果而被恢复。
本质上,临时文件系统12可以被视为常规文件系统32的有限模拟,或者甚至被视为其“模拟版本”,只要更新代理10替换OS 30并且负责SE而不访问常规文件系统32的全部范围,就仅需要SE 100与终端200之间的交互可以被维持的程度。
通过上述实施例描述的方法和装置提供了用于在芯片制造商站点的认证环境之外个性化可信软件映像的有效且安全的解决方案。由于软件映像可以在稍后阶段并且在芯片制造商的环境之外被个性化,因此提供了用于在安全元件的生命周期期间的任何时间个性化软件的灵活解决方案。
在前述说明书中,已经参考本发明的具体实施例描述了本发明。然而,显而易见的是,在不脱离本发明的更宽范围的情况下,可以对其进行各种修改和改变。例如,参考处理动作的特定顺序来描述上述处理流程。然而,在不影响本发明的范围或操作的情况下,可以改变许多所描述的过程动作的顺序。因此,说明书和附图应被认为是说明性的而不是限制性的。
Claims (15)
1.一种用于更新安全元件SE(100)中管理文件系统(32)的操作系统OS(30)的方法,所述方法包括:
-在所述SE(100)中提供(S1)更新代理(10);
-由所述更新代理(10)从所述操作系统(30)承担对所述SE(100)的控制(S3);
-将OS映像(31)加载(S4)到所述SE(100)中,所述OS映像(31)表示所述操作系统(30)的更新;
-通过安装所述OS映像(31)来提供(S5a)更新的操作系统(30);以及
-由所述更新代理(10)将所述SE(100)的控制(S6)移交给所述更新的操作系统(30);
其特征在于,所述更新代理(10)在所述SE(100)中提供(S1a)临时文件系统(12),并且只要所述更新代理(10)处于所述SE(100)的控制中,就管理(S5a)所述临时文件系统(12)。
2.根据权利要求1所述的方法,其中,所述更新代理(10)提供(S1a)所述临时文件系统(12),使得所述临时文件系统(12)包含处理外部终端(200)的命令所需的最小功能。
3.根据权利要求1或2所述的方法,其中,所述更新代理(10)提供(S1a)所述临时文件系统(12),使得外部终端(200)不响应于发送到所述SE(100)的命令而停用和/或断开所述SE(100)。
4.根据前述权利要求中任一项所述的方法,其中,所述更新代理(10)提供(S1a)所述临时文件系统(12),使得只要所述更新代理(10)在控制所述SE(100),所述操作系统(30)和/或所述文件系统(32)不可用对于外部终端(200)是透明的。
5.根据前述权利要求中任一项所述的方法,其中,所述更新代理(10)在所述更新代理(10)的存储器结构(11)中提供(S1a)所述临时文件系统(12)。
6.根据前述权利要求中任一项所述的方法,其中,所述更新代理(10)提供(S1a)所述临时文件系统(12)作为具有数据分组标识符DGI的数据分组,并且以保持所述文件系统(32)的父/子文件关系的TLV格式。
7.根据前述权利要求中任一项所述的方法,其中所述更新代理(10)例如响应于从外部终端(200)接收的文件相关命令(14)而保持指向所述临时文件系统(12)的所选文件(EFn)的指针(pt),和/或响应于从外部终端(200)接收的文件无关命令(14)而响应(15)状态字节(SW)。
8.根据前述权利要求中任一项所述的方法,其中,通过在所述SE(100)的生产阶段(I)期间将所述更新代理(10)加载(S1)到所述SE(100)中来提供所述更新代理(10),而在所述SE(100)的生产阶段(I)之后的后续阶段(II、III、IV)中将所述OS映像(31)加载(S4)到所述SE(100)中并在所述SE(100)上安装(S5a)。
9.根据前述权利要求中任一项所述的方法,其中,所述临时文件系统(12)被提供(S1a)作为所述更新代理(100)的一部分,优选地包括在所述更新代理(100)的个性化数据中,和/或在所述SE(100)的生产阶段(I)期间将所述更新代理(10)加载(S1)到所述SE(100)中。
10.一种安全元件(100),其包括管理文件系统(32)的操作系统OS(30)和更新代理(10),所述更新代理(10)被配置为-从所述操作系统(30)承担对所述SE(100)的控制;
-将OS映像(31)加载到所述SE(100)中,所述OS映像(31)表示所述操作系统(30)的更新;
-通过安装所述OS映像(31)来提供更新的操作系统(30);以及
-将所述更新代理(10)对所述SE(100)的控制移交给所述更新的操作系统(30);
其特征在于,所述更新代理(10)还被配置为在所述SE(100)中提供临时文件系统(12),并且只要所述更新代理(10)在控制所述SE(100),就管理所述临时文件系统(12)。
11.根据权利要求10所述的安全元件(100),其中所述更新代理(10)被配置为当由所述安全元件(100)的处理器(40)执行根据权利要求1至9中任一项所述的方法时进行所述方法。
12.一种用于在安全元件(100)中使用的更新代理(10),所述更新代理(10)被配置为:
-从所述操作系统(30)承担对所述SE(100)的控制;
-将OS映像(31)加载到所述SE(100)中,所述OS映像(31)表示所述操作系统(30)的更新;
-通过安装所述OS映像(31)来提供更新的操作系统(30);以及
-将所述更新代理(10)对所述SE(100)的控制移交给所述更新的操作系统(32);
其特征在于,所述更新代理(10)还被配置为在所述SE(100)中提供临时文件系统(12),并且只要所述更新代理(10)在控制所述SE(100),就管理所述临时文件系统(12)。
13.根据权利要求12所述的更新代理(10),其中,所述更新代理(10)被配置为执行根据权利要求1至9中任一项所述的方法和/或被实现为可执行软件产品,所述可执行软件产品被配置为安装在根据权利要求10或权利要求11所述的安全元件(100)上并且由所述安全元件(100)的处理器(40)执行。
14.根据权利要求10或权利要求11所述的安全元件,或者根据权利要求12或权利要求13所述的更新代理,其中,所述更新代理(10)被配置为:
提供所述临时文件系统(12),使得所述临时文件系统(12)包含处理外部终端(200)的命令(14)所需的最小功能,和/或使得外部终端(200)不响应于发送到所述SE(100)的命令(14)而停用和/或断开所述SE(100),和/或使得只要所述更新代理(10)在控制所述SE(100),所述操作系统(30)和/或所述文件系统(32)不可用就对外部终端(200)是透明的,以及
在所述更新代理(10)的存储器结构(11)中提供所述临时文件系统(12),优选地,作为具有保持所述文件系统(32)的父/子文件关系的TLV格式的数据分组标识符DGI的数据分组。
15.一种用于与电子设备中的安全元件(100)结合使用的计算机程序产品,所述计算机程序产品包括非暂态计算机可读存储介质和嵌入其中的计算机程序机制,以将软件加载到所述电子设备中的所述安全元件(100)中,所述计算机程序机制包括:
-用于从所述操作系统(30)承担对所述SE(100)的控制的指令;
-用于将OS映像(31)加载到所述SE(100)中的指令,所述OS映像(31)表示所述操作系统(30)的更新;
-用于通过安装OS映像(31)来提供更新的操作系统(30)的指令;以及
-用于将所述更新代理(10)对所述SE(100)的控制移交给所述更新的操作系统(32)的指令;
其特征在于,所述计算机程序机制还包括用于在所述SE(100)中提供临时文件系统(12)以及用于只要所述更新代理(10)在控制所述SE(100)就管理所述临时文件系统(12)的指令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP21382705.8 | 2021-07-28 | ||
EP21382705.8A EP4124978A1 (en) | 2021-07-28 | 2021-07-28 | Update of an operating system in a security element |
PCT/EP2022/025347 WO2023006244A1 (en) | 2021-07-28 | 2022-07-26 | Update of an operating system in a security element |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117716361A true CN117716361A (zh) | 2024-03-15 |
Family
ID=77207146
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280052746.XA Pending CN117716361A (zh) | 2021-07-28 | 2022-07-26 | 安全元件中操作系统的更新 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20240256671A1 (zh) |
EP (1) | EP4124978A1 (zh) |
KR (1) | KR20240047377A (zh) |
CN (1) | CN117716361A (zh) |
WO (1) | WO2023006244A1 (zh) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060200658A1 (en) * | 2005-03-07 | 2006-09-07 | Bitfone Corporation | Agent framework for mobile devices |
US10936719B2 (en) * | 2016-09-23 | 2021-03-02 | Apple Inc. | Preserving trust data during operating system updates of a secure element of an electronic device |
US10069633B2 (en) * | 2016-09-30 | 2018-09-04 | Data I/O Corporation | Unified programming environment for programmable devices |
-
2021
- 2021-07-28 EP EP21382705.8A patent/EP4124978A1/en active Pending
-
2022
- 2022-07-26 US US18/291,689 patent/US20240256671A1/en active Pending
- 2022-07-26 CN CN202280052746.XA patent/CN117716361A/zh active Pending
- 2022-07-26 KR KR1020247004873A patent/KR20240047377A/ko active Search and Examination
- 2022-07-26 WO PCT/EP2022/025347 patent/WO2023006244A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
KR20240047377A (ko) | 2024-04-12 |
US20240256671A1 (en) | 2024-08-01 |
WO2023006244A1 (en) | 2023-02-02 |
EP4124978A1 (en) | 2023-02-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP2302549B1 (en) | Platform security apparatus and method thereof | |
EP2731381B1 (en) | Method for changing the mobile network operator in an embedded sim on basis of special privilege | |
US20080022381A1 (en) | Uniform framework for security tokens | |
US9578019B2 (en) | Method and system for managing an embedded secure element eSE | |
JP6585072B2 (ja) | 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと | |
EP3022678B1 (en) | Method for transferring user data between two instances of an application | |
EP3286682B1 (en) | Method of managing applications in a secure element when updating the operating system | |
EP4120066A1 (en) | Replacement of executable load files in secure elements | |
US10809930B2 (en) | Configuring an embedded subscriber identity module | |
CN117716361A (zh) | 安全元件中操作系统的更新 | |
CN105760164A (zh) | 一种用户空间文件系统中acl权限的实现方法 | |
US20190147193A1 (en) | Method for a first start-up operation of a secure element which is not fully customized | |
KR20230019032A (ko) | 사전 개인화된 보안 요소 및 내장된 개인화 | |
KR20110104959A (ko) | 회로 카드 데이터 보호 | |
US20240241959A1 (en) | Change and recovery of personalization data in a secure element | |
US20230084048A1 (en) | Methods and terminal for updating converted applet file, and Java Card device | |
JP7463943B2 (ja) | 組み込み型加入者識別モジュール | |
US20240273206A1 (en) | Personalization of a secure element | |
US20240281536A1 (en) | Method for performing an operative system update in a secure element and corresponding secure element and apparatus | |
JP6859997B2 (ja) | 情報処理装置、icチップ、情報処理方法、及びプログラム | |
CN118555563A (zh) | 用于管理通知过程的方法、对应的系统以及集成电路卡 | |
US20100200650A1 (en) | Mobile communication device and method for recovering mifare memory | |
CN117716359A (zh) | 具有供应连接性的更新代理和包括该更新代理的安全元件 | |
WO2016169749A1 (en) | Method for wiping a secure element embeded in a host device |
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 |