基于gba的电信能力开放平台密钥协商系统和方法

文档序号:7985502阅读:533来源:国知局
专利名称:基于gba的电信能力开放平台密钥协商系统和方法
技术领域
本发明涉及一种基于GBA的电信能力开放平台密钥协商系统和方法,属于移动通信技术领域。
背景技术
使用开放API技术和手段进行业务创新和应用开发是实现开放式业务结构的关键技术,也是下一代电信网络区别于传统电信网络的主要特点之一。随着移动互联网时代的到来和受到Apple公司应用商城成功模式的影响,电信运营商开始研究和逐步推出基于电信能力的开放性平台,如中国电信的天翼工厂、法国电信的Orange Partner平台等。电信能力开放平台(以下简称开放平台)通过降低开发和业务运营门槛,引入第三方开发者来丰富应用数量和种类,在提高用户粘性的同时,也增加了运营商的经济收入, 但是开放平台的一系列安全问题成为了国内外平台发展的隐患。由于开放平台不仅继承了传统互联网的安全问题,并且在面向第三方中小开发者和暴露内部自有业务数据(如API 调用)等方面存在一定的安全隐患,因此电信运营商和用户都需要一种可靠的鉴权认证机制来保证应用使用的安全性和正确的计费。第三代移动通信标准组织3GPP(第三代合作伙伴计划)提出了通用鉴权框架 (GAA),旨在提供一种用于对用户身份进行认证的通用鉴权机制,实现对业务用户身份的安全检查和验证能力。通用鉴权机制避免了各众多业务的认证机制的差异性,不用再为每一种业务或应用单独提供鉴权功能。GAA系统提供两种认证机制,GBA (通用Bootstrapping 架构)和SSC(支持用户证书),其中GBA描述了如何在移动上下文环境中使用基于认证和密钥协商(AKA)的机制,为用户实体和网络应用实体之间的通信提供共享密钥,是目前运营商进行3G业务平台建设时通常借鉴和采用的鉴权机制。GBA框架包括用户实体(UE)、Bootstrapping服务功能(BSF)、用户归属服务器 (HSS)、网络应用服务功能(NAF)。基于GBA的密钥协商过程主要关键点是=(I)BSF通过与 HSS之间的接口获得用户安全信息和认证信息;(2)UE和BSF之间运行AKA认证机制,根据运行结果(加密性密钥CK和完整性密钥IK),在BSF和UE之间产生会话根密钥Ks和共享密钥 NAF sharing keys (Ks_NAF, Ks_int_NAF 或 Ks_ext_NAF) ; (3) NAF (即应用服务器或业务平台)从BSF获得根密钥和签约用户档案(Profile),并通过Ks计算出共享密钥;(4)共享密钥为业务平台上应用提供安全保护,在UE和NAF之间的应用会话过程中实现加密通信,相互认证UE和NAF身份。由于UE和BSF之间的通信、NAF和BSF之间的通信、BSF和 HSS之间的通信独立于具体应用,所以GBA是通用性框架。在开放平台环境中,主要由开发者/开发商提供的第三方应用为用户服务。对于运营商而言,一方面需要向开发者提供灵活方便的开发环境和丰富多样的API种类,同时, 也要考虑恶意的第三方应用、使用者和用户对开放平台的攻击和安全威胁。因此,开放平台在开放网络资源的同时,需要对第三方应用进行多层次鉴权和认证,以防止恶意用户、非法应用攻击网络服务和冒用开放平台为用户提供有损运营商利益的服务。同时,如果由开发者自己实现GBA等安全过程,则会对开发者增加相当的开发难度,相应安全技术门槛会影响开放平台的使用体验。因此,开放平台在开放网络资源的同时,如何对第三方应用进行有效鉴权和认证?仍是一个急需要解决的技术难题。

发明内容
有鉴于此,本发明的目的是提供一种基于GBA的电信能力开放平台密钥协商系统和方法,从而使得开放平台在开放网络资源的同时,还能对第三方应用进行有效鉴权和认证。为了达到上述目的,本发明提供了一种基于GBA的电信能力开放平台密钥协商系统,包括有电信能力开放平台、Bootstrapping服务功能BSF、用户归属服务器HSS和用户实体UE,其中电信能力开放平台简称为开放平台,所述UE进一步包括有第三方应用装置,用于执行第三方应用程序,通过注册请求,向安全装置申请本地 token ;携带本地token向安全装置发出开放平台API访问请求,或携带安全装置发放的共享密钥、加密后的本地token、平台签名和应用签名向开放平台发出开放平台API访问请求;安全装置,用于接收第三方应用装置的注册请求,和BSF执行互鉴权GBA过程,并根据本地所保存的平台密钥和应用密钥来生成根密钥,然后将生成的本地token及有效期返回给第三方应用装置;接收第三方应用装置的开放平台API访问请求,并根据根密钥、平台标识和应用标识计算共享密钥,然后将携带有所述共享密钥、平台签名和应用签名的开放平台API访问请求转发给开放平台;接收第三方应用装置的置换共享密钥请求,并根据根密钥、平台标识、应用标识和本地token计算共享密钥,然后将计算出的共享密钥、加密后的本地token、平台签名返回给第三方应用装置。为了达到上述目的,本发明还提供了一种基于GBA的电信能力开放平台密钥协商方法,安全装置和第三方应用装置被安装在用户实体UE中,所述方法包括有步骤1、第三方应用装置向安全装置发出注册请求消息,所述注册请求消息中携带有应用标识App_ID ;步骤2、安全装置向Bootstrapping服务功能BSF发起初始化请求消息,所述初始化请求消息中携带有用户标识IMPI、平台标识NAF_ID和应用标识App_ID ;步骤3、BSF根据所述平台标识NAF_ID和应用标识App_ID查找本地所保存的平台密钥K_op和应用密钥K_app,通知安全装置更新平台密钥K_op和应用密钥K_app,并和安全装置执行互鉴权GBA过程,最后根据所述平台密钥K_op和应用密钥K_app来生成根密钥 Ks ;步骤4、安全装置根据更新后的平台密钥K_op和应用密钥K_app,生成和BSF —致的根密钥Ks,并通过注册应答消息将生成的本地token及有效期返回给第三方应用装置。与现有技术相比,本发明的有益效果是本发明基于GBA的通用性框架,使得开放平台在开放网络资源的同时,还能对第三方应用进行有效鉴权和认证,通过对第三方应用屏蔽GBA安全流程,可以降低开发者技术门槛,使开发者专注于业务创新和开发,保护用户隐私数据和网络服务信息,确保用户私有数据不被第三方应用随意获取,保护开放平台的安全性;在根密钥Ks的计算中引入了平台密钥K_op和应用密钥K_app,从而保证了根密钥的安全性;第三方装置访问开放平台的过程中,第三方应用装置不能直接访问开放平台、或者必须用临时授权的本地token来换取共享密钥后访问网络资源,从而能保证开放平台访问的安全性,利用开放平台和第三方应用信息来生成GBA共享密钥,即使CK、IK等信息被截获,非法用户也无法计算出GBA共享密钥,保证了 GBA认证的安全性;开放平台对平台密钥、应用密钥的更新机制,并能根据共享密钥、平台签名、应用签名同时完成用户身份、安全装置和第三方应用的身份识别和鉴权,确保UE、安全装置、第三方应用装置的捆绑认证,又保留一定的鉴权独立性,提高开放平台的服务效率,确保了开放平台访问的安全性。


