CN104102507A - 一种JavaCard应用功能扩展的实现方法 - Google Patents

一种JavaCard应用功能扩展的实现方法 Download PDF

Info

Publication number
CN104102507A
CN104102507A CN201410286117.0A CN201410286117A CN104102507A CN 104102507 A CN104102507 A CN 104102507A CN 201410286117 A CN201410286117 A CN 201410286117A CN 104102507 A CN104102507 A CN 104102507A
Authority
CN
China
Prior art keywords
application
expanded application
expanded
expansion interface
command
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
CN201410286117.0A
Other languages
English (en)
Other versions
CN104102507B (zh
Inventor
陆舟
于华章
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.)
Feitian Technologies Co Ltd
Original Assignee
Feitian Technologies Co Ltd
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 Feitian Technologies Co Ltd filed Critical Feitian Technologies Co Ltd
Priority to CN201410286117.0A priority Critical patent/CN104102507B/zh
Publication of CN104102507A publication Critical patent/CN104102507A/zh
Priority to PCT/CN2015/081834 priority patent/WO2015196946A1/zh
Priority to US15/358,039 priority patent/US10248795B2/en
Application granted granted Critical
Publication of CN104102507B publication Critical patent/CN104102507B/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/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • 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
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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
    • G06F9/44526Plug-ins; Add-ons

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Stored Programmes (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开一种JavaCard应用功能扩展的实现方法,注册过程包括:扩展应用接收到注册命令时对随机数进行处理,并将处理结果、扩展应用标识和扩展接口编号发送给主应用;主应用对处理结果进行验证,如验证通过则当与扩展应用标识对应的扩展应用已安装时,根据扩展编号设置扩展点的位,获取并保存扩展应用的句柄;扩展应用注册的扩展接口的状态保存到缓存区中;调用过程包括:主应用接收到功能命令后在运行原程序过程中如检测到扩展点,则判断该扩展点的位是否已设置,是则当对应的扩展接口可用时根据扩展应用的句柄调用扩展应用,主应用根据扩展应用返回的结果判断是否继续运行原程序,是则继续,否则给运行环境返回执行结果及信息,结束。

Description

一种JavaCard应用功能扩展的实现方法
技术领域
本发明涉及JavaCard应用领域,尤其涉及一种JavaCard应用功能扩展的实现方法。
背景技术
智能卡的存储器体系主要是由读写存储器(RAM)、只读存储器(ROM)以及可擦写编程存储器(EEPROM)组成。Java Card是可以运行Java程序代码的智能卡。保存在Java Card上EEPROM中的应用程序可以通过GlobalPlatform标准指令(简称GP指令)进行下载、安装和删除的操作。掩膜应用是存储在ROM中的无法删除的应用;非掩膜应用是存储在flash与e2p中的应用。
现有技术中,如果Java Card使用过程中发现原有应用存在功能缺失或错误,可以通过删除原应用程序,下载并安装新的应用程序来解决问题,但是该方法会导致用户使用过程中的数据丢失。同时,如果Java Card上的应用程序本身占用的空间较大,而修改的内容较小时,则整个应用程序需要在修改后重新下载,安装及个人化,因而浪费时间。对于掩摸的Java Card卡,将代码写入ROM后,无法删除,如果有缺陷整个应用将无法使用。同样,在COS(英文全称:ChipOperating System,中文全称:卡片操作系统)开发过程中,使用Java语言实现的无论是卡片管理、JCRE(英文全称:Java Card Runtime Environment,中文全称:Java Card运行环境)还是JCVM(英文全称:Java Card Virtual Machine,中文全称:Java Card虚拟机)模块,都有可能存储缺陷,一但掩摸后程序将无法修改。
发明内容
本发明的目的是为了克服现有技术的不足,提供一种JavaCard应用功能扩展的实现方法。
本发明提供了一种JavaCard应用功能扩展的实现方法,包括注册过程和调用过程,扩展应用和主应用激活后开始工作,其中所述注册过程包括:
步骤S1:当所述扩展应用接收到运行环境派遣的注册命令时,所述扩展应用获取所述主应用生成的随机数;
步骤S2:所述扩展应用对所述随机数进行处理,并将处理结果、所述注册命令中的扩展应用标识和扩展接口编号发送给主应用;
步骤S3:所述主应用根据所述生成的随机数对接收到的所述处理结果进行验证,如验证通过则执行步骤S4,否则报错,结束;
步骤S4:所述主应用根据所述接收到的扩展应用标识判断对应的扩展应用是否已安装,是则执行步骤S5,否则报错,结束;
步骤S5:所述主应用根据所述扩展编号设置主应用的缓存区中对应的扩展点的位,获取并保存所述扩展应用的句柄,给所述扩展应用返回关联成功信息;
步骤S6:所述扩展应用注册所述扩展接口的状态,并将所述扩展接口的状态保存到所述主应用的所述缓存区中;
所述调用过程包括:
步骤S7:所述主应用接收到运行环境派遣的功能命令时,开始运行所述原程序;
步骤S8:当所述主应用检测到扩展点时,所述主应用判断所述缓存区中对应的扩展点的位是否已设置,是则执行步骤S9,否则继续运行原程序,返回步骤S8;
步骤S9:所述主应用根据所述缓存区中与所述扩展点对应的扩展接口编号所对应的扩展接口的状态判断对应的扩展接口是否可用,是则执行步骤S10,否则继续运行原程序,返回步骤S8;
步骤S10:所述主应用根据保存的所述扩展应用的句柄调用对应的扩展应用,所述扩展应用调用与所述扩展接口编号对应的扩展接口;
步骤S11:所述主应用根据所述扩展应用调用与所述扩展接口编号对应的扩展接口返回的结果判断是否继续运行原程序,是则继续运行原程序,返回步骤S8,否则给运行环境返回执行结果及信息,结束。
进一步地,在所述步骤S1之前还包括:
当扩展应用接收到运行环境派遣的认证命令时,执行步骤A1-步骤A4;
步骤A1:所述扩展应用判断安全通道实例是否已经实例化,是则执行步骤A3,否则执行步骤A2;
步骤A2:所述扩展应用获取安全通道实例并将其存储在非易失性缓存中,执行步骤A3;
步骤A3:所述扩展应用根据所述认证命令得到送往卡外的数据长度,从安全域执行所述认证命令所返回的结果中获取相应的所述数据长度的数据并将其存储在apdu缓存中;
步骤A4:所述扩展应用调用通讯接口将结果数据发送到卡外,并设置安全级别,等待接收命令。
进一步地,所述步骤A3包括:
步骤A3-1:所述扩展应用判断所述认证命令的类型,如为第一认证命令则执行步骤A3-2,如为第二认证命令则执行步骤A3-3;
步骤A3-2:所述扩展应用根据所述第一认证命令得到送往卡外的数据长度,根据所述数据长度从安全域执行所述第一认证命令所返回的结果中获取相应长度的数据并将其存储在apdu缓存中,执行步骤A4;
步骤A3-3:所述扩展应用根据所述第二认证命令得到需要送往卡外的数据长度为00,执行步骤A4。
进一步地,如认证命令为第一认证命令,则所述步骤A4包括:所述扩展应用调用通讯接口将所述apdu缓存中的数据方式到卡外,设置安全级别的值为00;
如认证命令为第二认证命令,则所述步骤A4包括:所述扩张应用调用通讯接口将正确信息发送到卡外,设置安全级别的值为非00。
进一步地,所述步骤S1中获取主应用生成的随机数之前还包括:所述扩展应用获取安全级别,并判断安全级别是否满足条件,是则获取主应用生成的随机数,否则调用通讯接口将安全条件不满足信息发送到卡外,等待接收命令。
进一步地,所述判断安全级别是否满足条件,具体为:通过调用第一接口函数获取安全级别的值,判断所述获取的值是否为00,是则安全级别不满足条件,否则安全级别满足条件。
进一步地,在所述步骤S1之前还包括:步骤B:当扩展应用接收到选择命令时,调用通讯接口将文件控制信息发送到卡外,等待接收命令。
进一步地,在所述步骤B之前当运行环境接收到APDU命令时执行步骤P1;
步骤P1:所述运行环境判断接收到的所述APDU命令是否为选择命令,是则执行步骤P2,否则执行步骤P4;
步骤P2:所述运行环境根据所述选择命令中的应用标识在JavaCard中的应用表中查找对应的应用,并判断是否找到,是则执行步骤P3,否则执行步骤P4;
步骤P3:所述运行环境从找到的所述应用表中获取与所述应用标识对应的应用句柄,调用当前激活应用的deselect()接口,再根据所述与所述应用标识对应的应用句柄调用对应应用的select函数,如果所述select函数执行正确,则将与所述应用标识对应的应用置为当前激活应用,执行步骤P4;如果所述select函数执行不正确,则所述运行环境捕获异常,异常处理完成后,执行步骤P4;
步骤P4:所述上层将接收到的所述APDU命令派遣给当前激活应用。
进一步地,所述步骤S2包括:所述扩展应用使用保存的密钥对所述获取的随机数进行加密,并将加密结果、所述注册命令中的扩展应用标识和扩展接口编号发送给主应用;
所述步骤S3包括:所述主应用使用保存的密钥对接收到的所述加密结果进行解密,如解密成功则判断解密得到的随机数与所述生成的随机数是否相同,是则执行步骤S4,否则给所述扩展应用返回错误信息;如解密失败则给所述扩展应用返回错误信息。
进一步地,所述步骤S2包括:所述扩展应用使用保存的私钥对所述获取的随机数进行签名,并将签名结果、所述注册命令中的扩展应用标识和扩展接口编号发送给主应用;
所述步骤S3包括:所述主应用使用保存的公钥对接收到的所述签名结果进行解密,如解密成功则对所所述生成的随机数进行哈希计算,判断哈希结果与解密结果是否相同,是则执行步骤S4,否则返回错误信息,如解密失败则给所述扩展应用返回错误信息。
进一步地,所述步骤S5还包括:所述主应用给所述扩展应用返回成功信息;
所述步骤S5与步骤S6之间包括:所述扩展应用根据所述主应用返回的信息判断关联是否成功,是则执行步骤S6,否则调用通讯接口将错误信息发送到卡外,结束。
进一步地,所述步骤S6之后包括:判断是否保存成功,是则调用通讯接口将注册成功信息发送到卡外,等待接收指令,否则运行环境会捕获异常,异常处理完成后,结束。
进一步地,所述步骤S6之前包括:
步骤S6-1:所述扩展应用根据注册命令中的数据域判断对应的扩展接口是否已注册,是则调用通讯接口将错误信息发送到卡外,结束,否则执行步骤S6。
进一步地,所述步骤S6包括:所述扩展应用调用所述主应用的第三函数,传入所述扩展接口编号和所述扩展接口的状态;所述主应用检测到所述第三函数被调用后,检查与所述扩展接口编号对应的扩展点是否存在,是则根据所述扩展接口的状态修改扩展点的状态,给所述扩展应用返回正确信息,返回步骤S1,否则给所述扩展应用返回错误信息,结束。
进一步地,所述步骤S6替换为:所述扩展应用判断所述注册命令是否合法,是则等待接收命令,否则调用通讯接口将错误信息发送到卡外,结束;
所述方法还包括:当所述扩展应用接收到关联命令时执行步骤D1;
步骤D1:所述扩展应用根据所述关联命令中的数据域判断对应的扩展接口是否已注册,是则调用通讯接口将错误信息发送到卡外,结束,否则执行步骤D2;
步骤D2:所述扩展应用调用所述主应用的第三函数,传入所述扩展接口编号和所述扩展接口的状态;所述主应用检测到第三函数被调用后,判断与所述扩展接口编号对应的扩展点是否存在,是则根据所述扩展接口的状态修改扩展点的状态,给所述扩展应用返回正确信息,等待接收命令,否则给所述扩展应用返回错误信息,结束。
进一步地,根据所述扩展接口的状态修改扩展点的状态,具体为:将所述扩展点的状态设置为活动状态;
所述步骤S9具体为:所述主应用判断所述扩展点的状态是否为活动状态,是则对应的扩展接口可用,否则对应的扩展接口不可用。
进一步地,所述步骤S5中的获取并保存所述扩展应用的句柄,包括:所述主应用通过所述扩展应用标识和预定参数调用第一标准接口获取所述扩展应用的句柄并保存。
进一步地,所述主应用调用第一标准接口获取所述扩展应用的句柄并保存,具体包括:
步骤L1、所述运行环境根据所述扩展应用标识在所述应用列表中根据查找是否有对应的应用,是则执行步骤L2,否则给主应用返回错误信息;
步骤L2、所述运行环境判断与扩展应用标识对应的应用是否为Shareable类型的应用,是则执行步骤L3,否则给主应用返回错误信息;
步骤L3、所述运行环境根据所述应用列表中存储的应用句柄和所述预定参数,调用所述扩展应用的第二标准接口;
步骤L4、当所述扩展应用所述第二标准接口被调用时,所述扩展应用检查调用所述第二标准接口的上一个应用是否符合预设要求,是则执行步骤L5,否则给所述运行环境返回错误信息;
步骤L5、所述扩展应用判断所述预定参数的值是否为0,是则给所述运行环境返回扩展应用的句柄,执行步骤L6;否则给所述运行环境返回错误信息;
步骤L6、所述运行环境将所述扩展应用的句柄返回给所述主应用,所述接收所述扩展应用的句柄并保存。
进一步地,所述步骤S9与步骤S10之间包括:所述主应用判断与所述扩展应用标识对应的扩展应用是否为所述Shareable类型的应用,是则执行步骤S10,否则继续运行原程序,返回步骤S8。
本发明与现有技术相比,具有以下优点:
本方案提供的是一种在掩膜后可不丢失用户个人化数据的情况下进行更新应用程序的实现方法;在掩膜应用出错后可以继续使用,适用于掩膜卡和非掩膜卡。
附图说明
图1和图2为本发明实施例一提供的一种JavaCard应用功能扩展的实现方法流程图;
图3为本发明实施例一提供的一种JavaCard应用功能扩展的实现方法中注册扩展应用的另一种实现流程图;
图4为本发明实施例一提供的命令派遣与选择过程的实现流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
实施例一
本发明实施例一提供一种JavaCard应用功能扩展的实现方法,包括注册过程和调用过程两个过程,扩展应用和主应用在激活后开始工作,其中,注册过程如图1所示,包括:
步骤100:扩展应用等待接收命令;
步骤101:当扩展应用接收到运行环境派遣的命令时,扩展应用判断命令的类型,如为选择命令则执行步骤102,如为认证命令则执行步骤103;如为注册命令则执行步骤107;
具体的,在本实施例中,命令为APDU格式,判断命令的类型包括:如命令的INS为0xA4则为选择命令,如命令的CLA与INS为8482或8050则为认证命令,如INS为0xC0则为注册命令;
例如,选择命令为00 A4 04 00;认证命令为8050 00 00 08 03af7a7d446a24f6和84820000 10 619f9d758006f9b6 c290df14738f005f;注册命令为00C00000 020102,其中0102分别表示扩展应用实现的第一扩展接口、第二扩展接口,对应主应用的扩展点分别是第一扩展点,第二扩展点;
步骤102:扩展应用调用通讯接口将FCI(英文全称:File Control Information,中文全称:文件控制信息)发送到卡外,返回步骤100;
在本实施例中,步骤102具体包括:扩展应用把FCI信息组织好后,直接调用apdu.setOutGoingAndSend()接口,将组织好的数据发送到卡外;
具体的,如选择命令的数据域为D0000000000601则表示选择的是主应用;如选择命令的数据域为D000000000060101则表示选择的是扩展应用;
步骤103:扩展应用判断安全通道实例是否已经实例化,是则执行步骤105,否则执行步骤104;
步骤104:扩展应用获取安全通道实例并将其存储在非易失性缓存中,执行步骤105;
具体的,在本实施例中,扩展应用调用GPSystem.getSecureChannel()来获取安全通道实例;
步骤105:扩展应用根据认证命令得到送往卡外的数据长度,从安全域执行认证命令所返回的结果中获取相应的数据长度的数据并将其存储在apdu缓存中;
在本实施例中,扩展应用将接收到的认证命令作为参数通过安全通道实例调用安全通道实例函数processSecurity(APDu apdu)得到送往卡外的数据长度;processsecurity的实现由安全通道实例完成,执行成功后,会返回需要送往卡外的数据及数据长度;
具体的,本实施例中步骤105包括:
步骤105-1:扩展应用判断认证命令的类型,如为第一认证命令则执行步骤105-2,如为第二认证命令则执行步骤105-3;
具体的,本实施例中的第一认证命令为:8050 00 00 08 03af7a7d446a24f6;第二认证命令为:84820000 10 619f9d758006f9b6 c290df14738f005f;
步骤105-2:扩展应用根据第一认证命令得到送往卡外的数据长度,根据数据长度从安全域执行第一认证命令所返回的结果中获取相应长度的数据并将其存储在apdu缓存中;
步骤105-3:扩展应用根据第二认证命令得到需要送往卡外的数据长度00;
步骤106:扩展应用调用通讯接口将结果数据发送到卡外,并设置安全级别,返回步骤100;
在本实施例中,如为第一认证命令8050 00 00 08 03af7a7d446a24f6,其中数据域为:主机随机数03af7a7d446a24f6;则步骤105具体为:扩展应用将apdu缓存中的数据发送到卡外,设置安全级别的值为00;apdu缓存中的数据为:00007118035454911734 FF02 000C 4081ED9718CD 48257D1BDAA46CAA,数据解析结果为:密钥分散数据:00007118035454911734;当前使用密钥版本:FF;安全通道协议版本:2;计数器:000c;卡内随机数:4081ed9718cd;卡内密文:48257d1bdaa46caa;
如为第二认证命令84820000 10 619f9d758006f9b6 c290df14738f005f,其中,619f9d758006f9b6为卡外密文,c290df14738f005f为mac数据;则步骤105具体为:扩展应用返回正确信息,设置安全级别的值为非00;
步骤107:扩展应用获取安全级别,判断安全级别是否满足条件,是则执行步骤108,否则调用通讯接口将安全条件不满足信息发送到卡外,返回步骤100;
具体的,在本实施例中,扩展应用通过调用第一接口函数获取安全级别的值,判断获取的值是否为00,是则安全级别不满足条件,否则安全级别满足条件;安全级别的初始值为00;具体的,第一接口函数为SecureChannel.getSecurityLevel();
步骤108:扩展应用获取主应用生成的随机数;
具体的,在本实施例中,扩展应用调用主应用的第一函数,主应用监测到第一函数被调用时,生成随机数并返回,同时主应用保存该随机数用于后续的验证过程;
第一函数具体为getRandom(),用于获取随机数,具体包括:getRandom()首先调用RandomData.getInstance(byte algorithm)接口,得到一个randomData的实例rndInstance,getRandom()再调用rndInstance的generateData(byte[]buffer,short offset,short length)接口获取随机数;
例如,本实施例中的随机数为:48257d1bdaa46caa;
步骤109:扩展应用使用保存的密钥对该随机数进行加密;
在本实施例中,扩展应用在进行个人化时已设置了密钥的类型;优选的,本实施例中的密钥为对称密钥,例如3DES密钥:404142434445464748494A4B4C4D4E4F;加密结果为:6719758F25E91945;
步骤110:扩展应用将注册命令中的扩展应用标识、扩展接口编号和加密结果发送给主应用;
具体的,本实施例中,扩展应用将扩展应用标识、扩展接口编号和加密结果作为参数调用主应用的第二函数为extendInstall(),第二函数用于获取注册扩展应用接口;扩展应用通过调用主应用的第二函数对加密结果进行解密;
本实施例中的扩展应用标识和扩展接口编号可以在同一条注册命令中也可以在不同的命令中;
步骤111:主应用使用保存的密钥对加密结果进行解密,如解密成功则执行步骤112,如解密失败则给扩展应用返回错误信息,执行步骤115;
本实施例中,主应用中保存的密钥与扩展应用中的密钥相对应;
步骤112:主应用判断解密得到的随机数与保存的随机数是否相同,是则执行步骤113,否则给扩展应用返回错误信息,执行步骤115;
在本实施例中,步骤112是验证扩展应用的合法性,防止恶意的扩展应用破坏主应用的执行逻辑,产生不可预期的结果;
步骤113:主应用根据扩展应用标识判断对应的扩展应用是否已安装,是则执行步骤114,否则给扩展应用返回错误信息,执行步骤115;
具体的,在本实施例中,主应用根据扩展应用标识调用JCSystem.lookupAID(byte[]buffer,short offset,byte length),如果返回值为空,则表示对应的扩展应用未安装,返回错误信息给扩展应用,执行步骤115;否则执行步骤114;
在本实施例中,扩展应用中有不同的扩展接口,不同的扩展接口对应不同的扩展接口编号,每个扩展接口有相应的状态;
步骤114:主应用根据扩展编号设置主应用的缓存区中对应的扩展点的位,获取并保存扩展应用的句柄,给扩展应用返回关联成功信息,执行步骤115;
具体的,主应用通过标准接口在原程序中设置扩展接口编号,实现与扩展接口标识对应的扩展应用进行关联,本实施例中的标准接口为JCSystem.getAppletShareableInterfaceObject(AID serverAID,byte parameter);
在本实施例中,获取并保存扩展应用的句柄,具体为:所述主应用通过所述扩展应用标识和预定参数调用第一标准接口获取所述扩展应用的句柄并保存;第一标准接口具体为:JCSystem.getAppletShareableInterfaceOjbect(AIDserverAID,byte parameter),实现过程包括:
步骤L1、运行环境根据扩展应用标识(serverAID)在应用列表中查找是否有对应的应用,是则执行步骤L2,否则给主应用返回错误信息;
步骤L2、运行环境判断与扩展应用标识对应的应用是否为Shareable类型的应用,是则执行步骤L3,否则给主应用返回错误信息;
步骤L3、运行环境根据应用列表中存储的应用句柄和预定参数,调用扩展应用的第二标准接口;
步骤L4、当扩展应用第二标准接口被调用时,扩展应用检查调用第二标准接口的上一个应用是否符合预设要求,是则执行步骤L5,否则给运行环境返回错误信息;
步骤L5、扩展应用判断预定参数(parameter)的值是否为0,是则给运行环境返回扩展应用的句柄,执行步骤L6;否则给运行环境返回错误信息;
步骤L6、运行环境将扩展应用的句柄返回给主应用,接收扩展应用的句柄并保存。
步骤115:扩展应用根据主应用返回的信息判断关联是否成功,是则执行步骤116,否则给调用通讯接口将错误信息发送到卡外,结束;
在本实施例中,如主应用返回的信息为成功信息则关联成功,如主应用返回的信息为错误信息则关联失败;运行环境接收到错误信息后会重新组织再发向卡外;
步骤116:扩展应用注册扩展接口的状态;
具体的,在本实施例中,扩展接口的状态包括为锁定或活动;当扩展接口的状态为锁定时,扩展接口不可用;当扩展接口的状态为活动时,扩展接口可用;
在本实施例中,步骤116之前包括:扩展应用根据注册命令的数据域判断对应的扩展接口是否已注册,是则调用通讯接口将错误信息发送到卡外,结束,否则执行步骤116;
本实施例中扩展接口的编号为:01、02,扩展接口的状态为锁定或活动;
步骤117:扩展应用将扩展接口的状态保存到主应用的缓存区中并判断是否保存成功,是则调用通讯接口将注册成功信息发送到卡外,返回步骤100,否则调用通讯接口将错误信息发送到卡外,结束;
相应的,本实施例中,步骤117具体为:扩展应用调用主应用的第三函数,传入扩展接口编号和扩展接口的状态;主应用检测到第三函数被调用后,根据第三函数的参数检查扩展接口编号对应的扩展点是否存在,是则根据传入的扩展接口的状态修改扩展点的状态,调用通讯接口将注册成功信息发送到卡外,返回步骤100,否则给运行环境返回错误信息,结束;第三函数具体为:booleansetPatchPointSwitch(byte patchPoint,boolean ppSwitch);
在本实施例中,运行环境接收到错误信息后会捕获异常,异常处理完成后,结束;
在本实施例中,返回错误信息表示执行错误,是报错的一种实现方式;
在本实施例中,步骤116注册过程还可以通过选择注册默认扩展接口来实现;即扩展应用标识和扩展接口编号在不同的命令中,则步骤116-步骤117替换为:
步骤116’:扩展应用判断注册命令是否合法,是则返回步骤100,否则调用通讯接口将错误信息发送到卡外,结束;
具体的,如注册命令为00c00000 00则合法;
如在步骤101中扩展应用判断命令的类型为关联命令则执行步骤117’:
例如,本实施例中的关联命令为00D00000 02 0102;
步骤117’:扩展应用根据关联命令中的数据域判断对应的扩展接口是否已注册,是则调用通讯接口将错误信息发送到卡外,结束,否则执行步骤118’;
在本实施例中,关联命令中的数据域为扩展接口编号;
步骤118’:扩展应用调用主应用的第三函数,传入扩展接口编号和扩展接口状态;主应用检测到第三函数被调用后,判断与扩展接口编号对应的扩展点是否存,是则根据传入的扩展接口的状态修改扩展点的状态,给所述扩展应用返回正确信息,返回步骤100,否则给扩展应用返回错误信息,结束;
在本实施例中,扩展点与扩展接口编号一一对应;
其中,调用扩展应用如图2所示,包括:
步骤201:当主应用接收到运行环境派遣的功能命令时开始运行原程序;
在本实施例中,原程序是用于实现功能命令的具体程序代码;
步骤202:当主应用检测到原程序中的扩展点时,主应用判断缓存区中对应的扩展点的位是否已设置,是则执行步骤203,否则继续运行原程序,返回步骤202;
步骤203:主应用根据缓存区中与扩展点对应的扩展接口编号所对应的扩展接口的状态判断对应的扩展接口是否可用,是则执行步骤204,否则继续执行原程序,返回202;
在本实施例中,步骤203具体包括:主应用根据检测到的扩展点,获取对应的扩展接口编号所对应的扩展接口的状态,判断扩展接口的状态的类型,如为锁定则扩展应用不可用;如为活动则扩展应用可用;
步骤204:主应用根据保存的扩展应用的句柄调用对应的扩展应用,扩展应用再调用与扩展接口编号对应的扩展接口;
具体的,在本实施例中,步骤203与步骤204之间包括:主应用判断与扩展应用标识对应的扩展应用是否为Shareable类型的应用,是则执行步骤204,否则继续运行原程序,返回步骤201。
步骤205:主应用根据扩展应用调用与扩展接口编号对应的扩展接口所返回结果判断是否继续运行原程序,是则继续运行原程序,返回步骤202,否则给运行环境返回执行结果及信息,结束;
具体的,在本实施例中,如扩展应用返回0则主应用不需继续运行原程序,否则继续运行原程序。
在本实施例中,如图3所示,步骤109-步骤112可替换为:
步骤109’:扩展应用使用保存的私钥对该随机数进行签名;
在本实施例中,扩展应用在进行个人化时已设置了密钥的类型;优选的,本实施例中的密钥为非对称密钥;
步骤110’:扩展应用将注册命令中的扩展应用标识、扩展接口编号和签名结果发送给主应用;
具体的,本实施例中,扩展应用将扩展应用标识、扩展接口编号和签名结果作为参数调用主应用的第二函数为extendInstall(),第二函数用于获取注册扩展应用接口;扩展应用通过调用主应用的第二函数对签名结果进行验证;
步骤111’:主应用使用保存的公钥对签名结果进行解密,如解密成功则执行步骤112’,如解密失败则给扩展应用返回错误信息,执行步骤115;
本实施例中,主应用中保存的公钥与扩展应用中的私钥相对应;
步骤112’:主应用对保存的随机数进行哈希计算,判断哈希结果与解密结果是否相同,是则执行步骤113,否则给扩展应用返回错误信息,执行步骤115。
在本实施例中,对随机数的进行处理具体以对随机数进行加密和进行签名为例进行说明。
在本实施例中,在步骤100之前当运行环境接收到APDU命令时需要进行相应处理,具体处理过程如图4所示,包括:
步骤a:运行环境判断接收到的APDU命令时是否为选择命令,是则执行步骤b,否则执行步骤d;
步骤b:运行环境根据选择命令中的应用标识在JavaCard中的应用表中查找对应的应用,并判断是否找到,是则执行步骤c,否则执行步骤d;
具体的,运行环境检查是否满足以下条件,CLS=0x00、INS=0xA4、P1=0x04、P2=0x00、Lc=length(应用标识),且5≤lc≤16,如果不满足则未找到对应的应用,否则查找到对应的应用;
步骤c:运行环境从应用表中获取应用标识对应的应用句柄,调用当前激活应用的deselect()接口,再根据与应用标识对应的应用句柄调用对应应用的select函数,如果select函数执行正确,则将与应用标识对应的应用置为当前激活应用,执行步骤d;如果select函数执行不正确,则运行环境捕获异常,异常处理完成后,执行步骤d;
本实施例中的deselect()用于取消选择运行环境中当前的激活应用;select函数用于选择运行环境中当前的激活应用;如应用标识对应的为主应用则当前激活应用为主应用,如AID对应的为扩展应用则当前激活应用为扩展应用;例如AID为D0000000000601则当前激活应用为主应用;如AID为D000000000060101则当前激活应用为扩展应用;主应用和/或扩展应用激活后开始工作;
步骤d:将该APDU命令派遣给当前激活应用。
本实施例的方法也适用于类似于ISD之类的应用,即在类似于ISD之类的应用中设置扩展点,掩膜或者下载COS后,仍然可以再下载一个扩展应用,不影响其他应用的工作。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明公开的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。

Claims (19)

1.一种JavaCard应用功能扩展的实现方法,其特征在于,包括注册过程和调用过程,扩展应用和主应用激活后开始工作,其中所述注册过程包括:
步骤S1:当所述扩展应用接收到运行环境派遣的注册命令时,所述扩展应用获取所述主应用生成的随机数;
步骤S2:所述扩展应用对所述随机数进行处理,并将处理结果、所述注册命令中的扩展应用标识和扩展接口编号发送给主应用;
步骤S3:所述主应用根据所述生成的随机数对接收到的所述处理结果进行验证,如验证通过则执行步骤S4,否则报错,结束;
步骤S4:所述主应用根据所述接收到的扩展应用标识判断对应的扩展应用是否已安装,是则执行步骤S5,否则报错,结束;
步骤S5:所述主应用根据所述扩展编号设置主应用的缓存区中对应的扩展点的位,获取并保存所述扩展应用的句柄,给所述扩展应用返回关联成功信息;
步骤S6:所述扩展应用注册所述扩展接口的状态,并将所述扩展接口的状态保存到所述主应用的所述缓存区中;
所述调用过程包括:
步骤S7:所述主应用接收到运行环境派遣的功能命令时,开始运行所述原程序;
步骤S8:当所述主应用检测到扩展点时,所述主应用判断所述缓存区中对应的扩展点的位是否已设置,是则执行步骤S9,否则继续运行原程序,返回步骤S8;
步骤S9:所述主应用根据所述缓存区中与所述扩展点对应的扩展接口编号所对应的扩展接口的状态判断对应的扩展接口是否可用,是则执行步骤S10,否则继续运行原程序,返回步骤S8;
步骤S10:所述主应用根据保存的所述扩展应用的句柄调用对应的扩展应用,所述扩展应用调用与所述扩展接口编号对应的扩展接口;
步骤S11:所述主应用根据所述扩展应用调用与所述扩展接口编号对应的扩展接口返回的结果判断是否继续运行原程序,是则继续运行原程序,返回步骤S8,否则给运行环境返回执行结果及信息,结束。
2.如权利要求1所述的方法,其特征在于,在所述步骤S1之前还包括:
当扩展应用接收到运行环境派遣的认证命令时,执行步骤A1-步骤A4;
步骤A1:所述扩展应用判断安全通道实例是否已经实例化,是则执行步骤A3,否则执行步骤A2;
步骤A2:所述扩展应用获取安全通道实例并将其存储在非易失性缓存中,执行步骤A3;
步骤A3:所述扩展应用根据所述认证命令得到送往卡外的数据长度,从安全域执行所述认证命令所返回的结果中获取相应的所述数据长度的数据并将其存储在apdu缓存中;
步骤A4:所述扩展应用调用通讯接口将结果数据发送到卡外,并设置安全级别,等待接收命令。
3.如权利要求2所述的方法,其特征在于,所述步骤A3包括:
步骤A3-1:所述扩展应用判断所述认证命令的类型,如为第一认证命令则执行步骤A3-2,如为第二认证命令则执行步骤A3-3;
步骤A3-2:所述扩展应用根据所述第一认证命令得到送往卡外的数据长度,根据所述数据长度从安全域执行所述第一认证命令所返回的结果中获取相应长度的数据并将其存储在apdu缓存中,执行步骤A4;
步骤A3-3:所述扩展应用根据所述第二认证命令得到需要送往卡外的数据长度为00,执行步骤A4。
4.如权利要求3所述的方法,其特征在于,
如认证命令为第一认证命令,则所述步骤A4包括:所述扩展应用调用通讯接口将所述apdu缓存中的数据方式到卡外,设置安全级别的值为00;
如认证命令为第二认证命令,则所述步骤A4包括:所述扩张应用调用通讯接口将正确信息发送到卡外,设置安全级别的值为非00。
5.如权利要求2所述的方法,其特征在于,所述步骤S1中获取主应用生成的随机数之前还包括:
所述扩展应用获取安全级别,并判断安全级别是否满足条件,是则获取主应用生成的随机数,否则调用通讯接口将安全条件不满足信息发送到卡外,等待接收命令。
6.如权利要求5所述的方法,其特征在于,所述判断安全级别是否满足条件,具体为:
通过调用第一接口函数获取安全级别的值,判断所述获取的值是否为00,是则安全级别不满足条件,否则安全级别满足条件。
7.如权利要求1所述的方法,其特征在于,在所述步骤S1之前还包括:
步骤B:当扩展应用接收到选择命令时,调用通讯接口将文件控制信息发送到卡外,等待接收命令。
8.如权利要求7所述的方法,其特征在于,在所述步骤B之前当运行环境接收到APDU命令时执行步骤P1;
步骤P1:所述运行环境判断接收到的所述APDU命令是否为选择命令,是则执行步骤P2,否则执行步骤P4;
步骤P2:所述运行环境根据所述选择命令中的应用标识在JavaCard中的应用表中查找对应的应用,并判断是否找到,是则执行步骤P3,否则执行步骤P4;
步骤P3:所述运行环境从找到的所述应用表中获取与所述应用标识对应的应用句柄,调用当前激活应用的deselect()接口,再根据所述与所述应用标识对应的应用句柄调用对应应用的select函数,如果所述select函数执行正确,则将与所述应用标识对应的应用置为当前激活应用,执行步骤P4;如果所述select函数执行不正确,则所述运行环境捕获异常,异常处理完成后,执行步骤P4;
步骤P4:所述上层将接收到的所述APDU命令派遣给当前激活应用。
9.如权利要求1所述的方法,其特征在于,
所述步骤S2包括:所述扩展应用使用保存的密钥对所述获取的随机数进行加密,并将加密结果、所述注册命令中的扩展应用标识和扩展接口编号发送给主应用;
所述步骤S3包括:所述主应用使用保存的密钥对接收到的所述加密结果进行解密,如解密成功则判断解密得到的随机数与所述生成的随机数是否相同,是则执行步骤S4,否则给所述扩展应用返回错误信息;如解密失败则给所述扩展应用返回错误信息。
10.如权利要求1所述的方法,其特征在于,
所述步骤S2包括:所述扩展应用使用保存的私钥对所述获取的随机数进行签名,并将签名结果、所述注册命令中的扩展应用标识和扩展接口编号发送给主应用;
所述步骤S3包括:所述主应用使用保存的公钥对接收到的所述签名结果进行解密,如解密成功则对所所述生成的随机数进行哈希计算,判断哈希结果与解密结果是否相同,是则执行步骤S4,否则返回错误信息,如解密失败则给所述扩展应用返回错误信息。
11.如权利要求9或10所述的方法,其特征在于,所述步骤S5还包括:所述主应用给所述扩展应用返回成功信息;
所述步骤S5与步骤S6之间包括:所述扩展应用根据所述主应用返回的信息判断关联是否成功,是则执行步骤S6,否则调用通讯接口将错误信息发送到卡外,结束。
12.如权利要求1所述的方法,其特征在于,所述步骤S6之后包括:判断是否保存成功,是则调用通讯接口将注册成功信息发送到卡外,等待接收指令,否则运行环境会捕获异常,异常处理完成后,结束。
13.如权利要求1所述的方法,其特征在于,所述步骤S6之前包括:
步骤S6-1:所述扩展应用根据注册命令中的数据域判断对应的扩展接口是否已注册,是则调用通讯接口将错误信息发送到卡外,结束,否则执行步骤S6。
14.如权利要求1所述的方法,其特征在于,所述步骤S6包括:所述扩展应用调用所述主应用的第三函数,传入所述扩展接口编号和所述扩展接口的状态;所述主应用检测到所述第三函数被调用后,检查与所述扩展接口编号对应的扩展点是否存在,是则根据所述扩展接口的状态修改扩展点的状态,给所述扩展应用返回正确信息,返回步骤S1,否则给所述扩展应用返回错误信息,结束。
15.如权利要求1所述的方法,其特征在于,所述步骤S6替换为:所述扩展应用判断所述注册命令是否合法,是则等待接收命令,否则调用通讯接口将错误信息发送到卡外,结束;
所述方法还包括:当所述扩展应用接收到关联命令时执行步骤D1;
步骤D1:所述扩展应用根据所述关联命令中的数据域判断对应的扩展接口是否已注册,是则调用通讯接口将错误信息发送到卡外,结束,否则执行步骤D2;
步骤D2:所述扩展应用调用所述主应用的第三函数,传入所述扩展接口编号和所述扩展接口的状态;所述主应用检测到第三函数被调用后,判断与所述扩展接口编号对应的扩展点是否存在,是则根据所述扩展接口的状态修改扩展点的状态,给所述扩展应用返回正确信息,等待接收命令,否则给所述扩展应用返回错误信息,结束。
16.如权利要求14或15所述的方法,其特征在于,根据所述扩展接口的状态修改扩展点的状态,具体为:将所述扩展点的状态设置为活动状态;
所述步骤S9具体为:所述主应用判断所述扩展点的状态是否为活动状态,是则对应的扩展接口可用,否则对应的扩展接口不可用。
17.如权利要求1所述的方法,其特征在于,所述步骤S5中的获取并保存所述扩展应用的句柄,包括:所述主应用通过所述扩展应用标识和预定参数调用第一标准接口获取所述扩展应用的句柄并保存。
18.如权利要求17所述的方法,其特征在于,所述主应用调用第一标准接口获取所述扩展应用的句柄并保存,具体包括:
步骤L1、所述运行环境根据所述扩展应用标识在所述应用列表中根据查找是否有对应的应用,是则执行步骤L2,否则给主应用返回错误信息;
步骤L2、所述运行环境判断与扩展应用标识对应的应用是否为Shareable类型的应用,是则执行步骤L3,否则给主应用返回错误信息;
步骤L3、所述运行环境根据所述应用列表中存储的应用句柄和所述预定参数,调用所述扩展应用的第二标准接口;
步骤L4、当所述扩展应用所述第二标准接口被调用时,所述扩展应用检查调用所述第二标准接口的上一个应用是否符合预设要求,是则执行步骤L5,否则给所述运行环境返回错误信息;
步骤L5、所述扩展应用判断所述预定参数的值是否为0,是则给所述运行环境返回扩展应用的句柄,执行步骤L6;否则给所述运行环境返回错误信息;
步骤L6、所述运行环境将所述扩展应用的句柄返回给所述主应用,所述接收所述扩展应用的句柄并保存。
19.如权利要求18所述的方法,其特征在于,所述步骤S9与步骤S10之间包括:
所述主应用判断与所述扩展应用标识对应的扩展应用是否为所述Shareable类型的应用,是则执行步骤S10,否则继续运行原程序,返回步骤S8。
CN201410286117.0A 2014-06-24 2014-06-24 一种JavaCard应用功能扩展的实现方法 Active CN104102507B (zh)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201410286117.0A CN104102507B (zh) 2014-06-24 2014-06-24 一种JavaCard应用功能扩展的实现方法
PCT/CN2015/081834 WO2015196946A1 (zh) 2014-06-24 2015-06-18 一种JavaCard应用功能扩展的实现方法
US15/358,039 US10248795B2 (en) 2014-06-24 2016-11-21 Implementing method for JavaCard application function expansion

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410286117.0A CN104102507B (zh) 2014-06-24 2014-06-24 一种JavaCard应用功能扩展的实现方法

Publications (2)

Publication Number Publication Date
CN104102507A true CN104102507A (zh) 2014-10-15
CN104102507B CN104102507B (zh) 2017-05-10

Family

ID=51670680

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410286117.0A Active CN104102507B (zh) 2014-06-24 2014-06-24 一种JavaCard应用功能扩展的实现方法

Country Status (3)

Country Link
US (1) US10248795B2 (zh)
CN (1) CN104102507B (zh)
WO (1) WO2015196946A1 (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015196946A1 (zh) * 2014-06-24 2015-12-30 飞天诚信科技股份有限公司 一种JavaCard应用功能扩展的实现方法
CN106227576A (zh) * 2016-08-18 2016-12-14 北京智芯微电子科技有限公司 一种Java卡应用的功能实现方法及装置
CN113760399A (zh) * 2020-11-30 2021-12-07 北京沃东天骏信息技术有限公司 用于流程扩展的方法和装置
CN115913579A (zh) * 2023-02-21 2023-04-04 飞天诚信科技股份有限公司 一种智能卡证书的注册应用方法及装置

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3462319A1 (en) * 2017-09-29 2019-04-03 Siemens Aktiengesellschaft Method, device and test program for recognizing a weak point in an original program
CN109145533B (zh) * 2018-09-30 2021-11-26 武汉斗鱼网络科技有限公司 一种使用随机密码保护代码的方法及装置

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0949595A3 (en) * 1998-03-30 2001-09-26 Citicorp Development Center, Inc. Method and system for managing applications for a multi-function smartcard
FR2872309A1 (fr) * 2004-06-23 2005-12-30 Gemplus Sa Procede de gestion d'une carte a puce multi-applicative
KR100901007B1 (ko) * 2007-08-07 2009-06-04 삼성에스디에스 주식회사 동일한 아이디의 어플리케이션을 포함하는 스마트 카드
KR100897804B1 (ko) 2007-08-07 2009-05-15 (주)비젼텍 패턴이 형성된 백라이트 유닛용 도광판
CN101533481B (zh) * 2009-04-03 2012-08-29 东信和平智能卡股份有限公司 掩膜智能卡的功能扩展方法
CN102063634B (zh) * 2010-12-24 2013-04-24 北京握奇数据系统有限公司 一种掩膜智能卡的功能扩展方法及智能卡
CN103632185B (zh) * 2012-08-21 2016-06-22 北京同方微电子有限公司 一种具有扩展功能的掩膜智能卡
CN103677909A (zh) * 2013-12-05 2014-03-26 北京大唐智能卡技术有限公司 一种掩膜卡补丁机制实现方法及装置
CN104102507B (zh) * 2014-06-24 2017-05-10 飞天诚信科技股份有限公司 一种JavaCard应用功能扩展的实现方法

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015196946A1 (zh) * 2014-06-24 2015-12-30 飞天诚信科技股份有限公司 一种JavaCard应用功能扩展的实现方法
US10248795B2 (en) 2014-06-24 2019-04-02 Feitian Technologies Co., Ltd. Implementing method for JavaCard application function expansion
CN106227576A (zh) * 2016-08-18 2016-12-14 北京智芯微电子科技有限公司 一种Java卡应用的功能实现方法及装置
CN113760399A (zh) * 2020-11-30 2021-12-07 北京沃东天骏信息技术有限公司 用于流程扩展的方法和装置
CN115913579A (zh) * 2023-02-21 2023-04-04 飞天诚信科技股份有限公司 一种智能卡证书的注册应用方法及装置
CN115913579B (zh) * 2023-02-21 2023-06-13 飞天诚信科技股份有限公司 一种智能卡证书的注册应用方法及装置

Also Published As

Publication number Publication date
WO2015196946A1 (zh) 2015-12-30
US10248795B2 (en) 2019-04-02
US20170124339A1 (en) 2017-05-04
CN104102507B (zh) 2017-05-10

Similar Documents

Publication Publication Date Title
CN104102507A (zh) 一种JavaCard应用功能扩展的实现方法
US9311588B2 (en) Secure portable object
JP6585072B2 (ja) 不揮発性メモリ又はセキュア素子へのデータの読み込みを安全に行うこと
CN109561085A (zh) 一种基于设备识别码的身份验证方法、服务器及介质
EP2764461B1 (en) Secure element comprising separated containers and corresponding method
US10021104B2 (en) Method for operating a security element
CN105678192A (zh) 一种基于智能卡的密钥应用方法及应用装置
MX2010014464A (es) Sistema y metodo para el manejo seguro de memoria.
CN108229147B (zh) 一种基于Android虚拟容器的内存检测装置及方法
US11366911B2 (en) Cryptography module and method for operating same
CN106228090B (zh) 一种多主安全域Java智能卡及其实现方法
CN107391028B (zh) 一种虚拟卷权限的控制方法及装置
CN110602051B (zh) 基于共识协议的信息处理方法及相关装置
CN116755719A (zh) 应用组件的数据处理方法、装置和数据处理系统
CN107220570B (zh) 一种基于sim卡的stk写卡系统及方法
US11340798B2 (en) Modification of a memory of a secure microprocessor
US10489775B2 (en) Integrated circuit card adapted to transfer first data from a first application for use by a second application
CN113569208B (zh) 数据管理方法、智能卡及计算机可读存储介质
US20160171214A1 (en) Method of executing a program by a processor and electronic entity comprising such a processor
JP2019046211A (ja) 電子情報記憶媒体、icカード、電子情報記憶媒体によるアップデート方法及びアップデートプログラム
CN105426239A (zh) 一种在Java卡中实现本地方法调用的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant