CN107851044B - 适于从第一应用传送第一数据以供第二应用使用的集成电路卡 - Google Patents

适于从第一应用传送第一数据以供第二应用使用的集成电路卡 Download PDF

Info

Publication number
CN107851044B
CN107851044B CN201680041135.XA CN201680041135A CN107851044B CN 107851044 B CN107851044 B CN 107851044B CN 201680041135 A CN201680041135 A CN 201680041135A CN 107851044 B CN107851044 B CN 107851044B
Authority
CN
China
Prior art keywords
application
javacard
app
icc
integrated circuit
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
CN201680041135.XA
Other languages
English (en)
Other versions
CN107851044A (zh
Inventor
A.A.加尼
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.)
Thales Digital Security France Easy Stock Co
Thales DIS Design Services SAS
Original Assignee
Gemalto 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 Gemalto SA filed Critical Gemalto SA
Publication of CN107851044A publication Critical patent/CN107851044A/zh
Application granted granted Critical
Publication of CN107851044B publication Critical patent/CN107851044B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Software Systems (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • Storage Device Security (AREA)

Abstract

本发明涉及包括可重写非易失性存储器(MEM1)和缓冲器(G_BUFF)的集成电路卡(ICC),所述可重写非易失性存储器(MEM1)包括其中存储包括第一数据(Dat1)的第一JavaCardTM应用(App1)的第一上下文(CTX1),其中所述集成电路卡(ICC)适于:在所述可重写非易失性存储器(MEM1)的第二上下文(CTX2)中存储(STOR1)由终端(T)发送的第二JavaCardTM应用(App2);将第一JavaCardTM应用(App1)第一数据(Dat1)加载(PUT_DAT1)到所述缓冲器(G_BUFF)中;从所述缓冲器(G_BUFF)提取(GET_DAT1)所述第一JavaCardTM应用(App1)第一数据(Dat1)并将所述第一数据(Dat1)存储(STOR2)到所述第二上下文(CTX2)中。

Description

适于从第一应用传送第一数据以供第二应用使用的集成电 路卡
技术领域
本发明涉及包括可重写非易失性存储器和缓冲器的集成电路卡,所述可重写非易失性存储器包括其中存储包括第一数据的第一JavaCardTM应用的第一上下文。
本发明还涉及相关联的方法。
背景技术
当第一JavaCardTM应用已经部署在集成电路卡中并且需要更新(例如针对错误修正或新特征)时,这些更新是昂贵的且不是直接的,尤其是由于第一数据存在于应用内部。这些第一数据有时是由客户自己保密和个性化的。修正错误或添加新特征的解决方案是重新安装具有校正特征或新特征的JavaCardTM应用。
该现有技术的问题在于,当重新安装具有校正特征或新特征的所述JavaCardTM应用时,所有第一数据将丢失。面对针对具有敏感数据的应用的该更新问题,进行具有更新应用的卡的重新发行,这是昂贵的。
发明内容
本发明的目的是提供包括可重写非易失性存储器和缓冲器的集成电路卡,所述可重写非易失性存储器包括其中存储包括第一数据的第一JavaCardTM应用的第一上下文,其允许安全地将这些第一数据传送到第二JavaCardTM应用以使更新过程平滑,所述第二JavaCardTM应用包括校正的特征或要添加的新特征。
为此,提供了一种包括可重写非易失性存储器和缓冲器的集成电路卡,所述可重写非易失性存储器包括其中存储包括第一数据的第一JavaCardTM应用的第一上下文,其中所述集成电路卡适于:
- 在所述可重写非易失性存储器的第二上下文中存储由终端发送的第二JavaCardTM应用;
- 将第一JavaCardTM应用第一数据加载到所述缓冲器中;
- 从所述缓冲器提取所述第一JavaCardTM应用第一数据并将所述第一数据存储到所述第二上下文中。
如我们将更详细地看到的,缓冲器可以被用作第一JavaCardTM应用和第二JavaCardTM应用之间的公共缓冲器。因此,第一数据的传送在完全不同的上下文中并且通常不可以一起通信的两个JavaCardTM应用之间是可能的。
根据本发明的非限制性实施例,根据本发明的集成电路卡还包括以下特性。
在非限制性实施例中,所述集成电路卡还适于:
- 从所述终端接收至少一个APDU命令,以触发在所述第二上下文中的第一数据的所述加载、所述提取和所述存储;
- 向所述终端发送指示所述至少一个APDU命令已被正确执行的第一APDU响应。
在非限制性实施例中,所述集成电路卡还适于:
- 选择第二JavaCardTM应用作为运行的应用;和
- 从所述可重写非易失性存储器中删除所述第一JavaCardTM应用。
在非限制性实施例中,所述集成电路卡还适于执行所述第一JavaCardTM应用和所述第二JavaCardTM应用之间的相互认证。
在非限制性实施例中,所述集成电路卡还适于在所述第二上下文中和在所述第一上下文中存储用于相互认证的秘密密钥或一对私钥和公钥。
在非限制性实施例中,所述可重写非易失性存储器还包括在所述第一JavaCardTM应用内并且在所述第二JavaCardTM应用内导入的可共享接口,所述可共享接口定义用于所述加载的至少一个共享方法。
在非限制性实施例中,所述可共享接口定义用于所述相互认证的至少一个共享方法。
在非限制性实施例中,第一JavaCardTM应用实现用于所述加载的至少一个共享方法,并且第二JavaCardTM应用实现用于所述提取和用于所述第一数据到所述缓冲器中的所述存储的至少一个方法。
在非限制性实施例中,第一JavaCardTM应用还实现用于所述相互认证的至少一个共享方法。
在另一个非限制性实施例中,所述可重写非易失性存储器还包括:
- 第三JavaCardTM应用;
- 在所述第一JavaCardTM应用内定义并在所述第三JavaCardTM应用内导入的第一可共享接口,所述第一可共享接口包括用于所述加载的至少一个第一共享方法的声明;
- 在所述第二JavaCardTM应用内定义并且在所述第三JavaCardTM应用内导入的第二可共享接口,所述第二可共享接口包括用于所述加载的至少一个第二共享方法的声明。
在非限制性实施例中,所述第一可共享接口包括用于所述相互认证的至少一个第一共享方法的声明,并且所述第二可共享接口包括用于所述相互认证的至少一个第二共享方法的声明。
在非限制性实施例中,第一JavaCardTM应用实现用于所述加载的至少一个第一共享方法,并且第二JavaCardTM应用实现用于所述提取和用于所述第一数据到所述缓冲器中的所述存储的至少一个方法。
在非限制性实施例中,所述集成电路卡是安全元件。
在非限制性实施例中,所述集成电路卡还适于在所述第二上下文中与第二JavaCardTM应用一起存储与所述第一JavaCardTM应用相关联的第一应用标识。
此外,提供了一种用于传送集成电路卡内的第一JavaCardTM应用的第一数据以供所述集成电路卡内的第二JavaCardTM应用使用的方法,所述集成电路卡包括可重写非易失性存储器和缓冲器,所述第一JavaCardTM应用被存储在所述可重写非易失性存储器中的第一上下文中,其中所述方法包括:
- 在所述可重写非易失性存储器的第二上下文中存储由终端发送的第二JavaCardTM应用;
- 将第一JavaCardTM应用第一数据加载到所述缓冲器中;
- 从所述缓冲器提取所述第一JavaCardTM应用第一数据,并将所述第一数据存储到所述第二上下文中。
在非限制性实施例中,所述方法还包括:
- 选择第二JavaCardTM应用作为运行的应用;和
- 从所述可重写非易失性存储器中删除所述第一JavaCardTM应用。
在非限制性实施例中,所述方法还包括执行所述第一JavaCardTM应用和所述第二JavaCardTM应用之间的相互认证。
在非限制性实施例中,所述方法还包括在所述第二上下文中和在所述第一上下文中存储用于相互认证的秘密密钥或一对私钥和公钥。
在非限制性实施例中,对于所述加载,在可共享接口内定义至少一个共享方法,所述可共享接口在所述第一JavaCardTM应用内和在所述第二JavaCardTM应用内导入。
在另一个非限制性实施例中,对于所述加载:
- 在第一可共享接口内定义至少一个第一共享方法,所述第一可共享接口在所述第一JavaCardTM应用内定义并在所述第三JavaCardTM应用内导入;
- 在第二可共享接口内定义至少一个第二共享方法,所述第二可共享接口在所述第二JavaCardTM应用内定义并在所述第三JavaCardTM应用内导入。
在非限制性实施例中,所述方法还包括在所述第二上下文中与第二JavaCardTM应用一起存储与所述第一JavaCardTM应用相关联的第一应用标识。
此外,提供了包括一组指令的计算机程序产品,所述指令当被加载到集成电路卡中时使得集成电路卡执行根据前述特性中的任何一个的方法。
附图说明
现在仅以示例的方式并参考附图来描述根据本发明的实施例的方法和/或装置的一些实施例,其中:
图1示意性地图示了根据本发明的非限制性实施例的集成电路卡;
图2示意性地图示了根据实施例的第一非限制性变型的图1的集成电路卡;
图3示意性地图示了根据实施例的第二非限制性变型的图1的集成电路卡;
图4是图示根据非限制性实施例的由图1的集成电路卡执行的方法的组织图;
图5是根据第一非限制性实施例的由图2的集成电路卡执行并包括另外的非限制性步骤的图4的方法的第一序列图;和
图6是根据第二非限制性实施例的由图3的集成电路卡执行并包括另外的非限制性步骤的图4的方法的第二序列图。
具体实施方式
在下面的描述中,未详细描述本领域技术人员所公知的功能或构造,因为它们将不必要详细地模糊本发明。
本发明涉及图1中所图示的集成电路卡ICC。
所述集成电路卡ICC包括可重写非易失性存储器MEM1、缓存器G_BUFF和虚拟机VM。
在下面的描述中,集成电路卡ICC也被称为ICC卡。
在下面的描述中:
- 应用是指被设计成执行一组操作序列来执行特定任务的一组一个或多个程序。应用APP包括至少一个小应用程序;
- 平台是指至少包括操作系统和虚拟机的集成电路卡ICC。
- 小应用程序是指以源代码编写并以虚拟机指令的形式交付给用户的程序。在所述集成电路卡ICC的使用期期间,小应用程序可以在其被制造后加载在集成电路卡ICC中。小应用程序包括至少一个平台无关的方法;
- 源代码是指作为平台无关代码的编程代码。源代码是可互操作的,因为它可以在不被修改的情况下在任何种类的设备(诸如支持虚拟机VM的集成电路卡ICC)上运行。它是以可移植语言编写的,并由虚拟机运行。一旦被编译,源代码生成虚拟机指令;
- 虚拟机VM是解码并执行虚拟机指令的解释器;
- 虚拟机指令是指通过虚拟机而不是特定单元处理器(诸如集成电路卡ICC的单元处理器)运行的编程代码。这样的编程代码是平台无关的代码。所述虚拟机指令从源代码的编译而发行;
- 操作序列(也称为功能)包括一个或多个操作;
- 指令是指代码指令;
- APDU是指应用协议单元。APDU允许集成电路卡ICC与终端T进行通信。APDU包含称为APDU_C的命令或称为APDU_R的响应消息;
- 封包(package)PK允许将JavaCardTM类或接口分组在一起,其都是相关的。此外,封包可以存储在结构化的容器中(在JavaCardTM封包的示例中称为cap文件或.ijc文件),从而允许将类或接口下载为功能上一致的组;
- 小应用程序防火墙是指将应用限制于其自己指定区域的机制。因此,防止应用访问由其他应用所拥有的对象的内容或行为;
- 上下文CTX是分配给单个封包PK的所有应用的保护区域。允许相同上下文中的应用之间的对象访问。由小应用程序防火墙拒绝由上下文的应用对不同上下文中的对象的访问。因此,不同封包意味着存在不同的上下文CTX;
- 终端T是适于通过APDU命令与集成电路卡ICC进行通信的任何种类的设备、计算机或读取器,或者在非接触模式的接触下。
在非限制性示例中:
- 虚拟机VM是JavaCardTM虚拟机JVM,并且可移植语言是专用于被称为JavaCardTM的集成电路卡ICC卡的JavaCardTM语言。
- 应用的源代码是以JavaCardTM编写的。虚拟机指令是字节码的形式。它们包括一个或多个字节。字节码存储在称为cap文件的文件中。
这些非限制性示例将在下面的描述中采用。
集成电路卡ICC可以是接触式或非接触式的。
在非限制性实施例中,集成电路卡ICC是安全元件。
安全元件是包括安全芯片并且可以执行密码功能并且适于存储秘密信息的安全组件。
在非限制性变型中,安全元件是智能卡、焊接元件、M2M模块、eSE(嵌入式安全元件)、微型SD等。在非限制性示例中,安全元件是银行卡,诸如EMV卡、电子身份卡、健康卡、驾驶执照、护照、私密卡、金融服务卡、门禁卡等。
如图1所图示,ICC卡包括:
- 虚拟机VM;
- 可重写非易失性存储器MEM1,所述可重写非易失性存储器MEM1包括其中存储包括第一数据Dat1的第一JavaCardTM应用App1的第一上下文CTX1;
- 缓冲器G_BUFF。
“第一数据”意指第一JavaCardTM应用App1的数据。这些第一数据可以在所述第一JavaCardTM应用App1的使用期期间更新或不更新。
缓冲器G_BUFF在易失性存储器中。
在第一非限制性实施例中,所述缓冲器G_BUFF是专用于APDU命令APDU_C的APDU缓冲器。该APDU缓冲器存储APDU命令。这样的APDU缓冲器由本领域技术人员所公知,在此将不描述其。
在第二非限制性实施例中,所述缓冲器G_BUFF是临时全局阵列。其是暂时的缓冲器。所述临时全局阵列不存储任何APDU命令,但是其在APDU命令的处理期间创建,并且在APDU命令的处理完成后自动清除并删除。这样的临时全局阵列由本领域技术人员所公知,在此将不描述其。
在非限制性实施例中,可重写非易失性存储器MEM1是诸如EEPROM(“电可擦除可编程只读存储器”)、FLASH存储器等之类的存储器。
ICC卡包括一个或多个JavaCardTM应用(特别是App1)。与所述JavaCardTM应用的源代码SC对应的字节码存储在第一存储器MEM1中。
应用开发人员如在应用的整个使用期期间面临着越来越多的挑战,他们必须使得第一JavaCardTM应用可容易定制成满足快速改变的市场需求。此外,应用开发人员有时需要修正第一JavaCardTM应用App1中的一些错误。
因此,为了更新第一JavaCardTM应用App1以添加新的特征、修改一些特征或者进行一些校正,有必要收集第一JavaCardTM应用App1的必要第一数据Dat1以供将替换第一JavaCardTM应用App1的第二JavaCardTM应用App2使用(否则,所述第一数据Dat1将丢失)。在以下描述中,第一JavaCardTM应用App1也将无差别地称为第一应用App1或旧应用App1,并且第二JavaCardTM应用App2也将无差别地称为第二应用App2或新应用App2。
这样的第一数据Dat1在非限制性示例中是敏感数据,诸如:
- 用户数据,诸如指纹、身份数据;
- 私密密码密钥;
- 电子货币等。
由于小应用程序防火墙,由第一JavaCardTM应用App1使用并存储在第一上下文CTX1中的第一数据Dat1可能不被不在所述第一上下文CTX1中的任何其他应用访问。因此,当新应用App2需要替换旧应用App1时,ICC卡适于:
- 在所述可重写非易失性存储器MEM1的第二上下文CTX2中存储由终端T发送的第二JavaCardTM应用App2(图1中所图示的功能STOR1);
- 第二JavaCardTM应用(App2)适于从所述终端(T)接收至少一个APDU命令(APDU_C2)以通过集成电路卡(ICC)触发以下步骤:
- 将第一JavaCardTM应用App1第一数据Dat1加载到所述缓冲器G_BUFF中(图1中所图示的功能PUT_DAT1);
- 从所述缓冲器G_BUFF提取所述第一JavaCardTM应用App1第一数据Dat1(图1中所图示的功能GET_DAT1);和
- 将所述第一数据Dat1存储到所述可重写非易失性存储器MEM1的所述第二上下文CTX2中(图1中所图示的功能STOR2)。
在非限制性实施例中,所述功能通过集成电路卡ICC的虚拟机VM执行。
在非限制性实施例中,虚拟机VM还适于执行下文描述的另外的非限制性功能。
要注意,所述第二上下文CTX2和所述第一上下文CTX1是不同的。由于第二JavaCardTM应用App2是新应用,所以它将在旧应用App1后安装。因此,它将被存储在与第一应用的上下文不同的上下文中。
要注意,缓冲器G_BUFF被第一和第二应用App1、App2用作公共缓冲器以交换数据,因为所述缓冲器可同时由ICC卡的所有应用访问,而不管上下文CTX如何。
要注意,所述第二应用App2被包括在与第一应用App1的第一封包PK1不同的第二封包PK2中。
由于ICC卡使用APDU协议来与终端T通信,所以在非限制性实施例中,所述ICC卡还适于:
- 从所述终端T接收至少一个APDU命令APDU_C2(在图1中所图示的功能RX_APDU_C2)以触发在所述第二上下文CTX2中的第一数据Dat1的所述加载PUT_DAT1、所述提取GET_DAT1和所述存储STOR2;
- 向所述终端T发送指示至少一个APDU命令APDU_C2已被正确执行的第一APDU响应APDU_R2(图1中所图示的功能TX_APDU_R2)。
如果APDU命令APDU_C2已被正确执行,则其意味着第一数据Dat1已被重新获得以供第二应用App2使用。
因此,第二应用App2可以成为要在ICC卡中运行的当前应用,并且不再需要第一应用App1。因此,在非限制性实施例中,所述ICC卡还适于选择第二应用App2作为运行的应用(图1中所图示的功能SELEC_APP2);并且从所述可重写非易失性存储器MEM1中删除所述第一应用App1(图1中所图示的功能DELET_APP1)。
在非限制性实施例中,所述ICC卡还适于在所述第二上下文CTX2中与第二应用App2一起存储与所述第一应用App1相关联的第一标识AID1。
其允许ICC卡选择哪个第一应用App1要替换为第二应用App2;
在非限制性实施例中,所述ICC卡还适于执行所述第一JavaCardTM应用App1和所述JavaCardTM第二应用App2之间的相互认证(图1中所图示的功能MUT_AUTH)。
相互认证确保旧应用App1和新应用App2是真实的(genuine)。此外,在非限制性实施例中,相互认证生成将在数据的传送期间用于加密敏感数据的会话密钥。这些会话密钥在旧应用App1和新应用App2之间使用。要注意,当应用相互认证时,所述APDU命令APDU_C2也触发所述相互认证MUT_AUTH。在非限制性实施例中,所述ICC卡还适于在所述第二上下文CTX2中存储用于相互认证MUT_AUTH的秘密密钥SK(图1中所图示的功能STOR1_SK))、或用于相互认证MUT_AUTH的一对私钥和公钥Kpv、Kpu(图1中所图示的功能STOR1_KPV_KPU))。
其允许ICC卡使用通过共享秘密密钥Sk的对称认证过程、或者通过一对密钥Kpu、Kpv的非对称认证过程来在两个应用App1、App2之间执行相互认证。
因此,旧应用App1内部的所有现有数据可以安全地传送到新应用App2。使通过缓冲器G_BUFF的第一应用App1的第一数据Dat1的共享安全。
在非限制性实施例中,这些密钥Sk或Kpv-Kpu在用于第一应用App1的个性化阶段PH期间被加载,并且在将第二应用App2存储到所述ICC卡期间作为参数。在另一个非限制性实施例中,这些密钥Sk或Kpv-Kpu以非易失性方式存储在第一应用App1内部和第二应用App2内部。
在实施例的非限制性变型中,通过挑战-应答认证来执行相互认证:
第一应用App1生成并发送挑战到第二应用App2。所述第二应用App2利用秘密密钥(在对称过程的情况下)对该挑战进行加密并且发回所获得的密文。所述第一应用App1利用秘密密钥来验证所述密文。由于该认证由本领域技术人员所公知,在此将不更详细地描述其。
为了使ICC卡和终端T一起安全地通信,在非限制性实施例中,所述ICC卡还适于与所述终端T建立安全信道SCh(图1中所图示的功能SETUP_SCH)并从所述终端T接收APDU命令APDU_C并且在所述安全信道SCh内发回相关联的响应APDU_R。
安全信道SCh的建立允许生成一些会话密钥。这些会话密钥将在ICC卡和终端T之间使用。它们不同于在新的和旧的应用App1 App2之间使用的那些。然后ICC卡和终端T之间的信息的接下来的交换在所述安全信道内执行:这些会话密钥将被用于:
- 对在ICC卡和终端T之间交换的(JavaCardTM应用App1、App2、第一数据Dat1等的)信息进行加密;
- 或计算与信息交换相关联的MAC(消息认证码)以用于完整性检查。
因此,可以安全地执行ICC卡与终端T之间的APDU命令APDU_C和APDU响应APDU_R的传输。因此,可以安全地执行第二应用App2的加载。
在实施例的非限制性变型中,安全信道SCh通过ICC卡和终端T之间的全球平台安全信道协议(本领域技术人员所公知)而建立。这样的GAP过程由本领域技术人员所公知,在此将不描述其。
为了执行上述的所有功能,可以使用ICC卡的两个非限制性实施例。这两个实施例分别在图2和图3中图示,并在下文中进行描述。
在非限制性实施例中,虚拟机VM还适于执行下文在第一非限制性实施例中以及在第二非限制性实施例中描述的另外的非限制性功能。
第一非限制性实施例
ICC卡的第一非限制性实施例参考图2。
如下文将描述的,在该第一非限制性实施例中,第二应用App2充当客户端,并且第一应用App1充当服务器。
客户端App2将调用服务器App1的(多个)共享方法MTH1来执行相互认证MUT_AUTH(当应用所述相互认证时)和加载PUT_DAT1。
根据该第一实施例,ICC卡的可重写非易失性存储器MEM1还包括可共享接口SI,其在所述第一应用App1内和在所述第二应用App2内导入,所述可共享接口SI定义至少一个第一共享方法MTH1以用于:
- 相互认证MUT_AUTH(当应用所述相互认证时);
- 加载PUT_DAT1。
所述至少一个第一共享方法MTH1因此可用于第二应用App2并且可由第二应用App2访问。
要注意:
- 一个方法MTH1可以针对两个操作序列MUT_AUTH、PUT_DAT1声明;或者
- 可以声明两个方法MTH1,每个操作序列一个;或者
- 可以针对一个操作序列声明多个方法MTH1。
在非限制性实施例中,所述ICC卡还适于在所述可重写非易失性存储器MEM1的第三上下文CTX3中存储所述可共享接口SI(图2中所图示的功能STOR_SI)。
要注意,所述第三上下文CTX3不同于所述第一上下文CTX1并且不同于所述第二上下文CTX2。
实际上,由于第一应用App1导入所述可共享接口SI,所以不可能将所述可共享接口SI存储在第二上下文CTX2中。此外,如果可共享接口SI被存储在第一上下文CTX1中,则第一应用App1在更新之后不能被删除。
要注意,所述可共享接口SI被包括在用于存储的封包SI_P中。
在非限制性实施例中,在接收到包括具有所述可共享接口SI的封包SI_P并由终端T发送的第二APDU加载命令APDU_C3时(图2中所图示的功能RX_APDU_C3),执行对所述可共享接口SI的存储。
要注意,如果在个性化阶段PH期间已经存储了第一应用App1,则在所述个性化阶段PH期间,要事先存储可共享接口SI。
在任何情况下,可共享接口封包SI_P要在第一应用封包PK1之前被加载,从而从所述可共享接口封包SI_P导入共享接口定义。当然,第二应用封包PK2在所述第一应用封包PK1之后被加载。
在非限制性实施例中,第一应用App1实现用于所述相互认证MUT_AUTH(当应用时)和用于所述加载PUT_DAT1的至少一个第一共享方法MTH1,而第二应用App2实现用于所述第一数据Dat1从所述缓冲器G_BUFF的提取GET_DAT1和用于所述第一数据Dat1到所述可重写非易失性存储器MEM1的第二上下文CTX2中的存储STOR2的至少一个方法MTH2。
要注意,至少一个方法MTH2不是共享的方法。其是不共享的方法。
为了调用第一应用App1的用于相互认证MUT_AUT(当应用时)和用于加载PUT_DAT1的至少一个第一共享方法MTH1,在非限制性实施例中,ICC卡适于请求与所述第一应用App1相关的第一可共享接口对象SIO1(图2中所图示的功能RQ_SIO1)。
在非限制性实施例中,经由在JavaCardTM中可用的getShareableInterfaceObject方法来执行请求。因此,第二应用App2将能够通过使用getShareableInterfaceObject方法来得到实现(多个)第一共享方法MTH1的第一对象SIO1。
在非限制性实施例中,在接收到上述的至少一个APDU命令APDU_C2时执行请求。
要注意,在从第一应用App1请求SIO1之前,ICC卡适于获得与第一应用App1相关联的AID对象,其是存储在上述第二上下文CTX2中的第一应用标识AID1(图2中所图示的功能LK_AID1)。
该AID1将是getShareableInterfaceObject方法的参数,使得第二应用App2将能够得到正确第一应用App1的第一共享方法MTH1。
然后,第二应用App2调用在第一应用App1中实现的第一共享方法MTH1,即SIO1.MTH1。
第二非限制性实施例
ICC卡的第二非限制性实施例参考图3。
如将在下文中描述的,在该第二非限制性实施例中,第二应用App2充当客户端,并且第三应用App3充当服务器。
客户端App2将调用服务器App3的(多个)共享方法MTH3。并且,第三应用App3充当客户端,且第一应用App1充当服务器。
客户端App3将调用服务器App1的(多个)共享方法MTH4。
因此,第三应用App3充当将消息从新应用App2传递到旧应用App1以执行相互认证MUT_AUTH(当应用所述相互认证时)和加载PUT_DAT1的中间应用。
根据该第二实施例,ICC卡的可重写非易失性存储器MEM1还包括:
- 第三JavaCardTM应用App3;
- 在所述第一JavaCardTM应用App1内定义并且在所述第三JavaCardTM应用App3内导入的第一可共享接口SI1,所述第一可共享接口SI1包括用于加载PUT_DAT1的至少一个第一共享方法MTH1的声明;
- 在所述第二JavaCardTM应用App2内定义并且在所述第三JavaCardTM应用App3内导入的第二可共享接口SI2,所述第二可共享接口封包SI2包括用于加载PUT_DAT1的至少一个第二共享方法MTH3的声明。
因此,第一可共享接口SI1由所述第一JavaCardTM应用App1实现,且第二可共享接口SI2由所述第三JavaCardTM应用App3实现。
在非限制性实施例中,当应用相互认证MUT_AUTH时,第一可共享接口SI1还定义用于所述相互认证MUT_AUTH的至少一个第一共享方法MTH1,并且第二可共享接口封包SI2还定义用于所述相互认证MUT_AUTH的至少一个第二共享方法MTH3。“定义至少一个共享方法”意味着可共享接口SI1、SI2包括至少一个共享方法的声明。
在以下描述中,第三JavaCardTM应用App3也将无差别地称为第三应用App3或中间应用App3。
所述至少一个第一共享方法MTH1因此可用于中间应用App3并且可由中间应用App3访问。
所述至少一个第二共享方法MTH3因此可用于新应用App2并且可由新应用App2访问。
要注意:
- 可以针对两个操作序列MUT_AUTH、PUT_DAT1声明一个共享方法MTH1、MTH3;或者
- 可以声明两个共享方法MTH1、MTH3,每个操作序列一个;或者
- 可以针对一个操作序列声明多个共享方法MTH1、MTH3。
在非限制性实施例中,所述ICC卡还适于在所述可重写非易失性存储器MEM1的第三上下文CTX3中存储所述第三应用App3。封包PK3包括用于存储(所图示的功能STOR3)的所述第三应用App3。
要注意,所述第三上下文CTX3不同于所述第一上下文CTX1并且不同于所述第二上下文CTX2。
实际上,由于第三应用App3导入所述第二可共享接口SI2,所以不可能将所述第三应用App3存储在第一上下文CTX1中。
要注意,可以将第三应用App3存储在第二上下文CTX2中,但该解决方案将等同于第一实施例。
要注意,可共享接口SI1或SI2中的每一个被包括在用于存储的封包SI1_P和SI2_P中。在非限制性实施例中,所述可共享接口SI1、SI2分别存储在所述第一上下文CTX1和第二上下文CTX2中。
在非限制性实施例中,在接收到包括具有所述可共享接口SI1或SI2的封包并由终端T发送的第二APDU加载命令APDU_C4时执行存储(图3中所图示的功能RX_APDU_C4)。
要注意,如果第一应用App1已经在个性化阶段PH期间被加载,则可共享接口SI1也在所述个性化阶段PH期间被加载,因为它是所述第一应用App1的部分。第二应用App2和第三应用App3以及因此第二可共享接口SI2在更新时在个性化阶段PH之后被加载。
在非限制性实施例中,第一应用App1实现用于所述相互认证MUT_AUTH(当应用所述相互认证时)和用于所述加载PUT_DAT1的至少一个第一共享方法MTH1,而第二应用App2实现用于所述第一数据Dat1从所述缓冲器G_BUFF的提取GET_DAT1和用于所述第一数据Dat1到所述可重写非易失性存储器MEM1的第二上下文CTX2中的存储STOR2的至少一个方法MTH2。此外,第三应用App3实现至少一个第二共享方法MTH3,所述实现包括对所述第一应用App1的至少第一共享方法MTH1的调用。
要注意,至少一个方法MTH2不是共享的方法。其是不共享的方法。
为了调用第一应用App1的用于相互认证MUT_AUT(当应用时)和用于加载PUT_DAT1的至少一个第一共享方法MTH1,在非限制性实施例中,ICC卡适于请求与所述第一应用App1相关的第一可共享接口对象SIO1(所图示的功能RQ_SIO1)。
在非限制性实施例中,经由在JavaCardTM中可用的getShareableInterfaceObject方法来执行请求。因此,第三应用App3将能够通过使用getShareableInterfaceObject方法来得到实现(多个)第一共享方法MTH1的对象SIO1。
要注意,在从第一应用App1请求SIO1之前,ICC卡适于获得与第一应用App1相关联的AID对象,其是存储在上述第二上下文CTX2中的第一应用标识AID1(图3中所图示的功能LK_AID1)。
该AID1将是getShareableInterfaceObject方法的参数,使得第三应用App3将能够得到正确第一应用App1的第一共享方法MTH1。
然后,第三应用App3调用在第一应用App1中实现的方法,即SIO1、MTH1。
以相同的方式,为了调用第三应用App3的用于相互认证MUT_AUT(当应用时)和用于加载PUT_DAT1的至少一个第二共享方法MTH2,在非限制性实施例中,ICC卡适于请求与所述第三应用App3相关的第二可共享接口对象SIO3(所图示的功能RQ_SIO3)。
在非限制性实施例中,经由在JavaCardTM中可用的getShareableInterfaceObject方法来执行请求。因此,第二应用App2将能够通过使用getShareableInterfaceObject方法来得到实现(多个)第二共享方法MTH3的对象SIO3。
要注意,在从第三应用App3请求SIO3之前,ICC卡适于获得与第三应用App3相关联的AID对象,其是存储在上述第二上下文CTX2中的第三应用标识AID3(图3中所图示的功能LK_AID3)。
该AID3将是getShareableInterfaceObject方法的参数,使得第二应用App2将能够得到正确第三应用App3的第二共享方法MTH3。
然后,第二应用App2调用在第三应用App3中实现的方法,即SIO3.MTH3。
在非限制性实施例中,在接收到至少一个APDU命令APDU_C2时执行请求RQ_SIO1和RQ_SIO3。
对于上述两个实施例,要注意,如果第二应用App2稍后要被替换为另一个JavaCardTM应用,当然,所述第二应用App2将被视为第一应用App1并且将具有与所述第一应用App1相同的结构((多个)共享方法MUT_AUTH、PUT_DAT1等)。
因此,上述集成电路卡ICC适于执行用于传送所述集成电路卡ICC内的第一JavaCardTM应用App1的第一数据Dat1以供所述集成电路卡ICC内的第二JavaCardTM应用App2使用的方法M。
所述方法M在图4中图示。它包括:
- 将由终端T发送的第二JavaCardTM应用App2存储在所述可重写非易失性存储器MEM1的第二上下文CTX2中(所图示的步骤STOR1);
- 将第一JavaCardTM应用App1第一数据Dat1加载到所述缓冲器G_BUFF中(所图示的步骤PUT_DAT1);
- 从所述缓冲器G_BUFF提取所述第一JavaCardTM应用App1第一数据Dat1(所图示的步骤GET_DAT1);和
- 将所述第一数据Dat1存储到所述可重写非易失性存储器MEM1的所述第二上下文CTX2中(所图示的步骤STOR2)。
在非限制性实施例中,所述方法M还包括执行所述第一JavaCardTM应用App1和所述第二JavaCardTM应用App2之间的相互认证。
在非限制性实施例中,所述步骤通过集成电路卡ICC的虚拟机VM来执行。
在非限制性实施例中,虚拟机VM还适于执行下文在第一和第二非限制性实施例中描述的另外的非限制性步骤。
所述方法根据图5中的第一非限制性实施例以及根据图6中的第二非限制性实施例来图示。在这些非限制性实施例中,应用所述相互认证MUT_AUTH。
第一非限制性实施例
上述ICC卡的第一非限制性实施例执行所述第一非限制性实施例。
在所图示的非限制性示例中,在可共享接口SI中声明了两个共享方法:
- 用于相互认证的SIO1.mut_auth;和
- 用于加载缓冲器G_BUFF中的第一数据Dat1的SIO1.putdatl。
下文将详细描述不同的步骤。
要注意,在非限制性实施例中,方法M包括在所述集成电路卡ICC和所述终端T之间建立安全信道SCh的初始步骤(未图示)。ICC卡将从终端T安全地接收任何APDU命令APDU_C。
在步骤1)中,ICC卡在所述可重写非易失性存储器MEM1中的第二上下文CTX2中存储第二应用App2,其由终端T发送。
第二应用标识AID2与所述第二应用App2相关联。其不同于第一应用标识AID1,使得可以区分JavaCardTM应用App1和App2两者。要注意,在加载所述第二应用App2之后,所述新应用App2由终端T经由其第二应用标识AID2选择,使得后续的APDU命令被发送到所述新应用App2。
通过包括所述第二应用标识AID2作为参数的APDU选择命令(所图示的APDU_C1)执行选择(步骤1’)。
要注意,此处,所选择的应用App2目前并不是运行的应用。选择允许第二应用App2接收由终端T发送的APDU命令APDU_C。
在步骤2)中,ICC卡从所述终端T接收APDU命令APDU_C2以触发所述相互认证MUT_AUTH、所述第二上下文CTX2中的第一数据Dat1的所述加载PUT_DAT1、所述提取GET_DAT1和所述存储STOR2。
当已经选择了第二应用App2时,由第二应用App2接收命令APDU_C2。
在步骤3)中,ICC卡(针对第二应用App2)请求与所述第一应用App1相关的第一可共享接口对象SIO1(经由getShareableInterfaceObject方法)。
第二应用App2现在可以访问(多个)第一共享方法MTH1。
第二应用App2调用SIO1.mut_auth方法,其允许执行在第一应用App1中实现的相互认证,所述SIO1.mut_auth方法包括对称或非对称认证过程的操作序列。
在所述调用时,在步骤4)中,ICC卡执行所述第一应用App1和所述第二应用App2之间的相互认证。
由于秘密密钥Sk或一对公钥Kpu-私钥Kpv被分别存储在所述第一和第二JavaCardTM应用的每个上下文CTX1和CTX2中,所以所述应用将能够利用所述密钥Sk或Kpu-Kpv执行相互认证。
现在将以安全的方式执行两个应用之间的数据的传送,因为所述相互认证确保新应用App2是真实的应用,并且因为数据可以通过由相互认证过程所生成的会话密钥来加密。
如果所述相互认证成功,则旧应用App1将允许新应用App2得到一些数据。否则,旧应用App1将通过禁用第一共享方法来拒绝请求的任何数据。
因此,随后,第二应用App2调用允许执行将第一数据Dat1加载到所述缓冲器G_BUFF中的SIO1.putdat1方法。
要注意,对该方法的每次调用将返回缓冲器G_BUFF中的第一数据Dat1或第一数据Dat1的集合。该方法SIO1.putdat1的输入参数将是对缓冲器G_BUFF和第一数据标识符的字节的引用。
所述第一数据标识符允许选择将传送哪个第一数据Dat1。
在所述调用之后,在步骤5)中,ICC卡将第一应用App1的第一数据Dat1加载到所述缓冲器G_BUFF中。
因此,在第一上下文CTX1中选择的第一数据Dat1被复制在所述缓冲器G_BUFF中。
然后,在步骤6)中,ICC卡从所述缓冲器G_BUFF提取所述第一应用App1第一数据Dat1,并将所述第一数据Dat1存储到所述可重写非易失性存储器MEM1的第二上下文CTX2中。
第一数据Dat1现在由第二应用App2可用。
要注意,在方法M的所有处理期间,在所述第二上下文CTX2中存在第一上下文CTX1的所述第一数据Dat1的重复,以确保ICC卡将保持在相同的状态下。因此,当前运行的应用(无论其是App1还是App2)仍然稳定,以防在传送过程M期间发生任何中断。
要注意,从终端T的观点来看,数据传送是透明的:没有第一数据Dat1被传输到外部世界。终端T只需要等待来自ICC卡的第一APDU响应APDU_R2。
在步骤7)中,ICC卡向终端T发送APDU响应APDU_R2,以告知第一数据Dat1的传送完成,并且已被正确执行。
在步骤8)中,ICC卡选择第二应用App2作为运行的应用,并从所述可重写非易失性存储器MEM1中删除所述第一应用App1。
选择和删除分别利用第二应用标识符AID2和第一应用标识符AID1来执行。
ICC卡适于接收:
- 来自所述终端T的具有第二AID2作为参数的APDU选择命令APDU_C5(图2中所图示的功能RX_APDU_C5);和
- 来自所述终端T的具有第一AID1作为参数的APDU删除命令APDU_C6(图3中所图示的功能RX_APDU_C6)。
在完成第一数据Dat1的传送和利用新应用App2对旧应用App1的更新后,仅可共享接口封包SI_P和第二应用封包PK2将保留在所述ICC卡中。
第二非限制性实施例
上述ICC卡的第二非限制性实施例执行所述第二非限制性实施例。
在图示的非限制性示例中,在第一可共享接口SI1中声明了两个共享方法:
- 用于相互认证的SIO1.mut_auth;和
- 用于加载缓冲器G_BUFF中的第一数据Dat1的SIO1.putdatl。
在所图示的非限制性示例中,在第二可共享接口SI2中声明了两个共享方法:
- 用于相互认证的SIO3.mut_auth;和
- 用于加载缓冲器G_BUFF中的第一数据Dat1的SIO3.putdatl。
在步骤1)中,ICC卡在所述可重写非易失性存储器MEM1中的第二上下文CTX2中存储第二应用App2,其终端T发送。
所述第二应用的存储与方法M的第一非限制性实施例中描述的步骤1相同。
此外,所述步骤包括存储第三应用App3。要注意,所述中间应用App3要最后存储,因为它将导入共享接口的两个不同定义,来自旧应用App1的一个SI1和来自新应用App2的一个SI2。
步骤2)与方法M的第一非限制性实施例中描述的步骤相同。
在步骤3)中,ICC卡请求以下内容(getShareableInterfaceObject方法):
- 针对第二应用App2请求与所述第三应用App3相关的第二可共享接口对象SIO3。
- 针对第三应用App3请求与所述第一应用App1相关的第一可共享接口对象SIO1。
第二应用App2现在可以访问(多个)第二共享方法MTH3。
第三应用App3现在可以访问(多个)第一共享方法MTH1。
第二应用App2调用允许执行在第三应用App3中实现的相互认证的SIO3.mut_auth方法。
当所述SIO3.mut_auth方法调用SIO1.mut_auth时,第三应用App3调用允许执行在第一应用App1中实现的相互认证的SIO1.mut_auth方法,所述SIO1.mut_auth方法包括用于对称或非对称认证过程的操作序列。
在(SIO1.mut_auth的)所述调用之后,在步骤4)中,ICC卡执行所述第一应用App1和所述第二应用App2之间的相互认证。
由于秘密密钥Sk或一对公钥Kpu-私钥Kpv分别存储在所述第一和第二JavaCardTM应用的每个上下文CTX1和CTX2中,所以所述应用将能够利用所述密钥Sk或Kpu-Kpv执行相互认证。
现在将以安全的方式执行两个应用之间的数据的传送,因为所述相互认证确保新应用App2是真实的,并且因为数据可以通过由相互认证过程所生成的会话密钥来加密。
如果所述相互认证成功,则旧应用App1将允许新应用App2通过启用第一共享方法来得到一些数据,并且中间应用App3将启用第二共享方法。否则,旧应用将通过禁用第一共享方法来拒绝所请求的任何数据,并且中间应用App3将禁用第二共享方法。
因此,随后,第二应用App2调用SIO3.putdat1方法,其将调用允许执行将第一数据Dat1加载到所述缓冲器G_BUFF中的SIO1.putdat1。
要注意,对该方法的每次调用将返回缓冲器G_BUFF中的第一数据Dat1或第一数据Dat1的集合。该方法SIO1.putdat1的输入参数将是对缓冲器G_BUFF和第一数据标识符的字节的引用。
所述第一数据标识符允许选择将传送哪个第一数据Dat1。
步骤5)、6)和7)与针对上述第一实施例描述的那些步骤相同。
在步骤8)中,ICC卡选择第二应用App2作为运行的应用,从所述可重写非易失性存储器MEM1中删除所述第一应用App1,并从所述可重写非易失性存储器MEM1中删除所述第三应用App3。
选择和删除分别利用第二应用标识符AID2以及利用第一和第三应用标识符AID1、AID3来执行。
ICC卡适于接收:
- 来自所述终端T的具有第二AID2作为参数的APDU选择命令APDU_C5(图3中所图示的功能RX_APDU_C5);和
- 来自所述终端T的具有第一AID1作为参数的APDU删除命令APDU_C6(图3中所图示的功能RX_APDU_C6)。
- 来自所述终端T的具有第三AID3作为参数的APDU删除命令APDU_C7(图3中所图示的功能RX_APDU_C7)。
要注意,中间应用App3需要首先被删除,并且旧应用App1其次被删除,否则所述旧应用App1不能被删除。
在完成第一数据Dat1的传送和利用新应用App2对旧应用App1的更新后,仅第二应用封包PK2将保留在所述ICC卡中。
要理解,本发明不限于上述实施例,并且可以在不脱离本发明的范围的情况下进行变化和修改。在这方面,做出以下批注。
因此,可以使用用于ICC卡的JVM之外的其他虚拟机VM。因此,在非限制性实施例中,当第二应用App2已经获取第一数据Dat1时,可以执行一些健全性检查以确保第二应用App2的正确性。然后,如果第二应用App2通过了这些健全性检查,则选择其作为运行的应用。因此,在非限制性实施例中,第一数据Dat1被加载在所述缓冲器G_BUFF中,其中CRC(循环冗余校验)用于完整性检查。因此,在将所述第一数据Dat1存储在所述第二上下文CTX2中之前,将检查CRC。
因此,在非限制性实施例中,可以使用多个APDU命令来分别触发以下操作序列:刚在新应用App2存储到所述第二上下文CTX2中之后的新应用App2的选择、认证MUT_AUTH、加载PUT_DAT1。一个APDU命令因此与一个操作序列相关联。
因此,在非限制性实施例中,可以使用多个共享方法来执行相互认证MUT_AUTH,诸如在非限制性示例中用于向第二应用App2传输挑战的共享方法、用于由所述第二应用App2对所述挑战加密的共享方法、用于发回所获得的密文的共享方法、以及用于由所述第一应用App1对所述密文验证的另一共享方法。
因此,在另一个非限制性实施例中,第二可共享接口SI2可以在所述第三JavaCardTM应用App3内定义并且在所述第二JavaCardTM应用App2内导入。与之前描述的实施例相反,在该实施例中,第三JavaCardTM应用App3将不能被删除,因为它包括由第二JavaCardTM应用App2导入的第二可共享接口SI2定义。
这些实施例还意图覆盖被编程为执行上述方法的所述步骤的计算机。
如图1中所图示的一个或多个计算机程序产品PG可以包含在ICC卡中。计算机程序产品PG包括一组指令。因此,例如包含在ICC卡存储器中的所述一组指令可以使得ICC卡(更具体地在非限制性实施例中为虚拟机VM)执行方法M的不同步骤。
因此,本发明的一些实施例可以包括一个或多个以下优点:
- 其易于实现;
- 其允许利用新应用App2更新ICC卡,所述新应用App2将使用先前使用并且可能由旧应用App1更新的数据Dat1;
- 其允许通过在不丢失旧应用App1的数据Dat1的情况下将旧应用App1替换为新应用App2来添加附加特征或修正ICC卡中的错误;
- 从与ICC卡协作的终端观点来看,仅有的主要改变只是AID改变以选择新应用App2;
- 其允许删除中间应用App3和旧应用App1,并且因此使得在更新之后新应用App2在ICC卡中独立。

