CN114925368A - 用于启动应用程序的安全元件和方法 - Google Patents

用于启动应用程序的安全元件和方法 Download PDF

Info

Publication number
CN114925368A
CN114925368A CN202210106977.6A CN202210106977A CN114925368A CN 114925368 A CN114925368 A CN 114925368A CN 202210106977 A CN202210106977 A CN 202210106977A CN 114925368 A CN114925368 A CN 114925368A
Authority
CN
China
Prior art keywords
secure element
information
piece
application
reset operation
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
Application number
CN202210106977.6A
Other languages
English (en)
Inventor
O·范涅尤文胡伊泽
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.)
Proton World International NV
Original Assignee
Proton World International NV
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 Proton World International NV filed Critical Proton World International NV
Publication of CN114925368A publication Critical patent/CN114925368A/zh
Pending legal-status Critical Current

Links

Images

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/445Program loading or initiating
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/52Monitoring 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/54Monitoring 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 adding security routines or objects to programs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/81Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer by operating on the power supply, e.g. enabling or disabling power-on, sleep or resume operations

Abstract

本描述涉及用于启动应用程序的安全元件和方法。一种启动第一应用程序的方法,第一应用程序被配置为由安全元件的至少一个低级操作系统实施,方法包括验证在安全元件的每次重置操作之后更新的至少第一条信息,第一条信息与至少一个低级操作系统相关联。

Description

用于启动应用程序的安全元件和方法
相关申请的交叉引用
本申请要求于2021年2月2日提交的法国专利申请第2100996号的权益,该申请通过引用结合于此。
技术领域
本公开总体上涉及电子设备,更具体地涉及适于处理秘密数据的电子设备。更具体地说,本公开涉及实施不同应用程序(application)的电子设备,特别是涉及用这种电子设备启动应用程序的方法。
背景技术
安全元件(secure element)是一种电子设备,无论是否自主,适于以安全的方式处理秘密数据,即不需要例如通过旁路攻击或渗透来访问或推断这些秘密数据。例如,安全元件可以被配置为加密数据。
安全元件可适于以安全方式实施一个或多个应用程序。
希望能够至少部分地改进安全元件的某些方面,更具体地说,通过安全元件实施一个或多个应用的某些方面。
发明内容
需要被配置成实施多个应用程序的安全元件。
需要被配置成实施多个应用程序的安全元件,即使在重新启动或重置安全元件之后这些应用程序的执行仍然是安全的。
一个实施例克服了已知安全元件的全部或部分缺点。
一个实施例提供了一种安全元件,其被配置为即使在重新启动或重置安全元件之后也以安全方式实施多个应用程序。
一个实施例提供了一种启动被配置为由安全元件的至少一个低级操作系统实施的第一应用程序的方法,包括验证在安全元件的每次重置操作之后更新的至少一个第一条信息,第一条信息与至少一个低级操作系统相关联。
另一实施例提供了一种安全元件,其被配置为实施至少一个低级操作系统,所述至少一个低级操作系统实施至少第一应用程序,其中,在第一应用的每次启动时,在安全元件的每次重置操作之后更新的第一条信息被验证,第一条信息与至少一个低级操作系统相关联。
根据一个实施例,通过将第一条信息与和第一应用程序相关联的第二条信息进行比较来执行对第一条信息的验证。
根据一个实施例,第一条信息和第二条信息之间的比较由至少一个低级操作系统执行。
根据一个实施例,第一条信息和第二条信息之间的比较由第一应用程序执行。
根据一个实施例,如果验证失败,则更新至少一个第二条信息。
根据一个实施例,通过使至少一个第二条信息与第一条信息相等来更新至少一个第二条信息。
根据一个实施例,在更新至少一个第二条信息之后,至少一个低级操作系统通知第一应用程序重置操作已经发生。
根据一个实施例,在已经被通知之后,考虑到已经发生重置操作的事实,第一应用程序实施协议。
根据一个实施例,在第一应用程序的每次启动时,验证与至少一个低级操作系统相关联并在安全元件的每次重置操作之后更新的至少一个第三条信息。
根据一个实施例,至少一个第一条信息与第一类型的重置操作相关联,并且第三条信息与第二类型的重置操作相关联。
根据一个实施例,第一类型的重置操作是当安全元件的电力供应停止时的冷重置(cold reset)操作。
根据一个实施例,第二类型的重置操作是安全元件的电力供应不停止时的热重置(warm reset)操作。
根据一个实施例,安全元件嵌入在电子设备中。
根据一个实施例,安全元件集成在电子设备中。
根据一个实施例,安全元件被配置成实施至少一个第二应用程序。
另一实施例提供了一种被配置为由先前描述的安全元件的至少一个低级操作系统实施的应用程序。
附图说明
上述特征和优点以及其他将在以下参照附图以说明而不是限制的方式给出的特定实施例的描述中详细描述,其中:
图1以块的形式示意性地示出了所描述的实施例所适用的类型的电子设备的示例;
图2以块的形式示意性地示出了所描述的实施例所适用的类型的电子设备的另一示例;
图3以块的形式示意性地示出了关于图1和图2描述的那些类型的电子设备的安全元件的软件体系结构的实施例;
图4以块的形式示意性地示出了说明由关于图1和图2描述的那些类型的电子设备的安全元件实施的应用程序的不同状态的流程图;
图5以块的形式示意性地示出了说明能够由关于图1和图2描述的那些类型的电子设备实施的不同类型的重启或重置的流程图;
图6以块的形式示意性地示出了说明用关于图1和图2描述的那些类型的电子设备启动应用程序的方法的实施模式的流程图;以及
图7以块的形式示意性地示出了说明用关于图1和图2描述的那些类型的电子设备启动应用程序的方法的实施模式的流程图。
具体实施方式
在不同的图中,相同的特征已由相同的参考标记指定。具体地,在各种实施例中公共的结构和/或功能特征可以具有相同的参考标记并且可以设置相同的结构、尺寸和材料特性。
为了清楚起见,仅详细说明和描述了对理解本文所描述的实施例有用的步骤和元件。
除非另有说明,当参考连接在一起的两个元件时,这意味着没有除导体以外的任何中间元件的直接连接,而当参考耦接在一起的两个元件时,这意味着这两个元件可以连接,或者它们可以通过一个或多个其他元件耦接。
在以下公开中,除非另有说明,否则当参考绝对位置限定符,如术语“前”、“后”、“上”、“下”、“左”、“右”等,或相对位置限定符,如术语“上方”、“下方”、“上部”、“下部”等,或方位限定符,如“水平”、“垂直”等时,参考图中所示的方位。
除非另有说明,否则表述“大约”、“估计”、“基本上”和“按顺序”表示10%以内,最好是5%以内。
图1以块的形式示意性地示出了所描述的实施例所适用的类型的电子设备100(SOC)的示例。
设备100是形成在一个相同芯片(片上系统-SOC)上的电子设备。设备100包括安全元件110(SE),在该示例中,安全元件110(SE)是集成的(iSE集成安全元件)。安全元件110是集成在设备100中的安全元件,即,其可以在设备100中具有自主操作。根据替代实施例,安全元件110可以是嵌入式的,即,它可以使用设备100的某些硬件资源来操作,例如存储器、实现特定功能的电路等。结合图2描述嵌入式安全元件110的更详细示例。
安全元件110是操纵例如加密的秘密数据的电子电路。安全元件110包括:适于处理秘密数据的至少一个处理器111(SE CPU);存储器管理功能112(MMF)和/或存储器管理单元(MMU)(图1中未示出),能够管理从存储器中读取数据和向存储器写入数据;适于实现安全元件110的硬件功能(例如,密码加速器、通信单元等)的一个或多个电路113(HW功能);至少一个易失性存储器114(SE RAM);至少一个非易失性存储器115(SE NVM);通信电路116(COMM),适于管理安全元件110和设备100的其余部分之间的数据和控制信号的传输;以及通信总线117(SE总线),耦接安全元件110的所有元件。
作为变体,集成安全元件110连接到一个或多个附加通信总线。例如,集成安全元件可以具有根据ISO7816标准的总线,与片上系统100的调制解调器连接,另一SWP型(单线协议)总线连接到近场通信设备(NFC)。下面将结合图2对此情况进行更详细的描述。
处理器111用于处理来自存储器114和115、或来自设备100内包括的其他存储器的控制信号和数据。处理器111使用存储器管理电路112作为中间体来管理数据和控制信号的存储器存储,因此处理器从不直接访问存储器114和115。作为示例,电路112例如可用于将易失性存储器或非易失性存储器的存储器空间分配给由集成安全元件实施的某些应用。
电路113可以包括多种类型的电路和组件、能够将数据复制到外部存储器的功能、密码协处理器等。
通信电路116可以用作安全元件110的数据接收和发送链。电路116可包括数据接收电路、数据加密和/或解密电路、一个或多个路由器、数据转换电路。
设备100可仅包括安全元件110,但也可进一步可选地包括适于处理数据的一个或多个处理器121(SOC CPU);适于实现设备100的不同功能的一个或多个电路122(功能);一个或多个易失性存储器123(SOC RAM);一个或多个非易失性存储器124(SOC NVM);以及通信总线125(SOC总线),能够交换控制信号和数据并将其发送到所有前面提到的元件。
出于体积和紧凑性的原因,设备100可进一步适于将数据存储到一个或多个外部存储器中。更具体地,设备100可适于将数据存储到外部易失性存储器21(EXT RAM)和/或外部非易失性存储器22(EXT NVM)中。在这种情况下,设备100还包括适于与这些外部存储器21和22通信的接口电路。更具体地,在这种情况下,设备100可以包括适于与外部易失性存储器21通信的接口电路126(RAM接口)、和/或适于与非易失性存储器22通信的接口电路127(NVM接口)。
安全元件110可以访问设备100的硬件资源以操作,例如对电路122、对存储器123、124、或甚至对存储器21和22。如前所述,安全元件110可以集成到设备100或嵌入到设备100中。当集成安全元件110时,其非易失性存储器115具有非常低的存储容量,例如在1到2千字节的数量级,其易失性存储器114具有更大的存储容量,例如大于8兆字节,电路113被限制在最小必要的范围内,或者甚至不存在于安全元件110中。为了操作,当安全元件被集成时,它使用设备100的非易失性存储器124或外部非易失性存储器22,以及设备100的电路122来存储数据。此外,当嵌入安全元件110时,其非易失性存储器115具有更大的存储容量,使其能够存储更多的数据,例如4.5兆字节的数量级,并且电路113存在于安全元件110中。因此,当安装时,安全元件110在其操作中是自主的。结合图2和图3描述了集成安全元件和嵌入式安全元件之间的其他区别。
图2以块的形式示意性地示出了所描述实施例所适用的类型的电子电路100'的另一示例。
设备100'包括各种电子电路或芯片,其中包括形成防篡改元件(TRE)的嵌入式安全元件(eSE)150;主处理器161(主CPU);调制解调器型通信电路163(调制解调器);以及近场通信电路165(NFC控制器)。
嵌入式安全元件150由单个芯片形成,并集成例如安全元件151(安全CPU);硬件密码处理器152(HW密码CPU)或密码加速器;一个或多个易失性存储器153(RAM);一个或多个非易失性存储器154(NVM);以及在元件150的不同组件之间通信的一个或多个总线155(总线)。
元件150还根据各种通信协议集成与外部的通信接口,例如,与外部处理器161通信的I2C或SPI类型的接口156(I2C/SPI HW);根据ISO7816标准与调制解调器163进行通信的接口157(ISO7816);以及与NFC控制器165通信的SWP型接口158(SWP)。
设备100'可以包括集成或未集成的其他电路。例如,嵌入式安全元件150可以使用一个或多个外部存储器(图2中未示出),它直接或经由主处理器与之通信。
与诸如图1的元件110的集成安全元件相反,嵌入式安全元件150不与设备100'的其他组件集成,特别是不与应用程序的主处理器集成。
然而,嵌入式安全元件150可以与近场通信控制器165(NFC)组合。
根据变体,嵌入式安全元件150可以包括存储器管理元件,例如关于图1描述的存储器管理功能112或存储器管理单元,从而能够防止其安全元件处理器151对存储器153和154的直接访问。
图3以块的形式示意性地示出了关于图1和图2描述的那些类型的电子设备的安全元件SE的体系结构200的实施例。
除非另有说明,否则表述“安全元件”在下文中无关紧要地表示嵌入式安全元件或集成式安全元件。因此,安全元件SE的软件体系结构200可以在前面附图的元件110和150中的任何一者中实现。
体系结构200包括虚拟主平台210(VPP)或主平台2110,使得能够实现安全元件SE的不同功能。主平台210由三个层次构成:对安全元件SE的电子组件211(HW,硬件)的访问;一个或多个低级操作系统213(LLOS);以及一个或多个软件接口215(ABI、VRE、IPC)。
组件211是安全元件SE(110,图1;150,图2)的硬件资源。安全元件110的组件211例如是:一个或多个处理器,例如处理器111(图1)或151(图2);一个或多个存储器,例如存储器114和115(图1)或153和154(图2);一个或多个通信设备,例如能够与近场通信设备(NFC)直接通信的通信设备;使用例如蓝牙标准的短程通信设备;生物测定传感器;适于超宽带技术(UWB)的设备等。
低级操作系统213是适于实现组件211以执行从由安全元件实施的大多数应用程序接收的控制信号的软件。作为示例,低级操作系统213包括组件211的驱动软件的全部或部分。
低级操作系统213由执行代码(或可执行代码)和执行数据形成。执行代码包含能够执行程序功能的指令。根据定义,对于给定的程序,指令是不变的,除了程序的更新,然后程序修改指令。执行代码使用执行数据来将执行上下文化(contextualize)并执行所需的功能。执行数据可以分布在两个类别中。称为“临时”的执行数据和称为“永久”或“固定”的执行数据,详见下文。
主平台210经由由主平台执行的软件接口215与由安全元件110实施的应用程序通信。这些接口215可包括应用二进制接口(ABI);寄存器(VRE、虚拟寄存器);以及允许通过进程间通信(IPC)在进程之间进行数据交换的存储缓冲存储器或缓冲存储器或共享存储器;等等。
二进制程序接口是由安全元件(下文描述)实施的应用程序和低级操作系统213之间的低级接口,或者是应用程序的不同部分之间的低级接口。二进制程序接口能够链接应用程序和组件211。
寄存器是链接到安全元件的硬件功能的存储空间,并用于临时存储数据,例如当控制信号被发送到安全元件的主平台210时或在由主平台执行的进程之间的交换期间。
缓冲存储器(或共享存储器)用于在被平台210或被安全元件的应用程序使用之前存储消息。实际上,缓冲存储器是分配在元件110或100'的存储器中的存储器空间,例如,元件110可以访问的易失性存储器,例如存储器114。
作为示例,软件体系结构200包括适于由主平台210实施的至少三个应用程序231、232、233。应用程序231、232、233是使用主平台资源的软件或计算机程序。当然,安全元件在其计算能力和数据存储能力的限制内实施了许多应用程序。
与低级操作系统213类似,每个应用程序231、232、233由执行代码(或可执行代码)和执行数据形成。执行代码包含能够执行应用程序的功能的指令。根据定义,对于给定的程序,指令是不变的,除了程序的更新,然后程序修改指令。执行代码使用执行数据来将对执行进行上下文化并执行所需的功能。如前所述,执行数据可以分为两类:称为“临时”的执行数据和称为“永久”或“固定”的执行数据。例如,如果该功能包括验证PIN码,则该功能被分解为三个部分,执行代码包含验证PIN码的指令,而永久执行数据包含参考PIN码和剩余测试的数量,临时执行数据包含提交验证的PIN码。
集成安全元件110(图1)可以在其内部存储器中一次执行单个应用程序,并将其他应用程序记录在外部存储器中,这将使得应用程序的数量仅受外部存储器的存储容量的限制。在执行(或恢复执行)之前,应用程序必须预先加载到内部存储器中,并且在能够使用之前,必须释放以前的应用程序。相反,嵌入式安全元件150(图2)将倾向于使用其内部存储器来存储和执行应用程序,这意味着应用程序的数量更有限,但执行速度更快,因为它将被称为不需要替换应用程序的“就位”执行。然而,仍然可以将嵌入式安全元件与外部存储器结合,从而将内部存储器和外部存储器的优点结合起来。
应用程序231、232、233可适于实现各种功能。它们通常实现服务提供商的数字服务,例如EMV或交通票类型的支付服务。这些应用程序可以与位于主处理器121(图1)或161(图2)中或位于另一安全环境(可信执行环境)中的另一应用程序组合。处理器和安全环境更能够通过可信用户接口与用户交互。应用程序231、232、233例如适于处理来自通信接口的控制信号,例如使用近场通信设备的银行交易。应用程序可以是不同类型的,例如,SIM(用户识别模块)应用程序、支付应用程序、能够验证公共交通票的应用程序等。
根据应用类型的示例,应用程序231(App1)适于由主平台210(VPP)直接实现。应用程序231例如是能够通过与近场通信设备(NFC)通信来进行支付的应用程序。
根据应用程序类型的另一示例,应用程序232是适于通过使用高级操作系统232H(HLOS1)来执行的指令集232A(App2)。高级操作系统是适于通过提供一组通用软件功能来实现不同应用程序的软件。操作系统232H是与主平台210通信的应用程序232的唯一部分。作为变体,还可以认为高级操作系统以及附加到其上的所有应用程序是适于由主平台210实施的单个应用程序。
根据应用类型的另一示例,另一应用程序233是使用执行环境233E(ENV)的指令集233A(App3),应用程序233本身使用高级操作系统233H(HLOS2)。例如,执行环境是Java或JavaCard类型的。操作系统233H和执行环境233E是应用程序233与主平台210通信的唯一部分。作为变体,还可以认为高级操作系统以及附加到其上的所有应用程序是适于由主平台210实施的应用程序。
高级操作系统232H和233H,或者如果没有高级操作系统,应用程序232和233本身,使用可用于管理执行代码和执行数据的存储器的虚拟映像。由于这种技术,高级操作系统(或应用程序)不能直接访问物理存储器的管理,不管它们是易失性的还是非易失性的。换句话说,在所描述的实施例中,高级操作系统管理存储器的虚拟映像。低级操作系统213结合某些组件211,例如结合图1描述的存储器管理功能112,确保易失性和非易失性存储器中物理分布的匹配。更一般地,认为主平台210实施虚拟存储器和物理存储器之间的匹配。
应用程序231、232或233的实现如下。当应用程序希望使用安全元件的硬件资源,即主平台210的一个或多个组件211时,这意味着在固定数据上执行的当前操作被认为已经结束。然后,应用程序可以执行不同的命令,例如,强制写入非易失性存储器。为此目的,应用程序通过接口215向主平台210发送控制信号和/或数据。控制信号在被发送到低级操作系统213之前由一个或多个二进制程序接口负责,即,命令被分成多个操作,每个操作由二进制程序接口或虚拟寄存器或缓冲存储器/共享存储器表示。数据被存储到寄存器中或通过进程间通信(IPC)传输。低级操作系统213通过将应用程序二进制接口请求的操作应用于存储在寄存器中的数据,来响应应用程序二进制接口的请求。然后,低级操作系统213驱动组件211以执行应用程序所请求的内容。
应用程序231、232、233可以不在安全元件内彼此通信。每个应用程序23x(其中x从1变化到可能执行的应用程序的数量)不知道其他应用程序23x的存在。具体地,应用程序的每个操作系统都“相信”它是唯一与外部通信的操作系统。因此,如果应用程序必须一起通信,它们应该像从执行应用程序23x的安全元件到具有应用程序23x的另一个元件进行讨论一样进行通信。然而,同一组应用程序的两个子应用程序或应用程序233的两个子应用程序(应用程序可包含多个子应用程序)使用分组通信方法,通过使用IPC进程间通信工具一起通信。每个应用程序231、232、233可以与外部电子设备通信。分组通信是一种数据传输方法,其中发送的消息由一个或多个数据分组形成。每个数据分组包括头部,该头部包括与所使用的通信协议类型、消息发射机、消息接收机、消息大小等有关的信息。在不同的已知分组通信协议中,安全元件可能使用(兼容)不同的协议,这些协议可以根据协议的性质、交换信息协议、应用程序协议、通信协议、物理链路来分类。例如,这些协议包括:
-由“全球平台技术虚拟主平台-网络协议1.0.1(GlobalPlatform TechnologyVirtual Primary Platform-Network Protocol 1.0.1)”标准(或任何后续版本)定义的VNP协议(虚拟网络协议),它对应于交换信息的协议;
-SWP协议(单线协议),由ETSI TS 102 613UICC-非接触式前端(CLF)接口-物理和数据链路层特性标准定义,对应于物理链路;
-由ISO7816标准定义的通信协议,包括信息交换、应用程序协议、通信,以及物理链路(无线)的性质;
-HCI(主机控制器接口)协议,由ETSI TS 102 612V12.0标准(或任何后续版本)定义,对应于应用程序协议;
-CLT协议,由ETSI TS 102 613UICC-非接触式前端(CLF)接口-物理和数据链路层特性11.0标准(或任何后续版本)定义,对应于通信协议;
-sHDLC协议(简化的高级数据链路控制),由ETSI TS 102 613(UICC-非接触式前端(CLF)接口-物理和数据链路层特性)标准定义;以及
-由ISO/IEC 7816标准定义的ISO7816协议;以及
-与物理链路相对应的I2C和SPI协议。
这些消息也可以通过扮演通信总线角色的存储器来传输。换句话说,通信总线可以用存储器来替换,该存储器具有写入其中的、将由发送设备发送的数据,并由接收设备读取。
VNP协议是适于用于安全元件的通信的通信协议。它是一种协议,能够管理体系结构200内的消息的路由并且还能够管理朝向外部设备的消息的路由。这是安全元件中的优选通信协议。根据实施例,包括在组件211内的路由器(与低级操作系统213组合)是被配置成使用VNP协议处理消息的路由器。
HCI、sHDLC和CLT协议是与VNP协议冲突的协议,因为这些协议不兼容,标准没有限定两者之间的交互。该冲突的结果表明HCI、sHDLC和CLT协议不适合于管理体系结构200内的消息的路由。因此,包括在组件211中的路由器不能支持使用sHDLC、CLT和HCI协议的消息,因为用于在体系结构200内正确路由消息的信息不存在。
CLT、sHDLC和HCI协议、以及ISO7816标准定义的协议是与VNP协议的使用不兼容的协议。包含在组件211(与213组合)中的路由器不能支持使用CLT、sHDLC、HCI和ISO7816协议的消息。
图4以块的形式示意性地示出了说明由关于图1或图2中所描述的类型的安全元件SE执行的、关于图3描述的应用程序231、232和233的类型的应用程序301(VPP App)的不同状态的流程图。
应用程序301包括两个主要状态:去激活状态302(去激活)和激活状态303(激活)。
当应用程序301处于去激活状态302或被去激活时,它未被安全元件SE实施。根据实施例,当应用程序301刚刚被安装在安全元件SE上并且从未被实施时,应用程序301处于去激活状态。根据另一示例,当应用程序301决定被设置为去激活状态时,例如,当应用程序301刚刚结束任务时,应用程序301可以处于去激活状态。更具体地说,应用程序301的执行代码和固定执行数据存储在非易失性存储器中。然后出现了两种情况。如果安全元件集成在电子设备中,则应用程序301的全部或部分执行代码和执行数据存储在安全元件SE外部的非易失性存储器中。根据示例,应用程序301的执行代码和执行数据完全存储在安全元件SE外部的非易失性存储器中,类似于关于图1描述的存储器124。然而,如果安全元件SE嵌入在电子设备中,则应用程序的执行代码和固定执行数据存储在包括在安全元件SE中的非易失性存储器中,类似于结合图1描述的非易失性存储器115或结合图2描述的非易失性存储器154。
当应用程序301处于激活状态303或被激活时,它正由安全元件SE实施。然后,应用程序301包括其可能处于的两个二级状态,即运行状态304(运行)和挂起(hold on)状态305(挂起)。
当应用程序301处于运行状态304或正在运行时,应用程序301由安全元件SE在前台实施。在图1的示例中,即,在集成在电子设备中的安全元件的示例中,应用程序301的执行代码和固定执行数据的全部或部分已经被加载到易失性存储器中以供使用,例如关于图1描述的易失性存储器114。在图2的示例中,即,在嵌入在电子设备中的安全元件的示例中,应用程序301的全部或部分执行代码和固定执行数据从关于图2描述的非易失性存储器154执行。然后谈到应用程序的就地执行。这里的动词“加载”是指从非易失性存储器复制执行代码和固定执行数据,并且这个副本存储在易失性存储器中。应用程序301在运行时生成并使用临时执行数据,并且这些临时执行数据也存储在易失性存储器中。
当应用程序301处于挂起状态305或处于被挂起时,应用程序301的执行被暂时停止,例如,以允许执行安全元件的另一应用程序。应用程序301的全部或部分执行代码以及固定执行数据和临时执行数据,被加载到与由主平台VPP管理的易失性存储空间同化的区域中。当安全元件SE集成到电子设备时,被同化为易失性存储空间的区域是安全元件的易失性存储器,例如,结合图1描述的易失性存储器114。当安全元件SE嵌入到电子设备中时,被同化为易失性存储空间的区域是安全元件SE的易失性存储器和安全元件SE的非易失性存储器的一部分的组合。在嵌入安全元件的情况下,同化为易失性存储空间的区域的管理示例,在参考文献FR3094526公开的法国专利申请参考FR1903168中进一步详细描述。
当应用程序301处于挂起状态时,它没有“意识到”处于挂起状态。应用程序301不知道它的实施已经被另一个事件停止,例如另一个应用程序的实施。
图5以块的形式示意性地示出了说明图1和图2中描述的类型的安全元件SE的不同重置操作401(重置)的时序图。
存在安全元件SE的至少两种重置操作:冷重置操作402(冷重置);以及热重置操作403(热重置)。
在冷重置操作或冷重置期间,安全元件SE的电力供应,或具体是包括安全元件SE的电子设备的电力供应至少暂时停止。在没有电力供应的情况下,安全元件SE的易失性存储器和包括它的电子设备的易失性存储器被重置,并且它们存储的所有数据被擦除。因此,激活应用程序的固定执行数据和临时执行数据,即运行或挂起应用程序的固定执行数据和临时执行数据,被擦除。安全元件的非易失性存储器和包括它的电子设备的非易失性存储器不被重置,因为非易失性存储器具有即使在非易失性存储器的电力供应停止之后仍保持它们所存储的数据的特征。此外,处于激活状态但被挂起的应用程序可能不会接收冷重启指令。
热重启操作或热重置是以软件方式或硬件方式执行的重置,但不包括切断电力供应。例如,可以由组件、应用程序或由来自外部电子设备的指令来请求该重置。热重置可引起安全元件的易失性存储器的重置,以及包括它的电子设备的易失性存储器的重置。然而,由软件执行的该热重置意味着激活但处于挂起的应用程序可能不会接收热重置指令。
图6是示出由关于图1和图2描述的安全元件110和150的类型的安全元件SE,启动关于图3描述的应用程序231、232、233的类型的应用程序VPP App的方法的步骤的实施模式的流程图。安全元件SE包括适合于实施应用程序VPP App的、关于图3描述的主平台210类型的主平台VPP。
本文描述的启动方法或启动应用程序VPP App的执行的方法,适于考虑由安全元件SE经历的可能的重置操作。实际上,根据一个实施例,考虑到可能的重置操作,主平台VPP和由安全元件SE实施的应用程序,各自具有在每次重置时更新的至少一条信息。根据一个示例,可以在每次重置时更新该条信息,无论是热重置还是冷重置。根据一种变体,该条信息可以在每次特定类型的重置时更新,例如,仅用于热重置,分别用于冷重置。
根据一个实施例,主平台VPP和由安全元件SE实施的应用程序各自具有针对每个冷重置更新的至少一条信息和针对每个热重置更新的至少一条信息。更具体地说,每次主平台(分别由安全元件实施的应用程序)意识到发生了热重置操作或冷重置操作时,更新信息。在实践中,主平台总是意识到发生了热重置操作或冷重置操作。这些信息条例如是在每个冷重置操作或热重置操作时修改的二进制数据。根据一个实施例,每个信息条表示上次冷重置或热重置的日期和时间。根据另一实施例,该信息条是在每次冷重置或热重置时产生的随机数。根据另一实施例,信息条是在每次新的冷重置或热重置时递增的数字。在下面的描述中,使用以下符号:
-CR Num VPP,在每次冷重置时实施的主平台VPP的信息;
-WR Num VPP,在每次热重置时实施的主平台VPP的信息;
-CR Num,在每次冷重置时实施的应用程序VPP App的信息;以及
-WR Num,在每次热重置时实施的应用程序VPP App的信息。
因此,启动应用程序VPP App的方法如下。
在步骤401(加载VPP App),应用程序VPP App希望启动。如果应用VPP App在步骤401之前是非激活的,则它开始将其执行代码和固定执行数据的全部或部分加载到安全元件SE的非易失性存储器中。如果应用程序VPP App在步骤401之前被挂起,则它开始将其执行代码以及其固定执行数据的全部或部分加载到安全元件SE的非易失性存储器中。
继步骤401之后,在步骤402(检查CR Num、WR Num),主平台VPP验证其信息CR NumVPP和WR Num VPP与应用程序VPP App的信息CR Num和WR Num一致。通过该验证,主平台VPP验证是否在没有考虑应用程序VPP App的情况下执行了冷重置操作或热重置操作。实际上,当冷、热重置操作正在进行或由安全元件SE实施时,主平台VPP总是知道它,并分别更新其信息CR Num VPP和其信息WR Num VPP。应用程序VPP App可能没有意识到发生了冷、热重置操作。如果信息CR Num VPP和CR Num,分别与WR Num VPP和WR Num一致(图6中的输出相同),则下一步骤是步骤403(执行VPP App)。否则(图6中的输出不同),下一步是步骤404(调整CR Num,WR Num)。
根据替代实施例,处于挂起的应用程序可以在其每个重置时通过将其与主平台的信息CR Num VPP和WR Num VPP进行比较,来验证其信息CR Num和WR Num。
在步骤403,数据CR Num VPP和CR Num,分别与WR Num VPP和WR Num一致,应用程序VPP App没有“错过”冷、热重置操作。应用程序VPP App可以执行。
在步骤404,使应用程序VPP App的信息CR Num(分别为信息WR Num)与主平台VPP的信息CR Num VPP(分别为信息WR Num VPP)相等。主平台VPP更新应用程序VPP app的信息CR Num和/或WR Num。
继步骤404之后,在步骤405(通知VPP App),主平台VPP通知应用程序VPP App重置操作已经发生。此外,主平台VPP通知应用程序VPP App该操作是冷重置操作还是热重置操作。
应用程序VPP App可能不知道多个冷和/或热连续操作。如果在多个重置操作中存在至少一个冷重置操作,则主平台VPP向应用VPP App指示已经发生了冷重置操作。否则,主平台VPP向应用程序VPP App指示已发生热重置操作。根据替代实施例,在多个连续的热重置操作的实施期间,主平台VPP可以指示在应用程序VPP执行之前对其执行的热重置操作的数量。
继步骤405之后,在步骤406(VPP App协议),应用程序VPP App考虑在步骤405从主平台接收的信息,然后执行特定于已经发生的重置操作类型的协议。图7描述了协议的示例。
本实施例的优点是使得应用程序不“错过”任何重置操作,并因此使其有可能擦除其全部或部分临时执行数据。
图7以块的形式示意性地示出了说明在结合图6描述的步骤406期间实施的图6的应用程序VPP App的协议的示例的时序图。
作为提醒,在图6的步骤406,安全元件SE的主平台VPP通知应用程序VPP App已经发生了对元件SE和/或包括其的电子设备的重置操作。其信息CR Num和WR Num已被更新以对应于主平台VPP的信息CR Num VPP和WR Num VPP。
图7示出了应用程序VPP App实施的协议的示例。本领域技术人员将理解,可以设想各种协议。特别是,这个协议是由应用程序的设计者选择的。
在步骤501(重置类型?),应用程序VPP App处理它从主平台VPP接收到的信息。特别地,应用程序VPP App确定已经发生的重置操作是冷重置操作还是热重置操作。如果重置操作是冷重置操作(图7中的输出冷重置),那么下一步是步骤502(VPP App重置)。如果重置操作是热重置操作(图7中的输出热重置),那么下一步是步骤503(VPP App状态?)。
在步骤502,应用程序VPP App意识到冷重置操作已经发生。如前所述,在冷重置操作期间,擦除安全元件SE的易失性存储器。此外,当应用程序VPP App处于激活状态时,这些执行数据的一部分可以存储在非易失性存储器中。
根据示例,在已经意识到冷重置操作已经发生之后,应用程序VPP App验证其所有临时执行数据已经从安全元件SE的不同存储器中有效地擦除。根据一个变体,应用程序VPPApp恢复没有被擦除的数据。
在步骤503,应用程序VPP App意识到已经发生了热重置操作。如前所述,在热重置操作期间,请求软件重置的信息已经循环。但是,如果应用程序VPP App被挂起,它可能已经错过了这些信息。因此,当应用程序在热重置操作发生时在运行(在图7中输出运行),下一个步骤是步骤504(部分或全部重置)。如果在热重置操作发生时应用程序被挂起,则下一步骤是步骤505(忽略(或不)重置)。应当注意,如果应用程序VPP App在热重置操作或冷重置操作时非激活,则该操作可能对其操作没有影响,因为其执行代码或执行数据都没有加载到安全元件SE的易失性存储器中。
在步骤504,应用程序VPP App在热重置操作期间运行。应用程序VPP App可以执行全部或部分重置。根据实施例,应用程序可以擦除其所有临时执行数据。根据另一示例,应用程序可以保持一般的临时执行数据,并且仅擦除与其一个或多个功能链接的临时执行数据。
在步骤505,应用程序VPP App在热重置操作期间被挂起。根据一个示例,该操作可以,就像它已经在运行一样,执行全部或部分重置。根据另一个示例,应用程序VPP App可决定忽略热重置操作。
已经描述了各种实施例和变体。本领域技术人员将理解,这些各种实施例和变体的某些特征可以组合,并且本领域技术人员将见到其他变体。
最后,基于上面给出的功能指示,所描述的实施例和变体的实际实现在本领域技术人员的能力范围内。

Claims (28)

1.一种启动第一应用程序的方法,所述第一应用程序被配置为由安全元件的至少一个低级操作系统实施,所述方法包括:
验证在所述安全元件的每次重置操作之后实施的至少第一条信息,所述第一条信息与所述至少一个低级操作系统相关联。
2.根据权利要求1所述的方法,其中验证所述第一条信息是通过将所述第一条信息与和所述第一应用程序相关联的第二条信息进行比较而被执行的。
3.根据权利要求2所述的方法,其中将所述第一条信息与所述第二条信息进行比较是由所述至少一个低级操作系统执行的。
4.根据权利要求2所述的方法,其中将所述第一条信息与所述第二条信息进行比较是由所述第一应用程序执行的。
5.根据权利要求2所述的方法,还包括:响应于所述验证失败,更新所述第二条信息。
6.根据权利要求5所述的方法,其中所述第二条信息是通过将所述第二条信息等同于所述第一条信息而被更新的。
7.根据权利要求5所述的方法,其中,在更新所述第二条信息之后,由所述第一应用程序通知所述至少一个低级操作系统重置操作已经发生。
8.根据权利要求7所述的方法,其中,在被通知之后,考虑到所述重置操作已经发生,所述第一应用程序实施协议。
9.根据权利要求1所述的方法,其中与所述至少一个低级操作系统相关联、并且在所述安全元件的每次重置操作之后更新的至少一个第三条信息是在所述第一应用程序的每次启动时被验证的。
10.根据权利要求9所述的方法,其中所述第一条信息与第一类型的重置操作相关联,并且所述第三条信息与第二类型的重置操作相关联。
11.根据权利要求10所述的方法,其中所述第一类型的重置操作是冷重置操作,所述冷重置操作包括停止所述安全元件的电力供应。
12.根据权利要求10所述的方法,其中所述第二类型的重置操作是热重置操作,所述热重置操作包括不停止所述安全元件的电力供应。
13.根据权利要求1所述的方法,其中所述安全元件被配置为实施至少一个第二应用程序。
14.一种安全元件,所述安全元件被配置为实施至少一个低级操作系统,所述至少一个低级操作系统实施至少一个第一应用程序,所述安全元件包括:
非瞬态计算机可读存储器;以及
安全处理器,耦接到所述存储器,并且所述安全处理器被配置为:
在所述第一应用程序的每次启动时,验证在所述安全元件的每次重置操作之后更新的第一条信息,其中所述第一条信息与所述至少一个低级操作系统相关联。
15.根据权利要求14所述的安全元件,其中被配置为验证所述第一条信息的所述安全处理器包括:被配置为将所述第一条信息与和所述第一应用程序相关联的第二条信息进行比较的所述安全处理器。
16.根据权利要求15所述的安全元件,其中所述至少一个低级操作系统被配置为将所述第一条信息与所述第二条信息进行比较。
17.根据权利要求15所述的安全元件,其中所述第一应用程序被配置为将所述第一条信息与所述第二条信息进行比较。
18.根据权利要求15所述的安全元件,其中所述安全处理器被配置为响应于所述验证失败,更新所述第二条信息。
19.根据权利要求18所述的安全元件,其中所述安全处理器被配置为通过将所述第二条信息等同于所述第一条信息来更新所述第二条信息。
20.根据权利要求18所述的安全元件,其中所述至少一个低级操作系统被配置为:在所述第二条信息的更新之后,通知所述第一应用程序重置操作已经发生。
21.根据权利要求20所述的安全元件,其中所述第一应用程序被配置为:在被通知之后,考虑到所述重置操作已经发生而实施协议。
22.根据权利要求14所述的安全元件,其中所述安全处理器被配置为:在所述第一应用程序的每次启动时验证至少一个第三条信息,并且其中所述至少一个第三条信息与所述至少一个低级操作系统相关联,并且在所述安全元件的每次重置操作之后所述至少一个第三条信息被更新。
23.根据权利要求22所述的安全元件,其中所述第一条信息与第一类型的重置操作相关联,并且所述第三条信息与第二类型的重置操作相关联。
24.根据权利要求23所述的安全元件,其中所述第一类型的重置操作是冷重置操作,其中所述安全元件的电力供应被停止。
25.根据权利要求23所述的安全元件,其中所述第二类型的重置操作是热重置操作,其中所述安全元件的电力供应不被停止。
26.根据权利要求14所述的安全元件,其中所述安全元件被嵌入在电子设备中。
27.根据权利要求14所述的安全元件,其中所述安全元件被集成在电子设备中。
28.根据权利要求14所述的安全元件,其中所述安全元件被配置成实施至少一个第二应用程序。
CN202210106977.6A 2021-02-02 2022-01-28 用于启动应用程序的安全元件和方法 Pending CN114925368A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
FR2100996A FR3119471B1 (fr) 2021-02-02 2021-02-02 Démarrage d'une application
FR2100996 2021-02-02
US17/457,193 2021-12-01
US17/457,193 US11768943B2 (en) 2021-02-02 2021-12-01 Secure element and method for starting an application by a low-level operating system

Publications (1)

Publication Number Publication Date
CN114925368A true CN114925368A (zh) 2022-08-19

Family

ID=75690417

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210106977.6A Pending CN114925368A (zh) 2021-02-02 2022-01-28 用于启动应用程序的安全元件和方法

Country Status (4)

Country Link
US (1) US11768943B2 (zh)
EP (1) EP4036717A1 (zh)
CN (1) CN114925368A (zh)
FR (1) FR3119471B1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115167952A (zh) * 2022-08-25 2022-10-11 深圳市汇顶科技股份有限公司 一种安全元件、应用程序管理方法及电子设备、存储介质

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7549055B2 (en) * 2003-05-19 2009-06-16 Intel Corporation Pre-boot firmware based virus scanner
CN103039034A (zh) * 2011-04-22 2013-04-10 松下电器产业株式会社 无效化列表生成装置、无效化列表生成方法及内容管理系统
EP2942732A1 (en) * 2014-05-07 2015-11-11 Gemalto SA Dynamic change of security configurations
FR3024915B1 (fr) * 2014-08-18 2016-09-09 Proton World Int Nv Dispositif et procede pour assurer des services de module de plateforme securisee
US9363087B2 (en) * 2014-10-02 2016-06-07 Microsoft Technology Licensing, Inc. End-to-end security for hardware running verified software
FR3043228B1 (fr) * 2015-11-03 2018-03-30 Proton World International N.V. Demarrage controle d'un circuit electronique
FR3094526A1 (fr) 2019-03-26 2020-10-02 Stmicroelectronics S.R.L. Elément sécurisé embarqué

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115167952A (zh) * 2022-08-25 2022-10-11 深圳市汇顶科技股份有限公司 一种安全元件、应用程序管理方法及电子设备、存储介质

