客户端注册方法、装置及系统与流程

文档序号:20050113发布日期:2020-03-03 04:32阅读:274来源:国知局
客户端注册方法、装置及系统与流程

【技术领域】

本发明涉及通信技术领域和互联网技术领域,尤其涉及客户端注册方法、装置及系统。



背景技术:

用于3g以上网络的全球用户识别模块(usim,universalsubscriberidentitymodule)和用于ims网络的ip多媒体服务识别模块(ipmultimediaservicesidentitymodule,isim),是通信运营商用于鉴别签约用户的身份、符合3gpp标准规范的ic集成电路设备。

esim作为一种嵌入式sim卡,实质上是将sim卡上的用户数据和加密信息由原来存储在物理sim卡转移到用户终端设备本身的另一个硬件载体上;软sim是通过纯软件方式代替物理sim卡实现sim的功能,同样安全地存储有用户数据和密钥信息。

无论是哪一种sim卡类型,sim卡里都存储有签约用户的移动用户标识和密钥信息,为了表述方便,对于上述存储有移动通信网络签约用户的身份标识和密钥信息的模块统称为“用户识别模块sim”。相应地,归属用户服务器hss(homesubscriberserver,归属用户服务器)和统一数据管理(unifieddatamanagement,udm)是移动通信网络的用户数据系统,里面存储了与用户识别模块sim中对应的移动用户标识和密钥信息。

随着用户智能终端(如智能手机)的广泛使用,用户在用户智能终端上会安装有大量的第三方应用客户端,而第三方应用客户端在使用时,往往需要获取终端用户的认证信息之后才能向第三方应用服务器实现身份认证和获取应用服务,而这些认证信息通常是需要终端用户手工输入或预先配置的,例如输入账号及相应的口令、预先配置共享密钥等,但这些操作都较为烦琐和影响用户的使用体验。



技术实现要素:

本发明的主要目的在于提供一种客户端注册方法、装置及系统,旨在提供一种为用户终端中运行的第三方应用客户端能安全、自动地获取注册信息的方法、装置及系统,从而能为第三方应用客户端自动获取包括第三方用户标识、用户密钥、应用密钥和用户令牌等在内的注册信息,进而解决现有第三方应用客户端在注册账号、协商共享密钥、获取用户令牌、用户身份认证等过程中使用较为烦琐从而影响用户使用体验的技术问题。

为达到上述目的,本发明提供了以下技术方案:

第一方面,提供了一种客户端注册方法,应用于运行有第三方应用客户端的用户终端中,所述方法包括:

基于用户识别模块sim与注册服务器基于用户数据系统进行认证与密钥协商,若所述认证与密钥协商成功,则生成第一根密钥,以及获取所述注册服务器传递的临时用户标识;

基于所述临时用户标识和所述第一根密钥与所述注册服务器进行安全认证;

将第三方应用标识传递给所述注册服务器,所述第三方应用标识为所述第三方应用客户端的标识;

在所述安全认证成功之后,接收所述注册服务器为所述第三方应用客户端提供的注册信息和服务。

优选的,所述用户终端与所述注册服务器通过数据网络连接。

优选的,所述数据网络包括因特网、移动互联网。

优选的,所述用户终端通过移动数据连接、wifi连接或/和wlan连接接入所述移动互联网。

优选的,所述移动数据包括3g移动数据、4g移动数据、5g移动数据或6g移动数据。

优选的,所述基于用户识别模块sim与注册服务器基于用户数据系统进行认证与密钥协商包括:

获取所述用户识别模块sim的移动用户标识;

向所述注册服务器发送认证与密钥协商请求,所述认证与密钥协商请求包括所述移动用户标识;

接收所述注册服务器发送的认证与密钥协商挑战消息,所述认证与密钥协商挑战消息包括随机数rand和鉴权令牌autn;

向所述用户识别模块sim发送鉴权请求,所述鉴权请求包括所述随机数rand和所述鉴权令牌autn;

接收所述用户识别模块sim的返回值,所述返回值包括期望响应值res、第一加密密钥ck和第一完整性密钥ik;

向所述注册服务器发送认证与密钥协商挑战应答消息,所述认证与密钥协商挑战应答消息包括第一期望响应值,所述第一期望响应值是基于所述期望响应值res生成的;

接收所述注册服务器发送的认证与密钥协商成功应答消息,所述认证与密钥协商成功应答消息是在所述注册服务器验证所述第一期望响应值有效之后发送的;

基于所述第一加密密钥ck或/和所述第一完整性密钥ik生成第一初始密钥,基于所述第一初始密钥生成所述第一根密钥,以及获取所述注册服务器传递的所述临时用户标识,其中,所述第一初始密钥的生成方式与所述注册服务器从所述用户数据系统获取的第二初始密钥的生成方式一致,所述第一根密钥的生成方式与所述注册服务器生成第二根密钥的生成方式一致。

优选的,所述用户识别模块sim为全球用户识别模块usim,所述用户数据系统为归属用户服务器hss,则:

所述移动用户标识为国际移动用户识别码imsi;

所述第一期望响应值为所述期望响应值res;或者,所述第一期望响应值为对所述期望响应值res哈希计算后所生成的哈希值;

所述基于所述第一加密密钥ck或/和所述第一完整性密钥ik生成第一初始密钥包括:将所述第一加密密钥ck或/和所述第一完整性密钥ik作为所述第一初始密钥;或者,基于所述第一加密密钥ck或/和所述第一完整性密钥ik生成第一密钥kasme,所述第一密钥kasme为所述第一初始密钥。

优选的,所述用户识别模块sim为全球用户识别模块usim,所述用户数据系统为统一用户管理udm,则:

所述移动用户标识为用户永久标识supi;

所述第一期望响应值为期望响应值res*,所述期望响应值res*是基于所述期望响应值res生成的;或者,所述第一期望响应值为对所述期望响应值res*哈希计算后所生成的哈希值;

所述基于所述第一加密密钥ck或/和所述第一完整性密钥ik生成第一初始密钥包括:基于所述第一加密密钥ck或/和所述第一完整性密钥ik生成第一密钥kausf,所述第一密钥kausf为所述第一初始密钥。

优选的,所述向所述注册服务器发送认证与密钥协商请求还包括:

将所述用户永久标识supi加密生成用户隐藏标识suci;

在所述向所述注册服务器发送的认证与密钥协商请求中,将所述用户隐藏标识suci作为所述移动用户标识。

优选的,所述基于所述第一初始密钥生成所述第一根密钥包括:

将所述第一初始密钥作为所述第一根密钥;或者,

基于包括所述第一初始密钥的信息生成所述第一根密钥。

优先的,所述基于包括所述第一初始密钥的信息生成所述第一根密钥包括:

基于包括所述第一初始密钥以及第四固定字符串或/和第四随机字符串或/和第四时间戳或/和所述移动用户标识的信息生成所述第一根密钥,所述第四固定字符串为预先配置的并且与所述注册服务器预先配置的第四固定字符串的值相同的字符串,所述第四随机字符串或/和所述第四时间戳为所述注册服务器所传递的。

优选的,所述获取所述注册服务器传递的临时用户标识包括:

根据所述随机数rand生成所述临时用户标识,并且所述生成所述临时用户标识的生成方式与所述注册服务器生成临时用户标识的生成方式相同;或者,

接收所述注册服务器传递的临时用户标识,获取所述传递的临时用户标识为所述临时用户标识。

优选的,所述基于所述临时用户标识和所述第一根密钥与所述注册服务器进行安全认证包括:

基于所述第一根密钥对第一验证信息加密生成第一加密值,所述第一验证信息与所述注册服务器生成的第二验证信息的值相同;

将所述临时用户标识和所述第一加密值发送给所述注册服务器;

若所述注册服务器验证所述第一加密值有效,则确定安全认证成功。

优先的,所述基于所述第一根密钥对第一验证信息加密生成第一加密值包括:

基于所述第一根密钥生成第一认证密钥,其中,所述第一认证密钥的生成方式与所述注册服务器生成第二认证密钥的生成方式一致,以使得所述第一认证密钥与所述注册服务器生成的所述第二认证密钥的值相同;

生成所述第一验证信息,其中,所述第一验证信息的生成方式与所述注册服务器生成所述第二验证信息的生成方式一致,以使得所述第一验证信息与所述注册服务器生成的所述第二验证信息的值相同;

基于所述第一认证密钥对所述第一验证信息加密生成第一加密值。

优先的,所述基于所述第一根密钥生成第一认证密钥包括:

将所述第一根密钥作为所述第一认证密钥;或者,

基于包括所述第一根密钥的信息生成所述第一认证密钥。

优先的,所述基于包括所述第一根密钥的信息生成所述第一认证密钥包括:

基于包括所述第一根密钥以及第一固定字符串或/和第一随机字符串或/和第一时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息生成所述第一认证密钥,所述第一固定字符串为预先配置的并且与所述注册服务器预先配置的第一固定字符串的值相同的字符串,所述第一随机字符串为随机生成的字符串,所述第一时间戳为通过获取当前系统时间生成;

若生成所述第一认证密钥的信息包括所述第一随机字符串或/和所述第一时间戳或/和所述第三方应用标识,则将所述第一随机字符串或/和所述第一时间戳或/和所述第三方应用标识传递给所述注册服务器。

优先的,所述生成所述第一验证信息包括:

基于包括第二固定字符串或/和第二随机字符串或/和第二时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息生成所述第一验证信息,所述第二固定字符串为预先配置的并且与所述注册服务器预先配置的第二固定字符串的值相同的字符串,所述第二随机字符串为随机生成的字符串,所述第二时间戳为通过获取当前系统时间生成;

若生成所述第一验证信息包括基于所述第二随机字符串或/和所述第二时间戳或/和所述第三方应用标识,则将所述第二随机字符串或/和所述第二时间戳或/和所述第三方应用标识传递给所述注册服务器。

优先的,所述基于包括第二固定字符串或/和第二随机字符串或/和第二时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息生成所述第一验证信息包括:

将所述第二固定字符串或所述第二随机字符串或所述第二时间戳或所述临时用户标识或所述第三方应用标识中的一种作为所述第一验证信息;或者,

将所述第二固定字符串或所述第二随机字符串或所述第二时间戳或所述临时用户标识或所述第三方应用标识中的一种生成的哈希值作为所述第一验证信息;或者,

将包括所述第二固定字符串或/和所述第二随机字符串或/和所述第二时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息组合拼接后作为所述第一验证信息;或者,

将包括所述第二固定字符串或/和所述第二随机字符串或/和所述第二时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息组合拼接后哈希计算生成的哈希值作为所述第一验证信息。

优先的,所述基于所述第一认证密钥对所述第一验证信息加密生成第一加密值包括:

使用签名加密算法基于所述第一认证密钥对所述第一验证信息签名加密生成所述第一加密值;或者,使用对称加密算法基于所述第一认证密钥对包括所述第一验证信息的信息对称加密生成所述第一加密值。

优选的,所述将第三方应用标识传递给所述注册服务器包括:

在所述安全认证过程中,将第三方应用标识传递给所述注册服务器;或者,

在所述安全认证过程之后,以及在所述接收所述注册服务器为所述第三方应用客户端提供的注册信息和服务之前,将第三方应用标识传递给所述注册服务器。

优选的,所述接收所述注册服务器为所述第三方应用客户端提供的注册信息和服务包括:

接收所述注册服务器传递的第三方用户标识,所述第三方用户标识用于在所述第三方应用客户端中标识用户身份;或/和,

基于所述第一根密钥生成第一应用密钥,所述第一应用密钥的生成方式与所述注册服务器生成第二应用密钥的生成方式一致,所述第一应用密钥用于在所述第三方应用客户端中作为所述临时用户标识的密钥;或/和,

接收所述注册服务器传递的第一用户令牌、第二用户令牌或第三用户令牌,所述第一用户令牌、第二用户令牌或第三用户令牌用于所述第三方应用客户端访问对应第三方应用服务器的认证鉴权。

优先的,所述接收所述注册服务器传递的第三方用户标识之后还包括:

基于所述第一根密钥生成第一用户密钥,所述第一用户密钥的生成方式与所述注册服务器生成第二用户密钥的生成方式一致,所述第一用户密钥用于在所述第三方应用客户端中作为所述第三方用户标识的密钥。

优先的,所述基于所述第一根密钥生成第一用户密钥包括:

基于包括所述第一根密钥以及第三固定字符串或/和第三随机字符串或/和第三时间戳或/和所述临时用户标识或/和所述第三方应用标识或/和所述第三方用户标识的信息生成第一用户密钥,所述第三固定字符串为预先配置的并且与所述注册服务器预先配置的第三固定字符串的值相同的字符串,所述第三随机字符串或/和所述第三时间戳为所述注册服务器所传递的。

优先的,所述基于所述第一根密钥生成第一应用密钥包括:

基于包括所述第一根密钥以及第五固定字符串或/和第五随机字符串或/和第五时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息生成第一应用密钥,所述第五固定字符串为预先配置的并且与所述注册服务器预先配置的第五固定字符串的值相同的字符串,所述第五随机字符串或/和所述第五时间戳为所述注册服务器所传递的。

优选的,在所述向所述注册服务器传递第三方应用标识和在所述安全认证成功之后,以及在所述接收所述注册服务器为所述第三方应用客户端提供的注册信息和服务之前,还包括:

向所述注册服务器发送经终端用户确认的授权信息。

优先的,所述向所述注册服务器发送经终端用户确认的授权信息包括:

接收所述注册服务器发送的应用授权请求消息;

显示应用授权验证界面;

接收终端用户在所述应用授权验证界面中输入的授权信息;

若所述授权信息表示确认授权,则向所述注册服务器发送应用授权应答消息,所述应用授权应答消息为应用授权确认消息。

第二方面,提供了一种客户端注册方法,应用于注册服务器中,所述方法包括:

基于用户数据系统与用户终端基于用户识别模块sim进行认证与密钥协商,若所述认证与密钥协商成功,则生成第二根密钥,生成临时用户标识并传递给所述用户终端,以及建立所述临时用户标识与所述第二根密钥的关联关系;

基于所述关联关系与所述用户终端进行安全认证,以及获取所述临时用户标识;