Claims (15)

1.一种包括可重写非易失性存储器(MEM1)和缓冲器(G_BUFF)的集成电路卡(ICC),所述可重写非易失性存储器(MEM1)包括其中存储包括第一数据(Dat1)的第一JavaCardTM应用(App1)的第一上下文(CTX1),
- 其中所述集成电路卡(ICC)适于在所述可重写非易失性存储器(MEM1)的第二上下文(CTX2)中存储(STOR1)由终端(T)发送的第二JavaCardTM应用(App2);
- 其中所述可重写非易失性存储器(MEM1)还包括在所述第一JavaCardTM应用(App1)内并且在所述第二JavaCardTM应用(App2)内导入的可共享接口(SI),所述可共享接口(SI)定义用于加载(PUT_DAT1)的至少一个共享方法(MTH1),
- 第二JavaCardTM应用(App2)适于从所述终端(T)接收至少一个APDU命令(APDU_C2)以通过集成电路卡(ICC)触发以下步骤:
- 请求与所述第一JavaCardTM应用(App1)相关的可共享接口(SI)以访问所述共享方法(MTH1),
- 调用用于加载(PUT_DAT1)的所述共享方法(MTH1)并且将第一JavaCardTM应用(App1)第一数据(Dat1)加载(PUT_DAT1)到所述缓冲器(G_BUFF)中;
- 从所述缓冲器(G_BUFF)提取(GET_DAT1)所述第一JavaCardTM应用(App1)第一数据(Dat1),并将所述第一数据(Dat1)存储(STOR2)到所述第二上下文(CTX2)中。
2.根据权利要求1所述的集成电路卡(ICC),其中所述集成电路卡(ICC)还适于:
- 向所述终端(T)发送指示所述至少一个APDU命令(APDU_C2)已被正确执行的第一APDU响应(APDU_R2)。
3.根据前述权利要求1或权利要求2所述的集成电路卡(ICC),其中所述集成电路卡(ICC)还适于:
- 选择第二JavaCardTM应用(App2)作为运行的应用;和
- 从所述可重写非易失性存储器(MEM1)中删除所述第一JavaCardTM应用(App1)。
4.根据前述权利要求1至2中任一项所述的集成电路卡(ICC),其中所述集成电路卡(ICC)还适于执行所述第一JavaCardTM应用(App1)和所述第二JavaCardTM应用(App2)之间的相互认证(MUT_AUTH)。
5.根据前述权利要求4所述的集成电路卡(ICC),其中所述集成电路卡(ICC)还适于在所述第二上下文(CTX2)中和在所述第一上下文(CTX1)中存储用于相互认证(MUT_AUTH)的秘密密钥(Sk)或一对私钥和公钥(Kpv,Kpu)。
6.根据前述权利要求1至2中任一项所述的集成电路卡(ICC),其中所述可重写非易失性存储器(MEM1)还包括:
- 第三JavaCardTM应用(App3);
- 在所述第一JavaCardTM应用(App1)内定义并在所述第三JavaCardTM应用(App3)内导入的第一可共享接口(SI1),所述第一可共享接口(SI1)包括用于所述加载(PUT_DAT1)的至少一个第一共享方法(MTH1)的声明;
- 在所述第二JavaCardTM应用(App2)内定义并且在所述第三JavaCardTM应用(App3)内导入的第二可共享接口(SI2),所述第二可共享接口(SI2)包括用于所述加载(PUT_DAT1)的至少一个第二共享方法(MTH3)的声明。
7.根据前述权利要求6所述的集成电路卡(ICC),其中第一JavaCardTM应用(App1)实现用于所述加载(PUT_DAT1)的至少一个第一共享方法(MTH1),并且第二JavaCardTM应用(App2)实现用于所述提取(GET_DAT1)和用于所述第一数据(Dat1)到所述第二上下文(CTX2)中的所述存储(STOR2)的至少一个方法(MTH2)。
8.根据前述权利要求1至2中任一项所述的集成电路卡(ICC),其中所述集成电路卡(ICC)是安全元件。
9.一种用于传送集成电路卡(ICC)内的第一JavaCardTM应用(App1)的第一数据(Dat1)以供所述集成电路卡(ICC)内的第二JavaCardTM应用(App2)使用的方法(M),所述集成电路卡(ICC)包括可重写非易失性存储器(MEM1)和缓冲器(G_BUFF),所述第一JavaCardTM应用(App1)被存储在所述可重写非易失性存储器(MEM1)中的第一上下文(CTX1)中,其中所述方法(M)包括:
- 在所述可重写非易失性存储器(MEM1)的第二上下文(CTX2)中存储由终端(T)发送的第二JavaCardTM应用(App2);
- 其中所述可重写非易失性存储器(MEM1)还包括在所述第一JavaCardTM应用(App1)内并且在所述第二JavaCardTM应用(App2)内导入的可共享接口(SI),所述可共享接口(SI)定义用于加载(PUT_DAT1)的至少一个共享方法(MTH1),
- 第二JavaCardTM应用(App2)适于从所述终端(T)接收至少一个APDU命令(APDU_C2)以通过集成电路卡(ICC)触发以下步骤:
- 请求与所述第一JavaCardTM应用(App1)相关的可共享接口(SI)以访问所述共享方法(MTH1),
- 调用用于加载(PUT_DAT1)的所述共享方法(MTH1)并且将第一JavaCardTM应用(App1)第一数据(Dat1)加载到所述缓冲器(G_BUFF)中;
- 从所述缓冲器(G_BUFF)提取所述第一JavaCardTM应用(App1)第一数据(Dat1),并将所述第一数据(Dat1)存储到所述第二上下文(CTX2)中。
10.根据前述权利要求9所述的方法(M),其中所述集成电路卡(ICC)还适于:
- 向所述终端(T)发送指示所述至少一个APDU命令(APDU_C2)已被正确执行的第一APDU响应(APDU_R2)。
11.根据前述权利要求9-10中任一项所述的方法(M),其中所述方法(M)还包括:
- 选择第二JavaCardTM应用(App2)作为运行的应用;和
- 从所述可重写非易失性存储器(MEM1)中删除所述第一JavaCardTM应用(App1)。
12.根据前述权利要求9或权利要求10所述的方法(M),其中所述方法(M)还包括执行所述第一JavaCardTM应用(App1)和所述第二JavaCardTM应用(App2)之间的相互认证。
13.根据前述权利要求12所述的方法(M),其中所述方法(M)还包括在所述第二上下文(CTX2)中和在所述第一上下文(CTX1)中存储用于相互认证(MUT_AUTH)的秘密密钥(Sk)或一对私钥和公钥(Kpv,Kpu)。
14.根据前述权利要求9至10中任一项所述的方法(M),其中在所述方法(M)的所有处理期间,在所述第二上下文(CTX2)中存在所述第一上下文(CTX1)的所述第一数据(Dat1)的重复以确保(ICC)卡将保持在相同的状态。
15.根据前述权利要求9至10中任一项所述的方法(M),其中针对所述加载(PUT_DAT1):
- 在第一可共享接口(SI1)内定义至少一个第一共享方法(MTH1),所述第一可共享接口(SI1)在所述第一JavaCardTM应用(App1)内定义并在第三JavaCardTM应用(App3)内导入;
- 在第二可共享接口(SI2)内定义至少一个第二共享方法(MTH3),所述第二可共享接口(SI2)在所述第二JavaCardTM应用(App2)内定义并在所述第三JavaCardTM应用(App3)内导入。
CN201680041135.XA 2015-05-13 2016-05-13 适于从第一应用传送第一数据以供第二应用使用的集成电路卡 Active CN107851044B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
EP15305724.5 2015-05-13
EP15305724.5A EP3093761A1 (en) 2015-05-13 2015-05-13 Integrated circuit card adapted to transfer first data from a first application for use by a second application
PCT/EP2016/060868 WO2016180971A1 (en) 2015-05-13 2016-05-13 Integrated circuit card adapted to transfer first data from a first application for use by a second application

Publications (2)

Publication Number Publication Date
CN107851044A CN107851044A (zh) 2018-03-27
CN107851044B true CN107851044B (zh) 2021-11-23

Family

ID=53546184

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201680041135.XA Active CN107851044B (zh) 2015-05-13 2016-05-13 适于从第一应用传送第一数据以供第二应用使用的集成电路卡

Country Status (5)

Country Link
US (1) US10489775B2 (zh)
EP (2) EP3093761A1 (zh)
KR (1) KR101995151B1 (zh)
CN (1) CN107851044B (zh)
WO (1) WO2016180971A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109446785B (zh) * 2018-10-15 2019-11-08 江苏恒宝智能系统技术有限公司 一种智能卡及其个人化数据的存储管理方法

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1272187A (zh) * 1998-04-15 2000-11-01 布尔Cp8公司 带管理一个虚拟存储器装置的芯片卡及相应的通信方法和协议
CN1763716A (zh) * 2004-10-21 2006-04-26 株式会社东芝 便携式电子装置以及更新便携式电子装置中的应用程序的方法
US7127605B1 (en) * 1999-05-10 2006-10-24 Axalto, Inc. Secure sharing of application methods on a microcontroller
CN101042738A (zh) * 2006-03-24 2007-09-26 中国银联股份有限公司 一种实现智能卡多应用的方法及数据处理装置
JP2014052824A (ja) * 2012-09-06 2014-03-20 Dainippon Printing Co Ltd Icカードシステムおよびicカード

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6256690B1 (en) * 1999-01-15 2001-07-03 Todd Carper System and method for facilitating multiple applications on a smart card
US6701334B1 (en) * 1999-07-13 2004-03-02 Sun Microsystems, Inc. Methods and apparatus for implementing individual class loaders
WO2003093980A2 (en) * 2002-04-30 2003-11-13 Koninklijke Philips Electronics N.V. Apparatus and method for fetching data from memory
US7165727B2 (en) * 2004-02-24 2007-01-23 Sun Microsystems, Inc. Method and apparatus for installing an application onto a smart card
KR100651730B1 (ko) * 2004-11-20 2006-12-01 한국전자통신연구원 호환 usim 카드 및 호환 usim 카드의 api 제공 방법
JP4972047B2 (ja) * 2008-07-15 2012-07-11 富士通株式会社 ストレージシステム,ストレージシステムのコピー制御方法,及びストレージシステムのコピー制御部
JP2011081561A (ja) * 2009-10-06 2011-04-21 Canon Inc 情報処理装置
DE102011122242A1 (de) * 2011-12-23 2013-06-27 Giesecke & Devrient Gmbh Verfahren zur Kommunikation mit einer Applikation auf einem portablen Datenträger sowie ein solcher portabler Datenträger
CN102880495A (zh) * 2012-10-15 2013-01-16 华为终端有限公司 移动终端及其软件升级方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1272187A (zh) * 1998-04-15 2000-11-01 布尔Cp8公司 带管理一个虚拟存储器装置的芯片卡及相应的通信方法和协议
US7127605B1 (en) * 1999-05-10 2006-10-24 Axalto, Inc. Secure sharing of application methods on a microcontroller
CN1763716A (zh) * 2004-10-21 2006-04-26 株式会社东芝 便携式电子装置以及更新便携式电子装置中的应用程序的方法
CN101042738A (zh) * 2006-03-24 2007-09-26 中国银联股份有限公司 一种实现智能卡多应用的方法及数据处理装置
JP2014052824A (ja) * 2012-09-06 2014-03-20 Dainippon Printing Co Ltd Icカードシステムおよびicカード

