CN101901358A - 一种ic卡读写实现的方法、ic卡以及读卡器和系统 - Google Patents
一种ic卡读写实现的方法、ic卡以及读卡器和系统 Download PDFInfo
- Publication number
- CN101901358A CN101901358A CN2009101427677A CN200910142767A CN101901358A CN 101901358 A CN101901358 A CN 101901358A CN 2009101427677 A CN2009101427677 A CN 2009101427677A CN 200910142767 A CN200910142767 A CN 200910142767A CN 101901358 A CN101901358 A CN 101901358A
- Authority
- CN
- China
- Prior art keywords
- card
- value
- storage amount
- depreciation
- unit
- 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.)
- Granted
Links
Images
Landscapes
- Storage Device Security (AREA)
Abstract
本发明公开了一种IC卡读写实现的方法,包括:在对IC卡进行增值或者减值操作前,判断所述IC卡的制式中是否设置有最大存储额度值和目标存储额度值,若存在所述最大存储额度值和目标存储额度值时,脱机读卡器对所述IC卡执行减值操作指令时,仅对所述IC卡中的最大存储额度值进行单向的减值指令操作;或者联机读卡器对所述IC卡执行增值操作指令时,仅对所述IC卡中的目标存储额度值进行单向的减值指令操作。本发明还公开了相应的读卡器和IC卡及系统,采用本明发所提供的方案,只需要调整现有IC卡的关键数据存放方式和增加少量储存内容,同时只需将增值读卡器改造为联机读卡器,实现联机增值,其他设备和系统只需要进行软件升级,降低了改造费用和时间。
Description
技术领域
本发明涉及电子技术领域,尤其涉及一种IC卡读写实现的方法、IC卡以及读卡器和系统。
背景技术
随着通信技术的发展及其应用领域的拓宽,集成电路(Integrate Circuit,IC)卡的应用也越来越广泛,但随着Crypto-1算法被破解和相关研究成果的公开,基于Mifare Classic IC卡的储值卡系统的安全性遭遇到非常严重的挑战,主要包括:1、虽然使用安全模块组(Security Authentication Module,SAM)卡对卡号认证码进行认证能够防止IC卡的非法克隆,但无法阻止通过对既有IC卡密钥的破解后对储值额等关键信息区域进行篡改而实现非法增值,使用一卡一密也只能轻微延缓破解速度。2、由于使用的工具成本较低和可公开获得,破解单张IC卡的成本非常低廉。3、由于通常使用脱机读卡器,后台系统无法进行实时检查及时发现异常状态的IC卡。4、因黑名单更新频率的限制,黑名单不能及时下载到脱机读卡器,无法及时锁定异常IC卡而造成损失。
现有防破解的方法主要包括两种:1、将所有脱机读卡器改造或升级为联机读卡器。由于联机读卡器能够实时从后台系统获得黑名单,可以及时锁定异常状态的IC卡并拒绝支付;如果更进一步,后台系统还可以和联机读卡器配合,实时检查及时发现异常状态的IC卡,对其锁定并拒绝交易。由于所有联机读卡器需要增加联机通讯模块和建立到后台系统的永久通信链路,涉及的设备改造成本非常巨大,而且还需要长期支付后续的通讯费用。2、将现有IC卡全部更换成安全级别更高的其他类型IC卡,如Mifare Plus、Mifare DESFire和MifareSmartMX或其他支持ISO 14443Type A协议的CPU卡。由于需要更换所有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卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的增值认证码,所述增值认证码为消息认证码MAC。
实施本发明实施例,具有如下有益效果:本发明所提供的储IC卡读写实现的方法及IC卡,由于通过设置最大存储额度值和目标存储额度值,并对其所在数据块对应的存取控制位设置为执行单向的减值指令和读指令,所以即使用户破解了IC卡的操作密码,也只能减少最大存储额度值的值,而目标存储额度值一般情况下从大到小,由联机系统负责减值操作,无法减少其额度值的值,由于IC卡的实际存储值为最大存储额度值与目标存储额度值之差,既然无法增加最大存储额度值的值,也无法减少目标存储额度值的值,所以用户最终无法通过篡改等方法增加实际储值,达到不用更换大量IC卡就能保护IC卡的安全性,降低改造费用,减少改造时间。
附图说明
图1为本发明实施例中的IC卡读写实现方法第一流程图;
图2为本发明实施例中的IC卡读写实现方法第二流程图;
图3为本发明实施例中的IC卡联机增值操作流程图;
图4为本发明实施例中的IC卡脱机减值操作流程图;
图5为本发明实施例中的IC卡联机系统架构图;
图6为本发明实施例中的联机读卡器的结构示意图;
图7为本发明实施例中的脱机读卡器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的一种IC卡读写实现的方法、IC卡以及读卡器和系统,通过设置最大存储额度值和目标存储额度值,并对其所在数据块对应的存取控制位设置为执行单向的减值指令和读指令,达到即使用户破解密码也无法自行对储值额进行增值的目的。
参见图1,图1示出了本发明实施例提供的一种IC卡读写实现的方法第一流程图,包括:
需要说明的是,本发明的IC卡是存储了设置有最大存储额度值和目标存储额度值的,这里的IC卡的实际存储值为最大存储额度值与目标存储额度值之差;在存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的存储控制位为执行单向的减值指令和读指令;在存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的增值认证码,所述增值认证码为消息认证码MAC,这里主要通过在联机模式操作时,针对目标存储额度值进行减值操作来完成。
具体的,以Mifare Classic系列及其兼容芯片的Mifare Classic 1K芯片为代表,以下简称M1,在M1卡中设置最大存储额度值Vmax1和目标存储额度值Vmax2,其初始值都设置为231-1,表示初始的储值额为零。由于M1IC卡的存贮区域划分为16个扇区,每个扇区划分为4个块,每个块具有16个字节存储空间,M1IC卡以块为存取单位,即读和写操作以一个块的16个字节为单位,每个扇区的前三个块用于存储数据,通常称为数据块,最后一个块存储本扇区的操作密钥和扇区的各个块的存取控制位数据,通常被称为控制块。所以将设置的Vmax1保存在M1的数值块中,Vmax2保存在M1的数据块中,用Vmax1与Vmax2的额度差值(即Vmax1_Vmax2)来表示IC卡的实际存储值。Vmax1和Vmax2都只允许执行单向的减值操作,通过Vmax1和Vmax2的组合操作实现储值额的增值和减值,Vmax2的减值操作通过联机系统计算后由读卡器写入IC卡完成,Vmax1的减值操作通过读卡器直接使用M1的数值块专用减值指令完成。由于控制块本身能够通过读/写操作存取,也能够通过设置对应的存取控制位数据禁止修改,为了使Vmax1只允许执行单向的减值操作,对Vmax1所在的数值块对应的存取控制位进行调整,将存取控制位设置为001,这样Vmax1所在的数值块只允许执行单向的减值指令和读指令,不允许执行增值指令和写指令。同时对Vmax1所在扇区控制块对应的存取控制位进行调整,将存取控制位设置为100,只允许改写每个扇区具有的操作密钥KeyA和Key B,不允许改写控制块,避免用户通过改写控制块的方式改变对Vmax1只允许执行单向的减值操作的限制。
步骤S101:获取所述IC卡的唯一序列号,并对获取到的唯一序列号进行安全认证;
具体的,联机读卡器获取所述IC卡的唯一序列号,并对获取到的唯一序列号进行安全认证,所述安全认证包括黑名单认证、卡号认证等等,通过安全证认之后执行步骤S102。
步骤S102:判断所述IC卡的制式,是否设置有最大存储额度值和目标存储额度值;
具体的,联机读卡器在对IC卡进行增值操作前,判断所述IC卡的制式,判断所述IC卡的制式中是否设置有最大存储额度值Vmax1和目标存储额度值Vmax2,如果是则执行步骤S103,否则执行步骤S104。
步骤S103:获取所述IC卡中的增值认证码,并对获取到的增值认证码进行增值操作指令认证;
具体的,联机读卡器使用对应数据扇区的操作密钥Key A和Key B从IC卡中读取Vmax2和MAC,送往联机系统进行认证,通过认证之后执行步骤S105。
步骤S 104:提示增值操作失败;
步骤S105:对所述IC卡中的目标存储额度值进行单向的减值指令操作;
具体的,联机系统在旧的Vmax2值上减去欲增值金额得到新的Vmax2,然后将得到的新的Vmax2送往联机读卡器中,这样就完成了Vmax2单向减值指令操作,执行步骤S106。
步骤S106:提示增值操作成功。
需要说明的是,在联机操作模式下,该联机系统还可以为旧的IC卡,即该IC卡不是存储了最大存储额度值和目标存储额度值的卡时,可以为该IC卡设置一个最大存储额度值和目标存储额度值,这样在该IC卡设置了最大存储额度值和目标存储额度值,就可以通过对目标存储额度值进行减值操作指令,那么就可以对该IC卡实现增值。该IC卡在进行下次脱机减值操作时,可以针对该设置的最大存储额度值进行减值操作。同样的,在为该IC卡存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的存储控制位为执行单向的减值指令和读指令;在为该IC卡存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的增值认证码,所述增值认证码为消息认证码MAC。
实施本发明实施例,由于正常情况下Vmax2的值是从大到小、由后台系统负责减值操作的,旧的Vmax2值大于新的Vmax2值。如果用户通过自行篡改减少Vmax2的值,由于用户无法获得与篡改后的Vmax2对应的正确增值认证码,会导致脱机读卡器使用SAM卡的专用认证指令认证Vmax2等数据和增值认证码时认证失败,进而识别出非法篡改;如果用户不自行篡改Vmax2,但预先保存Vmax2等数据和对应的增值认证码,经过一段时间后,使用保存的旧Vmax2及对应的增值认证码来覆盖新的Vmax2和增值认证码,这时旧Vmax2及对应的增值认证码虽然能够通过SAM卡的认证,但由于旧的Vmax2值大于新的Vmax2值,实际上导致了Vmax2值的增加。这样只需将增值的读卡器改造为联机读卡器,其他设备和系统只需进行软件升级,极大地降低了改造费用,减少改造时间,同时提高了IC卡的安全性。
参见图2,图2示出了本发明实施例提供的一种IC卡读写实现的方法第二流程图,包括:
需要说明的是,本发明的IC卡是存储了设置有最大存储额度值和目标存储额度值的,这里的IC卡的实际存储值为最大存储额度值与目标存储额度值之差;在存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的存储控制位为执行单向的减值指令和读指令;在存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的增值认证码,所述增值认证码为消息认证码MAC,这里主要通过在脱机模式操作时,针对最大存储额度值进行减值操作来完成。
具体的,以Mifare Classic系列及其兼容芯片的Mifare Classic 1K芯片为代表,以下简称M1,在M1卡中设置最大存储额度值Vmax1和目标存储额度值Vmax2,由于M1IC卡的存贮区域划分为16个扇区,每个扇区划分为4个块,每个块具有16个字节存储空间,M1IC卡以块为存取单位,即读和写操作以一个块的16个字节为单位,每个扇区的前三个块用于存储数据,通常称为数据块,最后一个块存储本扇区的操作密钥和扇区的各个块的存取控制位数据,通常被称为控制块。所以将设置的Vmax1保存在M1的数值块中,Vmax2保存在M1的数据块中,用Vmax1与Vmax2的额度差值(即Vmax1_Vmax2)来表示IC卡的实际存储值。Vmax1和Vmax2都只允许执行单向的减值操作,通过Vmax1和Vmax2的组合操作实现储值额的增值和减值,Vmax2的减值操作通过联机系统计算后由读卡器写入IC卡完成,Vmax1的减值操作通过读卡器直接使用M1的数值块专用减值指令完成。由于控制块本身能够通过读/写操作存取,也能够通过设置对应的存取控制位数据禁止修改,为了使Vmax1只允许执行单向的减值操作,对Vmax1所在的数值块对应的存取控制位进行调整,将存取控制位设置为001,这样Vmax1所在的数值块只允许执行单向的减值指令和读指令,不允许执行增值指令和写指令。同时对Vmax1所在扇区控制块对应的存取控制位进行调整,将存取控制位设置为100,只允许改写每个扇区具有的操作密钥KeyA和KeyB,不允许改写控制块,避免用户通过改写控制块的方式改变对Vmax1只允许执行单向的减值操作的限制。
步骤S201:获取所述IC卡的唯一序列号,并对获取到的唯一序列号进行安全认证;
具体的,脱机读卡器获取所述IC卡的唯一序列号,并对获取到的唯一序列号进行安全认证,所述安全认证包括黑名单认证、卡号认证等等,通过安全认证之后执行步骤S202。
步骤S202:判断所述IC卡的制式,是否设置有最大存储额度值和目标存储额度值;
具体的,脱机读卡器在对IC卡进行减值操作前,判断所述IC卡的制式,判断所述IC卡的制式中是否设置有最大存储额度值Vmax1和目标存储额度值Vmax2,如果是则执行步骤S203,否则执行步骤S204。
步骤S203:对所述IC卡中的最大存储额度值进行单向的减值指令操作;
具体的,脱机读卡器使用IC卡的减值指令对Vmax1进行减值操作,减去应欲减值金额,执行步骤S205。需要说明的是,这里的脱机读卡器还需要判断IC卡的实际存储值是否满足所述单向的减值指令操作,如果所述IC卡的实际存储值满足所述单向的减值指令操作,则对所述IC卡中的最大存储额度值进行单向的减值指令操作。具体的应该满足实际存储值大于单向的减值指令操作所需减去的数值,即在对最大存储额度值进行减值指令后,其最大存储额度值与目标存储额度值之差仍然是正数值。
步骤S204:提示减值操作失败;
步骤S205:提示减值操作成功。
实施本发明实施例,由于在Vmax1所在数据块对应的存取控制位设置成只允许执行单向的减值指令,用户即使破解了IC卡的操作密码,也只能减少Vmax1的值,无法增加Vmax1的值,从而实现了提高IC卡的安全性,以及不需要对系统的设备做很大的改造,降低了改造费用,以及改造时间,满足用户的需求。
参见图3,图3示出了本发明实施例提供的一种IC卡读写实现的方法的联机增值操作流程图,具体步骤如下:
步骤S301:输入增值金额;
具体的,用户使用IC卡在联机读卡器上开始增值操作处理,输入欲增值金额。
步骤S302:读取IC卡唯一序列号送往联机系统,判断是否为黑名单卡;
具体的,联机读卡器读取IC卡唯一序列号,并将读取的IC卡唯一序列号发送至联机系统,联机系统判断接收到的序列号是否存在,如果存在就说明该IC卡为合法卡,否则说明该卡为黑名单卡,执行步骤S313,结束增值操作处理流程。
步骤S303:对卡号认证码进行认证;
具体的,联机读卡器在本地使用SAM卡的专用认证指令或从联机系统对卡号认证码进行认证,如果认证不成功表示该IC卡不是本系统的合法卡,执行步骤S313;否则计算IC卡存贮区域中数据扇区的操作密钥KeyA和Key B,执行步骤S304。
步骤S304:判断IC卡制式是否为设置的制式;
具体的,判断IC卡制式是否为预先设置的Vmax1和Vmax2制式,即Vmax1保存在M1的数值块中,Vmax2保存在M1的数据块中,如果是则执行步骤S308,否则执行步骤S305。
步骤S305:使用对应操作密钥从IC卡中读取当前的储值额送往联机系统;
具体的,联机读卡器使用对应操作密钥KeyA和Key B从IC卡中读取当前的储值额送往联机系统,然后执行步骤S306。
步骤S306:联机系统设置Vmax1,计算Vmax2、增值认证码送回读卡器;
具体的,联机系统首先将Vmax1和Vmax2的初始值都设置为231-1,表示初始的实际存储值为零,然后将Vmax2减去旧的储值额后再减去欲增值金额得到新的Vmax2,最后采用三倍数据加密标准(Triple Data Encryption Standard,3DES)等对称加密算法结合特定的密钥对IC卡的唯一序列号、新的Vmax2相关数据进行加密生成增值认证码MAC,将计算得到的新的Vmax2、Vmax1和增值认证码送回联机读卡器中,执行步骤S307。
步骤S307:读卡器按照设置的制式要求,写入Vmax1、Vmax2和增值认证码。
具体的,联机读卡器将接收到的Vmax1、Vmax2和MAC按照预先设置的制式写入IC卡中,修改对应扇区的控制块数据,执行步骤S312。
步骤S308:从IC卡中读取Vmax2和增值认证码送往联机系统进行认证;
具体的,联机读卡器使用对应操作密钥Key A和Key B从IC卡中读取Vmax2和MAC,送往联机系统进行认证,如果认证失败表示IC卡被非法篡改,执行步骤S309,否则执行步骤S310。
步骤S309:记录黑名单信息对IC卡进行锁卡;
具体的,联机系统记录该卡信息为黑名单卡信息,联机读卡器对该卡进行锁卡操作,执行步骤S313。
步骤S310:联机系统计算新的Vmax2和增值认证码送回读卡器;
具体的,联机系统在旧的Vmax2值上减去欲增值金额得到新的Vmax2,然后采用3DES等对称加密算法结合特定的密钥对IC卡的唯一序列号、新的Vmax2相关数据进行加密生成新的MAC,将计算得到的新的Vmax2和新的MAC送回联机读卡器中,执行步骤S311。
步骤S311:读卡器将新的Vmax2和增值认证码写入IC卡的对应位置;
具体的,联机读卡器接收新的Vmax2和新的MAC,并将接收到的新的Vmax2和新的MAC写入IC卡的对应位置。
步骤S312:读卡器提示增值操作成功;
步骤S313:读卡器提示增值操作失败。
参见图4,图4示出了本发明实施例提供的一种IC卡读写实现的方法的脱机减值操作流程图,具体步骤如下:
步骤S401:输入减值金额;
具体的,用户使用IC卡在脱机读卡器上开始减值操作处理,手工输入或者读卡器按照业务规则获得欲减值金额。
步骤S402:读取IC卡唯一序列号,判断是否为黑名单卡;
具体的,脱机读卡器读取IC卡唯一序列号,判断该IC卡的序列号是否存在本地系统中,如果存在就说明该IC卡为合法卡,否则说明该卡为黑名单卡,执行步骤S410,结束增值操作处理流程。
步骤S403:对卡号认证码进行认证;
具体的,脱机读卡器在本地使用SAM卡的专用认证指令对卡号认证码进行认证,如果认证不成功表示该IC卡不是本系统的合法卡,执行步骤S410;否则计算IC卡存贮区域中数据扇区的操作密钥Key A和Key B,执行步骤S304。
步骤S404:判断IC卡制式是否为设置的制式;
具体的,判断IC卡制式是否为预先设置的Vmax1和Vmax2制式,即Vmax1保存在M1的数值块中,Vmax2保存在M1的数据块中,如果是则执行步骤S405,否则执行步骤S410。
步骤S405:从IC卡中读取Vmax2和增值认证码使用本地SAM卡的专用认证指令进行认证;
具体的,脱机增值读卡器使用对应操作密钥KeyA和Key B从IC卡中读取Vmax2和MAC,使用SAM卡的专用认证指令进行认证,如果认证失败表示IC卡被非法篡改,执行步骤S406,否则执行步骤S407。
步骤S406:记录黑名单信息对IC卡进行锁卡;
具体的,脱机读卡器记录该卡信息为黑名单卡信息,并对该卡进行锁卡操作,执行步骤S410。
步骤S407:判断Vmax1_Vmax2是否大于等于零;
具体的,脱机读卡器判断Vmax1_Vmax2是否大于等于欲减值金额,如果判断结果为是则执行步骤S408,否则执行步骤S410。
步骤S408:读卡器使用IC卡的减值指令对Vmax1进行减值操作;
具体的,脱机读卡器使用IC卡的减值指令对Vmax1进行减值操作,减去应欲减值金额,执行步骤S409
步骤S409:读卡器提示减值操作成功;
具体的,脱机读卡器按照系统要求生成交易记录数据,提示减值操作成功。
步骤S410:读卡器提示减值操作失败。
本发明实施例提供的一种IC卡,该IC卡中的存储单元中存储了设置的最大存储额度值和目标存储额度值,所述IC卡的实际存储值为最大存储额度值与目标存储额度值之差;在存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的存储控制位为执行单向的减值指令和读指令;在存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的增值认证码,所述增值认证码为消息认证码MAC。
具体的,以Mifare Classic系列及其兼容芯片的Mifare Classic 1K芯片为代表,以下简称M1,在M1卡中设置最大存储额度值Vmax1和目标存储额度值Vmax2,其初始值都设置为231-1,表示初始的储值额为零。由于M1IC卡的存贮区域划分为16个扇区,每个扇区划分为4个块,每个块具有16个字节存储空间,M1IC卡以块为存取单位,即读和写操作以一个块的16个字节为单位,每个扇区的前三个块用于存储数据,通常称为数据块,最后一个块存储本扇区的操作密钥和扇区的各个块的存取控制位数据,通常被称为控制块。所以将设置的Vmax1保存在M1的数值块中,Vmax2保存在M1的数据块中,用Vmax1与Vmax2的额度差值(即Vmax1_Vmax2)来表示IC卡的实际存储值。Vmax1和Vmax2都只允许执行单向的减值操作,通过Vmax1和Vmax2的组合操作实现储值额的增值和减值,Vmax2的减值操作通过联机系统计算后由读卡器写入IC卡完成,Vmax1的减值操作通过读卡器直接使用M1的数值块专用减值指令完成。由于控制块本身能够通过读/写操作存取,也能够通过设置对应的存取控制位数据禁止修改,为了使Vmax1只允许执行单向的减值操作,对Vmax1所在的数值块对应的存取控制位进行调整,将存取控制位设置为001,这样Vmax1所在的数值块只允许执行单向的减值指令和读指令,不允许执行增值指令和写指令。同时对Vmax1所在扇区控制块对应的存取控制位进行调整,将存取控制位设置为100,只允许改写每个扇区具有的操作密钥KeyA和Key B,不允许改写控制块,避免用户通过改写控制块的方式改变对Vmax1只允许执行单向的减值操作的限制。
相应的,图5还示出了本发明实施例中的IC卡系统,该系统主要为IC卡提供增值服务,包括:
联机读卡器51,用于在对IC卡进行增值操作前,判断所述IC卡的制式,判断所述IC卡的制式中是否设置有最大存储额度值和目标存储额度值,其中:所述IC卡的实际存储值为最大存储额度值与目标存储额度值之差,当判断所述IC卡中存在所述最大存储额度值和目标存储额度值时,联机系统通过联机读卡器对所述IC卡执行增值操作指令时,仅对所述IC卡中的目标存储额度值进行单向的减值指令操作;
联机系统52,用于对所述联机读卡器获得所述IC卡中的增值认证码进行增值操作指令的认证。
需要说明的是,该联机系统和联机读卡器还可以为旧的IC卡,即该IC不是存储了最大存储额度值和目标存储额度值的卡时,可以为该IC卡设置一个最大存储额度值和目标存储额度值,这样在该IC卡设置了最大存储额度值和目标存储额度值,就可以通过对目标存储额度值进行减值操作指令,那么就可以对该IC卡实现增值。该IC卡在进行下次脱机减值操作时,可以针对该设置的最大存储额度值进行减值操作。同样的,在为该IC卡存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的存储控制位为执行单向的减值指令和读指令;在为该IC卡存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的增值认证码,所述增值认证码为消息认证码MAC。
相应的,图6示出了本发明实施例中的联机读卡器,该联机读卡器包括:
判断单元61,用于在对IC卡进行增值操作前,判断所述IC卡的制式,判断所述IC卡的制式中是否设置有最大存储额度值和目标存储额度值,其中:所述IC卡的实际存储值为最大存储额度值与目标存储额度值之差;
减值操作单元62,用于当所述判断单元61判断所述IC卡中存在所述最大存储额度值和目标存储额度值时,联机读卡器对所述IC卡执行增值操作指令时,仅对所述IC卡中的目标存储额度值进行单向的减值指令操作。
相应的,由于保证整个操作的安全性,在判断IC的制式过程中,还需要对IC操作的安全性进行相关认证,该联机读卡器还包括:
第一获取单元63,用于获取所述IC卡中的唯一序列号;
安全认证单元64,用于根据所述第一获取单元63获取到的所述IC卡中的唯一序列号对所述IC卡进行安全认证,所述安全认证包括黑名单认证、卡号认证、SAM认证;
第二获取单元65,用于获取所述IC卡中的增值认证码;
MAC认证单元66,用于根据所述获取单元获取到的增值认证码通过在与联机读卡器相连的联机系统中进行增值操作指令的认证。
在联机读卡器中的判断单元61判断该IC不是需要进行增值类型的IC卡时,可以重新对IC内部进行设置,该联机读卡器还包括了设置单元67,用于当所述判断单元判断所述IC卡的制式不存在设置的最大存储额度值和目标存储额度值时,为所述IC卡设置最大存储额度值和目标存储额度值。
相应的,图7示出了本发明实施例中的脱机读卡器,该脱机读卡器包括:
判断单元71,用于在对IC卡进行减值操作前,判断所述IC卡的制式,判断所述IC卡的制式中是否设置有最大存储额度值和目标存储额度值,其中:所述IC卡的实际存储值为最大存储额度值与目标存储额度值之差;
减值操作单元72,用于当所述判断单元71判断所述IC卡中存在所述最大存储额度值和目标存储额度值时,脱机读卡器对所述IC卡执行减值操作指令时,仅对所述IC卡中的最大存储额度值进行单向的减值指令操作。需要说明的是,在减值操作判断进行操作前,这里的脱机读卡器还需要判断IC卡的实际存储值是否满足所述单向的减值指令操作,如果所述IC卡的实际存储值满足所述单向的减值指令操作,则对所述IC卡中的最大存储额度值进行单向的减值指令操作。具体的应该满足实际存储值大于单向的减值指令操作所需减去的数值,即在对最大存储额度值进行减值指令后,其最大存储额度值与目标存储额度值之差仍然是正数值。
相应的,由于保证整个操作的安全性,在判断IC的制式过程中,还需要对IC操作的安全性进行相关认证,该脱机读卡器还包括:
获取单元73,用于获取所述IC卡中的唯一序列号;
安全认证单元74,用于根据所述第一获取单元73获取到的所述IC卡中的唯一序列号对所述IC卡进行安全认证,所述安全认证包括黑名单认证、卡号认证、SAM认证等等。
综上所述,通过本发明实施例所提供的方法,解决了在不需要换卡提高IC卡本身的安全级别时,只需要调整现有IC卡的关键数据存放方式和增加少量储存内容,即通过设置最大存储额度值Vmax1和目标存储额度值Vmax2,并对其所在数据块对应的存取控制位设置为执行单向的减值指令和读指令,免除也大量的换卡费用,同时只需将增值读卡器改造为联机读卡器,实现联机增值,其他设备和系统只需要进行软件升级,极大地降低了改造费用,减少了改造时间。
以上所揭露的仅为本发明一种较佳实施例而已,当然不能以此来限定本发明之权利范围,因此依本发明权利要求所作的等同变化,仍属本发明所涵盖的范围。
Claims (16)
1.一种IC卡读写实现的方法,其特征在于,所述方法包括:
在对IC卡进行增值或者减值操作前,判断所述IC卡的制式,判断所述IC卡的制式中是否设置有最大存储额度值和目标存储额度值,其中:所述IC卡的实际存储值为最大存储额度值与目标存储额度值之差;
若存在所述最大存储额度值和目标存储额度值时,脱机读卡器对所述IC卡执行减值操作指令时,仅对所述IC卡中的最大存储额度值进行单向的减值指令操作;或者联机系统通过联机读卡器对所述IC卡执行增值操作指令时,仅对所述IC卡中的目标存储额度值进行单向的减值指令操作。
2.如权利要求1所述的方法,其特征在于,所述方法之前还包括:
在所述IC卡中设置最大存储额度值和目标存储额度值,其中:在设置所述IC卡最大存储额度值时,设置所述最大存储额度值所对应的存储控制位为执行单向的减值指令和读指令;在设置所述IC卡最大存储额度值时,设置所述最大存储额度值所对应的增值认证码,所述增值认证码为消息认证码MAC。
3.如权利要求2所述的方法,其特征在于,所述MAC为采用对称加密算法和使用特定密钥对所述IC卡的唯一序列号和所述目标存储额度值组成的数据进行加密生成的。
4.如权利要求3所述的方法,其特征在于,所述联机读卡器对所述IC卡执行增值操作指令时,仅对所述IC卡中的目标存储额度值进行单向的减值指令操作之前还包括:
所述联机读卡器获得所述IC卡中的增值认证码,通过获得的增值认证码在与联机读卡器相连的联机系统中进行增值操作指令的认证。
5.如权利要求1所述的方法,其特征在于,所述脱机读卡器对所述IC卡执行减值操作指令时,仅对所述IC卡中的最大存储额度值进行单向的减值指令操作包括:
判断所述IC卡的实际存储值是否满足所述单向的减值指令操作,如果所述IC卡的实际存储值满足所述单向的减值指令操作,则对所述IC卡中的最大存储额度值进行单向的减值指令操作。
6.如权利要求1至5所述的方法,其特征在于,所述联机系统行增值操作指令时或者脱机读卡器进行减值操作指令时还包括:
获得所述IC卡的唯一序列号对所述IC卡进行安全认证,所述安全认证包括黑名单认证、卡号码认证。
7.如权利要求6所述的方法,其特征在于,所述方法还包括:
在对IC卡进行增值操作前,判断所述IC卡的制式不存在设置的最大存储额度值和目标存储额度值时,联机系统通过联机读卡器为所述IC卡设置最大存储额度值和目标存储额度值;在设置完所述设置之后,联机系统通过联机读卡器对所述IC卡执行增值操作指令。
8.如权利要求6所述的方法,其特征在于,所述方法还包括:
在对IC卡进行减值操作前,判断所述IC卡的制式不存在设置的最大存储额度值和目标存储额度值时,脱机读卡器不对所述IC进行减值操作指令。
9.一种联机读卡器,其特征在于,包括:
判断单元,用于在对IC卡进行增值操作前,判断所述IC卡的制式,判断所述IC卡的制式中是否设置有最大存储额度值和目标存储额度值,其中:所述IC卡的实际存储值为最大存储额度值与目标存储额度值之差;
减值操作单元,用于当所述判断单元判断所述IC卡中存在所述最大存储额度值和目标存储额度值时,联机系统通过联机读卡器对所述IC卡执行增值操作指令时,仅对所述IC卡中的目标存储额度值进行单向的减值指令操作。
10.如权利要求9所述的联机读卡器,其特征在于,所述联机读卡器还包括:
第一获取单元,用于获取所述IC卡中的唯一序列号;
安全认证单元,用于根据所述第一获取单元获取到的所述IC卡中的唯一序列号对所述IC卡进行安全认证,所述安全认证包括黑名单认证、卡号认证。
11.如权利要求9所述的联机读卡器,其特征在于,所述联机读卡器还包括:
第二获取单元,用于获取所述IC卡中的增值认证码;
MAC认证单元,用于根据所述获取单元获取到的增值认证码通过在与联机读卡器相连的联机系统中进行增值操作指令的认证。
12.如权利要求9所述的联机读卡器,其特征在于,所述联机读卡器还包括:
设置单元,用于当所述判断单元判断所述IC卡的制式不存在设置的最大存储额度值和目标存储额度值时,为所述IC卡设置最大存储额度值和目标存储额度值。
13.一种脱机读卡器,其特征在于,包括:
判断单元,用于在对IC卡进行减值操作前,判断所述IC卡的制式,判断所述IC卡的制式中是否设置有最大存储额度值和目标存储额度值,其中:所述IC卡的实际存储值为最大存储额度值与目标存储额度值之差;
减值操作单元,用于当所述判断单元判断所述IC卡中存在所述最大存储额度值和目标存储额度值时,对所述IC卡执行减值操作指令时,仅对所述IC卡中的最大存储额度值进行单向的减值指令操作。
14.如权利要求13所述的脱机读卡器,其特征在于,所述减值操作单元包括:
获取单元,用于获取所述IC卡的唯一序列号;
安全认证单元,用于根据所述获取单元获取到的所述IC卡中的唯一序列号对所述IC卡进行安全认证,所述安全认证包括黑名单认证、卡号认证。
15.一种IC卡系统,其特征在于,包括:
联机读卡器,用于在对IC卡进行增值操作前,判断所述IC卡的制式,判断所述IC卡的制式中是否设置有最大存储额度值和目标存储额度值,其中:所述IC卡的实际存储值为最大存储额度值与目标存储额度值之差,当判断所述IC卡中存在所述最大存储额度值和目标存储额度值时,联机系统通过联机读卡器对所述IC卡执行增值操作指令时,仅对所述IC卡中的目标存储额度值进行单向的减值指令操作;
联机系统,用于对所述联机读卡器获得所述IC卡中的增值认证码进行增值操作指令的认证,并在认证通过之后,通过联机读卡器对IC卡执行增值操作指令。
16.一种IC卡,其特征在于,包括:
存储单元,用于存储设置有最大存储额度值和目标存储额度值,其中:所述IC卡的实际存储值为最大存储额度值与目标存储额度值之差;
在存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的存储控制位为执行单向的减值指令和读指令;在存储设置所述IC卡最大存储额度值时,还存储了设置所述最大存储额度值所对应的增值认证码,所述增值认证码为消息认证码MAC。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910142767 CN101901358B (zh) | 2009-05-25 | 2009-05-25 | 一种ic卡读写实现的方法、ic卡以及读卡器和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 200910142767 CN101901358B (zh) | 2009-05-25 | 2009-05-25 | 一种ic卡读写实现的方法、ic卡以及读卡器和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101901358A true CN101901358A (zh) | 2010-12-01 |
CN101901358B CN101901358B (zh) | 2013-06-26 |
Family
ID=43226881
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 200910142767 Expired - Fee Related CN101901358B (zh) | 2009-05-25 | 2009-05-25 | 一种ic卡读写实现的方法、ic卡以及读卡器和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101901358B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102299798A (zh) * | 2011-06-22 | 2011-12-28 | 中国电力科学研究院 | 一种智能卡的基于模式控制字方式的安全传输方法 |
CN103516666A (zh) * | 2012-06-20 | 2014-01-15 | 中国银联股份有限公司 | 安全性信息交互装置及方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1333509A (zh) * | 2000-07-07 | 2002-01-30 | 深圳市特发现代计算机有限公司 | 一种自助式ic卡充值方法及其装置 |
-
2009
- 2009-05-25 CN CN 200910142767 patent/CN101901358B/zh not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1333509A (zh) * | 2000-07-07 | 2002-01-30 | 深圳市特发现代计算机有限公司 | 一种自助式ic卡充值方法及其装置 |
Non-Patent Citations (3)
Title |
---|
PHILIPS: "Mifare-Standard Card IC MF1 IC S50 Functional Specification", 《INTEGRATED CIRCUITS》 * |
上海复旦微电子股份有限公司: "FM11RF32 32KBits Contactless IC Card Chip", 《复旦微电子》 * |
杨振野,赖强: "IC卡应用装置密码防破解的方法", 《现代计算机》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102299798A (zh) * | 2011-06-22 | 2011-12-28 | 中国电力科学研究院 | 一种智能卡的基于模式控制字方式的安全传输方法 |
CN102299798B (zh) * | 2011-06-22 | 2014-10-08 | 中国电力科学研究院 | 一种智能卡的基于模式控制字方式的安全传输方法 |
CN103516666A (zh) * | 2012-06-20 | 2014-01-15 | 中国银联股份有限公司 | 安全性信息交互装置及方法 |
CN103516666B (zh) * | 2012-06-20 | 2017-09-29 | 中国银联股份有限公司 | 安全性信息交互装置及方法 |
Also Published As
Publication number | Publication date |
---|---|
CN101901358B (zh) | 2013-06-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101345619B (zh) | 基于生物特征和移动密钥的电子数据保护方法及装置 | |
US20070186115A1 (en) | Dynamic Password Authentication System and Method thereof | |
CN110163598A (zh) | 移动离线支付方法及移动离线支付系统 | |
CN105939515B (zh) | 车载终端虚拟sim卡信息更新系统与方法 | |
CN101894235B (zh) | 一种智能卡安全会话系统 | |
CN109658099B (zh) | 一种基于区块链的账本记账方法 | |
CN105610871B (zh) | 一种基于半在线密钥的车辆出入控制系统和控制方法 | |
CN101826219A (zh) | 一种轨道交通票卡处理智能系统及数据加密审计方法 | |
CN103502991B (zh) | 设备配置和编程数据的确定 | |
CN105139197A (zh) | 一种业务处理方法以及车载单元 | |
CN103258148A (zh) | 控制系统、控制装置和程序执行控制方法 | |
CN101901358B (zh) | 一种ic卡读写实现的方法、ic卡以及读卡器和系统 | |
CN1988437A (zh) | 可信计算平台密钥授权数据管理系统及方法 | |
CN103905192B (zh) | 一种加密鉴权方法、装置以及系统 | |
CN103260157A (zh) | 面向卫星通信业务的用户管理系统及其使用方法 | |
KR20080017592A (ko) | 전자화폐를 이용한 게임장 관리 시스템 및 그 제공방법 | |
CN110445749B (zh) | 一种产品生产授权的方法 | |
CN109493060B (zh) | 一种基于区块链的账本记账系统 | |
KR101902990B1 (ko) | 보안모듈을 이용한 교통카드 발급 및 운용 시스템 및 방법 | |
CN108121903B (zh) | 一种基于逻辑加密卡的密码管理方法及数据加密表示方法 | |
KR101886807B1 (ko) | 최소 잔액을 활용한 hce 모바일 선불 교통 카드 결제 시스템 및 결제 방법 | |
CN102982614A (zh) | 更新充值卡内信息的方法及装置 | |
CN103078731A (zh) | 彩票数据的加密方法及系统 | |
CN102186151A (zh) | 在线处理涉税业务的方法与系统、中介传输装置 | |
JP6207590B2 (ja) | ターミナルを介して通信するデバイスのローカルサービスへのアクセスの方法 |
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 | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20130626 Termination date: 20150525 |
|
EXPY | Termination of patent right or utility model |