获取所述用户终端传递的第三方应用标识,所述第三方应用标识为所述用户终端中运行的第三方应用客户端的标识;

在所述安全认证成功之后,根据所述临时用户标识和所述第三方应用标识向所述用户终端提供注册信息和服务,所述注册信息和服务为向所述第三方应用客户端提供的注册信息和服务。

优先的,所述注册服务器与所述用户终端通过数据网络连接。

优先的,所述数据网络包括因特网、移动互联网。

优先的,所述基于用户数据系统与用户终端基于用户识别模块sim进行认证与密钥协商包括:

接收所述用户终端发送的认证与密钥协商请求,所述认证与密钥协商请求包括移动用户标识,所述移动用户标识为所述用户识别模块sim的移动用户标识;

向所述用户数据系统发送认证请求,所述认证请求包括所述移动用户标识;

接收所述用户数据系统反馈的认证应答,所述认证应答包括随机数rand、鉴权令牌autn、第二初始密钥和第二期望响应值;

向所述用户终端发送认证与密钥协商挑战消息,所述认证与密钥协商挑战消息包括所述随机数rand和所述鉴权令牌autn;

接收所述用户终端发送的认证与密钥协商挑战应答消息,所述认证与密钥协商挑战应答消息包括第一期望响应值;

基于所述第二期望响应值验证所述第一期望响应值;

若验证所述第一期望响应值有效,则基于所述第二初始密钥生成所述第二根密钥,生成临时用户标识并传递给所述用户终端,以及建立所述临时用户标识与所述第二根密钥的关联关系,向所述用户终端发送认证与密钥协商成功应答消息,其中,所述第二根密钥的生成方式与所述用户终端生成第一根密钥的生成方式一致。

优先的,所述基于所述第二期望响应值验证所述第一期望响应值包括:

所述第一期望响应值为明文,比较所述第二期望响应值与所述第一期望响应值是否一致,若一致则确定所述第一期望响应值有效;或者,

所述第一期望响应值为哈希计算后的哈希值,则将所述第二期望响应值使用相同的哈希计算方式计算生成哈希值,并且比较两个哈希值是否一致,若一致则确定所述第一期望响应值有效。

优先的,所述用户数据系统为归属用户服务器hss,则:

所述移动用户标识为国际移动用户识别码imsi;

所述第二期望响应值为期望响应值xres;

所述第二初始密钥为第二加密密钥ck或/和第二完整性密钥ik;或者,所述第二初始密钥为第二密钥kasme。

优先的,所述用户数据系统为统一用户管理udm,则:

所述移动用户标识为用户永久标识supi;

所述第二期望响应值为期望响应值xres*;

所述第二初始密钥为第二密钥kausf。

优先的,所述移动用户标识为对所述用户永久标识supi加密后生成的用户隐藏标识suci,将所述用户隐藏标识suci作为所述向所述用户数据系统发送的认证请求中所包括的所述移动用户标识,在所述认证应答中还包括所述用户数据系统对所述用户隐藏标识suci解密后得到的所述用户永久标识supi,将所述解密后得到的所述用户永久标识supi作为后续步骤中的所述移动用户标识。

优先的,所述基于所述第二初始密钥生成所述第二根密钥包括:

将所述第二初始密钥作为所述第二根密钥;或者,

基于包括所述第二初始密钥的信息生成所述第二根密钥。

优先的,所述基于包括所述第二初始密钥的信息生成所述第二根密钥包括:

基于包括所述第二初始密钥以及第四固定字符串或/和第四随机字符串或/和第四时间戳或/和所述移动用户标识的信息生成所述第二根密钥,所述第四固定字符串为预先配置的并且与所述用户终端预先配置的第四固定字符串的值相同的字符串,所述第四随机字符串为随机生成的字符串,所述第四时间戳为通过获取当前系统时间生成;

若生成所述第二根密钥的信息包括所述第四随机字符串或/和所述第四时间戳,则将所述第四随机字符串或/和所述第四时间戳传递给所述用户终端。

优先的,所述生成临时用户标识并传递给所述用户终端包括:

根据所述随机数rand生成所述临时用户标识,并且所述用户终端在接收到所述随机数rand之后,在所述用户终端上使用相同的生成方式根据所述随机数rand生成所述临时用户标识;或者,

随机或按照一定规则生成所述临时用户标识,并且将所述临时用户标识传递给所述用户终端。

优先的,所述基于所述关联关系与所述用户终端进行安全认证包括:

接收所述用户终端发送的所述临时用户标识和第一加密值;

根据所述临时用户标识在所述关联关系中获取所述第二根密钥;

基于所述第二根密钥和第二验证信息验证所述第一加密值,所述第二验证信息与所述用户终端生成的第一验证信息的值相同;

若验证所述第一加密值有效,则确定安全认证成功。

优先的,所述基于所述第二根密钥和第二验证信息验证所述第一加密值包括:

基于所述第二根密钥生成第二认证密钥,其中,所述第二认证密钥的生成方式与所述用户终端生成第一认证密钥的生成方式一致,以使得所述第二认证密钥与所述用户终端生成的所述第一认证密钥的值相同;

生成所述第二验证信息,其中,所述第二验证信息的生成方式与所述用户终端生成第一验证信息的生成方式一致,以使得所述第二验证信息与所述用户终端生成的所述第一验证信息的值相同;

基于所述第二认证密钥和所述第二验证信息验证所述第一加密值。

优先的,所述基于所述第二根密钥生成第二认证密钥包括:

将所述第二根密钥作为所述第二认证密钥;或者,

基于包括所述第二根密钥的信息生成所述第二认证密钥。

优先的,所述基于包括所述第二根密钥的信息生成所述第二认证密钥包括:

基于包括所述第二根密钥以及第一固定字符串或/和第一随机字符串或/和第一时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息生成所述第二认证密钥,所述第一固定字符串为预先配置的并且与所述用户终端预先配置的第一固定字符串的值相同的字符串,所述第一随机字符串或/和所述第一时间戳或/和所述第三方应用标识为所述用户终端所传递的。

优先的,所述生成所述第二验证信息包括:

基于包括第二固定字符串或/和第二随机字符串或/和第二时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息生成所述第二验证信息,所述第二固定字符串为预先配置的并且与所述用户终端预先配置的第二固定字符串的值相同的字符串,所述第二随机字符串或/和所述第二时间戳或/和所述第三方应用标识为所述用户终端所传递的。

优先的,所述基于包括第二固定字符串或/和第二随机字符串或/和第二时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息生成所述第二验证信息包括:

将所述第二固定字符串或所述第二随机字符串或所述第二时间戳或所述临时用户标识或所述第三方应用标识中的一种作为所述第二验证信息;或者,

将所述第二固定字符串或所述第二随机字符串或所述第二时间戳或所述临时用户标识或所述第三方应用标识中的一种生成的哈希值作为所述第二验证信息;或者,

将包括所述第二固定字符串或/和所述第二随机字符串或/和所述第二时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息组合拼接后作为所述第二验证信息;或者,

将包括所述第二固定字符串或/和所述第二随机字符串或/和所述第二时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息组合拼接后哈希计算生成的哈希值作为所述第二验证信息。

优先的,所述基于所述第二认证密钥和所述第二验证信息验证所述第一加密值包括:

若所述用户终端使用签名加密算法生成所述第一加密值,则使用相同的签名加密算法基于所述第二认证密钥和所述第二验证信息验证所述第一加密值;或者,

若所述用户终端使用对称加密算法生成所述第一加密值,则使用相同的对称加密算法基于所述第二认证密钥和所述第二验证信息验证所述第一加密值。

优先的,所述使用相同的签名加密算法基于所述第二认证密钥和所述第二验证信息验证所述第一加密值包括:

使用和所述用户终端相同的签名加密算法,基于所述第二认证密钥对所述第二验证信息签名加密生成第二加密值;

比较所述第二加密值与所述第一加密值是否一致;

若一致,则确定验证所述第一加密值有效。

优先的,所述使用相同的对称加密算法基于所述第二认证密钥和所述第二验证信息验证所述第一加密值包括:

使用和所述用户终端相同的对称加密算法,基于所述第二认证密钥对所述第一加密值解密获得明文,并从所述解密获得的明文中获取第一验证信息;

比较所述第二验证信息与所述解密获取的第一验证信息是否一致;

若一致,则确定验证所述第一加密值有效。

优先的,所述获取所述用户终端传递的第三方应用标识包括:

在所述安全认证过程中,接收所述用户终端传递的第三方应用标识;或者,

在所述安全认证过程之后,以及在所述根据所述临时用户标识和所述第三方应用标识向所述用户终端提供注册信息和服务之前,接收所述用户终端传递的第三方应用标识。

优先的,所述根据所述临时用户标识和所述第三方应用标识向所述用户终端提供注册信息和服务包括:

根据所述临时用户标识和所述第三方应用标识获取对应的第三方用户标识,向所述用户终端传递所述第三方用户标识,以使得所述第三方用户标识用于在所述第三方应用客户端中标识用户身份;或/和,

基于所述第二根密钥生成第二应用密钥,以及建立所述临时用户标识和所述第三方应用标识与所述第二应用密钥的对应关系,所述第二应用密钥的生成方式与所述用户终端生成第一应用密钥的生成方式一致;或/和,

生成与所述临时用户标识和所述第三方应用标识相关联的第一用户令牌,向所述用户终端传递所述第一用户令牌,以使得所述第一用户令牌用于在所述第三方应用客户端中访问对应第三方应用服务器的认证鉴权;或/和,

根据所述临时用户标识获取用户身份标识,生成与所述用户身份标识和所述第三方应用标识相关联的第二用户令牌,向所述用户终端传递所述第二用户令牌,以使得所述第二用户令牌用于在所述第三方应用客户端中访问对应第三方应用服务器的认证鉴权;或/和,

根据所述临时用户标识和所述第三方应用标识获取对应的第三方用户标识,生成与所述第三方用户标识和所述第三方应用标识相关联的第三用户令牌,向所述用户终端传递所述第三用户令牌,以使得所述第三用户令牌用于在所述第三方应用客户端中访问对应第三方应用服务器的认证鉴权。

优先的,所述根据所述临时用户标识和所述第三方应用标识获取对应的第三方用户标识包括:

根据所述临时用户标识获取用户身份标识;

根据所述用户身份标识和所述第三方应用标识查找对应的第三方用户标识;

若查找到对应的第三方用户标识,则确定所述查找到的对应的第三方用户标识为所述第三方用户标识;

若没有查找到对应的第三方用户标识,则创建一个唯一的第三方用户标识,确定所述唯一的第三方用户标识为所述第三方用户标识,并且建立所述用户身份标识和所述第三方应用标识与所述唯一的第三方用户标识的对应关系,以使得根据所述用户身份标识和所述第三方应用标识能查找到所述唯一的第三方用户标识。

优选的,所述根据所述临时用户标识获取用户身份标识包括:

根据所述临时用户标识在临时用户标识与移动用户标识的关联关系中获取移动用户标识,将所述移动用户标识确定为所述用户身份标识,所述临时用户标识与移动用户标识的关联关系是在生成所述临时用户标识时建立的;或者,

根据所述移动用户标识获取对应的msisdn,将所述对应的msisdn确定为所述用户身份标识;或者,预先建立有临时用户标识与用户身份标识的关联关系,根据所述临时用户标识在所述临时用户标识与用户身份标识的关联关系中获取所述用户身份标识,所述临时用户标识与用户身份标识的关联关系是在生成所述临时用户标识时建立的。

优先的,在所述根据所述临时用户标识和所述第三方应用标识获取对应的第三方用户标识之后还包括:

基于所述第二根密钥生成第二用户密钥,所述第二用户密钥的生成方式与所述用户终端生成第一用户密钥的生成方式一致;

建立所述第三方用户标识与所述第二用户密钥的对应关系。

优先的,所述基于所述第二根密钥生成第二用户密钥包括:

基于包括所述第二根密钥以及第三固定字符串或/和第三随机字符串或/和第三时间戳或/和所述移动用户标识或/和所述第三方应用标识或/和所述第三方用户标识的信息生成第二用户密钥,所述第三固定字符串为预先配置的并且与所述用户终端预先配置的第三固定字符串的值相同的字符串,所述第三随机字符串为随机生成的字符串,所述第三时间戳为通过获取当前系统时间生成;

若生成所述第二用户密钥的信息包括所述第三随机字符串或/和所述第三时间戳,则将所述第三随机字符串或/和所述第三时间戳传递给所述用户终端。

优先的,所述基于所述第二根密钥生成第二应用密钥包括:

基于包括所述第二根密钥以及第五固定字符串或/和第五随机字符串或/和第五时间戳或/和所述临时用户标识或/和所述第三方应用标识的信息生成第二应用密钥,所述第五固定字符串为预先配置的并且与所述用户终端预先配置的第五固定字符串的值相同的字符串,所述第五随机字符串为随机生成的字符串,所述第五时间戳为通过获取当前系统时间生成;

若生成所述第二应用密钥的信息包括所述第五随机字符串或/和所述第五时间戳,则将所述第五随机字符串或/和所述第五时间戳传递给所述用户终端。

优先的,所述生成与所述临时用户标识和所述第三方应用标识相关联的用户令牌包括:

使用随机生成的全局唯一字符串作为所述用户令牌;

建立所述用户令牌与所述临时用户标识和所述第三方应用标识的关联关系,以使得根据所述用户令牌能获取到所述临时用户标识和所述第三方应用标识。

优先的,在接收所述用户终端传递的第三方应用标识和在所述安全认证成功之后,以及在所述根据所述临时用户标识和所述第三方应用标识向所述用户终端提供注册信息和服务之前,还包括:

获取所述用户终端发送的经终端用户确认的授权信息,若获取到所述用户终端发送的经终端用户确认的授权信息,则执行所述根据所述临时用户标识和所述第三方应用标识向所述用户终端提供注册信息和服务。

优先的,所述获取所述用户终端发送的经终端用户确认的授权信息包括:

向所述用户终端发送应用授权请求消息;

接收所述用户终端发送的应用授权应答消息;

若所述应用授权应答消息为应用授权确认消息,则执行所述根据所述临时用户标识和所述第三方应用标识向所述用户终端提供注册信息和服务。

优先的,所述应用授权请求消息包括:

第三方应用名称,所述第三方应用名称是所述第三方应用标识所对应的第三方应用名称;或/和,

移动用户名称,所述移动用户名称是根据所述临时用户标识所获取的移动用户名称。

第三方面,提供一种客户端注册装置,其特征在于,所述客户端注册装置应用于运行有第三方应用客户端的用户终端中,包括:存储器、处理器,所述处理器用于运行所述存储器所存储的程序,所述程序运行时执行包括上述第一方面应用于运行有第三方应用客户端的用户终端中任一项所述的方法。

提供一种客户端注册装置,其特征在于,所述客户端注册装置应用于注册服务器,包括:存储器、处理器,所述处理器用于运行所述存储器所存储的程序,所述程序运行时执行包括上述第二方面应用于注册服务器中任一项所述的方法。

提供一种客户端注册系统,其特征在于,所述客户端注册系统包括:用户终端以及注册服务器;所述用户终端包括上述应用于运行有第三方应用客户端的用户终端的客户端注册装置;所述注册服务器包括上述应用于注册服务器的客户端注册装置。

提供一种存储介质,其特征在于,所述存储介质中存储有程序,所述程序用于实现包括上述第一方面应用于运行有第三方应用客户端的用户终端中的任一项所述方法。

提供一种存储介质,其特征在于,所述存储介质中存储有程序,所述程序用于实现包括上述第二方面应用于注册服务器中的任一项所述方法。

本发明实现了用户终端基于用户识别模块sim、注册服务器基于用户数据系统为第三方应用客户端自动获取包括第三方用户标识、用户密钥、应用密钥或用户令牌等在内的注册信息,带来的有益效果至少包括:第一方面,解决现有第三方应用客户端在注册账号、协商共享密钥、获取用户令牌、用户身份认证等过程中使用较为烦琐、影响用户使用体验的技术问题,整个过程不需要用户输入或仅少量输入信息,提升了用户的使用体验;第二方面,只要是同一用户识别模块sim,即使是更换到其他的用户终端上,只要是相同的第三方应用客户端,也能为其自动获取相同的第三方用户标识;第三方面,用户识别模块sim作为用户在移动通信网络中的必备组件,将其应用在因特网、移动互联网等应用服务的身份认证领域,减少了用户在身份认证领域的投入,也提高了应用服务商获取用户的效率;第四方面,使得注册服务器可以作为一种提供注册信息的服务平台,安全、高效地为用户终端向因特网、移动互联网等应用服务的身份认证提供注册信息,促进了通信网络与因特网、移动互联网的业务融合。

【附图说明】

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1是本发明实施例提供的一种实施环境结构示意图;

图2是本发明提供的客户端注册方法实施例一的流程示意图;

图3是本发明提供的客户端注册方法实施例二的流程示意图;

图4是本发明提供的客户端安全认证过程实施例的流程示意图;

图5是本发明提供的客户端注册信息提供过程实施例一的流程示意图;

图6是本发明提供的客户端注册信息提供过程实施例二的流程示意图;

图7是本发明提供的客户端注册信息提供过程实施例三的流程示意图;

图8是本发明提供的认证与密钥协商过程实施例的流程示意图。

本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

【具体实施方式】

为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。

一、相关名词术语

为了便于理解,对本文中涉及的一些名词作介绍和说明。

移动用户标识:用于唯一识别用户识别模块sim的标识,移动用户标识包括:国际移动用户识别码(internationalmobilesubscriberidentificationnumber,imsi),或者ip多媒体私有标识(ipmultimediaprivateidentity,impi),或者用户永久标识(5gsubscriptionpermanentidentifier,supi),或者对用户永久标识加密后的结果即用户隐藏标识(subscriptionconcealedidentifier,suci)。

msisdn:移动用户isdn号码(mobilesubscriberisdnnumber),为呼叫一个移动用户所需拨打的号码,以及为向一个移动用户发送短信消息的接收号码,也就是通常所说的移动电话号码。

临时用户标识:用于临时标识用户身份的标识。

用户身份标识:用于长期标识用户身份的标识,包括移动用户标识、msisdn或其他可以用于长期标识用户身份的标识。

第三方应用标识:第三方应用标识用于唯一地标识第三方应用服务器,以及用于标识该第三方应用服务器对应的第三方应用客户端。

签名加密算法:指用于加密地核实信息真实性的加密算法,只有信息的发送者才能产生的别人无法伪造的一段数字串,这段数字串同时也是对信息的发送者发送信息真实性的一个有效证明,例如消息认证码(诸如基于哈希的消息认证码hmac、密码分组链接消息认证码cbc-mac、伽罗瓦消息认证码gmac等)、含密钥加密的哈希函数、基于rsa的数字方案(诸如rsa-pss)、数字签名算法(dsa)和椭圆曲线数字签名算法等。

对称加密算法:指加密和解密使用相同密钥的加密算法,例如三重数据加密标准(tripledataencryptionstandard,des)、高级加密标准(advancedencryptionstandard,aes)等。

认证与密钥协商机制:英文简称为aka(authenticationandkeyagreement,aka),基于挑战应答机制,完成终端用户和移动通信网络间的身份认证,同时基于身份认证对通信加密密钥进行协商。当前,通常将用于3g/4g移动通信网络的认证与密钥协商机制称为aka,而将用于5g移动通信网络的认证与密钥协商机制称为5gaka,为了加以区分和避免混淆,在本发明实施例中,将用于3g/4g移动通信网络的认证与密钥协商机制称为3g/4gaka,将用于5g移动通信网络的认证与密钥协商机制称为5gaka,如无特别说明,认证与密钥协商机制包括3g/4gaka和5gaka。

用户数据系统:在移动通信网络中用于存储移动用户标识、移动用户密钥(k)、aka相关算法并对终端用户进行身份认证等的系统,也被称为用户签约服务器,具体包括归属用户服务器(homesubscriberserver,hss)和统一数据管理(unifieddatamanagement,udm)。

用户识别模块sim:用于为终端用户存储包括移动用户标识、移动用户密钥(k)、归属网络、aka相关算法等的应用,终端用户基于用户识别模块sim实现向移动通信网络的身份认证,具体包括全球用户识别模块(universalsubscriberidentitymodule,usim)和ip多媒体服务识别模块(ipmultimediaservicesidentitymodule,isim)。

二、实施环境结构示意图

请参考图1,其示出了本发明实施例提供的客户端注册方法所涉及的一种实施环境的结构示意图。该实施环境包括注册服务器、用户终端、第三方应用客户端。

注册服务器:与用户终端通过网络相连,用于与用户终端进行认证与密钥协商,对用户终端进行安全认证,以及向用户终端提供注册信息和服务;与用户数据系统通过网络相连,用于向用户数据系统发送认证请求和获取请求结果,该用户数据系统包括归属用户服务器(homesubscriberserver,hss)或/和统一数据管理(unifieddatamanagement,udm)。注册服务器通常由通信运营服务商提供。

用户终端:用户终端通过wlan、wifi、移动数据(包括3g/4g/5g/6g移动数据)、lan、固定宽带等有线或无线方式接入网络并与注册服务器进行数据连接,该网络包括因特网、移动互联网等数据网络。用户终端是可插入、内嵌或者外部连接有用户识别模块sim并且支持对用户识别模块sim读取的智能终端设备,通常是智能手机,也可以是智能电视、机顶盒、平板电脑、便携计算机、台式计算机、智能手表等。

第三方应用客户端:运行在用户终端的操作系统中的应用程序,由第三方应用服务商提供。

可以理解的是,在实际实施环境中,可以包括一个、多个或大量的用户终端,每个用户终端中可以运行一个或多个由不同第三方应用服务商提供的第三方应用客户端,每个第三方应用客户端分别用于访问对应的第三方应用服务器,从而获取对应的第三方应用服务器提供的业务应用数据和服务。

需要说明的是,在实际实施环境中,还应当有第三方应用服务器。第三方应用服务器由第三方应用服务商提供,用于和对应的第三方应用客户端通过网络相连接,向第三方应用客户端提供用户所需的业务应用数据和服务,例如资讯、购物、社交等;用于和注册服务器通过网络相连接,向注册服务器获取或验证第三方应用客户端的注册信息,例如第三方用户标识、用户密钥、用户令牌等信息。

本领域技术人员可以理解,图1中示出的实施环境结构并不构成对实施环境的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。

三、客户端注册方法实施例一

请参考图2,其示出了本发明提供的客户端注册方法实施例一的流程图,该方法可用于图1所示的实施环境中。该方法可以包括:

步骤201.用户终端基于用户识别模块sim与注册服务器基于用户数据系统进行认证与密钥协商,若认证与密钥协商成功,则注册服务器建立临时用户标识与第二根密钥的关联关系,用户终端生成第一根密钥以及获取该临时用户标识。

用户终端连接的用户识别模块sim中存储有移动用户标识、移动用户密钥(k)和aka相关算法,相应的,在注册服务器连接的用户数据系统中存储有该移动用户标识、该移动用户标识对应的移动用户密钥(k)和aka相关算法。

因此,用户终端基于用户识别模块sim、注册服务器基于用户数据系统通过认证与密钥协商机制进行认证与密钥协商,其中,若认证与密钥协商成功,则用户终端与注册服务器可以协商生成值相同的根密钥,为了区分,在这里将用户终端上生成的根密钥称为第一根密钥,将注册服务器上生成的根密钥称为第二根密钥。

同时,注册服务器生成临时用户标识,以及将该临时用户标识传递给用户终端,并且建立该临时用户标识与第二根密钥的关联关系,以使得注册服务器在接收到该临时用户标识时,可以根据该临时用户标识在该关联关系中获取到该第二根密钥。相对应的,用户终端获取注册服务器传递的该临时用户标识。

具体的,用户终端与注册服务器进行认证与密钥协商可以包括多种实施方式,在认证与密钥协商过程实施例中,提供了一种用以实现用户终端与注册服务器进行认证与密钥协商的实施方式。

步骤202.用户终端基于该临时用户标识和该第一根密钥与注册服务器基于该关联关系进行安全认证。

在用户终端与注册服务器成功进行了认证与密钥协商之后,用户终端基于得到的临时用户标识和生成的第一根密钥,向注册服务器进行安全认证;由于在注册服务器上建立了临时用户标识与第二根密钥的关联关系,注册服务器在该关联关系中可以根据临时用户标识获取对应的第二根密钥,由于该对应的第二根密钥与用户终端上的第一根密钥是值相同的根密钥,则由此用户终端与注册服务器可以基于值相同的根密钥进行安全认证。

具体的,用户终端与注册服务器进行安全认证可以包括多种实施方式,在客户端安全认证过程实施例中,提供了一种用以实现用户终端与注册服务器进行安全认证的实施方式。

步骤203.用户终端将第三方应用客户端的第三方应用标识传递给注册服务器。

第三方应用标识是用户终端中运行的第三方应用客户端的标识,也是该第三方应用客户端对应的第三方应用服务器的标识。

用户终端获取第三方应用标识。例如,第三方应用标识在第三方应用客户端软件安装包内已经内置存储并且在安装后存储在配置文件中,用户终端从该配置文件中获取该第三方应用标识;或者,由第三方应用客户端向对应的第三方应用服务器发送请求后获得,再由用户终端从该第三方应用客户端获取,或者由第三方应用客户端发送给用户终端。

用户终端将获取的第三方应用标识传递给注册服务器,以使得注册服务器能根据该第三方应用标识为第三方应用客户端提供注册信息和服务。

步骤204.在安全认证成功之后,注册服务器向用户终端提供为第三方应用客户端提供的注册信息和服务。

在安全认证成功之后,注册服务器根据用户终端传递的第三方应用标识,以及根据获取的临时用户标识,向用户终端提供为该第三方应用标识对应的第三方应用客户端提供的注册信息和服务。

相应地,在确定安全认证成功和向注册服务器传递第三方应用标识之后,用户终端接收注册服务器为第三方应用客户端提供的注册信息和服务,并将接收的该注册信息和服务传递给该第三方应用客户端。

需要说明的是,上述步骤203用户终端将第三方应用标识传递给注册服务器,既可以在步骤202用户终端与注册服务器进行安全认证的过程中同时进行,还可以在步骤204即用户终端与注册服务器安全认证成功之后、注册服务器向用户终端提供为第三方应用客户端提供的注册信息和服务之前进行,例如,在安全认证过程中,在用户终端向注册服务器发送的安全认证请求中还包括第三方应用标识;或者,在安全认证成功之后,用户终端与注册服务器保持有会话状态或认证令牌,用户终端根据该会话状态或认证令牌向注册服务器传递第三方应用标识。

具体的,注册服务器向运行在用户终端中的第三方应用客户端提供注册信息和服务可以包括多种实施方式,在客户端注册信息提供过程实施例一至客户端注册信息提供过程实施例三中,提供了多种用以实现为运行在用户终端中的第三方应用客户端提供注册信息的实施方式。

由上可知,本实施例提供的方法,经过用户终端与注册服务器之间的认证与密钥协商,用户终端基于临时用户标识和第一根密钥与注册服务器基于关联关系进行安全认证,以及用户终端将第三方应用标识传递给注册服务器,从而注册服务器为用户终端中运行的第三方应用客户端提供注册信息和服务,整个过程不需要用户输入注册信息,提升了用户的使用体验。

四、客户端注册方法实施例二

请参考图3,其示出了本发明提供的客户端注册方法实施例二的流程图,该方法可用于图1所示的实施环境中。作为基于客户端注册方法实施例一提供的更为优选的实施例,本实施例还进一步实现了终端用户的授权确认过程。

本实施的方法在客户端注册方法实施例一的基础上,应用在用户终端向注册服务器传递第三方应用标识、以及注册服务器确定安全认证成功之后,以及应用在注册服务器向用户终端提供为第三方应用客户端提供的注册信息和服务之前,用户终端向注册服务器发送经终端用户确认的授权信息,注册服务器接收用户终端发送的经终端用户确认的授权信息。具体包括:

