CN103218560B - 一种管理卡片数据的实现方法 - Google Patents
一种管理卡片数据的实现方法 Download PDFInfo
- Publication number
- CN103218560B CN103218560B CN201310146939.4A CN201310146939A CN103218560B CN 103218560 B CN103218560 B CN 103218560B CN 201310146939 A CN201310146939 A CN 201310146939A CN 103218560 B CN103218560 B CN 103218560B
- Authority
- CN
- China
- Prior art keywords
- perform step
- data
- card
- perform
- order
- 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
Links
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开一种管理卡片数据的实现方法,属于智能卡领域,具体包括:当第一卡片管理数据模块接收到运行环境派遣的APDU数据后,将自身作为当前第一卡片数据管理模块,检查所述APDU数据,当所述APDU数据为合法命令头时,获取数据域部分,得到完整的命令,根据所述命令的类型执行管理卡片数据操作,所述管理卡片数据操作包括预加载、加载、安装、可选择、引渡、个人化和删除。本发明方法的有益效果在于为智能卡上数据的管理提供了方便。
Description
技术领域
本发明属于智能卡领域,特别涉及一种管理卡片数据的实现方法。
背景技术
为了给用户提供更多的便利,现今的智能卡上除了发卡方提供的内容外,还可以安装多个应用,通常情况下,发卡方并不会管理所有的卡片内容,尤其是不属于发卡方的卡片内容,因此,需要一种授予第三方通过预认证后来代理管理卡片内容的机制,所述管理如加载、安装、引渡和删除等。
申请人在实现本发明的过程中发现,在现有技术中尚无代理管理卡片内容机制的具体实现方法。
发明内容
本发明的目的是为了克服现有技术的缺陷,提出一种管理卡片数据的实现方法。
本发明方法是通过下述技术方案实现的:
一种管理卡片数据的实现方法,其基本实施过程如下:
当第一卡片数据管理模块接收到运行环境派遣的应用协议数据单元APDU数据后,将自身作为当前第一卡片数据管理模块,执行以下步骤:
步骤A、检查所述APDU数据的指令码,若所述指令码为有效数值0xE8则执行步骤D,若所述指令码为有效数值0xE6则执行步骤B,若所述指令码为有效数值0xE4则执行步骤I;
步骤B、检查所述APDU数据的第一参数,若所述第一参数为0x02则执行步骤C,若所述第一参数为0x04或0x0C则执行步骤E,若所述第一参数为0x08则执行步骤F,若所述第一参数为0x10则执行步骤G,若所述第一参数为0x20则执行步骤H;
步骤C、收取预加载命令的数据域部分,得到预加载命令的全部内容,根据所述预加载命令的内容检查卡片是否满足预加载条件,是则新建可执行加载文件结构并设置相应数据,执行步骤J,否则直接执行步骤J;
步骤D、收取加载命令的数据域部分,得到加载命令的全部内容,根据所述加载命令的内容检查卡片是否满足加载条件,是则存储所述加载命令的相应内容,执行步骤J,否则直接执行步骤J;
步骤E、收取安装命令的数据域部分,得到安装命令的全部内容,根据所述安装命令的内容检查卡片是否满足安装条件,是则创建应用并设置相应状态,执行步骤J,否则直接执行步骤J;
步骤F、收取可选择命令的数据域部分,得到可选择命令的全部内容,根据所述可选择命令的内容检查卡片是否满足可选择条件,是则设置相应应用的状态为可选择,执行步骤J,否则直接执行步骤J;
步骤G、收取引渡命令的数据域部分,得到引渡命令的全部内容,根据所述引渡命令的内容检查卡片是否满足引渡条件,是则重置相应应用关联的安全域,执行步骤J,否则直接执行步骤J;
步骤H、收取个人化命令的数据域部分,得到个人化命令的全部内容,根据所述个人化命令的内容检查卡片是否满足个人化条件,是则将相应数据派遣给相应应用,执行步骤J,否则直接执行步骤J;
步骤I、收取删除命令的数据域部分,得到删除命令的全部内容,根据所述删除命令的内容检查卡片是否满足删除条件,是则删除所述删除命令中指定的卡片内的相应数据,执行步骤J,否则直接执行步骤J;
步骤J、生成并返回相应返回数据和/或相应状态码给所述运行环境。
本发明方法的有益效果在于:为智能卡上数据的管理提供方便,具体体现在两个方面:
1、发卡方可以不用关心与自己无关的应用;
2、第三方也可以自己管理自身应用,而不用通过发卡方来管理。
附图说明
为了更清楚的说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例的附图,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种管理卡片数据的实现方法流程图;
图2为步骤201至步骤228的具体流程图;
图3为步骤301至步骤329的具体流程图;
图4为步骤401至步骤435的具体流程图;
图5为步骤501至步骤524的具体流程图;
图6为步骤601至步骤628的具体流程图;
图7为步骤701至步骤717的具体流程图;
图8为步骤801至步骤825的具体流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
需说明的是,在本发明实施例中,将智能卡简称为卡片。
本发明实施例提供的一种管理卡片数据的实现方法,参见图1,所述方法具体包括当第一卡片数据管理模块接收到运行环境派遣的APDU(ApplicationProtocolDataUnit,应用协议数据单元)数据后将自身作为当前第一卡片数据管理模块,执行以下步骤:
步骤101:检查所述APDU数据的INS(指令码),若为0xE8则执行步骤301至步骤329;若为0xE6则执行步骤102;若为0xE4则执行步骤801至步骤825;若为其他有效数值则所述APDU数据为其他非内容管理的有效命令,根据所述APDU数据执行相应操作;否则所述APDU数据为无效命令,生成并返回相应状态码;
具体地,所述其他有效数值包括:0xA4、0x78、0x7A、0x82、0x50、0xE2、0xF0、0xD8、0xF2、0xCA;
步骤102:检查所述APDU数据的P1(第一参数),若为0x02则执行步骤201至步骤228;若为0x04或0x0C则执行步骤401至步骤435;若为0x08则执行步骤501至步骤524;若为0x10则执行步骤601至步骤628;若为0x20则执行步骤701至步骤717;否则所述APDU数据为无效命令,生成并返回相应状态码;
在本发明中,所述第一卡片数据管理模块为卡片中一种特殊的应用,为应用提供商在卡上的代表;
优选地,参见图2,步骤201至步骤228具体如下:
步骤201:判断所述APDU数据是否为合法的预加载命令的命令头,是则执行步骤202,否则执行步骤227;
具体地,当所述APDU数据的CLA(指令类别)为0x80或0x84、P2(第二参数)为0x00且Lc(数据域长度)不小于0x0A时,所述APDU数据为合法的预加载命令的命令头;
步骤202:判断卡片的当前状态是否为TERMINATED(终止)或CARD_LOCKED(锁定),是则执行步骤227,否则执行步骤203;
具体地,通过卡片的状态属性判断其状态,卡片的状态属性为一个字节数据,从高位到低位依次为b8 b7 b6 b5 b4 b3 b2 b1,卡片的状态包括准备OP_READY、初始化INITIALIZED、安全SECURED、锁定CARD_LOCKED和终止TERMINATED,参见下表:
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | Meaning |
0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 | OP_READY |
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | INITIALIZED |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | SECURED |
0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | CARD_LOCKED |
1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | TERMINATED |
进一步地,步骤201和步骤202的位置可以调换:首先判断卡片的当前状态是否为终止或卡片锁定,是则执行步骤227,否则判断所述APDU数据是否为合法的预加载命令的命令头,是则执行步骤203,否则执行步骤227;
步骤203:收取预加载命令的数据域部分,得到完整预加载命令;
步骤204:判断当前第一卡片数据管理模块状态是否为PERSONALIZED,是则执行步骤205,否则执行步骤227;
具体地,第一卡片数据管理模块通过当前第一卡片数据管理模块的状态属性判断当前第一卡片数据管理模块的状态,第一卡片数据管理模块的状态属性为一个字节数据,从高位到低位依次为b8 b7 b6 b5b4 b3 b2 b1,第一卡片数据管理模块的状态包括已安装INSTALLED、可选择SELECTABLE、个人化PERSONALIZED和锁定LOCKED,参见下表:
b8 | b7 | b6 | b5 | b4 | b3 | b2 | b1 | Meaning |
0 | 0 | 0 | 0 | 0 | 0 | 1 | 1 | INSTALLED |
0 | 0 | 0 | 0 | 0 | 1 | 1 | 1 | SELECTABLE |
0 | 0 | 0 | 0 | 1 | 1 | 1 | 1 | PERSONALIZED |
1 | 0 | 0 | 0 | X | X | 1 | 1 | LOCKED |
步骤205:判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤206,否则执行步骤227;
具体地,第一卡片数据管理模块通过当前第一卡片数据管理模块的权限属性判断当前第一卡片数据管理模块是否具有代理权限,第一卡片数据管理模块的权限属性为一个字节数据,从高位到低位依次为b8b7 b6 b5 b4 b3 b2 b1,当b8和b6均为1时,第一卡片数据管理模块具有代理权限;
步骤206:判断卡片是否满足安全条件,是则执行步骤207,否则执行步骤227;
具体地,第一卡片数据管理模块通过检查卡片的安全标志判断卡片是否满足安全条件,若所述安全标志置位则卡片满足安全条件,若所述安全标志未置位则卡片不满足安全条件,当卡片依次正确执行完INS字节的值为0x50的合法命令以及INS字节的值为0x82的合法命令时所述安全标志被置位;
步骤207:检查卡片的安全级别,若为第一级别则执行步骤210,若为第二级别则执行步骤208,若为第三级别则执行步骤209;
具体地,所述卡片安全级别是由上述INS字节的值为0x50以及INS字节的值为0x82的两条合法命令确定的;
具体地,若卡片的安全级别为第一级别,则所述预加载命令为消息数据明文,若卡片的安全级别为第二级别,则所述预加载命令为消息数据明文和消息认证码(Message Authentication Code,简称MAC)的组合,若卡片的安全级别为第三级别,则所述预加载命令为消息数据密文和消息认证码的组合;
步骤208:根据所述预加载命令中的消息数据明文和MAC(消息认证码)判断所述预加载命令是否完整,是则执行步骤210,否则执行步骤227;
其中,所述根据所述预加载命令中的消息数据明文和消息认证码判断所述预加载命令是否完整具体包括:利用约定的会话密钥对消息认证码进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述预加载命令完整,否则所述预加载命令不完整;
步骤209:根据所述预加载命令中的消息数据密文和MAC判断所述预加载命令是否完整,是则执行步骤210,否则执行步骤227;
其中,所述根据所述预加载命令中的消息数据密文和消息认证码判断所述预加载命令是否完整具体包括:对消息数据密文解密得到消息数据明文,利用约定的会话密钥对消息认证码进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述预加载命令完整,否则所述预加载命令不完整;
步骤210:判断所述预加载命令中的加载文件标识长度是否在预设范围内,是则执行步骤211,否则执行步骤227;
具体地,所述预设范围为0x05-0x10;
步骤211:判断所述预加载命令中的加载文件标识是否合法,是则执行步骤212,否则执行步骤227;
具体地,所述加载文件标识,当其每个字节均为0x00时不合法,否则合法;
步骤212:检查卡片内是否已存在所述加载文件标识对应的加载文件,是则执行步骤227,否则执行步骤213;
步骤213:判断所述预加载命令中的安全域标识长度是否在预设范围内,是则执行步骤214,否则执行步骤227;
具体地,所述预设范围为0x05-0x10;
步骤214:判断所述预加载命令中的安全域标识是否合法,是则执行步骤215,否则执行步骤227;
具体地,所述安全域标识,当其每个字节均为0x00时不合法,否则合法;
步骤215:检查卡片内是否存在所述预加载命令中的安全域标识对应的应用,是则执行步骤216,否则执行步骤227;
步骤216:判断所述预加载命令中的安全域标识对应的应用是否具有安全域权限,是则执行步骤217,否则执行步骤227;
具体地,通过应用的权限属性判断其是否具有安全域权限,应用的权限属性为一个字节数据,从高位到低位依次为b8 b7 b6 b5 b4b3 b2 b1,当b8为1时,应用具有安全域权限;
步骤217:判断所述预加载命令中的安全域标识对应的应用是否为当前第一卡片数据管理模块,是则执行步骤219,否则执行步骤218;
步骤218:判断所述预加载命令中的安全域标识对应的应用的状态是否为PERSONALIZED(个人化),是则执行步骤219,否则执行步骤227;
步骤219:设置所述预加载命令中的加载文件标识对应的加载文件的关联安全域为所述预加载命令中的安全域标识对应的应用;
步骤220:判断所述预加载命令中的加载文件数据块哈希值长度是否为预设值,是则执行步骤221,否则执行步骤227;
优选地,在本实施例中,所述预设值为0x14;
步骤221:存储所述预加载命令中的加载文件数据块哈希值并设置哈希值验证标志;
步骤222:处理所述预加载命令中的加载参数域;
具体地,所述加载参数域为TLV结构,即由多个标签+长度+值的格式的数据组成,根据不同的标签执行不同的操作,在此不进行详细表述;
步骤223:判断所述预加载命令中的加载令牌长度是否为0x80,是则执行步骤224,否则执行步骤227;
步骤224:发送计算加载令牌所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的计算结果,判断所述计算结果与所述预加载命令中的加载令牌是否相同,是则执行步骤225,否则执行步骤227;
其中,所述第二卡片数据管理模块也是卡片中的一个特殊应用;
具体地,发送所述预加载命令中的P1、P2、有效数据的长度、加载文件标识长度、加载文件标识、安全域标识长度、安全域标识、加载文件数据块哈希值长度、加载文件数据块哈希值、加载参数域长度以及加载参数域给第二卡片数据管理模块,关于卡片发行商验证加载令牌的过程,在此不进行详细表述;
步骤225:新建加载文件结构,初始化全局块编号;
具体地,初始化全局块编号为0,所述新建加载文件结构包括:在缓存中创建一个可执行加载文件结构的对象,将所述对象的各个属性值设置为默认值,所述对象的属性值包括各加载文件数据块在缓存中的存储地址以及可执行加载文件的各个属性,所述可执行加载文件的属性如可执行加载文件关联安全域标识等,在此不做具体描述;
步骤226:设置返回数据为0x00,执行步骤227;
步骤227:生成相应状态码;
具体地,所述相应状态码包括标识成功的状态码和标识错误的状态码,其中不同的错误类型对应不同的状态码;
步骤228:返回设置的返回数据和/或生成的状态码;
优选地,参见图3,步骤301至步骤329具体如下:
步骤301:判断所述APDU数据是否为合法的加载命令的命令头,是则执行步骤302,否则执行步骤328;
具体地,当所述APDU数据的CLA为0x80或0x84、P1为0x00或0x80且P2在0x00-0xFF之间时,所述APDU数据合法;
步骤302:判断卡片当前的状态是否为TERMANATED或CARD_LOCKED,是则执行步骤328,否则执行步骤303;
步骤303:收取加载命令的数据域部分,得到完整加载命令;
步骤304:判断当前第一卡片数据管理模块的状态是否为PERSONALIZED,是则执行步骤305,否则执行步骤328;
步骤305:判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤306,否则执行步骤328;
步骤306:判断卡片是否满足安全条件,是则执行步骤307,否则执行步骤328;
步骤307:检查卡片的安全级别,若为第一级别则执行步骤310,若为第二级别则执行步骤308,若为第三级别则执行步骤309;
具体地,若卡片的安全级别为第一级别,则所述加载命令为消息数据明文,若卡片的安全级别为第二级别,则所述加载命令为消息数据明文和消息认证码的组合,若卡片的安全级别为第三级别,则所述加载命令为消息数据密文和消息认证码的组合;
步骤308:根据所述加载命令中的消息数据明文和MAC判断所述加载命令是否完整,是则执行步骤310,否则执行步骤328;
其中,所述根据所述加载命令中的消息数据明文和MAC判断所述加载命令是否完整具体包括:利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述加载命令完整,否则所述加载命令不完整;
步骤309: 根据所述加载命令中的消息数据密文和MAC判断所述加载命令是否完整,是则执行步骤310,否则执行步骤328;
其中,所述根据所述加载命令中的消息数据密文和MAC判断所述加载命令是否完整具体包括:对消息数据密文解密得到消息数据明文,利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述加载命令完整,否则所述加载命令不完整;
步骤310:判断所述加载命令中的P2是否等于所述全局块编号,是则执行步骤311,否则执行步骤328;
步骤311:判断所述全局块编号是否为0,是则执行步骤312,否则执行步骤313;
步骤312:验证所述加载命令中的DAP(Data Authentication Pattern,数据验证模式)块信息,若验证通过则执行步骤313,若验证不通过则执行步骤328;
具体地,加载文件在卡外被分割为若干个加载文件数据块,每条加载命令中包含一个加载文件数据块,当所述加载命令的P2等于全局块编号,且全局块编号为0时,所述加载命令中还包含DAP块信息,DAP块信息中包含加载文件数据块签名值,第一卡片数据管理模块根据当前第一卡片数据管理模块存储的应用提供商DAP计算密钥对DAP块信息中的加载文件数据块签名值进行验证;
步骤313:判断卡片内是否存在哈希值验证标志,是则保存所述加载命令中的加载文件数据块,执行步骤314,否则直接执行步骤314;
步骤314:判断所述可执行加载文件结构中是否有未提交存储的组件,是则执行步骤318,否则执行步骤315;
具体地,应用以组件为单位对加载的加载文件数据块进行处理,得到可执行加载文件结构,所述组件包括:Header组件、Directory组件、Applet组件、Import组件等;
步骤315:检查所述加载命令中是否包含组件编号和组件大小,是则执行步骤316,否则执行步骤328;
步骤316:读取所述组件编号,判断所述组件编号是否合法,是则执行步骤317,否则执行步骤328;
具体地,除首次读取到组件编号外,若所述组件编号与上一次读取到的组件编号是连续的则所述编号合理,否则所述编号不合理;
步骤317:根据所述组件大小分派相应大小的空间;
步骤318:开始处理所述加载命令中的加载文件数据块;
步骤319:判断当前组件是否处理完成,是则执行步骤320,否则执行步骤321;
具体地,所述判断当前组件是否处理完成为判断当前组件中已经处理的数据的大小是否等于所述当前组件的大小;
步骤320:提交当前组件的处理结果,执行步骤321;
步骤321:判断是否还有未处理的加载文件数据块数据,是则返回执行步骤315,否则执行步骤322;
步骤322:所述全局块编号自增,判断所述加载命令的P1是否为0x80,是则执行步骤323,否则执行步骤327;
具体的,所述全局块编号自增1;
步骤323:判断卡片内是否存在哈希值验证标志,是则执行步骤324,否则执行步骤325;
步骤324:对已存储的加载文件数据块进行哈希计算,判断计算结果是否等于加载文件数据块哈希值,是则执行步骤325,否则执行步骤328;
步骤325:提交存储所述可执行加载文件结构;
步骤326:发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤328;
具体地,发送所述加载命令中的加载文件数据块对应的加载文件标识的长度、加载文件标识、安全域标识的长度、安全域标识给卡片提供商模块;
步骤327:设置返回数据为0x00,执行步骤328;
步骤328:生成相应状态码;
具体地,所述相应状态码包括标识成功的状态码和标识错误的状态码,其中不同的错误类型对应不同的状态码;
步骤329:返回设置的返回数据和/或生成的状态码;
优选地,参见图4,步骤401至步骤435具体如下:
步骤401:判断所述APDU数据是否为合法的安装命令的命令头,是则执行步骤402,否则执行步骤434;
具体地,当所述APDU数据的CLA为0x80或0x84、P2为0x00且Lc不小于0x18时,所述APDU数据为合法的安装命令的命令头;
步骤402:判断卡片的当前状态是否为TERMANATED或CARD_LOCKED,是则执行步骤434,否则执行步骤403;
步骤403:收取安装命令的数据域部分,得到完整安装命令;
步骤404:判断当前第一卡片数据管理模块的状态是否为PERSONALIED,是则执行步骤405,否则执行步骤434;
步骤405:判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤406,否则执行步骤434;
步骤406:判断卡片是否满足安全条件,是则执行步骤407,否则执行步骤434;
步骤407:检查卡片的安全级别,若为第一级别则执行步骤410,若为第二级别则执行步骤408,若为第三级别则执行步骤409;
具体地,若卡片的安全级别为第一级别,则所述安装命令为消息数据明文,若卡片的安全级别为第二级别,则所述安装命令为消息数据明文和消息认证码的组合,若卡片的安全级别为第三级别,则所述安装命令为消息数据密文和消息认证码的组合;
步骤408:根据所述安装命令中的消息数据明文和MAC判断所述安装命令是否完整,是则执行步骤410,否则执行步骤434;
其中,所述根据所述安装命令中的消息数据明文和MAC判断所述安装命令是否完整具体包括:利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述安装命令完整,否则所述安装命令不完整;
步骤409: 根据所述安装命令中的消息数据密文和MAC判断所述安装命令是否完整,是则执行步骤410,否则执行步骤434;
其中,所述根据所述安装命令中的消息数据密文和MAC判断所述安装命令是否完整具体包括:对消息数据密文解密得到消息数据明文,利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述安装命令完整,否则所述安装命令不完整;
步骤410:判断所述安装命令中的可执行加载文件标识长度是否在预设范围内,是则执行步骤411,否则执行步骤434;
具体地,所述预设范围为0x05-0x10;
步骤411:判断卡片内是否存在所述安装命令中的可执行加载文件标识对应的可执行加载文件,是则执行步骤412,否则执行步骤434;
步骤412:判断所述安装命令中的可执行加载文件标识对应的可执行加载文件关联的安全域是否为当前第一卡片数据管理模块,是则执行步骤413,否则执行步骤434;
步骤413:判断所述安装命令中的可执行模块标识长度是否在预设范围内,是则执行步骤414,否则执行步骤434;
具体地,所述预设范围为0x05-0x10;
步骤414:判断卡片内是否存在所述安装命令中的可执行模块标识对应的可执行模块,是则执行步骤415,否则执行步骤434;
步骤415:判断所述安装命令中的应用标识长度是否在预设范围内,是则执行步骤416,否则执行步骤434;
具体地,所述预设范围为0x05-0x10;
步骤416:判断所述安装命令中的应用标识是否合法,是则执行步骤417,否则执行步骤434;
具体地,所述应用标识当其每个字节均为0x00时不合法,否则合法;
步骤417:判断卡片内是否存在所述安装命令中的应用标识对应的应用,是则执行步骤434,否则执行步骤418;
步骤418:判断所述安装命令中的应用权限长度是否为0x01,是则执行步骤419,否则执行步骤434;
步骤419:判断所述安装命令中的应用权限是否为0x04,是则执行步骤420,否则执行步骤422;
步骤420:判断所述安装命令的P1是否为0x04,是则执行步骤434,否则执行步骤421;
步骤421:判断第二卡片数据管理模块是否具有默认选择权限,是则执行步骤422,否则执行步骤434;
具体地,通过第二卡片数据管理模块的权限属性判断其是否具有默认选择权限,第二卡片数据管理模块的权限属性为一个字节数据,从高位到低位依次为b8 b7 b6 b5 b4 b3 b2 b1,当b3为1时,第二卡片数据管理模块具有默认选择权限;
步骤422:判断所述安装命令的应用权限的低位端起第1比特位、第6比特位和第7比特位是否均为0,是则执行步骤423,否则执行步骤424;
步骤423:判断所述安装命令的应用权限的最高比特位是否为1,是则执行步骤424,否则执行步骤434;
步骤424:处理所述安装命令中的安装参数域;
步骤425:判断所述安装命令中的安装令牌长度是否为0x80,是则执行步骤426,否则执行步骤434;
步骤426:发送计算安装令牌所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的计算结果,判断所述计算结果和所述安装命令中的安装令牌是否相同,是则执行步骤427,否则执行步骤434;
具体地,发送所述安装命令的P1、P2、有效数据的长度、可执行加载文件标识长度、可执行加载文件标识、可执行模块标识长度、可执行模块标识、应用标识长度、应用标识、应用权限长度、应用权限、安装参数域长度以及安装参数域给第二卡片数据管理模块;
步骤427:根据所述安装命令的数据域中的数据注册应用;
步骤428:判断所述安装命令中的P1是否为0x04,是则执行步骤432,否则执行步骤429;
步骤429:将所述安装命令中的应用标识对应的应用的状态设置为SELECTABLE(可选择);
具体地,步骤429为将所述安装命令中的应用标识对应的应用的状态属性的值设置为0x07;
步骤430:判断所述安装命令中的应用权限是否为0x04,是则执行步骤431,否则执行步骤433;
步骤431:将所述安装命令中的应用标识对应的应用设置为默认应用,执行步骤433;
步骤432:将所述安装命令中的应用标识对应的应用的状态设置为INSTALLED(安装),执行步骤433;
具体地,步骤432包括:将所述得到的命令中的应用标识对应的应用的状态属性的值设置为0x03;
步骤433:发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤434;
具体地,发送所述安装命令中的可执行加载文件标识长度、可执行加载文件标识、应用标识长度以及应用标识给第二卡片数据管理模块;
步骤434:生成相应状态码;
具体地,所述相应状态码包括标识成功的状态码和标识错误的状态码,其中不同的错误类型对应不同的状态码;
步骤435:返回设置的返回数据和/或生成的状态码;
优选地,参见图5,步骤501至步骤524具体如下:
步骤501:判断所述APDU数据是否为合法的可选择命令的命令头,是则执行步骤502,否则执行步骤523;
具体地,当所述APDU数据的CLA为0x80或0x84、P2为0x00且Lc不小于0x0C时,所述APDU数据为合法的可选择命令的命令头;
步骤502:判断卡片的当前状态是否为TERMANATED或CARD_LOCKED,是则执行步骤523,否则执行步骤503;
步骤503:收取可选择命令的数据域部分,得到完整可选择命令;
步骤504:判断当前第一卡片数据管理模块的状态是否为PERSONALIZED(个人化),是则执行步骤505,否则执行步骤523;
步骤505:判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤506,否则执行步骤523;
步骤506:判断卡片是否满足安全条件,是则执行步骤507,否则执行步骤523;
步骤507:检查卡片的安全级别,若为第一级别则执行步骤510,若为第二级别则执行步骤508,若为第三级别则执行步骤509;
具体地,若卡片的安全级别为第一级别,则所述可选择命令为消息数据明文,若卡片的安全级别为第二级别,则所述可选择命令为消息数据明文和消息认证码的组合,若卡片的安全级别为第三级别,则所述可选择命令为消息数据密文和消息认证码的组合;
步骤508:根据所述可选择命令中的消息数据明文和MAC判断所述可选择命令是否完整,是则执行步骤510,否则执行步骤523;
其中,所述根据所述可选择命令中的消息数据明文和MAC判断所述可选择命令是否完整具体包括:利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述可选择命令完整,否则所述可选择命令不完整
步骤509: 根据所述可选择命令中的消息数据密文和MAC判断所述可选择命令是否完整,是则执行步骤510,否则执行步骤523;
其中,所述根据所述可选择命令中的消息数据密文和MAC判断所述可选择命令是否完整具体包括:对消息数据密文解密得到消息数据明文,利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述可选择命令完整,否则所述可选择命令不完整;
步骤510:判断所述可选择命令的数据域中的前两个字节数据是否均为0x00,是则执行步骤511,否则执行步骤523;
步骤511:判断所述可选择命令中的应用标识长度是否在预设范围内,是则执行步骤512,否则执行步骤523;
具体地,所述预设范围为0x05-0x10;
步骤512:判断卡片内是否有所述可选择命令中的应用标识对应的应用,是则执行步骤513,否则执行步骤523;
步骤513:判断所述可选择命令中的应用标识对应的应用的状态是否为INSTALLED(安装),是则执行步骤514,否则执行步骤523;
步骤514:判断所述可选择命令中的应用权限长度是否为0x00,是则执行步骤515,否则执行步骤523;
步骤515:判断所述可选择命令中应用权限之后的一个字节数据是否为0x00,是则执行步骤516,否则执行步骤523;
步骤516:判断所述可选择命令中的安装令牌长度是否为0x80,是则执行步骤517,否则执行步骤523;
步骤517:发送计算安装令牌所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的计算结果,判断所述计算结果与所述可选择命令中的安装令牌是否相同,是则执行步骤518,否则执行步骤523;
具体地,发送所述可选择命令的P1、P2、有效数据长度、可执行加载文件标识长度、0x00、0x00、应用标识长度、应用标识、应用权限长度、应用权限以及0x00给第二卡片数据管理模块;
步骤518:将所述可选择命令中的应用标识对应的应用的状态设置为SELECTABLE(可选择);
具体地,步骤518具体为将所述可选择命令中的应用标识对应的应用的状态属性的值设置为0x07;
步骤519:判断所述可选择命令中的P1是否为0x04,是则执行步骤520,否则执行步骤522;
步骤520:判断第二卡片数据管理模块是否具有默认选择权限,是则执行步骤521,否则执行步骤523;
步骤521:设置所述可选择命令中的应用标识对应的应用为默认应用,执行步骤522;
步骤522:设置返回数据为0x00,执行步骤523;
步骤523:生成相应状态码;
具体地,所述相应状态码包括标识成功的状态码和标识错误的状态码,其中不同的错误类型对应不同的状态码;
步骤524:返回设置的返回数据和/或生成的状态码;
优选地,参见图6,步骤601至步骤628具体如下:
步骤601:判断所述APDU数据是否为合法的引渡命令的命令头,是则执行步骤602,否则执行步骤627;
具体地,当所述APDU数据的CLA为0x80或0x84、P2为0x00且Lc不小于0x10时,所述APDU数据为合法的引渡命令的命令头;
步骤602:判断卡片的当前状态是否为TERMANATED或CARD_LOCKED,是则执行步骤627,否则执行步骤603;
步骤603:收取引渡命令的数据域部分,得到完整引渡命令;
步骤604:判断当前第一卡片数据管理模块的状态是否为PERSONALIZED,是则执行步骤605,否则执行步骤627;
步骤605:判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤606,否则执行步骤627;
步骤606:判断卡片是否满足安全条件,是则执行步骤607,否则执行步骤627;
步骤607:检查卡片的安全级别,若为第一级别则执行步骤610,若为第二级别则执行步骤608,若为第三级别则执行步骤609;
具体地,若卡片的安全级别为第一级别,则所述引渡命令为消息数据明文,若卡片的安全级别为第二级别,则所述引渡命令为消息数据明文和消息认证码的组合,若卡片的安全级别为第三级别,则所述引渡命令为消息数据密文和消息认证码的组合;
步骤608:根据所述引渡命令中的消息数据明文和MAC判断所述引渡命令是否完整,是则执行步骤610,否则执行步骤627;
其中,所述根据所述引渡命令中的消息数据明文和MAC判断所述引渡命令是否完整具体包括:利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述引渡命令完整,否则所述引渡命令不完整;
步骤609: 根据所述引渡命令中的消息数据密文和MAC判断所述引渡命令是否完整,是则执行步骤610,否则执行步骤627;
其中,所述根据所述引渡命令中的消息数据密文和MAC判断所述引渡命令是否完整具体包括:对消息数据密文解密得到消息数据明文,利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述引渡命令完整,否则所述引渡命令不完整;
步骤610:判断所述引渡命令中的安全域标识长度是否在预设范围内,是则执行步骤611,否则执行步骤627;
具体地,所述预设范围为0x05-0x10;
步骤611:判断卡片内是否存在所述引渡命令中的安全域标识对应的应用,是则执行步骤612,否则执行步骤627;
步骤612:判断所述引渡命令中的安全域标识对应的应用是否为当前卡片提供商模块,是则执行步骤627,否则执行步骤613;
步骤613:判断所述引渡命令中安全域标识之后的一个字节数据是否为0x00,是则执行步骤614,否则执行步骤627;
步骤614:判断所述引渡命令中的安全域标识对应的应用的状态是否为INSTALLED(安装),是则执行步骤615,否则执行步骤627;
步骤615:判断所述引渡命令中的应用标识长度是否在预设范围内,是则执行步骤616,否则执行步骤627;
具体地,所述预设范围为0x05-0x10;
步骤616:判断卡片内是否存在所述引渡命令中的应用标识对应的应用,是则执行步骤617,否则执行步骤627;
步骤617:判断所述引渡命令中的应用标识对应的应用关联的安全域是否为当前第一卡片数据管理模块,是则执行步骤618,否则执行步骤627;
步骤618:判断所述引渡命令中的安全域标识对应的应用是否具有安全域权限,是则执行步骤619,否则执行步骤627;
步骤619:判断所述引渡命令中的安全域标识对应的应用的状态是否为LOCKED(锁定),是则执行步骤627,否则执行步骤620;
步骤620:判断所述引渡命令中的安全域标识对应的应用的状态是否为PERSONALIZED(个人化),是则执行步骤621 ,否则执行步骤627;
步骤621:判断所述引渡命令中的应用标识后的两个字节数据是否均为0x00,是则执行步骤622,否则执行步骤627;
步骤622:判断所述引渡命令中的引渡令牌长度是否为0x80,是则执行步骤623,否则执行步骤627;
步骤623:发送计算引渡令牌所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的计算结果,判断所述计算结果是否与所述引渡命令中的引渡令牌相同,是则执行步骤624,否则执行步骤627;
具体地,发送所述引渡命令的P1、P2、有效数据长度、安全域标识长度、安全域标识、0x00、应用标识长度、应用标识、0x00以及0x00给第二卡片数据管理模块;
步骤624:判断所述引渡命令中的应用标识对应的应用是否具有安全域权限,是则执行步骤627,否则执行步骤625;
步骤625:将所述引渡命令中的应用标识对应的应用关联的安全域修改为所述引渡命令中的安全域标识对应的应用;
步骤626:发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤627;
具体地,发送本次引渡应用的:应用标识的长度、应用标识、原安全域标识的长度、原安全域标识、新安全域标识的长度以及新安全域标识给第二卡片数据管理模块,其中,所述原安全域标识为本次引渡应用在引渡之前关联的安全域的安全域标识;所述新安全域标识为本次引渡应用在引渡之后将要关联的安全域的安全域标识;
步骤627:生成相应状态码;
具体地,所述相应状态码包括标识成功的状态码和标识错误的状态码,其中不同的错误类型对应不同的状态码;
步骤628:返回设置的返回数据和/或生成的状态码;
优选地,参见图7,步骤701至步骤717具体如下:
步骤701:判断所述APDU数据是否为合法的个人化命令的命令头,是则执行步骤702,否则执行步骤716;
具体地,当所述APDU数据的CLA为0x80或0x84、P2为0x00且Lc不小于0x0B时,所述APDU数据为合法的个人化命令的命令头;
步骤702:判断卡片的当前状态是否为TERMANATED或CARD_LOCKED,是则执行步骤716,否则执行步骤703;
步骤703:收取个人化命令的数据域部分,得到完整个人化命令;
步骤704:判断当前第一卡片数据管理模块的状态是否为PERSONALIZED(个人化),是则执行步骤705,否则执行步骤716;
步骤705:判断卡片是否满足安全条件,是则执行步骤706,否则执行步骤716;
步骤706:检查卡片的安全级别,若为第一级别则执行步709,若为第二级别则执行步骤707,若为第三级别则执行步骤708;
具体地,若卡片的安全级别为第一级别,则所述个人化命令为消息数据明文,若卡片的安全级别为第二级别,则所述个人化命令为消息数据明文和消息认证码的组合,若卡片的安全级别为第三级别,则所述个人化命令为消息数据密文和消息认证码的组合;
步骤707:根据所述个人化命令中的消息数据明文和MAC判断所述个人化命令是否完整,是则执行步骤709,否则执行步骤716;
其中,所述根据所述个人化命令中的消息数据明文和MAC判断所述个人化命令是否完整具体包括:利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述个人化命令完整,否则所述个人化命令不完整;
步骤708: 根据所述个人化命令中的消息数据密文和MAC判断所述个人化命令是否完整,是则执行步骤709,否则执行步骤716;
其中,所述根据所述个人化命令中的消息数据密文和MAC判断所述个人化命令是否完整具体包括:对消息数据密文解密得到消息数据明文,利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述个人化命令完整,否则所述个人化命令不完整;。
步骤709:判断所述个人化命令的数据域的前两个字节数据是否均为0x00,是则执行步骤710,否则执行步骤716;
步骤710:判断所述个人化命令中的应用标识长度是否在预设范围内,是则执行步骤711,否则执行步骤716;
具体地,所述预设范围为0x05-0x10;
步骤711:判断卡片内是否存在所述个人化命令中的应用标识对应的应用,是则执行步骤712,否则执行步骤716;
步骤712:判断所述个人化命令中的应用标识对应的应用关联的安全域是否为当前第一卡片数据管理模块,是则执行步骤713,否则执行步骤716;
步骤713:判断所述个人化命令的最后三个字节数据是否均为0x00,是则执行步骤714,否则执行步骤716;
步骤714:将所述个人化命令中的应用标识对应的应用的状态设置为个人化(PERSONLIZED);
步骤715:设置返回数据为0x00;
步骤716:生成相应状态码;
具体地,所述相应状态码包括标识成功的状态码和标识错误的状态码,其中不同的错误类型对应不同的状态码;
步骤717:返回设置的返回数据和/或生成的状态码;
优选地,参见图8,步骤801至步骤825具体如下:
步骤801:判断所述APDU数据是否为合法的删除命令的命令头,是则执行步骤802,否则执行步骤824;
具体地,当所述APDU数据的CLA为0x80或0x84且P1为0x00时,所述APDU数据为合法的删除命令的命令头;
步骤802:判断卡片的当前状态是否为TERMANATED或CARD_LOCKED,是则执行步骤824,否则执行步骤803;
步骤803:收取删除命令的数据域部分,得到完整删除命令;
步骤804:判断当前第一卡片数据管理模块的状态是否为PERSONALIED,是则执行步骤805,否则执行步骤824;
步骤805:判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤806,否则执行步骤824;
步骤806:判断卡片是否满足安全条件,是则执行步骤807,否则执行步骤824;
步骤807:检查卡片的安全级别,若为第一级别则执行步骤810,若为第二级别则执行步骤808,若为第三级别则执行步骤809;
具体地,若卡片的安全级别为第一级别,则所述删除命令为消息数据明文,若卡片的安全级别为第二级别,则所述删除命令为消息数据明文和消息认证码的组合,若卡片的安全级别为第三级别,则所述删除命令为消息数据密文和消息认证码的组合;
步骤808:根据所述删除命令中的消息数据明文和MAC判断所述删除命令是否完整,是则执行步骤810,否则执行步骤824;
其中,所述根据所述删除命令中的消息数据明文和MAC判断所述删除命令是否完整具体包括:利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述删除命令完整,否则所述删除命令不完整;
步骤809:根据所述删除命令中的消息数据密文和MAC判断所述删除命令是否完整,是则执行步骤810,否则执行步骤824;
其中,所述根据所述删除命令中的消息数据密文和MAC判断所述删除命令是否完整具体包括:对消息数据密文解密得到消息数据明文,利用约定的会话密钥对MAC进行解密得到解密结果,同时根据约定的散列函数对消息数据明文进行计算得到计算结果,判断所述解密结果和所述计算结果是否相同,是则所述删除命令完整,否则所述删除命令不完整;
步骤810:判断所述删除命令的数据域中的第一个字节数据是否为0x4f,是则执行步骤811,否则执行步骤824;
步骤811:判断所述删除命令中的数据域标识长度是否在预设范围内,是则执行步骤812,否则执行步骤824;
具体地,预设范围为0x05-0x10;
步骤812:判断卡片内是否存在所述删除命令中的数据域标识对应的应用,是则执行步骤813,否则执行步骤814;
步骤813:判断所述删除命令中的P2是否为0x80,是则执行步骤814,否则执行步骤819;
步骤814:判断卡片内是否存在所述删除命令中的数据域标识对应的可执行文件,是则执行步骤815,否则执行步骤824;
步骤815:判断所述删除命令中的数据域标识对应的可执行文件关联的安全域是否为当前第一卡片数据管理模块,是则执行步骤816,否则执行步骤824;
步骤816:判断所述删除命令中的P2是否为0x80,是则执行步骤817,否则执行步骤818;
步骤817:删除所述删除命令中的数据域标识对应的可执行文件以及所述可执行文件对应的全部应用,执行步骤823;
步骤818:删除所述删除命令中的数据域标识对应的可执行文件,执行步骤823;
步骤819:判断所述删除命令中的数据域标识对应的应用是否为其他应用或其他可执行文件关联的安全域,是则执行步骤824,否则执行步骤820;
步骤820:判断所述删除命令中的数据域标识对应的应用是否为当前第一卡片数据管理模块,是则执行步骤824,否则执行步骤821;
步骤821:判断所述删除命令中的数据域标识对应的应用关联的安全域是否为当前第一卡片数据管理模块,是则执行步骤822,否则执行步骤824;
步骤822:删除与所述删除命令中的数据域标识对应的应用;
步骤823:发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤824;
具体地,发送所述删除命令中的数据域标识长度以及所述数据域标识给第二卡片数据管理模块;
步骤824:生成相应状态码;
具体地,所述相应状态码包括标识成功的状态码和标识错误的状态码,其中不同的错误类型对应不同的状态码;
步骤825:返回设置的返回数据和/或生成的状态码。
以上所述的实施例只是本发明较优选的具体实施方式,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
Claims (24)
1.一种管理卡片数据的实现方法,其特征在于,当第一卡片数据管理模块接收到运行环境派遣的应用协议数据单元APDU数据后,将自身作为当前第一卡片数据管理模块,执行以下步骤:
步骤A、检查所述APDU数据的指令码,若所述指令码为有效数值0xE8则执行步骤D,若所述指令码为有效数值0xE6则执行步骤B,若所述指令码为有效数值0xE4则执行步骤I;
步骤B、检查所述APDU数据的第一参数,若所述第一参数为0x02则执行步骤C1至C4,若所述第一参数为0x04或0x0C则执行步骤E,若所述第一参数为0x08则执行步骤F,若所述第一参数为0x10则执行步骤G,若所述第一参数为0x20则执行步骤H;
步骤C1、收取预加载命令的数据域部分,得到预加载命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤C2,否则执行步骤C4;若当前第一卡片数据管理模块的状态不为个人化则执行步骤C4;
步骤C2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤C3,若为第二级别或第三级别则判断所述预加载命令是否完整,当所述预加载命令完整时执行步骤C3,当所述预加载命令不完整时执行步骤C4,否则执行步骤C4;
步骤C3、对所述预加载命令进行格式检查,若检查通过则设置所述预加载命令中的加载文件标识对应的加载文件的关联安全域为所述预加载命令中的安全域标识对应的应用,存储所述预加载命令中的加载文件数据块哈希值并设置哈希值验证标识,处理所述预加载命令中的加载参数域,新建加载文件结构,初始化全局块编号,设置返回数据为0x00,执行步骤C4,若检查未通过则执行步骤C4;
步骤C4、生成相应状态码,返回设置的返回数据和/或生成的状态码;
步骤D、收取加载命令的数据域部分,得到加载命令的全部内容,根据所述加载命令的内容检查卡片是否满足加载条件,是则存储所述加载命令的相应内容,执行步骤J,否则直接执行步骤J;
步骤E、收取安装命令的数据域部分,得到安装命令的全部内容,根据所述安装命令的内容检查卡片是否满足安装条件,是则创建应用并设置相应状态,执行步骤J,否则直接执行步骤J;
步骤F、收取可选择命令的数据域部分,得到可选择命令的全部内容,根据所述可选择命令的内容检查卡片是否满足可选择条件,是则设置相应应用的状态为可选择,执行步骤J,否则直接执行步骤J;
步骤G、收取引渡命令的数据域部分,得到引渡命令的全部内容,根据所述引渡命令的内容检查卡片是否满足引渡条件,是则重置相应应用关联的安全域,执行步骤J,否则直接执行步骤J;
步骤H、收取个人化命令的数据域部分,得到个人化命令的全部内容,根据所述个人化命令的内容检查卡片是否满足个人化条件,是则将相应数据派遣给相应应用,执行步骤J,否则直接执行步骤J;
步骤I、收取删除命令的数据域部分,得到删除命令的全部内容,根据所述删除命令的内容检查卡片是否满足删除条件,是则删除所述删除命令中指定的卡片内的相应数据,执行步骤J,否则直接执行步骤J;
步骤J、生成并返回相应返回数据和/或相应状态码给所述运行环境。
2.根据权利要求1所述方法,其特征在于,步骤C1、步骤D、步骤E、步骤F、步骤G、步骤H以及步骤I之前还包括:判断所述APDU数据是否为合法的命令头,是则检查卡片的当前状态,若卡片的当前状态为终止或锁定则执行步骤J,若卡片的当前状态既不是终止也不是锁定则顺序执行下一步;否则执行步骤J。
3.根据权利要求1所述方法,其特征在于,步骤C1、步骤D、步骤E、步骤F、步骤G、步骤H以及步骤I之前还包括:检查卡片的当前状态,若卡片的当前状态为终止或锁定则执行步骤J;若卡片的当前状态既不是终止也不是锁定则判断所述APDU数据是否为合法的命令头,是则顺序执行下一步,否则执行步骤J。
4.根据权利要求2或3所述的方法,其特征在于,所述步骤A中还包括:若所述指令码为其他有效数值,则根据所述APDU数据执行相应操作生成并返回相应返回数据和/或相应状态码给所述运行环境,若所述指令码为有效数值之外的数值则所述APDU数据为无效命令,生成并返回相应状态码给所述运行环境;
其中,所述其他有效数值包括:0xA4、0x78、0x7A、0x82、0x50、0xE2、0xF0、0xD8、0xF2以及0xCA。
5.根据权利要求2或3所述的方法,其特征在于,所述步骤B中还包括:若所述第一参数为0x02、0x04、0x0C、0x08、0x10和0x20之外的数值则所述APDU数据为无效命令,生成并返回相应状态码给所述运行环境。
6.根据权利要求1所述的方法,其特征在于,所述步骤C3具体包括:
步骤c3-1、判断所述预加载命令中的加载文件标识长度是否在预设范围内,是则检查所述预加载命令中的加载文件标识是否合法,若合法则执行步骤c3-2,若不合法则执行步骤C4;否则执行步骤C4;
步骤c3-2、检查卡片内是否已存在所述预加载命令中的加载文件标识对应的加载文件,是则执行步骤C4;否则判断所述预加载命令中的安全域标识长度是否在预设范围内,若在预设范围内则执行步骤c3-3,若不在预设范围内则执行步骤C4;
步骤c3-3、判断所述预加载命令中的安全域标识是否合法,是则检查卡片内是否存在所述预加载命令中的安全域标识对应的应用,若存在则执行步骤c3-4,若不存在则执行步骤C4;否则执行步骤C4;
步骤c3-4、判断所述预加载命令中的安全域标识对应的应用是否具有安全域权限,若有安全域权限则判断所述预加载命令中的安全域标识对应的应用是否为当前第一卡片数据管理模块,是则执行步骤c3-6,否则执行步骤c3-5;若没有安全域权限则执行步骤C4;
步骤c3-5、判断所述预加载命令中的安全域标识对应的应用的状态是否为个人化,是则执行步骤c3-6,否则执行步骤C4;
步骤c3-6、设置所述预加载命令中的加载文件标识对应的加载文件的关联安全域为所述预加载命令中的安全域标识对应的应用,判断所述预加载命令中的加载文件数据块哈希值长度是否为预设值,是则存储所述预加载命令中的加载文件数据块哈希值并设置哈希值验证标志,处理所述预加载命令中的加载参数域,执行步骤c3-7,否则执行步骤C4;
步骤c3-7、判断所述预加载命令中的加载令牌长度是否为0x80,是则发送计算加载令牌所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的计算结果,判断所述计算结果与所述预加载命令中的加载令牌是否相同,是则新建加载文件结构,初始化全局块编号,设置返回数据为0x00,执行步骤C4,否则执行步骤C4。
7.根据权利要求6所述的方法,其特征在于,所述计算加载令牌所需的数据包括:所述预加载命令的第一参数、第二参数、有效数据的长度、加载文件标识长度、加载文件标识、安全域标识长度、安全域标识、加载文件数据块哈希值长度、加载文件数据块哈希值、加载参数域长度以及加载参数域。
8.根据权利要求2或3所述的方法,其特征在于,所述步骤D具体包括:
步骤d1、收取加载命令的数据域部分,得到加载命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤d2,否则执行步骤d4;若当前第一卡片数据管理模块的状态不为个人化则执行步骤d4;
步骤d2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤d3,若为第二级别或第三级别则判断所述加载命令是否完整,当所述加载命令完整时执行步骤d3,当所述加载命令不完整时执行步骤d4,否则执行步骤d4;
步骤d3、对所述加载命令进行格式检查,若检查通过则以组件为单位处理所述加载命令中的加载文件数据块,当所述加载命令中的加载文件数据块为加载文件的最后一个加载文件数据块时提交存储可执行加载文件结构,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤d4,否则设置返回数据为0x00,执行步骤d4;若检查未通过则执行步骤d4;
步骤d4、生成相应状态码,返回设置的返回数据和/或生成的状态码。
9.根据权利要求8所述的方法,其特征在于,所述步骤d3具体包括:
步骤d3-1、检查所述加载命令中的第二参数是否等于全局块编号,是则判断所述全局块编号是否为0,若所述全局块编号为0则验证所述加载文件中的数据验证模式块信息,当验证通过时执行步骤d3-2,当验证不通过时执行步骤d4,若所述全局块编号不为0则执行步骤d3-2;否则执行步骤d4;
步骤d3-2、判断卡片内是否存在哈希值验证标志,是则保存所述加载命令中的加载文件数据块,执行步骤d3-3,否则直接执行步骤d3-3;
步骤d3-3、判断所述可执行加载文件结构中是否有未提交存储的组件,是则执行步骤d3-5,否则执行步骤d3-4;
步骤d3-4、检查所述加载命令中是否包含组件编号和组件大小,是则读取所述组件编号,判断所述编号是否合法,若所述编号合法则根据所述组件大小分派相应大小的空间,执行步骤d3-5,若不合法则执行步骤d4,否则执行步骤d4;
步骤d3-5、开始处理所述加载命令中的加载文件数据块,判断当前组件是否处理完成,是则提交当前组件的处理结果,执行步骤d3-6,否则执行步骤d3-6;
步骤d3-6、判断是否还有未处理的加载文件数据块数据,是则返回执行步骤d3-4,否则所述全局块编号自增,判断所述加载命令中的第一参数是否为0x80,若为0x80则执行步骤d3-7,若不为0x80则设置返回数据为0x00,执行步骤d4;
步骤d3-7、判断卡片内是否存在哈希值验证标志,是则对已存储的加载文件数据块进行哈希计算,判断计算结果是否等于卡内存储的加载文件数据块哈希值,若等于则执行步骤d3-8,若不等于则执行步骤d4,否则执行步骤d3-8;
步骤d3-8、提交存储所述可执行加载文件结构,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤d4。
10.根据权利要求9所述的方法,其特征在于,所述计算收条所需的数据包括:所述加载命令中的加载文件数据块对应的加载文件标识的长度、加载文件标识、安全域标识的长度和安全域标识。
11.根据权利要求2或3所述的方法,其特征在于,所述步骤E具体包括:
步骤e1、收取安装命令的数据域部分,得到安装命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤e2,否则执行步骤e4,;若当前第一卡片数据管理模块的状态不为个人化则执行步骤e4;
步骤e2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤e3,若为第二级别或第三级别则判断所述安装命令是否完整,当所述安装命令完整时执行步骤e3,当所述安装命令不完整时执行步骤e4,否则执行步骤e4;
步骤e3、对所述安装命令进行格式检查,若检查通过则处理所述安装命令中的安装参数域,根据所述安装命令的数据域中的数据注册应用以及设置所述安装命令中的应用标识对应的应用的状态和权限,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤e4;若检查未通过则执行步骤e4;
步骤e4、生成相应状态码,返回设置的返回数据和/生成的状态码。
12.根据权利要求11所述的方法,其特征在于,所述步骤e3具体包括:
步骤e3-1、检查所述安装命令中的可执行加载文件标识长度是否在预设范围内,是则判断卡片内是否存在所述安装命令中的可执行加载文件标识对应的可执行加载文件,若存在则执行步骤e3-2,若不存在则执行步骤e4;否则执行步骤e4;
步骤e3-2、判断所述安装命令中的可执行加载文件标识对应的可执行加载文件关联的安全域是否为当前第一卡片数据管理模块,是则判断所述安装命令中的可执行模块标识长度是否在预设范围内,若在预设范围内则执行步骤e3-3,若不在预设范围内则执行步骤e4;否则执行步骤e4;
步骤e3-3、判断卡片内是否存在所述安装命令中的可执行模块标识对应的可执行模块,是则判断所述安装命令中的应用标识长度是否在预设范围内,若在预设范围内则执行步骤e3-4,若不在预设范围内则执行步骤e4;否则执行步骤e4;
步骤e3-4:判断所述安装命令中的应用标识是否合法,是则判断卡片内是否存储所述安装命令中的应用标识对应的应用,若存在则执行步骤e4,若不存在则执行步骤e3-5;否则执行步骤e4;
步骤e3-5:判断所述安装命令中的应用权限长度是否为0x01,是则判断所述安装命令中的应用权限是否为0x04,若所述安装命令中的应用权限为0x04则执行步骤e3-6,若所述安装命令中的应用权限不为0x04则执行步骤e3-7;否则执行步骤e4;
步骤e3-6:判断所述安装命令中的第一参数是否为0x04,是则执行步骤e4,否则判断第二卡片数据管理模块是否具有默认选择权限,若具有则执行步骤e3-7,若不具有则执行步骤e4;
步骤e3-7:判断所述安装命令中的应用权限的低位端起第1比特位、第6比特位和第7比特位是否均为0,是则检查所述安装命令中的应用权限的高位端起第1比特位,若所述高位端起第1比特位为1则执行步骤e3-8,若所述高位端起第1比特位不为1则执行步骤e4;否则执行步骤e3-8;
步骤e3-8:处理所述安装命令中的安装参数域,判断所述安装命令中的安装令牌长度是否为0x80,是则执行步骤e3-9,否则执行步骤e4;
步骤e3-9:发送计算安装令牌所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的计算结果,判断所述计算结果和所述安装命令中的安装令牌是否相同,是则根据所述安装命令的数据域中的数据注册应用,执行步骤e3-10,否则执行步骤e4;
步骤e3-10:判断所述安装命令中的第一参数是否为0x04,是则将所述安装命令中的应用标识对应的应用的状态设置为安装,执行步骤e3-11,否则将所述安装命令中的应用标识对应的应用的状态设置为可选择,检查所述安装命令中的应用权限,若所述安装命令中的应用权限为0x04则将所述安装命令中的应用标识对应的应用设置为默认应用,执行步骤e3-11,若所述安装命令中的应用权限不为0x04则直接执行步骤e3-11;
步骤e3-11:发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤e4。
13.根据权利要求12所述的方法,其特征在于,
所述计算令牌所需的数据包括:所述安装命令的第一参数、第二参数、有效数据的长度、可执行加载文件标识长度、可执行加载文件标识、可执行模块标识长度、可执行模块标识、应用标识长度、应用标识、应用权限长度、应用权限、安装参数域长度以及安装参数域;
所述计算收条所需的数据包括:所述安装命令的可执行加载文件标识长度、可执行加载文件标识、应用标识长度以及应用标识。
14.根据权利要求2或3所述的方法,其特征在于所述步骤F具体包括:
步骤f1、收取可选择命令的数据域部分,得到可选择命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤f2,否则执行步骤f4;若当前第一卡片数据管理模块的状态不是个人化则执行步骤f4;
步骤f2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤f3,若为第二级别或第三级别则判断所述可选择命令是否完整,当所述可选择命令完整时执行步骤f3,当所述可选择命令不完整时执行步骤f4,否则执行步骤f4;
步骤f3、对所述可选择命令进行格式检查,若检查通过则将所述可选择命令中的应用标识对应的应用的状态设置为可选择,并当所述可选择命令中的第一参数不为0x04时设置返回数据为0x00,执行步骤f4;当所述可选择命令中的第一参数为0x04且当前第二卡片数据管理模块具有默认选择权限时设置所述可选择命令中的应用标识对应的应用为默认应用,设置返回数据为0x00,执行步骤f4,当所述可选择命令中的第一参数为0x04且当前第二卡片数据管理模块不具有默认选择权限时直接执行步骤f4;若检查未通过则执行步骤f4;
步骤f4、生成相应状态码,返回设置的返回数据和/生成的状态码。
15.根据权利要求14所述的方法,其特征在于,所述步骤f3具体包括:
步骤f3-1、判断所述可选择命令的数据域中的前两个字节数据是否均为0x00,是则判断所述可选择命令中的应用标识长度是否在预设范围内,若在预设范围内则执行步骤f3-2,若不在预设范围内则执行步骤f4;否则执行步骤f4;
步骤f3-2、判断卡片内是否有与所述可选择命令中的应用标识对应的应用,是则检查所述可选择命令中的应用标识对应的应用的状态,若为安装则执行步骤f3-3,若不为安装则执行步骤f4;否则执行步骤f4;
步骤f3-3、判断所述可选择命令中的应用权限长度是否为0x00,是则判断所述可选择命令中应用权限之后的一个字节数据是否为0x00,若为0x00则执行步骤f3-4,若不为0x00则执行步骤f4;否则执行步骤f4;
步骤f3-4、判断所述可选择命令中的安装令牌长度是否为0x80,是则发送计算安装令牌所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的计算结果,判断所述计算结果与所述可选择命令中的安装令牌是否相同,若相同则将所述可选择命令中的应用标识对应的应用状态设为可选择,执行步骤f3-5,若不相同则执行步骤f4;否则执行步骤f4;
步骤f3-5、判断所述可选择命令中的第一参数是否为0x04,是则判断第二卡片数据管理模块是否具有默认选择权限,若具有则设置所述可选择命令中的应用标识对应的应用为默认应用,设置返回数据为0x00,若不具有则执行步骤f4;否则设置返回数据为0x00,执行步骤f4。
16.根据权利要求15所述的方法,其特征在于,所述计算安装令牌所需的数据具体为:所述可选择命令的第一参数、第二参数、有效数据长度、可执行加载文件标识长度、0x00、0x00、应用标识长度、应用标识、应用权限长度、应用权限以及0x00。
17.根据权利要求2或3所述的方法,其特征在于所述步骤G具体包括:
步骤g1、收取引渡命令的数据域部分,得到引渡命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤g2,否则执行步骤g4;若当前第一卡片数据管理模块的状态不为个人化则执行步骤g4;
步骤g2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤g3,若为第二级别或第三级别则判断所述引渡命令是否完整,当所述引渡命令完整时执行步骤g3,当所述引渡命令不完整时执行步骤g4,否则执行步骤g4;
步骤g3、对所述引渡命令进行格式检查,若检查通过则将所述引渡命令中的应用标识对应的应用关联的安全域修改为所述引渡命令中的安全域标识对应的应用,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤g4,若检查未通过则执行步骤g4;
步骤g4、生成相应状态码,返回设置的返回数据和/生成的状态码。
18.根据权利要求17所述的方法,其特征在于,所述步骤g3具体包括:
步骤g3-1、判断所述引渡命令中的安全域标识长度是否在预设范围内,是则判断卡片内是否存在所述引渡命令中的安全域标识对应的应用,若存在则执行步骤g3-2,若不存在则执行步骤g4;否则执行步骤g4;
步骤g3-2、判断所述引渡命令中的安全域标识对应的应用是否为当前卡片提供商模块,是则执行步骤g4;否则判断所述引渡命令中安全域标识之后的一个字节数据是否为0x00,是则执行步骤g3-3,否则执行步骤g4;
步骤g3-3、判断所述引渡命令中的安全域标识对应的应用的状态是否为安装,是则判断所述引渡命令中的应用标识长度是否在预设范围内,若在预设范围内则执行步骤g3-4,若不在预设范围内则执行步骤g4;否则执行步骤g4;
步骤g3-4、判断卡片内是否存在所述引渡命令中的应用标识对应的应用,是则判断所述引渡命令中的应用标识对应的应用关联的安全域是否为当前第一卡片数据管理模块,若为当前第一卡片数据管理模块则执行步骤g3-5,若不为当前第一卡片数据管理模块则执行步骤g4;否则执行步骤g4;
步骤g3-5、判断所述引渡命令中的安全域标识对应的应用是否具有安全域权限,是则判断所述引渡命令中的安全域标识对应的应用的状态是否为锁定,若为锁定则执行步骤g4,若不为锁定则执行步骤g3-6;否则执行步骤g4;
步骤g3-6、判断所述引渡命令中的安全域标识对应的应用的状态是否为个人化,若为个人化则判断所述引渡命令中的应用标识后的两个字节数据是否均为0x00,是则执行步骤g3-7,否则执行步骤g4;若不为个人化则执行步骤g4;
步骤g3-7、判断所述引渡命令中的引渡令牌长度是否均为0x80,是则发送计算引渡令牌所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的计算结果,判断所述计算结果是否与所述引渡命令中的引渡令牌相同,若相同则执行步骤g3-8,若不相同则执行步骤g4;否则执行步骤g4;
步骤g3-8、判断所述引渡命令中的应用标识对应的应用是否具有安全域权限,是则执行步骤g4,否则将所述引渡命令中的应用标识对应的应用关联的安全域修改为所述引渡命令中的安全域标识对应的应用,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤g4。
19.根据权利要求18所述的方法,其特征在于,
所述计算引渡令牌所需的数据具体为:所述引渡命令的第一参数、第二参数、有效数据长度、安全域标识长度、安全域标识、0x00、应用标识长度、应用标识、0x00以及0x00;
所述计算收条所需的数据包括所述引渡命令中的应用标识对应的应用的:应用标识长度、应用标识、引渡之前关联的安全域的安全域标识长度和安全域标识、引渡之后关联的安全域的安全域标识长度和安全域标识。
20.根据权利要求2或3所述的方法,其特征在于,所述步骤H具体包括:
步骤h1、收取个人化命令的数据域部分,得到个人化命令的全部内容,判断当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则执行步骤h2,否则执行步骤h4;
步骤h2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤h3,若为第二级别或第三级别则判断所述个人化命令是否完整,当所述个人化命令完整时执行步骤h3,当所述个人化命令不完整时执行步骤h4;否则执行步骤h4;
步骤h3、对所述可选择命令进行格式检查,若检查通过则将所述个人化命令中的应用标识对应的应用的状态设置为个人化,设置返回数据为0x00,执行步骤h4,若检查未通过则执行步骤h4;
步骤h4、生成相应状态码,返回设置的返回数据和/生成的状态码。
21.根据权利要求20所述的方法,其特征在于,所述步骤h3具体包括:
步骤h3-1、判断所述个人化命令的数据域的前两个字节数据是否均为0x00,是则判断所述个人化命令中的应用标识长度是否在预设范围内,若在预设范围内则执行步骤h3-2,若不在预设范围内则执行步骤h4;否则执行步骤h4;
步骤h3-2、判断卡片内是否存在所述个人化命令中的应用标识对应的应用,是则判断所述个人化命令中的应用标识对应的应用关联的安全域是否为当前第一卡片数据管理模块,若为当前第一卡片数据管理模块则执行步骤h3-3,若不为当前第一卡片数据管理模块则执行步骤h4;否则执行步骤h4;
步骤h3-3、判断所述个人化命令的最后三个字节数据是否均为0x00,是则将所述个人化命令中的应用标识对应的应用的状态设置为个人化,,设置返回数据为0x00,执行步骤h4,否则执行步骤h4。
22.根据权利要求2或3所述的方法,其特征在于所述步骤I具体包括:
步骤i1、收取删除命令的数据域部分,得到删除命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤i2,否则执行步骤i4;若当前第一卡片数据管理模块的状态不为个人化则执行步骤i4;
步骤i2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤i3,若为第二级别或第三级别则判断所述删除命令是否完整,当所述删除命令完整时执行步骤i3,当所述删除命令不完整时执行步骤i4,否则执行步骤i4;
步骤i3、对所述删除命令进行格式检查,若检查通过则根据所述删除命令中的数据域标识删除相应可执行文件和/或相应应用,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤i4,若检查未通过则执行步骤i4;
步骤i4、生成相应状态码,返回设置的返回数据和/生成的状态码。
23.根据权利要求22所述的方法,其特征在于,所述步骤i3具体包括:
步骤i3-1、判断所述删除命令的数据域中的第一个字节数据是否为0x4f,是则判断所述删除命令中的数据域标识长度是否在预设范围内,若在预设范围内则执行步骤i3-2,若不在预设范围内则执行步骤i4;否则执行步骤i4;
步骤i3-2、判断卡片内是否存在所述删除命令中的数据域标识对应的应用,是则判断所述删除命令中的第二参数是否为0x80,是则执行步骤i3-3,否则执行步骤i3-5;否则执行步骤i3-3;
步骤i3-3、判断卡片内是否存在所述删除命令中的数据域标识对应的可执行文件,若存在则判断所述删除命令中的数据域标识对应的可执行文件关联的安全域是否为当前第一卡片数据管理模块,是则执行步骤i3-4,否则执行步骤i4;若不存在则执行步骤i4;
步骤i3-4、判断所述删除命令中的第二参数是否为0x80,是则删除所述删除命令中的数据域标识对应的可执行文件以及所述可执行文件对应的全部应用,执行步骤i3-7,否则删除所述删除命令中的数据域标识对应的可执行文件,执行步骤i3-7;
步骤i3-5、判断所述删除命令中的数据域标识对应的应用是否为其他应用或其他可执行文件关联的安全域,是则执行步骤i4;否则判断所述删除命令中的数据域标识对应的应用是否为当前第一卡片数据管理模块,若为当前第一卡片数据管理模块则执行步骤i4,若不为当前第一卡片数据管理模块则执行步骤i3-6;
步骤i3-6、判断所述删除命令中的数据域标识对应的应用关联的安全域是否为当前第一卡片数据管理模块,是则删除与所述删除命令中的数据域标识对应的应用,执行步骤i3-7,否则执行步骤i4;
步骤i3-7、发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤i4。
24.根据权利要求23所述的方法,其特征在于,所述计算收条所需的数据包括:所述删除命令中的数据域标识长度和数据域标识。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310146939.4A CN103218560B (zh) | 2013-04-25 | 2013-04-25 | 一种管理卡片数据的实现方法 |
PCT/CN2014/076030 WO2014173298A1 (zh) | 2013-04-25 | 2014-04-23 | 一种管理卡片上应用的方法 |
US14/786,213 US10324781B2 (en) | 2013-04-25 | 2014-04-23 | Method for managing application on card |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310146939.4A CN103218560B (zh) | 2013-04-25 | 2013-04-25 | 一种管理卡片数据的实现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103218560A CN103218560A (zh) | 2013-07-24 |
CN103218560B true CN103218560B (zh) | 2015-07-22 |
Family
ID=48816337
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310146939.4A Active CN103218560B (zh) | 2013-04-25 | 2013-04-25 | 一种管理卡片数据的实现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103218560B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10324781B2 (en) | 2013-04-25 | 2019-06-18 | Feitian Technologies Co., Ltd. | Method for managing application on card |
CN103544037B (zh) | 2013-10-29 | 2016-08-17 | 飞天诚信科技股份有限公司 | 一种支持OpenSC的软硬件驱动的实现方法 |
CN103729179B (zh) * | 2013-12-25 | 2017-02-15 | 飞天诚信科技股份有限公司 | 安全执行委托管理命令的方法 |
CN104092546B (zh) * | 2014-06-30 | 2017-07-14 | 飞天诚信科技股份有限公司 | 智能卡上安全域的生成方法 |
CN104182699B (zh) * | 2014-08-25 | 2017-02-22 | 飞天诚信科技股份有限公司 | 一种收条验证方法及系统 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143608A (zh) * | 2010-12-29 | 2011-08-03 | 北京握奇数据系统有限公司 | 一种智能卡及其处理指令的方法 |
CN102567522A (zh) * | 2011-12-28 | 2012-07-11 | 北京握奇数据系统有限公司 | 一种智能卡文件系统的管理方法及设备 |
-
2013
- 2013-04-25 CN CN201310146939.4A patent/CN103218560B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102143608A (zh) * | 2010-12-29 | 2011-08-03 | 北京握奇数据系统有限公司 | 一种智能卡及其处理指令的方法 |
CN102567522A (zh) * | 2011-12-28 | 2012-07-11 | 北京握奇数据系统有限公司 | 一种智能卡文件系统的管理方法及设备 |
Non-Patent Citations (2)
Title |
---|
xuhanbing76.卡片规范(命令参考).《百度文库》.2010,第11.2节、第11.5-11.6节、表11-41. * |
程恒.Java智能卡安全运行环境的设计与实现.《中国优秀硕士学位论文全文数据库信息科技辑(月刊)》.2009,(第07期),第3.1.1节、第4.2.1节、附图4.3. * |
Also Published As
Publication number | Publication date |
---|---|
CN103218560A (zh) | 2013-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10715334B2 (en) | Methods and apparatus for validating a digital signature | |
CN103218560B (zh) | 一种管理卡片数据的实现方法 | |
CN109074579B (zh) | 使用分布式散列表和区块链保护计算机软件的方法及系统 | |
US10715313B2 (en) | Systems and computer-based methods of document certification and publication | |
CN113271211A (zh) | 一种数字身份验证系统、方法、电子设备及存储介质 | |
CN104753670B (zh) | 基于智能pos终端的多应用安全管理系统及其方法 | |
CN114218592A (zh) | 敏感数据的加解密方法、装置、计算机设备及存储介质 | |
CN102855587A (zh) | 用于电子商务网站的电子发票生成系统 | |
CN105378748B (zh) | 用于在应用的两个实例之间传送用户数据的方法 | |
CN102202306A (zh) | 移动安全认证终端及方法 | |
CH714242B1 (it) | Metodo e sistema per la generazione di identità federate inizializzate dall'utente. | |
CN107980132A (zh) | 一种apk签名认证方法及系统 | |
CN113112252B (zh) | 基于区块链的资源转移方法、装置、电子设备及存储介质 | |
CN110516417A (zh) | 一种智能合约的权限验证方法及装置 | |
CN106709324A (zh) | 用于验证应用安全性的方法和设备 | |
CN108319827A (zh) | 一种基于osgi框架的api权限管理插件及方法 | |
CN110084977A (zh) | 不动产登记信息的自助查询方法、系统、计算机设备及存储介质 | |
CN104766172A (zh) | 一种可验证的印章取模方法 | |
CN103632078B (zh) | 硬证书生成方法和系统、证书存储设备 | |
CN107862358B (zh) | 综合发行智能卡的方法及装置 | |
CN110224818B (zh) | 跨浏览器的签名license控制方法 | |
US10324781B2 (en) | Method for managing application on card | |
CN111555887A (zh) | 区块链证书兼容性处理方法、装置及计算机存储介质 | |
JP4201107B2 (ja) | 埋め込み型権限委譲方法 | |
ITTO20010771A1 (it) | Metodo di autenticazione mediante dispositivo di memorizzazione. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |