一种可实现机卡安全认证的智能卡及终端的制作方法

文档序号:7700794阅读:263来源:国知局
专利名称:一种可实现机卡安全认证的智能卡及终端的制作方法
技术领域
本发明涉及无线通信领域,尤其涉及一种可实现机卡安全认证的智能卡 及终端。
背景技术
随着移动业务多样化竟争的发展,运营商需要推出专用终端与专用卡片 绑定使用的、低资费的业务,需要采用极低价格销售终端或免费赠送终端或 通过专用卡的使用通过手机号码返还资费,这就需要通过技术手段实现专用 终端与专用卡片相互认证和绑定使用,确保专用用户识别模块只能用于专用 终端,不能用于普通手机终端,和/或专用终端只能使用专用用户识别模块, 不能使用普通用户识别。
现有终端配合专用卡主要通过PIN码锁卡、异形卡、锁手机IMEI (International Mobile Equipment Identity,国际移动身份识别)、随机数鉴 权方式实现相互认证,但采用PIN码锁卡方式存在以下问题
(1 )利用PIN码锁卡方式由于可使用PUK(PINUnBlock, PIN解锁码) 码进行解码,而且PUK码用户较易通过社会代销渠道获:f又;
(2)如采用无规则随机数PIN,则用户终端损坏,卡片将无法使用新 终端。实际采用一定规则生成PIN,只要知道规则即可通过轻易破解;
(3)实施时对营业厅人员管理要求高,首次使用必须当面插入终端中 使用,而不能先用于手机,安全完全依靠销售人员的自觉性;
(4)不能满足终端与卡分开销售的业务需求,不能用于代理渠道销售。
采用异形卡方式和锁手机IMEI方式异形卡和锁手机IMEI方式由于 非法卡贴很容易模仿终端接口定义异性接口或伪造IMEI,因此方案安全性 也较差。采用随机数鉴权方式随机数鉴权方式密钥知情方较多,易出现密钥泄
漏,且出现密钥泄漏后,无法判定泄漏责任方,运营商无法识别非法贴片用 户,无法禁止非法卡片的继续使用。

发明内容
本发明要解决的技术问题是提供一种可实现机卡安全认证的智能卡及 终端,可用来实现与各类终端的相互安全认证,避免了在现有机卡认证专用 卡上加入贴片等中间介质即能破解认证的缺陷。
为了解决上述问题,本发明提供了一种可实现机卡安全认证的智能卡,
包括用于和终端交互的第一交互模块;还包括认证密钥获取模块、算法封 装模块、卡与终端交互认证模块、数据包处理模块和卡片锁定模块;
所述认证密钥获取模块用于在每次开机后对比终端通过所述第一交互 模块发来的终端的标识与正式存储的终端的标识,当一致时,指示卡与终端 交互认证模块进行机卡认证;不一致时,临时保存收到的终端的标识,生成 发送给服务器的密钥更新请求报文的内容并发送给数据包处理模块封装,其 中携带本智能卡的标识和所收到的终端的标识;以及当收到解密后的密钥更
新报文的内容时获取其中的认证密钥,使用该认证密钥更新卡与终端交互认 证模块中保存的认证密钥数据,并用临时存储的终端的标识更新卡内正式存 储的终端的标识,更新成功后通过所述第一交互模块指示终端重启;
所述算法封装模块用于封装传输算法和认证算法;
所述卡与终端交互认证模块用于按卡与终端双方定义的交互流程及协 议,使用保存的认证密钥并调用所述算法封装模块中的认证算法进行与终端 之间的认证;当认证不通过时调用所述卡片锁定模块锁死本卡的相应功能;
所述数据包处理模块用于将封装后的密钥更新请求报文通过所述第一 交互模块发送给所述终端;还用于当收到所述第一交互模块返回的服务器下 发的密钥更新报文时,调用所述算法封装模块中的传输算法并使用所保存的 传输密钥进行该报文的解密。
进一步地,所述算法封装;f莫块中封装的所述传输算法和认证算法为相同或不同的算法;当传输算法和认证算法为不同算法时,所述算法封装模块包 括用于封装传输算法的传输算法封装子模块,以及用于封装认证算法的认证 算法封装子模块。
进一步地,所述认证密钥获取模块具体包括
终端标识判断及存储子模块、密钥更新必要性判断处理子模块和密钥更 新处理子模块;
所述终端标识判断及存储子模块用于获取终端通过所述第一交互模块 发来的终端的标识,并将收到的终端的标识与正式存储的终端的标识比对, 如一致,则指示卡与终端交互认证模块进行机卡认证;如不一致则保存收到 的终端的标识,并指示所述密钥更新必要性判断处理子模块进行处理;
所述密钥更新必要性判断处理子模块用于判断智能卡当前是否未达到 预定的上发密钥更新请求次数限制和鉴权临时许可次数限制,如已达到或超 过上述任一个次数限制,则调用卡片锁定模块锁死本卡的相应功能;未达到 或超过上述任一个次数限制则指示密钥更新处理子模块处理;
所述密钥更新处理子模块用于获取本卡的卡序列号和所收到的终端的 标识,生成密钥更新请求报文的内容,并调用所述数据包处理模块封装为发 送给服务器的密钥更新请求报文;以及当收到所述数据包处理模块解密后的 密钥更新报文时,获取其中的认证密钥,使用该认证密钥进行卡与终端交互 认证模块中认证密钥数据的更新,;更新成功则将密钥更新必要性判断处理 子模块中的上发密钥更新请求次数加1,用临时存储的终端的标识更新卡内 正式存储的终端的标识,并通过所述第 一交互模块指示终端重启。
进一步地,所述认证密钥获取模块获取所述解密后的密钥更新报文中的 认证密钥具体是指
直接获取所述解密后的密钥更新报文中的明文认证密钥;
或是先获取所述解密后的密钥更新报文中的卡密文认证密钥,然后采用 预存的卡密文密钥,调用所述算法封装模块中的卡密文算法解密所述卡密文 认证密钥,得到明文认证密钥。
进一步地,所述认证密钥获取模块还用于获取所述解密后的密钥更新报文中的终端密文认证密钥,或是携带所述认证密钥的终端密文报文,并通过 所述第 一交互模块转发给终端。
进一步地,所述智能卡还包括
认证请求处理模块;
所述卡与终端交互认证模块还用于记录与终端认证通过的次数,当该次
数达到或超过预定的次数阈值时,指示所述认证请求处理模块处理;
所述认证请求处理模块用于判断当前未收到认证结果消息的次数是否 达到或超过预定的未收到次数阔值,如达到或超过预定的未收到次数阀值, 则调用所述卡片锁定模块160锁死卡片鉴权等功能,如未达到,则获取本卡 的卡序列号和正式存储的终端的标识,生成发送给服务器的认证请求报文的 内容,并调用数据包处理模块进行报文封装,同时将未收到认证结果消息的 次数加l;当收到数据包处理模块解密后的认证结果报文时,将所述未收到 认证结果消息的次数减l,并获取、判断其中的认证结果,如认证结果为不 合法或所述未收到认证结果消息的次数超过预定次数,则调用所述卡片锁定 模块锁死本卡的相应功能;如果为合法则智能卡继续正常工作,指示所述卡 与终端交互认证模块130将卡与终端认证通过的次数清零,重新开始记录;
所述数据包处理模块还用于将封装后的认证请求报文通过所述第 一交 互模块发送给所述终端,以及当收到所述第一交互模块转发的服务器返回的 认证结果报文时,调用所述算法封装模块中的传输算法并使用所保存的传输 密钥进行该报文的解密。
为配合上述智能卡的使用,本发明还提供了一种可实现机卡安全认证的 终端,包括用于实现终端和服务器交互的无线通信模块、用于和卡进行交互 的第二交互模块;还包括安全认证模块;
所述安全认证模块包括终端与卡交互认证子模块、终端锁定子模块、 认证算法封装子模块和认证密钥发行与读取子模块;
所述第二交互模块用于将卡端发来的密钥更新请求报文通过所述无线 通信模块发给服务器,以及通过所述无线通信模块接收服务器下发的密钥更新报文并转发给卡端;
所述认证算法封装子模块用于封装认证算法;
所述认证密钥发行与读取子模块用于保存认证密钥;
所述终端与卡交互认证子模块用于在每次开机后将终端的标识通过所 述第二交互模块发给智能卡,其后按卡与终端双方定义的交互流将程及协 议,通过第二交互模块与智能卡进行交互认证;认证中需要认证加密或解密 时,调用认证密钥发行与读取子模块和认证算法封装子模块进行加密、解密; 当认证不通过时调用所述终端锁定模块锁死本终端的相应功能。
进一步地,所述安全认证模块还包括
用于封装终端密文算法的终端密文算法封装模块;
所述终端与卡交互认证子模块还用于通过第二交互模块从智能卡获取 服务器下发的终端密文,调用终端密文算法封装模块中的终端密文算法,使 用存储的终端密钥解密出明文认证密钥,并存储在所述认证密钥发行与读取 子模块中。
进一步地,所述终端密文为对明文认证密钥加密得到的密文认证密钥, 或是加密后的携带明文认证密钥的报文;
当终端密文为对明文认证密钥加密得到的密文认证密钥时,所述终端与 卡交互认证子模块解密终端密文后直接得到明文认证密钥;
当终端密文为加密后的携带明文认证密钥的报文时,所述终端与卡交互 认证子模块解密终端密文后得到携带明文认证密钥的报文,从该报文中获取 明文iU正密钥。
进一步地,所述安全认证模块放入终端的方式包括
(1 )集成在安全认证硬件模块中嵌入终端,通过串口 、 USB 口 、或7816 接口与终端进行通讯;
(2)集成在表贴在终端的无线通信模块中的安全芯片里;
(3 )集成在另 一个安全认证智能卡中放入终端里未被要认证的智能卡 占用的空闲卡槽中,通过7816接口与终端通讯;(4 )通过软件模块方式放在终端软件中。
本发明所提供的智能卡和终端能够采用新的认证流程、方法进行认证, 卡片的认证密钥不预置,在使用时从第三方动态下载,终端与智能卡间的认 证密钥和第三方与智能卡间的传输密钥可为两组不同的密钥,终端可统一进 行终端认证密钥发行预置,智能卡可统一进行传输密钥发行预置,所有密钥 均为只能使用,无法读出,终端使用安全模块封装算法,这样终端提供商接 触不到机卡认证密钥,不知道机卡认证算法,卡商也不知道机卡认证密钥, 可较好防止密钥泄露,解决了只要在机卡两端间加入中间介质即能破解的问 题,能较好满足智能卡与终端间的安全认证要求,可很安全地支持终端的多 渠道销售及机卡分开销售,安全性不需依靠营业厅人员的自觉性,为实现专 用智能卡配合专用手机或无线公话等终端的低资费、差异化业务服务提供了
技术支撑,有利于移动运营商推广各类型的需机卡绑定的差异化业务服务; 如果采用一部终端一个(或一组)认证密钥、 一个智能卡一个(或一组)传输密 钥和一个(或一组)认证密钥的方式,不同的智能卡密钥都各不相同,不同的 终端密钥也都各不相同,充分保证安全性,即使一张卡或终端被破解,也无 法实现贴片的批量复制,极大提高了破解难度与成本。
本发明关于智能卡的一个优化方案中,智能卡与终端之间相互认证过程 加解密和传输密钥过程加解密使用不同的加解密算法(当然使用相同加解密 算法也可,但安全性相对低),可使用高安全性、高成熟度的AES( Advanced Encryption Standard,高级加密标准)、国密办SCB2等对称安全算法或RSA 非对称算法,由于AES算法可通过可选参数控制产生不同结果,因此破解 难度很大;而RSA非对称算法采用公钥、私钥非对称加解密机制,破解难 度也较大;认证算法可采用对称算法也可采用非对称算法,传输算法可采用 对称算法也可采用非对称算法,在实际应用中,可根据安全需求,灵活选择 组合,因此能较好满足智能卡与终端间进行安全认证的需求,有利于运营商 推广各类差异化的业务服务。本发明关于智能卡的另一优化方案中,智能卡 具有智能自锁定功能,当智能卡达到密钥更新请求次数限制或鉴权临时许可 次数限制时,为防止通过非法更换终端序列号来多次非法使用,智能卡自行 锁定,出现该情况智能卡将无法继续使用,除非到营业厅等处解锁,这样方便定位非法使用的问题卡片;另外,智能卡也支持根据密钥管理服务器下发 数据进行智能卡锁死功能,以使智能卡被非法破解后无法使用。本发明关于 智能卡的又一个优化方案为对智能卡与终端认证通过次数计数,在认证交互 通过次数达到或超过预定的次数时,智能卡需要请求作为第三方的密钥管理 服务器的认证确认,可通过服务器使被破解的卡片无法继续使用,能够进一 步提高安全性。另外,还可以选择性地对发给智能卡的报文中的认证密钥本 身再进行加密,进一步提高认证的安全性。
本发明关于终端的 一个优化方案中公开了几种在终端中安装安全认证 模块的方式,可以进一步通过安装方式提高认证的安全性。本发明关于终端 的另一个优化方案中选择不将认证密钥预存在终端里,而是由服务器生成认 证加密后下发,这样终端里只保存解密用的密钥和算法,认证密钥则动态获 得,这样可以不必事先进行终端认证密钥的预置发行,增强方案实际应用时 的可操作性。其中生成的认证密钥根据终端与卡进行机卡认证采用的算法是 对称算法或非对称算法,采用对应的对称算法密钥或非对称算法的公私密钥 对。


