一种管理卡片数据的实现方法

文档序号:6402472阅读:151来源:国知局
专利名称:一种管理卡片数据的实现方法
一种管理卡片数据的实现方法技术领域
本发明属于智能卡领域,特别涉及一种管理卡片数据的实现方法。
背景技术
为了给用户提供更多的便利,现今的智能卡上除了发卡方提供的内容外,还可以安装多个应用,通常情况下,发卡方并不会管理所有的卡片内容,尤其是不属于发卡方的卡片内容,因此,需要一种授予第三方通过预认证后来代理管理卡片内容的机制,所述管理如加载、安装、引渡和删除等。
申请人在实现本发明的过程中发现,在现有技术中尚无代理管理卡片内容机制的具体实现方法。发明内容
本发明的目的是为了克服现有技术的缺陷,提出一种管理卡片数据的实现方法。
本发明方法是通过下述技术方案实现的:
一种管理卡片数据的实现方法,其基本实施过程如下:
当第一卡片数据管理模块接收到运行环境派遣的应用协议数据单元APDU数据后,将自身作为当前第一卡片数据管理模块,执行以下步骤:
步骤A、检查所述APDU数据的指令码,若所述指令码为有效数值OxES则执行步骤D,若所述指令码为有效数值0xE6则执行步骤B,若所述指令码为有效数值0xE4则执行步骤1 ;
步骤B、检查所述APDU数据的第一参数,若所述第一参数为0x02则执行步骤C,若所述第一参数为0x04或OxOC则执行步骤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 ;步骤1、收取删除命令的数据域部分,得到删除命令的全部内容,根据所述删除命令的内容检查卡片是否满足删除条件,是则删除所述删除命令中指定的卡片内的相应数据,执行步骤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,所述方法具体包括当第—^片数据管理模块接收到运行环境派遣的APDlXApplicationProtocolDataUnit,应用协议数据单元)数据后将自身作为当前第一卡片数据管理模块,执行以下步骤:步骤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数据的Pl (第一参数),若为0x02则执行步骤201至步骤228 ;若为0x04或OxOC则执行步骤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 (数据域长度)不小于OxOA时,所述APDU数据为合法的预加载命令的命令头;
步骤202:判断卡片的当前状态是否为TERMINATED (终止)或CARD_L0CKED (锁定),是则执行步骤227,否则执行步骤203 ;
具体地,通过卡片的状态属性判断其状态,卡片的状态属性为一个字节数据,从高位到低位依次为b8 b7 b6 b5 b4 b3 b2 bl,卡片的状态包括准备0P_READY、初始化INITIALIZED、安全 SECURED、锁定 CARD_L0CKED 和终止 TERMINATED,参见下表:
权利要求
1.一种管理卡片数据的实现方法,其特征在于,当第一卡片数据管理模块接收到运行环境派遣的应用协议数据单元APDU数据后,将自身作为当前第一卡片数据管理模块,执行以下步骤: 步骤A、检查所述APDU数据的指令码,若所述指令码为有效数值0xE8则执行步骤D,若所述指令码为有效数值0xE6则执行步骤B,若所述指令码为有效数值0xE4则执行步骤I ; 步骤B、检查所述APDU数据的第一参数,若所述第一参数为0x02则执行步骤C,若所述第一参数为0x04或OxOC则执行步骤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 ; 步骤1、收取删除命令的数据域部分,得到删除命令的全部内容,根据所述删除命令的内容检查卡片是否满足删除条件,是则删除所述删除命令中指定的卡片内的相应数据,执行步骤J,否则直接执行步骤J ; 步骤J、生成并返回相应返回数据和/或相应状态码给所述运行环境。
2.根据权利要求1所述方法,其特征在于,步骤C、步骤D、步骤E、步骤F、步骤G、步骤H以及步骤I之前还包括:判断所述APDU数据是否为合法的命令头,是则检查卡片的当前状态,若卡片的当前状态为终止或锁定则执行步骤J,若卡片的当前状态既不是终止也不是锁定则顺序执行下一步;否则执行步骤J。
3.根据权利要求1所述方法,其特征在于,步骤C、步骤D、步骤E、步骤F、步骤G、步骤H以及步骤I之前还包括:检查卡片的当前状态,若卡片的当前状态为终止或锁定则执行步骤J ;若卡片的当前状态既不是终止也不是锁定则判断所述APDU数据是否为合法的命令头,是则顺序执行下一步,否则执行步骤J。
4.根据权利要求2或3所述的方法,其特征在于,所述步骤A中还包括:若所述指令码为其他有效数值,则根据所述APDU数据执行相应操作生成并返回相应返回数据和/或相应状态码给所述运行环境,若所述指令码为有效数值之外的数值则所述APDU数据为无效命令,生成并返回相应状态码给所述运行环境; 其中,所述其他有效数值包括:0xA4、0x78、0x7A、0x82、0x50、0xE2、0xF0、0xD8、0xF2 以及 OxCA。
5.根据权利要求2或3所述的方法,其特征在于,所述步骤B中还包括:若所述第一参数为0x02、0x04、0x0C、0x08、0xl0和0x20之外的数值则所述APDU数据为无效命令,生成并返回相应状态码给所述运行环境。
6.根据权利要求2或3所述的方法,其特征在于,所述步骤C具体包括: 步骤Cl、收取预加载命令的数据域部分,得到预加载命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤c2,否则执行步骤c4 ;若当前第一卡片数据管理模块的状态不为个人化则执行步骤c4 ; 步骤c2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤c3,若为第二级别或第三级别则判断所述预加载命令是否完整,当所述预加载命令完整时执行步骤c3,当所述预加载命令不完整时执行步骤c4,否则执行步骤c4 ; 步骤c3、对所述预加载命令进行格式检查,若检查通过则设置所述预加载命令中的加载文件标识对应的加载文件的关联安全域为所述预加载命令中的安全域标识对应的应用,存储所述预加载命令中的加载文件数据块哈希值并设置哈希值验证标识,处理所述预加载命令中的加载参数域,新建加载文件结构,初始化全局块编号,设置返回数据为0x00,执行步骤c4,若检查未通过则执行步骤c4 ; 步骤c4、生成相应状态码,返回设置的返回数据和/或生成的状态码。
7.根据权利要求6所述的方法,其特征在于,所述步骤c3具体包括: 步骤c3-l、判断所述预加载命令中的加载文件标识长度是否在预设范围内,是则检查所述预加载命令中的加载文件标识是否合法,若合法则执行步骤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。
8.根据权利要求7所述的方法,其特征在于,所述计算加载令牌所需的数据包括:所述预加载命令的第一参数、第二参数、有效数据的长度、加载文件标识长度、加载文件标识、安全域标识长度、安全域标识、加载文件数据块哈希值长度、加载文件数据块哈希值、加载参数域长度以及加载参数域。
9.根据权利要求2或3所述的方法,其特征在于,所述步骤D具体包括: 步骤dl、收取加载命令的数据域部分,得到加载命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤d2,否则执行步骤d4 ;若当前第一卡片数据管理模块的状态不为个人化则执行步骤d4 ; 步骤d2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤d3,若为第二级别或第三级别则判断所述加载命令是否完整,当所述加载命令完整时执行步骤d3,当所述加载命令不完整时执行步骤d4,否则执行步骤d4 ; 步骤d3、对所述加载命令进行格式检查,若检查通过则以组件为单位处理所述加载命令中的加载文件数据块,当所述加载命令中的加载文件数据块为加载文件的最后一个加载文件数据块时提交 存储可执行加载文件结构,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤d4,否则设置返回数据为0x00,执行步骤d4 ;若检查未通过则执行步骤d4 ; 步骤d4、生成相应状态码,返回设置的返回数据和/或生成的状态码。
10.根据权利要求9所述的方法,其特征在于,所述步骤d3具体包括: 步骤d3-l、检查所述加载命令中的第二参数是否等于全局块编号,是则判断所述全局块编号是否为0,若所述全局块编号为O则验证所述加载文件中的数据验证模式块信息,当验证通过时执行步骤d3-2,当验证不通过时执行步骤d4,若所述全局块编号不为O则执行步骤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-5,否则所述全局块编号自增,判断所述加载命令中的第一参数是否为0x80,若为0x80则执行步骤d3-7,若不为0x80则设置返回数据为0x00,执行步骤d4 ; 步骤d3-7、判断卡片内是否存在哈希值验证标志,是则对已存储的加载文件数据块进行哈希计算,判断计算结果是否等于卡内存储的加载文件数据块哈希值,若等于则执行步骤d3-8,若不等于则执行步骤d4,否则执行步骤d3-8 ; 步骤d3-8、提交存储所述可执行加载文件结构,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤d4。
11.根据权利要求10所述的方法,其特征在于,所述计算收条所需的数据包括:所述加载命令中的加载文件数据块对应的加载文件标识的长度、加载文件标识、安全域标识的长度和安全域标识。
12.根据权利要求2或3所述的方法,其特征在于,所述步骤E具体包括: 步骤el、收取安装命令的数据域部分,得到安装命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤e2,否则执行步骤e4,;若当前第一卡片数据管理模块的状态不为个人化则执行步骤e4 ; 步骤e2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤e3,若为第二级别或第三级别则判断所述安装命令是否完整,当所述安装命令完整时执行步骤e3,当所述安装命令不完整时执行步骤e4,否则执行步骤e4 ; 步骤e3、对所述安装命令进行格式检查,若检查通过则处理所述安装命令中的安装参数域,根据所述安装命令的数据域中的数据注册应用以及设置所述安装命令中的应用标识对应的应用的状态和权限,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤e4 ;若检查未通过则执行步骤e4 ; 步骤e4、生成相应状态码,返回设置的返回数据和/生成的状态码。
13.根据权利要求12所述的方法,其特征在于,所述步骤e3具体包括: 步骤e3-l、检查所述安装命令中的可执行加载文件标识长度是否在预设范围内,是则判断卡片内是否存在所述安装命令中的可执行加载文件标识对应的可执行加载文件,若存在则执行步骤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则执行步骤e4,若所述安装命令中的应用权限不为0x04则执行步骤e3-6 ;否则执行步骤e4 ; 步骤e3-6:判断所述安装命令中的第一参数是否为0x04,是则执行步骤e4,否则判断第二卡片数据管理模块是否具有默认选择权限,若具有则执行步骤e3-7,若不具有则执行步骤e4 ; 步骤e3-7:判断所述安装命令中的应用权限的低位端起第I比特位、第6比特位和第7比特位是否均为0,是则检查所述安装命令中的应用权限的高位端起第I比特位,若所述高位端起第I比特位为I则执行步骤e3-8,若所述高位端起第I比特位不为I则执行步骤e4 ;否则执行步骤e3_8 ; 步骤e3-8:处理所述安装命令中的安装参数域,判断所述安装命令中的安装令牌长度是否为0x80,是则执行步骤e3-9,否则执行步骤e4 ; 步骤e3-9:发送计算安装令牌所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的计算结果,判断所述计算结果和所述安装命令中的安装令牌是否相同,是则根据所述安装命令的 数据域中的数据注册应用,执行步骤e3_10,否则执行步骤e4 ;步骤e3-10:判断所述安装命令中的第一参数是否为0x04,是则将所述安装命令中的应用标识对应的应用的状态设置为安装,执行步骤e3-l I,否则将所述安装命令中的应用标识对应的应用的状态设置为可选择,检查所述安装命令中的应用权限,若所述安装命令中的应用权限为0x04则将所述安装命令中的应用标识对应的应用设置为默认应用,执行步骤e3-lI,若所述安装命令中的应用权限不为0x04则直接执行步骤e3_ll ; 步骤e3-ll:发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤e4。
14.根据权利要求13所述的方法,其特征在于,所述计算令牌所需的数据包括:所述安装命令的第一参数、第二参数、有效数据的长度、可执行加载文件标识长度、可执行加载文件标识、可执行模块标识长度、可执行模块标识、应用标识长度、应用标识、应用权限长度、应用权限、安装参数域长度以及安装参数域;所述计算收条所需的数据包括:所述安装命令的可执行加载文件标识长度、可执行加载文件标识、应用标识长度以及应用标识。
15.根据权利要求2或3所述的方法,其特征在于所述步骤F具体包括: 步骤H、收取可选择命令的数据域部分,得到可选择命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化或可选择则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤f2,否则执行步骤f4 ;若当前第一卡片数据管理模块的状态既不是个人化也不是可选择则执行步骤f4 ; 步骤f2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤f3,若为第二级别或第三级别则判断所述可选择命令是否完整,当所述可选择命令完整时执行步骤f3,当所述可选择命令不完整时执行步骤f4,否则执行步骤f4 ; 步骤f3、对所述可选择命令进行格式检查,若检查通过则将所述可选择命令中的应用标识对应的应用的状态设置为可选择,并当所述可选择命令中的第一参数不为0x04时设置返回数据为0x00,执行步骤f4 ;当所述可选择命令中的第一参数为0x04且当前第二卡片数据管理模块具有默认选择权限时设置所述可选择命令中的应用标识对应的应用为默认应用,设置返回数据为0x00,执行步骤f4,当所述可选择命令中的第一参数为0x04且当前第二卡片数据管理模块不具有默认选择权限时直接执行步骤f4 ;若检查未通过则执行步骤f4 ; 步骤f4、生成相应状态码,返回设置的返回数据和/生成的状态码。
16.根据权利要求15所述的方法,其特征在于,所述步骤f3具体包括: 步骤f3-l、判断所述可选择命令的数据域中的前两个字节数据是否均为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。
17.根据权利要求16所述的方法,其特征在于,所述计算安装令牌所需的数据具体为:所述可选择命令的第一参数 、第二参数、有效数据长度、可执行加载文件标识长度、0x00、0x00、应用标识长度、应用标识、应用权限长度、应用权限以及0x00。
18.根据权利要求2或3所述的方法,其特征在于所述步骤G具体包括: 步骤gl、收取引渡命令的数据域部分,得到引渡命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤g2,否则执行步骤g4 ;若当前第一卡片数据管理模块的状态不为个人化则执行步骤g4 ; 步骤g2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤g3,若为第二级别或第三级别则判断所述引渡命令是否完整,当所述引渡命令完整时执行步骤g3,当所述引渡命令不完整时执行步骤g4,否则执行步骤g4 ; 步骤g3、对所述引渡命令进行格式检查,若检查通过则将所述引渡命令中的应用标识对应的应用关联的安全域修改为所述引渡命令中的安全域标识对应的应用,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤g4,若检查未通过则执行步骤g4 ;步骤g4、生成相应状态码,返回设置的返回数据和/生成的状态码。
19.根据权利要求18所述的方法,其特征在于,所述步骤g3具体包括: 步骤g3_l、判断所述引渡命令中的安全域标识长度是否在预设范围内,是则判断卡片内是否存在所述引渡命令中的安全域标识对应的应用,若存在则执行步骤g3_2,若不存在则执行步骤g4 ;否则执行步骤g4 ; 步骤g3_2、判断所述引渡命令中的安全域标识对应的应用是否为当前卡片提供商模块,是则执行步骤g4 ;否则判断所述引渡命令中安全域标识之后的一个字节数据是否为0x00,是则执行步骤g3-3,否则执行步骤g4 ; 步骤g3_3、判断所述引渡命令中的安全域标识对应的应用的状态是否为安装,是则判断所述引渡命令中的应用标识长度是否在预设范围内,若在预设范围内则执行步骤g3_4,若不在预设范围内则执行步骤g4 ;否则执行步骤g4 ; 步骤g3-4、判断卡片内是否存在所述引渡命令中的应用标识对应的应用,是则判断所述引渡命令中的应用标识对应的应用关联的安全域是否为当前第一卡片数据管理模块,若为当前第一卡片数据管理模块则执行步骤g3_4,若不为当前第一卡片数据管理模块则执行步骤g4 ;否则执行步骤g4 ; 步骤g3_5、判断所述引渡命令中的安全域标识对应的应用是否具有安全域权限,是则判断所述引渡命令中的安全域标识对应的应用的状态是否为锁定,若为锁定则执行步骤g4,若不为锁定则执行步骤g3-6 ;否则执行步骤g4 ; 步骤g3-6、判断所述引渡命令中的安全域标识对应的应用的状态是否为个人化,若为个人化则判断所述引渡命令中的应用标识后的两个字节数据是否均为0x00,是则执行步骤g3_6,否则执行步骤g4 ; 若不为个人化则执行步骤g4 ; 步骤g3_7、判断所述引渡命令中的引渡令牌长度是否均为0x80,是则发送计算引渡令牌所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的计算结果,判断所述计算结果是否与所述引渡命令中的引渡令牌相同,若相同则执行步骤g3_8,若不相同则执行步骤g4 ;否则执行步骤g4 ; 步骤g3-8、判断所述引渡命令中的应用标识对应的应用是否具有安全域权限,是则执行步骤g4,否则将所述引渡命令中的应用标识对应的应用关联的安全域修改为所述引渡命令中的安全域标识对应的应用,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤g4。
20.根据权利要求19所述的方法,其特征在于, 所述计算引渡令牌所需的数据具体为:所述引渡命令的第一参数、第二参数、有效数据长度、安全域标识长度、安全域标识、0x00、应用标识长度、应用标识、0x00以及0x00 ; 所述计算收条所需的数据包括所述引渡命令中的应用标识对应的应用的:应用标识长度、应用标识、引渡之前关联的安全域的安全域标识长度和安全域标识、引渡之后关联的安全域的安全域标识长度和安全域标识。
21.根据权利要求2或3所述的方法,其特征在于,所述步骤H具体包括: 步骤h1、收取个人化命令的数据域部分,得到个人化命令的全部内容,判断当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则执行步骤h2,否则执行步骤h4;步骤h2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤h3,若为第二级别或第三级别则判断所述个人化命令是否完整,当所述个人化命令完整时执行步骤h3,当所述个人化命令不完整时执行步骤h4 ;否则执行步骤h4 ; 步骤h3、对所述可选择命令进行格式检查,若检查通过则将所述个人化命令中的应用标识对应的应用的状态设置为个人化,设置返回数据为0x00,执行步骤h4,若检查未通过则执行步骤h4 ; 步骤h4、生成相应状态码,返回设置的返回数据和/生成的状态码。
22.根据权利要求21所述的方法,其特征在于,所述步骤h3具体包括: 步骤h3-l、判断所述个人化命令的数据域的前两个字节数据是否均为0x00,是则判断所述个人化命令中的应用标识长度是否在预设范围内,若在预设范围内则执行步骤h3-2,若不在预设范围内则执行步骤h4 ;否则执行步骤h4 ; 步骤h3-2、判断卡片内是否存在所述个人化命令中的应用标识对应的应用,是则判断所述个人化命令中的应用标识对应的应用关联的安全域是否为当前第一卡片数据管理模块,若为当前第一卡片数据管理模块则执行步骤h3-3,若不为当前第一卡片数据管理模块则执行步骤h4 ;否则 执行步骤h4 ; 步骤h3-3、判断所述个人化命令的最后三个字节数据是否均为0x00,是则将所述个人化命令中的应用标识对应的应用的状态设置为个人化,,设置返回数据为0x00,执行步骤h4,否则执行步骤h4。
23.根据权利要求2或3所述的方法,其特征在于所述步骤I具体包括: 步骤il、收取删除命令的数据域部分,得到删除命令的全部内容,检查当前第一卡片数据管理模块的状态,若当前第一卡片数据管理模块的状态为个人化则判断当前第一卡片数据管理模块是否具有代理权限,是则执行步骤i2,否则执行步骤i4 ;若当前第一卡片数据管理模块的状态不为个人化则执行步骤i4 ; 步骤i2、判断卡片是否满足安全条件,是则检查卡片的安全级别,若为第一级别则执行步骤i3,若为第二级别或第三级别则判断所述删除命令是否完整,当所述删除命令完整时执行步骤i3,当所述删除命令不完整时执行步骤i4,否则执行步骤i4 ; 步骤i3、对所述删除命令进行格式检查,若检查通过则根据所述删除命令中的数据域标识删除相应可执行文件和/或相应应用,发送计算收条所需的数据给第二卡片数据管理模块,接收第二卡片数据管理模块返回的收条,设置返回数据为所述收条,执行步骤i4,若检查未通过则执行步骤i4 ; 步骤i4、生成相应状态码,返回设置的返回数据和/生成的状态码。
24.根据权利要求23所述的方法,其特征在于,所述步骤i3具体包括: 步骤i3-l、判断所述删除命令的数据域中的第一个字节数据是否为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。
25.根据权利要求24所述的方法,其特征在于,所述计算收条所需的数据包括:所述删除命令中的数据域标识 长度和数据域标识。
全文摘要
本发明公开一种管理卡片数据的实现方法,属于智能卡领域,具体包括当第一卡片管理数据模块接收到运行环境派遣的APDU数据后,将自身作为当前第一卡片数据管理模块,检查所述APDU数据,当所述APDU数据为合法命令头时,获取数据域部分,得到完整的命令,根据所述命令的类型执行管理卡片数据操作,所述管理卡片数据操作包括预加载、加载、安装、可选择、引渡、个人化和删除。本发明方法的有益效果在于为智能卡上数据的管理提供了方便。
文档编号G06F21/50GK103218560SQ201310146939
公开日2013年7月24日 申请日期2013年4月25日 优先权日2013年4月25日
发明者陆舟, 于华章 申请人:飞天诚信科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1