CN1913437A - 初始会话协议应用网络及建立安全通道的装置和方法 - Google Patents

初始会话协议应用网络及建立安全通道的装置和方法 Download PDF

Info

Publication number
CN1913437A
CN1913437A CN200610111835.XA CN200610111835A CN1913437A CN 1913437 A CN1913437 A CN 1913437A CN 200610111835 A CN200610111835 A CN 200610111835A CN 1913437 A CN1913437 A CN 1913437A
Authority
CN
China
Prior art keywords
terminal
cscf
webserver
parameter
header field
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN200610111835.XA
Other languages
English (en)
Other versions
CN1913437B (zh
Inventor
文楷
顾炯炯
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN200610111835.XA priority Critical patent/CN1913437B/zh
Publication of CN1913437A publication Critical patent/CN1913437A/zh
Priority to PCT/CN2007/070392 priority patent/WO2008025272A1/zh
Application granted granted Critical
Publication of CN1913437B publication Critical patent/CN1913437B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/067Network architectures or network communication protocols for network security for supporting key management in a packet data network using one-time keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/1066Session management
    • H04L65/1101Session protocols
    • H04L65/1104Session initiation protocol [SIP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0435Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Multimedia (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Telephonic Communication Services (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明公开了一种初始会话协议应用网络,包括终端和网络服务器,所述终端,用于向网络服务器发送注册请求;根据来自网络服务器的响应信息和终端内部保存的信息,计算密钥;根据计算出的,与网络服务器密钥相同的密钥,与网络服务器建立安全通道;所述网络服务器,用于接收来自终端的注册请求;根据注册请求和所述网络服务器保存的信息,计算密钥并保存密钥,向终端发送响应信息。本发明还公开了一种建立安全通道的装置和一种建立安全通道的方法。本发明的初始会话协议应用网络在通过HTTP Digest机制进行认证的过程中,由网络服务器和终端分别计算出密钥,使得网络服务器和终端之间能够建立安全通道。

Description

初始会话协议应用网络及建立安全通道的装置和方法
技术领域
本发明涉及移动通信网络的安全技术,特别涉及初始会话协议应用网络及建立安全通道的装置和方法。
背景技术
为了保障网络安全,初始会话协议(Session Initiated Protocol,SIP)应用网络,例如IP多媒体子系统(Internet Protocol Multimedia Subsystem,IMS),需要对终端的接入进行认证,并支持终端与网络之间建立用于保证通信安全的安全通道。
SIP应用网络可以通过鉴权和密钥协定(Authentication and KeyAgreement,AKA)机制,对终端的接入进行认证。图1为现有技术中通过AKA机制对终端进行认证的方法流程图。如图1所示,以SIP应用网络为IMS为例,以网络服务器包括服务-呼叫会话控制功能单元(Serving-CallSession Control Function,S-CSCF)和代理-呼叫会话控制功能单元(Proxy-Call Session Control Function,P-CSCF)为例,现有技术中对终端进行认证的方法包括以下步骤:
步骤101~步骤104,终端向网络发起注册请求,将注册(REGISTER)信息发送到S-CSCF,该S-CSCF是查询-呼叫会话控制功能单元(Inquiry-CallSession Control Function,I-CSCF)通过与用户归属服务器(Home SubscriberServer,HSS)进行信息交互来选定的。
步骤105~步骤108,S-CSCF向HSS请求获取鉴权信息后,接收来自HSS的,包括加密密钥(IK)和完整性密钥(CK)的鉴权五元组,并将IK和CK携带于作为响应的认证挑战(Auth-Challenge)信息,发送到P-CSCF,P-CSCF保存IK和CK,并将不携带IK和CK的认证挑战信息发送给终端。
步骤109~步骤117,终端根据认证挑战信息及其携带的其他信息,对网络设备是否可信进行认证。如验证通过,网络设备可信,则计算出IK、CK、以及回应(response)信息,并通过REGISTER消息,将携带response信息的认证响应,发送给S-CSCF;S-CSCF根据response信息对终端进行认证,并在认证成功后,将认证成功信息发送给终端。
在上述的认证过程中,网络服务器中的P-CSCF和终端均获取了用于建立安全通道的密钥,IK和CK,因而可以根据IK和CK建立因特网协议安全(IP Security,IPSec)类型的安全通道。
然而,在实际应用中,部分终端不支持AKA机制的认证,因此,SIP应用网络还可以通过超文本传输协议(Hypertext Transfer Protocol,HTTP)摘要(Digest)机制,对终端的接入进行认证,网络服务器可以根据终端发送的注册请求,判断对终端进行认证应采用的认证机制。图2为现有技术中通过HTTP Digest机制对终端进行认证的方法流程图。如图2所示,以SIP应用网络为IMS为例,以网络服务器包括S-CSCF和P-CSCF为例,现有技术中对终端进行认证的方法包括以下步骤:
步骤201~步骤208,终端向网络发起注册请求,将REGISTER消息发送到S-CSCF;S-CSCF从HSS获取用户密码,并根据注册请求,生成认证挑战信息和万维网-鉴别(WWW-Authenticate)头域,并将认证挑战信息及其他信息携带于WWW-Authenticate头域中,发送到终端。
步骤209~步骤216,终端根据WWW-Authenticate头域中的内容,对网络是否可信进行认证。如验证通过,网络可信,则计算response参数,生成包括response参数的鉴权(Authorization)头域,将认证响应信息携带于Authorization头域中,通过REGISTER消息将Authorization头域发送给S-CSCF;S-CSCF根据Authorization头域中的response参数对终端进行认证,并在认证成功后,将认证成功信息发送给终端。
在上述的认证过程中,网络服务器和终端均没有获取到用于建立安全通道的密钥,因而无法建立IPSec类型的安全通道。
可见,现有技术在SIP应用网络通过HTTP Digest机制对终端进行认证的情况下,网络服务器和终端之间无法建立IPSec类型的安全通道,使得SIP应用网络的安全性和可靠性不高。
发明内容
有鉴于此,本发明的一个主要目的在于:提供一种初始会话协议应用网络,能够在通过HTTP Digest机制对用户设备进行认证的情况下,支持用户设备和网络服务器之间建立安全通道。
本发明的另一个主要目的在于:提供一种建立安全通道的装置,能够在网络通过HTTP Digest机制对用户设备进行认证的情况下,支持用户设备和网络服务器之间建立安全通道。
本发明的第三个主要目的在于:提供一种建立安全通道的方法,能够在通过HTTP Digest机制对用户设备进行认证的情况下,支持用户设备和网络服务器之间建立安全通道。
根据上述的一个主要目的,本发明提供了一种初始会话协议应用网络,包括:终端和网络服务器,其中,
所述终端,用于向网络服务器发送注册请求;根据来自网络服务器的响应信息和所述终端内部保存的信息,计算密钥;根据计算出的,与网络服务器密钥相同的密钥,与网络服务器建立安全通道;
所述网络服务器,用于接收来自终端的注册请求;根据注册请求和所述网络服务器保存的信息,计算密钥,并保存密钥,向终端发送响应信息。
所述网络服务器进一步包括:用户归属服务器HSS,用于与网络服务器进行信息交互,将用于计算IK和CK的参数发送给网络服务器;
所述参数包括用户密码password;
所述网络服务器进一步接收所述来自HSS的参数,并根据所述来自HSS的参数计算IK和CK。
所述网络服务器包括服务-呼叫会话功能单元S-CSCF和代理-呼叫会话功能单元P-CSCF,
所述S-CSCF,用于接收来自P-CSCF的包括扩展头域的注册请求,从所述HSS获取password;在根据注册请求和扩展头域,判断出网络服务器对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立安全通道之后,根据注册请求和password生成认证挑战信息,并根据认证挑战信息中的内容和内部存储的参数计算IK和CK;将包括IK和CK以及认证挑战信息的响应信息发送给P-CSCF,对终端的注册请求进行响应;
所述P-CSCF,用于根据来自终端的注册请求,确定终端与网络服务器之间需要建立的安全通道类型,并在注册请求中添加用于表明安全通道类型的扩展头域;将包括所述扩展头域的注册请求发送给S-CSCF;接收来自S-CSCF的包括加密密钥IK和完整性密钥CK的响应信息,保存IK和CK,并将不包括IK和CK的响应信息发送给终端;根据与终端的密钥相同的IK和CK,与终端协商安全关联,建立安全通道;
所述终端进一步向P-CSCF发送注册请求;接收来自P-CSCF的响应信息;根据所述终端的用户名username、password和来自P-CSCF的响应信息,计算IK和CK;根据计算出的,与网络服务器密钥相同的IK和CK,与P-CSCF建立安全通道。
所述网络服务器进一步包括:查询-呼叫会话功能单元I-CSCF,用于与HSS进行信息交互,为终端选择指定的S-CSCF;将来自P-CSCF的包括扩展头域的注册请求发送给所述指定的S-CSCF;将来自所述指定的S-CSCF的,包括IK和CK的响应信息,发送给P-CSCF;
所述P-CSCF进一步将包括扩展头域的注册请求发送给I-CSCF;接收来自I-CSCF的包括IK和CK的响应信息,保存IK和CK;
所述S-CSCF进一步接收来自I-CSCF的包括扩展头域的注册请求;将包括IK和CK的响应信息发送给I-CSCF。
所述网络服务器包括CSCF,用于接收来自终端的注册请求,从所述HSS获取password;在根据所述注册请求,判断出网络服务器对终端采用HTTPDigest机制进行认证,且终端与网络服务器之间需要建立安全通道之后,根据注册请求和password生成认证挑战信息,并根据认证挑战信息中的内容和内部存储的参数计算IK和CK;将包括IK和CK以及认证挑战信息的响应信息发送给终端,对终端的注册请求进行响应。
所述S-CSCF包括:主控单元、判断单元和计算单元,其中,
所述主控单元,用于接收所述终端发起的注册请求,与所述HSS进行信息交互,获取用户的password,并将获取到的password发送给计算单元;并将注册请求发送到判断单元;接收来自计算单元的IK和CK;将来自计算单元的IK和CK发送到外部P-CSCF;
所述判断单元,用于根据来自主控单元的注册请求,判断对终端进行认证的机制类型;根据注册请求中的扩展头域,判断终端与网络服务器之间需要建立的安全通道类型;在判断出网络服务器对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立的安全通道类型为IPSec之后,向计算单元发送注册请求中的username和计算请求;
所述计算单元,用于根据来自判断单元的计算请求,通过哈希算法计算由来自判断单元的username、内部存储的域realm、从所述HSS获取的password顺序组成的字符串;将哈希算法的计算结果与内部存储的参数nonce、保护质量qop一起作为计算参数,通过密钥生成算法,计算出32个字符的中间值,再将计算出的中间值分为两个16个字符的字符串,分别作为IK和CK;将计算出的IK和CK发送到主控单元。
所述S-CSCF进一步包括:认证单元,用于将来自计算单元的请求摘要request-digest与鉴权Authorization头域中的回应response参数进行比较,在request-digest与response参数相同时,认证通过,向主控单元发送认证成功信息;
所述主控单元进一步接收来自终端的username和包括response参数的Authorization头域,并将username和Authorization头域发送给计算单元;将来自认证单元的认证成功信息向外部终端发送;
所述计算单元进一步根据来自主控单元的username和Authorization头域中的内容,通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数Method和digest-uri顺序组成的字符串,并将两个哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest;将计算出的request-digest与Authorization头域中的response参数发送到认证单元;
所述终端进一步根据Method、所述终端的username和接收到的响应信息,计算作为认证响应的response参数,并生成包括response参数的Authorization头域;将所述终端的username与包括response参数的Authorization头域一起发送到S-CSCF,对认证挑战进行响应。
根据上述的另一个主要目的,本发明提供了一种建立安全通道的装置,包括:网络服务器,用于接收来自外部终端的注册请求;根据注册请求和所述网络服务器保存的信息,计算密钥,并保存密钥,向外部终端发送响应信息。
所述网络服务器包括服务-呼叫会话功能单元S-CSCF,
所述S-CSCF包括:主控单元、判断单元和计算单元,其中,
所述主控单元,用于接收来自外部的注册请求,并将注册请求发送到判断单元;与外部网元进行信息交互,获取用户的password,并将获取到的password发送给计算单元;接收来自计算单元的加密密钥IK和完整性密钥CK;将来自计算单元的IK和CK提供给网络服务器;
所述判断单元,用于根据来自主控单元的注册请求,判断对终端进行认证的机制类型;根据注册请求中的扩展头域,判断终端与网络服务器之间需要建立的安全通道类型;在判断出网络服务器对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立的安全通道类型为IPSec之后,向计算单元发送计算请求和注册请求中的用户名username;
所述计算单元,用于根据来自判断单元的计算请求,通过哈希算法,分别计算由来自判断单元的username、内部存储的域realm、来自主控单元的用户密码password顺序组成的字符串,和由摘要-资源标志符digest-uri构成的字符串;将两个哈希算法的计算结果与内部存储的参数nonce、保护质量qop一起作为计算参数,通过密钥生成算法计算出32个字符的中间值,再将中间值分为两个16个字符的字符串,分别作为IK和CK;将计算出的IK和CK发送到主控单元。
所述S-CSCF进一步包括:认证单元,用于将来自计算单元的请求摘要request-digest与鉴权Authorization头域中的response参数比较,在request-digest与response参数相同时,认证通过,向主控单元发送认证成功信息;
所述主控单元进一步接收来自外部的username和包括response参数的Authorization头域,并将username和Authorization头域发送给计算单元;将来自认证单元的认证成功信息发送到外部;
所述计算单元进一步根据来自主控单元的username和Authorization头域中的内容,通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数Method和digest-uri顺序组成的字符串,并将两个哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest;将计算出的request-digest与Authorization头域中的response参数发送到认证单元。
根据上述的第三个主要目的,本发明提供了一种建立安全通道的方法,包括以下步骤:
A、接收来自终端的注册请求,根据注册请求和网络服务器保存的信息计算密钥,并保存计算出的密钥,向终端发送响应信息;
B、终端根据接收到的响应信息和所述终端内部保存的信息,计算密钥;
C、终端与网络服务器使用所述计算出的密钥,建立安全通道。
所述步骤A为:
A1、P-CSCF根据来自终端的注册请求中的安全通道类型列表,确定与终端建立安全通道的类型,并在注册请求中,添加用于表明建立安全通道类型扩展头域,将包括所述扩展头域的注册请求发送到S-CSCF;
A2、S-CSCF接收来自P-CSCF的,包括扩展头域的注册请求,根据REGISTER消息,从HSS获取用户密码password,并判断网络服务器是否对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立的安全通道类型是否为IPSec,如果是,则执行步骤A3;
A3、根据注册请求和password生成认证挑战信息,并根据认证挑战信息中的内容和内部存储的参数,计算加密密钥IK和完整性密钥CK,将包括IK和CK以及认证挑战的响应信息发送给P-CSCF,对终端的注册请求进行响应;
A4、P-CSCF保存IK和CK,并将不包括IK和CK的响应信息发送给终端。
所述步骤A为:
CSCF根据来自终端的注册请求,从HSS获取用户密码password,并判断是否对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立的安全通道类型是否为IPSec,如果是,则根据注册请求和password生成认证挑战信息,并根据认证挑战信息中的内容和内部存储的参数计算IK和CK,生成认证挑战信息,保存IK和CK,并将包括认证挑战的响应信息发送给终端。
步骤B所述计算IK和CK之前进一步包括:终端根据所述终端的用户名username、password和来自P-CSCF的响应信息计算IK和CK。
所述计算IK和CK为:
通过哈希算法,分别计算由username、域realm、password顺序组成的字符串,和由参数摘要-资源标志符digest-uri构成的字符串;
将得到的哈希算法的计算结果,与内部存储的参数nonce、qop一起作为计算参数,通过密钥生成算法计算出32个字符的中间值;
将中间值的任意16个字符作为IK,将中间值的其余16个字符作为CK。
所述步骤B之后步骤C之前进一步包括:终端计算response参数,并将username和包括response参数的鉴权Authorization头域,发送到网络服务器的S-CSCF。
所述步骤C之后进一步包括:终端计算response参数,并将username和包括response参数的鉴权Authorization头域,发送到网络服务器的S-CSCF。
所述计算response参数为:
通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数方法Method和digest-uri顺序组成的字符串;
将哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest;
将request-digest赋值给response参数。
所述将username和包括response参数的Authorization头域发送到网络服务器之后进一步包括:网络服务器根据Authorization头域中的response参数,对用户进行认证,如果认证成功,将认证成功信息发送给终端。
所述对用户进行认证为:
网络服务器通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数方法Method和digest-uri顺序组成的字符串;
将哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest;
将request-digest与Authorization头域中的response参数进行比较,如果所述request-digest与所述response参数相同,则认证通过。
由此可见,本发明的技术方案在通过HTTP Digest机制进行认证的过程中,由网络服务器和终端分别计算出用于建立安全通道的密钥,从而使得网络服务器和终端之间共享了相同的密钥,能够协商出安全关联,建立安全通道,提高了SIP应用网络的安全性和可靠性。
而且,本发明的技术方案,还通过在终端向网络服务器发送注册请求的过程中,由网络服务器中的P-CSCF在注册请求中增加了一个表示安全通道类型的扩展头域,从而使得网络服务器中的S-CSCF能够获知网络服务器与终端之间的安全通道类型。
附图说明
图1为现有技术中通过AKA机制对终端进行认证的方法流程图;
图2为现有技术中通过HTTP Digest机制对终端进行认证的方法流程图;
图3为本发明中建立安全通道的方法的示例性流程图;
图4为本发明实施例一中SIP应用网络的结构图;
图5为本发明实施例一中建立安全通道的装置的结构图;
图6为本发明实施例一中建立安全通道的方法流程图;
图7为本发明实施例二中SIP应用网络的结构图;
图8为本发明实施例二中建立安全通道的方法流程图。
具体实施方式
为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
本发明的基本思想为:在通过HTTP Digest机制对终端进行认证的过程中,由网络服务器和终端分别计算出用于建立安全通道的密钥,从而使得网络服务器和终端之间共享了了用于建立安全通道的密钥,采用该密钥建立安全通道。
图3为本发明中建立安全通道的方法的示例性流程图。如图3所示,建立安全通道的方法包括以下步骤:
步骤301,接收来自终端的注册请求,根据注册请求和网络服务器保存的信息计算密钥,并保存计算出的密钥,向终端发送响应信息;
步骤302,终端根据接收到的响应信息和终端内部保存的信息,计算密钥;
步骤303,终端与网络服务器使用计算出的密钥,建立安全通道。
其中,网络服务器判断对终端采用何种认证机制,是通过网络服务器识别作为注册请求的REGISTER消息中的内容来实现的,例如Authorization头域内容,也可以通过自身保存的用户签约数据来判断;当网络服务器判断出对终端采用HTTP Digest机制进行认证之后,开始执行上述流程。
本发明中网络服务器和终端计算密钥的方法,可分为两个步骤,第一个步骤首先计算出中间值,此中间值的计算方法利用了一般情况下,在HTTPDigest认证过程中计算request-digest的基本流程和算法。第二步骤,依据中间值生成用于建立安全通道的IK和CK。
HTTP Digest认证是以“认证挑战-认证回应”(“challenge-response”)的基本方式来完成的,通过WWW-Authenticate头域携带“认证挑战”信息,通过Authorization头域携带“认证回应”信息。
通常,WWW-Authenticate中包括的主要参数有:
    域(realm)=″biloxi.com″,
    保护质量(qop)=″auth,auth-int″,
    nonce=″dcd98b7102dd2f0e8b11d0f600bfb0c093″,
    opaque=″5ccc069c403ebaf9f0171e9517f40e41″。
其中:
参数realm用于表明其当前正接受来自哪个域的认证;
参数qop的值为“auth”,表明仅做用户认证;为“auth-int”,指示同时做用户认证和消息体完整性保护;
参数nonce由网络侧产生,标识与网络侧本地时间关联,终端在回复的Authorization认证响应头域中,携带nonce中的原有内容,这样网络侧可以根据此nonce中的内容得知当时生成此nonce参数的时间,即发送WWW-Authenticate认证请求的时间,与当前收到Authorization的时间相比较,如果两个时间相差过大,表明受到“重放”攻击。
终端根据帐号及收到的WWW-Authenticate内容产生Authorization头域主要包括:
用户名(username)=″UserB″,
realm=″biloxi.com″,
nonce=″dcd98b7102dd2f0e8b11d0f600bfb0c093″,
uri=″sip:bob@biloxi.com″,
qop=auth,
nc=00000001,
cnonce=″0a4f113b″,
response=″6629fae49393a05397450978507c4ef1″,
opaque=″5ccc069c403ebaf9f0171e9517f40e41″
其中:
参数username用于向网络服务器表明终端的身份。
参数nc表明这是第几次使用同一个参数nonce生成认证回应。当网络侧收到同一个nc-value两次或以上,表明受到了“重放”方式的攻击。
参数cnonce用于终端对网络的认证,由用户终端生成并被网络侧在Authentication-Info头域中被带回。
参数response用于验证用户身份,由终端根据username、用户密码password、realm、nonce、uri等参数的值进行计算得到。网络侧也根据这些输入数据,和相同的算法得到一串数据,若两者相相等,则证明用户的密码正确,以此证明用户的身份。生成response参数(即request-digest)的算法如下:request-digest=<″><KD(H(A1),unq(nonce-value)
                           ″:″nc-value
                           ″:″unq(cnonce-value)
                           ″:″unq(qop-value)
                           ″:″H(A2)
                    )  <″>
其中A1与A2的计算分别如下:
A1=unq(username-value)″:″unq(realm-value)″:″passwd
A2=Method″:″digest-uri-value
上述计算过程中,password为预先设置在终端中的密码或用户输入的密码,设置在终端的password和设置在网络服务器的password必须相同;网络服务器中的password通过访问HSS或者访问第三方网元来获得;method表示终端向网络服务器发送的请求消息的类型,例如本发明中,method的参数值表示终端通过REGISTER消息向网络服务器发送信息,终端在确认以何种方式向网络服务器发送信息之后,能够获取method的参数值,网络服务器在接收到终端发送的信息之后,即可获知请求类型,进而获取method的参数值;digest-uri-value即相应的请求消息的request-uri值,在Authorization的uri参数中携带。其余参数,“nonce-value、qop-value、realm-value”为认证挑战中的信息,“nc-value、cnonce-value”为认证回应中的信息。
终端将上述参数作为计算参数,通过密钥生成(KD)算法、哈希(H)算法,计算出请求摘要(request-digest),再将request-digest赋值给response参数,具体计算过程如下:
request-digest=<″><KD(H(A1),unq(nonce-value)
                               ″:″nc-value
                               ″:″unq(cnonce-value)
                               ″:″unq(qop-value)
                               ″:″H(A2)
                          )  <″>
其中,A1为由参数username、realm、password顺序组成的字符串、A2为由参数Method和digest-uri顺序组成的字符串,A1和A2分别表示为::
A1=unq(username-value)″:″unq(realm-value)″:″passwd
A2=Method″:″digest-uri-value
其中,由于部分参数表示为带引号的字符串,例如realm=″biloxi.com″,因此通过unq指令取值,将引号中包括的字符作为算法输入值。而nc等参数为不带引号的数字串,因此,不需要通过unq指令来取值。
在计算出request-digest之后,将计算结果赋值给response参数,发送给网络服务器进行认证。
本发明中,网络服务器收到注册请求,即依据认证挑战相关信息计算中间值,还未接收到终端的认证回应信息,因此,参数nc和cnonce等与认证回应相关的信息不做为输入参数参与中间值计算。
另外,本发明中,终端是在收到网络服务器的认证挑战后计算中间值,此时终端无法获取method和digest-uri,因此,这两个参数也不作为参数参与中间值计算。终端和网络服务器计算用于获取密钥的中间值,所使用的参数仅包括:username、realm、password、nonce、qop。终端和网络服务器均将上述参数作为计算参数,通过密钥生成算法、哈希算法,并按照与上述计算过程类似的流程,计算出用于生成中间值的中间值,具体计算过程如下:
中间值=<″><KD(H(A1),unq(nonce-value)
                          ″:″unq(qop-value))<″>
其中,A1为由参数username、realm、password顺序组成的字符串、A2为由参数digest-uri构成的字符串,A1表示为:
A1=unq(username-value)″:″unq(realm-value)″:″passwd
其中,由于部分参数表示为字符串,例如realm=″biloxi.com″,因此通过unq指令,将引号中包括的字符作为算法输入值。而passwd等参数为不带引号的数字串,因此,不需要通过unq指令来取值。
上述过程中,method和digest-uri都不作为输入参数,因此原计算过程中的A2不作为本发明计算过程的参数。但是,除以上方法外,计算中间值的方法还可以通过其他计算过程来实现。例如,在注册过程中,终端和网络服务器约定method为REGISTER,同时,约定digest-uri为服务器的域名,则这两个参数也可以作为参与计算中间值的参数。
在通过上述过程计算出中间值后,依据此中间值计算IK和CK。
通过上述计算过程,得到的中间值为32个字符的字符串,而建立安全通道所需的IK和CK均为16个字符的字符串,因此,在计算出中间值之后,将该信息分为两个16个字符的字符串,将两个字符串分别作为IK和CK。
实现上述计算IK和CK的过程,只需要对现有的SIP应用网络进行简单的改造,使得本发明的技术方案易于使用和推广,为本发明中的一个较佳方案。本发明计算密钥的具体过程,也可以通过其他计算方法和流程来实现。
在计算出IK和CK之后,类似现有的IMS AKA注册过程,终端与网络服务器建立安全通道。安全通道建立成功后,终端计算request-digest,并赋值给response参数,发送给网络服务器进行认证。
前述过程描述适用于SIP应用网络,以下以该SIP应用网络为IMS系统为例具体说明。
对本发明的SIP应用网络、建立安全通道的装置和方法进行详细说明。
实施例一
本实施例以网络服务器包括S-CSCF、I-CSCF和P-CSCF为例。
现有的IMS中,终端在发起认证注册时发送的REGISTER消息,包括终端支持安全通道类型列表,P-CSCF在接收到该REGISTER消息后,根据自身配置的数据与安全通道类型列表,确定与终端建立何种类型的安全通道,并在获取密钥后,准备与终端建立安全通道,但S-CSCF无法获知安全通道的类型。
本实施例中,网络服务器中包括S-CSCF和P-CSCF,P-CSCF在确定与终端建立何种类型的安全通道之后,在发起认证注册的REGISTER消息中,添加一个扩展头域,用于向S-CSCF表明与终端建立安全通道的类型。其中,扩展头域为安全类型(Security-Type)头域,也可以为其它头域。当网络服务器中包括其他与S-CSCF和P-CSCF类似的功能单元时,也可以采用上述方法判断需要建立的安全通道类型。
图4为本发明实施例一中SIP应用网络的结构图。如图4所示,SIP应用网络包括:终端400、P-CSCF 401、I-CSCF 402、S-CSCF 403和HSS 404。
终端400,用于向P-CSCF 401发送REGISTER消息;在接收到来自P-CSCF 401的WWW-Authenticate头域后,根据username、password和WWW-Authenticate头域中的内容,计算IK和CK,并生成Authorization头域;根据IK和CK与P-CSCF 401建立IPSec安全通道。
P-CSCF 401,用于根据来自终端400的REGISTER消息,确定建立安全通道的类型,并在REGISTER消息中添加用于表示安全通道类型的Security-Type头域;将包括Security-Type头域的REGISTER消息发送给I-CSCF 402;接收来自I-CSCF 402的携带认证挑战信息和IK、CK的WWW-Authenticate头域,存储IK和CK,并将WWW-Authenticate头域发送给终端400;根据IK和CK,与终端400进行协商,建立安全通道。
I-CSCF 402,用于与HSS 404进行信息交互,为终端400选择一个指定的S-CSCF 403;将来自P-CSCF 401的包括Security-Type头域的REGISTER消息发送给指定的S-CSCF 403;将来自S-CSCF 403的,携带认证挑战信息和IK、CK的WWW-Authenticate头域,发送给P-CSCF 401。
S-CSCF 403,用于接收来自I-CSCF 402的包括Security-Type头域的REGISTER消息;根据该REGISTER消息,判断网络服务器对终端400认证机制类型,以及终端400与网络服务器之间需要建立的安全通道类型;与HSS 404进行信息交互,获取用户密码password;在判断出网络服务器对终端400采用HTTP Digest机制进行认证,且终端400与网络服务器之间需要建立安全通道之后,根据REGISTER消息和password生成认证挑战信息和WWW-Authenticate头域,并根据认证挑战信息、以及username、password和内部存储的配置数据,计算IK和CK,向I-CSCF 402发送携带认证挑战信息和IK、CK的WWW-Authenticate头域,对终端400的注册请求进行响应。
HSS 404,用于与I-CSCF 402进行信息交互,为终端400选择一个指定的S-CSCF 403;与S-CSCF 403进行信息交互,向S-CSCF 403提供用户的password。
在实际应用中,终端400进一步在接收到来自P-CSCF 401的WWW-Authenticate头域后,计算作为认证响应的response参数,生成Authorization头域,并将包括response参数的Authorization头域,通过REGISTER消息发送到P-CSCF 401,对认证挑战进行响应;接收来自P-CSCF401的认证成功信息。
P-CSCF 401进一步将来自终端400的包括Authorization头域的REGISTER消息,发送到I-CSCF 402;将来自I-CSCF 402的认证成功信息发送给终端400。
I-CSCF 402进一步将来自P-CSCF 401的包括Authorization头域的REGISTER消息,发送到指定的S-CSCF 403;将来自S-CSCF 403的认证成功信息发送给P-CSCF 401。
S-CSCF 403进一步与HSS 404进行信息交互,下载用户数据;接收来自I-CSCF 402的包括Authorization头域的REGISTER消息,根据Authorization头域中的response参数,对终端400进行认证,并在认证通过后,向I-CSCF 402发送认证成功消息。
HSS 404进一步与S-CSCF 403进行信息交互,向S-CSCF 403提供用户数据。
本实施例中,P-CSCF 401在REGISTER消息中添加表明安全通道类型的Security-Type头域,也可以添加其它类型的扩展头域;S-CSCF 403通过访问HSS 404获取用户的password,也可以通过访问其他第三方网元来获取。
在上述网络中,S-CSCF 403计算出IK和CK,为建立安全通道提供了必要条件,是作为建立安全通道的装置而存在于网络中的。图5为本发明实施例一中建立安全通道的装置的结构图。如图5所示,本发明中建立安全通道的装置由S-CSCF来实现,包括:主控单元501、判断单元502、计算单元503和认证单元504。
主控单元501,用于接收来自外部的发起注册请求的REGISTER消息,并将发起注册请求的REGISTER消息发送到判断单元502;与外部网元进行信息交互,获取用户的password,并将获取到的password发送给计算单元503;接收来自计算单元503的IK和CK,并根据REGISTER消息中的内容、从外部网元获取的password和预先设定的配置数据,生成认证挑战信息和WWW-Authenticate头域;将认证挑战信息和来自计算单元503的IK和CK,携带于WWW-Authenticate头域中,发送到外部P-CSCF 401;接收来自外部的包括Authorization头域的REGISTER消息,并将REGISTER消息中的username和Authorization头域发送到计算单元503;将来自认证单元504的认证成功信息向外部终端400发送;根据来自判断单元502的获取密钥请求,向外部HSS 404请求获取鉴权信息;将从外部HSS 404获取的包括IK和CK的鉴权元组,发送给外部P-CSCF 401。
判断单元502,用于根据来自主控单元501的REGISTER消息,判断对终端400进行认证应采用的机制;根据REGISTER消息中的Security-Type头域,判断终端400与网络服务器之间需要建立的安全通道类型;在判断出网络服务器对终端400采用HTTP Digest机制进行认证,且终端400与网络服务器之间需要建立的安全通道类型为IPSec之后,需要计算IK和CK,向计算单元503发送计算请求和REGISTER消息中的username;在判断出网络服务器对终端400采用AKA机制进行认证,且终端400与网络服务器之间需要建立的安全通道类型为IPSec之后,不需要计算IK和CK,向主控单元501发送获取密钥请求。
计算单元503,用于根据来自判断单元的计算请求,通过哈希算法,分别计算由来自判断单元的username、内部存储的参数realm、来自主控单元501的password顺序组成的字符串;将哈希算法的计算结果与内部存储的参数nonce、qop一起作为计算参数,通过密钥生成算法计算出32个字符的中间值,再将中间值分为两个16个字符的字符串,分别作为IK和CK;将计算出的IK和CK发送到主控单元;根据来自主控单元501的REGISTER消息中的username和Authorization头域中的内容,通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数Method和digest-uri顺序组成的字符串,并将两个哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest;将计算出的request-digest与Authorization头域中的response参数发送到认证单元504。
认证单元504,用于将来自计算单元503的计算结果request-digest与Authorization头域中的response参数进行比较,在计算结果request-digest与response参数相同时,认证通过,向主控单元501发送认证成功信息。
在本实施例作为建立安全通道的装置的S-CSCF 403中,主控单元501根据预先设定的配置数据,生成认证挑战信息和WWW-Authenticate头域,计算单元503根据REGISTER消息中的username和预先设定的配置数据计算IK和CK,也可以由主控单元501先从HSS 404获取参数,计算单元503再根据REGISTER消息中的username和获取的参数,生成认证挑战信息和WWW-Authenticate头域,并将获取的参数发送给计算单元503,由计算单元503根据获取的参数计算IK和CK。
上述作为建立安全通道的装置的S-CSCF 403的内部结构,仅为本发明的较佳方案,各功能单元之间,也可以通过其它方式进行信息交互。
下面,对基于上述SIP应用网络,建立安全通道的方法进行详细说明。
图6为本发明实施例一中建立安全通道的方法流程图。如图6所示,本发明建立安全通道的方法包括以下步骤:
步骤601,终端向网络发起注册请求,将REGISTER消息发送到P-CSCF。
其中,REGISTER消息中包括终端支持的认证机制类型和安全通道类型列表。
步骤602,P-CSCF根据来自终端的REGISTER消息中的安全通道类型列表,确定与终端建立安全通道的类型,并在REGISTER消息中添加Security-Type头域,表明建立安全通道的类型,再将包括Security-Type头域的REGISTER消息发送到I-CSCF。
步骤603~步骤604,I-CSCF与HSS进行信息交互,为终端指定一个S-CSCF,并将来自P-CSCF的包括Security-Type头域的REGISTER消息发送到指定的S-CSCF。
本步骤中,P-CSCF在REGISTER消息中添加表明安全通道类型的Security-Type头域,也可以添加其它扩展头域。
步骤605~步骤606,S-CSCF接收来自I-CSCF的包括Security-Type头域的REGISTER消息,根据REGISTER消息,从HSS获取用户密码password,并根据该REGISTER消息,判断出网络服务器对终端采用的认证机制,和终端与网络服务器之间需要建立的安全通道类型,如果判断出网络服务器对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立的安全通道类型为IPSec,则执行步骤607;如果判断出网络服务器对终端采用AKA机制进行认证,且终端与网络服务器之间需要建立的安全通道类型为IPSec,则按照AKA机制认证流程,对终端进行认证,建立IPSec安全通道。
上述步骤605中,S-CSCF也可以从其他网元中获取password。
步骤607~步骤609,S-CSCF根据REGISTER消息和password生成认证挑战信息和WWW-Authenticate头域,并根据认证挑战信息中的内容、从HSS获取的password和内部存储的配置数据,计算IK和CK,并通过I-CSCF向P-CSCF发送携带认证挑战信息和IK、CK的WWW-Authenticate头域,对终端的注册请求进行响应。
上述步骤607中计算IK和CK参数包括:REGISTER消息中的username、从HSS获取的password、S-CSCF中内部存储的realm、digest-uri、nonce、qop;通过哈希算法,计算由参数username、realm、password顺序组成的字符串,并将哈希算法的计算结果与内部存储的参数nonce、qop一起作为计算参数,通过密钥生成算法计算出32个字符的中间值。
计算过程可以表示为:
request-digest=<″><KD(H(A1),unq(nonce-value)
                               ″:″unq(qop-value))<″>
其中,A1表示为:
A1=unq(username-value)″:″unq(realm-value)″:″passwd
通过上述过程,得到32个字符的中间值,将前16个字符作为IK,将后16个字符作为CK。
计算IK和CK所使用的参数,可以为REGISTER消息中的数据或者S-CSCF内部存储的配置数据,也可以为从HSS等其他网元获取的参数,根据内部存储的配置数据或者从HSS获取的参数,不仅限于上述参数。上述参数均包括在WWW-Authenticate头域中,发送到终端。
步骤610,P-CSCF接收来自I-CSCF的,携带认证挑战信息和IK、CK的WWW-Authenticate头域,存储IK和CK,并将仅携带认证挑战信息的WWW-Authenticate头域发送给终端。
步骤611,终端根据username、password和WWW-Authenticate头域以及携带的信息中的内容,计算IK和CK;在计算出IK和CK之后,终端向P-CSCF发起IPSec安全通道的建立,共享IK和CK,协商出安全关联,成功建立安全通道。
本步骤中终端计算IK和CK的过程,与步骤605中S-CSCF计算IK和CK的过程相同,用于计算IK和CK的password为预先存储于终端的参数,也可以为用户即时输入的参数。
步骤612~步骤615,终端根据username和WWW-Authenticate头域以及携带的信息中的内容,计算作为认证响应的response参数,生成Authorization头域,并将包括response参数的Authorization头域,通过REGISTER消息发送给S-CSCF,对认证挑战进行响应。
上述步骤612中计算response参数的过程为:通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数Method和digest-uri顺序组成的字符串,并将两个哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest,再将request-digest赋值给response参数,计算过程与通常的计算过程相同。
步骤616~步骤619,S-CSCF从HSS下载用户数据,计算request-digest,并将计算出的request-digest与接收到的Authorization头域中的response参数进行比较,如果两者相同,则认证成功,将认证成功信息发送给终端。
上述步骤616中计算request-digest的过程为:通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数Method和digest-uri顺序组成的字符串,并将两个哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest,与通常计算request-digest的过程相同。
本实施例的方法中,在计算出中间值之后,将中间值的前16个字符作为IK,后16个密钥字符作为CK,也可以将任意16个字符作为IK,并将其余16个字符作为CK;计算IK和CK时,也可以将Method和digest-uri作为计算参数;在步骤610,终端获取IK和CK之后,立即建立与网络服务器之间的IPSec安全通道,也可以在终端获取IK和CK之后的任何时刻建立IPSec安全通道。
本发明的建立安全通道的方法,还适用于其它应用网络。
实施例二
本发明实施例一的SIP应用网络中,网络服务器包括S-CSCF、I-CSCF和P-CSCF,而网络服务器也可以包括其他功能单元,这就构成了本发明实施例二的SIP应用网络。
本实施例以网络服务器包括CSCF为例。
图7为本发明实施例二中SIP应用网络的结构图。如图7所示,本发明中SIP应用网络包括:终端400、CSCF 701和HSS 704。
终端400,用于向CSCF 701发送REGISTER消息;在接收到来自CSCF701的WWW-Authenticate头域后,根据username、password和WWW-Authenticate头域中的内容,生成Authorization头域,并计算IK和CK;根据IK和CK与CSCF 701建立IPSec安全通道。
CSCF 701,用于根据来自终端400的REGISTER消息,确定建立安全通道的类型;根据该REGISTER消息,判断是否需要计算IK和CK,在判断出网络服务器对终端400采用HTTP Digest机制进行认证,且终端400与网络服务器之间需要建立安全通道之后,需要计算IK和CK,根据通过信息交互,从HSS 704获取包括用户密码password的参数;根据REGISTER消息和password生成认证挑战信息和WWW-Authenticate头域,根据认证挑战信息、以及username、password和预先设定的配置数据计算IK和CK,并保存IK和CK;向终端400发送携带认证挑战信息的WWW-Authenticate头域,对终端400的注册请求进行响应;根据IK和CK,与终端进行协商,建立安全通道。
HSS 704,用于与CSCF 701进行信息交互,将用于生成认证挑战信息、WWW-Authenticate头域、以及计算IK和CK的参数发送给CSCF 701,参数中包括用户密码password。
在实际应用中,终端400进一步在接收到来自CSCF 701的WWW-Authenticate头域后,计算作为认证响应的response参数,生成Authorization头域,并将包括response参数的Authorization头域,通过REGISTER消息发送到CSCF 701,对认证挑战进行响应;接收来自CSCF 701的认证成功信息。
CSCF 701进一步与HSS 704进行信息交互,下载用户数据;接收来自终端400的包括Authorization头域的REGISTER消息,根据Authorization头域中的response参数,对终端400进行认证,并在认证通过后,向终端400发送认证成功消息。
HSS 704进一步与S-CSCF 403进行信息交互,向S-CSCF 703提供用户数据。
本实施例中,CSCF 701先从HSS 704获取参数,再根据获取的参数,生成认证挑战信息、WWW-Authenticate头域,并计算IK和CK,也可以根据预先设定的配置数据,生成认证挑战信息和WWW-Authenticate头域,计算IK和CK;CSCF 701通过访问HSS 704获取用户的password,也可以通过访问其他第三方网元来获取。
在上述网络中,CSCF 701可以包括:P-CSCF和S-CSCF,其中,S-CSCF计算出IK和CK,为建立安全通道提供了必要条件,是作为建立安全通道的装置而存在于网络中的。本实施例的CSCF 701能够实现与实施例一中的S-CSCF和P-CSCF相同的功能,即包括实施例一中S-CSCF的所有模块,只是在计算IK和CK时,可以将digest-uri也作为计算参数。
图8为本发明实施例二中建立安全通道的方法流程图。如图8所示,本发明建立安全通道的方法包括以下步骤:
步骤801,终端向网络发起注册请求,将REGISTER消息发送到CSCF。
其中,REGISTER消息中包括终端支持的认证机制类型和安全通道类型列表。
步骤802,CSCF根据来自终端的REGISTER消息中的安全通道类型列表,判断出与终端建立安全通道的类型,并根据REGISTER消息,判断出网络服务器对终端采用的认证机制,如果判断出网络服务器对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立的安全通道类型为IPSec,则执行步骤803;如果判断出网络服务器对终端采用AKA机制进行认证,且终端与网络服务器之间需要建立的安全通道类型为IPSec,则按照AKA机制认证流程,对终端进行认证,并建立IPSec安全通道。
步骤803,CSCF向HSS请求获取用于生成认证挑战信息、WWW-Authenticate头域、以及计算IK和CK的参数,HSS根据CSCF的请求,将参数发送给CSCF,参数中包括用户密码password。
本步骤中,从HSS获取的参数包括:realm、digest-uri、nonce、qop、password,还包括其它参数。
本步骤中,CSCF也可以从其他网元中获取password。
步骤804~步骤805,CSCF根据REGISTER消息和password生成认证挑战信息和WWW-Authenticate头域,并根据认证挑战信息中的内容和来自HSS的参数,计算IK和CK,并保存IK和CK,向终端发送携带认证挑战信息的WWW-Authenticate头域,对终端的注册请求进行响应。
上述步骤804中计算IK和CK的过程为:通过哈希算法,分别计算由REGISTER消息中的username、从HSS获取的realm、password顺序组成的字符串A1,和由从HSS获取的参数digest-uri构成的字符串A2,并将两个哈希算法的计算结果与从HSS获取的的参数nonce、qop一起作为计算参数,通过密钥生成算法计算出32个字符的中间值。
计算过程可以表示为:
request-digest=<″><KD(H(A1),unq(nonce-value)
                               ″:″unq(qop-value)
                               ″:″H(A2))<″>
其中,A1与A2的分别表示为:
A1=unq(username-value)″:″ unq(realm-value)″:″passwd
A2=digest-uri-value
通过上述过程,得到32个字符的中间值,将中间值的后16个字符作为IK,将前16个字符作为CK。
计算IK和CK所使用的部分参数,为CSCF从HSS获取的参数,也可以为CSCF根据内部存储的配置数据,根据内部存储的配置数据或者从HSS获取的参数,不仅限于上述参数。上述参数均包括在WWW-Authenticate头域中,发送到终端。
步骤806,终端根据username、password和WWW-Authenticate头域以及携带的信息中的内容生成Authorization头域和认证响应信息,并计算中间值,通过中间值计算IK和CK。
本步骤中终端计算IK和CK的过程,与步骤804中CSCF计算IK和CK的过程相同。
步骤807,终端根据username和WWW-Authenticate头域以及携带的信息中的内容,计算作为认证响应的response参数,生成Authorization头域,并将包括response参数的Authorization头域,通过REGISTER消息发送给CSCF,对认证挑战进行响应。
本步骤中计算response参数的过程为:通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数Method和digest-uri顺序组成的字符串,并将两个哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest,再将request-digest赋值给response参数,计算过程与通常的计算过程相同。
步骤808~步骤809,CSCF从HSS下载用户数据,计算request-digest,并将计算出的request-digest与接收到的Authorization头域中的response参数进行比较,如果两者相同,则认证成功,将认证成功信息发送给终端。
上述步骤808中计算request-digest的过程为:通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数Method和digest-uri顺序组成的字符串,并将两个哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest,与通常计算request-digest的过程相同。
步骤810,终端在接收到认证成功信息之后,终端向CSCF发起IPSec安全通道的建立,共享IK和CK,协商出安全关联,成功建立安全通道
本实施例的方法中,在计算出中间值之后,将中间值的后16个字符作为IK,前16个字符作为CK,也可以将任意16个字符作为IK,并将其余16个字符作为CK;计算IK和CK时,也可以将Method作为计算参数,或者不将digest-uri作为计算参数;在步骤810,终端接收到认证成功信息之后,再建立与网络服务器之间的IPSec安全通道,也可以在终端获取IK和CK之后的任何时刻建立IPSec安全通道。
本发明中建立安全通道的方法,适用于所有SIP应用网络,也适用于其它协议的应用网络。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内,所作的任何修改、等同替换以及改进等,均应包含在本发明的保护范围之内。

Claims (20)

1、一种初始会话协议应用网络,其特征在于,包括:终端和网络服务器,其中,
所述终端,用于向网络服务器发送注册请求;根据来自网络服务器的响应信息和所述终端内部保存的信息,计算密钥;根据计算出的,与网络服务器密钥相同的密钥,与网络服务器建立安全通道;
所述网络服务器,用于接收来自终端的注册请求;根据注册请求和所述网络服务器保存的信息,计算密钥,并保存密钥,向终端发送响应信息。
2、如权利要求1所述的网络,其特征在于,所述网络服务器进一步包括:用户归属服务器HSS,用于与网络服务器进行信息交互,将用于计算IK和CK的参数发送给网络服务器;
所述参数包括用户密码password;
所述网络服务器进一步接收所述来自HSS的参数,并根据所述来自HSS的参数计算IK和CK。
3、如权利要求2所述的网络,其特征在于,所述网络服务器包括服务-呼叫会话功能单元S-CSCF和代理-呼叫会话功能单元P-CSCF,
所述S-CSCF,用于接收来自P-CSCF的包括扩展头域的注册请求,从所述HSS获取password;在根据注册请求和扩展头域,判断出网络服务器对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立安全通道之后,根据注册请求和password生成认证挑战信息,并根据认证挑战信息中的内容和内部存储的参数计算IK和CK;将包括IK和CK以及认证挑战信息的响应信息发送给P-CSCF,对终端的注册请求进行响应;
所述P-CSCF,用于根据来自终端的注册请求,确定终端与网络服务器之间需要建立的安全通道类型,并在注册请求中添加用于表明安全通道类型的扩展头域;将包括所述扩展头域的注册请求发送给S-CSCF;接收来自S-CSCF的包括加密密钥IK和完整性密钥CK的响应信息,保存IK和CK,并将不包括IK和CK的响应信息发送给终端;根据与终端的密钥相同的IK和CK,与终端协商安全关联,建立安全通道;
所述终端进一步向P-CSCF发送注册请求;接收来自P-CSCF的响应信息;根据所述终端的用户名username、password和来自P-CSCF的响应信息,计算IK和CK;根据计算出的,与网络服务器密钥相同的IK和CK,与P-CSCF建立安全通道。
4、如权利要求3所述的网络,其特征在于,所述网络服务器进一步包括:查询-呼叫会话功能单元I-CSCF,用于与HSS进行信息交互,为终端选择指定的S-CSCF;将来自P-CSCF的包括扩展头域的注册请求发送给所述指定的S-CSCF;将来自所述指定的S-CSCF的,包括IK和CK的响应信息,发送给P-CSCF;
所述P-CSCF进一步将包括扩展头域的注册请求发送给I-CSCF;接收来自I-CSCF的包括IK和CK的响应信息,保存IK和CK;
所述S-CSCF进一步接收来自I-CSCF的包括扩展头域的注册请求;将包括IK和CK的响应信息发送给I-CSCF。
5、如权利要求2所述的网络,其特征在于,所述网络服务器包括CSCF,用于接收来自终端的注册请求,从所述HSS获取password;在根据所述注册请求,判断出网络服务器对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立安全通道之后,根据注册请求和password生成认证挑战信息,并根据认证挑战信息中的内容和内部存储的参数计算IK和CK;将包括IK和CK以及认证挑战信息的响应信息发送给终端,对终端的注册请求进行响应。
6、如权利要求2至4中任意一项所述的网络,其特征在于,所述S-CSCF包括:主控单元、判断单元和计算单元,其中,
所述主控单元,用于接收所述终端发起的注册请求,与所述HSS进行信息交互,获取用户的password,并将获取到的password发送给计算单元;并将注册请求发送到判断单元;接收来自计算单元的IK和CK;将来自计算单元的IK和CK发送到外部P-CSCF;
所述判断单元,用于根据来自主控单元的注册请求,判断对终端进行认证的机制类型;根据注册请求中的扩展头域,判断终端与网络服务器之间需要建立的安全通道类型;在判断出网络服务器对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立的安全通道类型为IPSec之后,向计算单元发送注册请求中的username和计算请求;
所述计算单元,用于根据来自判断单元的计算请求,通过哈希算法计算由来自判断单元的username、内部存储的域realm、从所述HSS获取的password顺序组成的字符串;将哈希算法的计算结果与内部存储的参数nonce、保护质量qop一起作为计算参数,通过密钥生成算法,计算出32个字符的中间值,再将计算出的中间值分为两个16个字符的字符串,分别作为IK和CK;将计算出的IK和CK发送到主控单元。
7、如权利要求6所述的网络,其特征在于,所述S-CSCF进一步包括:认证单元,用于将来自计算单元的请求摘要request-digest与鉴权Authorization头域中的回应response参数进行比较,在request-digest与response参数相同时,认证通过,向主控单元发送认证成功信息;
所述主控单元进一步接收来自终端的username和包括response参数的Authorization头域,并将username和Authorization头域发送给计算单元;将来自认证单元的认证成功信息向外部终端发送;
所述计算单元进一步根据来自主控单元的username和Authorization头域中的内容,通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数Method和digest-uri顺序组成的字符串,并将两个哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest;将计算出的request-digest与Authorization头域中的response参数发送到认证单元;
所述终端进一步根据Method、所述终端的username和接收到的响应信息,计算作为认证响应的response参数,并生成包括response参数的Authorization头域;将所述终端的username与包括response参数的Authorization头域一起发送到S-CSCF,对认证挑战进行响应。
8、一种建立安全通道的装置,其特征在于,包括:网络服务器,用于接收来自外部终端的注册请求;根据注册请求和所述网络服务器保存的信息,计算密钥,并保存密钥,向外部终端发送响应信息。
9、如权利要求8所述的装置,其特征在于,所述网络服务器包括服务-呼叫会话功能单元S-CSCF,
所述S-CSCF包括:主控单元、判断单元和计算单元,其中,
所述主控单元,用于接收来自外部的注册请求,并将注册请求发送到判断单元;与外部网元进行信息交互,获取用户的password,并将获取到的password发送给计算单元;接收来自计算单元的加密密钥IK和完整性密钥CK;将来自计算单元的IK和CK提供给网络服务器;
所述判断单元,用于根据来自主控单元的注册请求,判断对终端进行认证的机制类型;根据注册请求中的扩展头域,判断终端与网络服务器之间需要建立的安全通道类型;在判断出网络服务器对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立的安全通道类型为IPSec之后,向计算单元发送计算请求和注册请求中的用户名username;
所述计算单元,用于根据来自判断单元的计算请求,通过哈希算法,分别计算由来自判断单元的username、内部存储的域realm、来自主控单元的用户密码password顺序组成的字符串,和由摘要-资源标志符digest-uri构成的字符串;将两个哈希算法的计算结果与内部存储的参数nonce、保护质量qop一起作为计算参数,通过密钥生成算法计算出32个字符的中间值,再将中间值分为两个16个字符的字符串,分别作为IK和CK;将计算出的IK和CK发送到主控单元。
10、如权利要求9所述的装置,其特征在于,所述S-CSCF进一步包括:认证单元,用于将来自计算单元的请求摘要request-digest与鉴权Authorization头域中的response参数比较,在request-digest与response参数相同时,认证通过,向主控单元发送认证成功信息;
所述主控单元进一步接收来自外部的username和包括response参数的Authorization头域,并将username和Authorization头域发送给计算单元;将来自认证单元的认证成功信息发送到外部;
所述计算单元进一步根据来自主控单元的username和Authorization头域中的内容,通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数Method和digest-uri顺序组成的字符串,并将两个哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest;将计算出的request-digest与Authorization头域中的response参数发送到认证单元。
11、一种建立安全通道的方法,其特征在于,包括以下步骤:
A、接收来自终端的注册请求,根据注册请求和网络服务器保存的信息计算密钥,并保存计算出的密钥,向终端发送响应信息;
B、终端根据接收到的响应信息和所述终端内部保存的信息,计算密钥;
C、终端与网络服务器使用所述计算出的密钥,建立安全通道。
12、如权利要求11所述的方法,其特征在于,所述步骤A为:
A1、P-CSCF根据来自终端的注册请求中的安全通道类型列表,确定与终端建立安全通道的类型,并在注册请求中,添加用于表明建立安全通道类型扩展头域,将包括所述扩展头域的注册请求发送到S-CSCF;
A2、S-CSCF接收来自P-CSCF的,包括扩展头域的注册请求,根据REGISTER消息,从HSS获取用户密码password,并判断网络服务器是否对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立的安全通道类型是否为IPSec,如果是,则执行步骤A3;
A3、根据注册请求和password生成认证挑战信息,并根据认证挑战信息中的内容和内部存储的参数,计算加密密钥IK和完整性密钥CK,将包括IK和CK以及认证挑战的响应信息发送给P-CSCF,对终端的注册请求进行响应;
A4、P-CSCF保存IK和CK,并将不包括IK和CK的响应信息发送给终端。
13、如权利要求11所述的方法,其特征在于,所述步骤A为:
CSCF根据来自终端的注册请求,从HSS获取用户密码password,并判断是否对终端采用HTTP Digest机制进行认证,且终端与网络服务器之间需要建立的安全通道类型是否为IPSec,如果是,则根据注册请求和password生成认证挑战信息,并根据认证挑战信息中的内容和内部存储的参数计算IK和CK,生成认证挑战信息,保存IK和CK,并将包括认证挑战的响应信息发送给终端。
14、如权利要求11所述的方法,其特征在于,步骤B所述计算IK和CK之前进一步包括:终端根据所述终端的用户名username、password和来自P-CSCF的响应信息计算IK和CK。
15、如权利要求12至14中任意一项所述的方法,其特征在于,所述计算IK和CK为:
通过哈希算法,分别计算由username、域realm、password顺序组成的字符串,和由参数摘要-资源标志符digest-uri构成的字符串;
将得到的哈希算法的计算结果,与内部存储的参数nonce、qop一起作为计算参数,通过密钥生成算法计算出32个字符的中间值;
将中间值的任意16个字符作为IK,将中间值的其余16个字符作为CK。
16、如权利要求15所述的方法,其特征在于,所述步骤B之后步骤C之前进一步包括:终端计算response参数,并将username和包括response参数的鉴权Authorization头域,发送到网络服务器的S-CSCF。
17、如权利要求15所述的方法,其特征在于,所述步骤C之后进一步包括:终端计算response参数,并将username和包括response参数的鉴权Authorization头域,发送到网络服务器的S-CSCF。
18、如权利要求16或17所述的方法,其特征在于,所述计算response参数为:
通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数方法Method和digest-uri顺序组成的字符串;
将哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest;
将request-digest赋值给response参数。
19、如权利要求16或17所述的方法,其特征在于,所述将username和包括response参数的Authorization头域发送到网络服务器之后进一步包括:网络服务器根据Authorization头域中的response参数,对用户进行认证,如果认证成功,将认证成功信息发送给终端。
20、如权利要求19所述的方法,其特征在于,所述对用户进行认证为:
网络服务器通过哈希算法,分别计算由参数username、realm、password顺序组成的字符串,和由参数方法Method和digest-uri顺序组成的字符串;
将哈希算法的计算结果与参数nonce、nc、cnonce、qop一起作为计算参数,通过密钥生成算法计算request-digest;
将request-digest与Authorization头域中的response参数进行比较,如果所述request-digest与所述response参数相同,则认证通过。
CN200610111835.XA 2006-08-25 2006-08-25 初始会话协议应用网络及建立安全通道的装置和方法 Active CN1913437B (zh)

Priority Applications (2)

Application Number Priority Date Filing Date Title
CN200610111835.XA CN1913437B (zh) 2006-08-25 2006-08-25 初始会话协议应用网络及建立安全通道的装置和方法
PCT/CN2007/070392 WO2008025272A1 (fr) 2006-08-25 2007-07-31 Système de protocole d'ouverture de session, moyen pour établir un canal de sécurité et procédé correspondant

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN200610111835.XA CN1913437B (zh) 2006-08-25 2006-08-25 初始会话协议应用网络及建立安全通道的装置和方法

Publications (2)

Publication Number Publication Date
CN1913437A true CN1913437A (zh) 2007-02-14
CN1913437B CN1913437B (zh) 2011-01-05

Family

ID=37722222

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200610111835.XA Active CN1913437B (zh) 2006-08-25 2006-08-25 初始会话协议应用网络及建立安全通道的装置和方法

Country Status (2)

Country Link
CN (1) CN1913437B (zh)
WO (1) WO2008025272A1 (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008025272A1 (fr) * 2006-08-25 2008-03-06 Huawei Technologies Co., Ltd. Système de protocole d'ouverture de session, moyen pour établir un canal de sécurité et procédé correspondant
CN101911742A (zh) * 2008-01-09 2010-12-08 Lg电子株式会社 用于交互rat切换的预认证方法
CN102006294A (zh) * 2010-11-25 2011-04-06 中兴通讯股份有限公司 Ims多媒体通信方法和系统、终端及ims核心网
US8417219B2 (en) 2008-01-09 2013-04-09 Lg Electronics Inc. Pre-authentication method for inter-rat handover
CN107493293A (zh) * 2017-09-04 2017-12-19 成都佑勤网络科技有限公司 一种sip终端接入鉴权的方法
CN108023873A (zh) * 2017-11-08 2018-05-11 深圳市文鼎创数据科技有限公司 信道建立方法及终端设备
WO2022156580A1 (zh) * 2021-01-22 2022-07-28 华为技术有限公司 认证方法及通信装置

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111835710B (zh) * 2020-05-29 2023-08-15 中国平安财产保险股份有限公司 校验请求体的方法、装置、计算机设备和存储介质

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2001221632A1 (en) * 2000-11-28 2002-06-11 Nokia Corporation System and method for authentication of a roaming subscriber
US7975139B2 (en) * 2001-05-01 2011-07-05 Vasco Data Security, Inc. Use and generation of a session key in a secure socket layer connection
US20030097584A1 (en) * 2001-11-20 2003-05-22 Nokia Corporation SIP-level confidentiality protection
US20030159067A1 (en) * 2002-02-21 2003-08-21 Nokia Corporation Method and apparatus for granting access by a portable phone to multimedia services
DE10307403B4 (de) * 2003-02-20 2008-01-24 Siemens Ag Verfahren zum Bilden und Verteilen kryptographischer Schlüssel in einem Mobilfunksystem und Mobilfunksystem
CN100544358C (zh) * 2005-06-17 2009-09-23 中兴通讯股份有限公司 一种基于IPSec穿越NAT的IP多媒体子系统接入安全保护方法
CN100369430C (zh) * 2005-06-21 2008-02-13 中兴通讯股份有限公司 一种ip多媒体子系统接入安全的保护方法
CN1913437B (zh) * 2006-08-25 2011-01-05 华为技术有限公司 初始会话协议应用网络及建立安全通道的装置和方法

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008025272A1 (fr) * 2006-08-25 2008-03-06 Huawei Technologies Co., Ltd. Système de protocole d'ouverture de session, moyen pour établir un canal de sécurité et procédé correspondant
CN101911742A (zh) * 2008-01-09 2010-12-08 Lg电子株式会社 用于交互rat切换的预认证方法
US8417219B2 (en) 2008-01-09 2013-04-09 Lg Electronics Inc. Pre-authentication method for inter-rat handover
CN102006294A (zh) * 2010-11-25 2011-04-06 中兴通讯股份有限公司 Ims多媒体通信方法和系统、终端及ims核心网
WO2012068922A1 (zh) * 2010-11-25 2012-05-31 中兴通讯股份有限公司 Ims多媒体通信方法和系统、终端及ims核心网
CN107493293A (zh) * 2017-09-04 2017-12-19 成都佑勤网络科技有限公司 一种sip终端接入鉴权的方法
CN108023873A (zh) * 2017-11-08 2018-05-11 深圳市文鼎创数据科技有限公司 信道建立方法及终端设备
CN108023873B (zh) * 2017-11-08 2020-12-11 深圳市文鼎创数据科技有限公司 信道建立方法及终端设备
WO2022156580A1 (zh) * 2021-01-22 2022-07-28 华为技术有限公司 认证方法及通信装置
CN114884666A (zh) * 2021-01-22 2022-08-09 华为技术有限公司 认证方法及通信装置

Also Published As

Publication number Publication date
CN1913437B (zh) 2011-01-05
WO2008025272A1 (fr) 2008-03-06

Similar Documents

Publication Publication Date Title
CN1913437A (zh) 初始会话协议应用网络及建立安全通道的装置和方法
CN100338597C (zh) 信息处理设备和方法
CN1767435A (zh) 数据通信方法和系统
CN1751533A (zh) 在移动无线电系统中形成和分配加密密钥的方法和移动无线电系统
CN1969501A (zh) 安全地产生共享密钥的系统和方法
CN1716953A (zh) 会话初始协议认证的方法
CN1859093A (zh) 在ip多媒体子系统中认证用户终端的方法
CN1901448A (zh) 通信网络中接入认证的系统及实现方法
CN1701561A (zh) 基于地址的验证系统及其装置和程序
CN101051898A (zh) 无线网络端到端通信认证方法及其装置
CN1852418A (zh) 移动电视播出控制系统和播放网络及播出方法
CN1748207A (zh) 信息处理装置、信息处理方法和计算机程序
CN1941699A (zh) 密码方法、主机系统、可信平台模块和计算机安排
CN1496628A (zh) 内容分配系统
CN1514616A (zh) 联合体环境中用户属性存储的用户登记方法和系统
CN1759564A (zh) 访问控制处理方法
CN1714542A (zh) 无线局域网互连中的识别信息保护方法
CN1701573A (zh) 远程访问虚拟专用网络中介方法和中介装置
CN1681238A (zh) 用于加密通信的密钥分配方法及系统
CN1906883A (zh) 实现基于无状态服务器的预共享私密
CN1761317A (zh) 信息处理设备和信息处理方法
CN1833403A (zh) 通信系统、通信装置、通信方法及用于实现这些的通信程序
CN1859332A (zh) 一种采用数据同步处理电子邮件的系统、装置及方法
CN1711740A (zh) 轻度可扩展验证协议的密码预处理
CN1855805A (zh) Sip消息的加密方法和加密通信系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant