一种获取虚拟用户身份的方法及装置 |
|||||||
申请号 | CN201610162030.1 | 申请日 | 2016-03-21 | 公开(公告)号 | CN105828324A | 公开(公告)日 | 2016-08-03 |
申请人 | 珠海市魅族科技有限公司; | 发明人 | 陆羽凡; | ||||
摘要 | 本 发明 涉及一种获取虚拟用户身份的方法及装置,涉及通信技术领域。其中,获取方法包括生成步骤、 请求 步骤、获取步骤及鉴权步骤。其中,生成步骤包括在TEE中生成公钥与存储在ESE中的私钥;请求步骤包括向虚拟运营商 服务器 发送下载号卡资源的请求及上传公钥;获取步骤包括接收虚拟运营商服务器基于上传的公钥进行加密的号卡资源,在TEE中基于存储在ESE的私钥对接收到的号卡资源进行解密,并将解密后的号卡资源存储在ESE中;鉴权步骤包括在TEE中基于接收到的鉴权参数与存储在ESE中的号卡资源对终端用户的接入身份进行鉴权。有效确保号卡资源安全及获取过程的安全性。 | ||||||
权利要求 | 1.一种获取虚拟用户身份的方法,其特征在于,包括: |
||||||
说明书全文 | 一种获取虚拟用户身份的方法及装置技术领域[0001] 本发明涉及通信技术领域,特别涉及一种获取虚拟用户身份的方法及装置。 背景技术[0002] 用户身份识别模块(Subscriber Identity Module,SIM),通常称为“SIM卡”,作为整个GSM系统中唯一确认用户身份的设备,使其成为向网络表明用户合法身份的重要工具。通常为带有微处理器的芯片,用于存储用户信息、加密密钥等,以及提供入网的身份鉴权并对用户的语音信息进行加密处理。 [0003] 当一张SIM卡从一个地区漫游至另一个地区时,会产生高昂的漫游费,为了减少由此产生的漫游费,通常会选择使用漫游所在地的SIM卡,现在还可以使用Softsim,即虚拟SIM卡。 [0004] 对于虚拟SIM卡,用户无需在手机上装入漫游所在地的SIM卡,只需在手机中装入客户端应用程序Softsim APP,在到达漫游所在地后,通过通信数据通道,从虚拟运营商服务器上下载包含加密算法、加密算法密钥、IMSI的号卡资源,并对终端用户的接入身份进行鉴权,以获取虚拟用户身份,从而拥有漫游所在地的号码,有效地降低用户的漫游费用。 发明内容[0006] 本发明的主要目的为提供一种获取虚拟用户身份的方法;本发明的另一目的为提供一种获取虚拟用户身份的装置。 [0007] 为了实现上述主要目的,本发明提供的获取虚拟用户身份的方法包括生成步骤、请求步骤、获取步骤及鉴权步骤。其中,生成步骤包括在TEE中生成公钥与存储在ESE中的私钥;请求步骤包括向虚拟运营商服务器发送下载号卡资源的请求及上传生成步骤生成的公钥;获取步骤包括接收虚拟运营商服务器基于上传的公钥进行加密的号卡资源,在TEE中基于存储在ESE中的私钥对接收到的号卡资源进行解密,并将解密之后的号卡资源存储在ESE中;鉴权步骤包括在TEE中基于接收到的鉴权参数与存储在ESE中的号卡资源对终端用户的接入身份进行鉴权。 [0008] 由以上方案可见,由于在TEE中生成公钥与私钥及对号卡资源进行解密,并将私钥与解密后的号卡资源存储在ESE中,且终端设备中的鉴权过程为在TEE中进行,有效地确保整个获取虚拟用户身份过程的安全性,及有效地确保号卡资源的安全性。 [0009] 具体的方案为生成步骤包括:客户端应用接收下载号卡资源的请求,触发安全操作,从REE切换至TEE,运行在TEE下的可信操作系统执行与客户端应用对应的第一可信应用。第一可信应用执行公钥加密算法生成公钥与私钥,并将公钥传给客户端应用,及在TEE与ESE之间建立第一安全通道,并通过第一安全通道将私钥传给ESE并存储在该ESE中。 [0010] 更具体的方案为获取步骤包括:接收虚拟运营商服务器基于公钥进行加密的号卡资源,客户端应用将加密的号卡资源传给第一可信应用。第一可信应用使用私钥对加密的号卡资源进行解密,获取号卡资源,并通过第一安全通道将解密后的号卡资源传给ESE及存储在该ESE中。完成对解密后号卡资源的存储后,关闭第一安全通道。 [0011] 优选的方案为鉴权步骤包括:客户端应用接收激活虚拟用户身份的请求,触发安全操作,从REE切换到TEE,运行在TEE下的可信操作系统执行与该客户端应用相对应的第二可信应用。第二可信应用通过基带接收核心网发送的鉴权参数。在TEE与ESE之间建立第二安全通道。第二可信应用通过第二安全通道从ESE中获取鉴权算法与IMSI,基于鉴权参数执行鉴权算法获得SRES,并将SRES与IMSI通过基带返回给核心网。完成鉴权算法与IMSI的传输后,关闭第二安全通道。当然,也可以不关闭第二安全通道。 [0012] 为了实现上述另一目的,本发明提供的获取虚拟用户身份的装置包括生成单元、请求单元、获取单元及鉴权单元。其中,生成单元用于在TEE中生成公钥与存储在ESE中的私钥;请求单元用于向虚拟运营商服务器发送下载号卡资源的请求及上传生成单元生成的公钥;获取单元用于接收虚拟运营商服务器基于公钥进行加密的号卡资源,在TEE中基于存储在ESE中的私钥对接收到的号卡资源进行解密,并将解密后的号卡资源存储在该ESE中;鉴权单元用于在TEE中基于接收到的鉴权参数与存储在ESE中的号卡资源对终端用户的接入身份进行鉴权。 [0013] 为了实现上述主要目的,本发明提供的获取虚拟用户身份的方法包括生成步骤、请求步骤、获取步骤及鉴权步骤。其中,生成步骤包括在ESE中生成公钥与存储在该ESE中的私钥;请求步骤包括向虚拟运营商服务器发送下载号卡资源的请求及上传生成步骤生成的公钥;获取步骤包括接收虚拟运营商服务器基于上传的公钥进行加密的号卡资源,在ESE中基于存储在该ESE中的私钥对接收到的号卡资源进行解密,并将解密后的号卡资源存储在该ESE中;鉴权步骤包括在ESE中基于接收到的鉴权参数与存储在ESE中的号卡资源对终端用户的接入身份进行鉴权。 [0014] 由以上方案可见,由于在ESE中生成公钥与私钥及对号卡资源进行解密,并将私钥与解密后的号卡资源存储在该ESE中,且终端设备中的鉴权过程为在该ESE中进行,有效地确保整个获取虚拟用户身份过程的安全性,有效地确保号卡资源的安全性。 [0015] 具体的方案为生成步骤包括:客户端应用接收下载号卡资源的请求,并向ESE发送安全操作请求。在ESE中,执行公钥加密算法生成公钥与私钥,并将私钥存储在ESE中,及在REE与ESE之间建立第一安全通道,并通过第一安全通道将公钥传给客户端应用。 [0016] 更具体的方案为获取步骤包括:接收虚拟运营商服务器基于公钥进行加密的号卡资源,客户端应用将号卡资源通过第一安全通道传给ESE。完成加密后号卡资源的传输后,关闭第一安全通道。在ESE中,使用私钥对经加密的号卡资源进行解密,获取解密后的号卡资源,并将解密后的号卡资源存储在ESE中。 [0017] 优选的方案为鉴权步骤包括:客户端应用接收激活虚拟用户身份的请求后,向ESE发送安全操作请求。ESE接收安全操作请求及通过基带接收核心网发送的鉴权参数,在ESE中,基于鉴权参数执行鉴权算法获得SRES,并将SRES与从解密后号卡资源中提取的IMSI通过基带返回给核心网。 [0018] 为了实现上述另一目的,本发明提供的获取虚拟用户身份的装置包括生成单元、请求单元、获取单元及鉴权单元。其中,生成单元用于在ESE中生成公钥与存储在该ESE中的私钥;请求单元用于向虚拟运营商服务器发送下载号卡资源的请求及上传生成单元生成的公钥;获取单元用于接收虚拟运营商服务器基于公钥进行加密的号卡资源,在ESE中基于存储在ESE中的私钥对接收到的号卡资源进行解密,并将解密后的号卡资源存储在该ESE中;鉴权单元用于在ESE中基于接收到的鉴权参数与存储在ESE中的号卡资源对终端用户的接入身份进行鉴权。 附图说明 [0020] 以下结合具体实施例及其附图对本发明作进一步的说明。 具体实施方式[0021] 获取虚拟用户身份的方法第一实施例本实施例中的移动终端设备可支持两种运行环境,分别为普通执行环境(Rich Execution Environment,REE)与可信执行环境(Trusted Execution Environment,TEE),本实施例基于ARM的Trustedzone技术提供可信执行环境,且安装有运行在普通执行环境中的客户端应用程序Softsim APP及在设备中设有嵌入式安全模块(embedded Secure Element,ESE)。 [0022] 参见图1,获取虚拟用户身份的方法由生成步骤S1、请求步骤S2、获取步骤S3及鉴权步骤S4构成。 [0023] 生成步骤S1,在可信执行环境中生成公钥与私钥,并将私钥存储在嵌入式安全模块中。 [0024] 当用户达到漫游所在地后,用户操作Softsim APP主动触发安全操作流程,从REE切换至TEE,运行在TEE下的可信操作系统(Trusted OS)执行与Softsim APP对应的第一可信应用(Trusted Application,TA),第一可信应用执行RSA公钥加密算法生成密钥对--公钥(RSA PublicKey)与私钥(RSA PrivateKey) ,私钥存储在嵌入式安全模块中,并将公钥传至Softsim APP。 [0025] 将私钥存储在嵌入式安全模块中为,在REE与ESE之间建立第一安全通道,通过该第一安全通道将私钥传至ESE并存储在该ESE中。 [0026] 请求步骤S2,向虚拟运营商服务器发送下载号卡资源的请求及上传由生成步骤S11中生成的公钥。 [0027] Softsim APP通过通信数据通道向虚拟运营商(Virtual Network Operator,VNO)的服务器请求获取号卡资源,并将公钥发送给虚拟运营商服务器。 [0028] 在本实施例中,号卡资源中包括了虚拟用户身份识别卡的信息。 [0029] 虚拟运营商服务器在接收到请求及公钥后,对包括国际移动客户识别码ISMI、鉴权密钥Ki、运营商密钥Opc、鉴权算法的号卡资源全部使用公钥进行RSA加密生成密文,并将加密之后的号卡资源通过通信数据通道发送至Softsim APP。 [0030] 获取步骤S3,接收虚拟运营商服务器基于公钥进行加密的号卡资源,在TEE中,基于存储在ESE中的私钥对接收到的号卡资源进行解密,并将解密之后的号卡资源存储在该ESE中。 [0031] Softsim APP在接收到经加密的号卡资源后,将经加密的号卡资源传至第一可信应用,第一可信应用通过第一安全通道从ESE中获取私钥,并使用私钥对加密的号卡资源进行RSA解密,将密文解密为明文,从中得到号卡资源,并将号卡资源通过第一安全通道传至ESE中并存储在该ESE中,在完全存储后,关闭第一安全通道。在本发明一个实施例中,也可以不关闭第一安全通道。 [0032] 鉴权步骤S4,当接收到激活虚拟用户身份的指令后,在TEE中,基于接收到的鉴权参数与存储在ESE中的号卡资源对终端用户的接入身份进行鉴权。 [0033] 当要激活虚拟SIM卡时,用户操控Softsim APP主动触发安全流程,从REE切换到TEE,运行在TEE下的可信操作系统(Trusted OS)执行与Softsim APP对应的第二可信应用。 [0034] 当收到核心网的鉴权请求及其通过基带传递给第二可信应用的鉴权参数后,在TEE与ESE之间建立第二安全通道,第二可信应用通过第二安全通道从ESE中获取号卡资源,从获取的号卡资源中提取IMSI与鉴权算法, 结合收到的鉴权参数,如鉴权标记AUTN与随机参数RAND,采用USIM/SIM鉴权算法A3A5,计算出响应结果SRES及其他K值,并将IMSI、SRES及其他K值通过基带返回给核心网。 [0035] 核心网收到IMSI、SRES及其他K值后,进行网络侧鉴权。 [0036] 获取虚拟用户身份的方法第二实施例本实施例中的移动终端设备中设有嵌入式安全模块(embedded Secure Element,ESE),且具有运行在普通执行环境(Rich Execution Environment,REE)中的客户端应用程序Softsim APP。 [0037] 参见图1,获取虚拟用户身份的方法由生成步骤S1、请求步骤S2、获取步骤S3及鉴权步骤S4构成。 [0038] 生成步骤S1,在ESE中生成公钥与私钥,并将私钥存储在该ESE中。 [0039] 当用户达到漫游所在地后,用户操作Softsim APP向ESE发送安全操作请求,ESE在接收到安全操作的请求后,执行RSA公钥加密算法生成密钥对--公钥(RSA PublicKey)与私钥(RSA PrivateKey),并在REE与ESE之间建立第一安全通道,其中,私钥存储在ESE中,将公钥通过第一安全通道传至Softsim APP。 [0040] 请求步骤S2,向虚拟运营商服务器发送下载号卡资源的请求及上传由生成步骤S1中生成的公钥。 [0041] Softsim APP通过通信数据通道向虚拟运营商(Virtual Network Operator,VNO)服务器请求获取号卡资源,并将公钥发送给虚拟运营商服务器。 [0042] 虚拟运营商服务器在接收到请求及公钥后,对包括国际移动客户识别码ISMI、鉴权密钥Ki、运营商密钥Opc、鉴权算法的号卡资源全部使用公钥进行RSA加密生成密文,并将加密之后的号卡资源通过通信数据通道发送至Softsim APP。 [0043] 获取步骤S3,接收虚拟运营商服务器基于公钥进行加密的号卡资源,在ESE中,基于存储在该ESE中的私钥对接收到的号卡资源进行解密,并将解密之后的号卡资源存储在该ESE中。 [0044] Softsim APP在接收到经加密的号卡资源后,将其通过第一安全通道传至ESE,在ESE中,使用私钥对加密的号卡资源进行RSA解密,将密文解密为明文,从中得到号卡资源及将号卡资源存储在该ESE中,并关闭第一安全通道。 [0045] 鉴权步骤S4,当接收到激活虚拟用户身份的指令后,在ESE中,基于接收到的鉴权参数与存储在该ESE中的号卡资源对终端用户的接入身份进行鉴权。 [0046] 当要激活虚拟用户身份时,用户操作Softsim APP向ESE发送安全操作请求。 [0047] 当收到核心网的鉴权请求及核心网通过基带传递给ESE的鉴权参数。在ESE中,从存储在ESE中的号卡资源中提取IMSI, 结合收到鉴权参数,如鉴权标记AUTN与随机参数RAND,采用USIM/SIM鉴权算法A3A5,计算出响应结果SRES及其他K值,并将IMSI、SRES及其他K值通过基带返回给核心网。 [0048] 核心网收到IMSI、SRES及其他K值后,进行网络侧鉴权。 [0049] 获取虚拟用户身份的装置第一实施例参见图2,获取虚拟用户身份的装置1包括生成单元10、请求单元11、获取单元12及鉴权单元13。 [0050] 生成单元10用于在TEE中生成公钥与存储在ESE中的私钥,包括接收模块、生成模块与操作模块。 [0051] 生成模块用于在可信执行环境中执行RSA公钥加密算法生成密钥对--公钥与私钥;操作模块用于在TEE与ESE之间建立第一安全通道,将公钥传给Softsim APP,及通过第一安全通道将私钥传给ESE并在该ESE中存储。 [0052] 请求单元11用于向虚拟运营商服务器发送下载号卡资源的请求及上传公钥,包括请求模块与上传模块。 [0053] 请求模块用于通过通信数据通道向虚拟运营商服务器请求下载号卡资源,号卡资源包括国际移动客户识别码ISMI、鉴权密钥Ki、运营商密钥Opc、鉴权算法;上传模块用于将生成单元10的操作模块传送的公钥传给虚拟运营商服务器,以供虚拟运营商服务器基于该公钥对请求模块所请求的号卡资源进行RSA加密。 [0054] 获取单元12用于接收虚拟运营商服务器基于公钥进行加密的号卡资源,在TEE中,基于私钥对接收到的号卡资源进行解密,并将解密之后的号卡资源存储在ESE中;其包括接收模块、解密模块及操作模块。 [0055] 接收模块用于通过通信数据通道接收虚拟运营商服务器发送的经RSA加密之后的号卡资源;解密模块用于在TEE中基于存储在ESE中的私钥,对接收到的号卡资源进行RSA解密;操作模块用于将解密后的号卡资源通过第一安全通道传给ESE并在该ESE中存储。 [0056] 鉴权单元13用于当接收到激活虚拟用户身份的指令后,在TEE中基于接收到的鉴权参数与存储在ESE中的号卡资源对终端用户的接入身份进行鉴权;其包括接收模块、处理模块及传输模块。 [0057] 接收模块用于接收激活虚拟SIM卡的指令及核心网通过基带传输的鉴权参数;处理模块用于在TEE中,基于接收到的鉴权参数与存储在ESE中的号卡资源,采用USIM/SIM鉴权算法A3A5,计算出响应结果SRES及其他K值;传输模块用于将IMSI、SRES及其他K值通过基带返回给核心网。 [0058] 获取虚拟用户身份的装置第二实施例参见图2,获取虚拟用户身份的装置1包括生成单元10、请求单元11、获取单元12及鉴权单元13。 [0059] 生成单元10用于在ESE中生成公钥与存储在该ESE中的私钥,包括生成模块与操作模块。 [0060] 生成模块用于在接收到安全操作的请求后,在ESE中执行RSA公钥加密算法生成密钥对--公钥与私钥;操作模块用于在REE与ESE之间建立第一安全通道,并将公钥传给Softsim APP及通过第一安全通道将私钥传给ESE并在该ESE中存储。 [0061] 请求单元11用于向虚拟运营商服务器发送下载号卡资源的请求及上传公钥,包括请求模块与上传模块。 [0062] 请求模块用于通过通信数据通道向虚拟运营商服务器请求下载号卡资源,号卡资源包括国际移动客户识别码ISMI、鉴权密钥Ki、运营商密钥Opc、鉴权算法;上传模块用于将生成单元10的操作模块传送的公钥传给虚拟运营商服务器,以供虚拟运营服务器基于该公钥对请求模块所请求的号卡资源进行RSA加密。 [0063] 获取单元12用于接收虚拟运营商服务器基于公钥进行加密的号卡资源,在ESE中,基于私钥对接收到的号卡资源进行解密,并将解密之后的号卡资源存储在该ESE中;其包括接收模块、解密模块及操作模块。 [0064] 接收模块用于通过通信数据通道接收虚拟运营商服务器发送的经RSA加密之后的号卡资源;解密模块用于在ESE中基于存储在该ESE中的私钥,对接收到的号卡资源进行RSA解密;操作模块用于将解密后的号卡资源存储在该ESE中。 [0065] 鉴权单元13用于当接收到激活虚拟用户身份的指令后,在ESE中基于接收到的鉴权参数与存储在该ESE中的号卡资源对终端用户的接入身份进行鉴权;其包括接收模块、处理模块及传输模块。 [0066] 接收模块用于接收激活虚拟用户身份的指令及核心网通过基带传输的鉴权参数;处理模块用于在ESE中,基于接收到的鉴权参数与存储在ESE中的号卡资源,采用USIM/SIM鉴权算法A3A5,计算出响应结果SRES及其他K值;传输模块用于将IMSI、SRES及其他K值通过基带返回给核心网。 [0067] 本发明的主要构思是通过在TEE或ESE中实现获取虚拟用户身份的过程及将号卡资源存储在ESE中,有效地确保号卡资源的安全及获取虚拟用户身份过程的安全性,根据本构思,生成公钥与私钥的算法还有多种显而易见的变化,进行鉴权的方法还有多种显而易见的变化。 |