一种终端工作的方法及装置与流程

文档序号:13935043
一种终端工作的方法及装置与流程

本发明涉及信息安全领域,尤其涉及一种终端工作的方法及装置。



背景技术:

静态数据,是指在IC卡制定后不会改变的数据,如卡号,卡的有效期,卡的应用限制等。静态数据认证的目的主要是用于终端验证IC卡中的重要静态应用数据(如卡号)是否被非法修改,从而保证IC卡中的发卡行数据在个人化以后没有被非法篡改。

在现有技术中,静态数据认证虽然可以确认存放在IC卡中关键的静态数据的合法性,能有效地检测IC卡内关键静态数据的真实性,但是如果不法分子将IC卡复制,但不修改IC卡里面的数据,单独用静态数据认证终端无法发现是复制的卡还是发卡行发行的卡,不能防止信息被盗取、IC卡被复制,终端交易安全性大大降低。



技术实现要素:

本发明的目的是为了解决现有技术中存在的问题,提供了一种终端工作的方法及装置。

本发明采用的技术方案是:

一方面,本发明提供一种终端工作的方法,包括:

步骤S1:终端获取授权金额后,向IC卡发送选择应用命令,待接收到IC卡返回的选择应用命令的响应数据后,根据选择应用指令的响应数据生成获取处理选项命令;

步骤S2:终端向IC卡发送获取处理选项命令,并从IC卡返回的获取处理选项命令响应中获取签名的动态应用数据和IC卡动态数据;获取处理选项命令包含授权金额;

步骤S3:终端根据获取处理选项命令响应确定要读取的IC卡记录的位置信息,并根据位置信息读取IC卡记录获得IC卡数据;

步骤S4:终端根据IC卡数据中的认证中心公钥索引获取认证中心公钥,根据认证中心公钥和IC卡数据中的发卡行公钥证书得到第一恢复数据,从第一恢复数据中获取发卡行公钥;

步骤S5:终端根据发卡行公钥和IC卡数据中的IC卡公钥证书得到第二恢复数据,根据第二恢复数据和IC卡数据中包含的IC卡静态数据计算第一哈希值,判断第一哈希值是否与第二恢复数据中包含的哈希值相同,是则从第二恢复数据中获取IC卡公钥,执行步骤S6,否则终端拒绝交易;

步骤S6:终端根据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为本发明实施例四中提供的一种终端工作的装置的方框图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

实施例一

在本实施例中,提供了一种终端工作的方法,如图1-2所示,所述方法,步骤如下:

步骤101、IC卡上电初始化;

在本步骤之前,还包括:终端进行交易预处理,获取授权金额。

步骤102、终端向IC卡发送选择近距离支付系统环境指令;

在本实施例中,近距离支付系统环境是由IC卡支持的应用标识、应用标签和应用优先指示器组成的一个列表,即非接触应用列表,可以通过非接触界面访问。该列表包括所有目录的入口,由IC卡在选择近距离支付系统环境响应的文件控制信息中返回。

步骤103、IC卡向终端返回IC卡支持的非接触应用列表;

步骤104、终端从非接触应用列表中选择一个应用作为当前应用,根据当前应用的应用标识符生成选择应用命令,并向IC卡发送选择应用命令;

具体地,终端自动从应用候选列表中选择应用作为当前应用,或终端将应用候选列表中应用信息显示给用户,接收用户输入,根据用户输入的选择信息或确认信息选择应用作为当前应用。

步骤105、IC卡接收选择应用命令后,在非接触应用列表内选择应用,并向终端返回选择响应;

在本实施例中,选择响应包括应用选择成功响应和应用选择失败响应;具体地,IC卡接收到终端发送的选择应用命令后,判断是否允许执行选择应用命令中的应用标识符对应的应用,是则向终端返回包含文件控制信息的应用选择成功响应,文件控制信息中包含处理选项数据对象列表,IC卡通过处理选项数据对象列表向终端请求终端数据;否则向终端返回应用选择失败响应。

本实施例中,IC卡向终端请求的终端数据包括:9F66049F02069F03069F1A0295055F2A029A039C010102030404;

例如,IC卡接收到的选择应用命令为“00A4040007A000000333010100”,IC卡向终端返回:

“6F648407A0000003330101A559500B50424F43204372656469748701019F38189F66049F02069F03069F1A0295055F2A029A039C0101020304045F2D087A68656E667264659F1101019F120F4341524420494D4147452030303335BF0C0A9F4D020B14DF4D020C0A9000”,其中最后两个字节“9000”是表示选择成功的状态码,该状态码之前是文件控制信息,文件控制信息中的

“9F38189F66049F02069F03069F1A0295055F2A029A039C010102030404”为处理选项数据对象列表。

步骤106、终端获取选择响应中的处理选项数据对象列表,根据处理选项数据对象列表获取IC卡需要的终端数据对象表,根据终端数据对象表获取终端数据并根据终端数据生成获取处理选项命令,并向IC卡发送获取处理选项命令;

在本实施例中,终端根据终端动态数据生成获取处理选项命令为:

80A8000023832120000000000000000001000000000000015600000000000156160101000102030400;

在本实施例中,获取处理选项命令中包含授权金额。

步骤107、IC卡接收获取处理选项命令,解析所述获取处理选项命令,得到终端动态数据;

在本实施例中,终端动态数据包括:终端不可预知数、授权金额、交易货币代码和IC卡认证相关数据,具体数据为:010203040000000000010156013011A431300000;

步骤108、IC卡将需签名的动态应用数据组成待计算哈希数据;

具体地,需签名的动态应用数据包括:签名的数据格式、哈希算法标识、IC卡动态数据长度、IC卡动态数据、填充字节和终端动态数据。

在本实施例中,IC卡组成待计算哈希数据之前,还包括:获取IC卡动态数据,具体地,IC卡动态数据具体为:交易计数器。。

更具体地,待计算哈希数据是以签名的数据格式0x05开头,后接哈希算法标识0x01、IC卡动态数据长度03、IC卡动态数据0001、预设填充字节和终端动态数据010203040000000000010156013011A431300000,组合得到待计算哈希数据:050103020001

BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB010203040000000000010156013011A431300000。

步骤109、IC卡调用哈希算法计算得到哈希值;

在本实施例中,计算得到的哈希值为:B62DCD3D59BC22F78F8556D90F56E13C38A8B878。

步骤110、IC卡获取数据头和数据结尾,将数据头、数据结尾、需签名的动态应用数据和哈希值组成待签名数据;

具体地,待签名数据是以数据头0x6A开头,后接签名的数据格式0x05开头、哈希算法标识0x01、IC卡动态数据长度03、IC卡动态数据0001、预设填充字节、哈希值和数据结尾0xBC组合得到待签名数据:6A050103020001BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB62DCD3D59BC22F78F8556D90F56E13C38A8B878BC。

步骤111、IC卡使用IC卡私钥对待签名数据进行签名运算,得到签名的动态应用数据;

在本实施例中,签名的动态应用数据是537CF082572FB6E74B86AD28B0A5AFDC6C1666839A5ABD04FFB2FFFB63C4AF728562F9F5AC0F70EF262439A0BB2DCA636733642D9E16B60A756800283CE0281E28EB86EEC78EA38744EB37427291B4270E6E60A44750C70F6ADB94E0B76A1139587D68119B38B3418B6BE5D8647AFA3E3D917C1D397FEE24B53EC23686AAAA13。

步骤112、IC卡向终端返回获取处理选项命令响应。

步骤113、终端根据获取处理选项命令响应中的发卡行应用数据判断是否脱机批准,是则执行步骤114,否则终端拒绝交易。

步骤114、终端根据获取处理选项命令响应中的应用文件定位器确定要读取的IC卡记录,对应生成读记录命令;

具体地,终端顺序读取应用文件定位器中的一个应用文件定位器项作为当前应用文件定位器项,根据当前应用文件定位器项的内容确定当前应用文件定位器项指定要读取的IC卡记录所在应用文件的短文件标识符,以及要读取的IC卡记录的记录号,生成包含当前确定的短文件标识符和记录号的读记录命令。

在本实施例中,获取处理选项命令响应中的应用文件定位器包括:08050501100307002001010028030300。

步骤115、终端向IC卡发送读记录命令;

步骤116、IC卡接收读记录命令,读取相应IC卡记录,根据读取到的IC卡记录生成读记录命令响应;

在本实施例中,IC卡根据读记录命令中的短文件标识和记录号确定终端要读取的IC卡记录,从具有短文件标识的应用基本文件中获取所述记录号对应的IC卡记录。

例如,应用文件定位器为:08050501100307002001010028030300,四字节为一组,包含IC卡需要读取的IC卡记录。

以前四个字节为例,其中08标识文件记录号,05表示要读取的记录的第一个记录号,05表示要读取的记录的最后一个记录号,即读取第05条记录;具体地,读取到的第05条记录的数据为:701B5A0862280001000011175F24033012315F25039507019F08020030。需要说明的是,读取到的每条数据都是由“70”开头。

具体地,终端向IC卡发送读记录命令,去指定文件里面读取指定的数据。

IC卡从文件中读到的数据为:7081849F4681806D822693BC106CC5B5DC65E2FBAE196904D339C525AD7289662C7BF93F8953C025373BBF1D2F876DDF0611F21D03AA9D2931C64A4F247240EEA310E0586E2946431B2F9141A675045B2F5BE7B79AB5B86A4DEEF81716C36E2370636EDEC73A923A716141849F606E3070C48AE5107EAA44036000EE7F56E258AECA8FC899AC7D。其中本条数据包含IC卡公钥证书。终端从IC卡公钥证书中获取IC卡公钥。

步骤117、IC卡向终端返回读记录命令响应;

需要说明的是,在最后一条读记录命令响应中返回IC卡认证相关数据。

步骤118、终端获取签名的动态应用数据,终端接收到后调用恢复函数,使用IC卡公钥恢复出待签名数据;

具体地,终端从读记录命令响应中把签名的动态应用数据返回给终端。

在本实施例中,IC卡读取IC卡公钥,调用恢复函数获取恢复出的待验证的待签名数据。

具体地,终端从获取处理选项响应中或者从读记录命令响应获取签名的动态应用数据。

步骤119、终端判断恢复的待签名的数据结尾是否是第一预设值,是则执行步骤120,否则拒绝交易;

在本实施例中,如果快速动态数据认证失败,则交易会被拒绝、终止,或者根据发卡行设置发送联机请求。

具体地,第一预设值是0xBC。

步骤120、终端判断恢复的待签名的数据开头是否是第二预设值,是则执行步骤121,否则拒绝交易;

具体地,第二预设值是0x6A。

步骤121、终端判断恢复的待签名的数据的签名格式是否是第三预设值,是则执行步骤122,否则拒绝交易;

具体地,第三预设值是0x05。

步骤122、终端将需签名的动态应用数据组成待计算哈希数据,调用哈希函数进行哈希计算,得到哈希值;

步骤123、终端判断计算得到的哈希值与恢复出来的待签名数据中包含的的哈希值是否一致,是则动态数据认证成功,终端批准交易;否则终端拒绝交易。

实施例二

在本实施例中,提供了一种终端工作的方法,如图3所示,步骤如下:

步骤201:终端向IC卡发送选择应用命令,待收到选择指令的响应数据后,生成获取处理选项命令;

具体地,终端向IC卡发送选择近距离支付系统环境指令,接收到IC卡返回的IC卡支持的非接触应用列表,终端从非接触应用列表中选择一个应用作为当前应用,根据当前应用的应用标识符生成选择应用命令,并向IC卡发送选择应用命令。

在本实施例中,近距离支付系统环境是由IC卡支持的应用标识符、应用标签和应用优先指示器组成的一个列表,即非接触应用列表,可以通过非接触界面访问。

在本步骤之前,还包括:终端进行交易预处理,获取授权金额。

步骤202:终端向IC卡发送获取处理选项命令,并从IC卡返回的获取处理选项命令响应中得到签名的动态应用数据;

具体地,终端获取选择应用响应中的处理选项数据对象列表,根据处理选项数据对象列表获取终端动态数据,根据终端动态数据生成获取处理选项命令,并向IC卡发送获取处理选项命令。

在本实施例中,除了从IC卡返回的获取处理选项命令响应中得到签名的动态应用数据外,还得到IC卡动态数据,IC卡动态数据即交易计数器。

在本实施例中,获取处理选项命令中包含授权金额。

步骤203:终端根据获取处理选项命令响应中的应用文件定位器确定要读取的IC卡记录,读取IC卡记录后获得IC卡数据;

在本实施例中,根据获取处理选项命令响应中的应用文件定位器确定要读取的IC卡记录如下:

1、读01文件的第5条记录,获取应用主账号、应用失效日期、应用生效日期、应用版本号。

终端向IC卡发送的指令为:00B2050C00

IC卡返回的响应数据为:

701B5A0862280001000011175F24033012315F25039507019F08020030。

通过IC卡返回的响应数据得到:应用主账号为6228000100001117、应用失效日期为301231、应用生效日期为950701、应用版本号为0030;

2、读02文件的第3条记录,获取发卡行公钥证书。

终端向IC卡发送的指令为:发送指令:00B2031400

IC卡返回的响应数据为:

708183908180229103A5E3120F2D2862091176AA2BD4E24D69E7EEF7B9195C91EA0088AECFF47EDFA0BEEF7C391DF3B05F717DCC06FFC8EEFF90BA14212B8A52AD48B33277B2E230D40B3E76DC59778926F1D8739E106CD741DE06A7423DFBA25E02F12E543D13D1B471806526024981B7D26B4BF6E5558604CCC289F59E8A802F45FB3D9E67;

通过IC卡返回的响应数据得到:发卡行公钥证书的长度是80;

发卡行公钥证书为:229103A5E3120F2D2862091176AA2BD4E24D69E7EEF7B9195C91EA0088AECFF47EDFA0BEEF7C391DF3B05F717DCC06FFC8EEFF90BA14212B8A52AD48B33277B2E230D40B3E76DC59778926F1D8739E106CD741DE06A7423DFBA25E02F12E543D13D1B471806526024981B7D26B4BF6E5558604CCC289F59E8A802F45FB3D9E67。

3、读02文件的第4条记录,获取认证中心公钥索引、发卡行公钥余项、发卡行公钥指数。

终端向IC卡发送的指令为:00B2041400;

IC卡返回的响应数据为:

702D8F018092248B643D1EAF2EA784AC205303C90E745EA2EFA5CBF02CC47D47833BB7B27ECC6962385A4B9F320103;通过IC卡返回的响应数据得到:认证中心公钥索引为80,发卡行公钥余项为:8B643D1EAF2EA784AC205303C90E745EA2EFA5CBF02CC47D47833BB7B27ECC6962385A4B、发卡行公钥指数为03。

4、读02文件的第6条记录,获取IC卡公钥余项、IC卡公钥指数。

终端向IC卡发送的指令为:00B2061400;

IC卡返回的响应数据为:

70339F47030100019F482A518B0EA3ABA9343F1778545FFB49EE840BBCEA457DBAABBFD755BA0F943A08A59CFFB6066B4084767599;

通过IC卡返回的响应数据得到:IC卡公钥余项为010001,IC卡公钥指数为:518B0EA3ABA9343F1778545FFB49EE840BBCEA457DBAABBFD755BA0F943A08A59CFFB6066B4084767599。

5、读02文件的第7条记录,获取IC卡公钥证书。

终端向IC卡发送的指令为:00B2071400;

IC卡返回的响应数据为:

7081849F4681806D822693BC106CC5B5DC65E2FBAE196904D339C525AD7289662C7BF93F8953C025373BBF1D2F876DDF0611F21D03AA9D2931C64A4F247240EEA310E0586E2946431B2F9141A675045B2F5BE7B79AB5B86A4DEEF81716C36E2370636EDEC73A923A716141849F606E3070C48AE5107EAA44036000EE7F56E258AECA8FC899AC7D;

通过IC卡返回的响应数据得到:6D822693BC106CC5B5DC65E2FBAE196904D339C525AD7289662C7BF93F8953C025373BBF1D2F876DDF0611F21D03AA9D2931C64A4F247240EEA310E0586E2946431B2F9141A675045B2F5BE7B79AB5B86A4DEEF81716C36E2370636EDEC73A923A716141849F606E3070C48AE5107EAA44036000EE7F56E258AECA8FC899AC7D。

6.读03文件的第3条记录,获取IC卡认证相关数据。

终端向IC卡发送的指令为:00B2032C00

IC卡返回的响应数据为:

70149F74064543433131319F6908013011A431300000;

通过IC卡返回的响应数据得到:IC卡认证相关数据为013011A431300000。

步骤204:终端根据获得的IC卡数据中的认证中心公钥索引检索存储在终端的认证中心公钥,并判断是否有与终端匹配的认证中心公钥,是则执行步骤205,否则终端拒绝交易;

在本实施例中,认证中心公钥索引包含一个二进制数字,指明终端应使用其保存的相应的认证中心公钥中的哪一个来验证IC卡。

需要说明的是,终端除了使用认证中心公钥索引检索存储在终端的认证中心公钥外,还使用注册标识符;使用认证中心公钥索引和注册标识符,终端能够确认存放在终端的认证中心公钥相关的信息

具体地,注册标识符即应用标识符的前五个字节。

步骤205:终端获取认证中心公钥及认证中心公钥相关的信息;

步骤206:终端根据获得的IC卡数据中的发卡行公钥证书确定发卡行公钥证书的长度,并判断发卡行公钥证书的长度是否与获得的IC卡数据中的认证中心公钥模长度相同,是则执行步骤207,否则终端拒绝交易;

步骤207:终端调用恢复函数并使用获取的认证中心公钥恢复发卡行公钥数据;

步骤208:终端判断恢复出的发卡行公钥数据是否正确,是则终端获取到发卡行公钥,执行步骤209;否则终端拒绝交易;

在本实施例中,终端判断恢复出的发卡行公钥数据是否正确,具体包括:

步骤208-1:终端判断恢复出的发卡行公钥数据的数据结尾是否正确,是则执行步骤208-2,否则终端拒绝交易;

具体地,发卡行公钥数据的结尾为:BC;

步骤208-2:终端判断恢复出的发卡行公钥数据的数据头是否正确,是则执行步骤208-3,否则终端拒绝交易;

具体地,发卡行公钥数据的数据头为:6A;

步骤208-3:终端判断发卡行公钥证书的格式是否正确,是则执行步骤208-4,否则终端拒绝交易;

具体地,证书格式为:02;

步骤208-4:终端根据恢复出的发卡行公钥数据中的数据计算出哈希结果,并判断与恢复出的发卡行公钥数据中包含的哈希结果是否一致,是则执行步骤208-5,否则终端拒绝交易;

在本实施例中,终端计算出哈希结果使用的数据有:终端证书格式、发卡行标识、证书失效日期、证书序列号、哈希算法标识、发卡行公钥算法标识、发卡行公钥长度、发卡行公钥指数长度、发卡行公钥、发卡行公钥余项、IC卡公钥指数;

其中,终端根据读取的02文件的第4条记录获取的发卡行公钥指数得到发卡行公钥指数长度。

步骤208-5:终端判断发卡行公钥数据中的发卡行识别号是否与终端接收到的应用主账号最左边3~8字节相同,是则执行步骤208-6,否则终端拒绝交易;

步骤208-6:终端判断证书是否失效,是则终端拒绝交易,否则执行步骤208-7;

在本实施例中,终端判断证书失效日期中指定月的最后日期是否等于或迟于今天的日期,如果证书失效日期在今天的日期之前,那么证书已过期,动态数据认证失败;如果证书失效日期在今天的日期之后,那么证书未过期,执行步骤208-7;

步骤208-7:终端判断连接起来的注册标识符、认证中心公钥索引、证书序列号是否有效,是则执行步骤208-8,否则终端拒绝交易;

步骤208-8:终端判断发卡行公钥算法标识能否识别,是则终端获取到发卡行公钥,执行步骤209;否则终端拒绝交易;

在本实施例中,如果通过步骤208所有的检验后,终端连接发卡行公钥的最左边字节和发卡行公钥的余项得到发卡行公钥模,从而继续下一步取得IC卡公钥。

步骤209:终端根据获得的IC卡数据中的IC卡公钥证书确定IC卡公钥证书的长度,并判断IC卡公钥证书的长度是否与获得的发卡行公钥模长度相同,是则执行步骤210,否则终端拒绝交易;

在本实施例中,终端获取到发卡行公钥后,终端会获取到发卡行公钥模长度。

步骤210:终端调用恢复函数并使用获取的发卡行公钥恢复IC卡公钥数据;

步骤211:终端判断恢复出的IC卡公钥数据是否正确,是则终端获取到IC卡公钥,执行步骤212;否则终端拒绝交易;

在本实施例中,终端判断恢复出的IC卡公钥数据是否正确,具体包括:

步骤211-1:终端判断恢复出的IC卡公钥数据的数据结尾是否正确,是则执行步骤211-2,否则终端拒绝交易;

具体地,IC卡公钥数据的结尾为:BC;

步骤211-2:终端判断恢复出的IC卡公钥数据的数据头是否正确,是则执行步骤211-3,否则终端拒绝交易;

具体地,IC卡公钥数据的数据头为:6A;

步骤211-3:终端判断IC卡公钥证书的格式是否正确,是则执行步骤211-2,否则终端拒绝交易;

具体地,证书格式为:04;

步骤211-4:终端根据恢复出的IC卡公钥数据中的数据计算出哈希结果,并判断与恢复出的IC卡公钥数据中包含的哈希结果是否一致,是则执行步骤211-5,否则终端拒绝交易;

在本实施例中,终端计算出哈希结果使用的数据有:计算哈希的数据有:终端证书格式、应用主账号、证书失效日期、证书序列号、哈希算法标识、IC卡公钥算法标识、IC卡公钥长度、IC卡公钥指数长度、IC卡公钥、IC卡公钥余项、IC卡公钥指数、应用主账号、应用失效日期、应用生效日期、应用版本号;

其中应用主账号、应用失效日期、应用生效日期、应用版本号是IC卡静态数据,在本实施例中,终端对IC卡静态数据进行认证,能够有效防止IC卡数据被非法篡改。

步骤211-5:终端判断IC卡公钥数据的应用主账号是否与终端接收到的应用主账号相同,是则执行步骤211-6,否则终端拒绝交易;

步骤211-6:终端判断证书是否失效,是则终端拒绝交易,否则执行步骤211-7;

在本实施例中,终端判断证书失效日期中指定月的最后日期是否等于或迟于今天的日期,如果证书失效日期在今天的日期之前,那么证书已过期,动态数据认证失败;如果证书失效日期在今天的日期之后,那么证书未过期,执行步骤211-7;

步骤211-7:终端判断发卡行公钥算法标识能否识别,是则终端获取到IC卡公钥,执行步骤212,否则终端拒绝交易;

在本实施例中,如果通过步骤211所有的检验后,终端连接IC卡公钥的最左边字节和IC卡公钥的余项以得到发卡行公钥模,继续执行动态数据认证。

步骤212:终端调用恢复函数和IC卡公钥对签名的动态应用数据进行恢复,得到待签名数据;

步骤213:终端判断恢复出的待签名数据是否正确,是则动态数据认证成功,终端批准交易;否则终端拒绝交易。

在本实施例中,终端判断恢复出的签名的动态应用数据是否正确,具体包括:

步骤213-1:终端判断恢复出的签名的动态应用数据的数据结尾是否正确,是则执行步骤213-2,否则终端拒绝交易;

具体地,签名的动态应用数据的结尾为:BC;

步骤213-2:终端判断恢复出的IC卡公钥数据的数据头是否正确,是则执行步骤213-3,否则终端拒绝交易;

具体地,签名的动态应用数据的数据头为:6A;

步骤213-3:终端判断签名数据格式是否正确,是则执行步骤213-4,否则终端拒绝交易;

具体地,签名数据格式为:05;

步骤213-4:终端根据恢复出的签名的动态应用数据中的数据计算出哈希结果,并判断与恢复出的签名的动态应用数据中包含的哈希结果是否一致,是则动态数据认证成功,终端批准交易;否则终端拒绝交易;

在本实施例中,终端计算出哈希结果使用的数据有:终端签名数据格式、哈希算法标识、IC卡动态数据长度、IC卡动态数据、填充字节、终端动态数据;

其中终端动态数据包括终端不可预知数、授权金额、交易货币代码以及终端读取获得的IC卡认证相关数据。在本实施例中,终端对IC卡动态数据进行认证,能够有效防止IC卡被非法复制。

实施例三

在本实施例中,提供了一种终端工作的方法,步骤如下:

步骤S1:终端获取授权金额后,向IC卡发送选择应用命令,待接收到IC卡返回的选择应用命令的响应数据后,根据选择应用指令的响应数据生成获取处理选项命令;

步骤S2:终端向IC卡发送获取处理选项命令,并从IC卡返回的获取处理选项命令响应中获取签名的动态应用数据和IC卡动态数据;获取处理选项命令包含授权金额;

步骤S3:终端根据获取处理选项命令响应确定要读取的IC卡记录的位置信息,并根据位置信息读取IC卡记录获得IC卡数据;

步骤S4:终端根据IC卡数据中的认证中心公钥索引获取认证中心公钥,根据认证中心公钥和IC卡数据中的发卡行公钥证书得到第一恢复数据,从第一恢复数据中获取发卡行公钥;

步骤S5:终端根据发卡行公钥和IC卡数据中的IC卡公钥证书得到第二恢复数据,根据第二恢复数据和IC卡数据中包含的IC卡静态数据计算第一哈希值,判断第一哈希值是否与第二恢复数据中包含的哈希值相同,是则从第二恢复数据中获取IC卡公钥,执行步骤S6,否则终端拒绝交易;

步骤S6:终端根据IC卡公钥和签名的动态应用数据得到第三恢复数据,终端获取终端动态数据后,根据终端动态数据、第三恢复数据、IC卡动态数据和IC卡数据中的IC卡认证相关数据计算第二哈希值,判断第二哈希值是否与第三恢复数据中包含的哈希值相同,是则动态数据认证成功,终端批准交易;否则终端拒绝交易。

在本实施例中,步骤S1具体包括:

步骤C1:终端向IC卡发送选择近距离支付系统环境的指令;

步骤C2:终端从IC卡返回的非接触应用列表中选择一个应用作为当前应用,根据当前应用的应用标示符生成选择应用命令,并向IC卡发送选择应用命令;

步骤C3:待终端接收到IC卡返回的选择应用命令的响应数据后,根据选择应用命令的响应数据判断当前应用是否选择成功,是则根据选择应用指令的响应数据生成获取处理选项命令,否则执行步骤C2。

具体地,终端根据认证中心公钥索引获取认证中心公钥具体为:终端根据IC卡数据中的认证中心公钥索引和应用标识符检索存储在终端中的认证中心公钥,并判断是否有与终端匹配的认证中心公钥,是则根据认证中心公钥和IC卡数据中的发卡行公钥证书得到第一恢复数据,否则终端拒绝交易。

在本实施例中,终端根据IC卡数据中的认证中心公钥索引和应用标识符检索存储在终端中的认证中心公钥,具体为:终端根据IC卡数据中的认证中心公钥索引和应用标识符的前五个字节检索存储在终端中的认证中心公钥。

在本实施例中,步骤S1中根据选择应用指令的响应数据生成获取处理选项命令,具体为:

终端从选择应用指令的响应数据中获取处理选项数据对象列表,并从处理选项数据对象列表中获取IC卡请求终端数据的指令,终端根据指令获取终端数据并根据终端数据生成获取处理选项命令。

在本实施例中,,步骤S4中终端根据IC卡数据中的认证中心公钥索引获取认证中心公钥后,还包括:终端根据IC卡数据中的认证中心公钥索引获取认证中心公钥相关的信息;

终端根据IC卡数据中的认证中心公钥索引获取认证中心公钥相关的信息后,还包括:终端根据IC卡数据中包含的发卡行公钥证书确定发卡行公钥证书的长度值,判断发卡行公钥证书的长度值与认证中心公钥相关的信息中包含的认证中心公钥模长度值是否相同,是则终端根据认证中心公钥和IC卡数据中包含的发卡行公钥证书得到第一恢复数据,否则终端拒绝交易。

优选地,在本实施例中,步骤S4中从第一恢复数据中获取发卡行公钥之前,还包括:终端判断第一恢复数据是否正确,是则从第一恢复数据中获取发卡行公钥,否则终端拒绝交易。

进一步地,终端判断第一恢复数据是否正确,具体包括:

步骤A1:终端判断第一恢复数据的数据格式是否正确,是则执行步骤A2,否则终端拒绝交易;

步骤A2:终端根据第一恢复数据和IC卡数据中的发卡行公钥余项、发卡行公钥指数计算第三哈希值,判断第三哈希值是否与第一恢复数据中包含的哈希值相同,是则执行步骤A3,否则终端拒绝交易;

步骤A3:终端判断第一恢复数据中的发卡行识别号是否与IC卡数据中包含的应用主账号的最左边的三到八字节相同,是则执行步骤A4,否则终端拒绝交易;

步骤A4:终端判断第一恢复数据中的发卡行公钥证书是否失效,是则终端拒绝交易,否则执行步骤A5;

步骤A5:终端判断应用标识符的前五个字节与认证中心公钥索引和第一恢复数据中的证书序列号连接起来后的数据是否有效,是则执行步骤A6,否则终端拒绝交易;

步骤A6:终端判断第一恢复数据中的发卡行公钥算法标识能否被识别,是则从第一恢复数据中获取发卡行公钥,否则终端拒绝交易。

更近一步地,步骤A1具体包括:

步骤A1-1:终端判断第一恢复数据的数据结尾是否正确,是则执行步骤A1-2,否则终端拒绝交易;

步骤A1-2:终端判断第一恢复数据的数据头是否正确,是则执行步骤A1-3,否则终端拒绝交易;

步骤A1-3:终端判断第一恢复数据中的发卡行公钥证书的格式是否正确,是则执行步骤A2,否则终端拒绝交易。

更近一步地,步骤A4,具体为:终端判断第一恢复数据中的发卡行公钥证书的证书失效日期中指定的最后日期是否等于或迟于今天的日期,是则发卡行公钥证书未过期,执行步骤A5,否则发卡行公钥证书已过期,终端拒绝交易。

在本实施例中,步骤S5中,根据第二恢复数据和IC卡数据中的IC卡静态数据计算第一哈希值之前还包括:终端判断第二恢复数据的数据格式是否正确,是则根据第二恢复数据和IC卡数据中的IC卡静态数据计算第一哈希值,否则终端拒绝交易。

优选地,步骤S5中,从第二恢复数据中获取IC卡公钥之前,还包括:

步骤B1:终端判断第二恢复数据中的应用主账号是否与IC卡数据中包含的应用主账号相同,是则执行步骤B2,否则终端拒绝交易;

步骤B2:终端判断第二恢复数据中的IC卡公钥证书是否失效,是则终端拒绝交易,否则执行步骤B3;

步骤B3:终端判断IC卡公钥算法标识能否被识别,是则从第二恢复数据中获取IC卡公钥,否则终端拒绝交易。

在本实施例中,步骤S6中终端使用IC卡公钥和签名的动态应用数据得到第三恢复数据后,还包括:终端判断第三恢复数据的数据格式是否正确,是则根据终端动态数据、第三恢复数据、IC卡动态数据和IC卡数据中的IC卡认证相关数据计算第二哈希值,否则终端拒绝交易。

优选地,步骤S5之前还包括:终端从第一恢复数据中获取发卡行公钥相关的信息;

步骤S5之前还包括:终端根据IC卡数据中的IC卡公钥证书确定IC卡公钥证书的长度值,判断IC卡公钥证书的长度值是否与发卡行公钥相关的信息中包含的发卡行公钥模长度值相同,是则执行步骤S5,否则终端拒绝交易。

在本实施例中,IC卡动态数据具体为:交易计数器。

在本实施例中,终端动态数据具体包括:终端不可预知数、授权金额、交易货币代码和IC卡数据中包含的IC卡认证相关数据。

实施例四

在本实施例中,提供了一种终端工作的装置,如图4所示,所述方法,步骤如下:

第一获取模块401,用于获取授权金额;

发送模块402,用于第一获取模块401获取授权金额后,向IC卡发送选择应用命令;

接收模块403,用于接收IC卡返回的选择应用命令的响应数据;

生成模块404,用于根据接收模块403接收到的选择应用命令的响应数据生成获取处理选项命令;

发送模块402,还用于向IC卡发送生成模块404生成的获取处理选项命令;

接收模块403,还用于接收IC卡返回的获取处理选项命令响应;

第二获取模块405,用于获取接收模块403接收到的获取处理选项命令响应中签名的动态应用数据和IC卡动态数据;获取处理选项命令包含授权金额;

定位模块406,用于根据接收模块403接收到的获取处理选项命令响应确定要读取的IC卡记录的位置信息;

读取模块407,用于根据定位模块406定位的要读取的IC卡记录的位置信息,读取IC卡记录获得IC卡数据;

第三获取模块408,用于根据读取模块407读取的IC卡数据中的认证中心公钥索引获取认证中心公钥;

恢复模块409,用于根据第三获取模块408获取到的认证中心公钥和读取模块407读取到的IC卡数据中的发卡行公钥证书恢复得到第一恢复数据;

第三获取模块408,还用于从第一恢复数据中获取发卡行公钥;

恢复模块409,还用于根据第三获取模块408获取的发卡行公钥和读取模块407读取的IC卡数据中的IC卡公钥证书恢复得到第二恢复数据;

第一计算模块410,用于根据恢复模块409恢复的第二恢复数据和读取模块407读取的IC卡数据中包含的IC卡静态数据计算第一哈希值;

第一判断模块411,用于判断第一计算模块410计算得到的第一哈希值是否与恢复模块409恢复的第二恢复数据中包含的哈希值相同;

第三获取模块408,还用于当第一判断模块411判断第一哈希值与恢复模块409恢复得到的第二恢复数据中包含的哈希值相同时,从第二恢复数据中获取IC卡公钥,触发恢复模块409;

拒绝模块412,用于当第一判断模块411判断第一哈希值与恢复模块409恢复得到的第二恢复数据中包含的哈希值不相同时,拒绝交易;

恢复模块409还用于根据第三获取模块408获取的IC卡公钥和第二获取模块405获取的签名的动态应用数据恢复得到第三恢复数据;

第三获取模块408,还用于获取终端动态数据;

