本申请涉及通信技术领域,尤其涉及一种信息处理方法及装置。
背景技术:
随着集成电路(Integrated Circuit,IC)卡标准的不断成熟和完善,越来越多的IC卡采用该标准实现,例如公交卡、市民卡、学生卡等。
在IC卡的应用过程中,一般需要对IC卡内的数据进行操作,IC卡内的数据存储在持久化存储器内。以IC卡在电子钱包中的应用为例,需要进行IC卡圈存操作,该操作实际上是根据圈存数值增加IC卡内的数值。
在实际应用中发现,圈存过程可能发生各种异常,导致圈存失败。
技术实现要素:
本申请的多个方面提供一种信息处理方法及装置,用以对圈存异常进行有效处理,提高圈存成功率。
本申请的一方面,提供一种信息处理方法,包括:
获取IC卡上圈存后的数据及所述IC卡基于所述IC卡上圈存后的数据生成的报文鉴别码;
根据所述IC卡上圈存后的数据及所述报文鉴别码,确定所述IC卡的圈存结果是否成功;
若所述IC卡的圈存结果为失败,则重新执行所述IC卡的圈存操作。
本申请的另一方面,提供一种信息处理装置,包括:
获取模块,用于获取IC卡上圈存后的数据及所述IC卡基于所述IC卡上圈存后的数据生成的报文鉴别码;
结果确定模块,用于根据所述IC卡上圈存后的数据及所述报文鉴别码,确定所述IC卡的圈存结果是否成功;
重圈存模块,用于在所述IC卡的圈存结果为非成功时,重新执行所述IC卡的圈存操作。
在本申请中,获取IC卡上圈存后的数据及IC卡根据IC卡上圈存后的数据生成的报文鉴别码,之后根据IC卡上圈存后的数据及报文鉴别码,确定IC卡的圈存结果是否成功;当IC卡的圈存结果为非成功时,重新执行IC卡的圈存操作。由于报文鉴别码是IC卡根据IC卡上圈存后的数据生成的,具体生成过程不易被攻击者伪造,所以基于报文鉴别码能够真实有效的判断出IC卡圈存结果为非成功的情况,此时再重新执行IC卡圈存操作,可以实现对IC卡圈存异常的处理,提高IC卡圈存成功率。
【附图说明】
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本申请一实施例提供的信息处理方法的流程示意图;
图2为本申请另一实施例提供的信息处理方法的流程示意图;
图3为本申请一实施例提供的信息处理装置的结构示意图;
图4为本申请另一实施例提供的信息处理装置的结构示意图。
【具体实施方式】
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述, 显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
在IC卡应用中,需要对IC卡进行圈存操作,以增加IC卡内的数值。值得说明的是,根据IC卡应用的不同,IC卡内数值代表的含义也会有所不同。举例说明,以IC卡在电子钱包中的应用为例,则IC卡内的数值表示货币金额。
现有IC卡圈存流程如下:
圈存装置向IC卡发送圈存初始化命令,该命令携带有圈存秘钥ID、圈存数值、圈存装置对应的终端号(可简称为终端号);
IC卡利用当前卡内数值、圈存序号、秘钥版本、算法标识、随机数等信息计算第一报文鉴别码;
IC卡向圈存装置返回圈存初始化命令的响应报文,该响应报文包括:当前卡内数值、圈存序号、秘钥版本、算法标识、随机数及第一报文鉴别码;
圈存装置根据IC卡返回的当前卡内数值、圈存序号、秘钥版本、算法标识及随机数,对第一报文鉴别码进行合法性验证;
若第一报文鉴别码通过合法性验证,圈存装置根据圈存数值、圈存类型、圈存装置对应的终端号、圈存日期、圈存时间等信息计算第二报文鉴别码;
圈存装置将圈存日期、圈存时间及第二报文鉴别码发送给IC卡;
IC卡根据待圈存金额、圈存类型、圈存装置对应的终端号、圈存日期及圈存时间,对第二报文鉴别码进行合法性验证;
当第二报文鉴别码通过合法性验证后,IC卡将卡内数值增加圈存数值,并将圈存序号增加1,然后向圈存装置返回圈存成功的圈存结果消息。
若在圈存过程中发生异常,可能导致圈存失败。
针对上述问题,本申请提供一种基于IC卡上圈存后的数据及基于IC卡上圈存后的数据生成的报文鉴别码,对IC卡的圈存结果进行验证,在验证出IC卡的圈存结果为失败时,重新执行IC卡的圈存操作的方法,用以对IC卡 圈存异常进行有效处理,提高圈存成功率。
图1为本申请一实施例提供的信息处理方法的流程示意图。如图1所示,该方法包括:
101、获取IC卡上圈存后的数据及IC卡基于IC卡上圈存后的数据生成的报文鉴别码。
102、根据IC卡上圈存后的数据及报文鉴别码,确定IC卡的圈存结果是否成功。
103、若IC卡的圈存结果为非成功,则重新执行IC卡的圈存操作。
本申请提供的信息处理方法,具体可由信息处理装置来执行。该信息处理装置可以作为对IC卡进行圈存操作的圈存装置中的功能模块来实现,或者可以独立于圈存装置实现,但可以与圈存装置进行通信。
例如,当信息处理装置在接收到表示IC卡圈存失败的圈存结果消息时,为了提高圈存成功率,可以发起IC卡的重圈存流程。或者,当信息处理装置在IC卡的圈存操作结束后的指定时间内未接收到任何圈存结果消息时,由于无法确定圈存是否成功,为了确保圈存成功,可以发起IC卡的重圈存流程。简单来说,信息处理装置可以在接收到表示IC卡圈存失败的圈存结果消息时,获取IC卡上圈存后的数据及IC卡基于IC卡上圈存后的数据生成的报文鉴别码。或者,信息处理装置可以在IC卡的圈存操作结束后的指定时间内未接收到任何圈存结果消息时,获取IC卡上圈存后的数据及IC卡基于IC卡上圈存后的数据生成的报文鉴别码。
值得说明的是,信息处理装置除了在上述两种情况下发起IC卡的重圈存流程之外,还可以在其它情况下发起IC卡的重圈存流程。
其中,IC卡的重圈存流程具体如下:
信息处理装置获取IC卡上圈存后的数据及IC卡基于IC卡上圈存后的数据生成的报文鉴别码;之后,根据所获取的IC卡上圈存后的数据及报文鉴别码,确定IC卡的圈存结果是否成功;若IC卡的圈存结果为非成功,则重新执行IC卡的圈存操作。
在本实施例中,由于报文鉴别码是IC卡根据IC卡上圈存后的数据生成的,具体生成过程不易被攻击者伪造,所以基于报文鉴别码对IC卡的圈存结果进行判断,可以保证判断结果的真实性和准确性。例如,对于在IC卡圈存操作结束后长时间未收到任何圈存结果消息的情况,信息处理装置通过报文鉴别码和IC卡上圈存后的数据,可以准确的获知IC卡的圈存结果是否成功。又例如,对于攻击者伪造IC卡圈操作失败的情况来说,若攻击者希望伪造的IC卡圈存失败的假象通过校验,还需要对验证过程中使用的IC卡上圈存后的数据及报文鉴别码进行伪造,以便通过IC卡上圈存后的数据及报文鉴别码验证出圈存确实是失败的。虽然在IC卡圈存过程中,圈存装置与IC卡之间是明文传输,传输内容很容易被攻击者伪造,但是由于报文鉴别码是IC卡采用一定算法基于IC卡上圈存后的数据生成的,具体生成过程无法在传输过程中披露,报文鉴别码不易被攻击者伪造,攻击者无法通过伪造IC卡上圈存后的数据及报文鉴别码来使伪造的圈存失败的假象通过校验。由此可见,本实施例一定程度上可以识别出攻击者故意伪造IC卡圈存操作失败的假象,可以准确的获知IC卡真正的圈存结果。
基于上述,本实施例基于报文鉴别码,能够真实有效的判断出IC的卡圈存结果为非成功的情况,此时再重新执行IC卡圈存操作,可以实现对IC卡圈存异常的处理,提高IC卡圈存成功率。值得说明的是,IC卡的圈存结果为非成功的情况包括IC卡的圈存结果为失败的情况及无法确定IC卡的圈存结果是成功还是失败的情况。
在一可选实施方式中,信息处理装置获取IC卡上圈存后的数据及IC卡基于所述IC卡上圈存后的数据生成的报文鉴别码的方式包括:
信息处理装置向IC卡发送数据请求,以请求IC卡上圈存后的数据及报文鉴别码;IC卡接收信息处理装置发送的数据请求,基于IC卡上圈存后的数据生成报文鉴别码,再将IC卡上圈存后的数据及报文鉴别码返回给信息处理装置;信息处理装置接收IC卡返回的IC卡上圈存后的数据及报文鉴别码。
在一可选实施方式中,可以对现有IC卡进行扩展,增加数据接口,该 数据接口支持一定的命令格式,该命令格式专用于数据请求,IC卡新增数据接口为信息处理装置向IC卡发送数据请求提供条件。基于此,信息处理装置向IC卡发送数据请求,以请求IC卡上圈存后的数据及报文鉴别码的过程包括:
信息处理装置根据IC卡新增的数据接口所支持的命令格式,生成数据请求;通过IC卡新增的数据接口,向IC卡发送数据请求,以请求IC卡上圈存后的数据及报文鉴别码。
在另一可选实施方式中,考虑到IC卡已有圈存接口,通过利用IC卡已有的圈存接口用于获取IC卡上圈存后的数据及报文鉴别码,这将实现IC卡接口的复用,有利于节约成本,提高实现效率。基于此,信息处理装置向IC卡发送数据请求,以请求IC卡上圈存后的数据及报文鉴别码的过程包括:
重新生成圈存初始化命令,以作为数据请求;该圈存初始化命令一般包括:圈存秘钥ID、圈存数值、信息处理装置对应的终端号等信息;
向IC卡重新发送圈存初始化命令,以请求IC卡上圈存后的数据及报文鉴别码。
对于IC卡来说,当通过已有的圈存接口接收到圈存初始化命令后,会执行圈存流程。具体是指,IC卡利用当前卡内数值、圈存序号、秘钥版本、算法标识、随机数等信息计算报文鉴别码;针对圈存初始化命令,向信息处理装置返回一响应报文,该响应报文包括:当前卡内数值、圈存序号、秘钥版本、算法标识、随机数及报文鉴别码,该当前卡内数值实际上是此次信息处理操作之前IC卡圈存后的卡内数值。
基于上述,信息处理装置接收IC卡返回的IC卡上圈存后的数据及报文鉴别码的过程,包括:
接收IC卡返回的圈存初始化命令的响应报文,该响应报文包括IC上圈存后的数据及报文鉴别码。
值得说明的是,在上述实施方式中,向IC卡重新发送圈存初始化命令,相当于重新启动IC卡的圈存操作。则,后续在验证IC卡的圈存结果为失败 时,重新执行IC卡的圈存操作实际上是执行重新启动的IC卡圈存操作的后续流程。
在一可选实施方式中,为了进一步提高圈存成功概率,可以循环执行IC卡的圈存操作,直至圈存成功。
进一步,为了降低IC卡圈存成本,避免死循环等问题,可以预先设定重圈存结束条件,当重圈存结束条件满足时,结束重新执行IC卡的圈存操作。例如,所述重圈存结束条件可以是重圈存的最大执行次数,当重新执行IC卡的圈存操作的次数达到预设的最大执行次数时,不再重新执行IC卡的圈存操作。又例如,所述重圈存结束条件可以是重圈存的最长执行时间,则当重新执行IC卡的圈存操作的时间达到预设的最长执行时间时,不再重新执行IC卡的圈存操作。
基于上述,信息处理装置在获取IC卡上圈存后的数据及IC卡基于IC卡上圈存后的数据生成的报文鉴别码之前,可以判断预设的重圈存条件是否满足,若重圈存结束条件未满足,意味着可以继续重新执行IC卡的圈存操作,于是执行获取IC卡上圈存后的数据及IC卡基于IC卡上圈存后的数据生成的报文鉴别码及后续操作,以便于在IC卡的圈存失败时,继续重新执行IC卡的圈存。
基于上述各种获取IC卡上圈存后的数据及报文鉴别码的实施方式,在获得IC卡上圈存后的数据及报文鉴别码之后,信息处理根据IC卡上圈存后的数据及报文鉴别码,确定IC卡的圈存结果是否成功的过程包括:
将IC卡上圈存前的数据和IC卡上圈存后的数据进行比较;
若IC卡上圈存前的数据和IC卡上圈存后的数据不相同,确定IC卡的圈存结果为成功;若IC卡上圈存前的数据和IC卡上圈存后的数据相同,确定IC卡的圈存结果为非成功。
进一步,对于IC卡上圈存前的数据和IC卡上圈存后的数据相同的情况,信息处理装置可以进一步根据IC卡上圈存后的数据对报文鉴别码进行合法性验证;若报文鉴别码通过合法性验证,确定IC卡的圈存结果为失败;若报 文鉴别码未通过合法性验证,确定IC卡的圈存结果为可疑(可疑的情况是指无法确定IC卡的圈存结果是成功还是失败)。
值得说明的是,上述IC卡上圈存前的数据主要包括IC卡上圈存前的数值及圈存序号,IC卡上圈存后的数据主要包括IC卡上圈存后的数值及圈存序号。具体的,若IC卡圈存成功,则IC卡上圈存前的数值和IC卡上圈存后的数值应该发生变化,IC卡上圈存前的圈存序号和IC卡上圈存后的圈存序号也会发生变化,因此,如果IC卡上圈存前的数值与IC卡上圈存后的数值发生变化,说明圈存成功;或者,如果IC卡上圈存前的圈存序号和IC卡上圈存后的圈存序号发生变化,也说明圈存成功。反之,若IC卡圈存失败,则IC卡上圈存前的数值和IC卡上圈存后的数值不应该发生变化,且IC卡上圈存前的圈存序号和IC卡上圈存后的圈存序号也会保持一致,因此,如果IC卡上圈存前的数值和IC卡上圈存后的数值未发生变化,且IC卡上圈存前后的圈存序号也未发生变化,进一步对报文鉴别码进行合法性验证,若报文鉴别码通过合法性验证,说明圈存确实失败;若报文鉴别码未通过合法性验证,意味着IC卡上圈存后的数值或IC卡上圈存后的圈存序号可能被攻击者篡改或伪造,此时,圈存结果可能是成功的,也可能是失败的,即圈存结果为可疑。
值得说明的是,本申请不限制信息处理装置的实现方式。信息处理装置可位于圈存装置中实现,则验证及重圈存等操作可以在圈存装置本地实现,或者,信息处理装置也可以位于服务端,则验证及重圈存等操作可以在服务端来实现。对于不同的应用场景可以根据具体需求实现。
另外,本申请提供了验证实际圈存结果的方法,但不限制获得验证结果后在业务或者技术上的具体应用。
再者,本申请也不限制具体IC卡的实现和形态,对于实体的卡片,无论是手机SE,SIM卡等均有效。
图2为本申请另一实施例提供的信息处理方法的流程示意图。在该实施例中,信息处理装置作为圈存装置中的一功能模块实现。如图2所示,该方 法包括:
201、圈存装置向IC卡发送圈存初始化命令,该命令携带有圈存秘钥ID、圈存数值、圈存装置对应的终端号(后续简称为终端号)。
202、IC卡利用当前卡内数值、圈存序号、秘钥版本、算法标识、随机数等信息计算第一报文鉴别码MAC1。
203、IC卡向圈存装置返回圈存初始化命令的响应报文,该响应报文包括:当前卡内数值、圈存序号、秘钥版本、算法标识、随机数及MAC1。
204、圈存装置根据IC卡返回的当前卡内数值、圈存序号、秘钥版本、算法标识及随机数,对MAC1进行合法性验证;若MAC1通过合法性验证,则执行步骤205。
205、圈存装置根据圈存数值、圈存类型、终端号、圈存日期、圈存时间等信息计算第二报文鉴别码MAC2。
206、圈存装置向IC卡发送圈存日期、圈存时间及MAC2。
207、IC卡根据待圈存金额、圈存类型、终端号、圈存日期及圈存时间,对MAC2进行合法性验证。
208、当MAC2通过合法性验证后,IC卡将卡内数值增加上述圈存数值,并将圈存序号增加1。
209、IC卡向圈存装置返回表示圈存成功的圈存结果消息。
210、中间设备拦截表示圈存成功的圈存结果消息,将其修改为表示圈存失败的圈存结果消息。
211、中间设备向圈存装置返回表示圈存失败的圈存结果消息,并继续执行步骤212。
212、圈存装置重新生成圈存初始化命令,该命令携带有圈存秘钥ID、上述圈存数值及上述终端号。
213、圈存装置向IC卡重新发送圈存初始化命令。
214、IC卡利用当前卡内数值、圈存序号、秘钥版本、算法标识、随机数等信息计算MAC1。
215、IC卡向圈存装置返回圈存初始化命令的响应报文,该响应报文包括:当前卡内数值、圈存序号、秘钥版本、算法标识、随机数及MAC1。
216、圈存装置将步骤215返回的卡内数值或圈存序号,与步骤203中返回的卡内数值或圈存序号进行比较;若比较结果为相同,则执行步骤217;若比较结果为不相同,则执行步骤218。
217、圈存装置根据步骤215返回的当前卡内数值、圈存序号、秘钥版本、算法标识及随机数,对MAC1进行合法性验证;若MAC1未通过合法性验证,则执行步骤219;若MAC1通过合法性验证,则执行步骤220。
218、圈存装置确定圈存成功,结束此次操作。
219、圈存装置确定圈存可疑,则可以返回步骤212,再次重新执行IC卡的圈存操作,直至满足预设的重圈存结束条件为止。
220、圈存装置确定圈存失败,则可以返回步骤205,以便继续执行IC卡的圈存操作的其它流程,直到满足预设的重圈存结束条件为止。
由上述可见,本实施例获取IC卡上圈存后的数据及IC卡根据IC卡上圈存后的数据生成的报文鉴别码,之后根据IC卡上圈存后的数据及报文鉴别码,对IC卡的圈存结果进行验证;能够真实有效的验证出IC卡圈存失败的情况,此时再重新执行IC卡圈存操作,可以实现对IC卡圈存异常的处理,提高IC卡圈存成功率。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
图3为本申请一实施例提供的信息处理装置的结构示意图。如图3所示,该装置包括:获取模块31、结果确定模块32和重圈存模块33。
获取模块31,用于获取IC卡上圈存后的数据及IC卡基于IC卡上圈存后的数据生成的报文鉴别码。
结果确定模块32,用于根据获取模块31获取的IC卡上圈存后的数据及报文鉴别码,确定IC卡的圈存结果是否成功。
重圈存模块33,用于在结果确定模块32确定出IC卡的圈存结果为非成功时,重新执行IC卡的圈存操作。
在一可选实施方式中,获取模块31具体用于:
在接收到表示IC卡圈存失败的圈存结果消息时,获取IC卡上圈存后的数据及IC卡基于IC卡上圈存后的数据生成的报文鉴别码;或者
在IC卡的圈存操作结束后的指定时间内未接收到任何圈存结果消息时,获取IC卡上圈存后的数据及IC卡基于IC卡上圈存后的数据生成的报文鉴别码。
在一可选实施方式中,获取模块31具体可用于:
向IC卡发送数据请求,以请求IC卡上圈存后的数据及报文鉴别码;
接收IC卡返回的IC卡上圈存后的数据及报文鉴别码。
进一步可选的,获取模块31具体可用于:
重新生成圈存初始化命令,以作为数据请求;
向IC卡重新发送圈存初始化命令,以请求IC卡上圈存后的数据及报文鉴别码;
接收IC卡返回的圈存初始化命令的响应报文,响应报文包括IC上圈存后的数据及报文鉴别码。
在一可选实施方式中,如图4所示,该信息处理装置还包括:条件判断模块34。
条件判断模块34,用于判断预设的重圈存结束条件是否满足,并在重圈存结束条件未满足时,触发获取模块31执行获取IC卡上圈存后的数据及IC卡基于IC卡上圈存后的数据生成的报文鉴别码的操作。
在一可选实施方式中,结果确定模块32具体可用于:
将IC卡上圈存前的数据和IC卡上圈存后的数据进行比较;
若IC卡上圈存前的数据和IC卡上圈存后的数据不相同,确定IC卡的圈存结果为成功;
若IC卡上圈存前的数据和IC卡上圈存后的数据相同,确定IC卡的圈存结果为非成功。
本实施例提供的信息处理装置,获取IC卡上圈存后的数据及IC卡根据IC卡上圈存后的数据生成的报文鉴别码,之后根据IC卡上圈存后的数据及报文鉴别码,确定IC卡的圈存结果是否成功;当IC卡的圈存结果为非成功时,重新执行IC卡的圈存操作。由于报文鉴别码是IC卡根据IC卡上圈存后的数据生成的,具体生成过程不易被攻击者伪造,所以基于报文鉴别码对IC卡的圈存结果进行判断,能够真实有效的判断出IC卡圈存结果为非成功的情况,此时再重新执行IC卡圈存操作,可以实现对IC卡圈存异常的处理,提高IC卡圈存成功率。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
上述以软件功能单元的形式实现的集成的单元,可以存储在一个计算机可读取存储介质中。上述软件功能单元存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本申请各个实施例所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。