一种具有动态验证码的金融IC卡的个人化方法和系统与流程

文档序号:16544916发布日期:2019-01-08 20:47阅读:372来源:国知局
一种具有动态验证码的金融IC卡的个人化方法和系统与流程

本发明涉及金融ic卡领域,特别是涉及一种具有动态验证码的金融ic卡的个人化方法和系统。



背景技术:

金融ic卡又称为芯片银行卡,由商业银行(信用社)或支付机构发行,采用集成电路技术,遵循国家金融行业标准,具有消费信用、转账结算、现金存取等全部或部分金融功能。

在卡组织的定义中,当无卡交易发生时,用户只需要输入卡号、姓名、有效期和验证码即可完成交易。由于验证码等信息的泄露所引发的无卡交易欺诈屡见不鲜,具有动态验证码的金融ic卡能够自动更新其验证码,是应对无卡交易欺诈的有效方式。

然而,传统的金融ic卡个人化系统无法满足具有动态验证码的金融ic卡的个人化需求。



技术实现要素:

本发明的目的是克服现有技术的缺陷,提供一种具有动态验证码的金融ic卡的个人化方法和系统。

一方面,本发明提供了一种具有动态验证码的金融ic卡的个人化方法,包括:

步骤s1:当所述上位装置与所述个人化设备建立安全通道后,若所述上位装置通过所述安全通道向所述个人化设备发送个人化数据包,则所述个人化设备执行步骤s2;若所述上位装置通过所述安全通道向所述个人化设备发送验证请求,则所述个人化设备执行步骤s3;

步骤s2:所述个人化设备解析所述个人化数据包得到第二个人化信息,向金融ic卡中写入所述第二个人化信息,通过所述安全通道向所述上位装置返回第二个人化信息写入结果;继续等待接收来自所述上位装置的数据;

步骤s3:所述个人化设备从金融ic卡中读取时间窗口和动态验证码,将所述时间窗口和动态验证码通过所述安全通道返回给所述上位装置进行验证,通过所述安全通道接收所述上位装置返回的验证结果,若验证成功则读取所述金融ic卡中的个人化状态并保存,通过安全通道向上位装置返回个人化成功信息;若验证失败则通过安全通道向上位装置返回个人化失败信息;

所述上位装置向所述个人化设备发送个人化数据包之前还包括:

所述上位装置生成或者接收包括第一主密钥的第一个人化信息;对所述第一主密钥进行分散得到第二分散密钥,组织包括所述第二分散密钥的第二个人化信息,根据所述第二个人化信息组织个人化数据包。

另一方面,本发明提供了一种具有动态验证码的金融ic卡的个人化系统,所述系统包括:上位装置和个人化设备;

所述上位装置包括:第一组织模块、第二组织模块、第一建立安全通道模块、第一发送模块、第二发送模块和第三发送模块;

所述个人化设备包括:第二建立安全通道模块、第一接收模块、第一解析模块、第一写入模块、第一返回模块;第二接收模块、第一读取模块、第二返回模块、第三接收模块、第一判断模块、第二读取模块、第一保存模块、第三返回模块和第四返回模块;

所述第一组织模块,用于生成或者接收包括第一主密钥的第一个人化信息;对所述第第一主密钥进行分散得到第二分散密钥,组织包括所述第二分散密钥的第二个人化信息;

所述第二组织模块,用于根据所述第一组织模块组织的第二个人化信息组织个人化数据包;

所述第一建立安全通道模块,用于与所述个人化设备建立安全通道;

所述第一发送模块,用于通过所述第一建立安全通道模块建立的安全通道向所述个人化设备发送所述第二组织模块组织的个人化数据包;

所述第二发送模块,用于通过所述第一建立安全通道模块建立的安全通道向所述个人化设备发送验证请求;

所述第三发送模块,用于通过所述第一建立安全通道模块建立的安全通道向所述个人化设备发送验证结果;

第二建立安全通道模块,用于和所述上位装置建立安全通道;

第一接收模块,用于通过安全通道接收来自所述上位装置的个人化数据包;

所述第一解析模块,用于解析所述第一接收模块接收到的个人化数据包得到第二个人化信息;

所述第一写入模块,用于向所述金融ic卡中写入所述第一解析模块得到的第二个人化信息;

所述第一返回模块,用于通过安全通道向上位装置返回第二个人化信息写入结果;

所述第二接收模块,用于通过安全通道接收验证请求;

所述第一读取模块,用于从所述金融ic卡中读取时间窗口和动态验证码;

所述第二返回模块,用于将所述第一读取模块读取到的时间窗口和动态验证码通过安全通道返回给所述上位装置;

所述第三接收模块,用于通过所述安全通道接收所述上位装置返回的验证结果;

所述第一判断模块,用于判断所述第三接收模块接收到的验证结果的类型;

所述第二读取模块,用于当所述第一判断模块判断出通过所述安全通道接收到的所述上位装置返回的验证结果为验证成功时,读取所述金融ic卡中的个人化状态;

所述第一保存模块,用于保存所述第二读取模块读取到的所述金融ic卡返回的个人化状态;

所述第三返回模块,用于当所述第一判断模块判断出验证结果为验证成功时,通过所述安全通道向上位装置返回个人化成功信息;

所述第四返回模块,用于当所述第一判断模块判断出验证结果为验证失败时,通过安全通道向上位装置返回个人化失败信息。

本发明达到的有益效果:本发明提供一种具有动态验证码的金融ic卡的个人化方法和系统,采用本发明的技术方案能够实现具有动态验证码的金融ic卡的个人化。

附图说明

图1为本发明实施例1提供的一种具有动态验证码的金融ic卡的个人化方法的流程图;

图2为本发明实施例2提供的一种具有动态验证码的金融ic卡的个人化方法的中的个人化流程的流程图;

图3为本发明实施例2提供的一种具有动态验证码的金融ic卡的个人化方法的中的验证流程的流程图;

图4为本发明实施例3提供的一种具有动态验证码的金融ic卡的个人化方法的流程图;

图5为本发明实施例4提供的一种具有动态验证码的金融ic卡的个人化系统的结构方框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式做进一步的详细描述。

实施例1

本实施例提供一种具有动态验证码的金融ic卡的个人化方法,适用于包括上位装置和个人化设备的个人化系统,方法参见图1,包括以下步骤:

步骤101:当上位装置与个人化设备建立安全通道后,若上位装置通过安全通道向个人化设备发送个人化数据包,则个人化设备执行步骤102;若上位装置通过安全通道向个人化设备发送验证请求,则个人化设备执行步骤103;

步骤102:个人化设备解析个人化数据包得到第二个人化信息,向金融ic卡中写入第二个人化信息,通过安全通道向上位装置返回第二个人化信息写入结果;继续等待接收来自上位装置的数据;

步骤103:个人化设备从金融ic卡中读取时间窗口和动态验证码,将时间窗口和动态验证码通过安全通道返回给上位装置进行验证,通过安全通道接收上位装置返回的验证结果,若验证成功则读取金融ic卡中的个人化状态并保存,通过安全通道向上位装置返回个人化成功信息;若验证失败,通过安全通道向上位装置返回个人化失败信息;

上位装置向个人化设备发送个人化数据包之前还包括:

上位装置生成或者接收包括第一主密钥的第一个人化信息;对第一主密钥进行分散得到第二分散密钥,组织包括第二分散密钥的第二个人化信息,根据第二个人化信息组织个人化数据包。

或者上位装置向个人化设备发送个人化数据包之前还包括:

上位装置根据预设的卡标识信息生成分散因子,使用分散因子对预设的第一主密钥进行分散得到第一分散密钥,组织包括第一分散密钥的第一个人化信息;使用分散因子对预设的第二主密钥进行分散得到第二分散密钥,组织包括第二分散密钥的第二个人化信息;根据第二个人化信息组织个人化数据包。

本实施例中,上位装置可包括:第二上位装置和第三上位装置;

步骤101具体为:当第二上位装置与个人化设备建立安全通道后,若第二上位装置通过安全通道向个人化设备发送个人化数据包,则个人化设备执行步骤102;若第二上位装置通过安全通道向个人化设备发送验证请求,则个人化设备执行步骤103;

步骤102具体为:个人化设备解析个人化数据包得到个人化信息,向金融ic卡中写入个人化信息,通过安全通道向第二上位装置返回个人化信息写入结果;继续等待接收来自第二上位装置的数据;

步骤103具体为:个人化设备从金融ic卡中读取时间和动态验证码,将时间和动态验证码通过安全通道返回给第二上位装置进行验证,通过安全通道接收第二上位装置返回的验证结果,若验证成功则读取金融ic卡中的个人化状态并保存,继续等待接收来自第二上位装置的数据;若验证失败则继续等待接收来自第二上位装置的数据;

本实施例中,第二上位装置向个人化设备发送个人化数据包之前还包括:

步骤t1:第三上位装置生成或者接收包括第一主密钥的第一个人化信息;对第一主密钥进行分散得到第二分散密钥,组织包括第二分散密钥的第二个人化信息;将第二个人化信息发送给第二上位装置;

步骤t2:第二上位装置根据第二个人化信息组织个人化数据包。

或者第二上位装置向个人化设备发送个人化数据包之前还包括:

步骤w1:第三上位装置根据预设的卡标识信息生成分散因子,使用分散因子对预设的第一主密钥进行分散得到第一分散密钥,组织包括第一分散密钥的第一个人化信息;使用分散因子对预设的第二主密钥进行分散得到第二分散密钥,组织包括第二分散密钥的第二个人化信息;将第二个人化信息发送给第二上位装置;

步骤w2:第二上位装置根据第二个人化信息组织个人化数据包。

本实施例中,上位装置生成或者接收包括第一主密钥的第一个人化信息;对第一主密钥进行分散得到第二分散密钥,组织包括第二分散密钥的第二个人化信息,根据第二个人化信息组织个人化数据包,还可以被替换为:

上位装置生成或者接收第一主密钥,对第一主密钥进行分散得到第一分散密钥,组织包括第一分散密钥的第一个人化信息;对第一主密钥进行分散得到第二分散密钥,组织包括第二分散密钥的第二个人化信息,根据第二个人化信息组织个人化数据包。

相应地,上位装置包括第二上位装置和第三上位装置;

上位装置生成或者接收第一主密钥,对第一主密钥进行分散得到第一分散密钥,组织包括第一分散密钥的第一个人化信息;对第一主密钥进行分散得到第二分散密钥,组织包括第二分散密钥的第二个人化信息,根据第二个人化信息组织个人化数据包,具体包括:

步骤y1:第三上位装置生成或者接收第一主密钥,对第一主密钥进行分散得到第一分散密钥,组织包括第一分散密钥的第一个人化信息;对第一主密钥进行分散得到第二分散密钥,组织包括第二分散密钥的第二个人化信息;将第二个人化信息发送给第二上位装置;

步骤y2:第二上位装置根据第二个人化信息组织个人化数据包。

本发明中,第二分散密钥是用于实现金融ic卡的动态验证功能的密钥种子,可以但不限于为udk(uniquedataencryptionalgorithmkey,唯一数据加密算法密钥)密钥种子。

本发明提供一种具有动态验证码的金融ic卡的个人化方法,采用本发明的技术方案能够实现具有动态验证码的金融ic卡的个人化。

实施例2

本实施例提供一种具有动态验证码的金融ic卡的个人化方法,适用于包括第一上位装置、第二上位装置、第三上位装置和个人化设备的个人化系统。

本实施例中,第一上位装置为用于对金融ic卡的金融业务进行个人化的上位装置;具体地,第一上位装置中可以安装有用于对金融ic卡的金融业务进行个人化的第一个人化程序;第一个人化程序中存储有用于对金融ic卡的金融业务进行个人化的第一个人化信息,第一个人化信息中包括第一主密钥;

第二上位装置具体为金融ic卡的动态验证功能进行个人化的上位装置;具体地,第二上位装置中可以安装有用于对金融ic卡的动态验证功能进行个人化的第二个人化程序。

第三上位装置用于将包括第一主密钥的第一个人化信息发送给第一上位装置;以及将对用于金融ic卡的动态验证功能进行个人化的第二个人化信息发送给第二上位装置。

第三上位装置对用于金融ic卡的动态验证功能进行个人化的第二个人化信息发送给第二上位装置之前还包括:

第三上位装置生成或者接收包括第一主密钥的第一个人化信息,将第一个人化信息发送给第一上位装置;对第一主密钥进行分散得到第二分散密钥,组织包括主账号、第二分散密钥、有效期、时间窗口和服务代码的第二个人化信息,将第二个人化信息发送给第二上位装置。

本实施例中,第二分散密钥是用于实现金融ic卡的动态验证功能的密钥种子,可以但不限于为udk(uniquedataencryptionalgorithmkey,唯一数据加密算法密钥)密钥种子。

本实施例中,第一上位装置、第二上位装置和第三上位装置可以为同一台上位装置,或者第一上位装置、第二上位装置和第三上位装置中的任意两个装置为同一台上位装置,与另外一个为不同的上位装置;或者第一上位装置、第二上位装置和第三上位装置均为不同的上位装置。

例如当第一上位装置、第二上位装置和第三上位装置为同一台上位装置时,上位装置中的主程序生成或者接收包括第一主密钥的第一个人化信息,调用第一个人化程序中的接口将第一个人化信息发送给第一个人化程序;上位装置中的主程序对第一主密钥进行分散得到第二分散密钥,组织包括主账号、第二分散密钥、有效期、时间窗口和服务代码的第二个人化信息,调用第二个人化程序中的接口将第二个人化信息发送给第二个人化程序。

本实施例中的所述的一种具有动态验证码的金融ic卡的个人化方法,具体为一种对具有动态验证码的金融ic卡的动态验证功能进行个人化方法,该方法包括个人化流程和验证流程;

个人化流程包括:

步骤201:第二上位装置组织包括握手随机数的握手请求;

具体地,第二上位装置生成第一随机数并将其作为握手随机数,组织包括握手随机数的握手请求。

例如:第二上位装置生成第一随机数66并将其作为握手随机数,组织包括握手随机数的握手请求a5665a。

步骤202:第二上位装置向个人化设备发送握手请求;

步骤203:个人化设备从握手请求中获取握手随机数,使用预先约定的初始密钥对握手请求中的握手随机数进行加密得到数据传输密钥;

优选地,本实施例中,个人化设备从握手请求中获取握手随机数后,个人化设备使用预先约定的初始密钥对握手请求中的握手随机数进行3des(tripledataencryptionstandard,三重数据加密标准)加密得到数据传输密钥。

例如:个人化设备从握手请求a5665a中获取握手随机数66,使用预先约定的初始密钥001122334455667711223344556677882233445566778899对握手请求中的握手随机数66使用3des加密算法进行加密得到数据传输密钥cbca695bd336cb9baf3a9408d109183b337383866ad1549c。

步骤204:个人化设备向第二上位装置返回握手应答。

例如:个人化设备向第二上位装置返回握手应答8000。

步骤205:第二上位装置获取第二个人化信息,组织包括第二个人化信息的个人化数据包;