第二计算模块413,用于根据第三获取模块408获取的终端动态数据、恢复模块409恢复得到的第三恢复数据、第二获取模块405获取的IC卡动态数据和读取模块407读取的IC卡数据中的IC卡认证相关数据计算第二哈希值;

第二判断模块414,用于判断第二计算模块413计算的第二哈希值是否与恢复模块409恢复得到的第三恢复数据中包含的哈希值相同;

批准模块415,用于当第二判断模块414判断第二哈希值与恢复模块409恢复的第三恢复数据中包含的哈希值相同时,动态数据认证成功,终端批准交易;

拒绝模块412,还用于当第二判断模块414判断第二哈希值与第三恢复数据中包含的哈希值不相同时,拒绝交易。

在本实施例中,装置还包括:选择模块和第三判断模块;

发送模块402,还用于向IC卡发送选择近距离支付系统环境的指令;

接收模块403,还用于接收IC卡返回的非接触应用列表;

选择模块,用于从非接触应用列表中选择一个应用作为当前应用;

生成模块404,还用于根据当前应用的应用标示符生成选择应用命令;

发送模块402,还用于向IC卡发送生成模块404生成的选择应用命令;

接收模块403,还用于接收IC卡返回的选择应用命令的响应数据;

第三判断模块,用于根据选择应用命令的响应数据判断当前应用是否选择成功;

生成模块404,还用于当第三判断模块判断当前应用选择成功时,根据选择应用命令的响应数据生成获取处理选项命令;

触发模块,用于当第三判断模块判断当前应用选择失败时,触发选择模块。

在本实施例中,第三获取模块408包括:检索单元和第一判断单元;

检索单元,用于根据IC卡数据中的认证中心公钥索引和应用标识符检索存储在终端中的认证中心公钥;

第一判断单元,用于判断是否有与终端匹配的认证中心公钥;

恢复模块409,还用于当第一判断单元判断有与终端匹配的认证中心公钥时,根据认证中心公钥和IC卡数据中的发卡行公钥证书恢复得到第一恢复数据;

拒绝模块412,还用于当第一判断单元判断没有与终端匹配的认证中心公钥时,拒绝交易。

在本实施例中,检索单元,具体用于:根据IC卡数据中的认证中心公钥索引和应用标识符的前五个字节检索存储在终端中的认证中心公钥。

在本实施例中,生成模块404具体包括:第一获取单元和第一生成单元;

第一获取单元,用于从接收模块403接收到的选择应用命令的响应数据中获取处理选项数据对象列表,并从处理选项数据对象列表中获取IC卡请求终端数据的指令;

第一生成单元,用于根据指令获取终端数据并根据终端数据生成获取处理选项命令。

在本实施例中,装置还包括:确定模块和第三判断模块;

第三获取模块408,还用于根据IC卡数据中的认证中心公钥索引获取认证中心公钥相关的信息;

确定模块,用于根据读取模块407读取到的IC卡数据中包含的发卡行公钥证书确定发卡行公钥证书的长度值;

第三判断模块,用于判断确定模块确定的发卡行公钥证书的长度值与第三获取模块408获取的认证中心公钥相关的信息中包含的认证中心公钥模长度值是否相同;

恢复模块409,还用于当第三判断模块判断发卡行公钥证书的长度值与认证中心公钥相关的信息中包含的认证中心公钥模长度值相同时,终端根据认证中心公钥和IC卡数据中包含的发卡行公钥证书得到第一恢复数据;

拒绝模块412,还用于当第三判断模块判断发卡行公钥证书的长度值与认证中心公钥相关的信息中包含的认证中心公钥模长度值不相同时,拒绝交易。

在本实施例中,装置还包括:第四判断模块;

第四判断模块,用于判断恢复模块409恢复的第一恢复数据是否正确;

第三获取模块408,还用于当第四判断模块判断恢复模块409恢复的第一恢复数据正确时,从第一恢复数据中获取发卡行公钥;

拒绝模块412,还用于当第四判断模块判断恢复模块409恢复的第一恢复数据不正确时,拒绝交易。

具体地,第四判断模块包括:第二判断单元、第一计算单元、第三判断单元、第四判断单元、第五判断单元、第六判断单元和第七判断单元;

第二判断单元,用于判断第一恢复数据的数据格式是否正确;

第一计算单元,用于当第二判断单元判断第一恢复数据的数据格式正确时,根据第一恢复数据和IC卡数据中的发卡行公钥余项、发卡行公钥指数计算第三哈希值;

第三判断单元,用于判断第一计算单元计算得到的第三哈希值是否与第一恢复数据中包含的哈希值相同;

第四判断单元,用于当第三判断单元判断第三哈希值与第一恢复数据中包含的哈希值相同时,判断第一恢复数据中的发卡行识别号是否与IC卡数据中包含的应用主账号的最左边的三到八字节相同;

第五判断单元,用于当第四判断单元判断第一恢复数据中的发卡行识别号与IC卡数据中包含的应用主账号的最左边的三到八字节相同时,判断第一恢复数据中的发卡行公钥证书是否失效;

第六判断单元,用于当第五判断单元判断第一恢复数据中的发卡行公钥证书没有失效时,判断应用标识符的前五个字节与认证中心公钥索引和第一恢复数据中的证书序列号连接起来后的数据是否有效;

第七判断单元,用于当第六判断单元判断应用标识符的前五个字节与认证中心公钥索引和第一恢复数据中的证书序列号连接起来后的数据有效时,判断第一恢复数据中的发卡行公钥算法标识能否被识别;

第三获取模块408,还用于当第七判断单元判断第一恢复数据中的发卡行公钥算法标识能被识别时,从第一恢复数据中获取发卡行公钥;

