专利名称:对请求消息的鉴权方法和相关设备的制作方法
技术领域:
本发明涉及通信技术领域,具体涉及鉴权服务设备对请求消息的鉴权方 法、应用服务器对终端请求的鉴权方法、终端的鉴权方法以及相应的鉴权服务 设备、应用服务器和终端。
背景技术:
随着通信业务的不断丰富和发展,运营商和用户都需要可靠的安全机制来保证业务的合法使用。例如,在基于网际协议(IP: Internet Protocol)多媒体 子系统(IMS: IP Multimedia Subsystem)的多媒体广播/多播业务(MBMS: Multimedia Broadcast / Multicast Service)中,当用户需要通过终端设备访问受 保护的MBMS业务时,通常会对终端进行鉴权认证。目前一种常用的认证过 程可参考图l,主要包括以下两个环节一、 密钥协商通过该过程,终端(UE: User Equipment)与提供安全机制的鉴权服务设 备协商共享的密钥相关数据。具体协商方式通常可采用通用引导架构(GBA: Generic Bootstrapping Architecture)来进行,在GBA中提供安全机制的设备为 引导服务功能(BSF: Bootstrapping Server Function)实体。完成GBA过程后, UE和BSF都记录了本次GBA过程的密钥相关数据,包括Bootstrapping事务 标识(B-TID: Bootstrapping Transaction IDentifier )、 IMS用户私有标志符(IMPI: IP Multimedia Private Identity )、加密密钥(CK: Cipher Key ),完整性密钥(IK: Interity Key )等。UE和BSF可利用CK和IK生成彼此共享的密钥资料Ks。二、 安全关联此过程将UE与BSF协商的密钥资料Ks关联到提供网络应用功能(NAF: Network Application Function)的应用月艮务器(AS: Application Server )。在GBA 完成以后,UE和BSF之间达成了共享密钥Ks, UE可利用AS的标识NAF—Id 和Ks计算出相关密钥Ks一NAF。然而AS还没有获得该密钥的有关信息,为 了在UE和AS之间达成共享密钥以进行通信,还需要执行如下步骤
1 、 UE向AS发送超文本传输协议(HTTP: Hypertext Transfer Protocol) 请求,请求中包含B-TID。2、 AS向BSF发送HTTP请求,请求中包含B-TID和自身的主机名。3、 BSF验证AS的请求后,根据已经与UE达成的Ks以及收到的主机名 计算出相关密钥Ks_NAF,然后通过HTTP响应发送给AS, —起发送的还可 包括密钥的有效时间以及用户安全设置等。4、 AS收到BSF的响应后,根据Ks_NAF计算鉴权响应数据,通过HTTP 响应发送给UE。UE根据自身记录的Ks—NAF验证了 AS的响应后,即完成鉴权过程,UE 和AS可凭借已建立的共享密钥Ks_NAF开始安全通信。在对现有技术的研究和实践过程中,本发明的发明人发现,对于比较复杂 的业务而言,在服务器侧往往需要由多个特定功能的服务协同配合才能完成, 即由多个AS构成一个完整的业务。例如,对于移动网络上的MBMS业务, 可以由提供展现接口 ( Portal)的AS1实现UE上业务导4元(Service Guide) 的获取,由提供订购Portal的AS2实现用户对MBMS业务的订购等。在这种 情况下,按照现有的鉴权方式,UE需要根据不同的AS分别执行上述密钥协 商和安全关联的过程,交互消息过多,增加了应用响应的延迟。发明内容本发明实施例提供能够简化终端与多个应用之间鉴权过程的请求消息鉴 权方案,包括一种对请求消息的鉴权方法,包括与终端协商密钥信息,为终端分配与 所述密钥信息对应的鉴权事务标识和鉴权随机数;接收应用服务器的关联请 求,所述关联请求携带有鉴权事务标识和鉴权随机数;根据所述关联请求携带 的鉴权事务标识对所述关联请求携带的鉴权随机数进行验证;在验证通过后, 查找与所述关联请求携带的鉴权事务标识对应的密钥信息,向所述应用服务器 返回与所述关联请求对应的关联响应,所述关联响应携带有根据所述查找到的 密钥信息生成的鉴权密钥。一种应用服务器对终端请求的鉴权方法,包括接收终端的认证请求,所
述认证请求携带有鉴权事务标识和鉴权随机数;根据所述认证请求向鉴权服务设备发送关联请求,f斤述关联请求携带有所述鉴权事务标识和所述鉴权随机数;接收所述鉴权服务设备返回的与所述关联请求对应的关联响应,所述关联 响应携带有鉴权密钥;向所述终端返回与所述认证请求对应的成功响应,所述 成功响应携带有根据所述鉴权密钥生成的鉴权响应数据。一种终端的鉴权方法,包括判断是否保存有密钥信息以及与所述密钥信 息对应的鉴权事务标识和鉴权随机数,若否,则与鉴权服务设备协商密钥信息, 获得所述鉴权服务设备分配的与所述密钥信息对应的鉴权事务标识和鉴权随 机数;然后执行"若是"的步骤;若是,则向应用服务器发送认证请求,所述 认证请求携带有所述鉴权事务标识和所述鉴权随机数;接收所述应用服务器返 回的与所述认i正请求对应的成功响应,所述成功响应携带有鉴权响应数据,冲艮 据所述密钥信息对所述鉴权响应数据进行验证。一种鉴权服务设备,包括鉴权服务模块,用于与终端协商密钥信息,为 终端分配与所述密钥信息对应的鉴权事务标识和鉴权随机数;统一鉴权^t块, 用于接收应用服务器的关联请求,获得所述关联请求携带的鉴权事务标识和鉴 权随机数;根据所述关联请求携带的鉴权事务标识,按照所述鉴权服务模块提 供的数据对所述关联请求携带的鉴权随机数进行验证;在验证通过后,查找与 所述关联请求携带的鉴权事务标识对应的密钥信息,向所述应用服务器返回与 所述关联请求对应的关联响应,在所述关联响应中携带根据所述查找到的密钥 信息生成的鉴权密钥。一种应用服务器,包括接口模块,用于接收终端的认证请求;向鉴权服 务设备发送关联请求;接收所述鉴权服务设备返回的与所述关联请求对应的关 联响应;向所述终端返回与所述认^i正请求对应的成功响应;安全关联^^莫块,用 于获得所述认证请求中携带的鉴权事务标识和鉴权随机数,根据所述认证请求 生成所述需要向鉴权服务设备发送的关联请求,在所述关联请求中携带所述鉴 权事务标识和所述鉴权随机数;获得所述关联响应携带的鉴权密钥,根据所述关联响应携带的鉴权密钥生成鉴权响应数据,生成所述需要向终端返回的成功 响应,在所述成功响应中携带所述鉴权响应数据。一种终端,包括安全服务模块,用于与鉴权服务设备协商密钥信息,获 得所述鉴权服务设备分配的与所述密钥信息对应的鉴权事务标识和鉴权随机 数;应用服务模块,用于向应用服务器发起认证请求,在所述认证请求中携带 所述鉴权事务标识和所述鉴权随机数;获得所述应用服务器返回的与所述认证 请求对应的成功响应,获得所述成功响应中携带的鉴权响应数据,根据所述密 钥信息对所述鉴权响应数据进行验证;鉴权控制模块,用于在需要向应用服务 器发送认证请求时,判断是否保存有密钥信息以及与所述密钥信息对应的鉴权 事务标识和鉴权随机数;若否,则控制所述安全服务模块获取所需数据;若是, 则控制所述应用服务模块发起认证请求。本发明实施例采用由鉴权服务设备对鉴权随机数进行集中分配和管理的 方式,当终端使用受保护业务时,只需要执行一次密钥协商过程,即可按照鉴 权随机数的使用策略,依次完成与多个应用服务器的鉴权,简化了终端与应用 之间的鉴权过程,提高了应用响应的速度。
图l是现有鉴权认证方法流程示意图;图2是本发明实施例的鉴权服务设备对请求消息的鉴权方法流程示意图; 图3是本发明实施例的鉴权服务设备逻辑结构示意图; 图4是本发明实施例的 一种系统架构示意图;图5是本发明实施例的应用服务器对终端请求的鉴权方法流程示意图;图6是本发明实施例的应用服务器逻辑结构示意图;图7是本发明实施例的终端的鉴权方法流程示意图;图8是本发明实施例的终端逻辑结构示意图;图9是采用本发明实施例的 一个GBA过程示意图;图IO是采用本发明实施例的一个鉴权成功过程示意图;图ll是采用本发明实施例的一个鉴权不成功过程示意图;图12是采用本发明实施例的另 一个鉴权不成功过程示意图。
具体实施例方式
本发明实施例提供了 一种对请求消息的鉴权方案,以下分别从鉴权服务设 备、应用服务器和终端的角度对该方案进行详细说明。本发明实施例的鉴权服务设备对请求消息的鉴权方法参考图2,包括 Al、与终端协商密钥信息,为终端分配与该密钥信息对应的鉴权事务标 识和鉴一又随一几lt。本实施例不限定鉴权服务设备与终端之间的密钥协商方式,只要双方通过 协商能够获得共享的密钥信息即可,只是需要对所使用的协商方式进行扩展, 使得能够将鉴权服务设备分配的鉴权随机数递交给终端。例如,若采用GBA过程进行密钥协商,可将Ks视为共享的密钥信息,将 GBA过程中分配的B-TID作为鉴权事务标识,至于鉴权随机数,可通过在对终 端的响应消息中扩展一个新的参数,例如nextnonce来携带。鉴权服务设备对鉴权随机数可以采用两种管理模式① 更新管理鉴权服务设备可以为终端后续的每次认证请求都分配新的鉴权随机数。例 如,可以在完成密钥协商时,通过成功响应分配给终端第一个鉴权随机数,用 于终端第 一次向应用服务器的认证请求;在后续每次成功响应应用服务器的关 联请求时,返回新分配的鉴权随机数,该新分配的鉴权随机数将通过应用服务 器递交给终端,用于终端下一次的认证请求。② 计次管理鉴权服务设备也可以记录所分配的鉴权随机数的使用次数。例如,可以在 完成密钥协商时,通过成功响应分配给终端第一个鉴权随机数,并初始化其使 用次数为l;在后续每次成功响应应用服务器的关联请求时,对鉴权随机数的 使用次数进行累加。当然,这种模式下,终端也需要记录鉴权随机数的使用次 数和根据使用情况进行累加,并在向应用服务器的认证请求中携带鉴权随机数 的使用次数,通过应用服务器的关联请求携带给鉴权服务设备,作为鉴权服务 设备对请求消息的验证依据。A2、接收应用服务器的关联请求,所述关联请求携带有鉴权事务标识和 鉴权随机数。
当然,若基于管理模式②,鉴权服务设备接收的关联请求还携带有鉴权随 机数的使用次数。 —A3 、根据收到的关联请求携带的鉴权事务标识对该关联请求携带的鉴权 随机数进行验证,若验证通过则执行步骤A4,若验证失败则执行步骤A5。基于管理模式①,鉴权服务设备对鉴权随机数的具体验证方式为查找与 该关联请求携带的鉴权事务标识对应的鉴权随机数,验证该关联请求携带的鉴 权随机数与查找到的鉴权随机数是否一致。基于管理模式②,鉴权服务设备对鉴权随机数的具体验证方式为查找与 该关联请求携带的鉴权事务标识对应的鉴权随机数及其使用次数,验证该关联 请求携带的鉴权随机数及其使用次数与查找到的鉴权随机数及其使用次数是 否一致。A4、在验证通过后,查找与关联请求携带的鉴权事务标识对应的密钥信 息,向应用服务器返回与该关联请求对应的关联响应,所返回的关联响应携带 有根据查找到的密钥信息生成的鉴权密钥。例如,若采用GBA过程进行MBMS请求密钥(MRK: MBMS R叫uest Key ) 协商,可根据关联请求携带的B-TID查到对应的Ks,根据Ks计算MRK,把MRK 作为鉴权密钥返回给应用服务器。基于管理模式①,在验证通过后,鉴权服务设备需要分配新的鉴权随机数 来更新查找到的鉴权随机数,并且在返回的关联响应中携带该新的鉴权随机 数。基于管理模式②,在验证通过后,鉴权服务设备需要累加查找到的鉴权随 机数的使用次数。A5、在验证失败后,向应用服务器返回与关联请求对应的错误响应。 所称验证失败,包括需要验证的信息与查找到的信息不一致(例如鉴权随 机数与所保存的鉴权随机数不一致,或者鉴权随机数的使用次数与所保存的使 用次数不一致),或者根据鉴权事务标识检索不到相关信息等情况。在验证失败后,鉴权服务设备可直接返回指示验证失败的关联失败响应, 通过应用服务器要求终端重新执行密钥协商过程。当然,为进一步节省流程, 鉴权服务设备也可以对失败情况进行细分,根据具体情况返回不同的错误响 应。例如,可进一步判断是否存在与关联请求携带的鉴权事务标识对应的密钥 信息,若是,则说明与终端共享的密钥信息还存在(当然鉴权服务设备还可进一 步判断该密钥信息的有效性),因此可以重新分配鉴权随机数作为与关联请求 携带的鉴权事务标识对应的鉴权随机数,向应用服务器返回与该关联请求对应 的关联重置响应,在该关联重置响应中携带重新分配的鉴权随机数(当然同时还可携带错误原因等);这样,终端可以使用重新分配的鉴权随机数重新向应 用服务器发起认证请求;若否,则向应用服务器返回与关联请求对应的,指示验证失败的关联失败 响应(当然同时还可携带错误原因等),要求终端重新执行密钥协商过程。上述细分的错误响应方式对管理模式①和②都适用,只是在管理模式② 下,鉴权服务设备和终端除了更新所保存的鉴权随机数,还需要初始化鉴权随 机数的使用次数。下面给出用于执行上述对请求消息的鉴权方法的鉴权服务设备的实施例。 为尽量减少对现有设备的改动,本实施例鉴权服务设备是通过在提供现有鉴权 服务功能的模块基础上,增加提供扩展功能的统一鉴权模块来实现,结构参考 图3,包括鉴权服务模块101,用于与终端协商密钥信息,为终端分配与密钥信息对 应的鉴权事务标识和鉴权随机数。该模块基本执行通常的鉴权服务功能,扩展 之处在于将鉴权随机数递交给终端。统一鉴权模块102,用于接收应用服务器的关联请求,获得该关联请求携 带的鉴权事务标识和鉴权随机数;根据关联请求携带的鉴权事务标识,按照鉴 权服务模块10l提供的数据对关联请求携带的鉴权随机数进行验证;在验证通 过后,查找与关联请求携带的鉴权事务标识对应的密钥信息,向应用服务器返 回与关联请求对应的关联响应,在该关联响应中携带根据查找到的密钥信息生 成的鉴权密钥。为减少模块间的信息查询量,统一鉴权模块102可进一步用于,保存为验
证关联请求携带的鉴权随机数从鉴权服务模块101查询到的数据。这样当统一
鉴权模块102在对关联请求携带的鉴权随机数进行验证时,可先在自身已保存 的数据中查询,若查询不到再到鉴权服务模块101中查询。当然,鉴权服务模 块101在收到统一鉴权模块102的查询请求后,可以将对应的鉴权随机数、密钥 信息等数据一并响应,这样统一鉴权模块102在验证通过后即可直接在自身保 存的数据中查询密钥信息。
基于前述不同的鉴权随机数管理模式,统一鉴权模块102对关联请求携带 的鉴权随机数进行验证,可以是对关联请求携带的鉴权随机数与自身所保存的 鉴权随机数是否一致进行验证;也可以是对关联请求携带的鉴权随机数及其使 用次数与自身所保存的鉴权随机数及其使用次数是否一致进行验证(这种情况 下,统一鉴权模块102还获得关联请求携带的鉴权随机数的使用次数)。在前一 情况下,统一鉴权模块102还用于,在验证通过后分配新的鉴权随机数来更新 自身所保存的鉴权随机数,并在返回的关联响应中携带该新的鉴权随机数,用 于指示终端以所述新的鉴权随机数向下一个应用服务器发送认证请求。在后一 情况下,统一鉴权模块102还用于,在验证通过后累加自身所保存的鉴权随机 数的使用次数。
此外,为处理验证失败的情况,统一鉴权模块102还可用于在验证失败后, 向应用服务器返回与之前收到的关联请求对应的关联失败响应,在该关联失败 响应中携带表示验证失败要求终端重新进行密钥信息协商的指示。当然,统一 鉴权模块102也可以用于执行前述细致化的错误响应方案,即用于在验证失败 后,判断是否存在与关联请求携带的鉴权事务标识对应的密钥信息,若是,则 重新分配鉴权随机数来更新自身所保存的与关联请求携带的鉴权事务标识对 应的鉴权随机数,向应用服务器返回与关联请求对应的关联重置响应,在该关 联重置响应中携带重新分配的鉴权随机数,用于指示终端以该重新分配的鉴权 随机数重新向应用服务器发送认证请求;若否,则参照前述处理验证失败的情 况,向应用服务器返回与关联请求对应的关联失败响应。
基于通用i人"i正架构(GAA: Generic Authentication Architecture),本实施 例中的鉴权服务模块可参考BSF来实现,新增的统一鉴权模块(AuthS:
Authentication Server)可以与BSF合设,也可以作为独立的鉴权服务器与BSF 分别设置。采用合设方式时的系统架构如图4所示,BSF与UE之间采用GAA的 Ub接口 , UE与各个AS之间采用GAA的Ua接口 , AuthS与各个AS之间的接口消 息可以参考UE与AS之间的消息形式,当然也可以采用XML等格式,具体承载 协议不作限定(例如HTTP、 HTTPS等),AuthS与BSF之间属于内部接口 ,不 必定义。若AuthS独立设置时,AuthS与BSF之间的接口可参考GAA中AS与BSF 之间的Zn接口。需要说明的是,清楚起见,图4中并没有画出AS与BSF的连接, 若考虑兼容现有的GAA认证方式,AS可保留与BSF的连接,在业务执行过程
本发明实施例提供的认证方式(使用与AuthS的接口 )。
法与前述实施例的鉴权服务设备对请求消息的鉴权方法相应,步骤包括
Bl、接收终端的认证请求,该认证请求携带有鉴权事务标识和鉴权随机数。
当然,若基于管理模式②,该认证请求还携带有鉴权随机数的使用次数。 若进一步考虑到兼容现有的认证方式,应用服务器在收到终端的认证请求 后,可以先根据该认证请求的具体情况进行判断,选择适配的认证方式。例如, 在目前的GAA过程中,终端发送的认证请求还携带有鉴权该请求的服务器的 域名,通常放置在realm参数的后半部分,以@符号与前半部分分隔。应用服 务器在收到请求后可首先检查realm参数(^符号后的域名是否与自己的域名一 致,如果一致则采用现有的GAA认证过程;如果不一致并且确定是鉴权服务 设备的域名(例如BSF的域名),则执行本实施例提供的认证过程。
B2、根据收到的认证请求向鉴权服务设备发送关联请求,该关联请求携 带有认证请求中的鉴权事务标识和鉴权随机数。
当然,若基于管理模式②,该关联请求还携带有鉴权随机数的使用次数。 B3、根据鉴权服务设备的不同响应结果,执行相应的后续操作,包括 B31、请求成功接收鉴权服务设备返回的与之前发送的关联请求对应的 关联响应,该关联响应携带有鉴权密钥。应用服务器记录鉴权密钥,并根据鉴
权密钥计算鉴权响应数据,然后向终端返回与该终端发送的认证请求对应的成 功响应,在成功响应中携带所生成的鉴权响应数据。进一步的,应用服务器可 以先使用鉴权密钥对终端的认证请求进行鉴权,鉴权成功后才向终端返回成功 响应。当然,若基于管理模式①,收到的关联响应还携带有新的鉴权随机数, 因此在返回给终端的成功响应中,还需要携带该新的鉴权随机数,用于指示终 端以该新的鉴权随机数向下一个应用服务器发送认证请求。
B32、请求失败接收鉴权服务设备返回的与之前发送的关联请求对应的 关联失败响应;根据关联失败响应向终端返回与该终端发送的iU正请求对应的 失败响应,在失败响应中携带要求终端重新进行密钥信息协商的指示。
B33、请求重置接收鉴权服务设备返回的与之前发送的关联请求对应的 关联重置响应,该关联重置响应携带有重新分配的鉴权随机数。应用服务器向 终端返回与该终端发送的认证请求对应的重置响应,在重置响应中携带该重新 分配的鉴权随机数,以此指示终端使用该重新分配的鉴权随机数重新发起认证 请求。
构参考图6,包括
接口模块201,用于接收终端的认证请求;向鉴权服务设备发送关联请求; 接收鉴权服务设备返回的与之前发送的关联请求对应的关联响应;向终端返回 与该终端发送的认证请求对应的成功响应。
对应于鉴权服务设备返回错误响应的情况,接口模块201还用于,接收鉴 权服务设备返回的与之前发送的关联请求对应的关联失败响应或者关联重置 响应;向终端返回与该终端发送的认证请求对应的失败响应或重置响应。
安全关联模块202,用于根据接口模块201收到的认证请求,获得该认证请 求携带的鉴权事务标识和鉴权随机数,生成需要向鉴权服务设备发送的关联请 求,所称关联请求携带有认证请求中的鉴权事务标识和鉴权随机数;根据接口 模块201收到的关联响应获得该关联响应携带的鉴权密钥,根据该鉴权密钥计 算鉴权响应数据,生成需要向终端返回的成功响应,在该成功响应中携带该鉴 权响应数据。进一步的,安全关联模块202可以先使用鉴权密钥对终端的认证
请求进行鉴权,鉴4又成功后再生成成功响应。
对应于鉴权服务设备返回错误响应的情况,安全关联模块202还用于,根 据接口模块201收到的关联失败响应生成需要向终端返回的失败响应,在该失 败响应中携带要求终端重新进行密钥信息协商的指示;根据接口模块201收到 的关联重置响应获得该关联重置响应携带得重新分配的鉴权随机数,生成需要 向终端返回的重置响应,所称重置响应携带有该重新分配的鉴权随机数,用于 指示所述终端以所述重新分配的鉴权随机数重新发送认证请求。
进一步考虑到兼容现有的认证方式,安全关联模块202还用于,获得认证 请求中携带的鉴权该请求的服务器的域名。这种情况下,安全关联;f莫块202还 可用于,先确认认证请求携带的鉴权该请求的服务器的域名为鉴权服务设备的 域名,再生成需要向该鉴权服务设备发送的关联请求;若确认认证请求携带的 鉴权该请求的服务器的域名为自己的域名,则可按照现有认证方式执行后续操 作。
本发明实施例的终端的鉴权方法参考图7,本实施例方法与前述实施例的 鉴权服务设备对请求消息的鉴权方法,以及应用服务器对终端请求的鉴权方法 相应,步骤包括
Cl、判断是否保存有密钥信息以及与该密钥信息对应的鉴权事务标识和 鉴权随机数,若否,则执行步骤C2,若是,则执行步骤C3。
C2、与鉴权服务设备协商密钥信息,获得鉴权服务设备分配的与该密钥 信息对应的鉴权事务标识和鉴权随机数;然后执行步骤C3 。
C3、向应用服务器发送认证请求,该认证请求携带有所保存的鉴权事务 标识和鉴权随机数。
当然,若基于管理模式②,该认证请求还携带有鉴权随机数的使用次数。 C4、根据应用服务器的不同响应结果,执行相应的后续操作,包括 C41、请求成功接收应用服务器返回的与之前发送的认证请求对应的成 功响应,该成功响应携带有鉴权响应数据,根据所保存的密钥信息对该鉴权响 应数据进行验证。当然,若基于管理模式①,收到的成功响应还携带有新的鉴
于管理模式②,则终端累加所保存的鉴权随机数的使用次数。
C42、请求失败接收应用服务器返回的与之前发送的认证请求对应的失 败响应,该失败响应携带有要求终端重新进行密钥信息协商的指示。终端根据 该指示清除所保存的密钥信息以及对应的鉴权事务标识和鉴权随机数,重新与 鉴权服务设备协商密钥信息,然后以重新协商的密钥信息向应用服务器发送认 证请求,即重新从步骤C2开始执行。
C43、请求重置接收应用服务器返回的与之前发送的认证请求对应的重 置响应,该重置响应携带有重新分配的鉴权随机数;使用该重新分配的鉴权随 机数来更新所保存的鉴权随机数,然后以重新分配的鉴权随机数向应用服务器 发送认证请求,即重新从步骤C3开始执行。当然,若基于管理模式②,终端 在更新所保存的鉴权随机数时,还需要初始化鉴权随机数的使用次数。
下面给出用于执行上述鉴权方法的终端的实施例,结构参考图8,包括
安全服务模块301,用于与鉴权服务设备协商密钥信息,获得鉴权服务设 备分配的与该密钥信息对应的鉴权事务标识和鉴权随机数。
应用服务模块302,用于向应用服务器发起认证请求,在该认证请求种携 带安全服务^f莫块301获得的鉴权事务标识和鉴权随机数;获得应用服务器返回 的与之前发送的认证请求对应的成功响应,获得该成功响应中携带的鉴权响应 数据,根据安全服务模块301获得的密钥信息对该鉴权响应数据进行验证。
鉴权控制模块303,用于在需要向应用服务器发送认证请求时,判断是否 保存有密钥信息以及与该密钥信息对应的鉴权事务标识和鉴权随机数;若否,
则控制安全服务模块301获取所需数据;若是,则控制应用服务模块302发起认 证请求。
进一步的,若基于管理模式①,应用服务模块302还用于从成功响应中获 得新的鉴权随机数;这种情况下,鉴权控制模块303还用于,使用该新的鉴权 随机数来更新所保存的鉴权随机数。
进一步的,若基于管理模式②,应用服务模块302还用于在发起的认证请 求中携带鉴权随机数的使用次数;这种情况下,鉴权控制模块303还用于,在 应用服务模块302获得成功响应后,累加所保存的鉴权随机数的使用次数。
对应于请求不成功的情况,应用服务模块302还用于,获得应用服务器返 回的与之前发送的认证请求对应的失败响应或者重置响应,获得该失败响应中 携带的要求终端重新进行密钥信息协商的指示,获得该重置响应中携带的重新 分配的鉴权随机数。鉴权控制模块303还用于,根据失败响应的指示清除所保 存的密钥信息以及对应的鉴权事务标识和鉴权随机数,控制安全服务模块301 重新获取所需数据,然后控制应用服务模块302重新发起认证请求;或者根据 重置响应的指示使用重新分配的鉴权随机数来更新所保存的鉴权随机数,然后 控制应用服务模块302重新发起认证请求。上述实施例中采用由鉴权服务设备对鉴权随机数进行集中分配和管理的 方式,当终端使用受保护业务时,只需要执行一次密钥协商过程,即可按照鉴 权随机数的使用策略,依次完成与多个应用服务器的鉴权,简化了终端与应用 之间的鉴权过程,提高了应用响应的速度。进一步的,可通过应用服务器对终式,增强了本发明实施例方案的兼容性。为更好的理解上述实施例,下面给出上述实施例方案的具体应用例。假设 以GAA为基础,采用图4所示的系统架构,AuthS采用模式②管理鉴权随机 数。一、GBA过程UE在使用受保护的业务时,首先访问BSF执行按本发明实施例提供方法 扩展后的GBA过程,协商与AS的共享密钥数据。该流程参考图9,包括1 、 UE向BSF发送HTTP请求,初始化Bootstrapping过程。该请求消息 中包含BSF可识别的用户的标识信息,例如国际移动用户识别码(IMSI: International Mobile Subscriber Identification Number )。 UE通常会在请求消息的 Authorization头的realm参数中放置期望访问的BSF的全域名(FQDN: Fully Qualified Domain Name )。2、 BSF通过参考点Zh从归属用户服务器(HSS: Home Subscriber Server) 中获得用户的安全信息,例如鉴权向量(AV: Authentication Vector), AV中 包含有CK、 IK等数据。详细信令过程可参见3GPP TS 29.109。3、 BSF选择一个鉴权向量,计算鉴权相关数据后,通过HTTP 401 Unauthorized响应消息发送给UE。响应消息的构造过程可参见3GPP TS 24.109。4、 UE根据自身存储的数据(例如SIM卡中的数据)对BSF的响应消息 进行检查,如果鉴权4企查成功,则成功认证网络;UE计算出CK、 IK,这样, BSF和UE都拥有了密钥IK和CK。5、 UE计算生成Authorization头中的数据,重新发起HTTP请求到BSF。6、 BSF对UE的请求消息进行鉴权,成功后,记录用户的标识,生成并 存储本次GBA过程的密钥相关lt据,包括B-TID、 IMPI、 CK、 IK等,并通 过CK和IK产生密钥信息Ks。详细的密钥相关数据的生成过程参见3GPPTS 33.220。7、 BSF发送200 OK响应消息到UE通知认证成功,该消息中包含B-TID、 Ks的生存期,以及扩展增加的"nextnonce"参数,该参数携带鉴权随机数。8、 UE收到响应消息,验证通过后,存储B-TID、 nextnonce等参数,在 UE中也根据CK和IK产生Ks。二、鉴权成功的过程假设UE根据业务流程需要依次访问AS1 、 AS2两个应用服务,该流程参 考图10(由于AuthS和BSF共同构成鉴权服务设备,因此在图IO中将该两个 网元以及它们之间的交互用虚线框出,下同),包括1、 UE访问受保护的业务,AS1要求对请求消息鉴权。UE检查是否存在 GBA过程产生的密钥相关数据,如果存在,则计算用于请求消息鉴权的密钥 MRK 1 ,计算方法可参见3GPPTS 33.220 Annex B,其中NAFId可选择由BSF 的FQDN与Ua接口的安全协议标识连接构成,而不使用AS 1的标识。当然, 若不存在密钥相关数据,则UE需要先执行前述GBA过程。2、 UE向AS1发起带Authorization头的HTTP请求。Authorization头中 定义了 AS1验证该消息的必要参数username参数指示GBA过程中由BSF 分配的B-TID; realm参数以@符号分隔的后半部分指明鉴权该消息的服务器 的域名,即BSF的FQDN; nonce参数为GBA过程中由BSF响应消息中返回
的nextnonce参凄t的4直,nc参凄丈指明nextnonce使用的次H其余参凄t可参见 3GPPTS 24.109。 '3、 AS1收到UE的请求消息后,根据Authorization头中的参数,首先检 查域名是否与自己的域名一致,如果一致则采用标准定义的消息鉴权流程,如 果不一致并且是BSF的域名,则采用本发明实施例提供的鉴权流程。假定为 BSF的域名,AS1向AuthS发起对MRK的请求,请求消息中包括B-TID、nonce、 nc等鉴权相关的参数。4、 AuthS接收到请求消息后,根据B-TID检索AuthS存储的相关数据, 如果检索失败,并且根据请求消息的nc = 1,确定是UE的第 一次鉴权请求, 则向BSF发起获取GBA过程协商的Ks等相关数据的请求。5、 BSF响应AuthS的查询i青求,响应消息中包4舌与B-TID对应的Ks、 Nonce、数据有效期等数据,AuthS保存相关的数据项,初始化记录项中的nc =1。6、 AuthS检测AS1的请求消息中的nonce和nc与自身保存的数据是否一 致。如果检验成功,则按照与UE相同的方式生成MRK,并响应给ASl,累 加记录项中的nc的值。当然,若基于管理模式①,同时还可以通过nextnonce 参数,返回用于下次鉴权时使用的nonce。7、 AS1收到AuthS的响应后,产生对UE的响应消息,根据MRK计算 响应消息中的鉴权响应数据。8、 UE对AS1的鉴权响应数据进行验证,验证通过后对UE存储的nc进 行累加,表示nonce已经用于一次请求消息的鉴权,然后根据业务流程需要, 访问第二个应用服务AS2。9、 UE向AS2发起带Authorization头的HTTP请求。与步骤2相比,区 别主要是nc为更新后的值。10、 参照步骤3, AS2收到UE的请求消息后,向AuthS发起对MRK的 请求,请求消息中包括B-TID、 nonce、 nc等鉴权相关的参数。11 、 AuthS接收到请求消息后,根据B-TID检索AuthS存储的相关数据, 由于之前已经保存了该B-TID的相关数据,因此检索成功。AuthS验证请求消
息中的nonce、 nc与存储的值是否一致,验证正确,则AuthS响应AS2的MRK请'求,累加记录项中的I1C的值。12、参照步骤7, AS2收到AuthS的响应后,产生对UE的响应消息,根 据MRK计算响应消息中的鉴权响应数据。UE对AS2的鉴权响应数据进行验 证,验证通过后对UE存储的nc进行累加,表示nonce已经用于一次请求消 息的鉴权。三、 鉴权不成功的过程之一 该流程参考图11,包括1 ~ 3、参照"二"中的步骤1 ~ 3。4、 AuthS接收到请求消息后,根据B-TID检索AuthS存储的相关数据, 如果检索失败,并且nc> 1;或者根据B-TID从BSF 4全索不到相关的参数; 或者检索成功,但是存储的nonce, nc与请求消息中的nonce和nc不一致, 则向AS返回错误原因,要求UE重新进行GBA过程,重新协商UE与应用服 务器之间的共享密钥数据。5、 AS发送错误响应消息401 Unauthorized给UE,消息中包含WWW-Authenticate头,其中nonce指示为NULL,用于指示UE重新开始GBA过程。6、 UE接收到响应消息,清除原有的GBA过程协商的共享密钥数据。7、 UE与BSF之间执行"一"中描述的GBA过程。GBA过程完成后, UE重新初始化鉴权需要的数据,用于重新向AS发起请求。8 ~ 13 、参照"二,,中的步骤2-7。四、 鉴权不成功的过程之二 该流程参考图12,包括1 ~ 3、参照"二"中的步骤1 ~ 3。4、 AuthS接收到请求消息后,如果根据B-TID检索AuthS存储的相关数 据失败,并且nc> 1;或者根据B-TID从BSF检索不到相关的参数;则参照 "三"中的步骤4进行处理。如果检索成功(包括检索AuthS存储成功和检索 BSF成功),存储有与B-TID对应的Ks,但是存储的nonce, nc与请求消息中 的nonce禾口 nc不一致,贝寸重新分國己nonce,并初始4b nc = 1 。5、 AuthS向AS返回错-溪原因和重新分配的nonce。6、 AS发送错误响应消息401 Unauthorized给UE,消息中包含WWW-Authenticate头,其中nonce指示为AuthS重新分配的nonce,用于指示UE重 新开始对AS的请求过程。7、 UE4妄收到响应消息,更新nonce、 nc。 8-11、参照"二"中的步骤9~12。以上对本发明实施例所提供的鉴权服务设备对请求消息的鉴权方法、应用 服务器对终端请求的鉴权方法、终端的鉴权方法以及相应的鉴权服务设备、应 用服务器和终端进行了详细介绍,本文中应用了具体个例对本发明的原理及实 施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核 心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施 方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本 发明的限制。
权利要求
1、一种对请求消息的鉴权方法,其特征在于,包括与终端协商密钥信息,为终端分配与所述密钥信息对应的鉴权事务标识和鉴权随机数;接收应用服务器的关联请求,所述关联请求携带有鉴权事务标识和鉴权随机数;根据所述关联请求携带的鉴权事务标识对所述关联请求携带的鉴权随机数进行验证;在验证通过后,查找与所述关联请求携带的鉴权事务标识对应的密钥信息,向所述应用服务器返回与所述关联请求对应的关联响应,所述关联响应携带有根据所述查找到的密钥信息生成的鉴权密钥。
2、 根据权利要求l所述的对请求消息的鉴权方法,其特征在于,所述根据 鉴权事务标识对鉴权随机数进行验证的步骤具体为查找与所述关联请求携带 的鉴权事务标识对应的鉴权随机数,验证所述关联请求携带的鉴权随机数与所 述查找到的鉴权随机数是否 一致;所述对请求消息的鉴权方法还包括在验证通过后,分配新的鉴权随机数 来更新所述查找到的鉴权随机数,所述关联响应还携带有所述新的鉴权随机 数,用于指示终端以所述新的鉴权随机数向下一个应用服务器发送认证请求。
3、 根据权利要求l所述的对请求消息的鉴权方法,其特征在于,所述关联 请求还携带有鉴权随机数的使用次数;所述根据鉴权事务标识对鉴权随机数进行验证的步骤具体为查找与所述 关联请求携带的鉴权事务标识对应的鉴权随机数及其使用次数,验证所述关联 请求携带的鉴权随机数及其使用次数与所述查找到的鉴权随机数及其使用次数是否一致;所述对请求消息的鉴权方法还包括在验证通过后,累加所述查找到的鉴 权随机数的使用次数。
4、 根据权利要求l-3任意一项所述的对请求消息的鉴权方法,其特征在 于,还包括在验证失败后,向所述应用服务器返回与所述关联请求对应的关联失败响 应,所述关联失败响应携带有表示验证失败要求终端重新进行密钥信息协商的 指示。 —
5、 根据权利要求l-3任意一项所述的对请求消息的鉴权方法,其特征在 于,还包括在验证失败后,判断是否存在与所述关联请求携带的鉴权事务标识对应的 密钥信息,若是,则重新分配鉴权随机数作为与所述关联请求携带的鉴权事务标识对 应的鉴权随机数,向所述应用服务器返回与所述关联请求对应的关联重置响 应,所述关联重置响应携带有所述重新分配的鉴权随机数,用于指示终端以所 述重新分配的鉴权随机数向所述应用服务器重新发送认证请求;若否,则向所述应用服务器返回与所述关联请求对应的关联失败响应,所 述关联失败响应携带有表示验证失败要求终端重新进行密钥信息协商的指示。
6、 一种应用服务器对终端请求的鉴权方法,其特征在于,包括 接收终端的认证请求,所述认证请求携带有鉴权事务标识和鉴权随机数; 根据所述认证请求向鉴权服务设备发送关联请求,所述关联请求携带有所述鉴权事务标识和所述鉴权随机数;接收所述鉴权服务设备返回的与所述关联请求对应的关联响应,所述关联 响应携带有鉴权密钥;向所述终端返回与所述认证请求对应的成功响应,所述成功响应携带有才艮 据所述鉴权密钥生成的鉴权响应数据。
7、 根据权利要求6所述的应用服务器对终端请求的鉴权方法,其特征在于, 所述关联响应还携带有新的鉴权随机数;所述向终端返回与认证请求对应的成功响应的步骤中,所述成功响应还携 带有所述新的鉴权随机数,用于指示终端以所述新的鉴权随机数向下一个应用 服务器发送认证请求。
8、 根据权利要求6所述的应用服务器对终端请求的鉴权方法,其特征在于, 所述认证请求还携带有鉴权随机数的使用次数;所述根据认证请求向鉴权服务设备发送关联请求的步骤中,所述关联请求 还携带有所述鉴权随机数的使用次数。
9、 根据权利要求6 ~ 8任意一项所述的应用服务器对终端请求的鉴权方法, 其特征在于所述认证请求还携带有鉴权该请求的服务器的域名;在收到终端的认证请求后,先确认所述认证请求携带的鉴权该请求的服务 器的域名为所述鉴权服务设备的域名,再向所述鉴权服务设备发送所述关联请 求。
10、 根据权利要求6 ~ 8任意一项所述的应用服务器对终端请求的鉴权方 法,其特征在于,还包括所述关联失败响应向所述终端返回与所述认-汪请求对应的失败响应,所述失败 响应携带有要求终端重新进行密钥信息协商的指示;或者,接收所述鉴权服务设备返回的与所述关联请求对应的关联重置响应,所述 关联重置响应携带有重新分配的与所述关联请求携带的鉴权事务标识对应的 鉴权随才几数;向所述终端返回与所述认证请求对应的重置响应,所述重置响应 携带有所述重新分配的鉴权随机数,用于指示所述终端以所述重新分配的鉴权随机数重新发送认i正请求。
11、 一种终端的鉴权方法,其特征在于,包括判断是否保存有密钥信息以及与所述密钥信息对应的鉴权事务标识和鉴 权随机数,若否,则与鉴权服务设备协商密钥信息,获得所述鉴权服务设备分配的与 所述密钥信息对应的鉴权事务标识和鉴权随机数;然后执行"若是"的步骤;若是,则向应用服务器发送认证请求,所述认证请求携带有所述鉴权事务 标识和所述鉴权随机数;接收所述应用服务器返回的与所述认证请求对应的成功响应,所述成功响 应携带有鉴权响应数据,根据所述密钥信息对所述鉴权响应数据进行验证。
12、 根据权利要求ll所述的终端的鉴权方法,其特征在于,所述成功响应 还携带有新的鉴权随机数;所述终端的鉴权方法还包括使用所述新的鉴权随机数来更新所保存的鉴 权随机数。
13、 根据权利要求ll所述的终端的鉴权方法,其特征在于,所述认证请求还携带有鉴权随机数的使用次数;所述终端的鉴权方法还包括在收到所述成功响应后,累加所保存的鉴权 随机数的使用次数。
14、 根据权利要求ll所述的终端的鉴权方法,其特征在于,还包括 接收所述应用服务器返回的与所述认证请求对应的失败响应,所述失败响应携带有要求终端重新进行密钥信息协商的指示;根据所述指示清除所保存的密钥信息以及对应的鉴权事务标识和鉴权随机数,重新与所述鉴权服务设备协 商密钥信息,然后以所述重新协商的密钥信息向所述应用服务器发送认证请 求。
15、 根据权利要求ll所述的终端的鉴权方法,其特征在于,还包括 接收所述应用服务器返回的与所述认证请求对应的重置响应,所述重置响应携带有重新分配的鉴权随机数;使用所述重新分配的鉴权随机数来更新所保 存的鉴权随机数,然后以所述重新分配的鉴权随机数向所述应用服务器发送认 证请求。
16、 一种鉴权服务设备,其特征在于,包括鉴权服务模块,用于与终端协商密钥信息,为终端分配与所述密钥信息对 应的鉴权事务标识和鉴权随机数;统一鉴权模块,用于接收应用服务器的关联请求,获得所述关联请求携带 的鉴权事务标识和鉴权随机数;根据所述关联请求携带的鉴权事务标识,按照 所述鉴权服务模块提供的数据对所述关联请求携带的鉴权随机数进行验证;在 验证通过后,查找与所述关联请求携带的鉴权事务标识对应的密钥信息,向所 述应用服务器返回与所述关联请求对应的关联响应,在所述关联响应中携带根 据所述查找到的密钥信息生成的鉴权密钥。
17、 根据权利要求16所述的鉴权服务设备,其特征在于 所述统一鉴权模块还用于,保存为验证所述关联请求携带的鉴权随机数从所述鉴权服务模块查询到的数据; 所述统一鉴权模块在对所述关联请求携带的鉴权随机数进行验证时,是先 在自身已保存的数据中查询,若查询不到再到所述鉴权服务模块中查询。
18、 根据权利要求17所述的鉴权服务设备,其特征在于 所述统一鉴权模块对关联请求携带的鉴权随机数进行验证,是对所述关联请求携带的鉴权随机数与自身所保存的鉴权随机数是否一致进行验证;所述统一鉴权模块还用于,在验证通过后,分配新的鉴权随机数来更新自 身所保存的鉴权随机数;在所述关联响应中携带所述新的鉴权随机数,用于指 示终端以所述新的鉴权随机数向下一个应用服务器发送认证请求。
19、 根据权利要求17所述的鉴权服务设备,其特征在于 所述统一鉴权模块还用于,获得所述关联请求携带的鉴权随机数的使用次数;所述统一鉴权模块对关联请求携带的鉴权随机数进行验证,是对所述关联 请求携带的鉴权随机数及其使用次数与自身所保存的鉴权随机数及其使用次 数是否一致进行验证;所述统一鉴权模块还用于,在验证通过后,累加自身所保存的鉴权随^L数 的使用次数。
20、 根据权利要求17所述的鉴权服务设备,其特征在于 所述统一鉴权模块还用于,在验证失败后,向所述应用服务器返回与所述关联请求对应的关联失败响应,在所述关联失败响应中携带表示验证失败要求 终端重新进行密钥信息协商的指示;或者,所述统一鉴权模块还用于,在验证失败后,判断是否存在与所述关联请求 携带的鉴权事务标识对应的密钥信息,若是,则重新分配鉴权随机数来更新自 身所保存的与所述关联请求携带的鉴权事务标识对应的鉴权随机数,向所述应 用服务器返回与所述关联请求对应的关联重置响应,在所述关联重置响应中携 带所述重新分配的鉴权随机数,用于指示终端以所述重新分配的鉴权随机数重 新向所述应用服务器发送认证请求;若否,则向所述应用服务器返回与所述关 联请求对应的所述关联失败响应。
21、 一种应用服务器,其特征在于,包括接口模块,用于接收终端的认证请求;向鉴权服务设备发送关联请求;接 收所述鉴权服务设备返回的与所述关联请求对应的关联响应;向所述终端返回 与所述i人证请求对应的成功响应;安全关联模块,用于获得所述认证请求中携带的鉴权事务标识和鉴权随机 数,根据所述认证请求生成所迷需要向鉴权服务设备发送的关联请求,在所述 关联请求中携带所述鉴权事务标识和所述鉴权随机数;获得所述关联响应携带 的鉴权密钥,根据所述关联响应携带的鉴权密钥生成鉴权响应数据/生成所述 需要向终端返回的成功响应,在所述成功响应中携带所述鉴权响应数据。
22、 根据权利要求21所述的应用服务器,其特征在于 所述安全关联模块还用于,获得所述认证请求中携带的鉴权该请求的服务器的域名,先确认所述认证请求携带的鉴权该请求的服务器的域名为所述鉴权 服务设备的域名,再生成所述需要向鉴权服务设备发送的关联请求。
23、 根据权利要求21所述的应用服务器,其特征在于所述接口模块还用于,接收所述鉴权服务设备返回的与所述关联请求对应 的关联失败响应或者关联重置响应;向所述终端返回与所述认证请求对应的失 败响应或者重置响应;所述安全关联模块还用于,根据所述关联失败响应生成所述需要向终端返 回的失败响应,所述失败响应携带有要求终端重新进行密钥信息协商的指示; 获得所述关联重置响应携带的重新分配的鉴权随机数,根据所述关联重置响应 生成所述需要向终端返回的重置响应,在所述重置响应中携带所述重新分配的 鉴权随机数,用于指示所述终端以所述重新分配的鉴权随机数重新发送认证请 求。
24、 一种终端,其特征在于,包括安全服务模块,用于与鉴权服务设备协商密钥信息,获得所述鉴权服务设 备分配的与所述密钥信息对应的鉴权事务标识和鉴权随机数;应用服务模块,用于向应用服务器发起认证请求,在所述认证请求中携带 所述鉴权事务标识和所述鉴权随机数;获得所述应用服务器返回的与所述认证 请求对应的成功响应,获得所述成功响应中携带的鉴权响应数据,根据所述密 钥信息对所述鉴权响应数据进行验证;鉴权控制模块,用于在需要向应用服务器发送认证请求时,判断是否保存有密钥信息以及与所述密钥信息对应的鉴权事务标识和鉴权随机lt;若否,则 控制所述安全服务模块获取所需数据;若是,则控制所述应用服务模块发起认 证请求。
25、 根据权利要求24所述的终端,其特征在于所述应用服务模块还用于,从所述成功响应中获得新的鉴权随机数; 所述鉴权控制模块还用于,使用所述新的鉴权随机数来更新所保存的鉴权 随机数。
26、 根据权利要求24所述的终端,其特征在于所述应用服务模块还用于,在所述认证请求中携带鉴权随机数的使用次数;所述鉴权控制模块还用于,在所述应用服务模块获得所述成功响应后,累 加所保存的鉴权随机数的使用次数。
27、 根据权利要求24所述的终端,其特征在于所述应用服务模块还用于,获得所述应用服务器返回的与所述认证请求对 应的失败响应,获得所述失败响应中携带的要求终端重新进行密钥信息协商的 指示;所述鉴权控制模块还用于,根据所述失败响应的指示清除所保存的密钥信 息以及对应的鉴权事务标识和鉴权随机数,控制所述安全服务模块重新获取所 需数据,然后控制所述应用服务模块重新发起认证请求。
28、 根据权利要求24所述的终端,其特征在于所述应用服务模块还用于,获得所述应用服务器返回的与所述认证请求对 应的重置响应,获得所述重置响应中携带的重新分配的鉴权随机数;所述鉴权控制才莫块还用于,使用所述重新分配的鉴权随机数来更新所保存 的鉴权随机数,然后控制所述应用服务模块重新发起认证请求。
全文摘要
本发明公开了对请求消息的鉴权方法,由鉴权服务设备对鉴权随机数进行集中分配和管理,当终端使用受保护业务时,只需要执行一次密钥协商过程,即可按照鉴权随机数的使用策略,依次完成与多个应用服务器的鉴权。本发明还提供相应的鉴权服务设备、应用服务器和终端。本发明简化了终端与应用之间的鉴权过程,提高了应用响应的速度。
文档编号H04L9/32GK101163010SQ20071016598
公开日2008年4月16日 申请日期2007年11月14日 优先权日2007年11月14日
发明者超 孙 申请人:华为软件技术有限公司