CN110362350B - 管理集成电路卡中的多个操作系统 - Google Patents

管理集成电路卡中的多个操作系统 Download PDF

Info

Publication number
CN110362350B
CN110362350B CN201910271286.XA CN201910271286A CN110362350B CN 110362350 B CN110362350 B CN 110362350B CN 201910271286 A CN201910271286 A CN 201910271286A CN 110362350 B CN110362350 B CN 110362350B
Authority
CN
China
Prior art keywords
operating system
system components
integrated circuit
version
circuit card
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.)
Active
Application number
CN201910271286.XA
Other languages
English (en)
Other versions
CN110362350A (zh
Inventor
P·瓦斯塔诺
A·韦内罗索
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SRL
Original Assignee
STMicroelectronics SRL
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SRL filed Critical STMicroelectronics SRL
Publication of CN110362350A publication Critical patent/CN110362350A/zh
Application granted granted Critical
Publication of CN110362350B publication Critical patent/CN110362350B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/4408Boot device selection
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4416Network booting; Remote initial program loading [RIPL]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates

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 Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)
  • General Factory Administration (AREA)

Abstract

本公开的实施例涉及管理集成电路卡中的多个操作系统。一种用于管理集成电路卡中操作系统的存储的方法,包括:将操作系统再分为多个操作系统组件;将多个操作系统组件中的一个或多个操作系统组件关联到指示该一个或多个操作系统组件的版本的描述符;将该一个或多个操作系统组件下载到集成电路卡的存储器,其中下载包括验证存储在集成电路卡中的操作系统组件是否是正在被下载的一个或多个操作系统组件的相同版本;基于验证,在版本不同的情况下,将该一个或多个操作系统组件存储在卡中;以及基于验证,在版本相同的情况下,从下载操作中丢弃该一个或多个操作系统组件。

Description

管理集成电路卡中的多个操作系统
相关申请的交叉引用
本申请要求2018年4月6日提交的意大利专利申请No.102018000004293的优先权,该申请通过引用并入本文。
技术领域
本公开的实施例涉及一种用于管理集成电路卡中的多个操作系统的方法、对应的系统和计算机程序产品。
背景技术
通常被称为用户身份模块(SIM)卡的通用集成电路卡(UICC)被广泛用于使得移动设备能够访问由移动网络运营商(MNO)提供的服务。
在本上下文中,图1示出了用户设备10(诸如移动设备,例如智能电话或平板计算机)、或通常被用于嵌入式系统中的移动通信模块的可能架构。
通常,设备10包括连接到一个或多个存储器104的一个或多个处理器102。该设备10还包括用于与基站BS通信的至少一个移动通信接口106。
例如,移动通信接口106可以包括GSM(全球移动通信系统)、CDMA(码分多址)收发器、W-CDMA(宽带码分多址)、UMTS(通用移动电信系统)、HSPA(高速分组接入)和/或LTE(长期演进)收发器。
设备10还包括用户界面110,例如触摸屏。相反地,被用于例如嵌入式系统(诸如警报系统、燃气表或其他类型的远程监测和/或控制系统)中的通信模块通常不包括用户界面110,而是包括通信接口112以便与嵌入式系统的另一处理单元交换数据。例如,在这种情况下,接口112可以是数字通信接口,诸如UART(通用异步接收器-发送器)、SPI(串行外围接口)和/或USB(通用串行总线)通信接口。通常,处理单元102也可以直接是嵌入式系统的主处理器。在这种情况下,接口112可以用于与一个或多个传感器和/或致动器交换数据。例如,在这种情况下,接口112可以借助于处理单元102的一个或多个模拟接口和/或数字输入/输出端口来实现。
存储器104可以存储例如由处理器102执行并且管理设备10的一般功能的操作系统OS,诸如用户界面110和/或通信接口112的管理以及经由接口106与基站BS的连接的建立。存储器104还可以包含由操作系统OS执行的应用。例如,在移动设备的情况下,存储器104通常包括web浏览器应用WB。
为了建立与基站BS的连接,设备10耦合到被配置为管理用户的身份标识的处理单元108。例如,移动设备通常包括卡保持件,卡保持件用于接纳包括用户身份模块(SIM)的卡,其通常被称为SIM卡。通常,对应的SIM模块也可以被直接安装在设备10内。在图1的示例中,所使用的是通用集成电路卡(UICC)108,其是经常在GSM和UMTS网络中使用的智能卡。UICC确保所有种类的个人数据的完整性和安全性,且通常容纳几百千字节。UICC还可以被直接集成在设备10中,并且在这种情况下通常被称为嵌入式UICC(eUICC)。
例如,在GSM网络中,UICC 108包含SIM应用,并且在UMTS网络中包含USIM应用。UICC可以包含若干应用,使得同一智能卡可以访问GSM和UMTS网络两者,并且还可以提供电话簿和其他应用的存储。
因此,在本说明书的下文中对SIM模块的参考旨在包括针对上述网络的模块,并且还适用于这种SIM模块被提供在SIM卡上的情况。
如图2所示,SIM模块108通常包括一个或多个处理器1082和一个或多个存储器1084,以用于执行存储在模块108的存储器1084中的应用。例如,SIM模块108可以包括除了用户身份模块应用(图2中的附图标记SIM)之外的至少一个另外的应用APP。例如,该应用APP可以被配置为(直接地,或经由处理器102并且可能经由操作系统OS间接地)与移动通信接口106通信,以便向远程主机30发送数据和/或从远程主机30接收数据。为此目的,主机30可以经由网络20连接到基站BS,网络20诸如局域网(LAN)或广域网(WAN),诸如互联网。因此,主机30和UICC 108之间的连接可以由网络20、基站BS和通信接口108建立。通常,通信可以由主机30或UICC 108发起。例如,应用APP可以是web服务器应用,其接收来自移动设备10的web浏览器WB的请求,并从诸如web服务器的远程主机30获得相应的内容。应用APP还可以是认证应用。在这种情况下,主机30可以向UICC 108发送认证请求,并且UICC 108可以向主机30发送认证响应。存储器或多个存储器1084还可以用于存储包括有关不同MNO的简档或多个简档的数据图像以及与图像相关的操作系统。对于图像,这里意指二进制信息的结构化表示,其还被加密,其还被配置为解密被封装的数据、管理权限并检查所加载的被解密的数据的完整性。
因此,UICC卡简言之通常包括微处理器和存储器,存储器通常包括非易失性和易失性部分。这样的存储器被配置为存储诸如操作系统、小应用程序和MNO简档之类的数据,移动设备可以利用MNO简档来注册MNO并与MNO交互。UICC可以可移除地被引入设备(即移动设备)的插槽中,或者它们也可以直接被嵌入设备中,在这种情况下它们被称为eUICC。这种eUICC卡是有用的,因为它们的性质被设计为远程地接收MNO简档。
然而,这种简档必须利用诸如认证密钥的特定于卡的数据被个性化。嵌入式UICC是允许在卡上下载表示不同电信运营商的多个简档的可能性的实际UICC的演进。如上所述,主要用例是在特定设备中“焊接”eUICC;由于eUICC不是可移除的,如果设备所有者想要改变电信运营商(例如从Vodafone到TelecomItalia),eUICC应该能够更新电信凭证。这种电信凭证被包括在完整表示一个运营商的包含所有信息的简档中。eUICC卡的一个缺失点是MNO定制操作系统的可能性(对于传统SIM而言是真的)。
eUICC卡可以在其非易失性存储器中存储操作系统和第一MNO的简档。通过加载操作,第二MNO的简档也可以被加载到这种存储器中,从而产生第一简档有效并且第二简档被禁用的配置。然后,通过对第一简档的删除操作和使能操作,卡被配置为具有被启用以用于操作的唯一的第二简档。该简档和操作系统通过诸如网络20之类的网络从诸如远程主机30(包括例如一个或多个或服务器)的远程主机被下载。这种服务器可以对应于有时定义为简档创建器的MNO远程服务器,其中简档被设计并且通过移动网络被下载到卡中。
因此,在嵌入式UICC卡中,简档可以改变,但操作系统不能改变。
然而,使用主引导加载程序(Boot Loader)的集成电路卡也是已知的。
主引导加载程序(PBL)通常被存储在非易失性存储器的一部分中,或者在多个非易失性存储器被提供的情况下被存储在一个存储器中。
PBL被配置用于在被激活时加载例如包含MNO的简档的图像,和/或当MNO访问卡以进行图像的管理的其他操作(诸如删除)时启动(或引导)与这样的图像有关的操作系统。
在这方面,图3A示意性地示出了非易失性存储器1084,非易失性存储器1084的区域中存储有主引导加载程序11,其用于例如从MNO远程服务器安全地加载在存储器1084的另一个区域中的、由第一简档P1和操作系统OSD1表示为单个第一数据包12a的后续软件。因此,为了改变第一简档P1和操作系统OSD1,删除操作DA被执行以获得图3B的存储器1084的配置,其中没有包12a因为它被删除,然后加载操作LA通过主引导加载程序11来加载包括第二简档P2和对应的第二操作系统OSD2的第二数据包12b。
在使用PBL的UICC卡的解决方案中,“每次一个简档”的限制非常强,但是存在其中若干简档一起存在可能是有用的若干应用场景,例如:
多SIM(例如,双SIM)电话;
经由OTA对简档的下载(需要提供连接性的附加简档)——M2M解决方案所需;
连接性备份,使得在第一MNO失去连接性的情况下,可以备份到另一MNO;和/或
漫游简化,使得例如特定的简档取决于国家/地区被启用。
在使用UICC卡的PBL的上下文中的问题的解决方案将通过具有针对每个MNO的具有对应的主引导加载程序的不同图像来表示。然而,由于针对高端卡的操作系统大小通常约为600kb-700kb,因此这种简档大小约为150kb。因此,为了在使用主引导加载程序的卡中容纳两个简档,需要具有非常大的存储器的卡。
发明内容
基于前面的描述,需要克服先前概述的缺点中的一个或多个的解决方案。
实施例涉及用于集成电路卡中的简档的个性化的相关系统以及对应的相关计算机程序产品,该计算机程序产品可加载在至少一个计算机的存储器中并且包括当产品在计算机上运行时用于执行方法的步骤的软件代码部分。如本文所使用的,对这样的计算机程序产品的引用旨在等价于对包含用于控制计算机系统以协调方法的执行的指令的计算机可读介质的引用。对“至少一个计算机”的引用显然旨在突出本公开以分布式/模块化方式被实现的可能性。
如前所述,本公开提供了关于用于管理集成电路卡中的操作系统的存储(包括使用主引导加载程序来加载所选择的操作系统)的方法的解决方案,包括:
将操作系统再分为多个操作系统组件;
将多个操作系统组件中的一个或多个组件关联到指示操作系统组件的版本的描述符;
将该一个或多个组件下载到集成电路卡的非易失性存储器中,该下载操作包括验证卡中是否存储有与正在被下载的组件的相同版本相关联的操作系统组件;
如果版本不同,则将该组件存储在卡中;以及
如果版本相同,则从下载操作中丢弃该组件。
在变型实施例中,这里描述的方法可以包括:将多个操作系统组件中的每个组件关联到指示操作系统组件的版本的描述符,以及将该一个或多个组件中的每个组件下载到集成电路卡的非易失性存储器。
在变型实施例中,这里描述的方法可以:包括将多个操作系统组件中的确定组件关联到指示操作系统组件的版本的描述符,以及将一个或多个组件中的组件下载到集成电路卡的非易失性存储器。
在变型实施例中,这里描述的方法可以包括验证操作包括将正在被下载的一个或多个组件的版本与已经存储在卡的存储器中的对应组件在也驻留在存储器中(特别是在主引导加载程序中)的版本表中的版本进行比较。
在变型实施例中,这里描述的方法可以包括一个或多个组件包括内核、Java卡、SMS协议、认证、USIM、全球平台组件中的一个或多个。
在变型实施例中,这里描述的方法可以包括当简档切换被执行时包括:在验证卡中是否存储有与正在被下载的组件的相同版本相关联的操作系统组件的步骤之后,对存储在存储器中的组件执行动态链接操作。
在变型实施例中,这里描述的方法可以包括通过将一个或多个组件定义为库来隔离该一个或多个组件,包括利用所披露的方法的接口。
在变型实施例中,这里描述的方法可以包括将以下组件中的一个或多个存储在卡中:
-导入描述符,指示:
-哪个模块被导入以及哪个版本;和/或
-哪些API被调用:
-导出描述符,指示:
-哪个API被导出;和/或
-哪个是组件的版本。
在变型实施例中,这里描述的方法可以包括:与正在被下载的组件的相同版本相关联的操作系统组件被存储在卡中,以及下载服务器取回(retrieve)对应信息,特别是从版本表取回对应信息,并在服务器处执行验证。
本公开还提供了关于用于管理集成电路卡(特别是eUICC卡)中的操作系统的存储的系统的解决方案,包括被配置为在移动设备中操作的集成电路卡和被配置为与设备交换数据的远程服务器,并且卡被配置为实现前述实施例中的任一项的方法。
本公开还提供了关于被配置为在先前系统中操作的集成电路卡(特别是UICC或eUICC卡)的解决方案。
本公开还提供了关于计算机程序产品的解决方案,该计算机程序产品可以被加载到至少一个处理器的存储器中并且包括用于实现前述实施例中的任一项的方法的软件代码的部分。
附图说明
现在将参考附图来描述本公开的实施例,附图仅通过非限制性示例的方式被提供,并且其中:
图1、图2和图3A至图3C已经在前文中被描述;
图4示出了图示这里描述的方法的一个实施例的流程图;
图5示出了图示这里描述的方法的另外的操作的流程图;
图6示出了实现这里描述的方法的卡的软件模块的框图。
具体实施方式
在以下描述中,许多具体细节被给出以提供对实施例的透彻理解。可以在没有一个或多个具体细节的情况下或者利用其他方法、组件、材料等来实践实施例。在其他情况下,未详细示出或描述公知的结构、材料或操作以避免模糊实施例的各个方面。
贯穿说明书对“一个实施例”或“实施例”的引用意味着结合该实施例描述的特定特征、结构或特性被包括在至少一个实施例中。因此,贯穿本说明书在各个地方出现的短语“在一个实施例中”或“在实施例中”不一定都指的是相同实施例。此外,特定特征、结构或特性可以在一个或多个实施例中以任何合适的方式被组合。
本文中提供的标题仅为了方便,并不解释实施例的范围或含义。
已经参考图1、图2和图3A至图3C描述的图形部件、元件或组件由先前在这些图中使用的相同附图标记表示;在下文中将不再重复对这样的先前描述的元件的描述,以免使本详细描述过重。
本公开的实施例涉及用于管理集成电路卡中的操作系统的存储(包括使用主引导加载程序来加载所选择的操作系统)的方法。
本公开的实施例特别涉及eUICC(嵌入式通用集成电路卡)。
这里描述的解决方案大体上基于以下观察:即使MNO需要不同的操作系统,差异也由相同操作系统的定制表示。因此,考虑由两个不同MNO的两个操作系统,它们非常相似,例如,存储器的95%包含具有相同二进制信息的图像,而同时进剩余的5%是不同的。
特别地,将操作系统考虑为包括多个组件,这样的组件中仅有少数组件进行定制,同时其他组件保持相同。
因此,简而言之,这里描述的用于管理集成电路卡中的操作系统、特别是使用主引导加载程序来管理集成电路卡中的多个操作系统的存储的方法提供了将每个操作系统再分为多个操作系统组件,诸如内核、Java卡、SMS协议、认证、USIM、全球平台,诸如作为非限制性示例的JCOP的组件(Java卡开放平台)。然后,每个操作系统组件被关联到指示操作系统子模块的版本的描述符。这些操作在操作系统开发方处被执行,或者可能在操作系统提供方处被执行,即,相对于卡远程地被执行,并且在任何情况下,在将操作系统下载到这种卡的存储器中之前被执行。
当给定操作系统被下载到卡中时,该卡通过其处理单元被配置为在卡存储器处可用的表中存储该给定操作系统的每个组件的版本。
当有必要将另一操作系统下载到卡时,将该另一操作系统的组件的版本与该给定操作系统的组件的版本进行比较。
如果版本相同,则给定操作系统的组件和另一操作系统的组件被认为是二进制相等的,并且对应的组件的下载被丢弃。如果版本不同,则另一操作系统的组件被存储在卡的存储器中。当卡在下载之后执行包括改变操作系统的简档切换时,另一操作系统使用具有先前存储的第一简档的相同版本的模块,并执行动态链接以执行具有不同版本的新存储模块。
图4示出了表示这里描述的用于管理集成电路卡中的操作系统的存储的方法的流程图。用数字标号300表示卡108中的第一操作系统OSD1的下载的过程,其包括将第一操作系统OSD1再分为多个组件C1...Cn的操作310。这样的再分310当操作系统OSD1被设计时在MNO服务器处被执行,例如在主机30处被执行。可以包括内核、Java卡、SMS协议、认证、USIM、全球平台中的一个或多个的组件C1...Cn在操作系统OSD1中被标识。这是操作系统组件的示例列表,然而其他组件可以被标识或者其他再分可以被执行,例如将上述组件中的两个聚合为单个组件。
然后,将每个操作系统组件C1...Cn关联到指示操作系统组件的版本的相应描述符v11...v1n的操作320被执行。该操作也优选地在设计第一操作系统OSD1时被执行,从而将版本描述符写入组件的编程脚本的字段中。总体而言,对于第i个操作系统OSDi和第j个组件Cj,对应的版本描述符被指示为vij,其中i是可以被下载在卡108中的不同操作系统OSDi的索引,而j是可以用操作310被再分的组件Cj的索引,即j从1到n。
以此方式,包括相应的版本描述符v11...v1n的组件C1...Cn被获得。
通过操作330,第一操作系统OSD1被下载在卡108中。第一操作系统OSD1被下载在将要用驻留在存储器1084中的主引导加载程序11被加载的图像中。当这样的操作330被执行时,卡108通过其处理单元1082被配置为在版本表VT中存储组件C1...Cn的版本v11...v1n,如下面的表1更好地详细说明。版本表VT驻留在非易失性存储器1084中的主引导加载程序存储区中。
然后,将第一操作系统的组件C1...Cn存储在非易失性存储器1084中的专用区存储器中的操作340被执行。
当有必要下载第二(另一)操作系统OSD2时,下载的过程400被执行,其包括应用上述操作310和320,从而获得组件C1...Cn和对应的版本v21...v2n。当然,过程400可以在操作340之后在可以是一周、几个月或一年的未确定的时间量之后被执行,例如,仅当有必要上传另一MNO的数据图像(包括简档和操作系统)时被执行。
然后,当在卡108中下载第二操作系统OSD2的操作430被执行时,这样的下载操作包括将正在被下载的组件C1...Cn的版本v21...v2n与已经被存储在卡108中的对应组件的版本进行比较的步骤433,对应组件的版本在这种情况下为被存储在版本表VT中(参见下面的表1)的v11...v1n。
如果步骤433指示正在被下载的组件具有与已经存储的对应组件的版本v1j不同的版本v2j,则步骤437和步骤439被执行。
步骤437提供:在表VT的对应于系统OSD2的列中写入在步骤433处发现具有不同版本的组件的新版本或实例的编号,表VT的该列用等于版本v11...v1n的版本v21...v2n初始化。
步骤439提供存储具有与已经存储在卡中的组件的版本不同的版本的组件。
如果在步骤433处发现正在被下载的组件的版本与存储在表VT中的第一操作系统OSD1的对应组件的版本相同,则该组件被丢弃,即不被存储在存储器1084中。取决于被丢弃的模块的所有其他组件被链接于已经存储在卡108的存储器1084中的对应版本。
要强调的是,包括操作330、340、430的下载过程不改变卡108和MNO远程服务器30之间的交互,这种下载过程在卡处被执行。卡可以缓冲操作系统的传入组件,例如,以然后取决于例如可用存储器的大小来使用例如非易失性存储器的一部分、或者在变型实施例中使用易失性存储器的一部分来执行比较433,或者,备选地,组件可以在飞行中被丢弃,例如不存储。
在下载第二操作系统OSD2的所有组件以及因此仅将具有不同版本的组件存储在存储器1084中之后,OSD1的所有组件和OSD2的一些组件(通常是一个或两个)将被存储。在过程400被等待之后,简档切换过程500被请求。
如下面参考图5和图6更好地详述的,简档切换可以发生。如果简档切换被执行,则可能例如有必要加载第二操作系统OSD2。在这种情况下,代替组件Cj或被丢弃的组件,已经被存储的第一操作系统OSD1的对应组件被使用。
表VT的可能实施例被表示在下面的表1中。在也是表VT的索引列的第一列中,对应于第j个组件Cj的字段被包含。针对每个第i个操作系统OSDi的组件的版本vij被插入在后面的列中。
表1
组件Cj OSD1版本Vij OSD2版本Vij
Java卡(C1) v.1.1.2 v.1.1.2
全球平台(C2) v.1.2.0 v.1.2.0
USIM(C3) v.1.3.0 v.1.3.0
ISIM(C4) v.1.4.0 v.1.4.0
认证(C5) v.1.2.1 v.1.3.0
SMS(C6) v.1.2.0 v.1.2.0
在所示的示例中,在通过过程100下载第一操作系统OSD1之后,当在比较操作中第二操作系统OSD2被下载时,在步骤433处发现Java卡、全球平台、USIM和ISIM组件(假设它们以为C1...C4的序列被评估)具有相同的版本v21...v24,因此第二操作系统的对应模块被丢弃,即不存储在存储器1084中。认证组件,即C5,在步骤233处被发现具有不同的版本描述符v.1.3.0而不是v.1.2.1,因此对应的组件C5被存储在存储器1084中以用于第二操作系统。
当包含第三简档和第三操作系统OSD3的第三图像被下载时,过程200当然可以被重复,如表2所示,其中添加了指示组件Cj的相同实例的列。如所示的,在表2中表示的示例中,可以具有相同OS模块的1、2或3个实例。过程400当然可以被重复以下载另外的操作系统。
表2
组件Ci OSD1版本Vij OSD2版本Vij OSD3版本Vij 实例
Java卡(C1) v.1.1.2 v.1.1.2 v.1.1.2 1
全球平台(C2) v.1.2.0 v.1.2.0 v.1.2.0 1
USIM(C3) v.1.3.0 v.1.3.0 v.1.3.0 1
ISIM(C4) v.1.4.0 v.1.4.0 v.1.5.0 2
认证(C5) v.1.2.1 v.1.3.0 v.1.3.1 3
SMS(C6) v.1.2.0 v.1.2.0 v.1.2.0 1
当多个操作系统被存储时,当然可能存在相同组件的多个实例,在该示例中,认证组件具有三个不同的实例,而ISIM组件具有两个。
当执行删除操作时,由至少一个MNO简档引用的所有操作系统组件必须被保留——删除例如对应于OSD2的第二简档将导致仅删除一个实例,即认证组件的v.1.3.0。
在图5中,还示出了在简档切换被执行时被执行的程序500。
在步骤510中,是否请求了简档切换被评估,即,例如通过主引导加载程序11加载例如第二操作系统OSD2而不是第一操作系统OSD1。
在肯定的情况下,基于表VT的针对第二操作系统OSD2的内容,在步骤520中,第一操作系统OSD1的具有相同版本描述符vij的组件被加载在易失性存储器中。在执行第一操作系统OSD1的下载操作330的同时,这样的组件被存储。同样在步骤520中,在步骤440中存储的第二操作系统OSD2的一个组件或多个组件被加载,因为它们具有不同的版本描述符vij:在表1的示例中,这对应于唯一的认证组件,例如V25。
然后,对具有第二操作系统OSD2的具有不同版本描述符vij的一个组件或多个组件的组件执行动态链接操作330。这样执行以使得当第二操作系统OSD2被执行时,当可执行程序在运行时被执行时,动态链接通常通过将库的内容从永久存储设备复制到RAM、并填充跳转表并重新定位指针而被执行。作为示例的动态链接对应于加载和链接库,库如将示出的那样对应于可执行程序所需的组件。
特别地,为了支持动态链接操作530,再分步骤310执行组件C1...C2的隔离的子步骤,该子步骤又包括将组件C1...Cn中的每一个定义为库。特别地,以本身已知的方式,作为库的每个组件Cj包括利用所披露的方法的接口,例如,向其他组件/库声明组件/库的功能的列表。这还可以对应于C语言中的header.h。库依赖于另一库。
然后,为了支持动态链接操作530,还提供了在卡108的存储器1084中存储另一表,该表针对每个组件Cj存储:
-导入描述符,指示:
哪个模块Cj被导入以及哪个版本Vij;和/或
哪些API被调用;和/或
导出描述符,指示:
哪个API被导出;和/或
哪个是该组件的版本。
针对每个操作系统OSDi的每个组件包含导入描述符IC和导出描述符EC的这种另一表可以被存储在存储器1084中,优选地存储在PBL的区中。
在图6中就此而言示意性地表示了给定操作系统(例如,OSD1)的Java卡(组件C1)的API,其在执行期间必须使用函数F链接到组件C4,函数F在示例中为getstate()。
在图6中示出了组件全球平台的两个实例,第一实例C4(v14)和第二实例C4(v24)。需要强调的是,该示例与表1中所示的示例不同,因为版本v14的实例是版本1.3.0,而版本v24的实例是版本1.4.0,以针对该组件具有两个实例。
第二实例C4(v24)被关联到存储在存储器1084中的上述另一个表中的导出描述符EC,该导出描述符EC指示哪个API被导出,在这种情况下是函数getstate(),并且指示哪个是组件的版本,在这种情况下是v24。
Java卡组件C1在这样的另一表中被关联到导入描述符IC,该导入描述符IC指示哪个组件被导入以及哪个版本和哪些API被调用。
在该示例中,被导入的第一组件用版本USIM v 1.2、以及被调用的API[API:getBuffer]来指示,并且被导入的第二组件用为所示出的全球平台实例C4(v24)(例如全球平台v1.3)的版本、以及被调用的API[APIs:getState]来指示。
因此,当Java卡API调用全球平台的getState时,通过与组件全球平台C4(v24)相关联的代理PX被重定向到全球平台的组件实例C4(v24)。代理PX是一种方法,特别是结构,其在C语言中用于调用函数F。Java卡API调用该方法,调用函数F并且代理执行间接法(indirection)。
在执行期间,任何功能调用经由间接方法被执行。间接方法取决于程序语言。
在智能卡中,“C”语言通常被使用,其中间接法包括通过C编程语言中的结构复合数据类型声明来调用方法。
在动态链接期间,导入和导出描述符的使用被用于在第一组件(在示例中为C1)的导入组件中,放置到第二组件(在示例中为C4)的导出组件的链接。
在通过空中下载操作系统的卡系统中,诸如在OFL(开放固件加载程序)系统中,卡通过验证由公钥表示的加密签名来执行包含被下载的操作系统的图像的认证。
根据这里描述的解决方案的另一方面,不仅操作系统,而且操作系统的每个操作系统组件C1..Cn被加密签署有使用标识操作系统发布方或供应方的公钥的非对称密码。
该卡然后被配置为:
验证正在被下载的每个操作系统组件C1..Cn的加密签名;以及
仅对被验证为具有由同一发布方(例如,操作系统提供方)计算的加密签名的组件执行动态链接。
因此,总体而言,用于管理使用主引导加载程序来加载选择的操作系统的集成电路卡中的操作系统的存储的方法包括:
将诸如OSD1、OSD2的操作系统再分(在步骤310中)为多个操作系统组件中C1..Cn;
将多个操作系统组件C1...Cn中的一个或多个组件关联(在步骤320中)到指示操作系统组件的版本(例如,v11...v1n)的描述符;
将一个或多个组件下载(在步骤330、430中)到非易失性存储器,例如集成电路卡108的存储器1084,该下载操作包括验证卡中是否存储有与正在被下载的组件的相同版本相关联的操作系统组件。验证由比较操作233利用版本表VT来执行。
在否定的情况下,如果版本不同,则提供在卡中存储239组件,或者如果发现版本相同则从下载操作中丢弃组件。
如上所述,取决于丢弃的模块的其他组件与已经存储在卡108的存储器1084中的对应版本链接,同时在验证之后被存储的组件在简档切换发生时被动态链接到其他组件。
应强调的是,在变型实施例中,被下载的一个或多个组件可以是单个组件。这可能出于维护原因而发生,即,有必要下载组件以替代故障或损坏的组件。在那种情况下,替代组件可以被关联到不同的版本描述符。
当然,维护操作可以通过下载具有与不同的版本描述符相关联的唯一替代组件的整个新操作系统而被执行。如上所述,具有相同描述符的所有组件将简单地从下载操作中被丢弃。
对于下载,该机制假设在UICC上的下载协议没有变化。所描述的解决方案优化了卡的存储器的使用。
然而,在变型实施例中,还可以优化下载协议。
在这样的实施例中,例如与托管个人创建者的主机30一致的MNO服务器取回UICC卡108上的组件列表。这可以通过访问版本表VT来完成。
然后,服务器仅下载需要被下载的组件,即不存在于UICC上的组件。
因此,该实施例中的方法提供,与正在被下载的组件的相同版本相关联的操作系统组件被存储在卡108中,下载服务器取回对应的信息,特别是从版本表VT中取回对应的信息,以及在服务器处执行验证。验证包括执行与步骤233相对应的操作,这些操作在服务器处被执行而不是在卡处被执行,在服务器处还发生从下载丢弃组件,同时存储239由服务器在远程连接的卡处执行。
因此,所描述的解决方案相对于现有技术解决方案具有若干优点。
这里描述的方法允许管理多个操作系统,或者还替换使用主引导加载程序来加载包括操作系统的MNO的数据映像的卡中的操作系统的单个组件。
这里描述的方法允许管理相对于已知解决方案具有显著更低的芯片存储器使用率的多个操作系统。
这里描述的方法还可以减少从远程服务器传输的、用以存储操作系统的数据的量。
当然,在不损害本公开的原理的情况下,构造和实施例的细节可以相对于本文中纯粹作为示例而描述和图示的内容而广泛变化,而不会因此脱离本公开的范围。

Claims (18)

1.一种用于管理集成电路卡中操作系统的存储的方法,所述集成电路卡具有存储器,所述存储器用于存储包括关于不同移动运营商的简档的图像以及与所述图像相关的所述操作系统,所述方法包括:
将所述操作系统中的每个操作系统再分为多个操作系统组件;
将所述多个操作系统组件中的每个操作系统组件关联到指示每个操作系统组件的版本的描述符,其中所述描述符与所述多个操作系统组件中的每个操作系统组件的版本相对应;
将所述一个或多个操作系统组件下载到所述集成电路卡的所述存储器,其中所述下载包括:验证存储在所述集成电路卡中的操作系统组件是否是正在被下载的所述一个或多个操作系统组件的相同版本;
基于所述验证,在所述版本不同的情况下,将所述一个或多个操作系统组件存储在所述卡中;
基于所述验证,在所述版本相同的情况下,从下载操作中丢弃所述一个或多个操作系统组件;以及
在验证存储在所述集成电路卡中的操作系统组件是否是在简档切换被执行时正在被下载的所述一个或多个操作系统组件的所述相同版本之后,对具有指示不同版本的所述描述符并且存储在所述集成电路卡中的所述操作系统组件执行动态链接操作。
2.根据权利要求1所述的方法,其中将所述一个或多个操作系统组件下载到所述集成电路卡的所述存储器包括:将所述一个或多个操作系统组件下载到所述集成电路卡的非易失性存储器。
3.根据权利要求1所述的方法,其中将所述一个或多个操作系统组件下载到所述集成电路卡的所述存储器包括:将所述多个操作系统组件中的每个操作系统组件下载到所述集成电路卡的所述存储器。
4.根据权利要求1所述的方法,其中将所述多个操作系统组件中的所述一个或多个操作系统组件关联到指示所述一个或多个操作系统组件的所述版本的所述描述符包括:
将所述多个操作系统组件中的预定组件关联到指示所述操作系统组件的所述版本的所述描述符。
5.根据权利要求4所述的方法,其中将所述一个或多个操作系统组件下载到所述集成电路卡的所述存储器包括:将所述预定组件下载到所述集成电路卡的所述存储器。
6.根据权利要求1所述的方法,其中所述验证操作包括:将正在被下载的所述一个或多个操作系统组件的版本与已经存储在所述卡的所述存储器中的对应组件在驻留在所述存储器中的版本表中的版本进行比较。
7.根据权利要求1所述的方法,其中所述一个或多个组件包括所述操作系统的内核、Java卡、SMS协议、认证、USIM或全球平台组件中的至少一项。
8.根据权利要求1所述的方法,其中所述动态链接操作包括:通过将所述一个或多个操作系统组件定义为库,隔离正在被下载的所述一个或多个操作系统组件。
9.根据权利要求8所述的方法,还包括:在所述集成电路卡中存储以下中的至少一项:
导入描述符,指示哪个模块被导入及其相关联的版本和/或哪个应用程序接口(API)被调用;或者
导出描述符,指示哪个API被导出和/或所述组件的所述版本。
10.根据权利要求1所述的方法,其中验证存储在所述集成电路卡中的操作系统组件是否是正在被下载的所述一个或多个操作系统组件的所述相同版本包括:
从版本表向下载服务器取回版本信息,并且在所述下载服务器处执行所述验证。
11.根据权利要求1所述的方法,其中所述多个操作系统组件中的每个操作系统组件被加密地签署有使用标识操作系统发布方的公钥的非对称加密签名。
12.根据权利要求11所述的方法,其中所述集成电路卡被配置为:
验证正在被下载的每个操作系统组件的所述非对称加密签名;以及
仅对被验证为具有由相同操作系统提供方计算的加密签名的组件执行动态链接。
13.一种系统,包括:
远程服务器;以及
包括集成电路卡的移动设备,所述集成电路卡被配置为与所述远程服务器交换数据,所述数据包括关于不同移动运营商的简档以及对应的操作系统,其中所述集成电路卡被配置为:
将所述操作系统中的每个操作系统再分为多个操作系统组件;
将所述多个操作系统组件中的每个操作系统组件关联到指示每个操作系统组件的版本的描述符,其中所述描述符与所述多个操作系统组件中的每个操作系统组件的版本相对应;
将所述一个或多个操作系统组件下载到所述集成电路卡的存储器中,其中所述下载包括:验证存储在所述集成电路卡中的操作系统组件是否是正在被下载的所述一个或多个操作系统组件的相同版本;
基于所述验证,在所述版本不同的情况下,将所述一个或多个操作系统组件存储在所述卡中;
基于所述验证,在所述版本相同的情况下,从下载操作中丢弃所述一个或多个操作系统组件;以及
在验证存储在所述集成电路卡中的操作系统组件是否是在简档切换被执行时正在被下载的所述一个或多个操作系统组件的所述相同版本之后,对具有指示不同版本的描述符并且存储在所述集成电路卡中的所述操作系统组件执行动态链接操作。
14.根据权利要求13所述的系统,其中所述集成电路卡包括嵌入式通用集成电路卡。
15.根据权利要求13所述的系统,其中所述存储器包括所述集成电路卡的非易失性存储器。
16.一种非暂态计算机可读存储介质,其上存储有计算机程序产品,所述计算机程序产品能够被加载到至少一个处理器的非暂态存储器中,其中所述计算机程序产品包括用于实现根据权利要求1所述的方法的软件代码。
17.根据权利要求16所述的非暂态计算机可读存储介质,其中所述多个操作系统组件中的每个操作系统组件被加密地签署有使用标识操作系统发布方的公钥的非对称密码。
18.根据权利要求16所述的非暂态计算机可读存储介质,其中验证存储在所述集成电路卡中的所述操作系统组件是否是正在被下载的所述一个或多个操作系统组件的所述相同版本包括:
从版本表向下载服务器取回版本信息,并且在所述下载服务器处执行所述验证。
CN201910271286.XA 2018-04-06 2019-04-04 管理集成电路卡中的多个操作系统 Active CN110362350B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
IT102018000004293A IT201800004293A1 (it) 2018-04-06 2018-04-06 Procedimento di gestione di sistemi operativi multipli in carte a circuito integrato, corrispondente sistema e prodotto informatico
IT102018000004293 2018-04-06

Publications (2)

Publication Number Publication Date
CN110362350A CN110362350A (zh) 2019-10-22
CN110362350B true CN110362350B (zh) 2023-09-22

Family

ID=62530514

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910271286.XA Active CN110362350B (zh) 2018-04-06 2019-04-04 管理集成电路卡中的多个操作系统

Country Status (4)

Country Link
US (1) US11106472B2 (zh)
EP (1) EP3550427B1 (zh)
CN (1) CN110362350B (zh)
IT (1) IT201800004293A1 (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114124930B (zh) * 2018-04-25 2023-01-13 华为技术有限公司 配置文件传输方法、终端、服务器和存储介质
EP3672300A1 (en) * 2018-12-21 2020-06-24 Telefonica, S.A. Portable secure elements for subscription manager roles

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1361905A (zh) * 1999-07-15 2002-07-31 汤姆森特许公司 利用集成电路卡简化从远程服务器下载内容的方法和设备
US7673297B1 (en) * 2003-09-03 2010-03-02 The Directv Group, Inc. Automatic software update detection and flexible installer for set-top boxes
CN102572805A (zh) * 2010-10-28 2012-07-11 苹果公司 通过无线网络传输电子标识组件的方法和装置
CN103077041A (zh) * 2011-07-12 2013-05-01 株式会社理光 通讯设备和更新方法
CN103280020A (zh) * 2012-01-17 2013-09-04 索尼公司 信息处理设备、ic芯片、信息处理方法、程序和信息处理系统
CN104899091A (zh) * 2015-07-02 2015-09-09 中国地质大学(武汉) 一种智能嵌入式设备多操作系统切换方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100400542B1 (ko) * 2001-02-28 2003-10-08 엘지전자 주식회사 디지털 방송 수신장치의 광고를 이용한 시스템 소프트웨어업그레이드 장치 및 방법
US9639347B2 (en) * 2009-12-21 2017-05-02 International Business Machines Corporation Updating a firmware package
US8837449B2 (en) * 2010-10-29 2014-09-16 Cellco Partnership Universal integrated circuit card updates in a hybrid network
WO2015183759A1 (en) * 2014-05-30 2015-12-03 Apple Inc. SUPPORTING SIM TOOLKIT APPLICATIONS IN EMBEDDED UICCs

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1361905A (zh) * 1999-07-15 2002-07-31 汤姆森特许公司 利用集成电路卡简化从远程服务器下载内容的方法和设备
US7673297B1 (en) * 2003-09-03 2010-03-02 The Directv Group, Inc. Automatic software update detection and flexible installer for set-top boxes
CN102572805A (zh) * 2010-10-28 2012-07-11 苹果公司 通过无线网络传输电子标识组件的方法和装置
CN103077041A (zh) * 2011-07-12 2013-05-01 株式会社理光 通讯设备和更新方法
CN103280020A (zh) * 2012-01-17 2013-09-04 索尼公司 信息处理设备、ic芯片、信息处理方法、程序和信息处理系统
CN104899091A (zh) * 2015-07-02 2015-09-09 中国地质大学(武汉) 一种智能嵌入式设备多操作系统切换方法

Also Published As

Publication number Publication date
CN110362350A (zh) 2019-10-22
EP3550427A1 (en) 2019-10-09
EP3550427B1 (en) 2024-09-25
IT201800004293A1 (it) 2019-10-06
US11106472B2 (en) 2021-08-31
US20190310860A1 (en) 2019-10-10

Similar Documents

Publication Publication Date Title
US10231118B2 (en) Method for performing a remote management of a multi-subscription SIM module
CN106211122B (zh) 用于管理sim模块中的多个简档的方法、sim模块以及计算机可读介质
JP6638890B2 (ja) ダイナミック加入者識別モジュール
EP2735180B1 (en) Application selection for multi-sim environment
US9390259B2 (en) Method for activating an operating system in a security module
US20200034137A1 (en) Method and apparatus for updating operating system
US9361470B2 (en) Secure element comprising separated containers and corresponding method
GB2457221A (en) Smart Card Web Server (SCWS) administration within a plurality of security domains
US10409588B2 (en) Method for managing objects in a secure element
US12108488B2 (en) Apparatuses, methods and systems for virtualizing a reprogrammable universal integrated circuit chip
US12022284B2 (en) System and methods for over-the-air SIM profile transfer
CN110362350B (zh) 管理集成电路卡中的多个操作系统
US10430177B2 (en) Method for updating a package
US10474447B2 (en) Method for managing a package in a secure element
CN110321739B (zh) 集成电路卡的个性化方法、对应的系统和计算机程序产品
US20240129743A1 (en) Method for personalizing a secure element
CN118870337A (zh) 设备注网方法、装置、电子设备及存储介质
KR20220041857A (ko) 프로파일들에 대한 보안 요소 실행 환경의 동적 적응
CN118502779A (zh) 在安全元件中执行操作系统更新的方法、安全元件和装置
WO2024012717A1 (en) Update agent for multiple operating systems in a secure element

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