Also Published As

Publication number Publication date
EP4036717A1 (fr) 2022-08-03
US11768943B2 (en) 2023-09-26
US20220245253A1 (en) 2022-08-04
FR3119471A1 (fr) 2022-08-05
FR3119471B1 (fr) 2023-03-24

Similar Documents

Publication Publication Date Title
CN110084043B (zh) 用于提供可信平台模块服务的设备和方法
CN102063591B (zh) 基于可信平台的平台配置寄存器参考值的更新方法
US20060086785A1 (en) Portable electronic apparatus and method of updating application in portable electronic apparatus
US9430650B2 (en) Method for managing memory space in a secure non-volatile memory of a secure element
CN107273148B (zh) 数据的更新驱动迁移
CN103069384A (zh) 用从储存设备加载的操作系统代码安全地引导主机设备的主机设备和方法
JP2012506584A (ja) セキュアソフトウェアプラフォームアクセスのための方法及び装置
CN111201553B (zh) 一种安全元件及相关设备
US10248795B2 (en) Implementing method for JavaCard application function expansion
US20100005476A1 (en) Mobile electronic device including a portable application and a secured module able to communicate with each other, and associated communication method
KR102277238B1 (ko) 업데이트가능한 집적 회로 무선장치
US9449453B2 (en) Portable electronic entity and method for personalization of such an electronic entity
CN105187410A (zh) 一种应用的自升级方法及其系统
CN114925368A (zh) 用于启动应用程序的安全元件和方法
WO2007119594A1 (ja) セキュアデバイス及び読み書き装置
CN110888674B (zh) 在Python虚拟机中执行安全计算的方法及装置
JP4236830B2 (ja) アップロード機能付き記憶装置
CN111783120A (zh) 一种数据的交互方法、计算设备、bmc芯片及电子设备
WO2017163204A1 (en) A memory management system and method
US10489775B2 (en) Integrated circuit card adapted to transfer first data from a first application for use by a second application
CN114491544A (zh) 一种虚拟可信平台模块的实现方法及相关装置
US20220129568A1 (en) Secure element and method
JP2006338311A (ja) 複数のアプリケーションを搭載したデバイスを処理するコンピュータシステム、デバイスおよびコンピュータプログラム
US20220131899A1 (en) Secure element and method
JP7334566B2 (ja) 電子情報記憶媒体、及びプログラム

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