一种基于sim卡的统一认证方法和设备的制造方法
【技术领域】
[0001]本发明涉及通信技术领域,尤其是涉及一种基于SIM (Subscriber IdentityModule,用户识别模块)卡的统一认证方法和设备。
【背景技术】
[0002]统一认证、单点登录是目前比较流行的业务整合解决方案。随着移动互联网的快速发展,Facebook, Google等均将发展战略的主题放在移动平台上进行统一认证、单点登录。现有技术中,基于移动终端的身份认证、单点登录技术涉及认证客户端、认证平台、第三方应用和第三方业务平台,包括客户端应用单点登录、客户端应用到web单点登录、web到客户端的单点登录等。
[0003]现有技术中,基于单点登录的统一认证方法的实现流程包括:(I)第三方应用向认证客户端请求登录,在此过程中,需要调用认证客户端中间件提供的API (Applicat1nProgramming Interface,应用程序接口)。(2)认证客户端为第三方应用签发Token信息。
[3]第三方应用向第三方业务平台发起携带Token信息的登录请求。(4)第三方业务平台将登录请求中携带的Token信息发送到认证平台,请求对Token信息进行验证。(5)认证平台验证Token信息的有效性。(6)认证平台验证通过后,向第三方业务平台发送验证通过信息。(7)第三方业务平台向第三方应用确认登录请求,应用完成登录。
[0004]在上述实现过程中,需要由认证客户端为第三方应用签发Token信息,即认证客户端作为中间件提供Token信息以及密钥管理等服务,从而导致现有技术中至少存在以下问题:(I)安全问题=Token信息以及密钥存在被截获的风险;(2)不同第三方业务平台需要开发不同的认证客户端,且用户需要在移动终端上安装各认证客户端,开发工作量比较大,安装部署繁琐。
【发明内容】
[0005]本发明实施例提供一种基于SIM卡的统一认证方法和设备,以通过SIM卡实现Token信息的签发,从而避免使用认证客户端提供Token信息。
[0006]为了达到上述目的,本发明实施例提供一种基于用户识别模块SM卡的统一认证方法,在SM卡应用中预置有统一认证模块,所述方法包括:
[0007]在第三方应用调用所述统一认证模块提供的应用程序接口 API请求登录时,所述统一认证模块确定所述第三方应用对应的共享密钥KS ;
[0008]所述统一认证模块利用所述共享密钥KS生成Token信息,将所述Token信息签发给第三方应用,由第三方应用利用所述Token信息发起登录过程。
[0009]所述方法还包括:在第三方应用调用所述统一认证模块提供的API请求登录时,所述统一认证模块通过数据短信的形式向用户弹出授权登录信息。
[0010]所述统一认证模块确定所述第三方应用对应的共享密钥KS的过程,具体包括:在所述第三方应用首次调用所述统一认证模块提供的API请求登录时,所述统一认证模块生成第一随机数,并向统一认证平台发送用于请求共享密钥KS的包含第一随机数的数据短信,由所述统一认证平台生成第二随机数,并利用所述第一随机数和所述第二随机数生成共享密钥KS ;所述统一认证模块接收所述统一认证平台返回的包含第二随机数的数据短信,并利用所述第一随机数和所述第二随机数生成共享密钥KS,并存储所述共享密钥KS,并确定当前生成的共享密钥KS为所述第三方应用对应的共享密钥KS ;
[0011]在第三方应用不是首次调用统一认证模块提供的API请求登录时,所述统一认证模块利用存储的共享密钥KS确定第三方应用对应的共享密钥KS。
[0012]所述第三方应用调用所述统一认证模块提供的API请求登录的过程,具体包括:所述统一认证模块提供的API接收第三方应用发出的用于获取Token的请求消息,所述请求消息中携带所述第三方应用的用于获取Token的信息;
[0013]所述统一认证模块提供的API构建UPDATE RECORD命令,并通过所述UPDATERECORD命令在所述用于获取Token的信息中添加特殊字符,并将添加了所述特殊字符的用于获取Token的信息写入到指定类型短消息文件中,并将所述指定类型短消息文件发送给所述统一认证模块;
[0014]所述统一认证模块在收到所述指定类型短消息文件之后,如果检测到所述指定类型短消息文件的特殊字符能够匹配预设规则,则确定所述第三方应用当前在调用所述统一认证模块提供的API请求登录,并需要执行确定所述第三方应用对应的共享密钥KS以及生成Token信息的过程。
[0015]所述统一认证模块生成Token信息,并将Token信息签发给第三方应用的过程,具体包括:所述统一认证模块在生成所述Token信息之后,通过UPDATE RECORD命令在所述Token信息中添加特殊字符,并通过UPDATE RECORD命令将添加了特殊字符的Token信息写入到指定类型短消息文件的特殊位置,并将所述指定类型短消息文件发送给所述统一认证模块提供的API ;所述统一认证模块提供的API通过READ RECORD命令读取所述指定类型短消息文件的特殊位置的Token信息,并按照所述第三方应用对应的格式组装所述特殊位置的Token信息,并将所述Token信息签发给第三方应用。
[0016]所述第三方应用调用所述统一认证模块提供的API请求登录前,所述方法进一步包括:当第三方应用需要请求登录时,所述统一认证模块接收来自所述第三方应用的应用认证请求,且所述应用认证请求中携带应用标识和加密信息;所述统一认证模块对所述应用标识和加密信息进行验证,并在验证通过之后,允许所述第三方应用调用所述统一认证模块提供的API请求登录。
[0017]本发明实施例提供一种移动终端,所述移动终端的用户识别模块SIM卡应用中预置有统一认证模块,且所述统一认证模块具体包括:
[0018]确定单元,用于在第三方应用调用所述统一认证模块提供的应用程序接口 API请求登录时,确定所述第三方应用对应的共享密钥KS ;
[0019]生成单元,用于利用所述共享密钥KS生成Token信息;
[0020]发送单元,用于将所述Token信息签发给所述第三方应用,由所述第三方应用利用所述Token信息发起登录过程。
[0021]所述发送单元,还用于在所述第三方应用调用所述统一认证模块提供的API请求登录时,通过数据短信的形式向用户弹出授权登录信息。
[0022]所述确定单元,具体用于在第三方应用首次调用统一认证模块提供的API请求登录时,生成第一随机数,并向统一认证平台发送用于请求共享密钥KS的包含第一随机数的数据短信,由统一认证平台生成第二随机数,并利用第一随机数和第二随机数生成共享密钥KS ;接收统一认证平台返回的包含第二随机数的数据短信,并利用第一随机数和第二随机数生成共享密钥KS,并存储所述共享密钥KS,并确定当前生成的共享密钥KS为所述第三方应用对应的共享密钥KS ;在第三方应用不是首次调用统一认证模块提供的API请求登录时,利用存储的共享密钥KS确定第三方应用对应的共享密钥KS。
[0023]所述发送单元,还用于接收第三方应用发出的用于获取Token的请求消息,所述请求消息中携带第三方应用的用于获取Token的信息;构建UPDATE RECORD命令,通过所述UPDATE RECORD命令在所述用于获取Token的信息中添加特殊字符,将添加了所述特殊字符的用于获取Token的信息写入到指定类型短消息文件中,将所述指定类型短消息文件发送给所述确定单元;
[0024]所述确定单元,还用于在收到所述指定类型短消息文件之后,如果检测到所述指定类型短消息文件的特殊字符能够匹配预设规则,则确定所述第三方应用当前在调用所述统一认证模块提供的API请求登录,并需要执行确定所述第三方应用对应的共享密钥KS以及生成Token信息的过程。
[0025]所述发送单元,进一步用于在生成所述Token信息之后,通过UPDATE RECORD命令在所述Token信息中添加特殊字符,并通过UPDATE RECORD命令将添加了特殊字符的Token信息写入到指定类型短消息文件的特殊位置;
[0026]通过READ RECORD命令读取所述指定类型短消息文件的特殊位置的Token信息,并按照所述第三方应用对应的格式组装所述特殊位置的Token信息,并将所述Token信息签发给所述第三方应用。
[0027]所述确定单元,还用于当所述第三方应用需要请求登录时,接收来自所述第三方应用的应用认证请求,且所述应用认证请求中携带应用标识和加密信息;对所述应用标识和加密信息进行验证,并在验证通过之后,允许所述第三方应用调用所述统一认证模块提供的API请求登录。
[0028]与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,SM卡的统一认证模块通过SDK (Software Development Kit,软件开发工具