本实施例中,第二个人化信息可具体包括:主账号、第二分散密钥、有效期、时间窗口和服务代码等。

具体地,第二上位装置中的第二个人化程序,按照第一预设次序将自身存储的主账号、第二分散密钥、有效期、时间窗口和服务代码进行拼接得到第二个人化信息0001020304050607080908070605040302010001080211060606112233445566778888776655443322115a6ed9be0004b0,之后根据第一预设协议组织包括第二个人化信息的个人化数据包a500350100310001020304050607080908070605040302010001080211060606112233445566778888776655443322115a6ed9be0004b001。

步骤206:第二上位装置使用自身的数据传输密钥对个人化数据包进行加密,向个人化设备发送加密后的个人化数据包;

例如:第二上位装置使用自身的数据传输密钥cbca695bd336cb9baf3a9408d109183b337383866ad1549c对个人化数据包进行加密a500350100310001020304050607080908070605040302010001080211060606112233445566778888776655443322115a6ed9be0004b001得到加密后的个人化数据7ce41da93b54b1c4b38e32df2ebcb28f38471bc25b14a5ebbd1b20bfe742fe3ad934ba6d41fd8637cd44fe135797e2bc4d8ecebd408674f8,向个人化设备发送加密后的个人化数据包。

本实施例中,步骤206之前,还包括:第二上位装置使用预设约定的初始密钥对第一随机数进行加密得到数据传输密钥。

优选地,第二上位装置使用预设约定的初始密钥对第一随机数进行3des(tripledataencryptionstandard,三重数据加密标准)加密得到数据传输密钥。

步骤207:个人化设备使用数据传输密钥解密接收到的数据得到个人化数据包;

例如,个人化设备使用数据传输密钥cbca695bd336cb9baf3a9408d109183b337383866ad1549c解密接收到的数据7ce41da93b54b1c4b38e32df2ebcb28f38471bc25b14a5ebbd1b20bfe742fe3ad934ba6d41fd8637cd44fe135797e2bc4d8ecebd408674f8得到明文的个人化数据包a500350100310001020304050607080908070605040302010001080211060606112233445566778888776655443322115a6ed9be0004b001。

步骤208,个人化设备解析个人化数据包得到第二个人化信息。

具体地,个人化设备按照第一预设协议解析个人化数据包括得到第二个人化信息,按照第一预设次序从第二个人化信息中获取主账号、第二分散密钥、有效期、时间窗口和服务代码等信息。

例如:个人化设备按照第一预设协议解析个人化数据包a500350100310001020304050607080908070605040302010001080211060606112233445566778888776655443322115a6ed9be0004b001得到第二个人化信息0001020304050607080908070605040302010001080211060606112233445566778888776655443322115a6ed9be0004b0,按照第一预设次序从第二个人化信息中获取主账号00010203040506070809080706050403020100、第二分散密钥11223344556677888877665544332211、有效期01080211、时间窗口0004b0和服务代码060606。

步骤209,个人化设备向金融ic卡发送获取卡片基本信息指令,若接收到金融ic卡返回的正确应答则执行步骤210,否则执行步骤217。

步骤209具体地,个人化设备根据第二预设协议生成获取卡片基本信息指令,向金融ic卡发送获取卡片基本信息指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤210,否则执行步骤217。

例如:个人化设备根据第二预设协议生成获取卡片基本信息指令

86021010,向金融ic卡发送获取卡片基本信息指令,接收到金融ic卡返回的应答aa0b1001100001270000250507后,根据第二预设协议判断接收到正确的应答则执行步骤210。

步骤210、个人化设备根据金融ic卡返回的应答中的卡片基本信息判断金融ic卡是否为等待个人化的金融ic卡,是则执行步骤211,否则执行步骤217。

具体地,个人化设备根据第二预设协议解析金融ic卡返回的应答获取金融ic卡返回的应答中的卡片基本信息,判断金融ic卡是否为等待个人化的金融ic卡,是则执行步骤211,否则执行步骤217。

本实施例中,卡片基本信息可具体包括:产品类别、硬件方案、软件版本、软件小版本、随机数、定制信息、其他信息、算法标识、绑定id号等,其中,产品类别、硬件方案、软件版本、软件小版本、随机数、定制信息、其他信息、算法标识、绑定id号均优选为1个字节。

更加具体地,个人化设备根据第二预设协议解析金融ic卡返回的应答获取金融ic卡返回的应答中的卡片基本信息,获取卡片基本信息中的产品类别、硬件方案、软件版本、软件小版本、随机数、定制信息、其他信息、算法标识、绑定id号等信息,根据其他信息判断融ic卡是否为等待个人化的金融ic卡,若其他信息为第一预设字段信息,则金融ic卡是否为等待个人化的金融ic卡,执行步骤211,否则金融ic卡为非等待个人化的金融ic卡,执行步骤217。

例如:个人化设备根据第二预设协议解析金融ic卡返回的应答aa0b1001100001270000250507获取金融ic卡返回的应答中的卡片基本信息011000012700002505,根据第二预设次序将卡片基本信息中的01、10、00、01、27、00、00、25和05依次作为卡片基本信息中的产品类别、硬件方案、软件版本、软件小版本、随机数、定制信息、其他信息、算法标识和绑定id号,其他信息00为预设字段信息,则金融ic卡是否为等待个人化的金融ic卡,执行步骤211,否则金融ic卡为非等待个人化的金融ic卡,执行步骤217。

本实施例中,第一预设字段信息可以为00-0f中的任意一个字节。

步骤211,个人化设备向金融ic卡发送写主账号指令,若接收到金融ic卡返回的正确应答则执行步骤212,否则执行步骤217。

具体地,个人化设备根据第二预设协议和获取到的主账号生成写主账号指令,向金融ic卡发送写主账号指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤212,否则执行步骤217。

本实施例中,写主账号指令中包含第二个人化信息中的主账号。

例如:个人化设备根据第二预设协议和获取到的主账号00010203040506070809080706050403020100生成写主账号指令86151d0001020304050607080908070605040302010014,向金融ic卡发送写主账号指令,接收到金融ic卡返回的应答aa02aaaa后,根据第二预设协议判断接收到正确的应答,执行步骤212。

步骤212,个人化设备向金融ic卡发送写有效期指令,若接收到金融ic卡返回的正确应答则执行步骤213,否则执行步骤217。

具体地,个人化设备根据第二预设协议和获取到的有效期生成写有效期指令,向金融ic卡发送写有效期指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤213,否则执行步骤217。

本实施例中,写有效期指令中包含第二个人化信息中的有效期。

例如:个人化设备根据第二预设协议和获取到的有效期01080211生成写有效期指令86062d0108021137,向金融ic卡发送写有效期指令,接收到金融ic卡返回的应答aa02aaaa后,根据第二预设协议判断接收到正确的应答,若执行步骤213。

步骤213,个人化设备向金融ic卡发送写服务代码指令,若接收到金融ic卡返回的正确应答则执行步骤214,否则执行步骤217。

具体地,个人化设备根据第二预设协议和获取到的服务代码生成写服务代码指令,向金融ic卡发送写服务代码指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤214,否则执行步骤217。

本实施例中,写服务代码指令中包含第二个人化信息中的服务代码。

例如:个人化设备根据第二预设协议和获取到的服务代码060606生成写服务代码指令86053d0606063b,向金融ic卡发送写服务代码指令,接收到金融ic卡返回的应答

aa02aaaa后,根据第二预设协议判断接收到正确的应答,执行步骤214。

步骤214,个人化设备向金融ic卡发送写时间窗口指令,若接收到金融ic卡返回的正确应答则执行步骤215,否则执行步骤217。

具体地,个人化设备根据第二预设协议和获取到的时间窗口生成写时间窗口指令,向金融ic卡发送写时间窗口指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤215,否则执行步骤217。

本实施例中,写时间窗口指令中包含第二个人化信息中的时间窗口。例如:个人化设备根据第二预设协议和获取到的时间窗口

0004b0生成写时间窗口指令,向金融ic卡发送写时间窗口指令,接收到金融ic卡返回的应答aa02aaaa后,根据第二预设协议判断接收到正确的应答,执行步骤214。

步骤215,个人化设备向金融ic卡发送写第二分散密钥指令,若接收到金融ic卡返回的正确应答则执行步骤216,否则执行步骤217。

具体地,个人化设备根据第二预设协议和获取到的第二分散密钥生成写第二分散密钥指令,向金融ic卡发送写第二分散密钥指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤216,否则执行步骤217。

本实施例中,写第二分散密钥指令中包含第二个人化信息中的第二分散密钥。

例如:个人化设备根据第二预设协议和获取到的第二分散密钥11223344556677888877665544332211生成写第二分散密钥指令,向金融ic卡发送写第二分散密钥指令86121e112233445566778888776655443322111e,接收到金融ic卡返回的应答aa02aaaa后,根据第二预设协议判断接收到正确的应答,执行步骤218。

步骤216,个人化设备生成第二个人化信息写入成功信息,将第二个人化信息写入成功信息用数据传输密钥加密后返回给第二上位装置。

具体地,个人化设备根据第一预设协议生成第二个人化信息写入成功信息,将第二个人化信息写入成功信息用数据传输密钥加密后返回给第二上位装置。

例如:个人化设备根据第一预设协议生成第二个人化信息写入成功信息】5a0003800083,将第二个人化信息写入成功信息用数据传输密钥

cbca695bd336cb9baf3a9408d109183b337383866ad1549c加密后得到的c002439fa95e5a48返回给第二上位装置。

步骤217,个人化设备生成第二个人化信息写入失败信息,将第二个人化信息写入失败信息用数据传输密钥加密后返回给第二上位装置。

具体地,个人化设备根据第一预设协议生成第二个人化信息写入失败信息,将第二个人化信息写入失败信息用数据传输密钥加密后返回给第二上位装置。

例如:个人化设备根据第一预设协议生成第二个人化信息写入失败信息5a0003800182,将第二个人化信息写入失败信息用数据传输密钥cbca695bd336cb9baf3a9408d109183b337383866ad1549c加密后得到的bc072a47ab48832d返回给第二上位装置。

验证流程包括:

步骤301:第二上位装置组织包括握手随机数的握手请求;

具体地,第二上位装置生成第二随机数并将其作为握手随机数,组织包括握手随机数的握手请求。

例如:第二上位装置生成第二随机数55并将其作为握手随机数,组织包括握手随机数的握手请求a5555a。

步骤302:第二上位装置向个人化设备发送握手请求;

步骤303:个人化设备从握手请求中获取握手随机数,使用预先约定的初始密钥对握手请求中的握手随机数进行加密得到数据传输密钥;

优选地,本实施例中,个人化设备从握手请求中获取握手随机数后,个人化设备使用预先约定的初始密钥对握手请求中的握手随机数进行3des(tripledataencryptionstandard,三重数据加密标准)加密得到数据传输密钥。

例如:个人化设备从握手请求a5555a中获取握手随机数55,使用预先约定的初始密钥

001122334455667711223344556677882233445566778899对握手请求中的握手随机数55使用3des加密算法进行加密得到数据传输密钥1a7418e5d558f29bfc58b968e83e788f19d5e3ff9d561327。

步骤304:个人化设备向第二上位装置返回握手应答。

例如:个人化设备向第二上位装置返回握手应答8000。

步骤305:第二上位装置组织验证请求;

具体地,第二上位装置根据第一预设协议组织验证请求;

例如:第二上位装置根据第一预设协议组织验证请求a50003020100。

步骤306:第二上位装置使用自身的数据传输密钥对验证请求进行加密,向个人化设备发送加密后的验证请求;

例如:第二上位装置使用自身的数据传输密钥1a7418e5d558f29bfc58b968e83e788f19d5e3ff9d561327对验证请求进行加密得到加密后的验证请求702b5b5f6bb1be4b向个人化设备发送加密后的验证请求。

本实施例中,步骤306之前,还包括:第二上位装置使用预设约定的初始密钥对第二随机数进行加密得到数据传输密钥。

优选地,第二上位装置使用预设约定的初始密钥对第二随机数进行3des(tripledataencryptionstandard,三重数据加密标准)加密得到数据传输密钥。

步骤307:个人化设备使用数据传输密钥解密接收到的数据,获取验证请求;例如,个人化设备使用数据传输密钥1a7418e5d558f29bfc58b968e83e788f19d5e3ff9d561327解密接收到的数据702b5b5f6bb1be4b

得到明文的验证请求a50003020100。

步骤308:个人化设备向金融ic卡发送读取时间窗口和动态验证码指令,若接收到金融ic卡返回的正确应答则执行步骤309,否则执行步骤313。

具体地,个人化设备根据第二预设协议生成读取时间窗口和动态验证码指令,向金融ic卡发送读取时间和动态验证码指令;接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤309,否则执行步骤313。

例如:个人化设备根据第二预设协议生成读取时间窗口和动态验证码指令86021f1f,向金融ic卡发送读取时间窗口和动态验证码指令;接收到金融ic卡返回的应答aa0808075aebc7d40004b011后,根据第二预设协议判断接收到正确的应答,执行步骤309。

步骤309,个人化设备将金融ic卡返回的应答中的时间窗口和动态验证码用数据传输密钥加密后发送给第二上位装置进行验证,接收第二上位装置返回的验证结果。

具体地,个人化设备根据第二预设协议解析金融ic卡返回的应答获取金融ic卡返回的应答中的时间窗口和动态验证码;根据第一预设协议组织包括时间窗口和动态验证码的待验证数据,使用数据传输密钥对待验证数据进行加密得到加密后的待验证数据,将加密后的待验证数据发送给第二上位装置进行验证,接收第二上位装置返回个验证结果。

例如:个人化设备根据第二预设协议解析金融ic卡返回的应答aa0808075aebc7d40004b011,根据第三预设次序将金融ic卡返回的应答中的0004b0作为时间窗口、将金融ic卡返回的应答中的080807作为动态验证码;根据第一预设协议组织包括时间窗口和动态验证码的待验证数据5a000c02010808075aebc7d40004b01e,使用数据传输密钥1a7418e5d558f29bfc58b968e83e788f19d5e3ff9d561327对待验证数据进行加密得到加密后的待验证数据0cb582c17a80123a05d5484f5c0f8ace,将加密后的待验证数据发送给第二上位装置进行验证,接收第二上位装置返回个验证结果。

步骤310,个人化设备用数据传输密钥解密接收到的验证结果,若解密得到的是验证成功信息则执行步骤311,若解密得到的是验证失败信息则执行步骤313。

具体地,个人化设备使用数据传输密钥解密接收到的验证结果得到解密后的验证结果,根据第一预设协议判断解密后的验证结果是否为验证成功信息,若解密得到的是验证成功信息则执行步骤311,若解密得到的是验证失败信息则执行步骤313。

例如:个人化设备使用数据传输密钥1a7418e5d558f29bfc58b968e83e788f19d5e3ff9d561327解密接收到的验证结果ba90acd6daec642a得到解密后的验证结果a50003020203,根据第一预设协议判断解密后的验证结果为验证成功信息则执行步骤311。

