发明内容
本发明解决的技术问题是提供一种三方认证方法、装置及支持双向认证的智能卡,能够保证终端设备在多种应用环境下的安全性问题。
为解决上述技术问题,本发明提供了一种三方认证方法,所述方法包括:
终端与智能卡之间进行认证;
所述终端与所述智能卡之间的认证通过后,所述终端向管理平台报告所述终端与所述智能卡的绑定关系,并向所述管理平台请求对所述绑定关系进行认证;
所述管理平台对所述终端与所述智能卡的绑定关系进行认证,若所述绑定关系认证通过,则判定三方认证通过,否则,判定三方认证未通过。
进一步地,所述终端与所述智能卡之间的认证采用双向认证协议,所述双向认证协议具体包括:
智能卡根据认证信息使用算法一得出智能卡侧认证结果,并使用算法二对所述智能卡侧认证结果进行加密后,将所述认证信息以及加密后的智能卡侧认证结果发送给所述终端;
所述终端根据所述智能卡发送的认证信息使用算法一得出终端侧认证结果,同时使用算法三对所述加密后的智能卡侧认证结果进行解密,并将解密得到的智能卡侧认证结果与所述终端侧认证结果进行比较,若一致,则将所述终端侧认证结果发送给所述智能卡,否则,认证失败,结束本次认证过程;
所述智能卡将收到的所述终端侧认证结果与得出的智能卡侧认证结果进行比较,若一致,则认证成功;
其中,所述算法三为所述算法二的逆运算。
进一步地,所述终端与所述智能卡之间的认证过程,具体包括:
智能卡复位后,终端向所述智能卡发送TERMINAL PROFILE指令;
所述智能卡根据所述TERMINAL PROFILE指令中的双向认证指示位判断出所述终端支持双向认证功能时,发起与所述终端之间的双向认证过程;
智能卡根据认证信息使用算法一得出智能卡侧认证结果后,并使用算法二对所述智能卡侧认证结果进行加密后,将所述认证信息以及加密后的智能卡侧认证结果发送给所述终端;
所述终端根据所述智能卡发送的认证信息使用算法一得出终端侧认证结果,同时使用算法三对所述加密后的智能卡侧认证结果进行解密,并将解密得到的智能卡侧认证结果与所述终端侧认证结果进行比较,若一致,则将所述终端侧认证结果发送给所述智能卡,否则,认证失败,结束本次认证过程;
所述智能卡将收到的所述终端侧认证结果与得出的智能卡侧认证结果进行比较,若一致,则认证通过,否则,认证未通过。
进一步地,所述方法还包括:
所述终端和所述智能卡之间的双向认证通过时,将所述终端及所述智能卡置为机卡认证通过状态或双向认证通过状态;
所述终端和所述智能卡之间的双向认证未通过时,将所述终端及所述智能卡置为机卡锁定状态或双向认证未通过状态,并将所述智能卡的认证信息置为无效信息。
进一步地,所述绑定关系,是指终端信息与智能卡信息的组合;
其中,所述终端信息包括以下信息中的一种或其任意组合:国际移动设备身份标识(IMEI)、电子序列号(ESN)、存储在终端中的参数信息;
所述智能卡信息包括以下信息中的一种或其任意组合:国际移动用户识别号(IMSI)、集成电路卡识别号(ICCID)、存储在智能卡中的参数信息。
进一步地,所述绑定关系的认证过程,具体包括:
所述管理平台查找本地的绑定关系数据库中是否存在所述终端与所述智能卡的绑定关系,若存在,则判定所述绑定关系认证通过,否则,判定所述绑定关系认证未通过。
进一步地,所述方法还包括:
所述管理平台在判定所述三方认证通过时,将所述终端及所述智能卡置为三方认证通过状态或安全状态;判定三方认证未通过时,将所述终端及所述智能卡置为三方认证未通过状态或非安全状态。
进一步地,所述智能卡判断出终端支持双向认证功能时,使用命令状态字向所述终端发送允许认证指令,发起与所述终端之间的双向认证过程。
进一步地,所述方法还包括:
所述智能卡发起与所述终端之间的双向认证过程后,向所述终端发送Get input指令,通知终端获取认证信息。
进一步地,所述方法还包括:
所述终端收到所述Get input指令后,向所述智能卡发送Fetch指令,要求所述智能卡发送智能卡侧认证结果。
进一步地,所述方法还包括:
所述终端比较所述智能卡侧认证结果与所述终端侧认证结果一致时,使用Terminal Response命令将所述终端侧认证结果发送给所述智能卡。
本发明还提供了一种支持双向认证的智能卡,所述智能卡包括:认证处理模块、信息收发模块、认证结果实施模块,
所述认证处理模块用于,发起并执行智能卡与终端之间的双向认证过程;
所述信息收发模块用于,接收终端发送的终端侧认证结果;以及,向终端发送认证信息及智能卡侧认证结果;
所述认证结果实施模块用于,当所述双向认证未通过时,将所述终端及所述智能卡置为机卡锁定状态或双向认证未通过状态,并将所述智能卡的认证信息置为无效信息。
进一步地,所述认证处理模块还用于,根据接收到的所述终端发送的双向认证指示信息、或者根据所述终端发送的TERMINAL PROFILE指令中的双向认证指示位判断出所述终端支持双向认证功能时,发起与所述终端之间的双向认证过程。
本发明还提供了一种三方认证装置,所述装置包括由终端和智能卡组成的终端设备,还包括管理平台;所述终端设备进一步包括绑定关系认证请求模块,所述管理平台进一步包括绑定关系认证模块,其中:
所述绑定关系认证请求模块用于,终端与智能卡之间的认证通过后,向管理平台报告所述终端与所述智能卡的绑定关系,并向所述管理平台请求对所述绑定关系进行认证;
所述绑定关系认证模块用于,对所述终端与所述智能卡的绑定关系进行认证,若所述绑定关系认证通过,则判定三方认证通过,否则,判定三方认证未通过。
此外,所述终端设备进一步还包括终端侧的双向认证模块,和智能卡侧的双向认证模块,
所述智能卡侧的双向认证模块用于,根据认证信息使用算法一得出智能卡侧认证结果,并使用算法二对所述智能卡侧认证结果进行加密后,将所述认证信息以及加密后的智能卡侧认证结果发送给所述终端;并在收到终端侧认证结果后,与得出的所述智能卡侧认证结果进行比较,若一致,则认证成功,否则,认证失败;
所述终端侧的双向认证模块用于,根据所述智能卡发送的认证信息使用算法一得出终端侧认证结果,同时使用算法三对所述加密后的智能卡侧认证结果进行解密,并将解密得到的智能卡侧认证结果与所述终端侧认证结果进行比较,若一致,则将所述终端侧认证结果发送给所述智能卡,否则,认证失败,结束本次认证过程;
其中,所述算法三为所述算法二的逆运算。
进一步地,所述终端设备还包括终端中的指令发送模块,和智能卡中的双向认证发起模块,
所述指令发送模块用于,使用扩展的TERMINAL PROFILE指令中的预留字段或预留位,向所述智能卡发送双向认证指示位,其中所述双向认证指示位用于指示所述终端是否支持双向认证功能;
所述双向认证发起模块用于,根据收到的TERMINAL PROFILE指令中的所述双向认证指示位判断所述终端是否支持双向认证功能,若支持,则发起与所述终端之间的双向认证过程。
进一步地,所述绑定关系认证模块用于,查找所述管理平台本地的绑定关系数据库中是否存在所述终端与所述智能卡的绑定关系,若存在,则判定所述绑定关系认证通过,否则,判定所述绑定关系认证未通过;
所述绑定关系,是指终端信息与智能卡信息的组合;
其中,所述终端信息包括以下信息中的一种或其任意组合:IMEI、ESN、存储在终端中的参数信息;
所述智能卡信息包括以下信息中的一种或其任意组合:IMSI、ICCID、存储在智能卡中的参数信息。
进一步地,所述装置还包括所述智能卡中的认证结果实施模块,
所述认证结果实施模块用于,当所述双向认证过程通过时,将所述终端及所述智能卡置为机卡认证通过状态或双向认证通过状态;当所述双向认证未通过时,将所述终端及所述智能卡置为机卡锁定状态或双向认证未通过状态,并将所述智能卡的认证信息置为无效信息。
采用本发明认证方法,使得终端和智能卡的安全都得到了保证,终端使用伪造的智能卡时,锁定终端,保证了终端的安全,智能卡在被盗或者非法使用时将无法登录网络使用,终端在使用非法智能卡时,也能及时锁定终端,同时这种绑定关系能够被动态的认证,在管理平台侧具有对终端和卡设备的控制管理权,便于运营商开展自己的业务,也保证了开展物联网业务的终端和智能卡的专用性和安全性。
具体实施方式
本发明提供了一种终端和智能卡、管理平台三方认证的方法,包括:
步骤1.智能卡复位后,终端设备为机卡未认证状态,首先进行移动终端和智能卡之间的双向认证,如果终端、智能卡双向认证不通过,转步骤2,如果通过了移动终端和智能卡之间的两方认证,转步骤3。
其中,本发明中所称的终端设备是指由终端和智能卡组成的设备。
步骤2.将状态置为机卡锁定状态(可以锁定终端、设置终端无效等),同时修改智能卡的认证信息,如IMSI(International Mobile SubscriberIdentification Number,国际移动用户识别号)为无效信息,如将IMSI改为空白、随机数、错误信息等,确保智能卡无法使用,认证结束。
步骤3.如果终端和智能卡通过了双向认证,则将状态置为机卡认证通过状态,移动终端向管理平台报告其和智能卡的绑定关系,并请求管理平台对绑定关系进行认证。如果管理平台通过了终端和智能卡的绑定关系认证,则三方认证通过,管理平台向终端返回绑定关系认证通过标志,置状态为安全状态(三方认证通过状态),终端设备可以运行相关物联网应用,否则,置状态为不安全状态(三方认证不通过状态),禁止运行相关物联网应用。终端设备运行相关物联网应用前,判断状态为安全状态(三方认证通过状态),则可以运行相关物联网应用,否则,禁止运行相关物联网应用。
该步骤3中所述的绑定关系,是指终端信息与智能卡信息的组合;
所述终端信息包括以下信息中的一种或其任意组合:IMEI(InternationalMobile Equipment Identity,国际移动设备身份标识)、ESN(Electronic SerialNumbers,电子序列号)、存储在终端中的参数信息等;
所述智能卡信息包括以下信息中的一种或其任意组合:IMSI、ICCID(Integrate Circuit Card Identity,集成电路卡识别号)、存储在智能卡中的参数信息等。
针对终端和智能卡之间的双向认证,本发明提出一种基于扩展TERMINAL PROFILE指令的双向认证方法,其基本构思描述如下:
根据3GPP TS 31.111 V10.2.0(2011-04)、3GPP TS 11.14 V8.18.0(2007-06)以及ETSI TS 131 111 V9.4.0(2011-01)、ETSI TS 102 223 V10.3.0(2011-05)等版本规定的方法,终端开机后将执行Profile download过程,使得终端能够告知智能卡其支持的功能。该Profile download过程是通过终端向智能卡发送TERMINAL PROFILE指令实现的,TERMINAL PROFILE的各个字节、位代表了终端支持的功能。如果该字节的bit位为1,表示终端支持该功能,0为终端不支持该功能。
以3GPP TS 11.14 V8.18.0(2007-06)协议版本为例说明,如TERMINALPROFILE的首字节First byte(Download)的8个bit位b1、b2、b3、b4、b5、b6、b7、b8分别表示:终端是否支持Profile download功能;终端是否支持SMS-PP data download功能;终端是否支持Cell Broadcast data download功能;终端是否支持Menu selection功能;终端是否支持′9EXX′response code forSIM data download error功能;终端是否支持Timer expiration功能;终端是否支持USSD string data object support in Call Control by USIM功能;终端是否支持Envelope Call Control always sent to the SIM during automatic redialmode功能。
结合以上内容,本发明提供的双向认证采用如下方案:通过扩展TERMINAL PROFILE指令中未使用的字节,用于实现终端和智能卡的双向验证功能。即,使用某个字节的第i位(i大于等于1且小于8)表示支持双向认证。例如,通过某个字节的第1位表示是否支持双向认证功能,如图1中所示。终端向智能卡发送TERMINAL PROFILE指令;智能卡处理终端发送的TERMINAL PROFILE指令,如果对应的支持双向认证位为1,则启动智能卡和终端的双向认证。如果移动终端和智能卡双向认证通过,则继续执行后续流程(如网络鉴权过程等),否则终端智能卡认证不通过,置位终端为非正常使用状态(如锁定终端、终端无效等),修改智能卡的认证信息为无效信息(如空白、随机数、错误信息等)。
进一步地,本发明中,终端和智能卡的双向认证过程是采用终端、智能卡认证协议进行认证,如图2所示,智能卡和终端内分别存储算法一和算法二,终端中另外存储算法二的逆算法——算法三,其中,算法一用于根据认证信息获得认证结果,算法二用于对认证结果进行加密,算法三用于对算法二的结果进行解密。管理平台中包括机卡绑定关系数据库,用于保存机卡绑定关系的相应信息。其中,所述的管理平台可以是网络认证平台,应用管理平台,安全管理平台等。
本发明提出一种移动终端和智能卡、管理平台三方认证的方法,如图3所示,该方法具体包括如下流程:
步骤301.终端设备开机,智能卡复位后,终端设备从初始状态转为机卡未认证状态;
步骤302,首先进行移动终端和智能卡之间的两方认证,如果通过了移动终端和智能卡之间的两方认证,转步骤303,如果终端、智能卡双方认证不通过,转步骤304。
步骤303,如果终端和智能卡通过了两方双向认证,则将状态置为机卡认证通过状态,移动终端向管理平台上报其和智能卡的绑定关系,并请求管理平台对绑定关系进行认证。
步骤304,将状态置为机卡锁定状态(可以锁定终端、设置终端无效等),同时修改智能卡的认证信息(尤其IMSI)为无效信息,如将IMSI改为空白、随机数、错误信息等,确保智能卡无法使用,认证结束。
步骤305,管理平台执行移动终端和智能卡、管理平台三方认证过程。
步骤306,如果管理平台通过了终端和智能卡的绑定关系认证,则三方认证通过,管理平台向终端返回绑定关系认证通过标志,并执行步骤307,否则,执行步骤308。
步骤307,终端收到管理平台的认证通过标志,则置终端设备的状态为安全状态(三方认证通过状态),允许终端设备运行相关物联网应用。
步骤308,终端收到管理平台的认证不通过标志,置终端设备的状态为不安全状态(三方认证不通过状态),禁止终端设备运行相关物联网应用。
其中,终端设备运行相关物联网应用前,判断状态为安全状态(三方认证通过状态),则可以运行相关物联网应用,否则,禁止运行相关物联网应用。
如图4所示,本发明所述的移动终端和智能卡双向认证过程具体描述如下:
步骤401,智能卡复位。
步骤402,终端向智能卡发送TERMINAL PROFILE指令。
步骤403,智能卡处理终端发送的TERMINAL PROFILE指令,如果对应的支持双向认证位为1,则执行步骤404,否则,执行步骤405。
步骤404,执行智能卡和终端的双向认证。
步骤405,使用其他认证方式。
步骤406,移动终端和智能卡双向认证是否通过,如果通过,则执行步骤407,否则,执行步骤408。
步骤407,可以正常使用移动终端和智能卡,继续后续流程。
步骤408,置位终端为非正常使用状态(如锁定终端、终端无效等),修改智能卡的认证信息为无效信息(如空白、随机数、错误信息等)。
此外,本发明还提供了一种终端和智能卡的双向认证协议,认证协议如下:
A,智能卡和终端内分别存储算法一和算法二,终端中另外存储算法二的逆算法算法三,算法一用于根据认证信息获得认证结果,算法二用于对认证结果进行加密,算法三用于对算法二的结果进行解密。
B,智能卡向终端发送允许认证指令,并携带参数包括:随机数、国际移动设备识别号(IMSI)、用户鉴权密钥、存于智能卡内的其他信息等其中一个或多个。
C,智能卡根据约定的算法一得出智能卡侧运算结果。并使用算法二进行加密后传送给终端。
D,终端对智能卡传送的加密过的运算结果进行算法二的解密过程,获得智能卡的运算结果,终端根据智能卡发送的信息,使用同样的算法一进行运算,得到终端侧运算结果。如果终端侧运算结果与解密得到的智能卡运算结果一致,则终端侧将自己的运算结果传送给智能卡,转E,否则认证失败,转G。
E,智能卡得到终端的运算结果后,和自己运算得到的结果进行比较,如果相同,则给双向认证通过。否则,转G。
F,认证成功,结束认证,继续后续流程。
G,认证失败,结束认证,置位终端为非正常使用状态(如锁定终端、终端无效等),修改智能卡的认证信息为无效信息(如空白、随机数、错误信息等)。
其中,上述所述算法一和算法二为目前已知的各类算法,包括但不限于如下对称和非对称算法以及它们之间的任意组合:数据加密算法DES,3重数据加密算法3DES,哈希算法HASH,IMSI认证算法A3,RSA算法和错误检查和纠正算法ECC,加密密匙生成算法A5,用户密匙生成算法A8。其中,算法之间的组合是指,如先用其中一个算法后运算后,将得到的结果再用另外一个算法进行运算,等。
如图5示出了本发明中的终端设备在具体应用中的各种状态,如图5所示,终端设备的状态可分为如下几种:
在终端与智能卡尚未进行双向认证时,终端设备的状态为机卡未认证状态;具体地,终端设备的默认状态为起始状态,当终端开机、智能卡刚复位后,终端设备由起始状态转为机卡未认证状态;
当双向认证通过(或者通过其他认证方式通过终端和智能卡的认证)时,终端设备转为机卡双向认证通过状态;
双向认证未通过时,终端设备转为机卡锁定状态;另外,若使用其他认证方式未通过时,终端设备也转为机卡锁定状态;
管理平台对终端与智能卡的绑定关系认证通过时,终端设备转为三方认证通过状态或安全状态;绑定关系认证未通过时,终端设备转为三方认证未通过状态或非安全状态。
如图6所示,采用本发明所述的终端和智能卡的双向认证协议进行认证的具体过程如下:
步骤601,智能卡根据认证信息(包括认证参数等信息)使用约定的算法一得出智能卡侧运算结果(下文中也称作认证结果),并使用算法二进行加密后,向终端发送允许认证指令,并携带认证信息,以及根据认证信息运算的加密的认证结果;
其中,认证信息包括:随机数、国际移动设备识别号(IMSI)、用户鉴权密钥、存于智能卡内的其他信息等其中一个或多个。
步骤602,终端对智能卡传送的加密过的运算结果进行算法三运算(算法二的逆运算),即进行算法二的解密过程,获得智能卡侧认证结果;同时,终端根据智能卡发送的信息,使用同样的算法一进行运算,得到终端侧认证结果。
步骤603,判断智能卡的认证结果是否与终端的认证结果相同,如果相同,则执行步骤604,否则,执行步骤605。
步骤604,如果终端侧运算结果与解密得到的智能卡运算结果一致,则终端侧将自己的运算结果传送给智能卡,转步骤606。
步骤605,如果终端侧运算结果与解密得到的智能卡运算结果不一致,则认证失败,转步骤608。
步骤606,智能卡得到终端的运算结果后,和自己运算得到的结果进行比较,如果相同,则转步骤607,否则,转步骤608。
步骤607,双向认证通过,结束认证,继续后续流程。
步骤608,认证失败,结束认证,置位终端为非正常使用状态(如锁定终端、终端无效等),修改智能卡的认证信息为无效信息(如空白、随机数、错误信息等)。
本发明的管理平台认证的是智能卡和终端之间的绑定关系,只有通过了这个绑定关系的认证,管理平台才允许基于该终端和智能卡的设备运行物联网应用,否则禁止该终端和智能卡的设备运行物联网应用。
在终端设备处于机卡未认证状态时,是指在终端不支持ProfileDownload命令的情况,本发明依然支持采用其他的认证方式处理。在终端不支持ProfileDownload命令的情况下,可以采用其他认证方式使得终端设备的状态转为机卡绑定状态,然后再由管理平台对绑定关系进行认证,达到三方认证通过,终端设备处于安全状态(三方认证通过状态),这里不予详细描述。
管理平台对绑定关系的认证的具体实现如下:
1.移动终端和智能卡之间的两方认证通过后,移动终端向管理平台报告其和智能卡的绑定关系,并请求管理对绑定关系进行认证。
2.管理平台保存有智能卡和终端的绑定关系对应表。
3.管理平台验证该智能卡和终端的绑定关系是否存在,如果绑定关系通过验证,则给终端返回三方认证通过标示。否则,给终端返回三方认证不通过标示。
4.如果终端收到管理平台返回的三方认证通过标示,则置终端设备的状态为安全状态(三方认证通过状态),否则如果收到管理平台返回的三方认证不通过标示,则置终端设备的状态为不安全状态(三方认证不通过状态)。
5.物联网应用被运行前,终端设备首先判断状态是否为安全状态(三方认证通过状态),如果为安全状态(三方认证通过状态)则运行该应用,否则不运行该应用。
另外,提供了一种解除锁定的方法和工具,使得在需要时,可以按需对智能卡和终端进行解除锁定,使之能正常使用。
为使本发明的目的、技术方案和优点更加清楚明白,下文中将结合附图对本发明的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
实施例一
如图7所示,本实施例的终端、智能卡、管理平台成功进行三方认证过程,主要包括:
步骤701,物联网终端开机,智能卡进行复位后,终端执行ProfileDownload流程,终端向智能卡发送TERMINAL PROFILE指令,其中TERMINAL PROFILE指令的第40个字节中的bit1位为1时代表需要进行终端和智能卡双向认证。
步骤702,智能卡收到该指令后,判断TERMINAL PROFILE指令中对应bit位为1,则执行移动终端和智能卡双向认证过程。
具体地,本实施例中是使用随机数和IMSI作为认证信息,智能卡和终端内分别存储算法一和算法二,终端中另外存储算法二的逆算法算法三,算法一用于根据认证信息获得认证结果,算法二用于对认证结果进行加密,算法三用于对算法二的结果进行解密。
步骤703,智能卡使用命令状态字向终端发送允许认证指令。
步骤704,智能卡同时向终端发送Get input指令通知终端获取认证参数。
步骤705,终端接收到命令状态字,识别允许认证,根据Get input命令向智能卡发送Fetch指令,要求智能卡发送其加过密的认证结果。
步骤706,智能卡根据终端请求,使用算法一对认证参数进行运算,并使用算法二进行加密,将认证参数及加密的认证结果使用命令状态字传给终端。
步骤707,终端对智能卡传送的加密过的认证结果使用算法三进行运算(进行算法二的解密过程),获得智能卡的认证结果,终端同时根据智能卡发送的认证信息,使用同样的算法一进行运算,得到终端侧认证结果。终端比较两个认证结果是否一致。
步骤708,终端若比较发现两个认证结果一致,则使用Terminal Response命令给智能卡发送未加密的终端侧认证结果。
步骤709,智能卡得到终端侧认证结果后,和自己运算得到的认证结果进行比较。
步骤710,智能卡比较发现两个认证结果相同,则通过命令状态字通知终端双向认证成功。
步骤711,终端收到通知后则将状态置为机卡认证通过状态,并向管理平台发送终端设备识别号和IMSI等标识移动终端和智能卡的信息,向管理平台报告其和智能卡的绑定关系(通讯手段可以采用现有技术,如短信息,BIP等方式),并发送请求信息给管理平台,请求对绑定关系进行认证。
步骤712,管理平台收到绑定关系的终端设备识别号和IMSI对时,去对应的绑定关系数据库查找终端和智能卡的绑定关系是否存在,发现对应关系存在,则通过三方认证,管理平台向终端返回绑定关系认证通过标志。
终端设备接收到认证通过标志后,则置终端设备状态为安全状态(三方认证通过状态),终端设备运行相关物联网应用前,判断设备的状态为安全状态(三方认证通过状态),开始运行相关物联网应用。
实施例二
图8为本发明实施例中终端、智能卡、管理平台进行三方认证失败的过程,如图8所示,该过程主要包括:
步骤801,终端开机,智能卡进行复位后,终端执行Profile Download流程,终端向智能卡发送TERMINAL PROFILE指令,其中TERMINALPROFILE指令的第50个字节中的bit7位为1时代表需要进行终端和智能卡双向认证。
步骤802,智能卡收到该指令后,判断TERMINAL PROFILE指令中对应bit位为1,因此,执行移动终端和智能卡双向认证过程。
具体地,本实施例中是使用IMSI作为认证信息,智能卡和终端内分别存储算法一和算法二,终端中另外存储算法二的逆算法算法三,算法一用于根据认证信息获得认证结果,算法二用于对认证结果进行加密,算法三用于对算法二的结果进行解密。
步骤803,智能卡使用命令状态字向终端发送允许认证指令。
步骤804,智能卡同时向终端发送Get input指令通知终端获取认证参数。
步骤805,终端接收到命令状态字,识别允许认证,根据Get input命令向智能卡发送Fetch指令,要求智能卡发送其加过密的认证结果。
步骤806,智能卡根据终端请求,使用算法一对认证参数进行运算,并使用算法二进行加密,将认证参数以及加密的认证结果使用命令状态字传给终端。
步骤807,终端对智能卡传送的加密过的认证结果使用算法三进行运算(进行算法二的解密过程),获得智能卡的认证结果,终端同时根据智能卡发送的认证信息,使用同样的算法一进行运算,得到终端侧运算结果。终端比较两个认证结果是否一致。
步骤808,终端比较发现两个认证不结果一致,则使用Terminal Response命令通知智能卡未通过认证。
此时,终端和智能卡结束认证,终端被锁定,无法使用,智能卡的IMSI信息被改为随机数,即使被盗,也无法登网使用,终端设备处于机卡锁定状态。
实施例三
图9为本发明实施例中终端、智能卡、管理平台进行三方认证失败的过程,如图9所示,该过程主要包括:
步骤901,终端开机,智能卡进行复位后,终端执行Profile Download流程,终端向智能卡发送TERMINAL PROFILE指令,其中TERMINALPROFILE指令的第62个字节中的bit1位为1时代表需要进行终端和智能卡双向认证。
步骤902,智能卡收到该指令后,判断TERMINAL PROFILE指令中对应bit位为1,所以执行移动终端和智能卡双向认证过程。
具体地,本实施例中是使用随机数和IMSI作为认证信息,智能卡和终端内分别存储算法一和算法二,终端中另外存储算法二的逆算法算法三,算法一用于根据认证信息获得认证结果,算法二用于对认证结果进行加密,算法三用于对算法二的结果进行解密。
步骤903,智能卡使用命令状态字向终端发送允许认证指令。
步骤904,智能卡同时向终端发送Get input指令通知终端获取认证参数。
步骤905,终端接收到命令状态字,识别允许认证,根据Get input命令向智能卡发送Fetch指令,要求智能卡发送其加过密的认证结果。
步骤906,智能卡根据终端请求,使用算法一对认证参数进行运算,并使用算法二进行加密,将认证参数以及加密的认证结果使用命令状态字传给终端。
步骤907,终端对智能卡传送的加密过的认证结果使用算法三进行运算(进行算法二的解密过程),获得智能卡的认证结果,终端同时根据智能卡发送的认证信息,使用同样的算法一进行运算,得到终端侧运算结果。终端比较两个认证结果是否一致。
步骤908,终端比较发现两个认证结果一致,则使用Terminal Response命令给智能卡发送自己的未加密的认证结果。
步骤909,智能卡得到终端的运算结果后,和自己运算得到的结果进行比较。
步骤910,发现两个认证结果相同,则通过命令状态字通知终端双向认证成功。
步骤911,终端收到通知后则将状态置为机卡认证通过状态,终端向管理平台发送终端设备识别号和IMSI等标识移动终端和智能卡的信息,向管理平台报告其和智能卡的绑定关系(通讯手段可以采用现有技术,如短信息,BIP等方式),并发送请求信息给管理平台,请求对绑定关系进行认证。
步骤912,管理平台收到绑定关系的终端设备识别号和IMSI对时,去对应的绑定关系数据库查找终端和智能卡的绑定关系是否存在,发现对应关系不存存在,则未能通过三方认证,管理平台向终端返回绑定关系认证不通过标志。
终端设备接收到认证不通过标志时,则置终端设备状态为不安全状态(三方认证不通过状态),终端设备运行相关物联网应用前,判断设备的状态为不安全状态(三方认证不通过状态),则禁止运行相关物联网应用。
实施例四
参见图10,本发明实施例中终端不支持Profile download流程的且通过三方认证的过程,主要包括:
步骤1001,物联网设备(终端)开机,智能卡进行复位后,终端执行Profile Download流程,终端向智能卡发送TERMINAL PROFILE指令,其中TERMINAL PROFILE指令的第53个字节中的bit 3位为1时代表需要进行终端和智能卡双向认证。
步骤1002,智能卡收到该指令后,判断TERMINAL PROFILE指令中对应bit位为0,判断终端不支持Profile Download流程。
步骤1003,智能卡不执行移动终端和智能卡双向认证过程,而是使用其他的认证方式并且通过了机卡认证,此时机卡状态也将转为机卡认证通过状态。
步骤1004,终端向管理平台发送终端设备识别号和IMSI等标识移动终端和智能卡的信息,向管理平台报告其和智能卡的绑定关系(通讯手段可以采用现有技术,如短信息,BIP等方式),并发送请求信息给管理平台,请求对绑定关系进行认证。
步骤1005,管理平台收到绑定关系的终端设备识别号和IMSI对时,去对应的绑定关系数据库查找终端和智能卡的绑定关系是否存在,发现对应关系存在,所以通过三方认证,管理平台向终端返回绑定关系认证通过标志。
终端设备接收到认证通过标志时,则置终端设备状态为安全状态(三方认证通过状态),终端设备运行相关物联网应用前,判断设备的状态为安全状态(三方认证通过状态),开始运行相关物联网应用。
此外,本发明实施例中还提供了一种支持双向认证的智能卡,该智能卡包括:认证处理模块、信息收发模块、认证结果实施模块,
认证处理模块用于,发起并执行智能卡与终端之间的双向认证过程;
信息收发模块用于,接收终端发送的终端侧认证结果;以及,向终端发送认证信息及智能卡侧认证结果;
认证结果实施模块用于,当双向认证未通过时,将终端及智能卡置为机卡锁定状态或双向认证未通过状态,并将智能卡的认证信息置为无效信息。
进一步地,认证处理模块还用于,根据接收到的终端发送的双向认证指示信息、或者根据终端发送的TERMINAL PROFILE指令中的双向认证指示位判断出终端支持双向认证功能时,发起与该终端之间的双向认证过程。
此外,本发明实施例中还提供了一种三方认证装置,该装置包括由终端和智能卡组成的终端设备,还包括管理平台;所述的终端设备进一步包括绑定关系认证请求模块,管理平台进一步包括绑定关系认证模块,其中:
绑定关系认证请求模块用于,终端与智能卡之间的认证通过后,向管理平台报告终端与能卡的绑定关系,并向管理平台请求对该绑定关系进行认证;
绑定关系认证模块用于,对终端与智能卡的绑定关系进行认证,若绑定关系认证通过,则判定三方认证通过,否则,判定三方认证未通过。
此外,终端设备进一步还包括终端侧的双向认证模块,和智能卡侧的双向认证模块,
智能卡侧的双向认证模块用于,根据认证信息使用算法一得出智能卡侧认证结果,并使用算法二对所述智能卡侧认证结果进行加密后,将认证信息以及加密后的智能卡侧认证结果发送给终端;并在收到终端侧认证结果后,与得出的智能卡侧认证结果进行比较,若一致,则认证成功,否则,认证失败;
终端侧的双向认证模块用于,根据智能卡发送的认证信息使用算法一得出终端侧认证结果,同时使用算法三对加密后的智能卡侧认证结果进行解密,并将解密得到的智能卡侧认证结果与终端侧认证结果进行比较,若一致,则将终端侧认证结果发送给智能卡,否则,认证失败,结束本次认证过程;
其中,所述算法三为所述算法二的逆运算。
进一步地,终端设备还包括终端中的指令发送模块,和智能卡中的双向认证发起模块,
指令发送模块用于,使用扩展的TERMINAL PROFILE指令中的预留字段或预留位,向智能卡发送双向认证指示位,其中双向认证指示位用于指示终端是否支持双向认证功能;
双向认证发起模块用于,根据收到的TERMINAL PROFILE指令中的双向认证指示位判断终端是否支持双向认证功能,若支持,则发起与终端之间的双向认证过程。
进一步地,绑定关系认证模块用于,查找管理平台本地的绑定关系数据库中是否存在终端与智能卡的绑定关系,若存在,则判定绑定关系认证通过,否则,判定绑定关系认证未通过。
其中,所述的绑定关系,是指终端信息与智能卡信息的组合;
所述终端信息包括以下信息中的一种或其任意组合:IMEI、ESN、存储在终端中的参数信息;
所述智能卡信息包括以下信息中的一种或其任意组合:IMSI、ICCID、存储在智能卡中的参数信息。
进一步地,上述的三方认证装置还包括智能卡中的认证结果实施模块,
认证结果实施模块用于,当双向认证过程通过时,将终端及智能卡置为机卡认证通过状态或双向认证通过状态;当双向认证未通过时,将终端及智能卡置为机卡锁定状态或双向认证未通过状态,并将智能卡的认证信息置为无效信息。
以上仅为本发明的优选实施案例而已,并不用于限制本发明,本发明还可有其他多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的技术人员可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。