基于SIP的鉴权密码修改方法、用户代理服务器和用户代理客户端转让专利

申请号 : CN200610138097.8

文献号 : CN1972290B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 吴东君

申请人 : 华为技术有限公司

摘要 :

一种基于SIP的鉴权密码修改方法、用户代理服务器和客户端。用户代理服务器根据用户代理客户端传输来的鉴权修改信息进行鉴权密码的修改,在需要对用户代理客户端进行鉴权处理时,用户代理服务器根据修改后的鉴权密码进行鉴权。本发明中的用户代理客户端能够对用户代理服务器中存储的鉴权密码进行修改,明确了用户代理客户端鉴权通过后、对用户代理服务器的鉴权密码进行修改的流程,满足了用户修改鉴权密码的需求;从而实现了完善SIP的鉴权流程、提高用户满意度的目的。

权利要求 :

1.一种基于SIP的鉴权密码修改方法,其特征在于,包括:用户代理客户端将鉴权修改信息传输至用户代理服务器;

用户代理服务器根据用户代理客户端传输来的鉴权修改信息进行鉴权密码的修改;

所述鉴权修改信息包括:修改鉴权密码操作类型、旧鉴权密码和新鉴权密码,且所述用户代理服务器进行鉴权密码修改的步骤包括:用户代理服务器根据用户代理客户端传输来的修改鉴权密码操作类型对用户代理客户端传输来的旧鉴权密码进行鉴权,并在确认旧鉴权密码鉴权成功后,将旧鉴权密码修改为用户代理客户端传输来的新鉴权密码;

或者所述鉴权修改信息包括:修改鉴权密码操作类型和新鉴权密码,且所述用户代理服务器进行鉴权密码修改的步骤包括:用户代理服务器在确定用户代理客户端传输来修改鉴权密码操作类型信息、且用户代理客户端在线时,将用户代理客户端的旧鉴权密码修改为用户代理客户端传输来的新鉴权密码;

所述修改鉴权密码操作类型、旧鉴权密码、新鉴权密码承载于鉴权头域的鉴权挑战参数、或者鉴权挑战响应参数中。

2.如权利要求1所述的方法,其特征在于:

在所述鉴权修改信息中包括旧鉴权密码的情况下,所述鉴权修改信息中的旧鉴权密码为:加密后的旧鉴权密码;和/或在所述鉴权修改信息中包括新鉴权密码的情况下,所述鉴权修改信息中的新鉴权密码为:加密后的新鉴权密码;

当所述新鉴权密码为:加密后的新鉴权密码时,所述鉴权修改信息还包括:新鉴权密码的加密类型。

3.如权利要求2所述的方法,其特征在于在所述鉴权修改信息中包括旧 鉴权密码的情况下:所述用户代理服务器进行鉴权密码修改的步骤包括:

用户代理客户端获取旧鉴权密码的加密密钥、新鉴权密码的加密类型;

用户代理客户端根据旧鉴权密码的加密密钥对旧鉴权密码进行加密、根据新鉴权密码的加密类型对新鉴权密码进行加密,并将加密后的鉴权密码、或者将修改鉴权密码操作类型和加密后的鉴权密码传输至用户代理服务器;

用户代理服务器在确认旧鉴权密码鉴权正确后,将旧鉴权密码修改为新鉴权密码,保存新鉴权密码的加密类型,并向用户代理客户端返回鉴权密码修改成功的消息;

或者在所述鉴权修改信息中不包括旧鉴权密码的情况下,所述用户代理服务器进行鉴权密码修改的步骤包括:用户代理客户端获取新鉴权密码的加密类型;

用户代理客户端根据新鉴权密码的加密类型对新鉴权密码进行加密,并将加密后的鉴权密码、或者将修改鉴权密码操作类型和加密后的鉴权密码传输至用户代理服务器;

用户代理服务器将旧鉴权密码修改为新鉴权密码,保存新鉴权密码的加密类型,并向用户代理客户端返回鉴权密码修改成功的消息。

4.如权利要求3所述的方法,其特征在于,所述获取新鉴权密码的加密类型的步骤包括:用户代理客户端将修改鉴权密码操作类型承载于注册请求消息中传输至用户代理服务器;

用户代理服务器在接收到修改鉴权密码操作类型时,将新鉴权密码的加密类型、或者将修改鉴权密码操作类型和新鉴权密码的加密类型承载于注册请求消息的响应消息中传输至用户代理客户端。

