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

技术编号:8959612 阅读:114 留言:0更新日期:2013-07-25 19:10
本发明专利技术公开一种管理卡片数据的实现方法,属于智能卡领域,具体包括:当第一卡片管理数据模块接收到运行环境派遣的APDU数据后,将自身作为当前第一卡片数据管理模块,检查所述APDU数据,当所述APDU数据为合法命令头时,获取数据域部分,得到完整的命令,根据所述命令的类型执行管理卡片数据操作,所述管理卡片数据操作包括预加载、加载、安装、可选择、引渡、个人化和删除。本发明专利技术方法的有益效果在于为智能卡上数据的管理提供了方便。

【技术实现步骤摘要】

本专利技术属于智能卡领域,特别涉及。
技术介绍
为了给用户提供更多的便利,现今的智能卡上除了发卡方提供的内容外,还可以安装多个应用,通常情况下,发卡方并不会管理所有的卡片内容,尤其是不属于发卡方的卡片内容,因此,需要一种授予第三方通过预认证后来代理管理卡片内容的机制,所述管理如加载、安装、引渡和删除等。申请人在实现本专利技术的过程中发现,在现有技术中尚无代理管理卡片内容机制的具体实现方法。
技术实现思路
本专利技术的目的是为了克服现有技术的缺陷,提出。本专利技术方法是通过下述技术方案实现的:,其基本实施过程如下:当第一卡片数据管理模块接收到运行环境派遣的应用协议数据单元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,参见下表:本文档来自技高网...

【技术保护点】
一种管理卡片数据的实现方法,其特征在于,当第一卡片数据管理模块接收到运行环境派遣的应用协议数据单元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.一种管理卡片数据的实现方法,其特征在于,当第一卡片数据管理模块接收到运行环境派遣的应用协议数据单元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 ...

【专利技术属性】
技术研发人员:陆舟于华章
申请(专利权)人:飞天诚信科技股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1