Also Published As

Publication number Publication date
US10489775B2 (en) 2019-11-26
CN107851044A (zh) 2018-03-27
KR20180015647A (ko) 2018-02-13
KR101995151B1 (ko) 2019-09-30
EP3320437A1 (en) 2018-05-16
EP3093761A1 (en) 2016-11-16
WO2016180971A1 (en) 2016-11-17
US20180174132A1 (en) 2018-06-21
EP3320437B1 (en) 2023-01-11

Similar Documents

Publication Publication Date Title
JP6419767B2 (ja) 複数のサービスプロバイダのトラステッドサービスマネジャーとセキュアエレメントとをインターフェース接続するためのシステム、方法、およびコンピュータプログラム製品
EP2988470B1 (en) Automatic purposed-application creation
JP6290090B2 (ja) 安全要素を管理するためのシステム、方法、およびコンピュータプログラム製品
EP2764461B1 (en) Secure element comprising separated containers and corresponding method
JP5607170B2 (ja) 安全なポータブルオブジェクト
CN106133739B (zh) 数据到安全元件的非易失性存储器中的加载的安全保护
US20150220729A1 (en) Method for Activating an Operating System in a Security Module
US9250930B2 (en) Configuration method for an electronic entity
US10248795B2 (en) Implementing method for JavaCard application function expansion
WO2022165771A1 (zh) 虚拟电子卡管理方法、系统及安全芯片、终端和存储介质
CN107864109B (zh) 一种nfc智能卡应用数据迁移方法
WO2007119594A1 (ja) セキュアデバイス及び読み書き装置
US10025575B2 (en) Method for installing security-relevant applications in a security element of a terminal
CN107851044B (zh) 适于从第一应用传送第一数据以供第二应用使用的集成电路卡
KR102099739B1 (ko) 보안 엘리먼트를 관리하는 방법
KR20230019032A (ko) 사전 개인화된 보안 요소 및 내장된 개인화
CN114925368A (zh) 用于启动应用程序的安全元件和方法
EP2985724B1 (en) Remote load and update card emulation support
US20240211578A1 (en) Protection of an electronic device
CN118246040A (zh) 电子设备的保护
EP3926504A1 (en) Hiding and unhiding java card applet instances
CN118246039A (zh) 电子设备的保护
JP2023046168A (ja) Icカード,icチップおよび認証結果の記録方法
KR20240027149A (ko) 보안 요소의 개인화
CN114513294A (zh) 安全元件和方法

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
CP01 Change in the name or title of a patent holder
CP01 Change in the name or title of a patent holder

Address after: French Meudon

Patentee after: Thales Digital Security France

Address before: French Meudon

Patentee before: GEMALTO S.A.

TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20230410

Address after: French Meudon

Patentee after: Thales Digital Security France Easy Stock Co.

Address before: French Meudon

Patentee before: Thales Digital Security France