具体实施方式
本发明实施例提供了一种实机卡认证的方法,通过机卡交互密钥指示信息,能够实现机卡认证,从而保证了用户识别卡和特定终端的绑定使用,进而有利于规范资费市场。
下面结合附图对本发明实施例作详细描述。
实施例一、
参见图1,是本发明实施例一机卡认证的方法流程图,具体包括:
步骤110、第一端接收第二端发送的第二密钥指示信息;
所述第一端存储有第一组密钥中的第一部分密钥以及第一密钥指示信息,所述第一组密钥中的每个密钥由第一指示参数和第二指示参数确定,所述第一部分密钥的第一指示参数为所述第一密钥指示信息;
第一端可以通过多种方式接收第二端发送的第二密钥指示信息,例如接收包含在流程命令的参数中的第二密钥指示信息。
步骤120、向所述第二端发送所述第一密钥指示信息,使得所述第二端根据所述第一密钥指示信息确定所述第二端存储的第二密钥,并得到所述第二密钥对应的第二密钥信息;
同样可以将第一密钥指示信息包含在流程命令的参数中,向第二端发送所述参数。所述密钥信息可以是密钥本身,也可以是利用认证算法对密钥进行计算后得到的对应结果。
步骤130、接收所述第二端发送的所述第二密钥信息;
同样可以接收包含在流程命令的参数中的第二密钥信息。
步骤140、将所述第一密钥指示信息作为第一指示参数,将所述第二密钥指示信息作为第二指示参数,从所述第一部分密钥中确定第一密钥,并得到所述第一密钥对应的第一密钥信息;
所述密钥信息可以是密钥本身,也可以是将密钥进行计算后得到的对应结果。
步骤150、将所述第一密钥信息和所述第二密钥信息进行比较,在比较出所述密钥信息相同时确定机卡认证通过。
所述第一端可以为用户识别卡,所述第二端可以为终端;或者所述第一端可以为终端,所述第二端可以为用户识别卡。
将接收到第二密钥信息和第一端得到的第一密钥信息进行比较,如果相同,则提示机卡认证通过,如果不同,则提示机卡认证失败。
可以发现,本发明实施例所述方法中,用户识别卡和终端相互掌握对方的密钥指示信息,通过交换密钥指示信息取出各自密钥并进行相应比较,实现了机卡认证,从而保证了用户识别卡和特定终端的绑定使用,有利于规范资费市场。
在具体应用中,根据信息的不同,消息发送方式的不同,本发明实施例机卡认证的方法采用不同的方式实现,下面结合不同的消息发送方式和不同的信息对本发明实施例进一步进行具体描述。
实施例二、
参见图2,是本发明实施例二机卡认证的方法流程图,具体如下:
步骤201、将用户识别卡插入终端并上电;
将用户识别卡插入终端并上电,在机卡认证通过之前,用户识别卡可以先将鉴权功能暂时关闭,具体可以是将用户识别卡鉴权功能的指示标志位设置为DISABLE(使不能)等。所述用户识别卡可以是SIM、UIM卡等。
步骤202、终端将自身预置的密钥组号和列号发送给用户识别卡;
在对密钥的具体应用中,可以对密钥进行分组管理。具体可以是在每个地区分配一组密钥,组的编号为固定值。一般情况下,每组密钥是由16*16=256支密钥组成的一维矩阵,每支密钥为64bits(位)数据,密钥的组号为一字节(8bits)编码。可以在同一地区投放密钥组号相同的UIM/SIM卡和终端。
每组的256支密钥由0-F(16)行及0-F(16)列的一维数列组成,每组的行号和列号也分别为一字节(8bits)编码。每一行密钥的序号,也就是密钥的行号可以是高4bits从0到F,低4bits相同(取值范围为0-F),每个UIM/SIM卡的厂商可以持有一行的16支密钥;每一列密钥的序号,也就是密钥的列号可以是高4bits相同(取值范围为0-F),低4bits从0到F,每个终端的厂商分配一列16支密钥。由此在同一地区内每一个UIM/SIM卡的厂商与每一个终端的厂商可以共同持有一支相同密钥,即双方认证时所用密钥。
密钥、密钥组号、行号、列号在分配时给定,然后由终端及UIM/SIM卡需分别进行存储,密钥的存储格式可以是A-key格式。所述A-key格式数据是一种存储于移动台和HLR/AC(Home Location Register,用户归属位置寄存器)的一个保密的64-bits数据格式,可以用于产生或更新移动台的SSD(SharedSecret Data,共享保密数据)。
终端可以调用现有的用户识别卡命令BASE STATION CHALLENGE(基站查询)命令,调用命令的方式可以是向用户识别卡发送该命令,利用该命令中的RANDSeed(随机种子)参数将密钥的组号和列号发送给用户识别卡。
BASE STATION CHALLENGE命令具体格式:
命令 |
等级 |
INS |
P1 |
P2 |
Lc |
Le |
BASE STATION CHALLENGE |
‘A0’ |
‘8A’ |
‘00’ |
‘00’ |
‘04’ |
‘04’ |
命令参数(RANDSeed)具体为:
XX(组号) |
0X(列号) |
QQ(随机数) |
QQ(随机数) |
RANDSeed参数的前两个字节分别是终端保存的密钥的组号和密钥的列号,后两个字节为随机数。终端可以通过调用用户识别卡的BASE STATIONCHALLENGE命令,将密钥组号和密钥的列号包含在RANDSeed参数中,实现将密钥的组号和密钥的列号发送给用户识别卡的目的。
步骤203、用户识别卡将接收到的终端发送的密钥组号和列号进行保存,将用户识别卡预置的密钥的组号和行号发送给终端;
用户识别卡可以通过建立专门用于保存密钥以及密钥的组号和行号的文件,利用专用的文件可以对密钥进行更有效,更方便的管理。
用户识别卡建立的保存密钥组号和行号的文件格式可以如下表所示,但不局限于此:
用户识别卡建立的保存密钥的文件格式可以如下表所示,但不局限于此:
用户识别卡可建立上述格式的文件,用于对密钥和密钥组号行号进行保存和有效管理,可以建立1个保存密钥组号和行号的文件和16个分别保存16支密钥的文件。
用户识别卡可以利用BASE STATION CHALLENGE命令的响应参数,将用户识别卡预置的密钥的组号和行号发送给终端。
响应参数/数据(RANDBS)具体为:
XX(组号) |
X0(行号) |
QQ(随机数) |
QQ(随机数) |
RANDBS(Rand base station,基站随机数)参数的前两个字节分别为用户识别卡预置的密钥的组号和密钥的行号,后两个字节为随机数。用户识别卡可以利用BASE STATION CHALLENGE命令的响应参数,将密钥组号和密钥的列号包含在的RANDBS参数中,实现将密钥的组号和密钥的行号发送给终端的目的。
步骤204、终端将收到的密钥组号和终端预置的组号进行比较,如果组号相同,进入步骤205,如果组号不同,结束认证流程;
步骤205、终端取出密钥,利用认证算法对密钥进行计算,获得第一执行算法后的数据;
终端可以根据自身预置的列号和接收的用户识别卡发送的行号取出相应的密钥,然后利用认证算法对密钥进行计算,所述认证算法可以是Cave算法,进而获得所述密钥执行Cave算法后的数据。
需要说明的是,终端对组号的比较和终端利用认证算法对密钥进行计算可以是独立的步骤,没有必然的顺序关系,上面的步骤顺序只是为了描述的方便,所以加了步骤的先后顺序。
步骤206、终端将获得的执行认证算法后的数据发送给用户识别卡;
将所述数据发送给用户识别卡的具体方式可以是,终端调用Confirm SSD(Confirm Shared Secret Data,确认共享保密数据)命令,调用命令的方式可以是向用户识别卡发送该命令,利用Confirm SSD命令的参数,将终端密钥执行Cave算法的数据发送给用户识别卡。终端在调用Confirm SSD命令之前还会调用Update SSD(Update Shared Secret Data,更新共享保密数据)命令,UpdateSSD命令为流程命令。
Confirm SSD命令具体格式:
命令 |
等级 |
INS |
P1 |
P2 |
Lc |
Le |
CONFIRM SSD |
‘A0’ |
‘82’ |
‘00’ |
‘00’ |
‘03’ |
空 |
Confirm SSD命令包含有AuthBS(基站鉴权)参数;
终端将所述密钥执行认证算法的数据包含在RANDBS参数中,通过调用Confirm SSD命令,将所述密钥执行认证算法后的数据发送给用户识别卡。
步骤207、用户识别卡接收终端密钥执行认证算法后的数据;
用户识别卡接收到终端密钥执行认证算法后的数据可以暂时保存。
步骤208、用户识别卡根据自身存储的行号和终端发送的列号取出相应的密钥,将所述密钥执行相应的认证算法,获得执行认证算法的数据;
用户识别卡密钥执行的认证算法需要和终端执行的认证算法相同,所述认证算法也可以是Cave算法,从而用户识别卡也获得密钥执行Cave算法的数据。
步骤209、用户识别卡将所述密钥执行认证算法的数据和接收到的终端密钥执行相应认证算法的数据进行比较,如果数据相同,认证通过,用户识别卡将鉴权功能设置为Enable,如果数据不同,提示认证失败。
用户识别卡将取出密钥执行Cave算法获得的数据和接收到的终端密钥执行Cave算法获得的数据进行比较,如果两个数据一致,则Confirm SSD命令执行成功、机卡认证通过,用户识别卡将自身鉴权功能设置为Enable;如果两个数据不一致,则Confirm SSD命令执行不成功、机卡认证失败,可以向终端返回一个认证错误数据,或者在鉴权要求时返回错误鉴权信息。终端根据用户识别卡返回消息判定Confirm SSD结果,如成功,继续后续进程,如失败,提示“机卡认证失败”,并停止后续进程。
需要说明的是,终端和卡利用认证算法对密钥进行计算的步骤是可以相互独立的步骤,没有必然的顺序关系。
需要说明的是,本实施例是通过先利用认证算法对密钥进行计算,将得到的结果进行比较进行举例说明的,但不局限于此,还可以是不对两个密钥进行计算,而是直接比较两个密钥,在两个密钥相同时确定机卡认证通过。
需要说明的是,本实施例是以终端保存组号和列号,用户识别卡保存组号和行号进行举例说明的,当然也可以是终端保存组号和行号,用户识别卡保存组号和列号,通过终端的行号和用户识别卡的列号取出相应密钥,其方法类似。
需要说明的是,本实施类是以在用户识别卡进行密钥执行认证算法后的数据的比较进行举例说明的,当然也可以是在终端进行密钥执行认证算法后的数据的比较,其方法类似。
需要说明的是,本实施例是以组号、行号、列号共同确定相应密钥进行举例说明的,当然也可以是利用其他可以共同确定相应密钥的密钥指示信息取出相应密钥的,其原理类似。
可以看出,本发明实施例,通过用户识别卡和终端相互掌握对方的密钥指示信息,通过交换密钥指示信息取出各自密钥并进行比较,实现了机卡认证,进而通过机卡认证实现了机卡绑定,有利于规范资费市场。
相应的,本发明实施例还提供一种通讯设备。
实施例三、
参见图3,是本发明实施例三提供的一种通讯设备示意图,包括:
第一接收单元310,用于接收对端设备发送的第二密钥指示信息。
当所述通讯设备为用户识别卡,所述对端设备为终端时,第一接收单元310接收第二密钥指示信息的具体方式可以是,接收包含有所述第二密钥指示信息的RANDSeed参数,所述RANDSeed参数归属于所述对端设备调用的BASE STATION CHALLENGE命令的参数。
第一存储单元320,用于存储第一组密钥中的第一部分密钥以及第一密钥指示信息,所述第一组密钥中的每个密钥由第一指示参数和第二指示参数唯一确定,所述第一部分密钥的第一指示参数为所述第一密钥指示信息。
所述第一指示参数可以是密钥的行号,所述第二指示参数可以是密钥的列号;或者所述第一指示参数是密钥的列号,所述第二指示参数是密钥的行号。
发送单元330,用于向所述对端设备发送所述第一密钥指示信息,所述第一密钥指示信息用于指示所述对端设备根据所述第一密钥指示信息确定所述对端设备存储的第二密钥,得到所述第二密钥对应的第二密钥信息。
当所述通讯设备为用户识别卡,所述对端设备为终端时,所述发送单元330发送第二密钥信息的具体方式可以是,发送包含有所述第一密钥指示信息的RANDBS参数,所述RANDBS参数归属于对端设备调用的BASE STATIONCHALLENGE命令的响应参数。
第二接收单元340,用于接收所述对端设备发送的所述第二密钥信息。
当所述通讯设备为用户识别卡,所述对端设备为终端时,所述第二接收单元340接收所述第二密钥信息的具体方式可以是,接收包含有所述第二密钥信息的AuthBS参数,所述AuthBS参数归属于终端调用Confirm SSD命令参数。
获得单元350,用于将所述第一密钥指示信息作为第一指示参数,将所述第二密钥指示信息作为第二指示参数,从所述第一部分密钥中确定第一密钥,并得到所述第一密钥对应的第一密钥信息。
所述第一密钥信息可以为所述第一密钥本身,且所述第二密钥信息为所述第二密钥本身;或者所述第一密钥信息可以由第一认证算法对所述第一密钥进行计算得到,且所述第二密钥信息由所述第一认证算法对所述第二密钥进行计算得到。
认证单元360,用于将所述第一密钥信息和所述第二密钥信息进行比较,在比较出所述密钥信息相同时确定机卡认证通过。
所述认证单元360可以当所述第一密钥信息和第二密钥信息相同时,提示机卡认证通过,不同时,提示机卡认证失败。
所述获得单元350根据所述第二密钥指示信息确定本端存储的第一密钥后,可以利用第一认证算法对所述第一密钥进行计算,得到所述第一密钥对应的第一密钥信息。
所述第一认证算法可以是Cave算法,或者其他可以进行认证的算法。
所述通讯设备可以是用户识别卡,所述对端设备可以是终端,或者所述通讯设备可以是终端,所述对端设备可以是用户识别卡。当所述设备为用户识别卡时,所述用户识别卡可以是SIM或是UIM卡,也可以是其他具有用户识别功能的卡等。
可以看出,所述通讯设备的所述功能可以根据实施例二所述的方法具体实现。
相应的,本发明实施例还提供一种通讯设备。
实施例四、
参见图4,是本发明实施例四提供的一种通讯设备示意图,包括:
第二存储单元410,用于存储第二组密钥中的第二部分密钥以及第二密钥指示信息,所述第二组密钥中的每个密钥由第一指示参数和第二指示参数确定,所述第二部分密钥的第二指示参数为所述第二密钥指示信息。
所述第一指示参数可以是密钥的行号,所述第二指示参数可以是密钥的列号;或者所述第一指示参数是密钥的列号,所述第二指示参数是密钥的行号。
第一发送单元420,用于向对端设备发送第二密钥指示信息。
当所述通讯设备为终端,所述对端设备为用户识别卡时,所述第一发送单元420调用基站查询命令,将第一密钥指示信息包含在所述基站查询命令的RANDSeed参数中,将所述参数发送至对端设备。
接收单元430,用于接收所述对端设备发送的第一密钥指示信息;
获得单元440,用于将所述第一密钥指示信息作为第一指示参数,将所述第二密钥指示信息作为第二指示参数,从所述第二部分密钥中确定第二密钥,并得到所述第二密钥对应的第二密钥信息。
所述第一密钥信息可以为所述第一密钥本身,且所述第二密钥信息为所述第二密钥本身;或者所述第一密钥信息可以由第一认证算法对所述第一密钥进行计算得到,且所述第二密钥信息由所述第一认证算法对所述第二密钥进行计算得到。
第二发送单元450,用于向对端设备发送所述第二密钥信息。
当所述通讯设备为终端,所述对端设备为用户识别卡时,所述第二发送单元450调用Confirm SSD命令,将所述第二密钥信息据包含在所述ConfirmSSD命令的AuthBS参数中,将所述参数发送至对端设备。
所述获得单元440根据所述第一密钥指示信息确定本端存储的第二密钥后,利用第一认证算法对所述第二密钥进行计算,得到所述第二密钥对应的第二密钥信息。
所述第一认证算法可以是Cave算法,或者其他可以进行认证的算法。
所述接收单元430还用于接收对端设备发送的第一组号,所述通讯设备还包括:
比较单元460,用于将所述第二组密钥的第二组号和所述第一组号进行比较。
所述获得单元440具体用于在比较出所述第一组号和第二组号相同时,将所述第一密钥指示信息作为第一指示参数,将所述第二密钥指示信息作为第二指示参数,从所述第二部分密钥中确定第二密钥,并得到所述第二密钥对应的第二密钥信息。
所述比较单元460在比较出组号不同时,可以结束相应认证流程。
需要说明的是,所述通讯设备可以是用户识别卡,所述对端设备可以是终端;或者所述通讯设备可以是终端,所述对端设备可以是用户识别卡。
可以看出,所述通讯设备的所述功能可以根据实施例二所述的方法具体实现。
相应的,本发明实施例还提供一种认证系统。
实施例五、
参见图5,本发明实施例五提供的一种认证系统示意图,包括:第一通讯设备510和第二通讯设备520。
第一通讯设备510,用于存储第一组密钥中的第一部分密钥以及第一密钥指示信息,所述第一组密钥中的每个密钥由第一指示参数和第二指示参数确定,所述第一部分密钥的第一指示参数为所述第一密钥指示信息;发送所述第一密钥指示信息;接收第二密钥指示信息,将所述第一密钥指示信息作为第一指示参数,将所述第二密钥指示信息作为第二指示参数,从所述第一部分密钥中确定第一密钥,并得到所述第一密钥对应的第一密钥信息;发送所述第一密钥信息。
第二通讯设备520,用于存储第二组密钥中的第二部分密钥以及第二密钥指示信息,所述第二组密钥中的每个密钥由第一指示参数和第二指示参数确定,所述第二部分密钥的第二指示参数为所述第二密钥指示信息;发送所述第二密钥指示信息;接收所述第一密钥指示信息;将所述第一密钥指示信息作为第一指示参数,将所述第二密钥指示信息作为第二指示参数,从所述第二部分密钥中确定第二密钥,并得到所述第二密钥对应的第二密钥信息;接收所述第一密钥信息;将所述第一密钥信息和所述第二密钥信息进行比较,在比较出所述密钥信息相同时确定机卡认证通过。
所述第一密钥信息可以为所述第一密钥本身,且所述第二密钥信息为所述第二密钥本身;或者所述第一密钥信息可以由第一认证算法对所述第一密钥进行计算得到,且所述第二密钥信息由所述第一认证算法对所述第二密钥进行计算得到。
所述第一指示参数可以是密钥的行号,所述第二指示参数可以是密钥的列号;或者所述第一指示参数可以是密钥的列号,所述第二指示参数可以是密钥的行号。
所述第一通讯设备510可以利用第一认证算法对第一密钥进行计算,得到第一密钥信息;
所述第二通讯设备520可以利用第一认证算法对第二密钥进行计算,得到第二密钥信息。
所述第一认证算法可以是Cave算法,或者其他可以进行认证的算法。
所述第一通讯设备510和所述第二通讯设备520可以利用现有的命令流程进行相应的信息传输。
所述第一通讯设备510可以是用户识别卡,所述第二通讯设备520可以是终端,或者所述第一通讯设备510可以是终端,所述第二通讯设备520可以是用户识别卡。
需要说明的是,所述第一通讯设备510可以是如实施例四所述的通讯设备,所述第二通讯设备520可以是如实施例三所述的通讯设备。
可以看出,所述通讯设备的所述功能可以根据实施例二所述的方法具体实现。
综上所述,本实施例方法通过机卡之间交互密钥指示信息,用户识别卡和终端通过交互的密钥指示信息确定相应密钥,比较密钥对应的密钥信息,在所述密钥信息相同时确定机卡认证通过,实现了机卡认证,通过机卡认证实现了机卡绑定,使得卡和终端可以绑定使用,有利于规范资费市场。
进一步的本发明实施例针对信息的不同,消息发送方式的不同,提出了不同的处理流程,应用更为灵活。
以上对本发明实施例所提供的一种机卡认证的方法、通讯设备和认证系统进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。