5.如权利要求3所述的方法,其特征在于,所述将旧鉴权密码修改为新 鉴权密码的步骤具体为:用户代理服务器根据新鉴权密码的加密类型对新鉴权密码进行解密,将旧鉴权密码修改为解密后的新鉴权密码;或用户代理服务器将旧鉴权密码修改为加密后的新鉴权密码。

6.如权利要求1所述的方法,其特征在于,所述方法还包括:用户代理服务器在确认旧鉴权密码鉴权失败时,向用户代理客户端返回鉴权密码修改失败的消息;

在鉴权密码修改失败后,且需要对用户代理客户端进行鉴权处理时,用户代理服务器根据原有鉴权密码进行鉴权。

7.一种用户代理服务器,其特征在于,所述用户代理服务器中设置有鉴权密码修改模块;或者所述用户代理服务器中设置有鉴权密码修改模块和鉴权模块;

鉴权密码修改模块:用于接收用户代理客户端传输来的鉴权修改信息,并根据鉴权修改信息对鉴权密码进行修改;

鉴权模块:用于根据鉴权密码修改模块修改后的鉴权密码对用户代理客户端进行鉴权处理;

若所述鉴权修改信息包括修改鉴权密码操作类型、旧鉴权密码和新鉴权密码,则所述鉴权模块根据修改鉴权密码操作类型对旧鉴权密码进行鉴权,并在确认旧鉴权密码鉴权成功后,通知鉴权密码修改模块;鉴权密码修改模块接收到鉴权模块的通知后,将旧鉴权密码修改为用户代理客户端传输来的新鉴权密码;或者若所述鉴权修改信息包括修改鉴权密码操作类型和新鉴权密码,则鉴权密码修改模块在确定用户代理客户端在线时,根据修改鉴权密码操作类型将用户代理客户端的旧鉴权密码修改为用户代理客户端传输来的新鉴权密码;

所述修改鉴权密码操作类型、旧鉴权密码、新鉴权密码承载于鉴权头域的 鉴权挑战参数、或者鉴权挑战响应参数中。

8.一种用户代理客户端,其特征在于,所述用户代理客户端中设置有请求修改模块;

请求修改模块:用于将鉴权修改信息发送至用户代理服务器;

请求修改模块获取旧鉴权密码的加密密钥、新鉴权密码的加密类型,并根据旧鉴权密码的加密密钥对旧鉴权密码进行加密、根据新鉴权密码的加密类型对新鉴权密码进行加密,并将加密后的旧鉴权密码和加密后的新鉴权密码传输至用户代理服务器,或者将修改鉴权密码操作类型、加密后的旧鉴权密码和加密后的新鉴权密码传输至用户代理服务器;

或者

请求修改模块获取新鉴权密码的加密类型,并根据新鉴权密码的加密类型对新鉴权密码进行加密,并将加密后的新鉴权密码、或者将修改鉴权密码操作类型和加密后的新鉴权密码传输至用户代理服务器;

所述修改鉴权密码操作类型、旧鉴权密码、新鉴权密码承载于鉴权头域的鉴权挑战参数、或者鉴权挑战响应参数中。

说明书 :

基于SIP的鉴权密码修改方法、用户代理服务器和用户代

理客户端

技术领域

[0001] 本发明涉及网络通讯技术领域,具体涉及一种基于SIP的鉴权密码修改方法、用户代理服务器和用户代理客户端。

背景技术

[0002] SIP域的组网图如附图1所示。图1中,发出请求消息的逻辑实体称为UAC(User Agent Client,用户代理客户端),接受请求消息并发出响应消息的逻辑实体称为UAS(User Agent Server,用户代理服务器)。
[0003] 当UAS收到一个请求消息时,如果需要对这个请求消息进行鉴权,就会检查请求消息中是否携带有鉴权信息(credentials)。当UAS确定请求消息中没有携带鉴权信息时,向UAC发出401未鉴权(Unauthorized)的响应消息或者向UAC发出407代理鉴权请求(Proxy Authentication Required)的响应消息,且响应消息中携带鉴权参数。UAC根椐响应消息中的鉴权参数重新生成鉴权信息,并将其放在请求消息中发给UAS,UAS根据请求消息中的鉴权信息重新进行鉴权。
[0004] 目前还不能够对UAS的鉴权密码进行修改,如果用户需要修改SIP电话的鉴权密码,则不能够实现。SIP的鉴权流程还需要进一步的完善。