图1是本发明一种基于GBA的电信能力开放平台密钥协商系统的组成结构示意图。图2是安全装置的组成结构示意图。图3是第三方应用装置向安全装置进行注册,并申请一个本地token的实施例的信令交互流程图。图4是当第三方应用装置携带本地token,通过安全装置向开放平台发出开放平台API访问请求时,第三方应用装置访问开放平台服务API的操作流程图。图5是当第三方应用装置携带本地token,通过安全装置向开放平台发出开放平台API访问请求时,第三方应用装置访问开放平台服务API的详细信令流程图。图6是当第三方应用装置携带本地token,向安全装置请求置换共享密钥后再向开放平台发出开放平台API访问请求时,第三方应用装置访问开放平台服务API的操作流程图。图7是当第三方应用装置携带本地token,向安全装置请求置换共享密钥后再向开放平台发出开放平台API访问请求时,第三方应用装置访问开放平台服务API的详细信令流程图。
具体实施例方式为使本发明的目的、技术方案和优点更加清楚,下面结合附图对本发明作进一步的详细描述。如图1所示,本发明一种基于GBA的电信能力开放平台密钥协商系统,包括有开放平台、BSF、HSS和UE,其中,所述UE进一步包括有用户识别模块、第三方应用装置和安全装置用户识别模块,如SIM/USIM卡,和安全装置的机卡接口部件相连,用于存储用户的私有信息,当采用GBA_U类型时,协助安全装置计算根密钥和共享密钥;第三方应用装置,安装在UE的移动设备ME中,和安全装置的第三方应用服务部件相连,用于执行第三方应用程序,通过注册请求,向安全装置申请本地token ;携带本地 token向安全装置发出开放平台API访问请求,或携带安全装置发放的共享密钥、加密后的本地token、平台签名和应用签名向开放平台发出开放平台API访问请求;安全装置,安装在UE的移动设备ME中,和用户识别模块、第三方应用装置相连,用于接收第三方应用装置的注册请求,和BSF执行互鉴权GBA过程,并根据本地所保存的平台密钥和应用密钥来生成根密钥,然后将生成的本地token及有效期返回给第三方应用装置;接收第三方应用装置的开放平台API访问请求,并根据根密钥、平台标识和应用标识计算共享密钥,然后将携带有所述共享密钥、平台签名和应用签名的开放平台API访问请求转发给开放平台;接收第三方应用装置的置换共享密钥请求,并根据根密钥、平台标识、应用标识和本地token计算共享密钥,然后将计算出的共享密钥、加密后的本地token、平台签名返回给第三方应用装置;所述开放平台,和BSF、UE通过网络相连,用于将开放平台和第三方应用所对应的平台标识、平台密钥、应用标识、应用密钥实时更新到BSF中;接收安全装置或者第三方应用装置发送来的开放平台API访问请求,并通过密钥授权请求从BSF处获取共享密钥、平台签名和应用签名,然后将安全装置或者第三方应用装置和BSF分别发送来的共享密钥、平台签名和应用签名信息进行对比,从而实现对用户身份、安全装置、第三方应用装置的认证鉴权,并在鉴权通过后,为第三方应用装置提供所需服务;所述BSFJP UE、开放平台、HSS通过网络相连,用于和安全装置执行互鉴权GBA过程,并根据平台密钥和应用密钥生成对应的根密钥;根据开放平台发送来的密钥授权请求, 采用和安全装置相同的方法来计算共享密钥、平台签名和应用签名,并将所述共享密钥、平台签名和应用签名返回给开放平台。如图2所示,所述安全装置进一步包括有机卡接口单元、GBA执行单元、存储单元一、第三方应用服务单元、存储单元二和平台服务单元机卡接口单元,用于读取用户识别模块上的用户信息(如通过AT命令读取IMSI/ IMPI等信息),并当采用GBA_U类型时,根据GBA执行单元或者第三方应用服务单元的命令,从用户识别模块读取其计算的根密钥或共享密钥;GBA执行单元,用于接收第三方应用服务单元转发来的第三方应用装置的注册请求,通过和BSF的交互,对存储单元二中保存的平台密钥和应用密钥实时更新,和BSF执行互鉴权GBA过程,并将根据平台密钥和应用密钥所计算生成的根密钥保存在存储单元一;存储单元一,用于提供对GBA鉴权信息的加密存储与保护,所述GBA鉴权信息包括有根密钥及其有效期、会话事务标识等;第三方应用服务单元,用于和第三方应用装置进行交互;根据第三方应用装置的注册请求,通知GBA执行单元向BSF发出初始化请求,并根据GBA执行单元和BSF的互鉴权GBA结果,为第三方应用装置生成和维护本地token ;对第三方应用装置发送来的本地 token的有效性进行验证;将第三方应用装置发送来的开放平台API访问请求转发给平台服务单元处理;接收第三方应用装置发送来的置换共享密钥请求,并根据根密钥、平台标识、应用标识、本地token来计算共享密钥,最后将所述共享密钥、加密后的本地token、平台签名返回给第三方应用装置;存储单元二,用于提供对开放平台、第三方应用信息的加密存储与保护,所述开放平台、第三方应用信息包括有平台标识、平台密钥、平台签名、应用标识、应用密钥、应用签名、本地token、共享密钥等;平台服务单元,用于接收第三方应用服务单元转发的开放平台API访问请求,根据从存储单元一和存储单元二中读取的根密钥、平台标识、平台密钥、应用标识、应用密钥来计算共享密钥、平台签名和应用签名,并将携带有所述共享密钥、平台签名和应用签名的开放平台API访问请求发送给开放平台。本发明一种基于GBA的电信能力开放平台密钥协商方法主要包括三个过程 (一)、开放平台注册过程;(二)、第三方应用注册过程;(三)、第三方应用对开放平台的访问过程,下面将分别这三个过程的具体操作过程。(一 )、开放平台注册过程开放平台通过注册消息,将开放平台和第三方应用所分别对应的平台标识NAF_ ID、平台密·Κ_ορ、应用标识App_ID和应用密钥K_app实时更新到BSF中。同时,平台标识 NAF_ID和平台密钥K_op也会被预置在安全装置中并加密保存。其中(1)、当开放平台首次注册或平台密钥Κ_ορ被更新(如开放平台设定自动定时更新1(_0 、或系统管理员对1(_0 进行重置操作)时,开放平台将通过平台注册消息,将所述平台标识NAF_ID和平台密钥K_op信息同步更新到BSF中,具体操作过程包括有步骤111、开放平台向BSF发送平台注册消息,所述平台注册消息中携带有平台标识NAF_ID和平台密钥K_op ;步骤112、BSF检查本地是否已存在平台标识NAF_ID ?如果有,则更新所述NAF_ ID所对应的平台密钥K_op,并返回平台注册成功应答消息;如果否,则说明所述开放平台是首次注册,将平台标识NAF_ID和平台密钥K_op保存在本地,并返回平台注册成功应答消肩、οO)、开发者在开放平台注册和开发第三方应用后,会获取所述第三方应用的唯一标识App_ID和应用密钥K_app,这样,当开发者首次注册第三方应用、或应用密钥K_app被更新(如开发者设定开放平台自动定时更新K_app、或对第三方应用的K_app进行重置操作)时,开放平台将通过应用注册消息,将所述平台标识NAF_ID,应用标识App_ID和应用密钥K_app信息同步更新到BSF中,具体操作过程包括有步骤121、开放平台携带平台标识NAF_ID,应用标识App_ID和应用密钥K_app向 BSF发送应用注册消息;步骤122、BSF检查本地是否已保存有所述平台标识NAF_ID及对应的应用标识 App_ID ?如果有,则更新所述平台标识NAF_ID、应用标识App_ID对应的应用密钥K_app,并返回应用注册成功应答消息;如果否,则说明所述第三方应用是首次注册,将所述平台标识 NAF_ID、应用标识App_ID和对应的应用密钥K_app保存在本地,并返回应用注册成功应答消息。( 二 )、第三方应用装置注册过程当安全装置和第三方应用装置被安装在UE中后,第三方应用装置将向安全装置进行注册,并申请一个本地token,如图3所示,具体操作过程包括有步骤21、第三方应用装置检查本地是否具备有效的本地token ?如果有,则本流程结束;如果否,则携带应用标识App_ID和应用签名K_app_Sign向安全装置发出注册请求消息,所述应用签名K_app_Sign = KDF(K_app, App_ID),其中KDF表示密钥导出函数;步骤22、安全装置通过机卡接口部件,从用户识别模块获取国际移动用户识别码 IMSI,并将国际移动用户识别码IMSI转换为用户标识IMPI后,向BSF发起初始化请求消息,所述初始化请求消息中携带有用户标识IMPI、平台标识NAF_ID、应用标识App_ID等参
11数和采用的GBA类型;可选的,所述步骤22中,安全装置还可以校验应用签名K_app_Sign是否正确,来判定是否后续流程;步骤23、BSF到HSS获取所述用户信息和认证向量;步骤24、BSF根据所述平台标识NAF_ID和应用标识App_ID查找本地所保存的平台密钥K_op和应用密钥K_app,检查所述平台密钥K_op和应用密钥K_app是否有更新?如果有,则对更新后的平台密钥K_op或应用密钥K_app进行加密,并通过401消息向安全装置返回随机数RAND、AUTN和加密后的平台密钥K_op或应用密钥K_app ;如果否,则通过401 消息,向安全装置返回随机数RAND和AUTN ;步骤25、安全装置根据所接收到的401消息,对平台密钥K_op或应用密钥K_app 进行更新,并和BSF执行互鉴权(GBA)过程,以完成UE与BSF之间的双向身份认证;步骤^、BSF以加密性密钥CK、完整性密钥IK、平台密钥K_op、应用密钥K_app为参数生成根密钥Ks = CKI IIKI I K_op I I K_app,并分配会话事务标识B-TID ;步骤27、BSF向安全装置返回鉴权成功消息,所述鉴权成功消息中包含会话事务标识B-TID和根密钥Ks的有效期等信息;步骤观、安全装置根据更新后的平台密钥K_op和应用密钥K_app,采取和BSF相同的方式来生成和BSF —致的根密钥Ks ;所述步骤观中,可以根据所采用的GBA类型,包括有以下两种根密钥Ks的生成方式i)、当采用GBA_U类型时,安全装置将会话事务标识B-TID、根密钥Ks的有效期等信息写入用户识别模块(如USIM卡)中,用户识别模块保存所述会话事务标识B-TID和根密钥Ks的有效期,并计算根密钥Ks = CKI IIK I I K_op I I K_app ;ii)、当采用GBA_ME类型时,安全装置保存会话事务标识B-TID、根密钥Ks的有效期,并计算根密钥 Ks = CKI IIKI I K_op I I K_app ;步骤四、安全装置生成本地token及有效期,所述本地token可以是随机字符串, 并通过注册应答消息将本地token及有效期返回给第三方应用装置。(三)、第三方应用对开放平台的访问过程第三方应用对开放平台服务API的访问方式可分为两种方式一,通过安全装置进行访问,安全装置在第三方应用访问消息的基础上进一步进行封装,增加安全信息参数后转发给开放平台;方式二,第三方应用通过本地token向安全装置请求置换共享密钥,并根据所获得的共享密钥发起对开放平台的访问。因此,第三方应用装置访问开放平台服务 API的操作流程包括有步骤31、第三方应用装置携带本地token,通过安全装置向开放平台发出开放平台API访问请求,或向安全装置请求置换共享密钥后再向开放平台发出开放平台API访问请求,所述开放平台API访问请求中携带有由安全装置根据根密钥Ks、平台标识NAF_ID、应用标识App_ID/或以及本地token所计算出的共享密钥,平台签名K_op_Sign和应用签名 K—app—sign ;步骤32、开放平台将安全装置/或第三方应用装置发送来的共享密钥、平台签名 K_op_sign和应用签名K_app_Sign,分别和从BSF处获取的共享密钥、平台签名K_op_Sign和应用签名K_app_Sign进行比较,从而实现对用户身份、安全装置、第三方应用装置的认证鉴权,并在鉴权通过后为第三方应用装置对网络资源或数据的访问提供服务。如图4所示,当第三方应用装置携带本地token,通过安全装置向开放平台发出开放平台API访问请求时,第三方应用装置访问开放平台服务API的操作方法进一步包括有步骤311、第三方应用装置携带本地token及应用访问信息向安全装置发起开放平台API访问请求;步骤312、安全装置根据根密钥Ks、平台标识NAF_ID、应用标识App_ID来计算第一共享密钥 K_NAF_app :K_NAF_app = KDF(Ks,“gba_me,,| | RAND | | IMPI | |NAF_ID| |App_ID),其中RAND为随机数,IMPI是用户IP多媒体私有标识,"gba-me"为表示GBA类型的字符串, KDF表示密钥导出函数;步骤313、安全装置向开放平台转发第三方应用装置的开放平台API访问请求,并在所述访问请求消息中携带第一共享密钥K_NAF_app、平台签名K_op_Sign = KDF(K_op, NAF_ID)、和应用签名 K_app_sign = KDF(K_app, App_ID);步骤314、开放平台向BSF发送密钥授权请求,BSF根据根密钥Ks、平台标识NAF_ ID、应用标识App_ID,计算出与第一共享密钥相同的第二共享密钥、平台签名K_op_Sign和应用签名K_app_sign ;步骤315、开放平台比较安全装置和BSF分别发来的第一共享密钥和第二共享密钥、平台签名K_op_Sign和应用签名K_app_Sign信息,对用户身份、安全装置、第三方应用装置进行认证鉴权,并在鉴权通过后为第三方应用装置对网络资源或数据的访问提供服务,其中,第一共享密钥和第二共享密钥用于完成对网络侧用户身份的认证鉴权;平台签名 K_op_Sign用于完成对安全装置身份的认证鉴权;应用签名K_app_Sign用于完成对第三方应用装置的认证鉴权。如图5所示,当第三方应用装置携带本地token,通过安全装置向开放平台发出开放平台API访问请求时,第三方应用装置访问开放平台服务API的详细信令交互流程如下步骤al、第三方应用装置检查本地是否具备有效的本地token ?如果有,则携带本地token及应用访问信息向安全装置发起开放平台API访问请求;如果否,则向安全装置进行注册,并申请本地token;步骤a2、安全装置验证开放平台API访问请求中携带的本地token是否有效?如果有,则根据根密钥Ks、平台标识NAF_ID、应用标识App_ID等参数来计算第一共享密钥,继续下一步;如果否,则向第三方应用装置返回错误,通知第三方应用装置重新注册,并申请本地token ;所述步骤a2还可以进一步细分为(i)、当采用GBA_U时,安全装置通过机卡接口部件,从用户识别模块获取所计算的第一共享密钥 K_NAF_app = KDF(Ks, “gba-me” | RAND | IMPI | NAF_ID App_ID),其中 RAND为随机数,IMPI是用户IP多媒体私有标识,"gba-me"为表示GBA类型的字符串,KDF 表示密钥导出函数;(ii)、当采用GBA ME时,安全装置计算第一共享密钥K_NAF_app = KDF(Ks,"gba-me,,| | RAND | | IMPI | | NAF_ID | | App_ID)。步骤a3、安全装置向开放平台转发第三方应用装置的开放平台API访问请求,并在所述访问请求消息中携带会话事务标识B-TID、第一共享密钥K_NAF_app、平台签名K op_Sign、应用标识App_ID和应用签名K_app_Sign等参数,其中所述平台签名K_op_Sign =KDF(K_op, NAF_ID);步骤a4、开放平台携带会话事务标识B-TID、平台标识NAF_ID、应用标识App_ID等参数向BSF发送密钥授权请求;可选的,所述步骤a4中,开放平台可以进一步设置本地缓存策略,优先查找本地是否保存有所述会话事务标识B-TID对应的上述参数。步骤a5、BSF根据所述会话事务标识B-TID、平台标识NAF_ID和应用标识App_ID, 查找到对应的根密钥Ks、平台密钥K_op和应用密钥K_app,并根据以上参数来分别计算第二共享密钥、平台签名K_op_Sign和应用签名K_app_Sign,其中第二共享密钥采用和安全装置中第一共享密钥相同的方法,以根密钥Ks、平台标识NAF_ID、应用标识App_ID为参数来计算;平台签名K_op_Sign采用和安全装置中平台签名相同的方法,以平台标识NAF_ID 和平台密钥K_op为参数来计算,平台签名K_op_Sign = KDF(K_op, NAF_ID);应用签名K_ app.sign采用和第三方应用装置中应用签名相同的方法,以应用标识App_ID和应用密钥 K_app 为参数来计算,应用签名 K_app_sign = KDF(K_app, App_ID);步骤a6、BSF将第二共享密钥及其有效期,平台签名K_op_Sign,应用签名K_app_ sign返回给开放平台;步骤a7、开放平台比较安全装置和BSF分别发来的第一共享密钥和第二共享密钥、平台签名K_op_Sign和应用签名K_app_Sign信息,对用户身份、安全装置、第三方应用装置进行认证鉴权,并在鉴权通过后为第三方应用装置对网络资源或数据的访问提供服务;步骤a8、开放平台将API调用结果返回给安全装置;步骤a9、安全装置将API调用结果转发给第三方应用装置,从而完成本次服务。如图6所示,当第三方应用装置携带本地token,向安全装置请求置换共享密钥后再向开放平台发出开放平台API访问请求时,第三方应用装置访问开放平台服务API的操作流程进一步包括有步骤321、第三方应用装置携带本地token及应用访问信息向安全装置请求置换共享密钥;步骤322、安全装置根据根密钥Ks、平台标识NAF_ID、应用标识App_ID、本地token 来计算第三共享密钥 K_NAF_token :K_NAF_token = KDF(Ks,“gba_me”| RAND | IMPI | NAF_ ID I |App_ID token),其中RAND为随机数,IMPI是用户IP多媒体私有标识,“gba-me”为表示GBA类型的字符串,KDF表示密钥导出函数;步骤323、安全装置向第三方应用装置返回第三共享密钥K_NAF_t0ken、经加密后的本地 token 和平台签名 K_op_sign = KDF (K_op, NAF_ID);步骤324、第三方应用装置向开放平台发起开放平台API访问请求,并在所述访问请求消息中携带第三共享密钥K_NAF_t0ken、加密后的本地token、平台签名K_op_Sign和应用签名 K_app_sign = KDF (K_app, App_ID);
14
步骤325、开放平台向BSF发送密钥授权请求,BSF根据根密钥Ks、解密后的本地 token、平台标识NAF_ID、应用标识App_ID,计算出与第三共享密钥相同的第四共享密钥、 平台签名K_op_sign和应用签名K_app_sign ;步骤326、开放平台比较第三方应用装置和BSF分别发来的第三共享密钥和第四共享密钥、平台签名K_op_Sign和应用签名K_app_Sign信息,对用户身份、安全装置、第三方应用装置进行认证鉴权,并在鉴权通过后为第三方应用装置对网络资源或数据的访问提供服务,其中,第三共享密钥和第四共享密钥用于完成对网络侧用户身份的认证鉴权;平台签名K_op_Sign用于完成对安全装置的认证鉴权;应用签名K_app_Sign用于完成对第三方应用装置的认证鉴权。如图7所示,当第三方应用装置携带本地token,向安全装置请求置换共享密钥后再向开放平台发出开放平台API访问请求时,第三方应用装置访问开放平台服务API的详细信令交互流程如下步骤bl、第三方应用装置检查本地是否具备有效的本地token ?如果有,则携带本地token及应用访问信息向安全装置请求置换共享密钥;如果否,则向安全装置进行注册,并申请本地token ;步骤1^2、安全装置验证置换共享密钥请求中携带的本地token是否有效?如果有,则根据根密钥Ks、平台标识NAF_ID、应用标识App_ID、本地token等参数来计算第三共享密钥,继续下一步;如果否,则向第三方应用装置返回错误,通知第三方应用装置重新注册,并申请本地token ;所述步骤1^2还可以进一步细分为(i)、当采用GBA_U时,安全装置通过机卡接口部件,从用户识别模块处获取所计算的第三共享密钥 K_NAF_token = KDF (Ks,“gba-me” | | RAND | | IMPI | | NAF_ID | | App_ ID I I token),其中RAND为随机数,IMPI是用户IP多媒体私有标识,“gba-me”为表示GBA类型的字符串,KDF表示密钥导出函数;(ii)、当采用GBA_ME时,安全装置计算第三共享密钥K_NAF_t0ken = KDF(Ks, "gba-me,,| | RAND | | IMPI | | NAF_ID | | App_ID | | token)。步骤b3、安全装置向第三方应用装置返回第三共享密钥K_NAF_token、经加密后的本地token、会话事务标识B-TID和平台签名K_op_Sign等参数,其中所述平台签名K_ op_sign = KDF (K_op, NAF_ID);步骤b4、第三方应用装置向开放平台发起开放平台API访问请求,所述访问请求消息中携带有会话事务标识B-TID、第三共享密钥K_NAF_t0ken、加密后的本地token、平台签名K_op_Sign、应用标识App_ID和应用签名K_app_Sign等参数;步骤沾、开放平台携带平台标识NAF_ID、会话事务标识B-TID、应用标识App_ID、 加密后的本地token等参数向BSF发送密钥授权请求;可选的,所述步骤1^5中,电信能力开放平台可以设置本地缓存策略,优先查找本地是否保存有所述会话事务标识B-TID对应的上述参数。步骤Id6、BSF根据所述会话事务标识B-TID、平台标识NAF_ID和应用标识App_ID, 查找到对应的根密钥Ks、平台密钥K_op和应用密钥K_app,并根据以上参数和解密后的本地token来分别计算第四共享密钥、平台签名K_op_Sign和应用签名K_app_Sign,其中第四共享密钥采用和安全装置中第三共享密钥相同的方法,以根密钥Ks、平台标识NAF_ID、 应用标识App_ID、解密后本地token为参数来计算;平台签名K_op_Sign采用和安全装置中平台签名相同的方法,以平台标识NAF_ID和平台密钥K_op为参数来计算,平台签名Κ_ op_sign = KDF(K_op, NAF_ID);应用签名K_app_Sign采用和第三方应用装置中应用签名相同的方法,以应用标识App_ID和应用密钥K_app为参数来计算,应用签名K_app_Sign = KDF(K_app, App_ID);步骤b7、BSF将第四共享密钥及其有效期,平台签名K_op_Sign,应用签名K_app_ sign返回给开放平台;步骤b8、开放平台比较第三方应用装置和BSF分别发来的第三共享密钥和第四共享密钥、平台签名K_op_Sign和应用签名K_app_Sign信息,对用户身份、安全装置、第三方应用装置进行认证鉴权,并在鉴权通过后为第三方应用装置对网络资源或数据的访问提供服务;步骤b9、开放平台将API调用结果返回给第三方应用装置,从而完成本次服务。以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
权利要求
1.一种基于GBA的电信能力开放平台密钥协商系统,包括有电信能力开放平台、 Bootstrapping服务功能BSF、用户归属服务器HSS和用户实体UE,其中电信能力开放平台简称为开放平台,其特征在于,所述UE进一步包括有第三方应用装置,用于执行第三方应用程序,通过注册请求,向安全装置申请本地 token ;携带本地token向安全装置发出开放平台API访问请求,或携带安全装置发放的共享密钥、加密后的本地token、平台签名和应用签名向开放平台发出开放平台API访问请求;安全装置,用于接收第三方应用装置的注册请求,和BSF执行互鉴权GBA过程,并根据本地所保存的平台密钥和应用密钥来生成根密钥,然后将生成的本地token及有效期返回给第三方应用装置;接收第三方应用装置的开放平台API访问请求,并根据根密钥、平台标识和应用标识计算共享密钥,然后将携带有所述共享密钥、平台签名和应用签名的开放平台API访问请求转发给开放平台;接收第三方应用装置的置换共享密钥请求,并根据根密钥、平台标识、应用标识和本地token计算共享密钥,然后将计算出的共享密钥、加密后的本地token、平台签名返回给第三方应用装置。
2.根据权利要求1所述的系统,其特征在于,所述UE还包括有用户识别模块,用于存储用户的私有信息,当采用GBA_U类型时,协助安全装置计算根密钥和共享密钥。
3.根据权利要求1所述的系统,其特征在于,还包括有开放平台,用于将开放平台和第三方应用所对应的平台标识、平台密钥、应用标识、应用密钥实时更新到BSF中;接收安全装置或者第三方应用装置发送来的开放平台API访问请求,并通过密钥授权请求从BSF处获取共享密钥、平台签名和应用签名,然后将安全装置或者第三方应用装置和BSF分别发送来的共享密钥、平台签名和应用签名信息进行对比, 从而实现对用户身份、安全装置、第三方应用装置的认证鉴权,并在鉴权通过后,为第三方应用装置提供所需服务;BSF,用于和安全装置执行互鉴权GBA过程,并根据平台密钥和应用密钥生成对应的根密钥;根据开放平台发送来的密钥授权请求,采用和安全装置相同的方法来计算共享密钥、 平台签名和应用签名,并将所述共享密钥、平台签名和应用签名返回给开放平台。
4.根据权利要求1所述的系统,其特征在于,所述安全装置进一步包括有机卡接口单元,用于读取用户识别模块上的用户信息,并当采用GBA_U类型时,根据 GBA执行单元或者第三方应用服务单元的命令,从用户识别模块读取其计算的根密钥或共享密钥;GBA执行单元,用于接收第三方应用服务单元转发来的第三方应用装置的注册请求,通过和BSF的交互,对本地保存的平台密钥和应用密钥实时更新,和BSF执行互鉴权GBA过程,并保存根据平台密钥和应用密钥所计算生成的根密钥;第三方应用服务单元,用于和第三方应用装置进行交互;根据第三方应用装置的注册请求,通知GBA执行单元向BSF发出初始化请求,并根据GBA执行单元和BSF的互鉴权GBA 结果,为第三方应用装置生成和维护本地token ;对第三方应用装置发送来的本地token的有效性进行验证;将第三方应用装置发送来的开放平台API访问请求转发给平台服务单元处理;接收第三方应用装置发送来的置换共享密钥请求,并根据根密钥、平台标识、应用标识、本地token来计算共享密钥,最后将所述共享密钥、加密后的本地token、平台签名返回给第三方应用装置;平台服务单元,用于接收第三方应用服务单元转发的开放平台API访问请求,根据本地保存的根密钥、平台标识、平台密钥、应用标识、应用密钥来计算共享密钥、平台签名和应用签名,并将携带有所述共享密钥、平台签名和应用签名的开放平台API访问请求发送给开放平台。
5.一种基于GBA的电信能力开放平台密钥协商方法,其特征在于,安全装置和第三方应用装置被安装在用户实体UE中,所述方法包括有步骤1、第三方应用装置向安全装置发出注册请求消息,所述注册请求消息中携带有应用标识App_ID ;步骤2、安全装置向Bootstrapping服务功能BSF发起初始化请求消息,所述初始化请求消息中携带有用户标识IMPI、平台标识NAF_ID和应用标识App_ID ;步骤3、BSF根据所述平台标识NAF_ID和应用标识App_ID查找本地所保存的平台密钥 K_op和应用密钥K_app,通知安全装置更新平台密钥K_op和应用密钥K_app,并和安全装置执行互鉴权GBA过程,最后根据所述平台密钥K_op和应用密钥K_app来生成根密钥Ks ;步骤4、安全装置根据更新后的平台密钥K_op和应用密钥K_app,生成和BSF —致的根密钥Ks,并通过注册应答消息将生成的本地token及有效期返回给第三方应用装置。
6.根据权利要求5所述的方法,其特征在于,当开放平台首次注册或平台密钥K_op被更新时,还包括有步骤11、开放平台向BSF发送平台注册消息,所述平台注册消息中携带有平台标识 NAF_ID和平台密钥K_op ;步骤12、BSF检查本地是否已存在平台标识NAF_ID ?如果有,则更新所述NAF_ID所对应的平台密钥K_op,并返回平台注册成功应答消息;如果否,则将平台标识NAF_ID和平台密钥K_op保存在本地,并返回平台注册成功应答消息,当开发者首次注册第三方应用、或应用密钥K_app被更新时,还包括有步骤21、开放平台携带平台标识NAF_ID,应用标识App_ID和应用密钥K_app向BSF发送应用注册消息;步骤22、85 检查本地是否已保存有所述平台标识織 _10及对应的应用标识々 _10 ? 如果有,则更新所述平台标识NAF_ID、应用标识App_ID对应的应用密钥K_app,并返回应用注册成功应答消息;如果否,则将所述平台标识NAF_ID、应用标识App_ID和对应的应用密钥K_app保存在本地,并返回应用注册成功应答消息,同时,所述平台标识NAF_ID和平台密钥K_op被预置在安全装置中并加密保存。
7.根据权利要求5所述的方法,其特征在于,步骤1中,所述注册请求消息还携带有应用签名K_app_sign,所述应用签名K_app_sign = KDF(K_app, App_ID),其中KDF表示密钥导出函数,步骤2还包括有安全装置校验应用签SK_app_Sign是否正确,来判定是否后续流程。
8.根据权利要求5所述的方法,其特征在于,步骤3还包括有BSF以加密性密钥CK、完整性密钥IK、平台密钥K_op、应用密钥K_app为参数生成根密钥Ks = CKI IIKI I K_op I I K_app,并分配会话事务标识B-TID,将会话事务标识B-TID和根密钥Ks的有效期返回给安全装置。
9.根据权利要求5所述的方法,其特征在于,第三方应用装置访问开放平台服务API的操作方法包括有步骤31、第三方应用装置携带本地token,通过安全装置向开放平台发出开放平台API 访问请求,或向安全装置请求置换共享密钥后再向开放平台发出开放平台API访问请求, 所述开放平台API访问请求中携带有由安全装置根据根密钥Ks、平台标识NAF_ID、应用标识App_ID/或以及本地token所计算出的共享密钥,平台签名K_op_Sign和应用签名K_ app—sign ;步骤32、开放平台将安全装置/或第三方应用装置发送来的共享密钥、平台签名K_op_ sign和应用签名K_app_Sign,分别和从BSF处获取的共享密钥、平台签名K_op_Sign和应用签名K_app_Sign进行比较,从而实现对用户身份、安全装置、第三方应用装置的认证鉴权,并在鉴权通过后为第三方应用装置对网络资源或数据的访问提供服务。
10.根据权利要求9所述的方法,其特征在于,当第三方应用装置携带本地token,通过安全装置向开放平台发出开放平台API访问请求时,第三方应用装置访问开放平台服务 API的操作方法进一步包括有步骤Al、第三方应用装置携带本地token及应用访问信息向安全装置发起开放平台 API访问请求;步骤A2、安全装置根据根密钥Ks、平台标识NAF_ID、应用标识App_ID来计算第一共享密钥 K_NAF_app :K_NAF_app = KDF (Ks, "gba-me,,| | RAND | | IMPI | | NAF_ID | | App_ID),其中 RAND为随机数,IMPI是用户IP多媒体私有标识,"gba-me"为表示GBA类型的字符串,KDF 表示密钥导出函数;步骤A3、安全装置向开放平台转发第三方应用装置的开放平台API访问请求,并在所述访问请求消息中携带第一共享密钥K_NAF_app、平台签名K_op_Sign = KDF(K_op, NAF_ ID)、和应用签名 K_app_sign = KDF (K_app, App_ID);步骤A4、开放平台向BSF发送密钥授权请求,BSF根据根密钥Ks、平台标识NAF_ID、应用标识App_ID,计算出与第一共享密钥相同的第二共享密钥、平台签名K_op_Sign和应用签名 K_app_sign ;步骤A5、开放平台比较安全装置和BSF分别发来的第一共享密钥和第二共享密钥、平台签名K_op_Sign和应用签名K_app_Sign信息,对用户身份、安全装置、第三方应用装置进行认证鉴权,并在鉴权通过后为第三方应用装置对网络资源或数据的访问提供服务,其中, 第一共享密钥和第二共享密钥用于完成对网络侧用户身份的认证鉴权;平台签名K_op_ sign用于完成对安全装置的认证鉴权;应用签名K_app_Sign用于完成对第三方应用装置的认证鉴权。
11.根据权利要求10所述的方法,其特征在于,步骤A2还包括有安全装置验证开放平台API访问请求中携带的本地token是否有效?如果有,则根据根密钥Ks、平台标识NAF_ID、应用标识App_ID来计算第一共享密钥,继续下一步;如果否, 则向第三方应用装置返回错误,并转向步骤1。
12.根据权利要求10所述的方法,其特征在于,步骤A3中,所述开放平台API访问请求还携带有会话事务标识B-TID和应用标识App_ID,步骤A4中,所述密钥授权请求携带有会话事务标识B-TID、平台标识NAF_ID、应用标识 App_ID,BSF根据所述密钥授权请求中的会话事务标识B-TID、平台标识NAF_ID和应用标识 App_ID,查找到对应的根密钥Ks、平台密钥K_op和应用密钥K_app,并根据根密钥Ks、平台标识NAF_ID、应用标识App_ID、平台密钥K_op和应用密钥K_app,计算出与第一共享密钥相同的第二共享密钥、平台签名K_op_sign = KDF(K_op,NAF_ID)、和应用签名K_app_sign = KDF (K_app, App_ID)。
13.根据权利要求9所述的方法,其特征在于,当第三方应用装置携带本地token,向安全装置请求置换共享密钥后再向开放平台发出开放平台API访问请求时,第三方应用装置访问开放平台服务API的操作方法进一步包括有步骤Bi、第三方应用装置携带本地token及应用访问信息向安全装置请求置换共享密钥;步骤B2、安全装置根据根密钥Ks、平台标识NAF_ID、应用标识App_ID、本地token来计算第三共享密钥 K_NAF_token :K_NAF_token = KDF (Ks, “gba-me” | RAND | IMPI | NAF_ ID I |App_ID token),其中RAND为随机数,IMPI是用户IP多媒体私有标识,“gba-me”为表示GBA类型的字符串,KDF表示密钥导出函数;步骤B3、安全装置向第三方应用装置返回第三共享密钥K_NAF_t0ken、经加密后的本地 token 和平台签名 K_op_sign = KDF (K_op, NAF_ID);步骤B4、第三方应用装置向开放平台发起开放平台API访问请求,并在所述访问请求消息中携带第三共享密钥K_NAF_t0ken、加密后的本地token、平台签名K_op_Sign和应用签名 K_app_sign = KDF (K_app, App_ID);步骤B5、开放平台向BSF发送密钥授权请求,BSF根据根密钥Ks、加密后的本地token、 平台标识NAF_ID、应用标识App_ID,计算出与第三共享密钥相同的第四共享密钥、平台签名 K_op_sign 和应用签名 K_app_sign ;步骤B6、开放平台比较第三方应用装置和BSF分别发来的第三共享密钥和第四共享密钥、平台签名K_op_Sign和应用签名K_app_Sign信息,对用户身份、安全装置、第三方应用装置进行认证鉴权,并在鉴权通过后为第三方应用装置对网络资源或数据的访问提供服务,其中,第三共享密钥和第四共享密钥用于完成对网络侧用户身份的认证鉴权;平台签名 K_op_Sign用于完成对安全装置的认证鉴权;应用签名K_app_Sign用于完成对第三方应用装置的认证鉴权。
14.根据权利要求13所述的方法,其特征在于,步骤B2还包括有安全装置验证置换共享密钥请求中携带的本地token是否有效?如果有,则根据根密钥Ks、平台标识NAF_ID、应用标识App_ID、本地token来计算第三共享密钥,继续下一步; 如果否,则向第三方应用装置返回错误,并转向步骤1。
15.根据权利要求13所述的方法,其特征在于,步骤B3中,安全装置向第三方应用装置返回的信息还包括有会话事务标识B-TID,步骤B4中,所述开放平台API访问请求还包括有会话事务标识B-TID和应用标识App_ID,步骤B5中,所述密钥授权请求携带平台标识NAF_ID、会话事务标识B-TID、应用标识 App_ID、加密后的本地t0ken,BSF根据所述会话事务标识B-TID、平台标识NAF_ID和应用标识App_ID,查找到对应的根密钥Ks、平台密钥K_op和应用密钥K_app,并根据根密钥Ks、平台标识NAF_ID、应用标识App_ID、解密后的本地token、平台密钥K—op和应用密钥K_app, 计算出与第三共享密钥相同的第四共享密钥、平台签名K_op_Sign = KDF(K_op,NAF_ID)和应用签名 K_app_sign = KDF (K_app, App_ID)。
全文摘要
一种基于GBA的电信能力开放平台密钥协商系统和方法,安全装置和第三方应用装置安装在UE中,包括有第三方应用装置向安全装置发出携带应用标识的注册请求消息;安全装置向BSF发起携带用户标识、平台标识和应用标识的初始化请求消息;BSF根据平台标识和应用标识查找本地保存的平台密钥和应用密钥,通知安全装置更新平台密钥和应用密钥,并和安全装置执行互鉴权GBA过程,最后根据平台密钥和应用密钥生成根密钥;安全装置根据更新后的平台密钥K_op和应用密钥K_app生成和BSF一致的根密钥Ks,并将生成的本地token及有效期返回给第三方应用装置。本发明属于移动通信技术领域,开放平台能对第三方应用有效鉴权和认证。
文档编号H04W12/04GK102413464SQ201110377518
公开日2012年4月11日 申请日期2011年11月24日 优先权日2011年11月24日
发明者廖建新, 曹予飞 申请人:杭州东信北邮信息技术有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1