步骤311,个人化设备向金融ic卡发送读取个人化状态信息指令,若接收到金融ic卡返回的正确应答则执行步骤312,否则执行步骤313。

具体地,个人化设备根据第二预设协议生成读取个人化状态信息指令,向金融ic卡发送读取个人化状态信息指令;接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤312,否则执行步骤313。

例如:个人化设备根据第二预设协议生成读取个人化状态信息指令86022f2f,向金融ic卡发送读取个人化状态信息指令;接收到金融ic卡返回的应答aa0b2f0101010101002e后,根据第二预设协议判断接收到正确的应答,执行步骤312。

步骤312,个人化设备存储金融ic卡返回的应答中的个人化状态信息,生成个人化成功信息,将个人化成功信息用数据传输密钥加密后返回给第二上位装置。

具体地,个人化设备根据第二预设协议解析金融ic卡返回的应答,获取金融ic卡返回的应答中的个人化状态信息,存储金融ic卡返回的应答中的个人化状态信息,根据第一预设协议生成个人化成功信息,将个人化成功信息用数据传输密钥加密后返回给第二上位装置。

本实施例中,个人化状态信息包括:写主账号次数、写有效期次数、写服务代码次数、写时间窗口次数、写第二分散密钥次数和通信错误次数,其中,写主账号次数、写有效期次数、写服务代码次数、写时间窗口次数、写第二分散密钥次数和通信错误次数均优选为1个字节。

例如:个人化设备根据第二预设协议解析金融ic卡返回的应答aa0b2f0101010101002e,获取金融ic卡返回的应答中的个人化状态信息010101010100,根据第四预设次序将金融ic卡返回的应答中的个人化状态信息中的01、01、01、01、01、00依次作为个人化状态信息中的写主账号次数、写有效期次数、写服务代码次数、写时间窗口次数、写第二分散密钥次数和通信错误次数;根据第一预设协议生成个人化成功信息,将个人化成功信息用数据传输密钥加密后返回给第二上位装置。

步骤313,个人化设备生成个人化失败信息,将个人化失败信息用数据传输密钥加密后返回给第二上位装置。

具体地,个人化设备根据第一预设协议生成个人化失败信息,将个人化失败信息用数据传输密钥加密后返回给第二上位装置。

例如:个人化设备根据第一预设协议生成个人化失败信息5a00040203fffa,将个人化失败信息5a00040203fffa用数据传输密钥1a7418e5d558f29bfc58b968e83e788f19d5e3ff9d561327加密后得到的结果854806ebcfd82a29返回给第二上位装置。

实施例3

本实施例提供一种具有动态验证码的金融ic卡的个人化方法,参见图4,包括以下步骤:

步骤401,个人化设备接收到第二上位装置下发的握手请求时,使用预先约定的初始密钥与握手请求中的握手随机数进行加密得到数据传输密钥,向第二上位装置返回握手应答。

优选地,本实施例中,个人化设备使用预先约定的初始密钥与握手请求中的握手随机数进行3des(tripledataencryptionstandard,三重数据加密标准)加密得到数据传输密钥。

步骤402,个人化设备接收第二上位装置下发的数据,使用数据传输密钥解密接收到的数据。

例如:当个人化设备接收第二上位装置下发的数据后,个人化设备使用数据传输密钥cbca695bd336cb9baf3a9408d109183b337383866ad1549c解密接收到的数据7ce41da93b54b1c4b38e32df2ebcb28f38471bc25b14a5ebbd1b20bfe742fe3ad934ba6d41fd8637cd44fe135797e2bc4d8ecebd408674f8得到解密后的数据a500350100310001020304050607080908070605040302010001080211060606112233445566778888776655443322115a6ed9be0004b001。

又例如:当个人化设备接收第二上位装置下发的数据后,人化设备使用数据传输密钥1a7418e5d558f29bfc58b968e83e788f19d5e3ff9d561327解密接收到的数据702b5b5f6bb1be4b

得到解密后的数据a50003020100。

步骤403,个人化设备判断解密后的数据的类型,若为个人化数据包则执行步骤404,若为验证请求则执行步骤414。

具体地,个人化设备根据第一预设协议判断解密后的数据类型,若为个人化数据包则执行步骤404,若为验证请求则执行步骤414。

更加具体地,个人化设备从解密后的数据中获取第一预设位置上的数据,根据第一预设位置上的数据判断解密后的数据的类型,若第一预设位置上的数据为第一预设标识,则解密后的数据为个人化数据包则执行步骤404;若第一预设位置上的数据为第二预设标识,则解密后的数据为验证请求执行步骤414。

本实施例中,第一预设位置可以但不限于为解密后的数据中的第三个字节,第一预设标识可以但不限于为35;第二预设标识可以但不限于为03。

例如:个人化设备从解密后的数据中a500350100310001020304050607080908070605040302010001080211060606112233445566778888776655443322115a6ed9be0004b001获取第一预设位置即第三个字节上的数据为第一预设标识35,则解密后的数据为个人化数据包则执行步骤404;

又例如:个人化设备从解密后的数据中a50003020100获取第一预设位置上的数据为第二预设标识03,则解密后的数据为验证请求执行步骤414。

步骤404,个人化设备解析个人化数据包得到第二个人化信息。

本实施例中,第二个人化信息可具体包括:主账号、第二分散密钥、有效期、时间窗口和服务代码等。

具体地,个人化设备按照第一预设协议解析个人化数据包括得到第二个人化信息,按照第一预设次序从第二个人化信息中获取主账号、第二分散密钥、有效期、时间窗口和服务代码等信息。

例如:个人化设备按照第一预设协议解析个人化数据包a500350100310001020304050607080908070605040302010001080211060606112233445566778888776655443322115a6ed9be0004b001得到第二个人化信息0001020304050607080908070605040302010001080211060606112233445566778888776655443322115a6ed9be0004b0,按照第一预设次序从第二个人化信息中获取主账号00010203040506070809080706050403020100、第二分散密钥11223344556677888877665544332211、有效期01080211、时间窗口0004b0和服务代码060606。

本实施例中,第二分散密钥是用于实现金融ic卡的动态验证功能的密钥种子,可以但不限于为udk(uniquedataencryptionalgorithmkey,唯一数据加密算法密钥)密钥种子。

步骤405,个人化设备向金融ic卡发送获取卡片基本信息指令,若接收到金融ic卡返回的正确应答则执行步骤406,否则执行步骤413。

需说明的是,本实施例中,金融ic卡中包括第一芯片和第二芯片,第一芯片用于实现金融ic卡的个人化和动态验证功能,第二芯片用于实现金额ic卡的交易功能;本实施例中,个人化设备和金融ic卡之间的通信,具体为:个人化设备和金融ic卡中的第一芯片之间的通信。

具体地,个人化设备根据第二预设协议生成获取卡片基本信息指令,向金融ic卡发送获取卡片基本信息指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤406,否则执行步骤413。

例如:个人化设备根据第二预设协议生成获取卡片基本信息指令

86021010,向金融ic卡发送获取卡片基本信息指令,接收到金融ic卡返回的应答aa0b1001100001270000250507后,根据第二预设协议判断接收到正确的应答则执行步骤406。

步骤406、个人化设备根据金融ic卡返回的应答中的卡片基本信息判断金融ic卡是否为等待个人化的金融ic卡,是则执行步骤407,否则执行步骤413。

具体地,个人化设备根据第二预设协议解析金融ic卡返回的应答获取金融ic卡返回的应答中的卡片基本信息,判断金融ic卡是否为等待个人化的金融ic卡,是则执行步骤407,否则执行步骤413。

本实施例中,卡片基本信息可具体包括:产品类别、硬件方案、软件版本、软件小版本、随机数、定制信息、其他信息、算法标识、绑定id号等,其中,产品类别、硬件方案、软件版本、软件小版本、随机数、定制信息、其他信息、算法标识、绑定id号均优选为1个字节。

更加具体地,个人化设备根据第二预设协议解析金融ic卡返回的应答获取金融ic卡返回的应答中的卡片基本信息,获取卡片基本信息中的产品类别、硬件方案、软件版本、软件小版本、随机数、定制信息、其他信息、算法标识、绑定id号等信息,根据其他信息判断融ic卡是否为等待个人化的金融ic卡,若其他信息为第一预设字段信息,则金融ic卡是否为等待个人化的金融ic卡,执行步骤407,否则金融ic卡为非等待个人化的金融ic卡,执行步骤413。

例如:个人化设备根据第二预设协议解析金融ic卡返回的应答aa0b1001100001270000250507获取金融ic卡返回的应答中的卡片基本信息011000012700002505,根据第二预设次序将卡片基本信息中的01、10、00、01、27、00、00、25和05依次作为卡片基本信息中的产品类别、硬件方案、软件版本、软件小版本、随机数、定制信息、其他信息、算法标识和绑定id号,其他信息00为预设字段信息,则金融ic卡是否为等待个人化的金融ic卡,执行步骤407,否则金融ic卡为非等待个人化的金融ic卡,执行步骤413。

本实施例中,第一预设字段信息可以为00-0f中的任意一个字节。

步骤407,个人化设备向金融ic卡发送写主账号指令,若接收到金融ic卡返回的正确应答则执行步骤408,否则执行步骤413。

具体地,个人化设备根据第二预设协议和获取到的主账号生成写主账号指令,向金融ic卡发送写主账号指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤408,否则执行步骤413。

本实施例中,写主账号指令中包含第二个人化信息中的主账号。

例如:个人化设备根据第二预设协议和获取到的主账号00010203040506070809080706050403020100生成写主账号指令86151d0001020304050607080908070605040302010014,向金融ic卡发送写主账号指令,接收到金融ic卡返回的应答aa02aaaa后,根据第二预设协议判断接收到正确的应答,执行步骤408。

步骤408,个人化设备向金融ic卡发送写有效期指令,若接收到金融ic卡返回的正确应答则执行步骤409,否则执行步骤413。

具体地,个人化设备根据第二预设协议和获取到的有效期生成写有效期指令,向金融ic卡发送写有效期指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤409,否则执行步骤413。

本实施例中,写有效期指令中包含第二个人化信息中的有效期。

例如:个人化设备根据第二预设协议和获取到的有效期01080211生成写有效期指令86062d0108021137,向金融ic卡发送写有效期指令,接收到金融ic卡返回的应答aa02aaaa后,根据第二预设协议判断接收到正确的应答,若执行步骤409。

步骤409,个人化设备向金融ic卡发送写服务代码指令,若接收到金融ic卡返回的正确应答则执行步骤410,否则执行步骤413。

具体地,个人化设备根据第二预设协议和获取到的服务代码生成写服务代码指令,向金融ic卡发送写服务代码指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤410,否则执行步骤413。

本实施例中,写服务代码指令中包含第二个人化信息中的服务代码。

例如:个人化设备根据第二预设协议和获取到的服务代码060606生成写服务代码指令86053d0606063b,向金融ic卡发送写服务代码指令,接收到金融ic卡返回的应答aa02aaaa后,根据第二预设协议判断接收到正确的应答,执行步骤410。

步骤410,个人化设备向金融ic卡发送写时间窗口指令,若接收到金融ic卡返回的正确应答则执行步骤411,否则执行步骤413。

具体地,个人化设备根据第二预设协议和获取到的时间窗口生成写时间窗口指令,向金融ic卡发送写时间窗口指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤411,否则执行步骤413。

本实施例中,写时间窗口指令中包含第二个人化信息中的时间窗口。

本实施例中,写时间窗口指令中包含第二个人化信息中的时间窗口。

例如:个人化设备根据第二预设协议和获取到的时间窗口

0004b0生成写时间窗口指令,向金融ic卡发送写时间窗口指令,接收到金融ic卡返回的应答aa02aaaa后,根据第二预设协议判断接收到正确的应答,执行步骤411。

步骤411,个人化设备向金融ic卡发送写第二分散密钥指令,若接收到金融ic卡返回的正确应答则执行步骤412,否则执行步骤413。

具体地,个人化设备根据第二预设协议和获取到的第二分散密钥生成写第二分散密钥指令,向金融ic卡发送写第二分散密钥指令,接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤412,否则执行步骤413。

本实施例中,写第二分散密钥指令中包含第二个人化信息中的第二分散密钥。

例如:个人化设备根据第二预设协议和获取到的第二分散密钥11223344556677888877665544332211生成写第二分散密钥指令,向金融ic卡发送写第二分散密钥指令86121e112233445566778888776655443322111e,接收到金融ic卡返回的应答aa02aaaa后,根据第二预设协议判断接收到正确的应答,执行步骤412。

步骤412,个人化设备生成第二个人化信息写入成功信息,将第二个人化信息写入成功信息用数据传输密钥加密后返回给第二上位装置,返回步骤402。

具体地,个人化设备根据第一预设协议生成第二个人化信息写入成功信息,将第二个人化信息写入成功信息用数据传输密钥加密后返回给第二上位装置。

例如:个人化设备根据第一预设协议生成第二个人化信息写入成功信息5a0003800083,将第二个人化信息写入成功信息用数据传输密钥

cbca695bd336cb9baf3a9408d109183b337383866ad1549c加密后得到的c002439fa95e5a48返回给第二上位装置。

步骤413,个人化设备生成第二个人化信息写入失败信息,将第二个人化信息写入失败信息用数据传输密钥加密后返回给第二上位装置,返回步骤402。

具体地,个人化设备根据第一预设协议生成第二个人化信息写入失败信息,将第二个人化信息写入失败信息用数据传输密钥加密后返回给第二上位装置,返回步骤402。

例如:个人化设备根据第一预设协议生成第二个人化信息写入失败信息5a0003800182,将第二个人化信息写入失败信息用数据传输密钥cbca695bd336cb9baf3a9408d109183b337383866ad1549c加密后得到的bc072a47ab48832d返回给第二上位装置,返回步骤402。

步骤414,个人化设备向金融ic卡发送读取时间窗口和动态验证码指令,若接收到金融ic卡返回的正确应答则执行步骤415,否则执行步骤419。

具体地,个人化设备根据第二预设协议生成读取时间窗口和动态验证码指令,向金融ic卡发送读取时间和动态验证码指令;接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤415,否则执行步骤419。

例如:个人化设备根据第二预设协议生成读取时间窗口和动态验证码指令86021f1f,向金融ic卡发送读取时间窗口和动态验证码指令;接收到金融ic卡返回的应答aa0808075aebc7d40004b011后,根据第二预设协议判断接收到正确的应答,执行步骤415。

步骤415,个人化设备将金融ic卡返回的应答中的时间窗口和动态验证码用数据传输密钥加密后发送给第二上位装置进行验证,接收第二上位装置返回的验证结果。

具体地,个人化设备根据第二预设协议解析金融ic卡返回的应答获取金融ic卡返回的应答中的时间窗口和动态验证码;根据第一预设协议组织包括时间窗口和动态验证码的待验证数据,使用数据传输密钥对待验证数据进行加密得到加密后的待验证数据,将加密后的待验证数据发送给第二上位装置进行验证,接收第二上位装置返回个验证结果。

例如:个人化设备根据第二预设协议解析金融ic卡返回的应答aa0808075aebc7d40004b011,根据第三预设次序将金融ic卡返回的应答中的0004b0作为时间窗口、将金融ic卡返回的应答中的080807作为动态验证码;根据第一预设协议组织包括时间窗口和动态验证码的待验证数据5a000c02010808075aebc7d40004b01e,使用数据传输密钥1a7418e5d558f29bfc58b968e83e788f19d5e3ff9d561327对待验证数据进行加密得到加密后的待验证数据0cb582c17a80123a05d5484f5c0f8ace,将加密后的待验证数据发送给第二上位装置进行验证,接收第二上位装置返回个验证结果。

步骤416,个人化设备用数据传输密钥解密接收到的验证结果,若解密得到的是验证成功信息则执行步骤417,若解密得到的是验证失败信息则执行步骤419。

具体地,个人化设备使用数据传输密钥解密接收到的验证结果得到解密后的验证结果,根据第一预设协议判断解密后的验证结果是否为验证成功信息,若解密得到的是验证成功信息则执行步骤417,若解密得到的是验证失败信息则执行步骤419。

例如:个人化设备使用数据传输密钥1a7418e5d558f29bfc58b968e83e788f19d5e3ff9d561327解密接收到的验证结果ba90acd6daec642a得到解密后的验证结果a50003020203,根据第一预设协议判断解密后的验证结果为验证成功信息则执行步骤417。

步骤417,个人化设备向金融ic卡发送读取个人化状态信息指令,若接收到金融ic卡返回的正确应答则执行步骤418,否则执行步骤419。

具体地,个人化设备根据第二预设协议生成读取个人化状态信息指令,向金融ic卡发送读取个人化状态信息指令;接收到金融ic卡返回的应答后,根据第二预设协议判断是否接收到正确的应答,若接收到金融ic卡返回的正确应答则执行步骤418,否则执行步骤419。

例如:个人化设备根据第二预设协议生成读取个人化状态信息指令86022f2f,向金融ic卡发送读取个人化状态信息指令;接收到金融ic卡返回的应答aa0b2f0101010101002e后,根据第二预设协议判断接收到正确的应答,执行步骤418。

步骤418,个人化设备存储金融ic卡返回的应答中的个人化状态信息,生成个人化成功信息,将个人化成功信息用数据传输密钥加密后返回给第二上位装置。

具体地,个人化设备根据第二预设协议解析金融ic卡返回的应答,获取金融ic卡返回的应答中的个人化状态信息,存储金融ic卡返回的应答中的个人化状态信息,根据第一预设协议生成个人化成功信息,将个人化成功信息用数据传输密钥加密后返回给第二上位装置。

本实施例中,个人化状态信息包括:写主账号次数、写有效期次数、写服务代码次数、写时间窗口次数、写第二分散密钥次数和通信错误次数,其中,写主账号次数、写有效期次数、写服务代码次数、写时间窗口次数、写第二分散密钥次数和通信错误次数均优选为1个字节。

例如:个人化设备根据第二预设协议解析金融ic卡返回的应答aa0b2f0101010101002e,获取金融ic卡返回的应答中的个人化状态信息010101010100,根据第四预设次序将金融ic卡返回的应答中的个人化状态信息中的01、01、01、01、01、00依次作为个人化状态信息中的写主账号次数、写有效期次数、写服务代码次数、写时间窗口次数、写第二分散密钥次数和通信错误次数;根据第一预设协议生成个人化成功信息,将个人化成功信息用数据传输密钥加密后返回给第二上位装置。

步骤419,个人化设备生成个人化失败信息,将个人化失败信息用数据传输密钥加密后返回给第二上位装置,返回步骤402。

具体地,个人化设备根据第一预设协议生成个人化失败信息,将个人化失败信息用数据传输密钥加密后返回给第二上位装置。

例如:个人化设备根据第一预设协议生成个人化失败信息5a00040203fffa,将个人化失败信息5a00040203fffa用数据传输密钥1a7418e5d558f29bfc58b968e83e788f19d5e3ff9d561327加密后得到的结果854806ebcfd82a29返回给第二上位装置。

实施例4

本实施例提供了一种具有动态验证码的金融ic卡的个人化系统,如图5所示,系统包括:上位装置和个人化设备;

上位装置包括:第一组织模块11、第二组织模块12、第一建立安全通道模块13、第一发送模块14、第二发送模块15和第三发送模块16;

个人化设备包括:第二建立安全通道模块21、第一接收模块22、第一解析模块23、第一写入模块24、第一返回模块25;第二接收模块26、第一读取模块27、第二返回模块28、第三接收模块29、第一判断模块30、第二读取模块31、第一保存模块32、第三返回模块33和第四返回模块34;

第一组织模块11,用于生成或者接收包括第一主密钥的第一个人化信息;对第第一主密钥进行分散得到第二分散密钥,组织包括第二分散密钥的第二个人化信息;

第二组织模块12,用于根据第一组织模块11组织的第二个人化信息组织个人化数据包;

第一建立安全通道模块13,用于与个人化设备建立安全通道;

第一发送模块14,用于通过第一建立安全通道模块13建立的安全通道向个人化设备发送第二组织模块12组织的个人化数据包;

第二发送模块15,用于通过第一建立安全通道模块13建立的安全通道向个人化设备发送验证请求;

第三发送模块16,用于通过第一建立安全通道模块13建立的安全通道向个人化设备发送验证结果;

第二建立安全通道模块21,用于和上位装置建立安全通道;

第一接收模块22,用于通过第二建立安全通道模块21建立的安全通道接收来自上位装置的个人化数据包;

第一解析模块23,用于解析第一接收模块22接收到的个人化数据包得到第二个人化信息;

第一写入模块24,用于向金融ic卡中写入第一解析模块23得到的第二个人化信息;

第一返回模块25,用于通过安全通道向上位装置返回第二个人化信息写入结果;

第二接收模块26,用于通过安全通道接收验证请求;

第一读取模块27,用于从金融ic卡中读取时间窗口和动态验证码;

第二返回模块28,用于将第一读取模块27读取到的时间窗口和动态验证码通过安全通道返回给上位装置;

第三接收模块29,用于通过安全通道接收上位装置返回的验证结果;

第一判断模块30,用于判断第三接收模块29接收到的验证结果的类型;

第二读取模块31,用于当第一判断模块30判断出通过安全通道接收到的上位装置返回的验证结果为验证成功时,读取金融ic卡中的个人化状态;

第一保存模块32,用于保存第二读取模块31读取到的金融ic卡返回的个人化状态;

第三返回模块33,用于当第一判断模块30判断出验证结果为验证成功时,通过安全通道向上位装置返回个人化成功信息;

第四返回模块34,用于当第一判断模块30判断出验证结果为验证失败时,通过安全通道向上位装置返回个人化失败信息。

进一步地,上位装置包括第二上位装置和第三上位装置;

第三上位装置包括第一组织模块11和第四发送模块;

第二上位装置包括:第四接收模块和第二组织模块12、第一安全通道模块、第一发送模块14、第二发送模块15和第三发送模块16;

第四发送模块,用于将第一组织模块11组织的第二个人化信息发送给第二上位装置;

第四接收模块,用于接收来自第三上位装置的第二个人化信息;

第二组织模块12,具体用于根据第四接收模块接收到的第二个人化信息组织个人化数据包。

本实施例中,第一组织模块11可以被替换为:第三组织模块;

第三组织模块,用于根据预设的卡标识信息生成分散因子,使用分散因子对预设的第一主密钥进行分散得到第一分散密钥,组织包括第一分散密钥的第一个人化信息;使用分散因子对预设的第二主密钥进行分散得到第二分散密钥,组织包括第二分散密钥的第二个人化信息;

第二组织模块12,用于根据第三组织模块组织的第二个人化信息组织个人化数据包。

进一步地,上位装置包括第二上位装置和第三上位装置;

第三上位装置包括:第三组织模块和第五发送模块;

第二上位装置包括:第五接收模块、第二组织模块12、第一安全通道模块、第一发送模块14、第二发送模块15和第三发送模块16;

第五发送模块,用于将第三组织模块组织的第二个人化信息发送给第二上位装置;

第五接收模块,用于接收来自第三上位装置的第二个人化信息;

第二组织模块12,具体用于根据第五接收模块接收到的第二个人化信息组织个人化数据包。

本实施例中,第一建立安全通道模块13,包括:第一发送单元和第一接收单元;

第二建立安全通道模块21,包括:第二接收单元、第二发送单元和第一加密单元;

第一发送单元,用于向个人化设备发送包括握手随机数的握手请求;

第一接收单元,用于接收个人化设备返回的握手应答;

第二接收单元,用于接收来自上位装置的握手请求;

第一加密单元,用于使用与上位装置预先约定的初始密钥对第二接收单元接收到的握手请求中的握手随机数进行加密得到数据传输密钥;

第二发送单元,用于向上位装置发送握手应答;

第一发送模块14,具体用于使用上位装置的数据传输密钥对第二组织模块12组织的个人化数据包进行加密,向个人化设备发送加密后的个人化数据包;

第二发送模块15,具体用于使用上位装置的数据传输密钥对验证请求进行加密,向个人化设备发送加密后的验证请求;

第三发送模块16,具体用于使用上位装置的数据传输密钥对验证结果进行加密,向个人化设备发送加密后的验证结果;

个人化设备还包括:第一解密模块、第二解密模块和第三解密模块;

第一接收模块22,具体用于接收来自上位装置的加密后的个人化数据包;

第一解密模块,用于对第一接收模块22接收到的加密后的个人化数据包进行解密;

第一解析模块23,具体用于对第一解密模块得到的解密后的个人化数据包进行解析得到第二个人化信息;

第一返回模块25,具体用于将第二个人化信息写入结果用第一加密单元得到的数据传输密钥加密后返回给上位装置;

第二接收模块26,具体用于接收来自上位装置的加密后的验证请求;

第二解密模块,用于对第二接收模块26接收到的加密后的验证请求进行解密;

第二返回模块28,具体用于将第一读取模块27读取到的时间窗口和动态验证码用第一加密单元得到的数据传输密钥加密后返回给上位装置;

第三接收模块29,具体用于接收上位装置的加密后的验证结果;

第三解密模块,用于对第三接收模块29接收到的加密后的验证结果进行解密;

第一判断模块30,具体用于判断第三解密模块解密后的验证结果的类型;

第三返回模块33,具体用于当第一判断模块30判断出验证结果为验证成功时,将个人化成功信息用数据传输密钥加密后返回给上位装置;

第四返回模块34,用于当第一判断模块30判断出验证结果为验证失败时,将个人化失败信息用数据传输密钥加密后返回给上位装置。

进一步地,第一加密单元,具体用于使用与上位装置预先约定的初始密钥对第二接收单元接收到的握手请求中的握手随机数进行3des加密得到数据传输密钥。

本实施例中,第二个人化信息还包括:主账号、有效期、时间窗口、服务代码。

本实施例中,第一写入模块24包括:第三发送单元、第三接收单元、第一判断单元、第四发送单元、第四接收单元、第二判断单元、第五发送单元、第五接收单元、第三判断单元、第六发送单元、第六接收单元、第四判断单元、第七发送单元、第七接收单元和第五判断单元;

第三发送单元,用于向金融ic卡发送写主账号指令;

第三接收单元,用于接收到金融ic卡返回的应答;

第一判断单元,用于判断第三接收单元接收到的应答是否为正确应答;

第四发送单元,用于当第一判断单元判断为是后,向金融ic卡发送写有效期指令;

第四接收单元,用于接收到金融ic卡返回的应答;

第二判断单元,用于判断第四接收单元接收到的应答是否为正确应答;

第五发送单元,用于当第二判断单元判断为是后,向金融ic卡发送写服务代码指令;

第五接收单元,用于接收到金融ic卡返回的应答;

第三判断单元,用于判断第五接收单元接收到的应答是否为正确应答;

第六发送单元,用于当第三判断单元判断为是后,向金融ic卡发送写时间窗口指令,

第六接收单元,用于接收到金融ic卡返回的应答;

第四判断单元,用于判断第六接收单元接收到的应答是否为正确应答;

第七发送单元,用于当第四判断单元判断为是后,向金融ic卡发送写第二分散密钥指令;

第七接收单元,用于接收到金融ic卡返回的应答;

第五判断单元,用于判断第七接收单元接收到的应答是否为正确应答;

第一返回模块25,具体用于当第五判断单元判断为是后,用于通过安全通道向上位装置返回第二个人化信息写入成功信息;

当第一判断单元或第二判断单元或第三判断单元或第四判断判断单元或第五判断单元判断为否后,通过安全通道向上位装置返回第二个人化信息写入失败信息。

本实施例中,个人化设备还包括:第二判断模块和报错模块;

第二判断模块,用于从金融ic卡中读取卡片基本信息,根据卡片基本信息判断金融ic卡是否为等待个人化的金融ic卡;

第一写入模块24,具体用于当第二判断模块判断为是后,向金融ic卡中写入第一解析模块23得到的第二个人化信息;

报错模块,用于当第二判断模块判断为否后,报错。

本实施例中,卡片基本信息包括:产品类别、硬件方案、软件版本、软件小版本、随机数、定制信息、其他信息、算法标识和绑定id号中的一个或多个。

本实施例中,第一读取模块27,具体用于向金融ic卡发送读取时间窗口和动态验证码指令;接收来自金融ic卡的时间窗口和动态验证码。

本实施例中,第二读取模块31,具体用于当第一判断模块30判断出通过安全通道接收到的上位装置返回的验证结果为验证成功时,向金融ic卡发送读取个人化状态信息指令,接收金融ic卡返回的应答中的个人化状态信息。

本实施例中,个人化状态信息包括:写主账号次数、写有效期次数、写服务代码次数、写时间窗口次数、写第二分散密钥次数和通信错误次数中的一个或多个。

本实施例中,第一组织模块11还可以被替换为:第四组织模块;

第四组织模块,用于生成或者接收第一主密钥,对第一主密钥进行分散得到第一分散密钥,组织包括第一分散密钥的第一个人化信息;对第一主密钥进行分散得到第二分散密钥,组织包括第二分散密钥的第二个人化信息,根据第二个人化信息组织个人化数据包;

第二组织模块12,用于根据第四组织模块组织的第二个人化信息组织个人化数据包。

相应地,上位装置可以包括第二上位装置和第三上位装置;

第三上位装置包括:第四组织模块和第六发送模块;

第二上位装置包括:第六接收模块、第二组织模块12、第一安全通道模块13、第一发送模块14、第二发送模块15和第三发送模块16;

第六发送模块,用于将第四组织模块组织的第二个人化信息发送给第二上位装置;

第六接收模块,用于接收来自第三上位装置的第二个人化信息;

第二组织模块12,具体用于根据第六接收模块接收到的第二个人化信息组织个人化数据包。

本实施例提供了一种具有动态验证码的金融ic卡的个人化系统,采用本发明的技术方案能够实现具有动态验证码的金融ic卡的个人化。

以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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