CN112241633A - 一种非接触式智能卡的双向认证实现方法及系统 - Google Patents
一种非接触式智能卡的双向认证实现方法及系统 Download PDFInfo
- Publication number
- CN112241633A CN112241633A CN201910645766.8A CN201910645766A CN112241633A CN 112241633 A CN112241633 A CN 112241633A CN 201910645766 A CN201910645766 A CN 201910645766A CN 112241633 A CN112241633 A CN 112241633A
- Authority
- CN
- China
- Prior art keywords
- key
- card
- smart card
- authentication
- authentication key
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K7/00—Methods or arrangements for sensing record carriers, e.g. for reading patterns
- G06K7/10—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
- G06K7/10009—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves
- G06K7/10257—Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation sensing by radiation using wavelengths larger than 0.1 mm, e.g. radio-waves or microwaves arrangements for protecting the interrogation against piracy attacks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06K—GRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
- G06K19/00—Record carriers for use with machines and with at least a part designed to carry digital markings
- G06K19/06—Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
- G06K19/067—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
- G06K19/07—Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
- G06K19/073—Special arrangements for circuits, e.g. for protecting identification code in memory
- G06K19/07309—Means for preventing undesired reading or writing from or onto record carriers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Health & Medical Sciences (AREA)
- Toxicology (AREA)
- Microelectronics & Electronic Packaging (AREA)
- Electromagnetism (AREA)
- General Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开一种非接触式智能卡的双向认证实现方法,在内置有第一密钥算法库的读卡器侧,读取智能卡中存储的智能卡标识,基于智能卡标识,通过第一密钥算法库生成当前第一内部认证密钥,根据第一内部认证密钥和智能卡中预先存储的第二内部认证密钥进行内部认证,和/或,基于智能卡标识,通过第一密钥算法库生成当前第一外部认证密钥,根据第一外部认证密钥和智能卡中预先存储的第二外部认证密钥进行外部认证;所述第一密钥算法库至少包括,用于生成所述第一内部认证密钥和第一外部认证密钥的密钥算法。在不更换智能卡、读卡器、发卡器的硬件设备的基础上,达到了与具有终端安全控制模块的读卡器、以及接触式智能卡同等安全性的效果。
Description
技术领域
本发明涉及智能卡领域,特别地,涉及一种非接触式智能卡的双向认证实现方法及系统。
背景技术
非接触式CPU卡作为智能卡中的一种,卡内的集成电路中带有微处理器CPU、存储单元(包括随机存储器RAM、程序存储器ROM(FLASH)、用户数据存储器EEPROM)、以及芯片操作系统COS。装有COS的CPU卡相当于一台微型计算机,不仅具有数据存储功能,同时具有命令处理和数据安全保护等功能,得到广泛的应用。
随着智能手机的普及,以及NFC技术的推广,基于传统的M1和CPU的智能卡存在着安全隐患。通过只读卡片的物理卡号制定的权限系统,可以被手机NFC技术简单复制卡号,最终简单地被破解。
由于非接触式智能卡并不能百分百的防复制,更换安全性更高的智能卡、以及对智能卡进行双向认证(包括读卡器与智能卡之间的外部认证、智能卡的内部认证)成为一种防复制的有效手段。但出于成本、既有硬件支持等考虑,无论是更换安全性更高的智能卡,还是对智能卡进行双向认证,都将增加硬件的投入成本;例如,双向认证需要在读卡器中增加终端安全控制模块,并且,该终端安全控制模块仅支持接触式智能卡,并不支持非接触式智能卡,这将增加旧系统改造成本。
发明内容
本发明提供了一种非接触式智能卡的双向认证实现方法,在不增加额外硬件的情形下提高智能卡的安全性。
本发明提供的一种非接触式智能卡的双向认证实现方法,该方法包括,在内置有第一密钥算法库的读卡器侧,
读取智能卡中存储的智能卡标识,
基于智能卡标识,通过第一密钥算法库生成当前第一内部认证密钥,根据第一内部认证密钥和智能卡中预先存储的第二内部认证密钥进行内部认证,和/或,
基于智能卡标识,通过第一密钥算法库生成当前第一外部认证密钥,根据第一外部认证密钥和智能卡中预先存储的第二外部认证密钥进行外部认证;
其中,智能卡存储的第二内部认证密钥、和第二外部认证密钥被预先写入;
所述第一密钥算法库至少包括,用于生成所述第一内部认证密钥和第一外部认证密钥的密钥算法。
较佳地,所述智能卡为有效卡,所述第二内部认证密钥、和第二外部认证密钥分别通过发卡器中内置的第二密钥算法库生成;其中,发卡器中内置的第二密钥算法库中的密钥算法至少与读卡器中内置的第一密钥算法库中所述密钥算法相同;
所述智能卡存储有用于内部认证和外部认证的第三密钥算法库,其中,所述第三密钥算法库至少包括,与发卡器中内置的第二密钥算法库中的密钥算法相同加密算法、以及与该加密算法相对应的解密算法。
较佳地,所述第一密钥算法库还包括调用密钥算法的密钥算法进程,所述第一密钥算法库中的密钥算法具有随机数产生功能;所述第三密钥算法库还包括调用加密算法的密钥算法进程,
所述根据第一内部认证密钥和智能卡中预先存储的第二内部认证密钥进行内部认证包括,
读卡器中的微处理器MCU向所述第一密钥算法库中的密钥算法进程获取第一随机数,并将该第一随机数发送给智能卡,使得智能卡根据第二内部认证密钥通过第三密钥算法库中的密钥算法进程加密该第一随机数;
读卡器中的微处理器MCU指示所述第一密钥算法库中密钥算法进程加密所述第一随机数,使得该密钥算法进程根据第一内部认证密钥加密该第一随机数;
读卡器中的微处理器MCU将所述第一密钥算法库中密钥算法进程返回的第一加密结果与智能卡返回的第二加密结果进行比较;如果相同,则认证成功,如果不同,则认证失败。
较佳地,所述第三密钥算法库中的加密算法具有随机数产生功能;述第三密钥算法库还包括调用解密算法的解密算法进程,
所述根据第一外部认证密钥和智能卡中预先存储的第二外部认证密钥进行外部认证包括,
读卡器中的微处理器MCU向智能卡获取第二随机数,使得智能卡通过所述第三密钥算法库中的加密算法生成所述第二随机数;
读卡器中的微处理器MCU将智能卡中所述第三密钥算法库中的加密算法进程返回的第二随机数发送给所述第一密钥算法库中的密钥算法进程,使得该密钥算法进程根据第一外部认证密钥对第二随机数进行加密,得到第三加密结果,并将第三加密结果发送给智能卡,使得智能卡根据第二外部认证密钥通过第三密钥算法库中的解密算法进程对第三加密结果解密,得到解密结果;
读卡器中的微处理器MCU将来自智能卡的解密结果与第二随机数进行比较,如果相同,则认证成功,如果不同,则认证失败。
较佳地,所述密钥算法库还包括密钥相关的配置信息,该密钥相关的配置信息包括:密钥文件标识号、密钥索引号、读卡器中微处理器MCU的物理序列号之一或任意组合;
所述智能卡标识包括智能卡物理卡号;
所述基于智能卡标识,通过第一密钥算法库生成当前第一内部认证密钥包括,
第一密钥算法库中的密钥算法进程根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第一密钥算法,生成当前第一内部认证密钥;
所述基于智能卡标识,通过第一密钥算法库生成当前第二内部认证密钥包括,
第一密钥算法库中的密钥算法进程根据智能卡的物理卡号和所述与密钥相关的配置信息中的任一信息,通过第二密钥算法,生成当前第一外部认证密钥;
所述认证成功后进一步包括,读卡器中的MCU将读取的智能卡卡号输出至权限控制设备。
较佳地,所述密钥文件标识号包括用于生成当前第一内部认证密钥的内部认证密钥文件标识号、和用于生成当前第一外部认证密钥的外部认证密钥文件标识号;
所述密钥索引号包括用于生成当前第一内部认证密钥的内部认证密钥索引号、和用于生成当前第一外部认证密钥的外部认证密钥索引号。
较佳地,所述智能卡存储的第二内部认证密钥、和第二外部认证密钥分别通过发卡器中内置的第二密钥算法库生成包括,
在发卡器侧,
获取智能卡属性信息,根据属性信息中的默认密钥进行认证,获得智能卡信息写入权限;
向智能卡指示创建用于保存第二内部认证密钥和第二外部认证密钥的密钥文件;
接收来自智能卡返回的密钥文件创建成功消息,调用所述第二密钥算法库中的密钥算法进程,以根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第一密钥算法,创建所述第二内部认证密钥,并将该密钥写入智能卡中,
接收来自智能卡返回的第二内部认证密钥创建成功消息,调用所述第二密钥算法库中的密钥算法进程,以根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第二密钥算法,创建所述第二外部认证密钥,并将该密钥写入智能卡中。
较佳地,所述智能卡存储的第二内部认证密钥、和第二外部认证密钥分别通过发卡器中内置的第二密钥算法库生成进一步包括,
接收来自智能卡返回的第二外部认证密钥创建成功消息,向智能卡写入外部认证次数阈值。
本发明还提供一种非接触式智能卡的双向认证系统,包括发卡器和读卡器,其特征在于,所述读卡器包括存储器和微处理器MCU,所述存储器用于存储器用于存储指令,该指令在由所MCU执行时使得MCU执行如下步骤:
读取智能卡中存储的智能卡标识,
基于智能卡标识,通过第一密钥算法库生成当前第一内部认证密钥,根据第一内部认证密钥和智能卡中预先存储的第二内部认证密钥进行内部认证,和/或,
基于智能卡标识,通过第一密钥算法库生成当前第一外部认证密钥,根据第一外部认证密钥和智能卡中预先存储的第二外部认证密钥进行外部认证;
其中,智能卡存储的第二内部认证密钥、和第二外部认证密钥被预先写入;
所述第一密钥算法库至少包括用于生成所述第一内部认证密钥和第一外部认证密钥的密钥算法。
较佳地,所述发卡器包括存储器和微处理器MCU,所述存储器用于存储器用于存储指令,该指令在由所MCU执行时使得MCU执行如下步骤:
获取智能卡属性信息,根据属性信息中的默认密钥进行认证,获得智能卡信息写入权限;
向智能卡指示创建用于保存第二内部认证密钥和第二外部认证密钥的密钥文件;
接收来自智能卡返回的密钥文件创建成功消息,调用所述第二密钥算法库中的密钥算法进程,以根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第一密钥算法,创建所述第二内部认证密钥,并将该密钥写入智能卡中,
接收来自智能卡返回的第二内部认证密钥创建成功消息,调用所述第二密钥算法库中的密钥算法进程,以根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第二密钥算法,创建所述第二外部认证密钥,并将该密钥写入智能卡中;
接收来自智能卡返回的第二外部认证密钥创建成功消息,向智能卡写入外部认证次数阈值。
较佳地,所述智能卡包括存储器和微处理器MCU,所述存储器用于存储器用于存储指令,该指令在由所MCU执行时使得MCU执行如下步骤:
在发卡器向智能卡写入密钥过程中:
基于来自发卡器的获取智能卡属性信息的命令,返回属性信息;
根据来自发卡器的默认密钥,进行认证,将智能卡信息写入权限反馈给发卡器,
响应于发卡器创建用于保存第二内部认证密钥和第二外部认证密钥的密钥文件的指示,创建所述密钥文件,并向发卡器反馈创建成功;
响应于发卡器的写入命令,分别将来自发卡器的第二内部认证密钥和第二外部认证密钥保存至所述密钥文件中,将外部认证次数阈值、和所述第三密钥算法库保存至智能卡中的存储器中;
在被读卡器读取时:
根据来自读卡器的第一内部认证密钥、和智能卡中预先存储的第二内部认证密钥进行内部认证,和/或,根据第一外部认证密钥和智能卡中预先存储的第二外部认证密钥进行外部认证。
本发明通过在读卡器中内置的第一密钥算法库,结合非接触式智能卡写入的内部认证密钥和外部认证密钥,对非接触式智能卡提供了双向认证,在不增加额外硬件的情形下,通过升级读卡器软件,提高了非接触智能卡的安全性,对既有系统进行了兼容,改造成本低;通过升级发卡器软件,从而无需向智能卡芯片FLASH区域灌装密钥,利于厂线生产,提高了智能卡芯片的生成成本和生产周期,兼容性强。本发明的非接触式智能卡的双向认证实现方法,在不更换智能卡、读卡器、发卡器的硬件设备的基础上,达到了与具有终端安全控制模块的读卡器、以及接触式智能卡同等安全性的效果,并且有效地防止智能卡的复制。
附图说明
图1是密钥生成过程的一种示意图。
图2为对智能卡进行密钥灌装的一种流程示意图。
图3为写有内部认证密钥和外部认证密钥的智能卡被内置有第一密钥算法库的读卡器读取时进行双向认证的一种流程示意图。
图4为读卡器中的微控制单元MCU与第一密钥算法库中的密钥算法进程、智能卡之间进行内部认证的一种交互流程示意图。
图5为读卡器中的微控制单元MCU与密钥算法库中的密钥算法进程、智能卡之间进行外部认证的一种交互流程示意图。
图6为本发明实施例的认证系统的一种示意图。
图7为本发明实施例的认证系统的一种应用示意图。
具体实施方式
为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。
为了提高非接触式智能卡本身的安全性,防止智能卡的复制,可以对智能卡进行密钥灌装,即,通过在智能卡写入密钥以对智能卡进行升级。
为方便理解本发明实施例,以下说明加解密本身的原理。假设:
使用加密算法Encrypt(Key,P):密钥为Key,输入明文信息为P,结果为加密的密文信息C;
同样,假设解密算法Decrypt(Key,C):密钥为Key,输入密文信息为C,结果为解密的明文P;
当使用对称算法时,加密密钥和解密密钥相同,则:
Decrypt(Key,Encrypt(Key,P))=P;
参见图1所示,图1为密钥生成过程的一种示意图:
步骤101,设定初始密钥即保密密钥Key;为防止初始密钥即保密密钥Key被个人泄漏而导致面临风险,初始密钥由至少两个以上片段拼接而成,所述至少两个以上片段通常来源于不同的输入。
步骤102,用初始密钥Key通过第一密钥算法对智能卡的物理序列号UID进行加密,以便进行密钥的一级分散,得到第一密钥,即:Encrypt1(Key,UID)=Key1;
步骤103,用初始密钥Key或第一密钥Key1通过第二密钥算法对密钥文件标识号FID、密钥索引号INDEX、读卡器中微处理器MCU的物理序列号MCU UID之一或任意组合进行第二次加密,以便进行密钥的二级分散,得到第二密钥,例如:Encrypt2(Key,INDEX)=Key2,或者,Encrypt2(Key1,INDEX)=Key2,其中,采用第一密钥来进行密钥的二级分散将有利于提高安全性。
所述密钥文件是用于保存密钥的文件,受访问权限控制可实现读保护,该文件对应的标识号为密钥文件标识号FID,较佳地,可以分别包括第一密钥文件和第二密钥文件,所述密钥索引号INDEX可以包括第一密钥索引号和第二密钥索引号,分别对应后续双向认证过程中的内部密钥索引号和外部密钥索引号。较佳地,上述第二密钥还可以用初始密钥Key或第一密钥Key1通过第二密钥算法分别对第一密钥文件标识号和第二密钥文件标识号、或者第一密钥索引号和第二密钥索引号进行所述第二次加密而获得。
步骤104,输出所述第一密钥和第二密钥,这两个密钥将用于发卡器向智能卡写入密钥流程、以及用于读卡器的读卡流程中;
较佳地,当第二密钥包括两个密钥时,可以将这两个密钥用于发卡器向智能卡写入密钥流程、以及用于读卡器的读卡流程中。
上述第一密钥算法和第二密钥算法可以相同,也可以不同,这些密钥算法、调用密钥算法的各个进程、以及与密钥相关的配置信息形成了密钥算法库,其中,配置信息包括了其中密钥文件标识号FID、密钥索引号INDEX、读卡器中微处理器MCU的物理序列号MCU UID之一或任意组合;密钥算法还可以包括产生随机数的功能、基于三重数据加密算法(TripleDES)等特征。
为了区分不同设备上的密钥算法库,在以下说明中,将内置于读卡器中的密钥算法库成为第一密钥算法库,将内置于发卡器中的密钥算法库称为第二密钥算法库,将内置于智能卡中的密钥算法库称为第三密钥算法库。
密钥分散的目的是使智能卡之间密钥不一致、且同一智能卡内内部认证密钥与外部认证密钥不一致,这样,即使一张智能卡被破解,也不会使其他智能卡处于安全隐患之中。
参见图2所示,图2为对智能卡进行密钥灌装的一种流程示意图。内置有第二密钥算法库的发卡器执行如下步骤:
步骤201,激活卡片:通过发卡器内部的射频模块进行巡卡检测,选定在发卡器射频区域内的唯一智能卡,以防止发生多个智能卡写入密钥的冲突;
当智能卡被激活后,向发卡器返回卡类型以及物理卡号UID;
步骤202,发卡器根据卡类型、物理卡号,发送复位命令,对智能卡进行复位,即进行智能卡有关的初始化;
初始化结果后,向发卡器返回卡类型以及物理卡号UID;
步骤203,发卡器将物理卡号对应的默认密钥发给智能卡,对智能卡进行外部认证,当认证成功时,获取增删改查操作的权限,接收来自智能卡的认证成功反馈。
在该步骤中,默认密钥为智能卡出厂时所设置的密钥,是智能卡自身属性参数之一,通过该密钥可为智能卡提供不同权限操作的控制,例如,获取智能卡中存储的第三密钥算法库,有些智能卡只限于查询操作。
步骤204,发卡器接收到所述认证成功的反馈后,向智能卡发送创建密钥文件命令;该密钥文件用于保存后续写入智能卡中的内部认证密钥、外部认证密钥的文件,该密钥文件的标识号可作为明文信息之一用于加密算法中。
智能卡创建密钥文件成功后,向发卡器设备反馈创建成功,该反馈消息可以携带有密钥文件的标识号。
步骤205,发卡器接收到所述创建成功的反馈后,通过内置的第二密钥算法库中密钥算法进程计算出内部认证密钥,并向智能卡发送写入内部认证密钥命令,以使得内部认证密钥被写入智能卡中,该内部认证密钥保存在步骤204创建的密钥文件中;
内部认证密钥写入成功后,智能卡向发卡器反馈写入成功;
步骤206,发卡器接收到内部认证密钥写入成功的反馈后,通过内置的第二密钥算法库中的密钥算法进程计算出外部认证密钥,并向智能卡发送写入外部认证密钥命令,以使得外部认证密钥被写入智能卡中,该外部认证密钥保存在步骤204创建的密钥文件中;
外部认证密钥写入成功后,智能卡向发卡器反馈写入成功。
所述保存内部认证密钥的密钥文件、保存外部认证密钥的密钥文件可以是同一个密钥文件,该密钥文件对应一个文件标识号;也可以是不同的密钥文件,分别对应不同的文件标识号。
步骤207,写入外部认证次数阈值,以使得当外部认证次数达到所述阈值时,智能卡被锁卡,以防止暴力解卡的发生。
通过上述步骤201-206,完成内部认证密钥和外部认证密钥的灌装,这样,智能卡被写入了内部认证密钥、和外部认证密钥,并在智能卡中存储了用于进行双向认证的第三密钥算法库。在上述交互步骤中,任意一步出错都从步骤201开始重新依次执行。
上述发卡器中内置的第二密钥算法库可以从智能卡本身所集成的第三密钥算法库获得,所述第二密钥算法库中的密钥算法进程可以不具有随机数生成功能,与密钥相关的配置信息取决于密钥算法进程生成所述内部认证密钥、和外部认证密钥的需要。
参见图3所示,图3为写有内部认证密钥和外部认证密钥的智能卡被内置有第一密钥算法库的读卡器读取时进行双向认证的一种流程示意图。当读卡器通过其内部的射频模块检测到射频区域内的智能卡,读卡器获取智能卡的物理卡号;调用第一密钥算法库依次计算出用于内部认证、外部认证的密钥;基于密钥分别进行内部认证和外部认证;当内部认证和外部认证都成功后,将该智能卡的物理卡号发送给权限控制模块,以进行相应的权限控制,例如,对于用于门禁控制的智能卡,读卡器对智能卡认证通过后,将智能卡的物理卡号发给门禁控制系统中的门禁主机,门禁主机根据物理卡号进行权限的判断。
参见图4所示,图4为读卡器中的微控制单元MCU与第一密钥算法库中的密钥算法进程、智能卡之间进行内部认证的一种交互流程示意图。图中,为了示出交互过程,将内置于读卡器中的密钥算法进程独立地示出。在本实施例中,密钥算法进程具有随机数生成功能。
步骤401:读卡器的微控制单元MCU向密钥算法进程获取随机数:由于第一密钥算法库中的密钥算法进程具有产生随机数的功能,读卡器中MCU向密钥算法进程获取随机数;
步骤402:密钥算法进程给读卡器中的MCU返回第一随机数rand1,
步骤403:读卡器发送命令给密钥算法进程以加密第一随机数,具体包括,
密钥算法进程用该智能卡的物理卡号、和内部认证密钥索引号或密钥文件FID或MCU UID生成当前内部认证密钥值,并用该当前密钥值加密步骤402生成的第一随机数rand1,可以表示为:EncryptR(RKey1,rand1),其中,RKey1为当前内部认证密钥值,EncryptR为读卡器内置的密钥算法;
步骤404:密钥算法进程返回加密后的当前数据给读卡器中的MCU;
步骤405:读卡器中的MCU将获取的第一随机数rand1发给智能卡;
智能卡通过智能卡存储的第三密钥算法库中的密钥算法用写入的内部认证密钥对第一随机数加密,该过程可以表示为:EncryptC(CKey1,rand1),其中,CKey1为智能卡中被写入的内部认证密钥;EncryptC为智能卡存储的第三密钥算法库中的密钥算法;
步骤406:智能卡向读卡器中的MCU返回加密结果;
步骤407:读卡器中的MCU对步骤404返回的加密当前数据与智能卡返回的加密结果作比较,即,比较EncryptR(RKey1,rand1)和EncryptC(CKey1,rand1),如果两者相同,则认证成功,否则认证失败。
从上述的内部认证过程可见,当智能卡为有效卡时,由于读卡器中内置的第一密钥算法库中的密钥算法与智能卡中的第三密钥算法库中的密钥算法相同,即,EncryptR与EncryptC相同,故而,由读卡器所生成的RKey1与智能卡存储的内部认证密钥CKey1相同,因此,步骤403对第一随机数的加密结果EncryptR(RKey1,rand1)必然与智能卡对第一随机数的加密结果EncryptC(CKey1,rand1)相同。
参见图5所示,图5为读卡器中的微控制单元MCU与密钥算法库中的密钥算法进程、智能卡之间进行外部认证的一种交互流程示意图。
步骤501:读卡器中的微控制单元MCU向智能卡中所存储的第三密钥算法库中的密钥算法进程获取第二随机数rand2;其中,第三密钥算法库中的密钥算法进程具有随机数生成功能;
步骤502:智能卡返回第二随机数rand2给读卡器中的MCU;
步骤503:读卡器中的MCU发送加密随机数命令给读卡器内置的第一密钥算法库中的密钥算法进程,
第一密钥算法库中的密钥算法进程用智能卡的卡号、和外部认证密钥索引号或密钥文件标识号FID或MCU UID生成当前外部认证密钥值R Key2,并用该当前密钥值加密智能卡返回的第二随机数rand2,可以表示为:EncryptR(RKey2,rand2),其中,RKey2为当前外部认证密钥值,EncryptR为读卡器内置的密钥算法。
步骤504:读卡器内置的第一密钥算法库中的密钥算法进程返回加密后的数据给读卡器中的MCU,
步骤505:读卡器中的MCU获取到加密数据后,发送解密命令给智能卡,
智能卡通过智能卡中所存储的第三密钥算法中的解密算法进程用被写入的外部认证密钥值对所述加密数据进行解密,可以表示为:Decrypt(CKey2,EncryptR(RKey2,rand2)),其中,CKey2为智能卡中被写入的外部认证密钥值。
步骤506:智能卡将解密的结果返回给读卡器中的MCU,
步骤507,读卡器将解密结果与步骤502中的第二随机数rand2进行比较,如果两者相同,则认证成功,否则认证失败。
从上述的外部认证过程可见,当智能卡为有效卡时,由于读卡器中内置的第一密钥算法库中的加密算法与智能卡的第三密钥算法库中的加密密钥算法相同,故而,由读卡器生成的RKey2与智能卡存储的外部认证密钥CKey2相同;又由于读卡器中内置的第一密钥算法库中的加密算法与第三密钥算法库中的解密算法相对应,因此,步骤503对第二随机数的加密结果EncryptR(RKey2,rand2)必然与智能卡对第二随机数的解密结果Decrypt(CKey2,EncryptR(RKey2,rand2))相同。
本实施例中,在外部认证流程之前,增加的内部认证能够有效识别出智能卡本身的真伪,对于假冒的智能卡能够提前结束认证过程而避免进入后续外部认证流程,这样,当刷卡行为的差异性等因素导致卡片在射频区域停留时间过短而致使整个认证流程失败时,发生卡片锁死将仅仅归咎于外部认证失败而导致,一方面降低了卡片锁死的概率,另一方面有效地制止了暴力获取密钥。
参见图6所示,图6为本发明实施例的认证系统的一种示意图。图中,PC机用于安装相应的客户端,例如,用于发卡的客户端实现将发卡器的业务逻辑写入发卡器中,用于读卡的客户端实现将读卡器的业务逻辑写入读卡器中。该认证系统包括发卡器和读卡器,所述读卡器包括存储器和微处理器MCU,所述存储器用于存储器用于存储指令,该指令在由所MCU执行时使得MCU执行如下步骤:
读取智能卡中存储的智能卡标识,
基于智能卡标识,通过第一密钥算法库生成当前第一内部认证密钥,根据第一内部认证密钥和智能卡中预先存储的第二内部认证密钥进行内部认证,和/或,
基于智能卡标识,通过第一密钥算法库生成当前第一外部认证密钥,根据第一外部认证密钥和智能卡中预先存储的第二外部认证密钥进行外部认证;
其中,智能卡存储的第二内部认证密钥、和第二外部认证密钥被预先写入;
所述第一密钥算法库至少包括用于生成所述第一内部认证密钥和第一外部认证密钥的密钥算法。
所述发卡器包括存储器和微处理器MCU,所述存储器用于存储器用于存储指令,该指令在由所MCU执行时使得MCU执行如下步骤:
获取智能卡属性信息,根据属性信息中的默认密钥进行认证,获得智能卡信息写入权限;
向智能卡指示创建用于保存第二内部认证密钥和第二外部认证密钥的密钥文件;
接收来自智能卡返回的密钥文件创建成功消息,调用所述第二密钥算法库中的密钥算法进程,以根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第一密钥算法,创建所述第二内部认证密钥,并将该密钥写入智能卡中,
接收来自智能卡返回的第二内部认证密钥创建成功消息,调用所述第二密钥算法库中的密钥算法进程,以根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第二密钥算法,创建所述第二外部认证密钥,并将该密钥写入智能卡中;
接收来自智能卡返回的第二外部认证密钥创建成功消息,向智能卡写入外部认证次数阈值。
所述智能卡包括存储器和微处理器MCU,所述存储器用于存储器用于存储指令,该指令在由所MCU执行时使得MCU执行如下步骤:
在发卡器向智能卡写入密钥过程中:
基于来自发卡器的获取智能卡属性信息的命令,返回属性信息;
根据来自发卡器的默认密钥,进行认证,将智能卡信息写入权限反馈给发卡器,
响应于发卡器创建用于保存第二内部认证密钥和第二外部认证密钥的密钥文件的指示,创建所述密钥文件,并向发卡器反馈创建成功;
响应于发卡器的写入命令,分别将来自发卡器的第二内部认证密钥和第二外部认证密钥保存至所述密钥文件中,将外部认证次数阈值、和所述第三密钥算法库保存至智能卡中的存储器中;
在被读卡器读取时:
根据来自读卡器的第一内部认证密钥、和智能卡中预先存储的第二内部认证密钥进行内部认证,和/或,根据第一外部认证密钥和智能卡中预先存储的第二外部认证密钥进行外部认证。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
参见图7所示,图7为本发明实施例的认证系统的一种应用示意图。当智能卡片在读卡器上刷卡时,读卡器通过对智能卡的双向认证成功后,将智能卡的UID上传给门禁控制器,门禁控制器判断该卡号UID是否具有开门权限,有权限则执行开门动作,无权限则反馈给读卡器,读卡器蜂鸣和闪烁LED提示用户,同时门禁控制器将事件上传给PC客户端软件。
对于装置/网络侧设备/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
Claims (11)
1.一种非接触式智能卡的双向认证实现方法,其特征在于,该方法包括,在内置有第一密钥算法库的读卡器侧,
读取智能卡中存储的智能卡标识,
基于智能卡标识,通过第一密钥算法库生成当前第一内部认证密钥,根据第一内部认证密钥和智能卡中预先存储的第二内部认证密钥进行内部认证,和/或,
基于智能卡标识,通过第一密钥算法库生成当前第一外部认证密钥,根据第一外部认证密钥和智能卡中预先存储的第二外部认证密钥进行外部认证;
其中,智能卡存储的第二内部认证密钥、和第二外部认证密钥被预先写入;
所述第一密钥算法库至少包括,用于生成所述第一内部认证密钥和第一外部认证密钥的密钥算法。
2.如权利要求1所述的方法,其特征在于,所述智能卡为有效卡,所述第二内部认证密钥、和第二外部认证密钥分别通过发卡器中内置的第二密钥算法库生成;其中,发卡器中内置的第二密钥算法库中的密钥算法至少与读卡器中内置的第一密钥算法库中所述密钥算法相同;
所述智能卡存储有用于内部认证和外部认证的第三密钥算法库,其中,所述第三密钥算法库至少包括,与发卡器中内置的第二密钥算法库中的密钥算法相同加密算法、以及与该加密算法相对应的解密算法。
3.如权利要求2所述的方法,其特征在于,所述第一密钥算法库还包括调用密钥算法的密钥算法进程,所述第一密钥算法库中的密钥算法具有随机数产生功能;所述第三密钥算法库还包括调用加密算法的密钥算法进程,
所述根据第一内部认证密钥和智能卡中预先存储的第二内部认证密钥进行内部认证包括,
读卡器中的微处理器MCU向所述第一密钥算法库中的密钥算法进程获取第一随机数,并将该第一随机数发送给智能卡,使得智能卡根据第二内部认证密钥通过第三密钥算法库中的密钥算法进程加密该第一随机数;
读卡器中的微处理器MCU指示所述第一密钥算法库中密钥算法进程加密所述第一随机数,使得该密钥算法进程根据第一内部认证密钥加密该第一随机数;
读卡器中的微处理器MCU将所述第一密钥算法库中密钥算法进程返回的第一加密结果与智能卡返回的第二加密结果进行比较;如果相同,则认证成功,如果不同,则认证失败。
4.如权利要求2所述的方法,其特征在于,所述第三密钥算法库中的加密算法具有随机数产生功能;所述第三密钥算法库还包括调用解密算法的解密算法进程,
所述根据第一外部认证密钥和智能卡中预先存储的第二外部认证密钥进行外部认证包括,
读卡器中的微处理器MCU向智能卡获取第二随机数,使得智能卡通过所述第三密钥算法库中的加密算法生成所述第二随机数;
读卡器中的微处理器MCU将智能卡中所述第三密钥算法库中的加密算法进程返回的第二随机数发送给所述第一密钥算法库中的密钥算法进程,使得该密钥算法进程根据第一外部认证密钥对第二随机数进行加密,得到第三加密结果,并将第三加密结果发送给智能卡,使得智能卡根据第二外部认证密钥通过第三密钥算法库中的解密算法进程对第三加密结果解密,得到解密结果;
读卡器中的微处理器MCU将来自智能卡的解密结果与第二随机数进行比较,如果相同,则认证成功,如果不同,则认证失败。
5.如权利要求1至4任一所述的方法,其特征在于,所述密钥算法库还包括密钥相关的配置信息,该密钥相关的配置信息包括:密钥文件标识号、密钥索引号、读卡器中微处理器MCU的物理序列号之一或任意组合;
所述智能卡标识包括智能卡物理卡号;
所述基于智能卡标识,通过第一密钥算法库生成当前第一内部认证密钥包括,
第一密钥算法库中的密钥算法进程根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第一密钥算法,生成当前第一内部认证密钥;
所述基于智能卡标识,通过第一密钥算法库生成当前第二内部认证密钥包括,
第一密钥算法库中的密钥算法进程根据智能卡的物理卡号和所述与密钥相关的配置信息中的任一信息,通过第二密钥算法,生成当前第一外部认证密钥;
所述认证成功后进一步包括,读卡器中的MCU将读取的智能卡卡号输出至权限控制设备。
6.如权利要求5所述的方法,其特征在于,所述密钥文件标识号包括用于生成当前第一内部认证密钥的内部认证密钥文件标识号、和用于生成当前第一外部认证密钥的外部认证密钥文件标识号;
所述密钥索引号包括用于生成当前第一内部认证密钥的内部认证密钥索引号、和用于生成当前第一外部认证密钥的外部认证密钥索引号。
7.如权利要求5所述的方法,其特征在于,所述智能卡存储的第二内部认证密钥、和第二外部认证密钥分别通过发卡器中内置的第二密钥算法库生成包括,
在发卡器侧,
获取智能卡属性信息,根据属性信息中的默认密钥进行认证,获得智能卡信息写入权限;
向智能卡指示创建用于保存第二内部认证密钥和第二外部认证密钥的密钥文件;
接收来自智能卡返回的密钥文件创建成功消息,调用所述第二密钥算法库中的密钥算法进程,以根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第一密钥算法,创建所述第二内部认证密钥,并将该密钥写入智能卡中,
接收来自智能卡返回的第二内部认证密钥创建成功消息,调用所述第二密钥算法库中的密钥算法进程,以根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第二密钥算法,创建所述第二外部认证密钥,并将该密钥写入智能卡中。
8.如权利要求7所述的方法,其特征在于,所述智能卡存储的第二内部认证密钥、和第二外部认证密钥分别通过发卡器中内置的第二密钥算法库生成进一步包括,
接收来自智能卡返回的第二外部认证密钥创建成功消息,向智能卡写入外部认证次数阈值。
9.一种非接触式智能卡的双向认证系统,包括发卡器和读卡器,其特征在于,所述读卡器包括存储器和微处理器MCU,所述存储器用于存储器用于存储指令,该指令在由所MCU执行时使得MCU执行如下步骤:
读取智能卡中存储的智能卡标识,
基于智能卡标识,通过第一密钥算法库生成当前第一内部认证密钥,根据第一内部认证密钥和智能卡中预先存储的第二内部认证密钥进行内部认证,和/或,
基于智能卡标识,通过第一密钥算法库生成当前第一外部认证密钥,根据第一外部认证密钥和智能卡中预先存储的第二外部认证密钥进行外部认证;
其中,智能卡存储的第二内部认证密钥、和第二外部认证密钥被预先写入;
所述第一密钥算法库至少包括用于生成所述第一内部认证密钥和第一外部认证密钥的密钥算法。
10.如权利要求9所述的系统,其特征在于,所述发卡器包括存储器和微处理器MCU,所述存储器用于存储器用于存储指令,该指令在由所MCU执行时使得MCU执行如下步骤:
获取智能卡属性信息,根据属性信息中的默认密钥进行认证,获得智能卡信息写入权限;
向智能卡指示创建用于保存第二内部认证密钥和第二外部认证密钥的密钥文件;
接收来自智能卡返回的密钥文件创建成功消息,调用所述第二密钥算法库中的密钥算法进程,以根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第一密钥算法,创建所述第二内部认证密钥,并将该密钥写入智能卡中,
接收来自智能卡返回的第二内部认证密钥创建成功消息,调用所述第二密钥算法库中的密钥算法进程,以根据智能卡的物理卡号、和所述与密钥相关的配置信息中的任一信息,通过第二密钥算法,创建所述第二外部认证密钥,并将该密钥写入智能卡中;
接收来自智能卡返回的第二外部认证密钥创建成功消息,向智能卡写入外部认证次数阈值。
11.如权利要求9或10所述的系统,其特征在于,所述智能卡包括存储器和微处理器MCU,所述存储器用于存储器用于存储指令,该指令在由所MCU执行时使得MCU执行如下步骤:
在发卡器向智能卡写入密钥过程中:
基于来自发卡器的获取智能卡属性信息的命令,返回属性信息;
根据来自发卡器的默认密钥,进行认证,将智能卡信息写入权限反馈给发卡器,
响应于发卡器创建用于保存第二内部认证密钥和第二外部认证密钥的密钥文件的指示,创建所述密钥文件,并向发卡器反馈创建成功;
响应于发卡器的写入命令,分别将来自发卡器的第二内部认证密钥和第二外部认证密钥保存至所述密钥文件中,将外部认证次数阈值、和所述第三密钥算法库保存至智能卡中的存储器中;
在被读卡器读取时:
根据来自读卡器的第一内部认证密钥、和智能卡中预先存储的第二内部认证密钥进行内部认证,和/或,根据第一外部认证密钥和智能卡中预先存储的第二外部认证密钥进行外部认证。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910645766.8A CN112241633B (zh) | 2019-07-17 | 2019-07-17 | 一种非接触式智能卡的双向认证实现方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910645766.8A CN112241633B (zh) | 2019-07-17 | 2019-07-17 | 一种非接触式智能卡的双向认证实现方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112241633A true CN112241633A (zh) | 2021-01-19 |
CN112241633B CN112241633B (zh) | 2023-03-14 |
Family
ID=74167016
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910645766.8A Active CN112241633B (zh) | 2019-07-17 | 2019-07-17 | 一种非接触式智能卡的双向认证实现方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112241633B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114423006A (zh) * | 2022-03-31 | 2022-04-29 | 芯电智联(北京)科技有限公司 | 一种nfc标签的密钥管理方法 |
CN115988464A (zh) * | 2022-07-29 | 2023-04-18 | 荣耀终端有限公司 | 一种智能卡的复制方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102013001A (zh) * | 2010-12-06 | 2011-04-13 | 苏州国芯科技有限公司 | 一种具有认证功能的读卡器及其认证方法 |
CN102833066A (zh) * | 2011-06-15 | 2012-12-19 | 中兴通讯股份有限公司 | 一种三方认证方法、装置及支持双向认证的智能卡 |
CN102833068A (zh) * | 2011-06-15 | 2012-12-19 | 中兴通讯股份有限公司 | 一种终端与智能卡双向认证的方法、协议及智能卡 |
JP2013178721A (ja) * | 2012-02-29 | 2013-09-09 | Toshiba Corp | Icカード発行装置、icカード発行システム、及びicカード |
CN104917614A (zh) * | 2015-04-21 | 2015-09-16 | 中国建设银行股份有限公司 | 一种智能卡和受理终端的双向验证方法和装置 |
CN105516182A (zh) * | 2015-12-30 | 2016-04-20 | 深圳市正东源科技有限公司 | 一种用于智能卡和读写器之间的双向认证方法及其系统 |
CN110020524A (zh) * | 2019-03-31 | 2019-07-16 | 西安邮电大学 | 一种基于智能卡的双向认证方法 |
-
2019
- 2019-07-17 CN CN201910645766.8A patent/CN112241633B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102013001A (zh) * | 2010-12-06 | 2011-04-13 | 苏州国芯科技有限公司 | 一种具有认证功能的读卡器及其认证方法 |
CN102833066A (zh) * | 2011-06-15 | 2012-12-19 | 中兴通讯股份有限公司 | 一种三方认证方法、装置及支持双向认证的智能卡 |
CN102833068A (zh) * | 2011-06-15 | 2012-12-19 | 中兴通讯股份有限公司 | 一种终端与智能卡双向认证的方法、协议及智能卡 |
JP2013178721A (ja) * | 2012-02-29 | 2013-09-09 | Toshiba Corp | Icカード発行装置、icカード発行システム、及びicカード |
CN104917614A (zh) * | 2015-04-21 | 2015-09-16 | 中国建设银行股份有限公司 | 一种智能卡和受理终端的双向验证方法和装置 |
CN105516182A (zh) * | 2015-12-30 | 2016-04-20 | 深圳市正东源科技有限公司 | 一种用于智能卡和读写器之间的双向认证方法及其系统 |
CN110020524A (zh) * | 2019-03-31 | 2019-07-16 | 西安邮电大学 | 一种基于智能卡的双向认证方法 |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114423006A (zh) * | 2022-03-31 | 2022-04-29 | 芯电智联(北京)科技有限公司 | 一种nfc标签的密钥管理方法 |
CN115988464A (zh) * | 2022-07-29 | 2023-04-18 | 荣耀终端有限公司 | 一种智能卡的复制方法 |
CN115988464B (zh) * | 2022-07-29 | 2023-10-20 | 荣耀终端有限公司 | 一种智能卡的复制方法 |
Also Published As
Publication number | Publication date |
---|---|
CN112241633B (zh) | 2023-03-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10460314B2 (en) | Pre-generation of session keys for electronic transactions and devices that pre-generate session keys for electronic transactions | |
US20040255119A1 (en) | Memory device and passcode generator | |
CN107430658B (zh) | 安全软件认证及验证 | |
US20080072066A1 (en) | Method and apparatus for authenticating applications to secure services | |
US20050138387A1 (en) | System and method for authorizing software use | |
CN102456111B (zh) | 一种Linux操作系统许可控制的方法及系统 | |
EP1325401A1 (en) | System for protecting static and dynamic data against unauthorised manipulation | |
JPH11306088A (ja) | Icカードおよびicカードシステム | |
US20120096280A1 (en) | Secured storage device with two-stage symmetric-key algorithm | |
US11405202B2 (en) | Key processing method and apparatus | |
CN113316784A (zh) | 基于存储在非接触式卡中的身份数据的安全认证 | |
CN103678994A (zh) | 一种具有环境控制的usb加密存储系统及方法 | |
CN113378119B (zh) | 一种软件授权方法、装置、设备及存储介质 | |
CN112468294B (zh) | 一种车载tbox的访问方法及鉴权设备 | |
CN112241633B (zh) | 一种非接触式智能卡的双向认证实现方法及系统 | |
CN108768941B (zh) | 一种远程解锁安全设备的方法及装置 | |
CN112364323A (zh) | 一种基于用户虹膜识别的高安全存储访问方法和装置 | |
CN110046489B (zh) | 一种基于国产龙芯处理器的可信访问验证系统,计算机及可读存储介质 | |
US20100042845A1 (en) | Ic tag system | |
AU2002333726B2 (en) | Initialization of a chip card | |
CN103838997A (zh) | 一种单片机密码验证方法及装置 | |
CN110287725B (zh) | 一种设备及其权限控制方法、计算机可读存储介质 | |
US20230186297A1 (en) | Secure authentication based on passport data stored in a contactless card | |
JP2016515778A (ja) | アプリケーション暗号化処理方法、装置及び端末 | |
EP2965295B1 (en) | Localized pin management with reader verification and no disclosure |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |