CN103309758B - 一种卡应用下载的方法、系统和装置 - Google Patents
一种卡应用下载的方法、系统和装置 Download PDFInfo
- Publication number
- CN103309758B CN103309758B CN201210068822.4A CN201210068822A CN103309758B CN 103309758 B CN103309758 B CN 103309758B CN 201210068822 A CN201210068822 A CN 201210068822A CN 103309758 B CN103309758 B CN 103309758B
- Authority
- CN
- China
- Prior art keywords
- application
- file
- card
- recessive
- power
- 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
- Stored Programmes (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本发明公开了一种卡应用下载的方法、系统和装置,在卡内设置应用隐性文件和应用实例隐性文件,应用隐性文件存储卡应用下载过程接收的应用数据,应用实例隐性文件存储下载的应用实例数据,在卡应用下载过程中设置不少于2个状态,在状态之间卡判断是否发生断电,如果发生断电,则清除应用隐性文件或者应用实例隐性文件。采用了本发明的技术方案,能够保证卡应用下载安装过程中断电发生后不影响卡使用,并提升卡内空间利用率,提升卡应用下载安装性能。
Description
技术领域
本发明涉及用户卡技术领域,尤其涉及一种卡应用下载的方法、系统和装置。
背景技术
一卡多应用市场持续快速增长,应用种类也日益多样化,银行卡、公交卡、地铁票、超市会员卡、校园一卡通、企业门禁卡、食堂消费卡、酒店房卡、场馆门票等多类卡都可集中在一部手机的安全芯片或一张SIM卡中(以下统称为智能卡),同时带动了多行业合作发卡的需求。多应用卡在应用管理、卡空间管理、应用生命周期控制、安全通信机制、密钥安全体系、虚拟机技术、应用API控制、应用实现等方面有较多的设计和要求。
卡应用下载安装可以通过接触式读卡器,也可以通过非接触式读卡器,还可以通过OTA空中传输方式。图1所示为卡应用的动态下载安装过程。
在通过接触式读卡器或非接触式读卡器方式下载安装卡应用过程中,会发生用户拿出插入读卡器中的智能卡,或将智能卡(或NFC手机)从非接触读卡器上拿开的情况,也可能发生非人为的读卡器断电、接触不良等情况。这就出现在卡应用下载安装过程中对发生断电的处理。
在通过OTA空中传输方式下载安装卡应用过程中,空中传输是手机与远端应用服务器通过移动通信网络建立连接(短信或GPRS)后,远端应用服务器将应用下载到手机、手机再传输给SIM卡的方式。在此过程中,会发生用户手机没电,或用户关机,或用户设置进入手机飞行模式等情况。这就出现在卡应用下载安装过程中对发生断电的处理。
目前国内外各家智能卡,尤其是SIM卡,在卡应用下载安装过程中对发生断电的处理机制参差不一。部分智能卡在发生断电情况下,不做特殊处理。部分智能卡在发生断电情况下,对发生断电的指令做了数据写入保护,保证当前指令的数据写入完整,但无法保证整个应用下载安装过程的正确和完整。普遍分析,目前的智能卡对卡在各种渠道的应用下载安装过程中发生断电的处理会带来以下问题。
1.导致已经下载了应用的部分数据的卡空间被长期占用而不能回收,造成卡资源浪费,尤其对内存资源非常有限的智能卡,在多次下载应用时出现以上情况后将无法安装新的应用的问题。
2.导致远端应用服务器不知道当前应用下载状态,出现服务器与用户手中卡的状态失步,或者服务器反复重试下载导致卡空间和网络资源浪费的问题。
3.更危险的会导致卡在断电瞬间写入数据的不确定性,卡内操作系统可能误认为部分数据正确而寻址到非芯片内地址的情况,导致卡永久锁死的问题。
4.对于有些具有发现断电后可进行数据恢复的卡,删除已经下载到卡芯片的可擦写永久数据存储器(EEPROM)的部分卡应用数据,由于数据较大擦写EEPROM耗时长,会出现断电后卡恢复数据过程缓慢的问题。
发明内容
本发明的目的是针对以上现有技术中卡应用下载过程中断电导致的卡资源浪费、服务器与卡之间状态失步和卡恢复数据缓慢的问题,提出了一种卡应用下载的方法、系统和装置,能够保证卡应用下载安装过程中断电发生后不影响卡使用,并提升卡内空间利用率,提升卡应用下载安装性能。
为实现本发明的目的,采用了以下技术方案:
本发明的一个具体实施方式提供了一种卡应用下载的方法,在卡内设置应用隐性文件和应用实例隐性文件,所述应用隐性文件存储卡应用下载过程接收的应用数据,所述应用实例隐性文件存储下载的应用实例数据,在卡应用下载过程中设置不少于2个状态,在状态之间卡判断是否发生断电,如果发生断电,则清除应用隐性文件或者应用实例隐性文件。
进一步包括以下步骤:
A.选择用于应用下载的卡的安全域,卡接收应用预下载指令,并且分配预留的卡空间;
B.判断是否发生断电,如果发生断电,则转至步骤C,如果没有发生断电,则转至步骤D;
C.卡释放所述预留的卡空间,并转至步骤A;
D.卡接收第一条应用下载指令,存储服务器下发的应用的哈希值,创建应用隐性文件,并将应用的第0分块写入可擦写永久数据存储器的应用隐性文件的指定位置;
E.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤G;
F.卡清除所述应用隐性文件,并转至步骤C;
G.卡按序接收后续的应用下载指令,将应用的后续分块写入可擦写永久数据存储器的应用隐性文件的指定位置;
H.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤I;
I.卡接收最后一条应用下载指令,将应用的最后一个分块写入可擦写永久数据存储器的应用隐性文件的指定位置,并计算完整应用的哈希值;
J.判断步骤I中所述完整应用的哈希值与步骤D中所述下发的应用的哈希值是否相同,如果不同,则转至步骤F,如果相同,则转至步骤K;
K.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤L;
L.进行应用的分块解析和链接,写入可擦写永久数据存储器的状态值,所述状态值用于表示应用下载过程进入已下载状态;
M.卡应用进入已下载状态;
N.判断是否发生断电,如果发生断电,则转至步骤M,如果没有发生断电,则转至步骤O;
O.卡接收应用安装指令,创建应用实例隐性文件,并组织应用实例数据,写入可擦写永久数据存储器应用实例空间;
P.判断是否发生断电,如果发生断电,则转至步骤Q,如果没有发生断电,则转至步骤R;
Q.卡清除所述应用实例隐性文件,并转至步骤M;
R.卡应用进入已安装状态,接收应用激活指令,并将应用状态改为可被选择,写入可擦写永久数据存储器应用实例空间;
S.判断是否发生断电,如果发生断电,则转至步骤R,如果没有发生断电,则转至步骤T;
T.卡应用进入可被选择状态,完成卡应用下载。
进一步地,步骤D中,所述应用隐性文件用于保存应用数据,所述应用隐性文件在卡的标准文件结构中是隐藏的。
进一步地,所述应用隐性文件的数据结构包括文件ID字段、文件长度字段、文件属性字段、应用数据字段和校验值字段。
进一步地,文件ID字段是2个字节,从FFFE依次向下分配,遇到已经在卡内使用的文件名跳过;文件长度字段是4个字节,表示应用数据的长度;文件属性字段是1个字节,其中第一个bit用于表示文件是应用隐性文件还是标准文件;应用数据字段用于存储应用数据;校验值字段是2个字节,用于判断应用数据是否完整和正确。
进一步地,所述校验值的获取包括以下步骤:
输入应用数据;
使用MD5算法对应用数据进行哈希计算;
将计算结果的后两个字节作为校验值。
进一步地,步骤F中,卡清除应用隐性文件包括以下步骤:
卡内设置应用下载过程标识字节,所述应用下载过程标识字节是1时,表示应用在下载或者安装过程,所述应用下载过程标识字节是0时,表示应用下载完成或者没有应用下载或者安装;
发生断电后的下次开机时,卡检查所述应用下载过程标识字节的数值;
当所述应用下载过程标识字节是1时,卡将所述应用隐性文件的文件ID字段修改为FFFF;
卡内操作系统寻址到所述应用隐性文件的空间时,根据文件ID字段判断后续数据是无用数据,并根据文件长度字段判断无用数据的长度。
进一步地,步骤O中,所述应用实例隐性文件用于保存应用实例数据,所述应用实例隐性文件在卡的标准文件结构中是隐藏的。
进一步地,所述应用实例隐性文件的数据结构包括文件ID字段、文件长度字段、文件属性字段、应用实例数据字段和校验值字段。
进一步地,文件ID字段是2个字节,从FFFE依次向下分配,遇到已经在卡内使用的文件名跳过;文件长度字段是4个字节,表示应用实例数据的长度;文件属性字段是1个字节,其中第一个bit用于表示文件是应用实例隐性文件还是标准文件;应用实例数据字段用于存储应用实例数据;校验值字段是2个字节,用于判断应用实例数据是否完整和正确。
进一步地,所述校验值的获取包括以下步骤:
输入应用实例数据;
使用MD5算法对应用实例数据进行哈希计算;
将计算结果的后两个字节作为校验值。
进一步地,步骤Q中,卡清除应用实例隐性文件包括以下步骤:
卡内设置应用下载过程标识字节,所述应用下载过程标识字节是1时,表示应用实例在下载或者安装过程,所述应用下载过程标识字节是0时,表示应用下载完成、没有应用下载或者没有应用安装;
发生断电后的下次开机时,卡检查所述应用下载过程标识字节的数值;
当所述应用下载过程标识字节是1时,卡将所述应用实例隐性文件的文件ID字段修改为FFFF;
卡内操作系统寻址到所述应用实例隐性文件的空间时,根据文件ID字段判断后续数据是无用数据,并根据文件长度字段判断无用数据的长度。
进一步地,还包括以下步骤:
服务器设置第一计数器x和第二计数器y;
服务器发出卡应用下载的操作指令,启动第一计数器x和第二计数器y;
第一计数器x每隔1秒加1,第一计数器x达到第一预设数值后,如果没有收到卡返回的响应,服务器终止当前卡应用下载流程,并重新启动卡应用下载流程,每次重新启动第二计数器y加1;
当第二计数器达到第二预设数值后,服务器判断卡已经损坏,停止卡应用下载流程。
本发明的一个具体实施方式提供了一种卡应用下载的系统,包括服务器和手机终端,所述手机终端进一步包括基带芯片和卡,卡进一步包括ISO7816通信接口、非接触通信接口、CPU程序处理器和存储单元,卡通过基带芯片与服务器进行通信,所述CPU程序处理器进一步包括隐性文件管理模块和断电处理状态机模块,其中,
所述隐性文件管理模块用于根据下载进程创建应用隐性文件和应用实例隐性文件;
所述断电处理状态机模块用于判断卡应用下载过程中状态之间是否发生断电,若断电则清除应用隐性文件或应用实例隐性文件;
存储单元用于存储应用隐性文件和应用实例隐性文件。
进一步地,应用隐性文件和应用实例隐性文件在卡的标准文件结构中是隐藏的。
进一步地,存储单元是可擦写永久数据存储器。
本发明的一个具体实施方式提供了一种卡,包括CPU程序处理器、存储单元、ISO7816通信接口和非接触通信接口,所述CPU程序处理器进一步包括隐性文件管理模块和断电处理状态机模块,其中,
所述隐性文件管理模块用于根据下载进程创建应用隐性文件和应用实例隐性文件;
所述断电处理状态机模块用于判断卡应用下载过程中状态之间是否发生断电,若断电则清除应用隐性文件或应用实例隐性文件;
存储单元用于存储应用隐性文件和应用实例隐性文件。
进一步地,CPU程序处理器还包括计算模块和匹配模块,计算模块用于计算下载的完整应用的哈希值,匹配模块用于判断下载的完整应用的哈希值与服务器下发的应用的哈希值是否相同。
进一步地,CPU程序处理器还包括解析模块,解析模块用于对下载的应用的分块进行解析和链接。
进一步地,CPU程序处理器还包括校验值获取模块,校验值获取模块用于对应用数据使用MD5算法进行哈希计算,并将计算结果的后两个字节作为校验值。
进一步地,CPU程序处理器还包括判断模块,判断模块用于判断应用下载过程标识字节,并修改应用隐性文件或者应用实例隐性文件的文件ID字段。
进一步地,应用隐性文件和应用实例隐性文件在卡的标准文件结构中是隐藏的。
进一步地,存储单元是可擦写永久数据存储器。
采用本发明的技术方案,让卡和服务器都能明确知悉当前应用下载状态,保证应用下载安装过程中断电发生后不影响卡使用,并提升卡内空间利用率,提升卡应用下载安装性能。具体包括以下技术效果:
1)解决了已经下载了应用的部分数据的卡空间被长期占用而不能回收,造成卡资源浪费的问题。
2)解决了服务器不知道当前应用下载状态,出现服务器与用户手中卡的状态失步,或者服务器反复重试下载导致卡空间和网络资源浪费的问题。
3)解决了防止导致卡在断电瞬间写入数据的不确定性,导致卡永久锁死的问题。
4)提升了断电后卡恢复数据过程缓慢的性能。
5)无需修改现有应用平台、密钥管理等平台的硬件,对服务器只需增加少量软件修改。
6)无需修改现有读卡器机具,节省软硬件改造成本,降低管理难度。
7)无需修改手机软硬件,完全兼容现有手机。
8)对当前SIM卡(或安全芯片)CPU、存储器等硬件结构没有改变,现有制卡工艺和生产流程无需改造。卡软件只是增加5~10K字节的容量,几乎没有增加成本。很容易产业推广。
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
下面通过附图和具体实施方式,对本发明的技术方案做进一步的详细描述。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的具体实施方式一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是现有技术中卡应用的动态下载安装流程。
图2是本发明具体实施方式一的卡应用下载系统的结构示意图。
图3是本发明具体实施方式二的卡的结构示意图。
图4是本发明应用隐性文件或者应用隐性实例文件的数据结构图。
图5是本发明具体实施方式三的卡应用下载流程图。
具体实施方式
以下结合附图对本发明的优选实施方式进行说明,应当理解,此处所描述的优选实施方式仅用于说明和解释本发明,并不用于限定本发明。
图2是本发明具体实施方式一的卡应用下载系统的结构示意图。如图2所示,该卡应用下载的系统包括服务器和手机终端,手机终端进一步包括基带芯片和卡,卡进一步包括ISO7816通信接口、非接触通信接口、CPU程序处理器和存储单元,卡通过基带芯片与服务器进行通信,CPU程序处理器进一步包括隐性文件管理模块和断电处理状态机模块。
其中,隐性文件管理模块根据下载进程创建应用隐性文件和应用实例隐性文件,断电处理状态机模块判断卡应用下载过程中各状态之间是否发生断电,若断电则清除应用隐性文件或应用实例隐性文件,存储单元存储应用隐性文件和应用实例隐性文件。存储单元是可擦写永久数据存储器(EEPROM)。
为了保证用户不可随意更改的安全性,也为了不影响标准电信、金融等功能,应用隐性文件和应用实例隐性文件在卡的标准文件结构中是隐藏的,不在卡的标准文件结构中显示出来。
图3是本发明具体实施方式二的卡的结构示意图。如图3所示,该卡包括CPU程序处理器、存储单元、ISO7816通信接口和非接触通信接口,CPU程序处理器进一步包括隐性文件管理模块、断电处理状态机模块、计算模块、匹配模块、解析模块、校验值获取模块和判断模块。
其中,ISO7816通信接口用于和接触式外部设备(如接触式读卡器、手机终端)进行数据传输,非接触通信接口用于和非接触式外部设备(如非接触读卡器、POS机)进行数据传输,CPU程序处理器处理卡内操作系统程序和应用程序,并内置程序代码,存储单元存储应用隐性文件和应用实例隐性文件,存储单元是可擦写永久数据存储器(EEPROM)。
CPU程序处理器中的隐性文件管理模块根据下载进程创建应用隐性文件和应用实例隐性文件,断电处理状态机模块判断卡应用下载过程中各状态之间是否发生断电,若断电则清除应用隐性文件或应用实例隐性文件,计算模块计算下载的完整应用的哈希值,匹配模块判断下载的完整应用的哈希值与服务器下发的应用的哈希值是否相同,解析模块对下载的应用的分块进行解析和链接,校验值获取模块对应用数据使用MD5算法进行哈希计算,并将计算结果的后两个字节作为校验值,判断模块判断应用下载过程标识字节,并修改应用隐性文件或者应用实例隐性文件的文件ID字段。
为了保证用户不可随意更改的安全性,也为了不影响标准电信、金融等功能,应用隐性文件和应用实例隐性文件在卡的标准文件结构中是隐藏的,不在卡的标准文件结构中显示出来。
具体实施方式三给出了卡应用下载的流程,即在卡内设置应用隐性文件和应用实例隐性文件,应用隐性文件存储应用数据,应用实例隐性文件存储应用实例数据,在卡应用下载过程中设置多个状态,对每一步发生断电后实施处理机制和状态机转换机制,即在状态之间卡判断是否发生断电,如果发生断电,则清除应用隐性文件或者应用实例隐性文件。此外应用下载时通过应用数据的哈希(Hash)计算和比较,进行了应用数据完整校验。
在卡应用下载流程中,每个卡应用自身及应用实例数据在卡内都以文件形式存储,但为了保证用户不可随意更改的安全性,也为了不影响标准电信、金融等功能,此类文件不在卡的标准文件结构中显示出来,因此形成应用隐性文件和应用实例隐性文件。
应用隐性文件和应用实例隐性文件的数据结构如图4所示,其中文件ID(FileID)是2个字节,从FFFE依次向下自动分配,遇到已经在卡内使用的文件名就自动向下分配;文件长度FileLen是4个字节,为了保证应用足够大;文件属性Attribute是1个字节,其中第一个bit为1表示该文件是隐性文件。若第一个bit为0表示该文件是显式文件(标准文件);应用或实例数据放在文件体中;FileHash是文件数据校验值,为了保证存储在卡内的应用数据是完整的,也为了保证应用数据不被篡改,也为了在应用下载时进行完整性和正确性校验。
校验值FileHash的计算方法是输入数据为一个完整应用或应用实例中的AppletData,使用MD5算法进行Hash计算,取计算结果的后两个字节。
图5是本发明具体实施方式三的卡应用下载流程图。如图5所示,该卡应用下载流程包括以下步骤:
步骤401、当卡处于空闲状态,选择用于应用下载的卡的安全域,安全域是指卡内实行安全控制的集合。卡接收应用预下载指令,并且分配预留的卡空间。
步骤402、判断是否发生断电,如果发生断电,则转至步骤403,如果没有发生断电,则转至步骤404。
步骤403、卡释放预留的卡空间,并转至步骤401。
步骤404、卡接收第一条应用下载指令,存储服务器下发的应用的哈希值,创建应用隐性文件,并将应用的第0分块Block0写入可擦写永久数据存储器(EEPROM)的应用隐性文件的指定位置。
步骤405、判断是否发生断电,如果发生断电,则转至步骤406,如果没有发生断电,则转至步骤407。
步骤406、卡清除应用隐性文件,并转至步骤403。
卡清除应用隐性文件具体包括以下步骤:
卡内设置应用下载过程标识字节APPLI_entryTransaction,当应用下载过程标识字节是1时,表示应用在下载或者安装过程,应用下载过程标识字节是0时,表示应用下载完成、没有应用下载或者没有应用安装。
发生断电后的下次开机时,卡检查应用下载过程标识字节的数值。
当应用下载过程标识字节是1时,卡将应用隐性文件的文件ID字段修改为FFFF。
卡内操作系统寻址到应用隐性文件的空间时,根据文件ID字段判断后续数据是无用数据,并根据文件长度字段判断无用数据的长度。
步骤407、卡按序接收后续的应用下载指令,将应用的后续分块Blockn写入可擦写永久数据存储器(EEPROM)的应用隐性文件的指定位置。
步骤408、判断是否发生断电,如果发生断电,则转至步骤406,如果没有发生断电,则转至步骤409。
步骤409、卡接收最后一条应用下载指令,将应用的最后一个分块Blocklast写入可擦写永久数据存储器(EEPROM)的应用隐性文件的指定位置,并计算完整应用的哈希值。
步骤410、判断步骤409中完整应用的哈希值与步骤404中下发的应用的哈希值是否相同,如果不同,则转至步骤406,如果相同,则转至步骤411。
步骤411、判断是否发生断电,如果发生断电,则转至步骤406,如果没有发生断电,则转至步骤412。
步骤412、进行应用的分块解析和链接,写入可擦写永久数据存储器(EEPROM)的状态值,状态值用于表示应用下载过程进入已下载状态。
步骤413、卡应用进入已下载状态。
步骤414、判断是否发生断电,如果发生断电,则转至步骤413,如果没有发生断电,则转至步骤415。
步骤415、卡接收应用安装指令,创建应用实例隐性文件,并组织应用实例数据,写入可擦写永久数据存储器(EEPROM)应用实例空间。
步骤416、判断是否发生断电,如果发生断电,则转至步骤417,如果没有发生断电,则转至步骤418。
步骤417、卡清除应用实例隐性文件,并转至步骤413。
其中,卡清除应用实例隐性文件具体包括以下步骤:
卡内设置应用下载过程标识字节APPLI_entryTransaction,当应用下载过程标识字节是1时,表示应用实例在下载或者安装过程,应用下载过程标识字节是0时,表示应用实例下载完成或者没有应用实例下载或者安装。
发生断电后的下次开机时,卡检查应用下载过程标识字节的数值。
当应用下载过程标识字节是1时,卡将应用实例隐性文件的文件ID字段修改为FFFF。
卡内操作系统寻址到应用实例隐性文件的空间时,根据文件ID字段判断后续数据是无用数据,并根据文件长度字段判断无用数据的长度。
步骤418、卡应用进入已安装状态,接收应用激活指令,并将应用状态改为可被选择,写入可擦写永久数据存储器(EEPROM)应用实例空间。
步骤419、判断是否发生断电,如果发生断电,则转至步骤418,如果没有发生断电,则转至步骤420。
步骤420、卡应用进入可被选择状态,完成卡应用下载。
卡和服务器之间要保证交互完整性,服务器在收到卡的响应(可以是正常响应,也可以是异常响应)后才进行下一个操作,因此服务器设置第一计数器x和第二计数器y;服务器发出卡应用下载的操作指令,启动第一计数器x和第二计数器y;第一计数器x每隔1秒加1,第一计数器x达到第一预设数值后,如果没有收到卡返回的响应,服务器终止当前卡应用下载流程,并重新启动卡应用下载流程,每次重新启动第二计数器y加1;当第二计数器达到第二预设数值后,服务器判断卡已经损坏,停止卡应用下载流程。
采用上述技术方案,手机支付多应用卡可以实现应用下载和安装过程中断电后的有效处理,不出现坏卡情况,卡内空间没有随意占用浪费,卡性能没有降低,卡硬件无需改造,卡软件增加容量在5~10K字节。
最后应说明的是:以上所述仅为本发明的优选实施方式而已,并不用于限制本发明,尽管参照前述实施方式对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (22)
1.一种卡应用下载的方法,其特征在于,在卡内设置应用隐性文件和应用实例隐性文件,所述应用隐性文件存储卡应用下载过程接收的应用数据,所述应用实例隐性文件存储下载的应用实例数据,在卡应用下载过程中设置不少于2个状态,在状态之间卡判断是否发生断电,如果发生断电,则清除应用隐性文件或者应用实例隐性文件;
其中,进一步包括以下步骤:
A.选择用于应用下载的卡的安全域,卡接收应用预下载指令,并且分配预留的卡空间;
B.判断是否发生断电,如果发生断电,则转至步骤C,如果没有发生断电,则转至步骤D;
C.卡释放所述预留的卡空间,并转至步骤A;
D.卡接收第一条应用下载指令,存储服务器下发的应用的哈希值,创建应用隐性文件,并将应用的第0分块写入可擦写永久数据存储器的应用隐性文件的指定位置;
E.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤G;
F.卡清除所述应用隐性文件,并转至步骤C;
G.卡按序接收后续的应用下载指令,将应用的后续分块写入可擦写永久数据存储器的应用隐性文件的指定位置;
H.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤I;
I.卡接收最后一条应用下载指令,将应用的最后一个分块写入可擦写永久数据存储器的应用隐性文件的指定位置,并计算完整应用的哈希值;
J.判断步骤I中所述完整应用的哈希值与步骤D中所述下发的应用的哈希值是否相同,如果不同,则转至步骤F,如果相同,则转至步骤K;
K.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤L;
L.进行应用的分块解析和链接,写入可擦写永久数据存储器的状态值,所述状态值用于表示应用下载过程进入已下载状态;
M.卡应用进入已下载状态;
N.判断是否发生断电,如果发生断电,则转至步骤M,如果没有发生断电,则转至步骤O;
O.卡接收应用安装指令,创建应用实例隐性文件,并组织应用实例数据,写入可擦写永久数据存储器应用实例空间;
P.判断是否发生断电,如果发生断电,则转至步骤Q,如果没有发生断电,则转至步骤R;
Q.卡清除所述应用实例隐性文件,并转至步骤M;
R.卡应用进入已安装状态,接收应用激活指令,并将应用状态改为可被选择,写入可擦写永久数据存储器应用实例空间;
S.判断是否发生断电,如果发生断电,则转至步骤R,如果没有发生断电,则转至步骤T;
T.卡应用进入可被选择状态,完成卡应用下载。
2.根据权利要求1所述的一种卡应用下载的方法,其特征在于,步骤D中,所述应用隐性文件用于保存应用数据,所述应用隐性文件在卡的标准文件结构中是隐藏的。
3.根据权利要求2所述的一种卡应用下载的方法,其特征在于,所述应用隐性文件的数据结构包括文件ID字段、文件长度字段、文件属性字段、应用数据字段和校验值字段。
4.根据权利要求3所述的一种卡应用下载的方法,其特征在于,文件ID字段是2个字节,从FFFE依次向下分配,遇到已经在卡内使用的文件名跳过;文件长度字段是4个字节,表示应用数据的长度;文件属性字段是1个字节,其中第一个bit用于表示文件是应用隐性文件还是标准文件;应用数据字段用于存储应用数据;校验值字段是2个字节,用于判断应用数据是否完整和正确。
5.根据权利要求4所述的一种卡应用下载的方法,其特征在于,所述校验值的获取包括以下步骤:
输入应用数据;
使用MD5算法对应用数据进行哈希计算;
将计算结果的后两个字节作为校验值。
6.根据权利要求4所述的一种卡应用下载的方法,其特征在于,步骤F中,卡清除应用隐性文件包括以下步骤:
卡内设置应用下载过程标识字节,所述应用下载过程标识字节是1时,表示应用在下载或者安装过程,所述应用下载过程标识字节是0时,表示应用下载完成、没有应用下载或者没有应用安装;
发生断电后的下次开机时,卡检查所述应用下载过程标识字节的数值;
当所述应用下载过程标识字节是1时,卡将所述应用隐性文件的文件ID字段修改为FFFF;
卡内操作系统寻址到所述应用隐性文件的空间时,根据文件ID字段判断后续数据是无用数据,并根据文件长度字段判断无用数据的长度。
7.根据权利要求1所述的一种卡应用下载的方法,其特征在于,步骤O中,所述应用实例隐性文件用于保存应用实例数据,所述应用实例隐性文件在卡的标准文件结构中是隐藏的。
8.根据权利要求7所述的一种卡应用下载的方法,其特征在于,所述应用实例隐性文件的数据结构包括文件ID字段、文件长度字段、文件属性字段、应用实例数据字段和校验值字段。
9.根据权利要求8所述的一种卡应用下载的方法,其特征在于,文件ID字段是2个字节,从FFFE依次向下分配,遇到已经在卡内使用的文件名跳过;文件长度字段是4个字节,表示应用实例数据的长度;文件属性字段是1个字节,其中第一个bit用于表示文件是应用实例隐性文件还是标准文件;应用实例数据字段用于存储应用实例数据;校验值字段是2个字节,用于判断应用实例数据是否完整和正确。
10.根据权利要求9所述的一种卡应用下载的方法,其特征在于,所述校验值的获取包括以下步骤:
输入应用实例数据;
使用MD5算法对应用实例数据进行哈希计算;
将计算结果的后两个字节作为校验值。
11.根据权利要求9所述的一种卡应用下载的方法,其特征在于,步骤Q中,卡清除应用实例隐性文件包括以下步骤:
卡内设置应用下载过程标识字节,所述应用下载过程标识字节是1时,表示应用实例在下载或者安装过程,所述应用下载过程标识字节是0时,表示应用实例下载完成或者没有应用实例下载或者安装;
发生断电后的下次开机时,卡检查所述应用下载过程标识字节的数值;
当所述应用下载过程标识字节是1时,卡将所述应用实例隐性文件的文件ID字段修改为FFFF;
卡内操作系统寻址到所述应用实例隐性文件的空间时,根据文件ID字段判断后续数据是无用数据,并根据文件长度字段判断无用数据的长度。
12.根据权利要求1所述的一种卡应用下载的方法,其特征在于,还包括以下步骤:
服务器设置第一计数器x和第二计数器y;
服务器发出卡应用下载的操作指令,启动第一计数器x和第二计数器y;
第一计数器x每隔1秒加1,第一计数器x达到第一预设数值后,如果没有收到卡返回的响应,服务器终止当前卡应用下载流程,并重新启动卡应用下载流程,每次重新启动第二计数器y加1;
当第二计数器达到第二预设数值后,服务器判断卡已经损坏,停止卡应用下载流程。
13.一种卡应用下载的系统,包括服务器和手机终端,所述手机终端进一步包括基带芯片和卡,卡进一步包括ISO7816通信接口、非接触通信接口、CPU程序处理器和存储单元,卡通过基带芯片与服务器进行通信,其特征在于,所述CPU程序处理器进一步包括隐性文件管理模块和断电处理状态机模块,其中,
所述隐性文件管理模块用于根据下载进程创建应用隐性文件和应用实例隐性文件;
所述断电处理状态机模块用于判断卡应用下载过程中状态之间是否发生断电,若断电则清除应用隐性文件或应用实例隐性文件;
存储单元用于存储应用隐性文件和应用实例隐性文件;
所述卡具体用于进行以下步骤:
A.选择用于应用下载的卡的安全域,卡接收应用预下载指令,并且分配预留的卡空间;
B.判断是否发生断电,如果发生断电,则转至步骤C,如果没有发生断电,则转至步骤D;
C.卡释放所述预留的卡空间,并转至步骤A;
D.卡接收第一条应用下载指令,存储服务器下发的应用的哈希值,创建应用隐性文件,并将应用的第0分块写入可擦写永久数据存储器的应用隐性文件的指定位置;
E.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤G;
F.卡清除所述应用隐性文件,并转至步骤C;
G.卡按序接收后续的应用下载指令,将应用的后续分块写入可擦写永久数据存储器的应用隐性文件的指定位置;
H.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤I;
I.卡接收最后一条应用下载指令,将应用的最后一个分块写入可擦写永久数据存储器的应用隐性文件的指定位置,并计算完整应用的哈希值;
J.判断步骤I中所述完整应用的哈希值与步骤D中所述下发的应用的哈希值是否相同,如果不同,则转至步骤F,如果相同,则转至步骤K;
K.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤L;
L.进行应用的分块解析和链接,写入可擦写永久数据存储器的状态值,所述状态值用于表示应用下载过程进入已下载状态;
M.卡应用进入已下载状态;
N.判断是否发生断电,如果发生断电,则转至步骤M,如果没有发生断电,则转至步骤O;
O.卡接收应用安装指令,创建应用实例隐性文件,并组织应用实例数据,写入可擦写永久数据存储器应用实例空间;
P.判断是否发生断电,如果发生断电,则转至步骤Q,如果没有发生断电,则转至步骤R;
Q.卡清除所述应用实例隐性文件,并转至步骤M;
R.卡应用进入已安装状态,接收应用激活指令,并将应用状态改为可被选择,写入可擦写永久数据存储器应用实例空间;
S.判断是否发生断电,如果发生断电,则转至步骤R,如果没有发生断电,则转至步骤T;
T.卡应用进入可被选择状态,完成卡应用下载。
14.根据权利要求13所述的一种卡应用下载的系统,其特征在于,应用隐性文件和应用实例隐性文件在卡的标准文件结构中是隐藏的。
15.根据权利要求13所述的一种卡应用下载的系统,其特征在于,存储单元是可擦写永久数据存储器。
16.一种卡,包括CPU程序处理器、存储单元、ISO7816通信接口和非接触通信接口,其特征在于,所述CPU程序处理器进一步包括隐性文件管理模块和断电处理状态机模块,其中,
所述隐性文件管理模块用于根据下载进程创建应用隐性文件和应用实例隐性文件;
所述断电处理状态机模块用于判断卡应用下载过程中状态之间是否发生断电,若断电则清除应用隐性文件或应用实例隐性文件;
存储单元用于存储应用隐性文件和应用实例隐性文件;
所述卡具体用于进行以下步骤:
A.选择用于应用下载的卡的安全域,卡接收应用预下载指令,并且分配预留的卡空间;
B.判断是否发生断电,如果发生断电,则转至步骤C,如果没有发生断电,则转至步骤D;
C.卡释放所述预留的卡空间,并转至步骤A;
D.卡接收第一条应用下载指令,存储服务器下发的应用的哈希值,创建应用隐性文件,并将应用的第0分块写入可擦写永久数据存储器的应用隐性文件的指定位置;
E.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤G;
F.卡清除所述应用隐性文件,并转至步骤C;
G.卡按序接收后续的应用下载指令,将应用的后续分块写入可擦写永久数据存储器的应用隐性文件的指定位置;
H.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤I;
I.卡接收最后一条应用下载指令,将应用的最后一个分块写入可擦写永久数据存储器的应用隐性文件的指定位置,并计算完整应用的哈希值;
J.判断步骤I中所述完整应用的哈希值与步骤D中所述下发的应用的哈希值是否相同,如果不同,则转至步骤F,如果相同,则转至步骤K;
K.判断是否发生断电,如果发生断电,则转至步骤F,如果没有发生断电,则转至步骤L;
L.进行应用的分块解析和链接,写入可擦写永久数据存储器的状态值,所述状态值用于表示应用下载过程进入已下载状态;
M.卡应用进入已下载状态;
N.判断是否发生断电,如果发生断电,则转至步骤M,如果没有发生断电,则转至步骤O;
O.卡接收应用安装指令,创建应用实例隐性文件,并组织应用实例数据,写入可擦写永久数据存储器应用实例空间;
P.判断是否发生断电,如果发生断电,则转至步骤Q,如果没有发生断电,则转至步骤R;
Q.卡清除所述应用实例隐性文件,并转至步骤M;
R.卡应用进入已安装状态,接收应用激活指令,并将应用状态改为可被选择,写入可擦写永久数据存储器应用实例空间;
S.判断是否发生断电,如果发生断电,则转至步骤R,如果没有发生断电,则转至步骤T;
T.卡应用进入可被选择状态,完成卡应用下载。
17.根据权利要求16所述的一种卡,其特征在于,CPU程序处理器还包括计算模块和匹配模块,计算模块用于计算下载的完整应用的哈希值,匹配模块用于判断下载的完整应用的哈希值与服务器下发的应用的哈希值是否相同。
18.根据权利要求16所述的一种卡,其特征在于,CPU程序处理器还包括解析模块,解析模块用于对下载的应用的分块进行解析和链接。
19.根据权利要求16所述的一种卡,其特征在于,CPU程序处理器还包括校验值获取模块,校验值获取模块用于对应用数据使用MD5算法进行哈希计算,并将计算结果的后两个字节作为校验值。
20.根据权利要求16所述的一种卡,其特征在于,CPU程序处理器还包括判断模块,判断模块用于判断应用下载过程标识字节,并修改应用隐性文件或者应用实例隐性文件的文件ID字段。
21.根据权利要求16所述的一种卡,其特征在于,应用隐性文件和应用实例隐性文件在卡的标准文件结构中是隐藏的。
22.根据权利要求16所述的一种卡,其特征在于,存储单元是可擦写永久数据存储器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210068822.4A CN103309758B (zh) | 2012-03-15 | 2012-03-15 | 一种卡应用下载的方法、系统和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201210068822.4A CN103309758B (zh) | 2012-03-15 | 2012-03-15 | 一种卡应用下载的方法、系统和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103309758A CN103309758A (zh) | 2013-09-18 |
CN103309758B true CN103309758B (zh) | 2016-01-27 |
Family
ID=49135012
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201210068822.4A Active CN103309758B (zh) | 2012-03-15 | 2012-03-15 | 一种卡应用下载的方法、系统和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103309758B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104751067B (zh) * | 2013-12-27 | 2019-03-12 | 北京慧眼智行科技有限公司 | 一种图片文件安全存储的方法和装置 |
WO2017143885A1 (zh) * | 2016-02-25 | 2017-08-31 | 华为技术有限公司 | 一种嵌入式通用集成电路卡的应用处理方法及装置 |
CN108021383A (zh) * | 2017-12-01 | 2018-05-11 | 东信和平科技股份有限公司 | 一种智能卡操作系统升级方法及系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1487740A (zh) * | 2002-09-30 | 2004-04-07 | 北京中视联数字系统有限公司 | 数字电视广播中的软件下载方法 |
CN1687899A (zh) * | 2005-06-15 | 2005-10-26 | 大唐微电子技术有限公司 | 将应用程序动态下载到用户识别模块的方法、系统及模块 |
CN1725180A (zh) * | 2005-07-18 | 2006-01-25 | 杭州华为三康技术有限公司 | 对可编程逻辑器件在线升级的方法及装置 |
CN101320389A (zh) * | 2008-06-30 | 2008-12-10 | 中兴通讯股份有限公司 | 文件管理方法和装置 |
CN101511051A (zh) * | 2008-12-31 | 2009-08-19 | 北京握奇数据系统有限公司 | 电信智能卡的应用业务下载方法、系统及设备 |
CN102054045A (zh) * | 2010-12-31 | 2011-05-11 | 福建星网视易信息系统有限公司 | 电子装置的资源更新系统及方法 |
CN102203790A (zh) * | 2008-08-20 | 2011-09-28 | 桑迪士克科技股份有限公司 | 存储器器件更新 |
CN102346673A (zh) * | 2010-07-27 | 2012-02-08 | 比亚迪股份有限公司 | 一种手机系统升级的方法及装置 |
-
2012
- 2012-03-15 CN CN201210068822.4A patent/CN103309758B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1487740A (zh) * | 2002-09-30 | 2004-04-07 | 北京中视联数字系统有限公司 | 数字电视广播中的软件下载方法 |
CN1687899A (zh) * | 2005-06-15 | 2005-10-26 | 大唐微电子技术有限公司 | 将应用程序动态下载到用户识别模块的方法、系统及模块 |
CN1725180A (zh) * | 2005-07-18 | 2006-01-25 | 杭州华为三康技术有限公司 | 对可编程逻辑器件在线升级的方法及装置 |
CN101320389A (zh) * | 2008-06-30 | 2008-12-10 | 中兴通讯股份有限公司 | 文件管理方法和装置 |
CN102203790A (zh) * | 2008-08-20 | 2011-09-28 | 桑迪士克科技股份有限公司 | 存储器器件更新 |
CN101511051A (zh) * | 2008-12-31 | 2009-08-19 | 北京握奇数据系统有限公司 | 电信智能卡的应用业务下载方法、系统及设备 |
CN102346673A (zh) * | 2010-07-27 | 2012-02-08 | 比亚迪股份有限公司 | 一种手机系统升级的方法及装置 |
CN102054045A (zh) * | 2010-12-31 | 2011-05-11 | 福建星网视易信息系统有限公司 | 电子装置的资源更新系统及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN103309758A (zh) | 2013-09-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20180089434A1 (en) | Preserving trust data during operating system updates of a secure element of an electronic device | |
CN102037499B (zh) | Nfc移动通信设备和rfid读取器 | |
CN101965597B (zh) | 用于安装和取回已链接的mifare应用的方法和设备 | |
US8811971B2 (en) | Mobile communication device and method for disabling applications | |
CN103310537B (zh) | 一种多应用识别访问方法、智能卡和pos机 | |
EP3229134B1 (en) | Update-driven migration of data | |
CN103079203B (zh) | 一种终端认证方法与智能卡 | |
CN104021018A (zh) | 终端、生成升级包的方法及识别升级包的方法 | |
CN110232094A (zh) | 跨链交易的装置、方法及存储介质 | |
CN103544114B (zh) | 基于单cpu卡的多m1卡控制系统及其控制方法 | |
CN106293529A (zh) | 一种智能卡存储数据的方法、装置和智能卡 | |
CN103309758B (zh) | 一种卡应用下载的方法、系统和装置 | |
CN102122248B (zh) | 通信设备的线卡软件管理方法 | |
CN101604404A (zh) | 一种可更新的通用智能卡及其系统和方法 | |
CN102510391B (zh) | 应用管理方法、装置及智能卡 | |
CN113961226B (zh) | 一种软件开发工具包修复方法、终端、服务器及设备 | |
CN104012122A (zh) | 用于与便携式数据载体上的应用程序通信的方法以及这样的便携式数据载体 | |
CN104731626A (zh) | 应用的安装方法及装置 | |
CN102999839A (zh) | 一种基于云平台、虚拟se的电子货币安全支付系统和方法 | |
CN201590829U (zh) | 一种可更新的通用智能卡及其系统 | |
CN110992039A (zh) | 交易处理方法、装置及设备 | |
CN102012804B (zh) | 一种智能卡cos指令扩展方法 | |
CN105279670A (zh) | 基于可信服务管理平台的应用自动发布方法及系统 | |
CN113342836A (zh) | 同步数据处理方法、装置、计算机设备及存储介质 | |
CN102479361A (zh) | 一种针对非接触式智能卡处理异常的方法 |
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 |