步骤a.注册服务器向用户终端发送应用授权请求消息。

在用户终端基于临时用户标识和第一根密钥与注册服务器基于关联关系进行安全认证时,注册服务器接收到该临时用户标识。注册服务器根据该临时用户标识,以及根据获取到的用户终端传递的第三方应用标识,在该应用授权请求消息中可以包括:

或/和第三方应用名称,该名称是用于识别第三方应用客户端和第三方应用服务器的名称,在注册服务器上预先存储有第三方应用标识与第三方应用名称的对应关系,注册服务器根据第三方应用标识在该对应关系中查找和获取对应的第三方应用名称。

或/和移动用户名称,该名称是用于识别移动用户的名称,根据该临时用户标识获取移动用户名称。例如,在注册服务器上预先存储有移动用户标识与移动用户名称的对应关系,在认证与密钥协商过程中生成临时用户标识时,建立有临时用户标识与移动用户标识的关联关系,则注册服务器根据该临时用户标识获取关联的移动用户标识,再根据该移动用户标识在该移动用户标识与移动用户名称的对应关系中查找和获取对应的移动用户名称。

相应地,用户终端接收注册服务器发送的应用授权请求消息。

步骤b.用户终端显示应用授权验证界面。

用户终端接收到注册服务器发送的应用授权请求消息之后,调用并显示应用授权验证界面,以询问终端用户是否同意向该第三方应用授权。

在显示的应用授权验证界面上,可以显示应用授权请求消息中所包括的第三方应用名称或/和移动用户名称,具体为:

第三方应用名称,即将要授权的第三方应用客户端和第三方应用服务器的名称;

移动用户名称,即将要授权的移动用户名称。

在显示应用授权验证界面之后,终端用户可以输入表示确认授权或者表示取消授权的授权信息。

步骤c.用户终端接收终端用户在应用授权验证界面中输入的授权信息。

用户根据显示的应用授权验证界面,在该界面中输入(包括触发)表示确认授权或取消授权的授权信息。相应地,用户终端接收用户在应用授权验证界面中输入的授权信息。

步骤d.用户终端向注册服务器发送应用授权应答消息,该应用授权应答消息是应用授权确认消息或者是应用授权取消消息。

用户终端根据终端用户输入的授权信息执行相应的操作,包括:

如果授权信息是表示确认授权的授权信息,则用户终端向注册服务器发送的应用授权应答消息是应用授权确认消息。

如果授权信息是表示取消授权的授权信息,则用户终端向注册服务器发送的应用授权应答消息是应用授权取消消息。

步骤e.注册服务器接收用户终端发送的应用授权应答消息并执行相应的操作。

注册服务器接收用户终端发送的应用授权应答消息,该应用授权应答消息是应用授权确认消息或者是应用授权取消消息。

注册服务器根据该应用授权应答消息执行相应的操作,包括:

如果该应用授权应答消息是应用授权确认消息,则继续执行后续步骤,即继续执行注册服务器向用户终端提供为第三方应用客户端提供的注册信息和服务的过程。

如果该应用授权应答消息是应用授权取消消息,则结束流程,不执行后续步骤。

本实施例提供的方法,在客户端注册方法实施例一的基础上,增加了让终端用户确认授权的过程,通过增加这一过程,可以更加确认为第三方应用客户端提供的注册信息和服务得到了终端用户的授权许可,避免由于误操作等原因为非必要的第三方应用客户端提供了注册信息和服务。

五、客户端安全认证过程实施例

请参考图4,其示出了本发明提供的客户端安全认证过程实施例的流程图,本实施例可用于图1所示的实施环境中。本实施例以用户终端与注册服务器在认证与密钥协商成功之后为例进行说明,具体包括:

在用户终端与注册服务器的认证与密钥协商过程中,若认证与密钥协商成功,注册服务器生成第二根密钥,并且建立了临时用户标识与第二根密钥的关联关系,用户终端获取到该临时用户标识并生成第一根密钥。

用户终端在获取到用于启动客户端安全认证过程的操作指示之后,启动客户端安全认证过程,该安全认证过程可以包括如下三个子过程和相应的步骤:

第一子过程:用户终端与注册服务器基于相同的临时用户标识和值相同的根密钥生成值相同的认证密钥。具体可以包括:

步骤401.用户终端获取临时用户标识和第一根密钥。

用户终端获取临时用户标识和第一根密钥,该临时用户标识和第一根密钥是用户终端在与注册服务器进行认证与密钥协商过程中所获得的。

步骤402.用户终端基于该第一根密钥生成第一认证密钥。

例如,将该第一根密钥作为第一认证密钥。

又例如,基于包括该第一根密钥以及第一固定字符串(1)或/和第一随机字符串或/和第一时间戳或/和该临时用户标识或/和第三方应用标识的信息生成第一认证密钥;其中,该第一固定字符串(1)为预先配置的并且与注册服务器上预先配置的第一固定字符串(2)的值相同的字符串,该第一随机字符串为本地随机生成的字符串,该第一时间戳为通过获取用户终端的当前系统时间生成,第三方应用标识是用户终端中运行的第三方应用客户端的标识。具体地,以密钥派生算法公式为例,可以表示为:dk=pbkdf2(passphrase,salt,c,dklen),其中:dk是生成的第一认证密钥,pbkdf2是密钥派生算法,passphrase是该第一根密钥并且和第一固定字符串(1)或/和第一随机字符串或/和第一时间戳或/和该临时用户标识或/和第三方应用标识组合拼接的字符串;salt是盐值,在本例中是一个固定字符串;c是迭代次数;dklen是密钥输出长度,可以根据使用的加密算法生成符合要求的密钥长度。

步骤403.用户终端将该临时用户标识以及生成第一认证密钥的信息发送给注册服务器。

用户终端将该临时用户标识发送给注册服务器,以使得注册服务器根据该临时用户标识能获取到关联的第二根密钥。

为了使得注册服务器生成与第一认证密钥的值相同的第二认证密钥,则如果生成第一认证密钥的信息还包括第一随机字符串或/和第一时间戳或/和第三方应用标识,则将该第一随机字符串或/和该第一时间戳或/和该第三方应用标识发送给注册服务器。

相应地,注册服务器接收用户终端发送的该临时用户标识以及该第一随机字符串或/和第一时间戳或/和该第三方应用标识。

可以理解,如果上述生成第一认证密钥的信息还包括第一固定字符串(1),由于在注册服务器上可以预先配置相同值的第一固定字符串(2),则可以不用将该第一固定字符串(1)发送给注册服务器。

步骤404.注册服务器根据该临时用户标识获取第二根密钥。

在用户终端与注册服务器通过认证与密钥协商机制成功进行认证与密钥协商之后,在注册服务器上存储有临时用户标识与第二根密钥的关联关系。

注册服务器根据该临时用户标识在该关联关系中查找和获取关联的第二根密钥。

步骤405.注册服务器基于该第二根密钥生成第二认证密钥。

注册服务器使用和用户终端相同的认证密钥生成方式,基于该第二根密钥生成第二认证密钥,相同的认证密钥生成方式包括相同的密钥派生算法公式、相同的输入信息、相同的输入参数、相同的字符串组合拼接方式等,以使得生成的第二认证密钥与用户终端生成的第一认证密钥的值相同。

例如,以使用和步骤402用户终端相同的认证密钥生成方式为例,如果用户终端使用第一根密钥作为第一认证密钥,则注册服务器使用该第二根密钥作为第二认证密钥。

又例如,以使用和步骤402用户终端相同的认证密钥生成方式为例,如果用户终端基于包括该第一根密钥以及第一固定字符串(1)或/和第一随机字符串或/和第一时间戳或/和该临时用户标识或/和第三方应用标识生成第一认证密钥,则注册服务器基于包括该第二根密钥以及第一固定字符串(2)或/和第一随机字符串或/和第一时间戳或/和该临时用户标识或/和该第三方应用标识的信息生成第二认证密钥,并且该第二认证密钥的生成方式与用户终端生成第一认证密钥的生成方式一致;其中,该第一固定字符串(2)为预先配置的并且与用户终端预先配置的第一固定字符串(1)的值相同的字符串,该第一随机字符串或/和第一时间戳或/和第三方应用标识为用户终端所发送的。可以理解,如果用户终端生成第一认证密钥还包括其他的输入信息或输入参数,则注册服务器生成第二认证密钥也需包括使用相同的输入信息或输入参数,以使得生成的第二认证密钥和用户终端生成的第一认证密钥的值相同。

具体地,以步骤402相对应的示例为例,密钥派生算法公式为:dk=pbkdf2(passphrase,salt,c,dklen),其中:dk是生成的第二认证密钥,pbkdf2是与用户终端相同的密钥派生算法,passphrase是该第二根密钥并且和第一固定字符串(2)或/和第一随机字符串或/和第一时间戳或/和该临时用户标识或/和第三方应用标识组合拼接的字符串;salt是盐值,是一个与用户终端相同的固定字符串;c是与用户终端中相同的迭代次数;dklen是与用户终端中相同的密钥输出长度。

至此,由于同一临时用户标识在用户终端上对应的第一根密钥和在注册服务器上关联的第二根密钥的值是相同的,而由于第一认证密钥和第二认证密钥是使用相同的密钥生成方式、基于值相同的根密钥生成的,因此,第一认证密钥和第二认证密钥的值也是相同的。

第二子过程:用户终端与注册服务器生成值相同的验证信息。具体可以包括:

步骤406.用户终端生成第一验证信息。

用户终端生成第一验证信息,以使得该第一验证信息用于加密,并且要使得该第一验证信息与注册服务器生成的第二验证信息的值相同。

用户终端可以将第二固定字符串(1)或第二随机字符串或第二时间戳或该临时用户标识或该第三方应用标识中的一种作为第一验证信息;或者,用户终端可以将第二固定字符串(1)或第二随机字符串或第二时间戳或该临时用户标识或该第三方应用标识中的一种使用哈希算法进行哈希计算,将生成的哈希值作为第一验证信息;或者,用户终端将包括第二固定字符串(1)或/和第二随机字符串或/和第二时间戳或/和该临时用户标识或/和该第三方应用标识的信息组合拼接后生成第一验证信息;或者,用户终端将包括第二固定字符串(1)或/和第二随机字符串或/和第二时间戳或/和该临时用户标识或/和该第三方应用标识的信息组合拼接后生成的信息,再使用哈希算法进行哈希计算,将生成的哈希值作为第一验证信息。

其中,该第二固定字符串(1)为预先配置的与注册服务器上预先配置的第二固定字符串(2)的值相同的字符串,该第二随机字符串为本地随机生成的字符串,该第二时间戳为通过获取用户终端的当前系统时间生成。

步骤407.用户终端将生成第一验证信息的信息发送给注册服务器。

在用户终端生成第一验证信息之后,为了使得注册服务器生成与第一验证信息的值相同的第二验证信息,如果生成的第一验证信息还包括第二随机字符串或/和第二时间戳或/和该临时用户标识或/和该第三方应用标识,则将该第二随机字符串或/和该第二时间戳或/和该临时用户标识或/和该第三方应用标识发送给注册服务器。

相应地,注册服务器接收用户终端发送的该第二随机字符串或/和该第二时间戳或/和该临时用户标识或/和该第三方应用标识。

可以理解,如果上述生成第一验证信息的信息还包括第二固定字符串(1),由于在注册服务器上可以预先配置相同值的第二固定字符串(2),则可以不用将该第二固定字符串(1)发送给注册服务器。

可以理解,本步骤还可以与上述步骤403合并成一个步骤实施,即用户终端可以将该临时用户标识、以及生成第一认证密钥的信息、以及生成第一验证信息的信息在一个发送请求中同时发送给注册服务器,相应地,则注册服务器生成第二认证密钥、生成第二验证信息的步骤也在该合并的步骤后实施。

可以理解,如果合并成一个步骤实施,则两个步骤中如果生成第一认证密钥的信息与生成第一验证信息的信息有相同的信息,则可以不用重复发送该相同的信息。

步骤408.注册服务器生成第二验证信息。

注册服务器生成第二验证信息,并且第二验证信息的生成方式与用户终端生成第一验证信息的生成方式一致,以使得该生成的第二验证信息的值与用户终端生成的第一验证信息的值相同。

以使用和步骤406生成第一验证信息相同的验证信息生成方式为例,如果用户终端将第二固定字符串(1)或第二随机字符串或第二时间戳或该临时用户标识或该第三方应用标识中的一种作为第一验证信息,则注册服务器将第二固定字符串(2)或该第二随机字符串或该第二时间戳或该临时用户标识或该第三方应用标识中相同的一种作为第二验证信息。

以使用和步骤406生成第一验证信息相同的验证信息生成方式为例,如果用户终端将第二固定字符串(1)或第二随机字符串或第二时间戳或该临时用户标识或该第三方应用标识中的一种的哈希值作为第一验证信息,则注册服务器将第二固定字符串(2)或该第二随机字符串或该第二时间戳或该临时用户标识或该第三方应用标识中相同的一种使用相同的哈希算法进行哈希计算,并将生成的哈希值作为第二验证信息。

以使用和步骤406生成第一验证信息相同的验证信息生成方式为例,如果用户终端将包括第二固定字符串(1)或/和第二随机字符串或/和第二时间戳或/和该临时用户标识或/和该第三方应用标识的信息生成第一验证信息,则注册服务器将包括第二固定字符串(2)或/和该第二随机字符串或/和该第二时间戳或/和该临时用户标识或/和该第三方应用标识的信息生成第二验证信息。例如,如果用户终端将第二固定字符串(1)或/和第二随机字符串或/和第二时间戳或/和该临时用户标识或/和该第三方应用标识组合拼接后作为第一验证信息,则注册服务器将第二固定字符串(2)或/和该第二随机字符串或/和该第二时间戳或/和该临时用户标识或/和该第三方应用标识使用相同的方式组合拼接后作为第二验证信息。

以使用和步骤406生成第一验证信息相同的验证信息生成方式为例,如果用户终端将包括第二固定字符串(1)或/和第二随机字符串或/和第二时间戳或/和该临时用户标识或/和该第三方应用标识的信息组合拼接后哈希计算生成的哈希值作为第一验证信息,则注册服务器将包括第二固定字符串(2)或/和该第二随机字符串或/和该第二时间戳或/和该临时用户标识或/和该第三方应用标识的信息使用相同的方式组合拼接后生成的信息,再使用相同的哈希算法对该组合拼接后的信息进行哈希计算,并将生成的哈希值作为第二验证信息。

其中,该第二固定字符串(2)为预先配置的并且与用户终端上预先配置的第二固定字符串(1)的值相同的字符串,该第二随机字符串或/和该第二时间戳或/和该第三方应用标识为用户终端所发送的。

可以理解,如果用户终端生成第一验证信息还包括其他的输入信息,则注册服务器生成第二验证信息也需包括使用相同的输入信息,以使得生成的第二验证信息和用户终端生成的第一验证信息的值相同。

至此,由于第一验证信息和第二验证信息是使用相同的验证信息生成方式、基于相同值的信息生成的,因此,第一验证信息和第二验证信息的值也是相同的。

进一步地,如果生成第一验证信息的信息还包括该第二时间戳,则注册服务器在接收到该第二时间戳之后,将该第二时间戳与注册服务器的当前系统时间进行比较,确定两者的时间差是否在预先设定的有效范围内:如果是在有效的范围内,则执行后续步骤;如果不是在有效的范围内,则不执行后续步骤,结束本次客户端安全认证过程。

第三子过程:用户终端与注册服务器基于值相同的认证密钥和值相同的验证信息实现安全认证。具体可以包括:

步骤409.用户终端基于该第一认证密钥对该第一验证信息加密生成第一加密值。

根据上述步骤中生成的第一认证密钥和第一验证信息,用户终端基于该第一认证密钥对该第一验证信息加密生成第一加密值。根据所使用的加密算法,可以包括多种实施方式,至少可以包括:

第一种实施方式,用户终端使用签名加密算法基于该第一认证密钥对该第一验证信息签名加密生成第一加密值。

用户终端使用签名加密算法基于该第一认证密钥对该第一验证信息签名加密计算生成的签名值,该签名值即为第一加密值。签名值可以唯一地识别第一验证信息,只有使用相同的签名加密算法、相同值的签名密钥、相同值的待签名信息才可以生成相同的签名值。

例如,以签名加密算法使用哈希消息认证码为例,签名方式可以表示为:signature=hmac_sha256(k,m),其中m是待签名信息即该第一验证信息,k是签名密钥即该第一认证密钥,hmac_sha256是签名加密算法,signature是签名值即第一加密值。

又例如,以签名加密算法使用含密钥加密的哈希函数为例,签名方式可以表示为:signature=sha256(k||m),其中m是待签名信息即该第一验证信息,k是签名密钥即该第一认证密钥,“k||m”表示将k和m组合拼接,sha256是哈希函数,signature是签名值即第一加密值。

第二种实施方式,用户终端使用对称加密算法基于该第一认证密钥对包括该第一验证信息的信息对称加密生成第一加密值。

用户终端使用对称加密算法基于该第一认证密钥对包括该第一验证信息的信息对称加密生成密文,该密文即为第一加密值,只有使用相同的对称加密算法、相同值的密钥才可以将该密文解密后得到原来的明文。

例如,以对称加密算法使用aes为例,加密方式可以表示为:s=aes_encrypt(m,k),其中m是明文,该明文是该第一验证信息,或者是包括该第一验证信息的信息,k是加密密钥即该第一认证密钥,aes_encrypt是加密算法,s是加密结果即第一加密值。

上述的包括该第一验证信息的信息,是指在生成的信息中还包括该第一验证信息和其他信息,例如将该第一验证信息和其他信息组合拼接后所生成的信息,对于该其他信息,如非特别说明,在本实施例中并不进行限定。

步骤410.用户终端向注册服务器发送安全认证请求,该安全认证请求包括该第一加密值。

用户终端向注册服务器发送安全认证请求,该安全认证请求包括该第一加密值,以使得注册服务器通过验证该第一加密值而实现对用户终端的安全认证。

相应地,注册服务器接收用户终端发送的安全认证请求,并且获取该安全认证请求中包括的该第一加密值。

可以理解,本步骤还可以与上述步骤403或/和步骤407合并成一个步骤实施,即用户终端可以将该第一加密值与该临时用户标识以及生成第一认证密钥的信息、或/和生成第一验证信息的信息在一个发送请求中同时发送给注册服务器,相应地,则上述注册服务器生成第二认证密钥、生成第二验证信息的步骤也在该合并的步骤后实施。

步骤411.注册服务器基于该第二认证密钥和该第二验证信息验证该第一加密值。

与用户终端中生成第一加密值可以包括的多种实施方式相对应的,注册服务器基于该第二认证密钥和该第二验证信息验证该第一加密值需使用相对应的实施方式,具体包括:

第一种实施方式,与用户终端使用签名加密算法生成第一加密值的实施方式相对应的,注册服务器使用和用户终端相同的签名加密算法,基于该第二认证密钥和该第二验证信息验证该第一加密值。具体可以包括:

步骤411a.注册服务器使用和用户终端相同的签名加密算法,基于该第二认证密钥对该第二验证信息签名加密生成第二加密值。

注册服务器使用和用户终端相同的签名加密算法基于该第二认证密钥对该第二验证信息签名加密生成签名值,该签名值即为第二加密值。

例如,以签名加密算法使用和步骤409用户终端中相同的哈希消息认证码为例,签名方式可以表示为:signature=hmac_sha256(k,m),其中m是待签名信息即第二验证信息,k是签名密钥即第二认证密钥,hmac_sha256是与用户终端相同的哈希消息认证码,signature是签名值即第二加密值。

又例如,以签名算法使用和步骤409用户终端中相同的含密钥加密的哈希函数为例,签名方式可以表示为:signature=sha256(k||m),其中m是待签名信息即第二验证信息,k是签名密钥即第二认证密钥,“k||m”表示将k和m组合拼接,sha256是与用户终端相同的哈希函数,signature是签名值即第二加密值。

至此,由于注册服务器使用的是和用户终端相同的签名算法,第二验证信息和第一验证信息是值相同的待签名信息,第二认证密钥和第一认证密钥是值相同的签名密钥,则生成的第二加密值和第一加密值相同。

步骤411b.注册服务器比较该第二加密值与该第一加密值是否一致;若一致,则确定验证第一加密值有效。

注册服务器比较该第二加密值和该第一加密值是否一致,并根据比较结果执行相应的操作,包括:

如果比较结果是一致的,则确定验证该第一加密值有效。

如果比较结果是不一致的,则确定验证该第一加密值无效。

第二种实施方式,与用户终端使用对称加密算法生成第一加密值相对应的,注册服务器使用和用户终端相同的对称加密算法,基于该第二认证密钥和该第二验证信息验证该第二加密值。具体可以包括:

步骤411i.注册服务器使用和用户终端相同的对称加密算法,基于该第二认证密钥对该第一加密值解密获得明文,并从该明文中获取第一验证信息。

注册服务器使用和用户终端相同的对称加密算法基于该第二认证密钥对该第一加密值解密,从而获得解密后的明文。

例如,以对称加密算法使用和步骤409用户终端中相同的aes为例,解密方式可以表示为:m=aes_dencrypt(s,k),其中m是解密后的结果值,即解密后的明文,k是解密密钥即该第二认证密钥,aes_dencrypt是解密算法,s是密文即第一加密值。

由于该明文是第一验证信息或者是包括该第一验证信息的信息,因此,可以从该明文中获取到解密后的第一验证信息。

步骤411ii.注册服务器比较该第二验证信息与该解密后的第一验证信息是否一致;若一致,则确定验证第一加密值有效。

注册服务器比较该第二验证信息与该解密后的第一验证信息是否一致,并根据比较结果执行相应的操作,包括:

如果比较结果是一致的,则确定验证该第一加密值有效。

如果比较结果是不一致的,则确定验证该第一加密值无效。

步骤412.注册服务器根据对第一加密值的验证结果确定安全认证是否成功。

注册服务器根据对该第一加密值的验证结果确定安全认证是否成功,并执行相应的操作,包括:

若确定验证该第一加密值有效,则确定安全认证成功。

若确定验证该第一加密值无效,则确定安全认证失败。

在确定安全认证成功之后,注册服务器可以向用户终端提供注册信息和服务,还可以保持与用户终端的会话状态以接收用户终端传递的信息,或者为用户终端生成认证令牌等。相应地,用户终端接收注册服务器提供的注册信息和服务,或者通过与注册服务器保持的会话状态或接收的认证令牌向注册服务器传递信息等。

在确定安全认证失败之后,注册服务器向用户终端发送注册失败应答消息。相应地,用户终端接收注册服务器发送的注册失败应答消息。

综上所述,本实施例提供的方法,主要是基于用户终端中的临时用户标识和第一根密钥,以及基于注册服务器中存储的临时用户标识和第二根密钥的关联关系,注册服务器通过使用和用户终端相同的加密算法对用户终端进行安全认证,在确定安全认证成功之后,可以为用户终端及用户终端上运行的第三方应用客户端安全地提供相应的注册信息和服务。

六、客户端注册信息提供过程实施例一

请参考图5,其示出了本发明提供的客户端注册信息提供过程实施例一的流程图,该方法可用于图1所示的实施环境中。本实施例注册服务器为用户终端中运行的第三方应用客户端提供了注册信息,该注册信息包括第三方用户标识和用户密钥。

为了让注册服务器为用户终端中运行的第三方应用客户端提供相应的注册信息和服务,用户终端需将第三方应用客户端的第三方应用标识传递给注册服务器。

具体的,用户终端将第三方应用标识传递给注册服务器可以包括多种实施方式,例如可以包括:

第一种实施方式,在客户端安全认证过程中,用户终端将该第三方应用标识传递给注册服务器,注册服务器接收该第三方应用标识。

用户终端将该第三方应用标识传递给注册服务器,可以以一个单独的发送请求将该第三方应用标识发送给注册服务器,也可以合并在其他的发送请求中将该第三方应用标识发送给注册服务器。

例如,以上述客户端安全认证过程实施例为例,可以合并在上述步骤410的安全认证请求中,即在向注册服务器发送的安全认证请求中还包括第三方应用标识,以使得注册服务器在接收的安全认证请求中获取第三方应用标识;或者,合并在上述步骤403或/和步骤407用户终端向注册服务器发送临时用户标识以及生成第一认证密钥的信息、或/和发送生成第一验证信息的信息的步骤中,以使得注册服务器在接收到生成第一认证密钥或/和生成第一验证信息的信息时,同时接收和获取第三方应用标识。

第二种实施方式,在客户端安全认证成功之后,以及在注册服务器向用户终端提供注册信息和服务之前,用户终端通过与注册服务器间保持的会话状态或认证令牌将第三方应用标识传递给注册服务器。

例如,以上述客户端安全认证过程实施例为例,在用户终端与注册服务器进行安全认证成功之后,用户终端与注册服务器间保持有会话状态或认证令牌,用户终端通过该会话状态或认证令牌向注册服务器传递第三方应用标识。

在用户终端向注册服务器传递第三方应用标识、以及注册服务器确定安全认证成功之后,注册服务器可以为用户终端中运行的第三方应用客户端提供包括第三方用户标识和用户密钥的注册信息,其中,注册服务器确定安全认证成功的实施过程可以参照客户端安全认证过程实施例。注册服务器提供第三方用户标识和用户密钥的具体实施方式可以包括:

步骤501.注册服务器根据临时用户标识和第三方应用标识获取对应的第三方用户标识。

注册服务器根据临时用户标识和第三方应用标识获取对应的第三方用户标识,具体可以包括:

步骤501a.根据该临时用户标识获取用户身份标识。

临时用户标识可以用于唯一地识别用户,根据临时用户标识获取的用户身份标识,也用于唯一地识别用户。

例如,根据该临时用户标识在临时用户标识与移动用户标识的关联关系中获取移动用户标识,将移动用户标识确定为用户身份标识。临时用户标识与移动用户标识的关联关系是在用户终端与注册服务器进行认证与密钥协商的过程中建立的。

又例如,根据该临时用户标识在临时用户标识与移动用户标识的关联关系中获取移动用户标识,然后再根据该移动用户标识获取对应的msisdn,将该对应的msisdn确定为用户身份标识。具体地,在用户数据系统中(例如归属用户服务器hss或统一数据管理udm),存储了移动用户标识与msisdn的映射关系,根据移动用户标识可以在该映射关系中获取到对应的msisdn。因此,注册服务器向用户数据系统发送包括该移动用户标识的msisdn查询请求,用户数据系统向注册服务器反馈该移动用户标识对应的msisdn,则注册服务器获取到对应的msisdn。

再例如,预先建立有临时用户标识与用户身份标识的关联关系,根据临时用户标识在该关联关系中获取用户身份标识。具体地,在注册服务器上预先建立有与移动用户标识相对应的用户身份标识,在用户终端与注册服务器进行认证与密钥协商的过程中,根据移动用户标识获取对应的用户身份标识,再建立该临时用户标识与该用户身份标识的关联关系,以使得根据该临时用户标识在该关联关系中能查找和获取到该用户身份标识。

步骤501b.注册服务器根据该用户身份标识和该第三方应用标识查找对应的第三方用户标识。

在注册服务器上存储有用户身份标识和第三方应用标识与第三方用户标识的账户对应关系,即根据用户身份标识和第三方应用标识在该账户对应关系中能够查找到对应的第三方用户标识。

注册服务器根据该用户身份标识和该第三方应用标识在该账户对应关系中查找对应的第三方用户标识。

如果查找到对应的第三方用户标识,则说明注册服务器已经为该用户身份标识创建了用于该第三方应用标识的第三方用户标识,则注册服务器获取对应的第三方用户标识,然后执行下述步骤502或步骤503。

如果没有查找到对应的第三方用户标识,则说明注册服务器没有为该用户身份标识创建过用于该第三方应用标识的第三方用户标识,则执行下述步骤501c。

步骤501c.注册服务器创建一个唯一的第三方用户标识。

注册服务器创建一个新用户标识,该新用户标识是注册服务器上所有的第三方用户标识中唯一的标识,也可以是在步骤501a所述的账户对应关系中该第三方应用标识对应的所有第三方用户标识中唯一的标识,然后将该新用户标识作为第三方用户标识。

步骤501d.注册服务器建立和存储该用户身份标识和该第三方应用标识与该第三方用户标识的对应关系。

注册服务器在步骤501a所述的账户对应关系中新增该用户身份标识和该第三方应用标识与该第三方用户标识的对应关系,即根据该用户身份标识和该第三方应用标识在该账户对应关系中将能查找和获取到该第三方用户标识。

步骤501b、步骤501c和步骤501d,还可以是,注册服务器预先建立有用于该第三方应用标识的应用用户关系表,在该应用用户关系表中存储有用户身份标识与第三方用户标识的一一对应关系。注册服务器根据该用户身份标识在该应用用户关系表中查找第三方用户标识,如果没有查找到第三方用户标识,则创建一个唯一的第三方用户标识,并且在该应用用户关系表中新增该用户身份标识和该第三方用户标识的一一对应关系,如果查找到第三方用户标识,则获取该第三方用户标识。

步骤501b、步骤501c和步骤501d,还可以是,注册服务器预先建立有用于该用户身份标识的移动用户关系表,在该移动用户关系表中存储有第三方应用标识与第三方用户标识的一一对应关系。注册服务器根据该第三方应用标识在该移动用户关系表中查找第三方用户标识,如果没有查找到第三方用户标识,则创建一个唯一的第三方用户标识,并且在该移动用户关系表中新增该第三方应用标识和该第三方用户标识的一一对应关系,如果查找到第三方用户标识,则获取该第三方用户标识。

步骤502.可选的,注册服务器基于第二根密钥生成该第三方用户标识对应的第二用户密钥。

该第二根密钥是根据用户终端发送的临时用户标识在临时用户标识与第二根密钥的关联关系中获取的,该关联关系是在用户终端与注册服务器通过认证与密钥协商机制成功进行认证与密钥协商之后建立的。

生成第二用户密钥,具体可以包括如下步骤:

步骤502a.注册服务器基于该第二根密钥生成第二用户密钥。

注册服务器基于该第二根密钥生成第二用户密钥。

进一步的,注册服务器基于包括该第二根密钥以及第三固定字符串(2)或/和第三随机字符串或/和第三时间戳或/和该临时用户标识或/和该第三方应用标识或/和该第三方用户标识的信息生成第二用户密钥;其中,该第三固定字符串(2)为预先配置的并且与用户终端上预先配置的第三固定字符串(1)的值相同的字符串,该第三随机字符串为本地随机生成的字符串,该第三时间戳为通过获取注册服务器的当前系统时间生成。具体地,以密钥派生算法公式为例,可以表示为:dk=pbkdf2(passphrase,salt,c,dklen),其中:dk是生成的第二用户密钥,pbkdf2是密钥派生算法,passphrase是该第二根密钥以及第三固定字符串或/和第三随机字符串或/和第三时间戳或/和该临时用户标识或/和第三方应用标识或/和该第三方用户标识组合拼接的字符串;salt是盐值,在本例中是一个固定字符串;c是迭代次数;dklen是密钥输出长度,可以根据需要生成符合要求的密钥长度。

步骤502b.注册服务器建立该第三方用户标识与该第二用户密钥的对应关系。

注册服务器建立该第三方用户标识与该第二用户密钥的对应关系,以使得根据该第三方用户标识在该对应关系中能获取到对应的第二用户密钥。

如果该第三方用户标识是注册服务器上所有的第三方用户标识中唯一的标识,则建立该第三方用户标识与该第二用户密钥的对应关系。

如果该第三方用户标识是该第三方应用标识对应的所有第三方用户标识中唯一的标识,则建立该第三方用户标识和该第三方应用标识与该第二用户密钥的对应关系。

例如,注册服务器预先建立有用于该第三方应用标识的账户密钥关系表,在该账户密钥关系表中存储有第三方用户标识与该第二用户密钥的一一对应关系。注册服务器根据该第三方用户标识在该账户密钥关系表中查找第二用户密钥,如果没有查找到第二用户密钥,则在该账户密钥关系表中新增该第三方用户标识与该第二用户密钥的一一对应关系,如果查找到第二用户密钥,则在该账户密钥关系表中使用本步骤新生成的该第二用户密钥替换该第三方用户标识已有的用户密钥。

以结合步骤501为例,如果在注册服务器上预先建立用于该第三方应用标识的应用用户关系表,或者如果在注册服务器上预先建立用于该用户身份标识的移动用户关系表,则也可以在该应用用户关系表或移动用户关系表建立及更新该第三方用户标识与该第二用户密钥的一一对应关系,在此不再赘述。

需要说明的是,上述步骤502还可以在下述步骤503之后执行,本发明并不对此进行限定。

至此,注册服务器建立了该第三方用户标识与该第二用户密钥的对应关系,注册服务器可以本地存储该对应关系,或者将该对应关系同步发送给第三方认证服务器,或者将该对应关系同步发送给对应该第三方应用标识的第三方应用服务器,从而使得第三方应用服务器可以基于该对应关系实现对第三方应用客户端的身份认证、数据加密等操作。

步骤503.注册服务器将该第三方用户标识传递给用户终端。

注册服务器将该第三方用户标识传递给用户终端,例如,在注册服务器向用户终端发送的注册成功应答消息中,包括该第三方用户标识。

与步骤502a相对应的,如果生成的第二用户密钥还包括第三随机字符串或/和第三时间戳,则还将该第三随机字符串或/和该第三时间戳传递给用户终端。

步骤504.用户终端接收注册服务器传递的该第三方用户标识。

用户终端接收注册服务器传递的该第三方用户标识,例如,接收注册服务器发送的注册成功应答消息,在该注册成功应答消息中获取该第三方用户标识。

又例如,上述步骤503和504还可以是,用户终端与注册服务器进行安全认证成功之后保持有会话状态或认证令牌,用户终端通过该会话状态或认证令牌向注册服务器发送获取第三方用户标识的请求,注册服务器反馈该第三方用户标识,用户终端接收并获取该第三方用户标识。

在用户终端接收到该第三方用户标识之后,将该第三方用户标识传递给第三方应用客户端。如果实施了上述步骤502,则执行下述步骤505以生成第一用户密钥,并将该生成的第一用户密钥同时发送给对应的第三方应用客户端。

步骤505.可选的,用户终端使用和注册服务器相同的用户密钥生成方式,基于该第一根密钥生成第一用户密钥。

与上述步骤502相对应的,用户终端使用和注册服务器相同的用户密钥生成方式,基于该第一根密钥生成第一用户密钥。

相应的,如果在步骤502中注册服务器基于包括该第二根密钥以及第三固定字符串(2)或/和第三随机字符串或/和第三时间戳或/和该临时用户标识或/和第三方应用标识或/和该第三方用户标识的信息生成第二用户密钥,则用户终端基于包括该第一根密钥以及第三固定字符串(1)或/和第三随机字符串或/和第三时间戳或/和该临时用户标识或/和第三方应用标识或/和该第三方用户标识的信息生成第一用户密钥;其中,该第三固定字符串(1)为预先配置的并且与注册服务器上预先配置的第三固定字符串(2)的值相同的字符串,该第三随机字符串或/和第三时间戳为注册服务器所传递的。具体地,以使用和步骤502注册服务器相同的密钥派生算法为例,密钥派生算法公式可以表示为dk=pbkdf2(passphrase,salt,c,dklen),其中:dk是生成的第一用户密钥;pbkdf2是与注册服务器相同的密钥派生算法;passphrase是该第一根密钥以及第三固定字符串(1)或/和第三随机字符串或/和第三时间戳或/和该临时用户标识或/和第三方应用标识或/和该第三方用户标识组合拼接的字符串,并且组合拼接方式与注册服务器一致;salt是盐值,是一个与注册服务器相同的固定字符串;c是与注册服务器相同的迭代次数;dklen是与注册服务器相同的密钥输出长度。

至此,由于用户终端上生成的第一根密钥和在注册服务器上生成的第二根密钥的值相同,并且由于第一用户密钥和第二用户密钥是使用相同的用户密钥生成方式、基于相同值的根密钥生成的,因此,第一用户密钥和第二用户密钥的值也是相同的。

用户终端将该第三方用户标识和该第一用户密钥传递给该第三方应用标识对应的第三方应用客户端,第三方应用客户端将可以根据该第三方用户标识和该第一用户密钥向对应的第三方应用服务器进行身份认证、数据加密等操作;而由于第三方应用服务器与注册服务器通过网络相连接,因此第三方应用服务器可以基于注册服务器建立的第三方用户标识与第二用户密钥的对应关系实现对第三方应用客户端的身份认证、数据加密等操作。

如上实施例过程,为用户终端中运行的第三方应用客户端获取了第三方用户标识和生成了对应的用户密钥。带来的效果至少包括:第一方面,自动为第三方应用客户端获取第三方用户标识和对应的用户密钥,减少了终端用户的输入操作,提升了用户的使用体验;第二方面,只要是同一用户识别模块sim,即使是更换到其他的用户终端上,只要是相同的第三方应用客户端,也能为其自动获取相同的第三方用户标识;第三方面,第三方应用客户端对应的第三方应用服务器,将只能获取与其有关的第三方用户标识,而不能获取移动用户标识等用户身份标识,从而能够有效地保护用户的隐私不被泄露;第四方面,用户终端中运行的第三方应用客户端将可以根据获取的第三方用户标识以及生成的用户密钥向对应的第三方应用服务器实现快捷、安全的身份认证、数据加密等操作。

七、客户端注册信息提供过程实施例二

请参考图6,其示出了本发明提供的客户端注册信息提供过程实施例一的流程图,该方法可用于图1所示的实施环境中。本实施例注册服务器为用户终端中运行的第三方应用客户端提供了注册信息,该注册信息包括应用密钥。

为了让注册服务器为用户终端中运行的第三方应用客户端提供相应的注册信息和服务,则用户终端需将第三方应用客户端对应的第三方应用标识传递给注册服务器。具体实施方式可以参照上述客户端注册信息提供过程实施例一,在此不再赘述。

在用户终端向注册服务器传递第三方应用标识、以及注册服务器确定安全认证成功之后,注册服务器可以为用户终端中运行的第三方应用客户端提供包括应用密钥的注册信息,其中,注册服务器确定安全认证成功的实施过程可以参照客户端安全认证过程实施例。注册服务器提供应用密钥的具体实施方式可以包括:

步骤601.注册服务器基于该第二根密钥生成第二应用密钥。

该第二根密钥是根据用户终端发送的临时用户标识在临时用户标识与第二根密钥的关联关系中获取的,该关联关系是在用户终端与注册服务器通过认证与密钥协商机制成功进行认证与密钥协商之后建立的。

注册服务器基于该第二根密钥生成第二应用密钥。

进一步的,注册服务器基于包括该第二根密钥以及第五固定字符串(2)或/和第五随机字符串或/和第五时间戳或/和该临时用户标识或/和该第三方应用标识的信息生成第二应用密钥;其中,该第五固定字符串(2)为预先配置的并且与用户终端上预先配置的第五固定字符串(1)的值相同的字符串,该第五随机字符串为本地随机生成的字符串,该第五时间戳为通过获取注册服务器的当前系统时间生成。具体地,以密钥派生算法公式为例,可以表示为:dk=pbkdf2(passphrase,salt,c,dklen),其中:dk是生成的第二应用密钥,pbkdf2是密钥派生算法,passphrase是该第二根密钥以及第五固定字符串或/和第五随机字符串或/和第五时间戳或/和该临时用户标识或/和第三方应用标识组合拼接的字符串;salt是盐值,在本例中是一个固定字符串;c是迭代次数;dklen是密钥输出长度,可以根据需要生成符合要求的密钥长度。

步骤602.注册服务器建立该临时用户标识和该第三方应用标识与该第二应用密钥的对应关系。

注册服务器建立该临时用户标识和该第三方应用标识与该第二应用密钥的对应关系,以使得根据该临时用户标识和该第三方应用标识能查找到该第二应用密钥。

例如,注册服务器预先建立有用于该第三方应用标识的账户密钥关系表,在该账户密钥关系表中存储有临时用户标识和第二应用密钥的一一对应关系。注册服务器根据该临时用户标识在该账户密钥关系表中查找第二应用密钥,如果没有查找到第二应用密钥,则在该账户密钥关系表中新增该临时用户标识和该第二应用密钥的一一对应关系,如果查找到第二应用密钥,则在该账户密钥关系表中使用本次新生成的该第二应用密钥替换该临时用户标识已有的第二应用密钥。

需要说明的是,上述步骤601和步骤602还可以在下述步骤603之后执行,本发明并不对此进行限定。

步骤603.注册服务器向用户终端发送注册应答消息,该注册应答消息是注册成功应答消息。

与步骤601相对应的,如果生成第二应用密钥还包括第五随机字符串或/和第五时间戳,则向用户终端发送的该注册成功应答消息,还包括该第五随机字符串或/和第五时间戳。

步骤604.用户终端接收注册服务器发送的注册应答消息并执行相应的操作。

用户终端根据接收的客户端注册应答消息执行相应的操作,包括:

如果该注册应答消息是注册成功应答消息,则执行下述步骤605。

否则,则不执行下述步骤。

步骤605.用户终端使用和注册服务器相同的应用密钥生成方式,基于该第一根密钥生成第一应用密钥。

与上述步骤601相对应的,用户终端使用和注册服务器相同的应用密钥生成方式,基于该第一根密钥生成第一应用密钥。

相应的,如果在步骤601中注册服务器基于包括该第二根密钥以及第五固定字符串(2)或/和第五随机字符串或/和第五时间戳或/和该临时用户标识或/和第三方应用标识的信息生成第二应用密钥,则用户终端基于包括该第一根密钥以及第五固定字符串(1)或/和第五随机字符串或/和第五时间戳或/和该临时用户标识或/和第三方应用标识的信息生成第一应用密钥;其中,该第五固定字符串(1)为预先配置的并且与注册服务器上预先配置的第五固定字符串(2)的值相同的字符串,该第五随机字符串或/和第五时间戳为注册服务器所传递的。具体地,以使用和步骤601注册服务器相同的密钥派生算法为例,密钥派生算法公式可以表示为dk=pbkdf2(passphrase,salt,c,dklen),其中:dk是生成的第一应用密钥;pbkdf2是与注册服务器相同的密钥派生算法;passphrase是该第一根密钥以及第五固定字符串(1)或/和第五随机字符串或/和第五时间戳或/和该临时用户标识或/和第三方应用标识组合拼接的字符串,并且组合拼接方式与注册服务器一致;salt是盐值,是一个与注册服务器相同的固定字符串;c是与注册服务器相同的迭代次数;dklen是与注册服务器相同的密钥输出长度。

至此,由于用户终端上生成的第一根密钥和在注册服务器上生成的第二根密钥的值相同,并且由于第一应用密钥和第二应用密钥是使用相同的应用密钥生成方式、基于相同值的根密钥生成的,因此,第一应用密钥和第二应用密钥的值也是相同的。用户终端将该临时用户标识和第一应用密钥传递给第三方应用标识对应的第三方应用客户端,第三方应用客户端基于该临时用户标识和第一应用密钥,将可以向第三方应用服务器实现快捷、安全的身份认证、数据加密等操作;而由于第三方应用服务器与注册服务器通过网络相连接,因此第三方应用服务器可以基于注册服务器建立的临时用户标识和第三方应用标识与第二应用密钥的对应关系,从而实现对第三方应用客户端的身份认证、数据加密等操作。

如上实施例过程,为用户终端中运行的第三方应用客户端生成了相应的应用密钥。带来的效果至少包括:第一方面,自动为第三方应用客户端获取应用密钥,减少了终端用户的输入操作,提升了用户的使用体验;第二方面,用户终端中运行的第三方应用客户端将可以根据临时用户标识和获取的应用密钥向对应的第三方应用服务器实现快捷、安全的身份认证、数据加密等操作;第三方面,第三方应用客户端对应的第三方应用服务器,将只能获取临时用户标识,而不能获取移动用户标识等用户身份标识,从而能够有效地保护用户的隐私不被泄露。

八、客户端注册信息提供过程实施例三

请参考图7,其示出了本发明提供的客户端注册信息提供过程实施例三的流程图,该方法可用于图1所示的实施环境中。本实施例注册服务器为用户终端中运行的第三方应用客户端提供了注册信息,该注册信息包括为用户终端中运行的第三方应用客户端生成的用户令牌。

为了让注册服务器为用户终端中运行的第三方应用客户端提供相应的注册信息和服务,则用户终端需将第三方应用客户端对应的第三方应用标识传递给注册服务器。具体实施方式可以参照上述客户端注册信息提供过程实施例一,在此不再赘述。

在用户终端向注册服务器传递第三方应用标识、以及注册服务器确定安全认证成功之后,注册服务器可以为用户终端中运行的第三方应用客户端提供包括用户令牌的注册信息,其中,注册服务器确定安全认证成功的实施过程可以参照客户端安全认证过程实施例。注册服务器提供用户令牌的具体实施方式可以包括:

步骤701.注册服务器生成用户令牌。

注册服务器生成用户令牌,并且建立与用户令牌相关的关联关系。根据建立关联关系的不同,在这里将用户令牌区分为第一用户令牌、第二用户令牌和第三用户令牌。具体实施方式包括:

实施方式一,注册服务器生成第一用户令牌,并且将该第一用户令牌与该临时用户标识和该第三方应用标识相关联。

注册服务器生成第一用户令牌,该第一用户令牌是唯一的,并且具有足够的长度和足够的随机性,使得难以被猜测破解。

注册服务器建立该第一用户令牌与该临时用户标识和该第三方应用标识的关联关系,以使得根据该第一用户令牌能查找和获取到关联的该临时用户标识和该第三方应用标识,从而根据该第三方应用标识确定该第一用户令牌是否是应用于该第三方应用标识对应的第三方应用服务器的用户令牌,以及还可以根据该临时用户标识获取用户身份标识,从而为同一用户提供持续的服务。

例如,在第三方应用服务器接收到用户终端发送的包括第一用户令牌的认证请求之后,第三方应用服务器将该第一用户令牌转发给注册服务器,注册服务器根据该认证请求中的第一安全令牌获取关联的临时用户标识和第三方应用标识,如果该关联的第三方应用标识与该第三方应用服务器的第三方应用标识一致,则注册服务器向第三方应用服务器反馈表示用户终端认证成功的信息;而且注册服务器可以根据该关联的临时用户标识获取用户身份标识,从而可以根据该用户身份标识和该第三方应用标识确定第三方用户标识,将该第三方用户标识提供给第三方应用服务器以用于绑定用户身份,从而为同一用户提供持续的服务。

实施方式二,注册服务器根据该临时用户标识获取用户身份标识,生成第二用户令牌,并且将该第二用户令牌与该用户身份标识和该第三方应用标识相关联。

注册服务器生成第二用户令牌,该第二用户令牌是唯一的,并且具有足够的长度和足够的随机性,使得难以被猜测破解。

注册服务器根据该临时用户标识获取用户身份标识,以及建立该第二用户令牌与该用户身份标识和该第三方应用标识的关联关系,以使得根据该第二用户令牌能查找和获取到关联的该用户身份标识和该第三方应用标识,从而根据该第三方应用标识确定该第二用户令牌是否是应用于该第三方应用标识对应的第三方应用服务器的用户令牌,以及根据该用户身份标识确定用户身份,从而为同一用户提供持续的服务。

实施方式三,注册服务器根据该临时用户标识和该第三方应用标识获取对应的第三方用户标识,生成第三用户令牌,并且将该第三用户令牌与该第三方用户标识和该第三方应用标识相关联。

注册服务器生成第三用户令牌,该第三用户令牌是唯一的,并且具有足够的长度和足够的随机性,使得难以被猜测破解。

注册服务器根据该临时用户标识和该第三方应用标识获取对应的第三方用户标识,以及建立该第三用户令牌与该第三方用户标识和该第三方应用标识的关联关系,以使得根据该第三用户令牌能查找和获取到关联的该第三方用户标识和该第三方应用标识,从而根据该第三方应用标识确定该第三用户令牌是否是应用于该第三方应用标识对应的第三方应用服务器的用户令牌;以及还可以将该第三方用户标识提供给第三方应用服务器以用于绑定用户身份,从而为同一用户提供持续的服务。

根据临时用户标识获取用户身份标识的实施方式,以及根据临时用户标识和第三方应用标识确定第三方用户标识的实施方式,可以参照上述步骤501,在此不再赘述。

需要说明的是,还应当提供清理机制,对于已经失效的用户令牌应当及时清理相应的关联关系,例如在用户令牌验证一次后删除该用户令牌相应的关联关系,或者给用户令牌设定一个有效期,依据有效期及时删除已过有效期的用户令牌相应的关联关系。具体清理机制在此不赘述。

步骤702.注册服务器将该用户令牌传递给用户终端。

注册服务器将该用户令牌传递给用户终端,该用户令牌为上述步骤701中所生成的第一用户令牌、第二用户令牌或第三用户令牌。例如,在注册服务器向用户终端发送的注册成功应答消息中,包括该用户令牌。

步骤703.用户终端接收注册服务器传递的该用户令牌。

用户终端接收注册服务器传递的该用户令牌,例如,接收注册服务器发送的注册成功应答消息,在该注册成功应答消息中获取该用户令牌。

又例如,上述步骤702和703还可以是,用户终端与注册服务器进行安全认证成功之后保持有会话状态或认证令牌,用户终端通过该会话状态或认证令牌向注册服务器发送获取用户令牌的请求,注册服务器反馈该用户令牌,用户终端接收并获取该用户令牌。

在用户终端接收到该用户令牌之后,将该用户令牌传递给第三方应用客户端。第三方应用客户端将可以根据该用户令牌实现向对应的第三方应用服务器的认证。

如上实施例过程,为用户终端中运行的第三方应用客户端生成了用户令牌。带来的效果包括:第一方面,自动为第三方应用客户端获取用户令牌,减少了终端用户的输入操作,提升了用户的使用体验;第二方面,该用户令牌将可以用于第三方应用客户端向对应的第三方应用服务器的认证鉴权,从而提升用户的使用体验;第三方面,在用于认证鉴权时,该用户令牌由于不需要进行加密计算等操作,因此,更适用于一些轻量级的第三方应用客户端(如基于html5、javascript的客户端程序)。

九、认证与密钥协商过程实施例

请参考图8,其示出了本发明提供的认证与密钥协商过程实施例的流程图。本实施例可用于图1所示的实施环境中,具体可以包括:

步骤801.用户终端启动认证与密钥协商过程。

在获取到用于认证与密钥协商的操作指示之后,用户终端启动认证与密钥协商过程。

步骤802.用户终端获取移动用户标识。

该移动用户标识是用于唯一识别用户识别模块sim的标识,用户终端获取该移动用户标识。本实施例以用户识别模块sim是usim,用户数据系统是归属用户服务器hss或/和统一数据管理udm为例进行说明。

例如,以使用的用户数据系统是归属用户服务器hss为例,在usim上获取的移动用户标识是imsi,用户终端通过操作系统上的api获取imsi(例如android系统上使用getsubscriberid方法),或者用户终端通过apdu命令读取usim的efimsi值。

又例如,以使用的用户数据系统是统一用户管理udm为例,则通过usim获取的移动用户标识是supi,supi由imsi和网络标识等组成。

步骤803.用户终端向注册服务器发送认证与密钥协商请求,该认证与密钥协商请求包括该移动用户标识。

进一步地,如上述步骤802中的示例,如果移动用户标识为supi,则还可以将该supi加密生成suci,并将该suci作为该认证与密钥协商请求中的移动用户标识,即,用户终端向注册服务器发送认证与密钥协商请求,在该认证与密钥协商请求中包括该suci。

相应地,注册服务器接收用户终端发送的认证与密钥协商请求。

步骤804.注册服务器向用户数据系统发送认证请求,该认证请求包括该移动用户标识。

例如,以用户数据系统为归属用户服务器hss、移动用户标识是imsi为例,可以通过向归属用户服务器hss的swx接口发送multimedia-auth-request认证请求,该multimedia-auth-request认证请求中包括该移动用户标识(即imsi)。

又例如,再以使用的用户数据系统是归属用户服务器hss、移动用户标识是imsi为例,可以通过向归属用户服务器hss的s6a接口发送authentication-information-request_s6认证请求,在该认证请求中包括移动用户标识(即imsi)、服务网络标识以及网络类型,例如,服务网络标识是mcc(mobilecountrycode,移动国家码)+mnc(mobilenetworkcode,移动网络码),网络类型是e-utran。

再例如,以使用的用户数据系统是统一用户管理udm、移动用户标识是supi或suci为例,注册服务器向统一数据管理udm发送nudm_authentication_get认证请求,该认证请求中包括移动用户标识(即supi或suci),以及服务网络名(snname),该服务网络名是注册服务器的服务网络名。

需要说明的是,如果注册服务器同时连接有归属用户服务器hss和统一数据管理udm,则注册服务器需将认证请求发送给移动用户标识所属的归属用户服务器hss或统一数据管理udm,例如根据移动用户标识的类型或范围确定认证请求是要发送给归属用户服务器hss还是统一数据管理udm。

步骤805.注册服务器接收用户数据系统反馈的认证应答,该认证应答包括随机数rand、鉴权令牌autn、第二期望响应值和第二初始密钥。

在用户数据系统接收到注册服务器发送的认证请求之后,用户数据系统根据该认证请求反馈相应的认证应答,该认证应答包括随机数rand、鉴权令牌autn、第二期望响应值和第二初始密钥。

相应地,注册服务器从该认证应答中获取随机数rand、鉴权令牌autn、第二期望响应值和第二初始密钥。

例如,以使用的用户数据系统是归属用户服务器hss为例,在注册服务器向归属用户服务器hss发送multimedia-auth-request认证请求之后,归属用户服务器hss向注册服务器返回multimedia-auth-answer认证应答。注册服务器对multimedia-auth-answer认证应答进行解析,从中获取sip-auth-data-item属性值对(avp:attributevaluepair),该sip-auth-data-item属性值对包括sip-authenticate、sip-authorization、confidentiality-key、integrity-key属性值对,注册服务器从该sip-authenticate属性值对中获取随机数rand和鉴权令牌autn,从该sip-authorization属性值对中获取期望响应值xres,从confidentiality-key属性值对获取第二加密密钥ck或/和从integrity-key属性值对获取第二完整性密钥ik,其中,第二期望响应值为期望响应值xres,第二初始密钥为第二加密密钥ck或/和第二完整性密钥ik。可以理解,第二初始密钥为第二加密密钥ck或/和第二完整性密钥ik,是指在生成或使用第二初始密钥时包括第二加密密钥ck或/和第二完整性密钥ik。

又例如,再以使用的用户数据系统是归属用户服务器hss为例,在归属用户服务器hss接收到注册服务器发送的authentication-information-request_s6认证请求之后,归属用户服务器hss向注册服务器返回authentication-information-answer_s6认证应答,该认证应答中包括随机数rand、鉴权令牌autn、期望响应值xres、第二密钥kasme,其中,第二期望响应值为期望响应值xres,第二初始密钥为第二密钥kasme。

再例如,以使用的用户数据系统是统一用户管理udm、移动用户标识是supi或suci为例,在统一数据管理udm接收到注册服务器发送的nudm_authentication_get认证请求之后,统一数据管理udm向注册服务器返回nudm_authentication_get认证应答,该认证应答中包括随机数rand、鉴权令牌autn、期望响应值xres*和第二密钥kausf,其中,第二期望响应值为期望响应值xres*,第二初始密钥为第二密钥kausf。进一步的,如果注册服务器向统一数据管理udm发送的nudm_authentication_get认证请求中包括的移动用户标识为suci,则统一用户管理udm返回的nudm_authenticate_get认证应答中还包括对该suci解密后得到的supi,并且注册服务器将该解密后的supi作为后续步骤中的移动用户标识。

步骤806.注册服务器向用户终端发送认证与密钥协商挑战消息,该认证与密钥协商挑战消息包括该随机数rand和该鉴权令牌autn。

注册服务器保留第二期望响应值和第二初始密钥,并向用户终端发送认证与密钥协商挑战消息,该认证与密钥协商挑战消息包括该随机数rand和该鉴权令牌autn。

相应地,用户终端接收注册服务器发送的认证与密钥协商挑战消息,并从中获取该随机数rand和该鉴权令牌autn。

步骤807.用户终端向用户识别模块sim发送鉴权请求,该鉴权请求包括该随机数rand和该鉴权令牌autn。

用户终端向用户识别模块sim发送鉴权请求(例如通过发送apdu命令authenticate),传递参数为该随机数rand和该鉴权令牌autn。

步骤808.用户终端接收用户识别模块sim的返回值,该返回值包括期望响应值res、第一加密密钥ck和第一完整性密钥ik。

在用户识别模块sim接收到用户终端发送的鉴权请求之后,用户识别模块sim经过鉴权计算后向用户终端发送返回值,该返回值包括期望响应值res、第一加密密钥ck和第一完整性密钥ik,用户终端接收该返回值。

步骤809.用户终端向注册服务器发送认证与密钥协商挑战应答消息,该认证与密钥协商挑战应答消息包括第一期望响应值,该第一期望响应值是基于期望响应值res生成的。

以使用的用户数据系统是归属用户服务器hss为例,即与注册服务器保留的第二期望响应值为期望响应值xres相对应的,用户终端从返回值中获取的期望响应值res即为第一期望响应值。

以使用的用户数据系统是统一用户管理udm为例,即与注册服务器保留的第二期望响应值为期望响应值xres*相对应的,用户终端参照ts33.501annexa.4中“res*和xres*派生函数”中使用的方式,即使用和统一数据管理udm生成期望响应值xres*相同的方式,根据期望响应值res生成期望响应值res*,该期望响应值res*即为第一期望响应值。

进一步地,为了保护期望响应值res或期望响应值res*的安全,避免在传输过程中被泄露,还可以使用哈希算法(例如sha256)对期望响应值res或期望响应值res*进行哈希计算,将经过哈希计算后生成的哈希值作为第一期望响应值,而不发送期望响应值res或期望响应值res*的明文。

相应地,注册服务器接收用户终端发送的该第一期望响应值。

步骤810.注册服务器基于第二期望响应值验证第一期望响应值;若验证第一期望响应值有效,则执行步骤811。

注册服务器从接收的认证与密钥协商挑战应答消息中获取第一期望响应值,注册服务器将本地保留的第二期望响应值对其进行验证。若验证第一期望响应值有效,则执行下述步骤811;若验证无效,则向用户终端发送认证与密钥协商应答消息,该认证与密钥协商应答消息是认证与密钥协商失败应答消息,并跳转执行下述步骤814。

如果第一期望响应值为期望响应值res或期望响应值res*的明文,则比较第二期望响应值与第一期望响应值是否一致;若一致,则确定验证第一期望响应值有效;若不一致,则确定验证第一期望响应值无效;或者,

如果第一期望响应值为期望响应值res或期望响应值res*经过哈希计算后的哈希值,则将第二期望响应值使用相同的哈希计算方式计算生成哈希值,并且比较两个哈希值是否一致;若一致,则确定验证第一期望响应值有效;若不一致,则确定验证第一期望响应值无效。

步骤811.注册服务器基于第二初始密钥生成第二根密钥。

在上述步骤806中,注册服务器保留了第二初始密钥,注册服务器基于该第二初始密钥生成第二根密钥。

例如,以该第二初始密钥作为第二根密钥。

又例如,基于包括该第二初始密钥的信息生成第二根密钥。具体地,以密钥派生算法公式为例,可以表示为:dk=pbkdf2(passphrase,salt,c,dklen),其中:dk是生成的第二根密钥,pbkdf2是密钥派生算法,passphrase是该第二初始密钥,或该第二初始密钥和其他信息组合拼接的字符串,例如,passphrase是该第二初始密钥和第四固定字符串(2)或/和第四随机字符串或/和第四时间戳或/和该移动用户标识组合拼接的字符串,该第四固定字符串(2)为预先配置的并且与用户终端上预先配置的第四固定字符串(1)的值相同的字符串,该第四随机字符串为本地随机生成的字符串,该第四时间戳为通过获取注册服务器的当前系统时间生成;salt是盐值,在本例中是一个固定字符串;c是迭代次数;dklen是密钥输出长度,可以根据需要生成符合要求的密钥长度。

步骤812.注册服务器生成临时用户标识,并且建立该临时用户标识与该第二根密钥的关联关系。

注册服务器生成临时用户标识,并且建立该临时用户标识与该第二根密钥的关联关系,以使得注册服务器在接收到该临时用户标识时,能够根据该临时用户标识获取到该第二根密钥。

注册服务器生成临时用户标识可以包括多种实施方式,具体可以包括:

第一种实施方式,根据随机数rand生成临时用户标识。

由于上述随机数rand是临时生成的随机数,则注册服务器可以根据该随机数rand生成临时用户标识,例如将该随机数rand作为临时用户标识,又例如根据该随机数rand基于一定的规则生成临时用户标识等(如在随机数rand前加上前缀组合生成临时用户标识)。

第二种实施方式,随机或按照一定规则生成临时用户标识。

随机生成临时用户标识,或者按照一定的规则生成临时用户标识,例如生成一个唯一的随机数并加上固定的前缀组合生成临时用户标识等。

进一步的,注册服务器建立该临时用户标识与该移动用户标识的关联关系,以使得根据临时用户标识在该关联关系中能获取到该移动用户标识。

再进一步的,在注册服务器上预先为用户创建有一个唯一的用户身份标识,并且预先建立有移动用户标识与用户身份标识的对应关系,因此,根据该移动用户标识获取对应的用户身份标识,然后再建立该临时用户标识与该用户身份标识的关联关系,以使得根据该临时用户标识在该关联关系中能获取到该用户身份标识。

步骤813.注册服务器向用户终端发送认证与密钥协商应答消息,该认证与密钥协商应答消息是认证与密钥协商成功应答消息。

如果在生成第二根密钥的信息中还包括第四随机字符串或/和第四时间戳,则在该认证与密钥协商成功应答消息中还包括该第四随机字符串或/和该第四时间戳。

需要说明的是,上述步骤811和步骤812还可以在步骤813即注册服务器向用户终端发送认证与密钥协商成功应答消息之后执行。当然,如果生成第二根密钥的信息在实施方式上还包括第四随机字符串或/和第四时间戳,则步骤811需在步骤813之前执行。

步骤814.用户终端接收注册服务器发送的认证与密钥协商应答消息并执行相应的操作。

用户终端接收注册服务器发送的认证与密钥协商应答消息,该认证与密钥协商应答消息包括认证与密钥协商成功应答消息或认证与密钥协商失败应答消息。

用户终端根据该认证与密钥协商应答消息执行相应的操作,包括:

如果该认证与密钥协商应答消息是认证与密钥协商成功应答消息,则用户终端执行下述步骤815。

如果该认证与密钥协商应答消息是认证与密钥协商失败应答消息,则不执行下述步骤,结束本次认证与密钥协商流程。

步骤815.用户终端基于第一初始密钥生成第一根密钥。

在上述步骤808用户识别模块sim向用户终端发送的返回值中,用户终端获取第一加密密钥ck或/和第一完整性密钥ik,用户终端根据该第一加密密钥ck或/和该第一完整性密钥ik生成第一初始密钥。

与注册服务器上的第二初始密钥为第二加密密钥ck或/和第二完整性密钥ik相对应的,用户终端以该第一加密密钥ck或/和该第一完整性密钥ik作为第一初始密钥。可以理解,第一初始密钥为第一加密密钥ck或/和第一完整性密钥ik,是指在生成或使用第一初始密钥时包括第一加密密钥ck或/和第一完整性密钥ik,并且与第二初始密钥为第二加密密钥ck或/和第二完整性密钥ik时的生成或使用方式相一致,以使得第一初始密钥与第二初始密钥的值相同。

与注册服务器上的第二初始密钥为第二密钥kasme相对应的,用户终端参照ts33.401annexa.2中“kasme派生函数”中使用的方式,即使用和归属用户服务器hss生成第二密钥kasme相同的方式,根据第一加密密钥ck或/和第一完整性密钥ik生成第一密钥kasme,该第一密钥kasme即为第一初始密钥。

与注册服务器上的第二初始密钥为第二密钥kausf相对应的,用户终端参照ts33.501annexa.2中“kausf派生函数”中使用的方式,即使用和统一数据管理udm生成第二密钥kausf相同的方式,根据第一加密密钥ck或/和第一完整性密钥ik生成第一密钥kausf,该第一密钥kausf即为第一初始密钥。

在生成第一初始密钥之后,用户终端使用和注册服务器相同的根密钥生成方式,基于该第一初始密钥生成第一根密钥,相同的根密钥生成方式包括相同的密钥派生算法公式、相同的输入参数、相同的字符串组合拼接方式等,以使得生成的第一根密钥与注册服务器生成的第二根密钥的值相同。

例如,如果在步骤811注册服务器以第二初始密钥作为第二根密钥,则用户终端以该第一初始密钥作为第一根密钥。

又例如,如果在步骤811中注册服务器基于包括第二初始密钥的信息生成第二根密钥,则用户终端基于包括该第一初始密钥的信息生成第一根密钥。具体地,以使用和步骤811注册服务器相同的密钥派生算法为例,密钥派生算法公式可以表示为dk=pbkdf2(passphrase,salt,c,dklen),其中:dk是生成的第一根密钥;pbkdf2是与注册服务器相同的密钥派生算法;passphrase是该第一初始密钥和其他信息组合拼接的字符串,该其他信息的值与注册服务器生成第二根密钥的相同,并且组合拼接方式与注册服务器一致,例如,passphrase是该第一初始密钥和第四固定字符串(1)或/和第四随机字符串或/和第四时间戳或/和该移动用户标识组合拼接的字符串,其中,该第四固定字符串(1)是在用户终端上预先配置的并且与注册服务器上生成第二根密钥时所使用的第四固定字符串(2)的值相同的字符串,该第四随机字符串或/和第四时间戳是从注册服务器发送的认证与密钥协商成功应答消息中所获取的;salt是盐值,在本实施例中是一个与注册服务器相同的固定字符串;c是与注册服务器相同的迭代次数;dklen是与注册服务器相同的密钥输出长度。

由于用户终端上生成的第一初始密钥与注册服务器上获取的第二初始密钥的值相同,又由于根密钥的生成方式一致,因此,在用户终端上生成的第一根密钥与注册服务器上生成的第二根密钥的值相同。

需要说明的是,实际应用中,统一用户管理udm主要作为5g网络的用户数据系统,归属用户服务器hss主要作为3g/4g网络的用户数据系统,但若统一用户管理udm保持了对归属用户服务器hss的向前兼容,则本实施例各步骤中应用在归属用户服务器hss的示例,也可以应用在统一用户管理udm。

步骤816.用户终端获得该临时用户标识。

根据步骤812中注册服务器生成临时用户标识的实施方式,用户终端使用相对应的实施方式获取该临时用户标识。具体包括:

第一种实施方式,若注册服务器根据随机数rand生成临时用户标识,则用户终端根据该随机数rand生成临时用户标识。

若注册服务器根据随机数rand生成临时用户标识,由于在步骤806中用户终端接收到注册服务器发送的认证与密钥协商挑战消息,并从中获取到该随机数rand,则用户终端根据该获取到的随机数rand生成临时用户标识。

如果注册服务器将该随机数rand作为临时用户标识,则用户终端将该随机数rand作为临时用户标识;如果注册服务器根据该随机数rand基于一定的规则生成临时用户标识等(如在随机数rand前加上前缀组合生成临时用户标识),则用户终端根据该随机数rand基于同样的规则生成临时用户标识。

第二种实施方式,若注册服务器随机或按照一定规则生成临时用户标识,则由注册服务器将该临时用户标识传递给用户终端,用户终端获取该临时用户标识。

如果注册服务器随机或按照一定规则生成临时用户标识,则由注册服务器将该临时用户标识传递给用户终端,例如在步骤813中注册服务器向用户终端发送的认证与密钥协商成功应答消息还包括该临时用户标识,用户终端在接收到认证与密钥协商成功应答消息之后,从中获取该临时用户标识;又例如用户终端在接收到注册服务器发送的认证与密钥协商成功应答消息之后,通过与注册服务器保持的连接状态或会话状态发送临时用户标识的获取请求,并获取注册服务器反馈的该临时用户标识。

通过本实施例提供的方法,用户终端基于用户识别模块sim中存储的移动用户标识、移动用户密钥(k)和相关aka算法,以及注册服务器基于用户数据系统中存储的移动用户标识、移动用户密钥(k)和相关aka算法,经过用户终端和注册服务器间的认证与密钥协商过程,在认证与密钥协商成功之后,在注册服务器上生成了第二根密钥和临时用户标识,以及建立该临时用户标识与该第二根密钥的关联关系,在用户终端上生成了第一根密钥,以及获取该临时用户标识,从而可用于后续用户终端与注册服务器间的安全认证。

需要说明的是,在本文中,术语“包括”、“包含”、“传递”、“发送”或者任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、产品或者系统不仅包括那些要素,而且还可以包括没有明确列出的其他要素,或者是还可以包括为这种过程、方法、产品或者系统所固有的要素。

术语“第一”、“第二”、“第三”等(如果存在)仅用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解,这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

可以以许多方式来实现本发明的方法、装置和系统。例如,可通过软件、硬件、固件或者软件、硬件、固件的任何组合来实现本发明的方法、装置和系统。用于方法的步骤的上述顺序仅是为了进行说明,本发明的方法的步骤不限于以上具体描述的顺序,除非以其它方式特别说明。此外,在一些实施例中,还可将本发明实施为记录在记录介质中的程序,这些程序包括用于实现根据本发明的方法的机器可读指令。因而,本发明还覆盖存储用于执行根据本发明的方法的程序的记录介质。

以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1