CN106133739A - 数据到安全元件的非易失性存储器中的加载的安全保护 - Google Patents

数据到安全元件的非易失性存储器中的加载的安全保护 Download PDF

Info

Publication number
CN106133739A
CN106133739A CN201580015759.XA CN201580015759A CN106133739A CN 106133739 A CN106133739 A CN 106133739A CN 201580015759 A CN201580015759 A CN 201580015759A CN 106133739 A CN106133739 A CN 106133739A
Authority
CN
China
Prior art keywords
memory area
data
signature
code memory
safety element
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201580015759.XA
Other languages
English (en)
Other versions
CN106133739B (zh
Inventor
S·尼罗特
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.)
Ai Demiyafaguo
Original Assignee
Oberthur Technologies SA
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 Oberthur Technologies SA filed Critical Oberthur Technologies SA
Publication of CN106133739A publication Critical patent/CN106133739A/zh
Application granted granted Critical
Publication of CN106133739B publication Critical patent/CN106133739B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/71Protecting 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/77Protecting 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
    • 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/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W8/00Network data management
    • H04W8/22Processing or transfer of terminal data, e.g. status or physical capabilities
    • H04W8/24Transfer of terminal data
    • H04W8/245Transfer of terminal data from a network towards a terminal

Abstract

本发明涉及使来自外部设备的数据到代码存储区域中的加载安全,该代码存储区域由安全元件的初始程序定义并且其任何修改仅由初始程序控制。当外部设备获得待传送到安全元件的数据时,安全元件模拟可能将被这些数据的加载修改的代码存储区域的图像。根据该模拟的图像计算签名,然后将该签名与所述数据一起发送到安全元件。安全元件的初始程序将其在数据有效加载之后针对整个代码存储区域所计算的签名与从外部设备接收的签名做比较。这两个签名之间的一致性允许保证代码存储区域良好地符合由外部设备模拟的图像,并且因此是完整的。

Description

数据到安全元件的非易失性存储器中的加载的安全保护
技术领域
本发明涉及诸如智能卡之类的安全元件领域。特别地,本发明提供用于使将数据加载到安全元件的非易失性存储器中安全的方法和设备。
背景技术
安全元件,例如智能卡,典型地以微型电路的形式呈现,以可移除的方式被集成在主电子设备中,或者作为变型被嵌入(例如焊接)到这种电子设备中。以示例的方式,安全元件可以是eSE(“embedded secure element”,嵌入式安全元件)或eUICC(“embeddedUniversal Integrated Circuit Card”,嵌入式通用集成电路卡)。
安全元件包括其专有的处理器(该处理器与在其中集成或嵌入了安全元件的主电子设备的处理器是不同的)并包括用于存储处理器可执行的计算机程序的非易失性存储器。
非易失性存储器的不可修改区域存储通常为小尺寸的称作“初始”或“基础”的程序,例如由安全元件的制造商存储的引导加载程序(Boot Loader)。初始程序提供允许诸如运营商或向用户供应安全元件的供应商之类的中介通过将软件元件加载到由初始程序定义的非易失性存储器的特别区域中来使安全元件个性化的功能,所述软件元件通常由经编译或解释的代码构成(即,使用处理器直接可执行的语言或机器码的码字或字节码(“bytecodes”)),例如操作系统或应用。该初始程序例如与具体操作系统相关联,该具体操作系统尤其包括允许与该初始程序通信的端口管理模块、存储器的更新管理模块、命令解释器、和保证该初始程序安全的安全模块。由安全元件的制造商来使该具体操作系统个性化,并且在其个性化完成后不允许对其进行修改。
一般地,该初始程序是在安全元件的启动期间实施的第一个程序,即在可能将出现在安全元件的存储器中的所有其他程序之前。该程序是实施安全元件的其他程序所必要的。
上述非易失性存储器的特别区域全部由该初始程序管理,只有该初始程序能够修改该特别区域的界限及其内容。
更确切地,这些界限可以被存储在初始程序的寄存器中,或可替换地,为由初始程序执行定义这些界限的命令的结果。在全部情况中,界限的定义以及全部修改只能够由初始程序的动作引起。
此外,只有初始程序能够启用(或禁用)该特别区域使得允许(或禁止)其内容的执行。
一般地,上述区域专用于经编译或解释的代码的存储,为此,在下文中该区域被称作“代码存储区域”。特别重要的是,代码存储区域在其包含的软件元件的执行期间不被修改,以便确保在安全元件中这些软件元件实施的应用和操作系统的完整性。
在安全元件的寿命期间,其他软件元件可以被加载到代码存储区域中。这涉及例如已存储的软件元件的新版本(软件元件的更新)或新数据。为了在启用之前(即在允许执行之前)确保今后被加载在代码存储区域中的这些软件元件的完整性和合法性,典型地由初始程序实施检验机制。
例如,文件FR 2 993 682描述了在安全元件启动期间执行的引导加载程序,其允许当安装的操作系统变得过期时,从更新设备获得操作系统新版本的代码。在允许启用操作系统的新版本之前,由引导加载程序逐代码块以及针对全部代码检验操作系统的该新版本的代码的完整性。
然而,完整性检验只涉及所接收并加载的新的软件元件。
因此,因为完整性检验仅针对新加载的软件元件,所以由攻击者在加载新软件元件之前存储到代码存储区域中的恶意软件(malware)类型的软件元件,在该完整性检验期间未被引导加载程序检测到。因此存在安全缺陷。
同样地,当攻击者修改或损坏(例如通过攻击激光)已经存储在该代码存储区域中的软件元件时,存在安全缺陷。事实上,针对加载的新软件元件的完整性检验不允许识破该代码存储区域的内容的修改或损坏。
因此存在改善安全元件的安全保护控制,并且尤其是在将数据加载到该存储区域中期间软件元件完整性的需要。
发明内容
因此,本发明的目的是克服这些缺点中的至少一个缺点。
在该背景下,本发明的第一方面涉及一种使数据到安全元件的非易失性存储器中的加载安全的方法,所述非易失性存储器包括称作代码存储区域的存储区域,该代码存储区域由安全元件的初始程序定义并且其任何修改仅由所述初始程序控制,所述方法包括由安全元件的外部设备实施的以下步骤:
-获得待传送到安全元件的数据;
-模拟通过将所获得的数据加载到安全元件的该代码存储区域而被修改代码存储区域的图像;
-计算整个代码存储区域的模拟的图像的签名;和
-向所述安全元件传送所获得的数据和所计算的签名。
相应地,本发明的第二方面涉及一种使数据到安全元件的非易失性存储器中的加载安全的方法,所述非易失性存储器包括称作代码存储区域的存储区域,该代码存储区域由安全元件的初始程序定义并且其任何修改仅由所述初始程序控制,所述方法包括由安全元件实施的以下步骤:
-从外部设备接收数据和签名;
-将从外部设备接收的数据加载到代码存储区域的一部分中;
-数据加载后,计算整个代码存储区域的签名;和
-借助所接收的签名检验所计算的签名,使得仅在这两个签名相同的情况下准许执行代码存储区域的内容。
因此,本发明允许控制加载到安全元件中的数据的完整性,以及在这些数据加载之后代码存储区域的完整性,所述数据只占据该存储区域的仅一部分。
该优点是借助以下获得的:基于针对整个存储区域的图像的模拟来计算签名,该整个存储区域可能得自由全部数据的加载,而不是如现有技术中的仅考虑所加载的数据获得的。
因此外部设备模拟代码存储区域的比特中的每个比特的位置和值,所述每个比特可能通过加载待加载的数据修改或者未被修改。
因为存在其值和/或其位置非期待的代码,这导致在外部设备处针对所模拟的图像计算的签名与由安全元件自己在数据有效加载之后针对存储区域计算的签名不同,所以在代码存储区域内可以检测到代码存储区域中的其值和/或其位置非期待的代码。
因此,当由设备根据对应于数据加载之后存储器状态的代码存储区域的模拟的图像所计算的签名,与这些数据有效加载之后的代码存储区域的签名不同的情况下,代码存储区域的启用,即其内容的执行、和因此特别地,加载到安全元件中的数据的执行是不可能的(即被禁止)。因此使得加载数据以执行该数据变得安全。
本发明因此允许检测出经编译或解释的代码的仅一部分(或者更一般的,非期待的数据)已经被存储在了代码存储区域的非期待的位置处,或者其不具有所期待的值。
例如,由安全元件的初始程序在检验针对在所述加载之后获得的整个存储区域计算的签名期间,借助从外部设备接收的预先的签名来检测恶意软件元件的存在,或者甚至在数据加载期间已经在存储器中的软件元件的修改或损坏。
根据本发明的实施方式的其他特征在从属权利要求中描述。
在本发明的具体实施方式中,响应于数据获得请求,所述数据被传送到安全元件,并且获得请求包括识别安全元件的信息。
在本发明的具体实施方式中,响应于数据获得请求,所述数据被传送到安全元件,并且获得请求包括代表安全元件的代码存储区域的当前图像的软件配置的唯一标识符。
因此,外部设备能够收回该当前图像并有效地进行由数据加载修改的存储器的图像的模拟。实际上,代码存储区域的比特的设置及实际值可以是准确已知的。
在本发明的具体实施方式中,在来自外部设备的加密命令中,签名与所获得的数据的启用要求(即,允许执行的要求)一起被传送到安全元件。
因为启用要求和在启用(即允许执行)之前的检验所必需的签名被联合地保护,所以该设备使允许执行的过程安全。
要注意的是,可以在正确的签名检验之后立即实现启用,或者在以后例如在安全元件的下一次启动时启用。后一个启用允许尤其是当所提及的数据对应于其操作系统或操作系统的一部分的更新时不中断安全元件的运行。
可替换地,启用可以由初始程序自动实施,无需接收到启用要求。启用涉及由请求在需要时要求的数据或者整个代码存储区域。
在该代替办法中,签名仍然是由外部设备加密的,以便将其传送到安全元件。
在本发明的具体实施方式中,所获得的数据与所获得的数据应当被加载到的代码存储区域中的一个位置或更多个位置的指示一起被外部设备传送。
因此,由外部设备定义代码存储区域的每个比特的位置,这确保安全元件将进行与外部设备按照这些补充指示的说明将模拟的数据加载一致的数据加载。从所模拟的图像获得的签名因此必须与在加载所述数据之后安全元件的初始程序应当计算的签名一致。
在本发明的具体实施方式中,代码存储区域被划分成P个子区域,并且签名计算步骤包括获得针对每个子区域的基础签名,和通过组合P个基础签名来获得针对模拟的或非模拟的整个代码存储区域的签名。
在该配置中,一个基础签名的计算与另一个基础签名的计算无关,这允许借助限制在被修改的子区域的(基础签名)整体性计算,实现代码存储区域模块化(例如按照子区域)的更新。
在本发明的具体实施方式中,组合P个基础签名包括应用双射函数。
例如,其可以涉及异或(XOR)类型的函数。这种函数允许解除子区域顺序上的限制,以便通过组合基础签名来计算签名。因此,外部设备和安全元件可以向组成代码存储区域的子区域不同地分配待加载的数据的部分。
在本发明的具体实施方式中,签名计算包括将P个基础签名按其相对应的子区域的预先定义的顺序组合。该顺序可以例如通过子区域特有的标识符或这些子区域内容(即,子区域的全部比特,有时称作模块)的特有的标识符确定,例如为标识符的升序或降序。
在本发明的具体实施方式中,数据包括用于由安全元件实施以下步骤的脚本:将从外部设备接收的数据加载到代码存储区域的一部分中的步骤,在所接收的数据加载后计算整个代码存储区域的签名的步骤,和借助从外部设备接收的签名检验所计算的签名使得仅在这两个签名一致的情况下准许执行代码存储区域的内容的步骤。
在本发明的具体实施方式中,代码存储区域包括在加载(由外部设备获得并由安全元件从外部设备接收的)所述数据之前的软件元件。
因此,在加载之后代码存储区域的模拟的图像考虑了在代码存储区域的初始状态(本文提到的二进制图案)期间或者在安全元件的运行期间,可能已经被预先加载到代码存储区域中的数据。
在本发明的具体实施方式中,待加载到代码存储区域中的所述数据仅表示在代码存储区域中可用空间的一部分。
例如,待加载的数据(全部代码块)可以仅占据构成代码存储区域的比特的一半或四分之一。本发明的第三方面涉及一种使数据到安全元件的非易失性存储器中的加载安全的安全设备,所述非易失性存储器包括称作代码存储区域的存储区域,该代码存储区域由安全元件的初始程序定义并且任何修改仅由所述初始程序控制,所述设备位于安全元件的外部并包括:
-获得模块,获得待传送到安全元件的数据;
-模拟模块,模拟通过将所获得的数据加载到安全元件的该代码存储区域中而被修改的代码存储区域的图像;
-计算模块,计算整个代码存储区域的模拟的图像的签名;和
-传送模块,向所述安全元件传送所获得的数据和所计算的签名。
在本发明的具体实施方式中,前述方法的不同步骤由计算机程序指令确定。
因此,本发明还涉及在信息载体上的计算机程序,该程序可以由微处理器实施,该程序包括适于实施如以上提及的方法的步骤。该程序涉及例如诸如上述的初始程序。
该程序可以使用任何编程语言并且以源代码、目标代码、或源代码与目标代码之间的中间代码,诸如以经部分编译的形式、或以任何其他适当的形式。
本发明还涉及微处理器可读的信息载体,并且包括诸如以上所提及的计算机程序的指令。
信息载体可以是任何能够存储程序的实体或设备。例如,载体可以包括诸如ROM,例如微电路的ROM之类的存储装置、或者甚至磁记录装置,例如硬盘、或者甚至闪存。
另一方面,信息载体可以是诸如电信号或光信号之类的可传送载体,其可以经由电缆或光缆,通过无线电或其他手段被发送。特别地,根据本发明的程序可以被上传到英特网类型的网络存储平台上。
可替换地,信息载体可以是其中编入程序的集成电路,该电路适于执行所提及的方法或用于在所提及的方法的执行中被使用。
本发明的第四方面涉及包括微处理器并且在存储器中包括如前述的初始程序的安全元件。安全元件例如符合ISO/IEC 7816标准、通用准则(Common Criteria)规范和/或全球平台卡规范版本2.1.1(GlobalPlatform Card Specification v 2.1.1)。
本发明的第五方面涉及包括这种安全元件和如以上所提及的安全设备的系统,用于安全元件的外部设备为所述安全设备。
前述安全设备、安全元件、系统、信息载体和计算机程序的具体的优点、目的和特征与其所实施的方法的具体的优点、目的和特征类似。
附图说明
本发明的其他特征和优点将在由附图示出的以下描述中变得更清楚,附图示出没有任何限制特性的实施例。在附图上:
-图1a和1b示出实施方式的实施背景示例;
-图2表示用于在图1a和1b上表示的设备的架构示例;
-图3由以程序方框图的形式表示根据实施方式的安全方法的主要步骤的图3a和3b组成。
具体实施方式
以一般的方式,本发明涉及将来自外部设备的数据加载到安全元件的非易失性存储器中,特别是加载到称作代码存储区域的存储区域中的安全保护,所述代码存储区域由安全元件的初始程序定义并且其任何修改仅被该初始程序控制,并且可能包含经编译或解释的代码。
经编译或解释的代码,意指包含程序并因此由系统(此处为安全元件)识别的全部数据整体,并且所述程序尤其是其命令或码字(字节码或二进制码)由系统的处理器直接执行的机器语言程序。
如上述,代码存储区域,尤其是其尺寸由安全元件的初始或“基础”程序管理。要注意的是,初始程序一般采用系统(此处为安全元件)制造商特有的操作系统形式,该特定操作系统不依赖受根据本发明的安全保护约束的代码存储区域运行。
按照本发明,当外部设备获得待传送到安全元件的数据时(例如针对安全元件的请求),因为这些数据典型地由外部设备(有时称作更新设备)交付,所以外部设备模拟安全元件的代码存储区域的图像,使得该图像可能由所提及数据的完整加载修改。存储区域的“图像”定义该存储区域的每个比特的值及位置。随后根据该模拟的图像计算出签名,然后该签名与所述数据一起被发送到安全元件。
随后该签名被安全元件使用以便数据加载一结束,就针对整个代码存储区域检验代码存储区域是完整的。事实上,该代码存储区域与由外部设备模拟的图像基本一致。因此根据本发明,在完整加载在需要时要求的数据之后,安全元件的初始程序自己也针对整个代码存储区域计算签名,以便将其与所接收的签名做比较。
分别由外部设备在所提及数据加载之后针对代码存储区域的期待(模拟)图像计算的签名,与由安全元件的初始程序在所提及数据有效加载之后针对存储区域计算的签名之间的一致性,允许由此保证代码存储区域良好地符合由外部设备模拟的图像,并因此是完整的。
图1a和1b示意性地示出实施方式的实施背景示例。
在图1a上,集成或嵌入到主设备10a中的安全元件12a被配置用于与外部设备16a交换数据。
安全元件12a例如符合ISO/IEC7816标准、通用准则规范和/或全球平台卡规范版本2.1.1。
安全元件12a例如为网络14a的订户的识别模块,为SIM卡类型或UICC卡类型。主设备10a例如为移动终端,尤其是智能移动电话或智能电话(Smartphone)。外部设备16a为连接到网络14a的(更新)服务器。
网络14a例如为支持数据通信和/或英特网的移动网络。因此,在该背景示例中,移动终端10a和服务器16b经由网络14a借助识别模块12a通信。
图1b示出实施方式的另一个实施背景,在实施方式中,卡10b(尤其是银行卡或电子访问卡)的安全元件12b被配置用于与外部设备16b交换数据。
在该示例中,安全元件12b包括根据NFC近场通信协议的通信装置(RFID标签类型),并且外部设备16b是同样能够根据NFC协议通信的读卡器(RFID读取器类型)。
作为变型,安全元件和外部设备可以通过蓝牙或红外线来通信。
由图1a和1b所示出的背景并非是不兼容的。在一个背景中呈现的特征可以在另一个背景中被实施。而且,本发明不限制于上面描述的背景。例如,本发明还可以有利地在其中安全元件被嵌入或集成到配备有根据NFC协议的通信装置的主设备中,而且外部设备自身配备有类似通信装置的背景中被使用。嵌入或集成的安全元件还可以包括根据NFC协议的用于与主设备通信的通信装置。
根据本发明的实施方式,安全元件向外部设备发送数据(例如应用或应用的一部分,尤其是更新)获得请求。响应于该请求,外部设备向安全元件发送所要求的数据,例如,通过主设备发送,该安全元件被集成或嵌入在主设备中。这些数据可以是敏感的或非敏感的,即其可以允许在其执行期间例如操纵用户数据。
这些数据旨在被存储(加载)到安全元件的非易失性存储器的被称作代码存储区域的部分中,该代码存储区域由安全元件的初始程序定义并且其任何修改仅由该初始程序控制,并可能包含经编译或解释的代码。
由外部设备计算的签名和所要求的数据一起被发送。根据本发明,该签名具有反映整个代码存储区域的图像的特性,所述图像在所要求数据的完整加载之后可得到。
优选地,在任何第一次数据加载之前,代码区域为“随机化的”。换句话说,随机值以随机的方式被记录在代码区域中。代码区域的该状态是外部设备已知的,以便外部设备能够计算反映整个代码存储区域的图像的签名,所述图像在数据的完整加载之后应当可能得到。
一旦进行了所要求数据的加载,安全元件的初始程序就自己针对可能由所要求数据的加载实际修改的代码存储区域计算签名,以便保证整个代码存储区域具有良好符合期待的外观,即是完整的。
图2表示用于在图1a或1b上所表示的设备的架构示例,所述设备即安全元件12a或12b、外部设备16a或16b和/或主设备10a或10b。
根据该架构,设备可以包括连接到以下元件的通信总线2:
-处理单元20,记作CPU(Central Processing Unit,中央处理单元),可以具有一个或更多个处理器;
-读写存储器22或缓存或易失性存储器,例如RAM(Random Access Memory,随机存取存储器);
-一个或更多个非易失性存储器24;和
-通信接口26。
读写存储器22包括适于记录在计算机程序执行期间创建和修改的变量及参数,该计算机程序包括用于在本发明实施期间实施根据本发明的方法的指令。存储在非易失性存储器中的程序的指令代码被加载到存储器RAM中以便由处理单元CPU执行。
非易失性存储器24例如为EEPROM类型或Flash存储器的可录存储器,能够构成本发明意义上的载体,即能够包括包含用于实施根据本发明的方法的指令的计算机程序。
根据本发明,在安全元件的情况下,ROM存储器24例如可以被分成三个存储区域24a、24b、24c。存储区域24a包括例如诸如Java应用(applets)、JavaCard虚拟机的配置数据、密码、电话号码、应用、或各种个性化参数之类的用户数据。
存储区域24b对应于前面提及的代码存储区域并且因此专用于存储数据和使用经编译或解释的代码的程序,例如安全元件的操作系统或使用经编译或解释的代码的任何类型的应用。其涉及例如JavaCard虚拟机、JavaCard执行环境(JavaCard RuntimeExecution)、本地(native)应用或GSM(“Global System for Mobile Communications”framework,“全球移动通信系统”框架)平台。该存储区域在其包含的经编译或解释的代码执行期间不能被修改,以便避免执行错误。由安全元件的初始程序确保存储区域24b的这种锁定,该安全元件的初始程序是唯一可能在临时禁用存储区域24b之后为其带来修改的程序。
存储区域24b在其初始状态中,即在其制造期间是空白的。在经编译或解释的代码的任何加载或安装之前,二进制图案被应用到处于初始状态中的存储区域24b。该二进制图案例如由全部等于零或者全部等于一的比特构成。作为变型,该图案可以由一些为零的比特和另一些为一的比特构成,因此允许使处于初始状态中的存储区域24b的比特的图像复杂化,并改善该存储区域的安全。尤其,可以应用如前述的随机图案。
该初始图像尤其被外部更新设备16a/16b已知,这允许其准确地追踪存储区域24b的比特的变化、并因而追踪由存储区域24b的全部比特构成的该存储区域24b的图像的变化,所述变化是随着使用经编译或解释的代码的新软件元件在该存储区域中的加载而产生的。
按照本发明,不可修改的存储区域24c包括安全元件的初始程序,该初始程序被配置用于控制代码存储区域24b的尺寸及完整性。初始程序例如通过定义区域24b的起始存储器地址和区域24b的结尾存储器地址来固定代码存储区域24b的尺寸。这些地址例如被存储在初始程序的寄存器的密钥中。
初始程序还控制代码存储区域24b的以经解释的代码形式的软件元件的启用和禁用。换句话说,只有初始程序能够允许或禁止执行存储在存储区域24b中的经编译或解释的代码。尤其,当软件元件之一应当被更新时或者当新数据应当被加载到存储区域24b中时,初始程序禁用在存储区域24b中的任何执行。
初始程序还包括代码存储区域24b的更新机制,所述机制被配置用于执行更新的命令或脚本以便将以经解释的代码形式的二进制块加载到该代码存储区域24b中。
ROM存储器可以被分成多于三个区域,尽管如此,安全元件的以经编译或解释的代码形式的全部软件元件必须存储在专用代码存储区域24b中。
通信接口26适于传输并接收数据,例如经由电信网络或读/写接口。例如,外部设备和安全元件正是经由该接口来发送/接收数据以及它们的签名。同样是经由该接口,主设备可以传送来自安全元件的数据获得请求并从接收来自外部设备的以安全元件为目的端的这些数据。
以可选的方式,该架构(典型地用于主设备10a)还包括I/O(Input/Output)输入/输出接口28,例如屏幕、键盘、鼠标或诸如触摸屏之类的指示设备。该接口例如允许用户要求更新已经在存储器中的操作系统或以经编译或解释的代码形式的应用,或者要求加载新操作系统或以经编译或解释的代码形式的新应用。
以可选的方式,该架构(典型地用于外部设备16a或16b,以及安全元件12a或12b)还包括从处理单元20接收指令的加密处理器29,用于加密/解密包括例如签名或者经编译或解释的可执行文件的数据的消息。该加密方法使数据和签名在网络14a上的传输安全。
通信总线允许包括在设备中或连接到该设备的不同元件之间的通信和联合操作性。总线的表示不是限制性的,尤其是,处理单元可以将指令直接或通过该设备的另一个元件传送到该设备的任何元件。
图3a表示符合实施方式的安全方法的主要步骤,这些步骤由外部设备(例如,图1的设备16a或16b)实施。图3b表示符合这些实施方式的安全方法的主要步骤,这些步骤由安全元件(例如,图1的安全元件12a或12b)尤其通过初始程序或设置在初始程序中的加载模块来实施。
在图3a上,在步骤30期间,外部设备接收由安全元件发送的数据获得请求。
多个机制导致可以考虑发送该请求,一些机制是自动的而另一些得自由用户的自发动作。
以非限制性示例的方式,并且如前文参考图2所述,主设备(例如,图1a的移动终端10a)的用户发起该请求的生成及发送。例如,用户可以通过移动终端10a的键盘或触摸屏要求移动终端检验在外部更新设备上是否存在比当前安装在设置于移动终端中的SIM上的版本更加新的应用或操作系统的版本。在这个背景下,移动终端10a询问安全元件以便知道该操作系统或该应用的当前版本,例如,通过“Select(程序)”命令(其中程序对应于待检验的操作系统或应用)和“GetData(9F7Fh)”命令,其中9F7Fh为描述可追溯性数据特征的参数,可追溯性数据例如称作“卡产品生命周期”(“Card Production Life Cycle”)的数据,然后将该信息传送到外部更新设备以便通过反馈来被通知是否存在更加新的版本,例如以自发的方式使用PING命令。
作为变型,涉及相同交换的版本检验,可以是在终端启动时自动进行。
在另一个变型中,外部设备可以通过推送(push)机制自发地通知终端和安全元件存在操作系统或应用的新版本。
一旦被更新设备通知存在更加新的版本,终端就将该信息传送到安全元件,因此安全元件可以发送操作系统或应用的一部分代码或全部代码的更加新版本的获得请求(即更新)。
可替换地,对于以下全部描述,安全元件与外部设备之间的通信是直接的。因此,终端充当简单的传递角色来传送交换的数据和消息(尤其是根据该信息,更新是可用的)而不对其进行解释。
在实施方式中,该获得请求包括允许识别安全元件的信息,例如安全元件的唯一标识符。该唯一标识符例如允许更新设备借助相关联的数据库找到安全元件的当前或“目前”软件配置,以及尤其是代码存储区域24b。实际上,这种数据库可以被用于存储安全元件的实施的安装历史和更新历史、以及这些安装和更新的实施指示。该指示例如为指示待加载的数据的存储器地址或存储位置的安装脚本。
作为变型,获得请求包括安全元件的代码存储区域24b的目前软件配置标识符。
其涉及,例如软件配置的唯一标识符,在与外部设备相关联的数据库中具有在安全元件的存储区域24b中进行的加载的历史,该历史与该唯一标识符相关联。
借助该标识符,并且因此借助相关联的历史,可以知道目前存储在存储区域24b中的软件元件、和预先加载并且后来被删除的软件元件、以及在代码存储区域24b内这些软件元件的接续顺序。
借助该历史,可以找回在代码存储区域24b的不同位置、特别地在整个存储区域24b中的每个比特处前后相接的全部信息。因此,由该唯一标识符识别的软件配置代表安全元件的代码存储区域24b的当前图像,即尤其考虑了历史上加载过但是后来被删除的然而未被覆写的(因此其还在存储器中)软件元件的比特中每个比特的值和位置。
以示例的方式,该软件配置标识符可以来自于从安全元件收集的CPLC(CardProduction Life Cycle,卡产品生命周期)数据,并且可以借助PING命令被定期地传送到外部设备。CPLC数据尤其包括安全元件的制造商标识符、安全元件的类型、操作系统标识符、和操作系统的目前版本。CPLC数据允许外部设备找回从其中收回这些信息的安全元件的代码存储区域24b的当前图像。
作为变型,获得请求可以包括足够用于无需借助收回在相关联的数据库中的补充数据就能重建存储区域的图像所必需的信息。
在步骤31期间,外部设备收回所要求的数据(例如,从内部存储区域或第三设备),然后模拟代码存储区域24b的比特的图像,所述比特应当可能为在加载所要求的数据之后的比特。换句话说,外部设备模拟代码存储区域24b的比特中的每个比特的位置和值,这些比特可能通过加载构成所要求的数据的经编译或解释的代码修改或者未被修改。
尤其可以按照安装或加载脚本(可能由外部设备生成)来加载所要求的数据,所述脚本由安全元件接收,并包括定义针对全部或部分所要求的数据的特定位置的命令集。以举例的方式,安装脚本可以包括指示其中应当存储的数据(值)的位置(存储器地址及长度)的ALV(address-length-value,地址-长度-值)文件。因此,外部设备能够通过模拟,以与安全元件在接收安装脚本时所进行的操作相同的方式,再现所要求数据的安装或加载。
因此,所模拟的图像考虑了将由加载所要求的数据修改的比特,以及不由该加载修改的比特。
实际上,由外部设备建立的安装脚本可以包括旨在修改代码存储区域24b内容的命令集,例如修改其尺寸以便扩展或减小存储经编译或解释的代码的能力、和/或修改所要求的数据的安装参数(上面提到的ALV文件),因此允许将数据的每个比特加载到代码存储区域的准确位置(即,准确地址)。外部设备因此可以为数据的每个比特赋予位置之间的优先级,例如为了通过软件元件的新版本的比特来替换该软件元件的旧版本的比特。
尽管安装脚本与待加载的数据分开呈现,但是这些待加载的数据可以是安装脚本的不可缺少的部分。因此,脚本在上面提到的ALV文件的值处可以包括一个或更多个块或者甚至构成所述数据的全部经编译或解释的代码。
而且,安装脚本可以包括用于建立主机终端与安全元件之间的安全信道并提供其互相认证的命令。以示例的方式,这些命令符合于GP2.2.1Amd D v1.1(SCP03)规范,以便基于根据伪随机值(典型地,伪随机值基于以上CPLC数据的标识符)生成的会话密钥的安全信道在加载所要求的数据期间被实施。事实上,根据该规范建立的安全信道具有允许预先生成用于传送之前提及的元件(签名、经编译或解释的代码块等)的一系列命令的优点,该一系列命令尤其是用于ALV文件的每个输入的“Store Data”命令。
随后,在步骤32期间,由外部设备计算代码存储区域24b的全部比特的模拟的图像的签名。该签名取决于由加载所要求的数据修改的新比特值,并同样取决于位于被该加载修改的位置之外的代码存储区域的比特。被该加载修改的位置可以包含之前加载的其他数据(软件元件)的经解释的代码或者甚至初始二进制图案,即对应于处于初始状态中的代码存储区域(即,在其为空白时)的比特的图像。
要注意的是,在安全元件的代码存储区域24b中可能发生的在先加载与所要求数据的有效加载之间,位于被修改的位置之外的比特相对于代码存储区域不应当经受值或位置的修改。这些修改、异常(在执行加载脚本期间的恶意攻击或逻辑错误后果)可能导致相对于期待值修改由安全元件计算的代码存储区域24b的签名(下文描述),所述期待值是针对存储区域24b的模拟的图像计算的,并体现出不具有这种修改的存储区域的图像的特征。
实际上,该签名为例如MAC(Massage Authentification Code,消息认证码)消息的认证码、Hash-MAC、例如SHA-2类型的哈希(hash)函数的结果、或者甚至循环冗余码应用的结果。签名可以针对单一代码块的比特的模拟的图像被计算,或者针对描绘整个存储区域24b的比特的模拟的图像轮廓的二进制部分被计算。
在具体实施方式中,外部设备虚拟地将代码存储区域划分成P个子区域,并针对对应于P个子区域中的一个子区域的每个图像部分计算基础签名。随后通过组合所计算的P个基础签名来获得整个代码存储区域的图像的签名。
因此,外部设备可以有利地仅计算对应于通过加载修改的子区域的基础签名,并在先前已经计算了基础签名的情况下,再使用未改变的子区域的基础签名。
尤其,外部设备可以以独立于其他子区域的内容的方式管理所考虑的每个子区域的内容,即构成每个子区域的全部比特(称作模块)。换句话说,外部设备可以指示在一个或更多个模块内部的所要求数据的部分的加载位置,而无需指示在代码存储区域24b内这些模块彼此之间应当如何相对设置。
可以借助应用于P个子区域的P个基础签名的双射函数实施基础签名的组合。这允许不考虑子区域可能的顺序(并且因而允许不考虑相对应的基础签名)。该双射函数可以是外部设备与安全元件之间的共享秘密函数。因此,根据仅基础签名,即不知道双射函数或该函数的秘密参数,不可能获得整个存储区域的签名。
例如,可以使用异或(XOR),或者可以针对全部基础签名计算MAC码。
作为变型,整个代码存储区域的图像的签名可以通过按预先定义的例如与相对应的子区域的顺序有关的顺序,或者按其内容(称作模块)顺序组合基础签名来获得。该预先定义的顺序可以作为外部设备与安全元件之间的共享秘密被预先存储。以示例的方式,子区域可以具有标识符(其可以随时间变化)并且顺序可以是子区域的所述标识符的升序或降序。
在步骤33期间,所要求的数据与由外部设备生成的并允许建立安全信道以及加载所要求的数据的安装脚本以及在步骤32计算的签名一起,被发送到主机终端以便被执行,即以便将数据加载到安全元件中。
实际上,在加密的命令中发送签名,以便避免在被安全元件接收之前,该签名被修改或拦截。在这种方式中,所要求的数据、安装脚本和签名在相同的加密的命令中被发送。
在其他方式中,在加密的命令中数据启用要求与签名一起被发送。
实际上,所要求的数据、签名和在需要时的启用要求可以通过SMS(Over-The-Air,空中)、通过英特网、NFC、蓝牙、通过有线连接或由外部设备和由这些元件(即安全元件和/或主设备)的目的端管理的任何其他通信方式被发送。
至于由安全元件进行的操作,上文中已经提到,数据获得请求伴随标识符被发送,以允许外部设备模拟安全元件的整个代码存储区域24b的比特的图像。
一般地,由存储在存储区域24c中的初始程序发送该获得请求。例如,借助命令(例如“chmod”),初始程序禁用存储在代码存储区域24b中的全部数据(操作系统或应用),使得进行其更新或新数据的安装。
在下文中,除非明确指出,考虑由初始程序(或该初始程序的加载模块)实现所描述的步骤。
还如以上关于外部设备所提及的,主机终端接收安装脚本、待加载的数据(包括或不包括在脚本中)以及由外部设备所计算的签名。
所接收到的安装脚本由主机终端执行,导致如以下关联图3b描述的主机终端与安全元件之间的交换。
在关于由安全元件的初始程序进行的后续步骤的图3b上,在步骤34期间,安全元件接收由外部设备在步骤33发送的以下内容:在获得请求中所要求的数据以及由外部设备在步骤32计算的签名和在需要时所要求的数据的启用请求。
实际上,主机终端执行安装脚本,导致主机终端与安全元件尤其是安全元件的初始程序之间的互相认证、随后这两个实体之间安全通信信道的实施、所要求数据以及最终由外部设备计算的数字签名的传输。
互相认证例如可以包括以下步骤:
-主机终端向初始程序发送终端的标识符IDterm;
-初始程序向终端发送随机数R1;
-终端计算并向初始程序传送密文C1=f(IDterm,R2);
-终端向初始程序传送随机数R2;和
-初始程序再发送密文C2=f(IDterm,R2)。
分别由初始程序和主机终端对C1和C2的验证允许这两个实体的互相认证。
于是例如借助由外部设备在安装脚本中提供的随机值和/或伪随机值(基于随机值和CPLC数据)实施根据GP 2.2.1 Amd D v1.1(SCP03)的安全信道。
于是待加载的数据和签名在主机终端与初始程序之间的相同通信会话期间被发送。可以单片块或作为变型以多个独立块,借助例如代表三元组ALV的SCP03的一个或多个命令“Store Data”传送所述数据。
要注意的是,从主机终端向安全元件中安全地加载所要求的数据,可以不依赖外部设备,即主机终端并非必须连接到外部设备。借助由外部设备传送的安装脚本这是可能的,并且终端可以按与接收安装脚本不相关的方式执行,例如当初始程序接管安装脚本时在安全元件的下一次启动期间执行。
被提供在安装脚本中的其他命令也可以被传送到安全元件以便执行例如旨在减小或扩展代码存储区域24b的命令,和旨在启用被加载的数据的命令。
在步骤35期间,所要求的数据随后以单片或块的形式被加载到安全元件的代码存储区域24b中。实际上,上述安装脚本由初始程序的加载器执行,导致通过加载单片块,或者通过按照存储位置指令ALV逐渐地加载连续的块来加载及安装所要求的数据。
在根据安装脚本的内容,代码存储区域被划分成如上述的P个子区域的情况下,可以通过加载构成待加载数据的经编译或解释的代码的一个块或更多个块来修改子区域。其他子区域不能被修改,即,在所要求的数据的当前加载操作期间,在这些子区域中未实现任何加载。在代码存储区域被划分成子区域的情况下,用于加载块的存储器地址可以相对于具体子区域的起始存储器地址而被表达。
逐块加载的优点是每个块可以独立于其他块被加载。
加载例如可以包括直接将块存储在安装脚本中指示的存储器地址处。因此,在更新软件元件期间,这种加载类型包括待更新块的直接替换。
作为变型,待加载的块在被定位并存储到由安装脚本提供的位置处之前,其可以在专用于临时存储的代码存储区域24b的一部分中(备用存储区域)被设为等待。
外部设备已知由初始程序实施的用于更新代码存储区域24b的加载方法(直接或延迟),以便外部设备能够知道形成代码存储区域24b的部分的备用区域的比特的状态。这确保在步骤32计算的签名符合在安全元件中的存储区域24b的实时变化。
当所要求的数据被完整加载时(即,根据情况当单片块被加载或代码的全部块被加载),即当加载会话结束时(要注意的是,会话可以覆盖安全元件的多个供电和不供电周期),由安全元件的初始程序实施签名的计算步骤(步骤36)。
以一般地方式,除了签名是针对整个代码存储区域的比特的当前图像计算的,即所要求的数据加载一结束就针对代码存储区域24b的比特的值计算之外,该步骤与由外部设备实施的步骤32类似。
与由外部设备根据代码存储区域的比特(这些比特在加载所要求的数据之后原则上可能被修改)的模拟计算的签名不同,由初始程序计算的签名考虑代码存储区域24b的全部比特,并且因此包括可能已经被赋予到区域24b的可能的修改(恶意攻击或由于加载错误)。
在步骤34接收的签名来自如前述的子区域的基础签名组合的情况下,基础签名也由安全元件的初始程序在步骤36计算,总是在有效加载针对所考虑的子区域的代码块之后。
有利地,待加载到相对应的子区域中的代码块(如果存在)一旦被有效加载,就可以计算每个基础签名。
在这种情况下,事实上,所考虑的子区域的内容(也称作模块)与外部设备所期待的内容一致。因此,不需要等待所要求数据的完整加载(因而在其他子区域中的加载)以计算所考虑的子区域的基础签名。由此可知,在执行数据加载脚本期间,可以各自计算基础签名,从而当加载结束时,减少整体的签名计算时间。
随后,这些基础签名以与步骤32相同的方式被组合,即根据在步骤32使用的组合方法借助双射函数或按预先定义的顺序的组合。初始程序和外部设备被配置用于实现相同组合。在需要时,初始程序和外部设备可以交换指令以便约定待实施用于签名计算的组合方法。
因此获得了反映整个代码存储区域的当前图像的代码存储区域的签名,所述图像在完整加载所要求的数据之后实际得到。因此,该签名整合了在代码存储区域24b中所操作的非预期的可能的修改。
在步骤37期间,通过比较由安全元件在步骤36计算的签名和在步骤34从外部设备接收的签名,检验代码存储区域24b的完整性。因此其涉及整个代码存储区域具有良好符合期待的外观,即所加载的数据的代码的每个比特具有位于由外部设备提供的位置处的所期待的值,并且存储器的其他比特就值以及位置而言未经改变。
当所计算的签名不同时,这意味着存储器的至少一个比特相对于由外部设备实现的代码存储区域(即整个代码存储区域的比特)的模拟已经被改变(增加、删除或修改)。在这种情况下,安全元件的初始程序考虑代码存储区域24b不完整并因此不允许执行,即不启用如此加载的数据。
安全元件因此可以例如向外部设备示意异常,作为响应,外部设备可以再次发送新数据以便尝试改正完整性故障(如果已接收到有错误的代码块),或者在该故障是由于识别的逻辑技能障碍的情况下,例如在经编译或解释的代码被持久地记录在备用区域中,而该区域只应当被能在局部地用作缓冲区域(buffer)的情况下,安装用于避免该缺陷重现的逻辑规则。作为变型,签名可以由初始程序重新计算,然后安全元件在安全元件的新的启动之后重新检验。
当由安全元件计算的签名与从外部设备接收的签名一致时,安全元件的初始程序允许执行,即启用如此加载的数据(步骤38)。以示例的方式,初始程序可以执行模式改变指令“chmod”以便修改执行中的权限(例如“chmod+x”)。
根据各种实施方式,所加载的数据可以被立即启用(即使其可执行),或者在下一次启动安全元件时启用。后一种模式具有在所提及的数据对应于其操作系统的更新的情况下不中断安全元件运行的优点。
在实施方式中,在安全元件运行期间(例如,不管安全元件未被供电,定期地)实施签名计算(步骤36)和检验(步骤37)的新步骤,以便连续地检验代码存储区域总是完整的。这允许标记在最后一个加载会话之后可能突然发生的代码存储区域的可能的恶意修改。这些新的完整性修改可以在每次为安全元件供电时、针对第三方(例如外部设备或网络操作者)的要求、或甚至在每次预先定义的事件(例如,用户的请求、计数器超过期限、特定命令的接收、处理器的较弱使用)发生时发生。
在检测到代码存储区域24b的完整性故障时,初始程序可以决定禁用该存储区域的经解释的代码并通知外部设备。仅在整个代码存储区域24b恢复完整性后,进行再次启用经解释的代码的操作。
以上示例仅为本发明非限制性的实施方式。
例如,如前所述,可以借助用于所要求的数据的每个块的命令“Store Data”向初始程序传送所要求的数据的块,然后,这些块可以被直接或者经由备用存储区域中的临时存储加载到预先准备的存储位置处(步骤35)。
在变型中,主机终端可以传送初始程序将执行的称作更新脚本的新脚本,该更新脚本包括所要求的数据的经解释的代码的不同块以及所提供的加载位置的指示。该更新脚本在由初始程序执行之前,被存储在区域24b的备用存储区域中,以便通过逐渐加载所要求的数据的经解释的代码的不同块来修改代码存储区域24b。
此外,在前面的示例中,安全元件发送获得请求(步骤30)。在本发明的变型中,根据已知的“推送”(“push”)机制,外部设备将数据推送到安全元件,该“推送”机制不需要上面提到的请求。在这些变型中,外部设备知道安全元件的加载历史(例如借助所提及的数据库)并且,当例如为安全元件设置恰当的更新时,外部设备能够实现模拟代码存储区域的图像、计算签名(如有必要,经由基础签名)以及在“推送”模式下向安全元件传送全部内容。