发明内容

[0005] 本发明的目的在于,提供一种基于SIP的鉴权密码修改方法、用户代理服务器和用户代理客户端,明确了用户代理客户端鉴权通过后、对用户代理服务器 的鉴权密码进行修改的流程,完善了SIP的鉴权流程。
[0006] 为达到上述目的,本发明提供的一种基于SIP的鉴权密码修改方法,包括: [0007] 用户代理客户端将鉴权修改信息传输至用户代理服务器;
[0008] 用户代理服务器根据用户代理客户端传输来的鉴权修改信息进行鉴权密码的修改。
[0009] 下述方法技术方案为可选技术方案。
[0010] 所述鉴权修改信息包括:修改鉴权密码操作类型、旧鉴权密码和新鉴权密码,且所述用户代理服务器进行鉴权密码修改的步骤包括:
[0011] 用户代理服务器根据用户代理客户端传输来的修改鉴权密码操作类型对用户代理客户端传输来的旧鉴权密码进行鉴权,并在确认旧鉴权密码鉴权成功后,将旧鉴权密码修改为用户代理客户端传输来的新鉴权密码;
[0012] 或者所述鉴权修改信息包括:修改鉴权密码操作类型和新鉴权密码,且所述用户代理服务器进行鉴权密码修改的步骤包括:
[0013] 用户代理服务器在确定用户代理客户端传输来修改鉴权密码操作类型信息、且用户代理客户端在线时,将用户代理客户端的旧鉴权密码修改为用户代理客户端传输来的新鉴权密码。
[0014] 所述鉴权修改信息中的旧鉴权密码为:加密后的旧鉴权密码;和/或 [0015] 所述鉴权修改信息中的新鉴权密码为:加密后的新鉴权密码; [0016] 当所述新鉴权密码为:加密后的新鉴权密码时,所述鉴权修改信息还包括:新鉴权密码的加密类型。
[0017] 所述用户代理服务器进行鉴权密码修改的步骤包括:
[0018] 用户代理客户端获取旧鉴权密码的加密密钥、新鉴权密码的加密类型; [0019] 用户代理客户端根据旧鉴权密码的加密密钥对旧鉴权密码进行加密、根据新鉴权密码的加密类型对新鉴权密码进行加密,并将加密后的鉴权密码、或者将修改鉴权密码操作类型和加密后的鉴权密码传输至用户代理服务器;
[0020] 用户代理服务器在确认旧鉴权密码鉴权正确后,将旧鉴权密码修改为新鉴权密码,保存新鉴权密码的加密类型,并向用户代理客户端返回鉴权密码修改成功的消息; [0021] 或者所述用户代理服务器进行鉴权密码修改的步骤包括:
[0022] 用户代理客户端获取新鉴权密码的加密类型;
[0023] 用户代理客户端根据新鉴权密码的加密类型对新鉴权密码进行加密,并将加密后的鉴权密码、或者将修改鉴权密码操作类型和加密后的鉴权密码传输至用户代理服务器; [0024] 用户代理服务器将旧鉴权密码修改为新鉴权密码,保存新鉴权密码的加密类型,并向用户代理客户端返回鉴权密码修改成功的消息。
[0025] 所述获取新鉴权密码的加密类型的步骤包括:
[0026] 用户代理客户端将修改鉴权密码操作类型承载于注册请求消息中传输至用户代理服务器;
[0027] 用户代理服务器在接收到修改鉴权密码操作类型时,将新鉴权密码的加密类型、或者将修改鉴权密码操作类型和新鉴权密码的加密类型承载于注册请求消息的响应消息中传输至用户代理客户端。
[0028] 所述将旧鉴权密码修改为新鉴权密码的步骤具体为:
[0029] 用户代理服务器根据新鉴权密码的加密类型对新鉴权密码进行解密,将旧鉴权密码修改为解密后的新鉴权密码;或
[0030] 用户代理服务器将旧鉴权密码修改为加密后的新鉴权密码。
[0031] 所述修改鉴权密码操作类型、旧鉴权密码、新鉴权密码承载于鉴权头域的鉴权挑战参数、或者鉴权挑战响应参数中。
[0032] 所述方法还包括:
[0033] 用户代理服务器在确认旧鉴权密码鉴权失败时,向用户代理客户端返回鉴权密码修改失败的消息;
[0034] 在鉴权密码修改失败后,且需要对用户代理客户端进行鉴权处理时,用户代理服务器根据原有鉴权密码进行鉴权。
[0035] 本发明还提供一种用户代理服务器,所述用户代理服务器中设置有鉴权密码修改模块;或者所述用户代理服务器中设置有鉴权密码修改模块和鉴权模块; [0036] 鉴权密码修改模块:用于接收用户代理客户端传输来的鉴权修改信息,并根据鉴权修改信息对鉴权密码进行修改;
[0037] 鉴权模块:用于根据鉴权密码修改模块修改后的鉴权密码对用户代理客户端进行鉴权处理。
[0038] 下述用户代理服务器的技术方案为可选技术方案。
[0039] 鉴权模块根据鉴权修改信息对用户代理客户端传输来的鉴权修改信息中的旧鉴权密码进行鉴权,并在确认旧鉴权密码鉴权成功后,通知鉴权密码修改模块;鉴权密码修改模块接收到鉴权模块的通知后,将旧鉴权密码修改为用户代理客户端传输来的鉴权修改信息中的新鉴权密码;或者
[0040] 鉴权密码修改模块在确定用户代理客户端在线时,根据用户代理客户端传输来的鉴权修改信息将用户代理客户端的旧鉴权密码修改为用户代理客户端传输来的鉴权修改信息中的新鉴权密码。
[0041] 本发明还提供一种用户代理客户端,所述用户代理客户端中设置有请求修改模块;
[0042] 请求修改模块:用于将鉴权修改信息发送至用户代理服务器。 [0043] 下述用户代理客户端的技术方案为可选技术方案。
[0044] 请求修改模块获取旧鉴权密码的加密密钥、新鉴权密码的加密类型,并根据旧鉴权密码的加密密钥对旧鉴权密码进行加密、根据新鉴权密码的加密类型对新鉴权密码进行加密,并将加密后的鉴权密码、或者将修改鉴权密码操作类型和加密后的鉴权密码传输至用户代理服务器;或者
[0045] 请求修改模块获取新鉴权密码的加密类型,并根据新鉴权密码的加密类型对新鉴权密码进行加密,并将加密后的鉴权密码、或者将修改鉴权密码操作类型和加密后的鉴权密码传输至用户代理服务器。
[0046] 通过上述技术方案的描述可知,本发明通过用户代理客户端与用户代理服务器之间的鉴权密码修改信息的传输,使用户代理客户端能够对用户代理服务器中存储的鉴权密码进行修改,明确了用户代理客户端鉴权通过后、对用户代理服务器的鉴权密码进行修改的流程,满足了用户修改鉴权密码的需求;在修改鉴权密码过程中,通过在用户代理客户端与用户代理服务器之间传输加密后的旧鉴权密码、新鉴权密码,保证了鉴权密码修改过程中的安全性;本发明的鉴权密码修改信息承载于消息的鉴权头域中,方便了鉴权密码的修改实现过程;从而通过本发明提供的技术方案实现了完善SIP的鉴权流程、提高用户满意度的目的。