图1为实施例一中可实现机卡安全认证的智能卡的示意框图; 图2为实施例一的例子中智能卡与终端交互认证的流程示意图; 图3为实施例二中可实现机卡安全认证的终端的示意框图; 图4为实施例二的例子中终端与智能卡交互认证的流程示意图。
具体实施例方式
下面将结合附图及实施例对本发明的技术方案进行更详细的说明。
本发明既适用于2G网络的SIM、 UIM ( User Identity Model,用户识别 才莫块)卡与3G网络的USIM ( Universal Subscriber Identity Module,通用用 户识别模块)、EVDO UIM卡,也适用于其他支持短信、GPRS( General Packet Radio Service,通用分组无线服务技术)或HSDPA (High Speed DownlinkPacketAccess,高速下行分组接入技术)等高速数据传输的安全芯片或芯片 封装模块。
实施例一, 一种可实现机卡安全认证的专用智能卡,如图l所示,除包 括支持2G或3G鉴权、短信或GPRS BIP等基础智能卡COS及功能模块(这 些未画在图1中)夕卜,有用于与终端交互的第一交互模块110;为支持机卡 安全认证,增加了认证密钥获取模块120、卡与终端交互认证模块130、算 法封装模块140、数据包处理模块150、卡片锁定模块160等新功能模块。
所述第一交互模块110是卡中其它模块与终端进行数据交互的主要通 道,可采用短信交互方式或GPRSBIP等方式通过终端与服务器交互数据, 还用于通过STK或其它卡与终端约定的指令实现卡中其它模块与终端的交 互;卡与终端进行交互认证时也可以调用所述第一交互模块110的相关指 令。本实施例中,所述第一交互模块110可以但不限于为一 STK指令解析 处理模块。
所述认证密钥获取模块120用于在每次开机后对比终端通过所述第一 交互模块110发来的终端的标识与正式存储的终端的标识,当一致时,指示 卡与终端交互认证模块130进行机卡认证;不一致时,临时存储收到的终端 的标识但不更新正式存储的终端的标识,生成发送给服务器的密钥更新请求 报文的内容并发送给数据包处理模块150封装,其中携带本智能卡的标识和 所收到的终端的标识;当收到数据包处理模块150解密后的密钥更新报文的 内容,获取其中的认证密钥,使用该认证密钥更新卡与终端交互认证模块 130中保存的认证密钥数据,并用临时存储的终端的标识更新卡内正式存储 的终端的标识,更新成功后通过所述第一交互模块U0指示终端重启;该认 证密钥可以为一个或一组对称算法密钥,也可以为一对非对称算法的7>私 钥,可以卡片存私钥终端存公钥,也可以卡片存公钥终端存私钥。
所述算法封装模块140用于封装传输算法和认证算法;为保证算法安全 性,将算法进行封装。
本实施例中,所述传输算法和认证算法可以为相同的算法或不同的算 法,为不同算法时安全性较高;当传输算法和认证算法为不同算法时,所述算法封装模块140可具体包括传输算法封装子模块141和认证算法封装子模 块142。
所述传输算法封装子模块141用于封装传输算法;供所述数据包处理模 块150加密、解密时使用。
所述认证算法封装子模块142用于封装认证算法;供所述卡与终端交互 认证模块130对机卡认证数据进行加密、解密时使用。
所述卡与终端交互认证模块130用于按卡与终端双方定义的交互流程 及协议,使用保存的认证密钥并调用所述算法封装模块140中的认证算法进 行与终端之间的认证;如认证不通过,调用所述卡片锁定模块160使卡片不 能进行正常的登网鉴权和/或不允许使用约定的相应功能;如认证通过,则 无需调用所述卡片锁定模块160,卡片可进行正常的登网鉴权使用和/或允许 使用约定的相应功能。实际应用时,所述认证密钥也可以保存在卡内其他模 块中,由所述卡与终端交互认证模块130在使用时进行读取。
所述卡片锁定模块160可根据其他业务模块调用时传来的参数进行相 应的卡片鉴权功能、卡片业务功能方面的锁定,使智能卡无法使用相应功能; 用户需要到营业厅等处解锁才能恢复智能卡的正常使用。
所述数据包处理模块150用于进行上行数据包报文封装(卡发给服务 器)和下行数据包解封装(服务器发给卡),组包和解包时按卡与服务器定 义的传输协议进行处理,判断下行数据包的命令类型并传给对应的业务处理 模块处理;将封装后的密钥更新请求报文通过所述第一交互模块IIO发送给 所述终端并通过所述终端发给服务器,以及当收到所述第一交互模块110转 发的服务器返回的密钥更新报文时,调用所述算法封装模块140中的传输算 法并使用所保存的传输密钥进行该报文的解密,还可以选择性地调用所述算 法封装模块140中的传输算法,并使用所保存的传输密钥进行密钥更新请求 报文加密;另外还可以进一步选择进行报文计数器处理和MAC数据校验。 实际应用时,所述传输密钥也可以保存在卡内其他模块中,由所述数据包处 理模块150在使用时进行读取。
这里的服务器指的是智能卡和终端以外的第三方,实际应用时可以合成 在已有的服务器中,也可以单独建立一个服务器。本实施例中,所述智能卡的标识可以是智能卡序列号,也可以是其它能 够唯一确定一个智能卡的信息;所述终端的标识可以是终端序列号,也可以
是其它能够唯一确定一个终端的信息。
本实施例中,所述认证密钥获取模块120还可以用于根据更新卡与终 端交互认证模块130中保存的认证密钥数据的结果,按卡与服务器的协议生
成密钥更新结果报文的内容,并调用所述数据包处理模块150封装成密钥更 新结果报文,通过所述第一交互模块IIO经由终端传给服务器。
本实施例的一种实施方式中,所述认证密钥获取才莫块120具体可以包

终端标识判断及存储子模块121、密钥更新必要性判断处理子模块122 和密钥更新处理子模块123;
所述终端标识判断及存储子模块121用于在每次开机后获取、分析处理 所述第一交互模块IIO发来的终端的标识,并将收到的终端的标识与正式存 储的终端的标识比对,如一致,则指示卡与终端交互认证模块130进行机卡 认证;如不一致(包括原先卡内未正式存储终端的标识的情况),则临时存 储收到的终端的标识(不更新原先正式存储的终端的标识),并指示密钥更 新必要性判断处理子模块122进行处理;实际应用时,所述终端的标识也可 以保存在卡内其他模块中,由所述终端标识判断及存储子模块121在使用时 进行读取。
所述密钥更新必要性判断处理子模块122用于判断智能卡当前是否未 达到预定的上发密钥更新请求次数限制和鉴权临时许可次数限制,如已达到 或超过上述任一个次数限制,则调用卡片锁定模块160锁死卡片鉴权等功 能;如未达到或超过上述任一个次数限制,则指示密钥更新处理子模块123 进行处理;实际应用时,所述上发密钥更新请求次数、鉴权临时许可次数、 上发密钥更新请求次数限制和鉴权临时许可次数限制中的一个或几个可以 保存在所述密钥更新必要性判断处理子模块122中,也可以保存在卡内该子 模块之外的其他模块中,由所述密钥更新必要性判断处理子模块122在使用 时进行读耳又。所述密钥更新处理子模块123用于获取本卡的卡序列号和所收到的终 端的标识等相关参数,按卡与服务器协议生成密钥更新请求报文的内容,并
调用所述数据包处理模块150封装为发送给服务器的密钥更新请求报文,通 过所述第一交互模块IIO经由终端传给服务器。当收到所述数据包处理模块 150解密后的密钥更新报文时,按与服务器之间的协议获取其中的认证密钥, 使用该认证密钥进行卡与终端交互认证模块130中认证密钥数据的更新;更 新成功则将密钥更新必要性判断处理子模块122中的上发密钥更新请求次 数加1,用临时存储的终端的标识更新所述终端标识判断及存储子模块121 中原先正式存储的终端的标识,并通过所述第一交互模块110指示终端重 启;如更新不成功,则不用临时存储的终端的标识更新卡内正式存储的终端 的标识,并可以根据需要选择终止流程或向服务器返回失败信息。在指示终 端重启前还可以进一步按卡与服务器的协议生成密钥更新结果报文的内容, 并调用所述数据包处理模块150封装成密钥更新结果报文,通过所述第一交 互模块110经由终端传给服务器。
本实施例的一种实施方式中,所述认证密钥获取模块120中的密钥更新 处理子模块123获取所述解密后的密钥更新报文中的认证密钥具体可以是 指
直接获取所述解密后的密钥更新报文中的明文认证密钥;
先获取所述解密后的密钥更新报文中的卡密文认证密钥,然后采用预存 的卡密钥,调用所述算法封装模块140中的卡密文算法解密所述卡密文认证 密钥,得到明文i人证密钥。
此时,所述算法封装模块140还可以包括一卡奮文算法封装子模块143; 当然该卡密文算法和认证算法或传输算法可以相同,相同时则可以不用独立 封装。
所述卡密钥可以为一个或一组对称算法密钥,也可以为一对非对称算法 公私钥中的私钥,公钥则放在服务器中,供服务器对认证密钥进行加密得到 所述卡密文认证密钥时用。本实施例的一种实施方式中,所述认证密钥获取模块120中的密钥更新
处理子才莫块123还进一步获取所述解密后的密钥更新报文中的终端密文认
证密钥,或是携带所述认证密钥的终端密文报文,并通过所述第一交互模块
110转发纟合终端。
如果本实施方式中还采用对上发密钥更新请求次数进行限制的方案,则 所述认证密钥获取模块当更新所述卡与终端交互认证模块中的认证密钥数 据成功,并且接收到终端返回的更新认证密钥成功的消息后,将上发密钥更
新请求次数加l;另外该情况下,在接受到所述终端返回的更新认证密钥成 功的消息后,卡才能跟终端开始进行交互认证。
本实施例的一种实施方式中,所述智能卡还可以进一步包括认证请求处 理模块170;
该实施方式中,所述卡与终端交互认证^^莫块130还用于记录卡与终端认 证通过的次数,当该次数达到或超过预定的次数阈值时,指示所述认证请求 处理模块170处理。
所述认证请求处理模块170用于判断当前未收到认证结果消息的次数 是否达到或超过预定的未收到次数阀值,如达到或超过预定的未收到次数阀 值,则调用所述卡片锁定模块160锁死卡片鉴权等功能,如未达到,则获取 本卡的卡序列号和正式存储的终端的标识等相关参数,并按卡与服务器协议 生成认证请求报文的内容,并调用数据包处理模块150进行封装为发送给服 务器的认证请求报文,通过第一交互模块IIO经由终端传给服务器,同时将 未收到认证结果消息的次数加1。当收到数据包处理模块150解密后的认证 结果报文时,将所述未收到认证结果消息的次数减1,并按协议获取、判断 其中的认证结果,如认证结果为合法,则不调用所述卡片锁定模块160,智 能卡继续正常工作,指示所述卡与终端交互认证模块130将卡与终端认证通 过的次数清零,重新开始记录。如认证结果为不合法,则调用所述卡片锁定 模块160锁死卡片鉴权等功能(此时卡与终端认证通过的次数不清零)。该实施方式中,所述数据包处理模块150还用于将封装后的认证请求报 文通过所述第一交互模块IIO发送给所述终端,以及当收到所述第一交互模
块IIO转发的服务器返回的认证结果报文时,调用所述算法封装^f莫块140中 的传输算法并使用所保存的传输密钥进行该报文的解密。
下面用 一个具体的例子来描述本实施例中的智能卡和终端认证的过程, 本例中所述第一交互模块为STK指令解析处理模块;算法封装模块包括传 输算法封装子模块和认证算法封装子模块;终端的标识为终端序列号。
如图2所示,所述认证过程包括
步骤S210,开机,智能卡上电复位后,终端通过APDU (应用协议数 据单元)命令发送Terminal Profile指令给智能卡,智能卡通过STK指令解 析处理模块获取终端发来的指令,并调用终端标识判断及存储子模块121通 过Getlnput指令向终端传送信息表明需获取终端序列号,终端通过Terminal Response指令将终端序列号返回给智能卡中的STK指令解析处理模块,由 STK指令解析处理模块转发给终端标识判断及存储子模块121 。
步骤S220,终端标识判断及存储子;^莫块121解析处理终端将收到的终 端序列号与正式存储的终端序列号进行对比,如一致,则进行步骤S230; 如不一致,则进行步骤S240。
步骤S230,终端标识判断及存储子模块121指示卡与终端交互认证模 块130进行机卡认证,卡与终端交互认证模块130按卡与终端双方定义的交 互流程及协议,使用卡与终端间的认证密钥并调用认证算法封装子模块141 进行相互认证,如认证通过,卡片可进行正常的登网鉴权使用和/或允许使 用约定的相应功能,流程结束;如认证不通过,调用卡片锁定模块160使卡 片不能进行正常的登网鉴权和/或不允许使用约定的相应功能,流程结束。
步骤240,临时存储收到的终端序列号但不更新卡内正式存储的终端序 列号,并将收到的终端序列号交给密钥更新必要性判断处理子模块122进行 处理;密钥更新必要性判断处理子模块122判断本智能卡当前是否未达到预 定的上发密钥更新请求次数限制和鉴权临时许可次数限制,如已达到或超过上述任一个次数限制,则调用卡片锁定模块160锁死卡片鉴权等功能,流程 结束。如未达到上述任一个次数限制,则将收到的终端序列号交给密钥更新
处理子模块123处理,进行步骤250。
步骤250,密钥更新处理子模块123读取本智能卡的卡序列号和收到的 终端序列号等相关参数,并调用数据包处理模块150进行报文封装,组成密 钥更新请求报文,通过STK指令解析处理模块传给终端上发服务器,并将 密钥更新必要性判断处理子模块122中记录的鉴权临时许可次数加1。
步骤S260, STK指令解析处理模块收到由终端转发的服务器下发的密 钥更新报文后,由数据包处理模块150解密后交给密钥更新处理子模块123 按协议获取其中的明文认证密钥或对密文认证密钥用卡片密钥和对应算法 解密后得到明文认证密钥,使用该明文认证密钥进行卡与终端交互认证模块 130中认证密钥数据的更新。
步骤S270,更新成功则密钥更新处理子模块123将密钥更新必要性判 断处理模块中的上发密钥更新请求次数加1,用临时存储的终端序列号更新 终端标识判断及存储子模块121正式存储的终端序列号,并按卡与服务器协 议返回密钥更新结果报文内容,调用数据包处理模块150进行报文封装,组 成密钥更新结果报文,通过STK指令解析处理模块经由终端传给服务器。 其后,通知用户重启终端或自动重启终端。重启后又会从步骤S210开始执 行,此时步骤S220中所收到的终端序列号和保存的将是一致的,因此会进 行步骤S230的认证。如更新不成功,则不用临时存储的终端序列号更新卡 内正式存储的终端序列号,并根据需要选择终止流程或向服务器返回失败信 息。
实施例二, 一种可实现机卡安全认证的终端,如图3所示,除了包括常 用的无线通信模块310、用于和卡进行交互的第二交互模块320 (比如STK 功能处理模块)夕卜,还新增了与机卡认证相关的安全认证模块330。
所述安全认证模块330包括终端与卡交互认证子模块331、终端锁定 子模块332、认证算法封装子模块333和认证密钥发行与读取子模块334。所述无线通信模块310用于实现终端通过短信、GPRS等无线通信方式 与服务器交互数据。
所述第二交互模块320是终端支持与卡片进行STK命令交互功能的处 理模块,该才莫块支持卡通过卡与终端间的交互指令(比如STK指令)实现 与终端的交互,用于将卡端发来的密钥更新请求报文通过所述无线通信模块 发给服务器,以及通过所述无线通信模块接收服务器下发的密钥更新报文并 转发给卡端;在有的实施方式中,还可以用于将卡端发给服务器的其它报文 通过所述无线通信模块发给服务器,比如密钥更新结果报文、认证请求报文,文。
所述终端锁定子模块332用于对本终端的相应功能进行锁定,使终端无 法正常^f吏用。
所述认证算法封装子模块333用于封装认证算法;为保证算法安全性, 将认证算法进行封装,以用于终端与卡交互认证子模块331对机卡认证数据 进行加密、解密时4吏用。
所述认证密钥发行与读取子模块334用于保存认证密钥,可以实现认证 密钥的初始预置发行或实现使用服务器发来的认证密钥进行更新存储,供终 端与卡交互认证子模块331调用进行认证密钥读取。
所述终端与卡交互认证子模块331用于在每次开机后将终端的标识通 过所述第二交互模块320发给智能卡,其后按卡与终端双方定义的交互流将 程及协议,通过第二交互模块320与智能卡进行交互认证。认证中需要认证 加密或解密时,调用认证密钥发行与读取子模块334和认证算法封装子模块 333进行加密、解密;如认证不通过,调用所述终端锁定模块332使终端不 能进行预定的相应功能;如认证通过,则无需调用所述终端锁定模块332, 终端可进行正常〗吏用。
在本实施例的一种实施方式中,所述安全i^证才莫块330还可以进一步包 括终端密文算法封装模块335和对应的终端密钥,用于封装终端密文算法;为保证算法安全性,将终端密文算法进行封装,供终端与卡交互认证子模块 331调用以解密服务器下发的加密的认证密钥,或是加密后的携带认证密钥 的报文。
该模块为可选模块,对于预置认证密钥不需从服务器获取认证密钥的终
端,不需要该模块;另外,如果终端密文算法与所述认证算法相同,则也可
以没有该模块,需要使用时可直接调用认证算法。
该实施方式中,所述终端与卡交互认证子模块331还用于通过第二交互 模块320与智能卡交互获取服务器下发的终端密文(可以是对明文认证密钥 加密后的密文认证密钥,也可以是加密后的携带明文认证密钥的报文),调 用终端密文算法封装模块335中的终端密文算法,并使用存储的终端密钥解 密出明文认证密钥并存储在所述认证密钥发行与读取子模块334中(如果原 先有之前获得的认证密钥则更新)。存储完成后所述终端与卡交互认证子模 块331还可以通过第二交互模块320发送更新认证密钥成功的消息给卡端。
实际应用时,所述终端密钥可以保存在任一模块中。
所述终端密钥可以为一个或一组对称算法密钥,也可以为一对非对称算 法公私钥中的私钥,公钥则放在服务器中,供服务器对认证密钥或携带明文 认证密钥的报文进行加密得到所述终端密文时用。
当终端密文为明文认证密钥加密后的密文认证密钥时,所述终端与卡交 互认证子模块331调用终端密文算法封装模块335和对应的终端密钥解密终 端密文后直接得到明文认证密钥;如果终端密文为加密后的携带明文认证密 钥的报文,则所述终端与卡交互认证子模块331调用终端密文算法封装模块 335和对应的终端密钥解密终端密文后得到的是携带明文认证密钥的报文, 还需要按照与服务器之间约定的协议从报文中获取明文认证密钥。
本实施例中,所述安全认证模块330放入终端的方式包括但不限于以下 几种
(1 )集成在安全认证硬件模块中嵌入终端,通过串口 、 USB 口 、或7816 等接口与终端进行通讯;(2)集成在安全芯片中,在生产时将安全芯片表贴在终端的无线通信
模块(如GSM模块)中;
(3 )集成在一个安全认证智能卡中放入终端里未被要认证的智能卡占 用的空闲卡槽中,通过7816接口与终端通讯,但这一安全认证智能卡是用 于实现终端的认证功能,与同终端进行交互认证的专用智能卡不同,因此该 方式终端需要提供双卡槽。
(4)通过软件模块方式放在终端软件中。
下面用一个具体例子来描述终端与卡交互认证的过程,该例子中,终端 未预置认证密钥,所述第二交互模块为STK功能模块,终端的标识为终端 序列号。
所述认i正过程如图4所示,具体步骤为
步骤S410、开机后,STK功能处理模块通过APDU (应用协议数据单 元)命令发送Terminal Profile指令给智能卡,当接收到智能卡发来的表明需 获取终端序列号的Getlnput指令后,终端与卡交互认证子模块331将终端序 列号通过Terminal Response指令经由STK功能处理模块发送给智能卡。
步骤S420、 STK功能处理模块将智能卡发来的密钥更新请求报文通过 无线通信模块310发送给服务器;其后通过无线通信模块310接收服务器返 回的密钥更新报文并转发给卡端。
步骤S430、智能卡从服务器获取终端密文(加密后的认证密钥或是加 密后的携带明文认证密钥的报文)并传给终端;终端与卡交互认证子模块 331通过STK功能处理模块获取智能卡传来的终端密文,使用终端密钥,调 用终端密文算法封装子模块335中的终端密文算法解密获得明文的认证密 钥,将该认证密钥存储在所述认证密钥发行与读取子模块334中。终端与卡 交互认证子模块331通过STK功能处理模块发送更新认证密钥成功的消息 给卡端。
步骤S440、终端与卡交互认证子模块331通过STK功能处理模块与智 能卡进行交互认证。认证中需要认证加密或解密时,终端与卡交互认证子模块331使用认证密钥发行与读取子模块中保存的认证密钥,调用认证算法封 装子模块333中的认证算法进行加密、解密。
步骤S450、如机卡认证通过,则允许终端各项功能正常使用。如机卡 认证不通过,则终端与卡交互认证子模块331调用终端锁定子模块332锁死 本终端的相关功能。
当然,本发明还可有其他多种实施例,在不背离本发明精神及其实质的 形,但这些相应的改变和变形都应属于本发明的权利要求的保护范围。
权利要求
1、一种可实现机卡安全认证的智能卡,包括用于和终端交互的第一交互模块;其特征在于,还包括认证密钥获取模块、算法封装模块、卡与终端交互认证模块、数据包处理模块和卡片锁定模块;所述认证密钥获取模块用于在每次开机后对比终端通过所述第一交互模块发来的终端的标识与正式存储的终端的标识,当一致时,指示卡与终端交互认证模块进行机卡认证;不一致时,临时保存收到的终端的标识,生成发送给服务器的密钥更新请求报文的内容并发送给数据包处理模块封装,其中携带本智能卡的标识和所收到的终端的标识;以及当收到解密后的密钥更新报文的内容时获取其中的认证密钥,使用该认证密钥更新卡与终端交互认证模块中保存的认证密钥数据,并用临时存储的终端的标识更新卡内正式存储的终端的标识,更新成功后通过所述第一交互模块指示终端重启;所述算法封装模块用于封装传输算法和认证算法;所述卡与终端交互认证模块用于按卡与终端双方定义的交互流程及协议,使用保存的认证密钥并调用所述算法封装模块中的认证算法进行与终端之间的认证;当认证不通过时调用所述卡片锁定模块锁死本卡的相应功能;所述数据包处理模块用于将封装后的密钥更新请求报文通过所述第一交互模块发送给所述终端;还用于当收到所述第一交互模块返回的服务器下发的密钥更新报文时,调用所述算法封装模块中的传输算法并使用所保存的传输密钥进行该报文的解密。
2、 如权利要求1所述的智能卡,其特征在于所述算法封装模块中封装的所述传输算法和认证算法为相同或不同的 算法;当传输算法和认证算法为不同算法时,所述算法封装模块包括用于封 装传输算法的传输算法封装子模块,以及用于封装认证算法的认证算法封装 子模块。
3、 如权利要求1所述的智能卡,其特征在于,所述认证密钥获取模块 具体包括终端标识判断及存储子模块、密钥更新必要性判断处理子模块和密钥更新处理子模块;所述终端标识判断及存储子模块用于获取终端通过所述第一交互模块 发来的终端的标识,并将收到的终端的标识与正式存储的终端的标识比对, 如一致,则指示卡与终端交互认证模块进行机卡认证;如不一致则保存收到 的终端的标识,并指示所述密钥更新必要性判断处理子模块进行处理;所述密钥更新必要性判断处理子模块用于判断智能卡当前是否未达到 预定的上发密钥更新请求次数限制和鉴权临时许可次数限制,如已达到或超 过上述任一个次数限制,则调用卡片锁定模块锁死本卡的相应功能;未达到 或超过上述任一个次数限制则指示密钥更新处理子模块处理;所述密钥更新处理子模块用于获取本卡的卡序列号和所收到的终端的 标识,生成密钥更新请求报文的内容,并调用所述数据包处理模块封装为发 送给服务器的密钥更新请求报文;以及当收到所述数据包处理模块解密后的 密钥更新报文时,获取其中的认证密钥,使用该认证密钥进行卡与终端交互 认证^t块中认证密钥数据的更新,;更新成功则将密钥更新必要性判断处理 子模块中的上发密钥更新请求次数加1,用临时存储的终端的标识更新卡内 正式存储的终端的标识,并通过所述第 一交互^f莫块指示终端重启。
4、 如权利要求1所述的智能卡,其特征在于,所述认证密钥获取模块 获取所述解密后的密钥更新报文中的认证密钥具体是指直接获取所述解密后的密钥更新报文中的明文认证密钥;或是先获取所述解密后的密钥更新报文中的卡密文认证密钥,然后采用 预存的卡密文密钥,调用所述算法封装模块中的卡密文算法解密所述卡密文 认证密钥,得到明文认证密钥。
5、 如权利要求1到4中任一项所述的智能卡,其特征在于所述认证密钥获取模块还用于获取所述解密后的密钥更新报文中的终 端密文认证密钥,或是携带所述认证密钥的终端密文报文,并通过所述第一 交互模块转发给终端。
6、 如权利要求1到4中任一项所述的智能卡,其特征在于,还包括认证请求处理模块;所述卡与终端交互认证模块还用于记录与终端认证通过的次数,当该次 数达到或超过预定的次数阈值时,指示所述认证请求处理^^莫块处理;所述认证请求处理模块用于判断当前未收到认证结果消息的次数是否 达到或超过预定的未收到次数阀值,如达到或超过预定的未收到次数阀值,则调用所述卡片锁定模块160锁死卡片鉴权等功能,如未达到,则获取本卡 的卡序列号和正式存储的终端的标识,生成发送给服务器的认证请求报文的 内容,并调用数据包处理模块进行报文封装,同时将未收到认证结果消息的 次数加l;当收到数据包处理模块解密后的认证结果报文时,将所述未收到 认证结果消息的次数减l,并获取、判断其中的认证结果,如认证结果为不 合法或所述未收到认证结果消息的次数超过预定次数,则调用所述卡片锁定 模块锁死本卡的相应功能;如果为合法则智能卡继续正常工作,指示所述卡 与终端交互认证模块130将卡与终端认证通过的次数清零,重新开始记录;所述数据包处理模块还用于将封装后的认证请求报文通过所述第一交 互模块发送给所述终端,以及当收到所述第一交互模块转发的服务器返回的 认证结果报文时,调用所述算法封装模块中的传输算法并使用所保存的传输 密钥进行该^^艮文的解密。
7、 一种可实现机卡安全认证的终端,包括用于实现终端和服务器交互 的无线通信模块、用于和卡进行交互的第二交互模块;其特征在于,还包括 安全认证^t块;所述安全认证模块包括终端与卡交互认证子模块、终端锁定子模块、 认证算法封装子模块和认证密钥发行与读取子模块;所述第二交互模块用于将卡端发来的密钥更新请求报文通过所述无线 通信模块发给服务器,以及通过所述无线通信模块接收服务器下发的密钥更 新报文并转发给卡端;所述认证算法封装子模块用于封装认证算法;所述认证密钥发行与读取子模块用于保存i人证密钥;述第二交互模块发给智能卡,其后按卡与终端双方定义的交互流将程及协议,通过第二交互模块与智能卡进行交互认证;认证中需要认证加密或解密 时,调用认证密钥发行与读取子模块和认证算法封装子模块进行加密、解密; 当认证不通过时调用所述终端锁定模块锁死本终端的相应功能。
8、 如权利要求7所述的终端,其特征在于,所述安全认证模块还包括用于封装终端密文算法的终端密文算法封装模块;所述终端与卡交互认证子模块还用于通过第二交互模块从智能卡获取 服务器下发的终端密文,调用终端密文算法封装模块中的终端密文算法,使 用存储的终端密钥解密出明文认证密钥,并存储在所述认证密钥发行与读取 子才莫块中。
9、 如权利要求7所述的终端,其特征在于所述终端密文为对明文认证密钥加密得到的密文认证密钥,或是加密后 的携带明文认证密钥的报文;当终端密文为对明文认证密钥加密得到的密文认证密钥时,所述终端与 卡交互认证子模块解密终端密文后直接得到明文认证密钥;当终端密文为加密后的携带明文认证密钥的报文时,所述终端与卡交互 认证子模块解密终端密文后得到携带明文认证密钥的报文,从该报文中获取 明文iU正密钥。
10、 如权利要求7到9中任一项所述的终端,其特征在于,所述安全认 证才莫块放入终端的方式包括(1 )集成在安全认证硬件模块中嵌入终端,通过串口 、 USB 口 、或7816 才妄口与终端进行通讯;(2)集成在表贴在终端的无线通信模块中的安全芯片里;(3 )集成在另一个安全认证智能卡中放入终端里未被要认证的智能卡 占用的空闲卡槽中,通过7816接口与终端通讯;(4)通过软件模块方式放在终端软件中。
全文摘要
一种可实现机卡安全认证的智能卡及终端;卡包括用于和终端交互的第一交互模块、卡与终端交互认证模块、卡片锁定模块、认证密钥获取模块、算法封装模块和数据包处理模块;所述认证密钥获取模块用于在每次开机后接收的终端的标识与正式存储的终端的标识,当一致时,指示卡与终端交互认证模块进行机卡认证;不一致时,临时保存收到的终端的标识,生成发送给服务器的密钥更新请求报文的内容并发送给数据包处理模块封装;当收到解密后的密钥更新报文的内容时获取其中的认证密钥,使用该认证密钥更新卡与终端交互认证模块中保存的认证密钥数据,并用临时存储的终端的标识更新卡内正式存储的终端的标识,更新成功后指示终端重启。本发明可实现安全认证。
文档编号H04W12/04GK101577906SQ20091008659
公开日2009年11月11日 申请日期2009年6月12日 优先权日2009年6月12日
发明者焦华清, 王京阳, 穆肇骊, 辉 郑 申请人:大唐微电子技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1