Claims (16)

1.一种使数据到安全元件的非易失性存储器中的加载安全的安全方法,所述非易失性存储器包括称作代码存储区域的存储区域,该代码存储区域由安全元件的初始程序定义并且该代码存储区域的任何修改仅由所述初始程序控制,所述方法包括由安全元件的外部设备实施的以下步骤:
-获得待传送到安全元件的数据;
-模拟通过将所获得的数据加载到安全元件的该代码存储区域中而修改的代码存储区域的图像;
-计算整个代码存储区域的所模拟的图像的签名;和
-向所述安全元件传送所获得的数据和所计算的签名。
2.一种使数据到安全元件的非易失性存储器中的加载安全的安全方法,所述非易失性存储器包括称作代码存储区域的存储区域,该代码存储区域由安全元件的初始程序定义并且该代码存储区域的任何修改仅由所述初始程序控制,所述方法包括由安全元件实施的以下步骤:
-从外部设备接收数据和签名;
-将从外部设备接收的数据加载到代码存储区域的一部分中;
-在数据加载后计算整个代码存储区域的签名;和
-借助所接收的签名检验所计算的签名,使得仅在这两个签名相同的情况下准许执行代码存储区域的内容。
3.根据权利要求1或2中任一项所述的安全方法,其特征在于,所述数据是响应于数据获得请求而被传送到安全元件的,并且数据获得请求包括识别安全元件的信息。
4.根据权利要求1至3中任一项所述的安全方法,其特征在于,所述数据是响应于数据获得请求而被传送到安全元件的,数据获得请求包括软件配置的唯一标识符,该软件配置代表安全元件的代码存储区域的当前图像。
5.根据权利要求1至4中任一项所述的安全方法,其特征在于,在来自外部设备的加密命令中,签名与所获得的数据的启用要求一起被传送到安全元件。
6.根据权利要求1至5中任一项所述的安全方法,其特征在于,数据与数据应当被加载到的代码存储区域中的一个位置或更多个位置的指示一起被外部设备传送。
7.根据权利要求1至6中任一项所述的安全方法,其特征在于,所述代码存储区域被划分成P个子区域,并且签名计算步骤包括获得针对每个子区域的基础签名,和通过组合P个基础签名来获得针对模拟的或非模拟的整个代码存储区域的所述签名。
8.根据权利要求7所述的安全方法,其特征在于,组合P个基础签名包括应用双射函数。
9.根据权利要求7所述的安全方法,其特征在于,签名计算包括将P个基础签名按相对应的子区域的预先定义的顺序组合。
10.根据权利要求1至9中任一项所述的安全方法,其特征在于,所述数据包括用于由安全元件实施以下步骤的脚本:将从外部设备接收的数据加载到代码存储区域的一部分中的步骤,在所接收的数据加载之后计算整个代码存储区域的签名的步骤,和借助从外部设备接收的签名检验所计算的签名使得仅在这两个签名相同的情况下准许执行代码存储区域的内容的步骤。
11.根据权利要求1至10中任一项所述的安全方法,其特征在于,所述代码存储区域包括在加载所述数据之前的软件元件。
12.根据权利要求1至11中任一项所述的安全方法,其特征在于,待加载到代码存储区域中的所述数据表示在代码存储区域中能用的空间的仅一部分。
13.一种初始程序,包括当由安全元件的微处理器加载并执行时用于实施以下步骤的指令,所述安全元件包括非易失性存储器,该非易失性存储器包括称作代码存储区域的存储区域,该代码存储区域由初始程序定义并且该代码存储区域的任何修改仅由所述初始程序控制:
-从外部设备接收数据和签名;
-将从外部设备接收的数据加载到代码存储区域的一部分中;
-在数据加载后,计算整个代码存储区域的签名;并且
-借助所接收的签名检验所计算的签名,使得仅在这两个签名相同的情况下准许执行代码存储区域的内容。
14.一种安全元件,包括微处理器并且在存储器中包括根据权利要求13所述的初始程序。
15.一种使数据到安全元件的非易失性存储器中的加载安全的安全设备,所述非易失性存储器包括称作代码存储区域的存储区域,该代码存储区域由安全元件的初始程序定义并且该代码存储区域的任何修改仅由所述初始程序控制,所述设备位于安全元件的外部并包括:
-获得模块,获得待传送到安全元件的数据;
-模拟模块,模拟通过将所获得的数据加载到安全元件的该代码存储区域中而被修改的代码存储区域的图像;
-计算模块,计算整个代码存储区域的模拟的图像的签名;和
-传送模块,向所述安全元件传送所获得的数据和所计算的签名。
16.一种包括根据权利要求15所述的安全化设备和根据权利要求14的安全元件的系统,用于该安全元件的外部设备为所述安全化设备。
CN201580015759.XA 2014-03-25 2015-03-25 数据到安全元件的非易失性存储器中的加载的安全保护 Active CN106133739B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1452519A FR3019347B1 (fr) 2014-03-25 2014-03-25 Securisation du chargement de donnees dans une memoire non-volatile d'un element securise
FR1452519 2014-03-25
PCT/FR2015/050758 WO2015145071A1 (fr) 2014-03-25 2015-03-25 Sécurisation du chargement de données dans une mémoire non-volatile d'un élément sécurisé