附图说明

[0047] 图1是SIP域的组网图示意图;
[0048] 图2是本发明实施方式一的在SIP注册过程中的鉴权密码修改的流程图; [0049] 图3是本发明实施方式二的鉴权密码修改的流程图。

具体实施方式

[0050] 下面对本发明实施方式提供的技术方案做进一步的描述。
[0051] 在本发明实施方式中,用户代理客户端和用户代理服务器之间可以采用直接连接方式、也可以采用间接连接方式。
[0052] 本发明实施方式的用户代理服务器在修改鉴权密码时,首先需要将鉴权修改信息传输至用户代理服务器,鉴权修改信息包括:修改鉴权密码操作类型、 旧鉴权密码和新鉴权密码。当新鉴权密码为加密的新鉴权密码时,鉴权修改信息还包括:新鉴权密码的加密类型。这里的修改是广义含义中的修改,不仅仅指将原来设置的多位鉴权密码修改为其它多位鉴权密码,还包括:在原有设置了鉴权密码的情况下,删除原有设置的鉴权密码,在原有没有设置鉴权密码的情况下,增加设置鉴权密码等。
[0053] 本发明实施方式中的用户代理客户端和用户代理服务器之间可利用鉴权挑战请求参数和鉴权挑战响应参数来实现鉴权密码的修改。这样,上述鉴权修改信息可承载于鉴权头域中。当一个消息中携带有鉴权挑战请求参数时,该消息可以称为鉴权挑战请求消息。当一个消息中携带有鉴权挑战响应参数时,该消息可以称为鉴权挑战响应消息。本发明实施方式可以对鉴权头域中的鉴权挑战参数和鉴权挑战响应参数进行扩展,即在鉴权挑战参数中增加修改鉴权密码操作类型和新鉴权密码的加密类型,在鉴权挑战响应参数中增加修改鉴权密码操作类型、新鉴权密码的加密类型和新鉴权密码。
[0054] 鉴权头域中,扩展后的鉴权挑战参数可以为如下形式:
[0055] challenge=″Digest″digest-challenge
[0056] digest-challenge=1#(realm|[domain]|nonce|
[0057] [opaque]|[stale]|[algorithm]|
[0058] [qop-options]|[auth-param])
[0059] [passwordop]|[passwordencmethod])
[0060] 其中:passwordop为修改鉴权密码操作类型,passwordencmethod为新鉴权密码的加密类型。Passwordop和passwordencmethod为新增加的参数。
[0061] 鉴权头域中,扩展后的鉴权挑战响应参数可以为如下形式:
[0062] credentials=″Digest″digest-response
[0063] digest-response=1#(username|realm|nonce|digest-uri
[0064] |response|[algorithm]|[cnonce]|
[0065] [opaque]|[message-qop]|
[0066] [nonce-count]|[auth-param]|
[0067] [passwordop]|[passwordnew])
[0068] passwordop =″passwordop″″=″operation-tags [0069] operation-tags =″add″/″change″/″delete″
[0070] passwordencmethod =″passwordencmethod″″=″encryption-method [0071] encryption-method =″XOR″/″DES″/″3DES″/″RC5″/″AES″/″NONE″
[0072] passwordnew =″passwordnew″″=″quoted-string [0073] 其中,passwordop为修改鉴权密码操作类型,passwordencmethod为新鉴权密码的加密类型,passwordnew表示加密后的新鉴权密码。Passwordop、passwordencmethod和passwordnew为新增加的参数。
[0074] Passwordop的取值可以为增加(add)、修改(change)、删除(delete)等;passwordencmethod的取值只能为UAC与UAS都能支持的加密类型,当新鉴权密码的加密类型为不加密时,passwordencmethod的取值为NONE。
[0075] 下面以注册流程为例,结合附图2对本发明实施方式一的修改鉴权密码的流程进行描述。
[0076] 在步骤3-1、UAC在REGISTER请求消息中携带参数passwordop,表示需要修改鉴权密码。
[0077] REGISTER请求消息中的鉴权参数可以为如下格式:
[0078] Authorization:Digest username=″7770000″,realm=″huawei.com″, [0079] uri=″sip:182.20.90.100:5060″,integrity-protected=no, [0080] passwordop=change
[0081] UAC将REGISTER请求消息传输至UAS。
[0082] 到步骤3-2、UAS根据REGISTER请求消息中的passwordop=change确定UAC需要修改密码,UAS将承载有passwordop和passwordencmethod的鉴权挑战参数传输至UAC。Passwordop的取值为change,表示确认对鉴权密码的修改,passwordencmethod参数携带有新鉴权密码的加密类型。
[0083] 鉴权挑战参数可以为如下形式:
[0084] WWW-Authenticate:Digest realm=″huawei.com″,
[0085] nonce=″073fcad97db5e337495e0a91bb2faafe″,domain=″sip:huawei.com″,
[0086] stale=false,algorithm=MD5,passwordop=change,passwordencmethod=XOR
[0087] 其中:新鉴权密码的加密类型为XOR(异或)。
[0088] 在上述步骤3-2中,UAS传输至UAC的鉴权挑战参数中也可以不包含Passwordop。 [0089] 到步骤3-3、UAC根椐nonce对旧鉴权密码进行加密,根椐passwordencmethod对新鉴权密码进行加密,并将携带有nonce和passwordencmethod等鉴权挑战响应参数的REGISTER请求消息再次发送至UAS。该步骤中的REGISTER请求消息可以称为鉴权挑战响应消息。
[0090] REGISTER请求消息中的鉴权挑战响应参数可以为如下形式:
[0091] Authorization:Digest username=″7770000″,realm=″huawei.com″, [0092] nonce = ″ 073fcad97db5e337495e0a91bb2faafe ″,uri = ″ sip:182.20.90.100:5060″,
[0093] response=″96e6a45b003a1f32e496a9b72354b2b1″,integrity-protected=no,
[0094] passwordop=change,passwordnew=″09090909″
[0095] 其中,加密后的新鉴权密码为09090909。
[0096] 在上述步骤3-3中,UAC传输至UAS的鉴权挑战响应参数中也可以不包含Passwordop。
[0097] 到步骤3-4、UAS再次接收到REGISTER请求消息时,对这个REGISTER请求消息进行鉴权处理,即先验证旧鉴权密码是否正确,在旧鉴权密码验证正确后,同意对鉴权密码的修改。UAS可以直接根据新鉴权密码的加密类型对新鉴权密码进行解密,用解密后的新鉴权密码替代旧鉴权密码,并保存新鉴权密码的加密类型,UAS也可以在修改鉴权密码的过程中不对新鉴权密码进行解密,直接用加密后的新鉴权密码替代旧鉴权密码,并保存新鉴权密码的加密类型,在以后的鉴权过程中再根据新鉴权密码的加密类型对新鉴权密码进行解密。
[0098] UAS在鉴权密码修改成功后,向UAC响应200消息。
[0099] UAC在接收到200消息后,鉴权密码修改的过程结束。此后,当UAC和UAS再次需要鉴权时,应根据修改后的鉴权密码进行鉴权处理。
[0100] 在步骤3-4中,如果由于旧鉴权密码验证失败等原因,使UAS拒绝对旧鉴权密码进行修改时,UAS可以向UAC发送鉴权密码修改失败的信息,此后,当UAC和UAS再次需要鉴权时,仍根据原设置的、未修改的鉴权密码进行鉴权处理。
[0101] 上面的实施例中是以REGISTER消息为例对实现鉴权密码修改过程进行说明的,本发明实施方式中的UAC和UAS之间也可以通过其他消息中携带鉴权修改信息,并通过一个或多个请求消息的交互实现鉴权密码的修改过程,而且,本发明实施方式也可以通过扩展其他头域参数来承载鉴权修改信息,其基本实现原理均相同,在此仅以旧鉴权密码校验过程和鉴权密码修改过程分离为例对本发明实施方式进行说明,对其他实施方式不再详细描述。
[0102] 在上面的实施方式中,旧鉴权密码校验过程与鉴权密码的修改过程是基于同一个消息的传输实现的。在下面的实施方式二中,旧鉴权密码校验过程和鉴权密钥修改过程是分成两步完成的,即先对旧鉴权密码进行校验,校验成功表示用户代理客户端在线,然后,在用户代理客户端在线的情况下,再对旧鉴权密码进行修改。本发明实施方式二的具体实现流程如图3所示。
[0103] 图3中,步骤4-1、UAC发送RFGISTER请求消息,REGISTER请求消息中没有携带参数passwordop,或者REGISTER请求消息中不携带Authorization(鉴权)头域。 [0104] REGISTER请求消息中的鉴权挑战响应参数可以为如下格式:
[0105] Authorization:Digest username=″7770000″,realm=″huawei.com″, [0106] uri=″sip:182.20.90.100:5060″.
[0107] 到步骤4-2、UAS接收到REGISTER请求消息、并确定REGISTER请求消息中没有携带鉴权信息后,向UAC返回401未鉴权的响应消息,要求UAC进行鉴权。401未鉴权的响应消息中携带有加密算法(algorithm参数)、加密随机数(nonce参数)。
[0108] 401未鉴权的响应消息中的鉴权参数可以为如下格式:
[0109] WWW-Authenticate:Digest realm=″huawei.com″,
[0110] nonce=″073fcad97db5e337495e0a91bb2faafe″,domain=″sip:huawei.com″,
[0111] stale=false,algorithm=MD5
[0112] 到步骤4-3、UAC接收到401未鉴权的响应消息后,将旧鉴权密码进行加密,然后,将加密后的旧鉴权密码通过REGISTER请求消息发送给UAS。
[0113] 此时,REGISTER请求消息中的鉴权参数可以为如下格式:
[0114] Authorization:Digest username=″7770000″,realm=″huawei.com″, [0115] nonce = ″ 073fcad97db5e337495e0a91bb2faafe ″,uri = ″ sip:182.20.90.100:5060″,
[0116] response=″96e6a45b003a1f32e496a9b72354b2b1″
[0117] 其中,response参数是加密后的旧鉴权密码。
[0118] 到步骤4-4、UAS再次接收到REGISTER请求消息后,对旧鉴权密码进行校验,密码校验成功后,向UAC返回校验成功的200消息,UAC注册成功。
[0119] 在UAC注册成功且UAC在线的情况下,UAC可直接对鉴权密码进行修改。 [0120] 到步骤4-5、UAC发送REGISTER请求消息,该REGISTER请求消息中携带有参数passwordop,以表示需要修改鉴权密码。REGISTER请求消息中的Call-ID与步骤4-1的REGISTER请求消息中的Call-ID一致,以表示UAC在线。
[0121] REGISTER请求消息中的鉴权挑战响应参数可以为如下格式:
[0122] Authorization:Digest username=″7770000″,realm=″huawei.com″, [0123] uri=″sip:182.20.90.100:5060″,
[0124] passwordop=change
[0125] Call-ID:eal5d9a8110b07786af504b01fbda18b
[0126] 到步骤4-6、UAS根据接收的REGISTER请求消息中的passwordop=change确定UAC需要修改鉴权密码,在UAC在线的情况下,UAS将承载有passwordop 和passwordencmethod的鉴权挑战参数传输至UAC。其中,Passwordop的取值为change,表示确认对鉴权密码的修改,passwordencmethod参数携带有新鉴权密码的加密类型。 [0127] 鉴权挑战参数可以为如下形式:
[0128] WWW-Authenticate:Digest realm=″huawei.com″,
[0129] domain=″sip:huawei.com″,stale=false,
[0130] passwordop=change,passwordencmethod=XOR
[0131] 在上述步骤4-6中,UAS传输至UAC的鉴权挑战参数中也可以不包含Passwordop。 [0132] 到步骤4-7、UAC根据鉴权挑战消息中的passwordencmethod对新鉴权密码进行加密,并将REGISTER请求消息再次发送至UAS,REGISTER请求消息中携带有加密后的新鉴权密码passwordnew。
[0133] REGISTER请求消息中的鉴权挑战响应参数可以为如下形式:
[0134] Authorization:Digest username=″7770000″,realm=″huawei.com″, [0135] uri=″sip:182.20.90.100:5060″,
[0136] passwordop=change,passwordnew=″09090909″
[0137] 在上述步骤4-7中,UAC传输至UAS的鉴权挑战响应参数中也可以不包含Passwordop。
[0138] 到步骤4-8、UAS从接收的REGISTER请求消息中获取新鉴权密码,在UAC在线的情况下,将新鉴权密码保存下来,完成对鉴权密码的修改,向UAC响应200消息。UAS保存的新鉴权密码可以为解密后的新鉴权密码,也可以为加密后的新鉴权密码。 [0139] 下面对本发明实施方式的用户代理服务器和用户代理客户端进行描述。 [0140] 用户代理服务器中设置有鉴权密码修改模块和鉴权模块,用户代理客户端中设置有请求修改模块。
[0141] 请求修改模块主要用于将鉴权修改信息发送至用户代理服务器。请求修改 模块发送的鉴权修改信息可以包括:修改鉴权密码操作类型、旧鉴权密码和新鉴权密码;在某些情况下,如当用户代理客户端在线的时候,鉴权修改信息也可以包括:修改鉴权密码操作类型和新鉴权密码。
[0142] 请求修改模块可以将鉴权修改信息通过注册请求消息传输至用户代理服务器。请求修改模块可以将鉴权修改信息一起发送至用户代理服务器,也可以将鉴权修改信息分次传输至用户代理服务器。
[0143] 鉴权密码修改模块主要用于接收请求修改模块传输来的鉴权修改信息,并根据接收的鉴权修改信息对用户代理客户端的鉴权密码进行修改。在鉴权密码修改模块对鉴权密码成功修改后,鉴权模块根据修改后的鉴权密码对用户代理客户端进行鉴权处理;在鉴权密码修改模块对鉴权密码修改失败后,鉴权模块根据未修改的鉴权密码对用户代理客户端进行鉴权处理。
[0144] 下面以两个具体的修改鉴权密码的流程为例对本发明实施方式中的各模块进行说明。
[0145] 实施方式一:首先,请求修改模块将携带有passwordop=change的REGISTER请求消息发送至鉴权密码修改模块。
[0146] 鉴权密码修改模块根据REGISTER请求消息中的passwordop=change确定UAC需要修改密码,鉴权密码修改模块将承载有passwordop和passwordencmethod等鉴权挑战参数的REGISTER请求消息的响应消息传输至UAC。其中,Passwordop的取值为change,表示确认对鉴权密码的修改,passwordencmethod参数携带有新鉴权密码的加密类型。鉴权密码修改模块发送至用户代理客户端的REGISTER请求消息的响应消息中也可以不包含passwordop。
[0147] 请求修改模块在用户代理客户端接收后鉴权挑战参数后,对旧鉴权密码进行加密,并根椐passwordencmethod对新鉴权密码进行加密,然后,请求修改模块将携带有nonce和passwordencmethod等鉴权挑战响应参数的REGISTER请求 消息发送至UAS。 [0148] 鉴权模块在UAS接收到REGISTER请求消息后,对REGISTER请求消息进行鉴权处理,即先验证旧鉴权密码是否正确,在旧鉴权密码验证正确后,通知鉴权密码修改模块对鉴权密码进行修改。
[0149] 鉴权密码修改模块在接收到鉴权模块的通知后,根据REGISTER请求消息中的新鉴权密码的加密类型对新鉴权密码进行解密,用解密后的新鉴权密码替代旧鉴权密码,并保存新鉴权密码的加密类型;鉴权密码修改模块也可以在修改鉴权密码的过程中不对新鉴权密码进行解密,直接用加密后的新鉴权密码替代旧鉴权密码,并保存新鉴权密码的加密类型,这样,在鉴权模块以后的鉴权过程中,由鉴权模块根据新鉴权密码的加密类型对新鉴权密码进行解密。
[0150] 鉴权密码修改模块在鉴权密码修改成功后,向用户代理客户端响应200消息。此后,当鉴权模块需要对用户代理客户端进行鉴权时,应根据鉴权密码修改模块修改后的鉴权密码进行鉴权处理。
[0151] 如果由于旧鉴权密码验证失败等原因,使鉴权密码修改模块拒绝对旧鉴权密码进行修改,则鉴权密码修改模块向用户代理客户端发送鉴权密码修改失败的信息,此后,鉴权模块需要对用户代理客户端进行鉴权时,仍根据原设置的、未修改的鉴权密码进行鉴权处理。
[0152] 实施方式二:在用户代理客户端在线的情况下,修改鉴权密码。 [0153] 在用户代理客户端在线的情况下,请求修改模块向用户代理服务器发送REGISTER请求消息,该REGISTER请求消息中携带有参数passwordop,以表示需要修改鉴权密码。REGISTER请求消息中的Call-ID表示用户代理客户端在线。
[0154] 鉴权密码修改模块根据用户代理服务器接收的REGISTER请求消息中的passwordop=change确定UAC需要修改鉴权密码,鉴权密码修改模块在确定用户代理客户端在线的情况下,将承载有passwordop和passwordencmethod的鉴权挑战参数传输至用户代理客户端。其中,Passwordop的取值为change,表示确认对鉴权密码的修改,passwordencmethod参数携带有新鉴权密码的加密类型。鉴权密码修改模块发送至用户代理客户端的REGISTER请求消息的响应消息中也可以不包含passwordop。 [0155] 请求修改模块根据鉴权挑战消息中的passwordencmethod对新鉴权密码进行加密,并将REGISTER请求消息再次发送至用户代理服务器,REGISTER请求消息中携带有加密后的新鉴权密码passwordnew。
[0156] 鉴权密码修改模块从用户代理服务器再次接收的REGISTER请求消息中获取新鉴权密码,将新鉴权密码保存下来,完成对鉴权密码的修改,向用户代理客户端响应200消息。鉴权密码修改模块保存的新鉴权密码可以为解密后的新鉴权密码,也可以为加密后的新鉴权密码。此后,当鉴权模块需要对用户代理客户端进行鉴权时,应根据鉴权密码修改模块修改后的鉴权密码进行鉴权处理。
[0157] 虽然通过实施例描绘了本发明,本领域普通技术人员知道,本发明有许多变形和变化而不脱离本发明的精神,本发明的申请文件的权利要求包括这些变形和变化。