拒绝模块412,还用于当第二判断单元判断第一恢复数据的数据格式不正确时,拒绝交易;还用于当第三判断单元判断第三哈希值与第一恢复数据中包含的哈希值不相同时,拒绝交易;还用于当第四判断单元判断第一恢复数据中的发卡行识别号与IC卡数据中包含的应用主账号的最左边的三到八字节不相同时,拒绝交易;还用于当第五判断单元判断第一恢复数据中的发卡行公钥证书失效时,拒绝交易;还用于当第六判断单元判断应用标识符的前五个字节与认证中心公钥索引和第一恢复数据中的证书序列号连接起来后的数据无效时,拒绝交易;还用于当第七判断单元判断第一恢复数据中的发卡行公钥算法标识不能被识别时,拒绝交易。

更具体地,第二判断单元具体包括:第一判断子单元、第二判断子单元和第三判断子单元;

第一判断子单元,用于判断第一恢复数据的数据结尾是否正确;

第二判断子单元,用于当第一判断子单元判断第一恢复数据的数据结尾正确时,判断第一恢复数据的数据头是否正确;

第三判断子单元,用于当第二判断子单元判断第一恢复数据的数据头正确时,判断第一恢复数据中的发卡行公钥证书的格式是否正确;

第一计算单元,用于当第三判断子单元判断判断第一恢复数据中的发卡行公钥证书的格式正确时,根据第一恢复数据和IC卡数据中的发卡行公钥余项、发卡行公钥指数计算第三哈希值;

拒绝模块412,还用于当第一判断子单元判断第一恢复数据的数据结尾不正确时,拒绝交易;还用于当第二判断子单元判断第一恢复数据的数据头不正确时,拒绝交易;还用于当第二判断子单元判断第一恢复数据的数据头不正确时,拒绝交易;还用于当第三判断子单元判断判断第一恢复数据中的发卡行公钥证书的格式不正确时,拒绝交易。

更具体地,第五判断单元,具体用于判断第一恢复数据中的发卡行公钥证书的证书失效日期中指定的最后日期是否等于或迟于今天的日期;

第六判断单元,具体用于当第五判断单元判断第一恢复数据中的发卡行公钥证书的证书失效日期中指定的最后日期等于或迟于今天的日期时,发卡行公钥证书未过期,判断应用标识符的前五个字节与认证中心公钥索引和第一恢复数据中的证书序列号连接起来后的数据是否有效;

拒绝模块412,还用于当第五判断单元判断第一恢复数据中的发卡行公钥证书的证书失效日期中指定的最后日期早于今天的日期时,拒绝交易。

在本实施例中,装置还包括:第五判断模块;

第五判断模块,用于判断恢复模块409恢复的第二恢复数据的数据格式是否正确;

第一计算模块410,还用于当第五判断模块判断恢复模块409恢复的第二恢复数据的数据格式正确时,根据恢复模块409恢复的第二恢复数据和读取模块407读取的IC卡数据中包含的IC卡静态数据计算第一哈希值;

拒绝模块412,还用于当第五判断模块判断恢复模块409恢复的第二恢复数据的数据格式不正确时,拒绝交易。

在本实施例中,装置还包括:第六判断模块、第七判断模块和第八判断模块;

第六判断模块,用于判断恢复模块409恢复的第二恢复数据中的应用主账号是否与IC卡数据中包含的应用主账号相同;

第七判断模块,用于当第六判断模块判断恢复模块409恢复的第二恢复数据中的应用主账号与IC卡数据中包含的应用主账号相同时,判断第二恢复数据中的IC卡公钥证书是否失效;

第八判断模块,用于当第七判断模块判断第二恢复数据中的IC卡公钥证书没有失效时,判断IC卡公钥算法标识能否被识别;

第三获取模块408,还用于当第八判断模块判断IC卡公钥算法标识能被识别时,从第二恢复数据中获取IC卡公钥,触发恢复模块409;

拒绝模块412,还用于当第六判断模块判断恢复模块409恢复的第二恢复数据中的应用主账号与IC卡数据中包含的应用主账号不相同时,拒绝交易;还用于当第七判断模块判断第二恢复数据中的IC卡公钥证书失效时,拒绝交易;还用于当第八判断模块判断IC卡公钥算法标识不能被识别时,拒绝交易。

在本实施例中,装置还包括:第九判断模块;

第九判断模块,用于恢复模块409使用IC卡公钥和签名的动态应用数据得到第三恢复数据后,判断第三恢复数据的数据格式是否正确;

第二计算模块413,还用于当第九判断模块判断第三恢复数据的数据格式正确时,根据终端动态数据、第三恢复数据、IC卡动态数据和IC卡数据中的IC卡认证相关数据计算第二哈希值;

拒绝模块412,还用于当第九判断模块判断第三恢复数据的数据格式不正确,拒绝交易。

在本实施例中,装置还包括:第十判断模块;

获取模块,还用于从第一恢复数据中获取发卡行公钥相关的信息;

确定模块,还用于根据IC卡数据中的IC卡公钥证书确定IC卡公钥证书的长度值;

第十判断模块,用于判断确定模块确定的IC卡公钥证书的长度值是否与获取模块获取得到的发卡行公钥相关的信息中包含的发卡行公钥模长度值相同;

恢复模块409,还用于当第十判断模块判断IC卡公钥证书的长度值是否与发卡行公钥相关的信息中包含的发卡行公钥模长度值相同时,根据第三获取模块408获取的发卡行公钥和读取模块407读取的IC卡数据中的IC卡公钥证书恢复得到第二恢复数据;

拒绝模块412,还用于当第十判断模块判断IC卡公钥证书的长度值是否与发卡行公钥相关的信息中包含的发卡行公钥模长度值不相同时,拒绝交易。

具体地,第二获取模块405获取的IC卡动态数据,具体为:交易计数器。

具体地,第三获取模块408获取的终端动态数据,具体包括:终端不可预知数、授权金额、交易货币代码和IC卡数据中包含的IC卡认证相关数据。

以上所述,仅为本发明较优选的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。

再多了解一些
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1