Publications (2)

Publication Number Publication Date
CN106133739A true CN106133739A (zh) 2016-11-16
CN106133739B CN106133739B (zh) 2020-03-17

Family

ID=50780770

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580015759.XA Active CN106133739B (zh) 2014-03-25 2015-03-25 数据到安全元件的非易失性存储器中的加载的安全保护

Country Status (9)

Country Link
US (1) US10268845B2 (zh)
EP (1) EP3123387B1 (zh)
JP (1) JP6585072B2 (zh)
KR (1) KR102036411B1 (zh)
CN (1) CN106133739B (zh)
ES (1) ES2734370T3 (zh)
FR (1) FR3019347B1 (zh)
PL (1) PL3123387T3 (zh)
WO (1) WO2015145071A1 (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3086254A1 (en) * 2015-04-22 2016-10-26 Gemalto Sa Method of managing applications in a secure element when updating the operating system
KR102453705B1 (ko) * 2015-09-25 2022-10-11 삼성전자주식회사 호스트의 정당성 여부에 따라 선택적으로 결제 기능을 온(on)하는 결제 장치의 동작 방법
KR102538096B1 (ko) * 2016-09-13 2023-05-31 삼성전자주식회사 어플리케이션을 검증하는 디바이스 및 방법
US10911939B2 (en) * 2017-06-14 2021-02-02 Huawei Technologies Co., Ltd. Embedded universal integrated circuit card profile management method and apparatus
JP6949416B2 (ja) 2017-07-13 2021-10-13 株式会社デンソー 電子制御装置、プログラム改ざん検知方法
DE102017006950A1 (de) * 2017-07-21 2019-01-24 Giesecke+Devrient Mobile Security Gmbh Aufrechterhaltung einer Netzwerkverbindung
CN110326266B (zh) 2017-09-18 2020-12-04 华为技术有限公司 一种数据处理的方法及装置
FR3105853B1 (fr) * 2019-12-31 2023-01-06 Proton World Int Nv Système embarqué
KR102481272B1 (ko) * 2020-11-17 2022-12-26 오토아이티(주) 보안성 및 신뢰성이 향상된 자동 실행 스크립트 파일의 생성 장치 및 방법과, 이의 실행 장치 및 방법
FR3118218B1 (fr) * 2020-12-21 2024-02-16 St Microelectronics Rousset Procédé pour valider un module logiciel externe en vue de son utilisation par un système sur une puce

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423766A (zh) * 2000-02-17 2003-06-11 通用仪器公司 提供安全控制软件或固件代码下载和接收下载代码的计算装置的安全操作的方法和装置
CN1496628A (zh) * 2002-01-16 2004-05-12 ������������ʽ���� 内容分配系统
US20120324446A1 (en) * 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2288824A1 (en) * 1997-03-24 1998-10-01 Marc B. Kekicheff A system and method for a multi-application smart card which can facilitate a post-issuance download of an application onto the smart card
JP2000322253A (ja) * 1999-05-14 2000-11-24 Namco Ltd セキュリティ・システム
JP4736370B2 (ja) * 2004-07-27 2011-07-27 株式会社日立製作所 ホスティング環境構築方法および計算機システム
KR100617904B1 (ko) * 2005-07-21 2006-08-30 주식회사 하이스마텍 스마트카드에 복수의 카드식별정보를 설치 및 관리할 수있는 스마트카드 관리시스템 및 그 방법
US8239686B1 (en) * 2006-04-27 2012-08-07 Vudu, Inc. Method and system for protecting against the execution of unauthorized software
WO2008018457A1 (fr) * 2006-08-10 2008-02-14 Panasonic Corporation Contrôleur de mémoire, carte mémoire sécurisée et système de carte mémoire sécurisée
WO2012127266A1 (en) * 2011-03-23 2012-09-27 Sandisk Il Ltd. Storage device and method for updating data in a partition of the storage device
FR2993682B1 (fr) 2012-07-20 2014-08-22 Oberthur Technologies Mise a jour d'un systeme d'exploitation pour element securise

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1423766A (zh) * 2000-02-17 2003-06-11 通用仪器公司 提供安全控制软件或固件代码下载和接收下载代码的计算装置的安全操作的方法和装置
CN1496628A (zh) * 2002-01-16 2004-05-12 ������������ʽ���� 内容分配系统
US20120324446A1 (en) * 2011-06-17 2012-12-20 Microsoft Corporation Virtual machine image composition and signing

Also Published As

Publication number Publication date
PL3123387T4 (pl) 2019-09-30
US20170109546A1 (en) 2017-04-20
CN106133739B (zh) 2020-03-17
WO2015145071A1 (fr) 2015-10-01
FR3019347A1 (fr) 2015-10-02
JP6585072B2 (ja) 2019-10-02
JP2017509082A (ja) 2017-03-30
PL3123387T3 (pl) 2019-09-30
KR102036411B1 (ko) 2019-10-24
FR3019347B1 (fr) 2017-07-21
EP3123387A1 (fr) 2017-02-01
ES2734370T3 (es) 2019-12-05
EP3123387B1 (fr) 2019-03-13
US10268845B2 (en) 2019-04-23
KR20160136386A (ko) 2016-11-29

Similar Documents

Publication Publication Date Title
CN106133739A (zh) 数据到安全元件的非易失性存储器中的加载的安全保护
CN103577221B (zh) 安全元件的操作系统的更新
CN101379848B (zh) 远程访问便携通信对象中的海量存储器单元和安全存储器单元的系统
CN103946856B (zh) 加解密处理方法、装置和设备
CN103580852B (zh) 安全元件以及初始化安全元件的方法和系统
CN111209558B (zh) 基于区块链的物联网设备身份认证方法以及系统
CN108781210A (zh) 具有可信执行环境的移动设备
CN103455349B (zh) 应用程序访问智能卡的方法和装置
TWI598764B (zh) 透過線上伺服器與在安全作業系統中執行程式碼的內容保護
US7693675B2 (en) Method for protection of sensor node's data, a systems for secure transportation of a sensor node and a sensor node that achieves these
CN111404682B (zh) 一种Android环境密钥分段处理方法及装置
CN109656750A (zh) 用于在安全闪存装置上数据恢复的基于puf的引导加载
CN109086578A (zh) 一种软件授权使用的方法、设备及存储介质
CN106056017A (zh) 智能卡cos加密下载系统
KR101642267B1 (ko) 앱 위변조 방지시스템 및 그 방법
CN109684789A (zh) 嵌入式产品中软件安全保护的方法、装置及计算机设备
CN102682244B (zh) 信息处理设备和程序执行方法
WO2007119594A1 (ja) セキュアデバイス及び読み書き装置
CN105187410A (zh) 一种应用的自升级方法及其系统
JP6344170B2 (ja) 機器、管理モジュール、プログラムおよび制御方法
KR102466866B1 (ko) 데이터의 검증 방법
US20230030478A1 (en) Pre-personalized secure element and embedded personalization
JP6517435B2 (ja) アプリケーションを管理する方法
CN104715192A (zh) 限制软件于授权无线环境
CN105790946B (zh) 建立数据通道的方法、系统及相关设备

Legal Events

Date Code Title Description
C06 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
CP03 Change of name, title or address
CP03 Change of name, title or address

Address after: Courbevoi, France

Patentee after: Ai Demiyafaguo

Address before: Fa Guokelongbu

Patentee before: OBERTHUR TECHNOLOGIES