一种SIP用户认证方法及装置与流程

文档序号:18133788发布日期:2019-07-10 10:27阅读:954来源:国知局
一种SIP用户认证方法及装置与流程

本发明涉及网络安全技术领域,特别涉及一种sip用户认证方法及装置。



背景技术:

随着互联网及下一代网络的发展,其方便的接入、逐步提高的接入速度、易于扩展的特性、以及丰富的业务功能,受到了运营商及用户的欢迎,但与此同时其安全性方面也逐步受到人们的关注,sip(sessioninitiationprotocol,会话初始协议)协议作为下一代网络的核心协议在安全性方面也面临着同样的问题。sip协议属于ip(internetprotocol,网络之间互联协议)应用层协议,用于在ip网上为用户提供会话应用。会话指两方或多方用户之间的语音、视频及其他媒体形式的通信,具体可能是ip电话、会议、即时消息等等。

如图1所示,sip协议主要包括三个基本的消息流程:sip用户注册流程、sip会话邀请流程、sip会话中继邀请流程。

sip会话注册流程:主要用于用户或客户端将自己的地址告诉sip服务器,只有用户注册后,其他人才能够对其进行呼叫,否则其他人无法寻找到该用户;sip会话邀请流程:主要用于某个用户去呼叫自身sip服务器的另一个已完成会话注册流程的用户(呼叫过程中,主呼人需要进行身份认证);

sip会话邀请中继流程:主要用户一个用户在呼叫另一台sip服务器已完成会话注册用户时,进行sip服务器之间的会话邀请中继。

常常通过对用户进行接入认证来提高sip协议的安全性。而为了提高用户接入认证的安全性,在现有技术中,常采用basic(基本)认证方式、digest(摘要)认证方式来进行sip认证。其中,basic认证方式使用的口令原文验证的方式,易于盗取,基本上已经摒弃了这种方式。而digest认证方式可以对口令进行md5包装。一般来说,获取口令有两种方式,其中一种方式为字典攻击,即使用轮询进行口令猜测的方法,如果口令简单比较危险。另外一种方式为攻击服务器来获得口令,如果服务器把密码存储起来那样的话就可能被盗取,所以方法是服务器端不再存储密码原文,而是使用md5包装起来,这样当md5包装的认证信息过来后,比较存储的md5数据则可知道用户的身份了。

sip的具体的认证过程是一个类似于http的无状态的基于challenge(问询)的机制(rfc2617),基本思路是认证的双方共享用户名和初始密码。在认证的过程中,认证方向被认证方发送challenge,被认证方在收到challenge后,将用户名和初始密码经过加密,形成一个字符串,传递给认证方;认证方将自己知道的用户名和密码通过同样的方式进行加密,得到一个字符串,通过比较该字符串和被认证方传递的字符串是否一致来判断用户的密码是否正确。由于在认证过程中都使用了初始密钥,所以一旦被监听便获得初始密钥。

此外,现有认证方式除了认证能力弱之外,在采用传统非对称密码认证方式时还需要引入ca(certificateauthority)认证中心来验证sip用户公钥(或者证书)的有效性或合法性,整个过程需要繁琐的证书校验,占用带宽,影响认证效率等问题。

可见,现有sip认证方式存在认证效率低的技术问题。



技术实现要素:

本发明实施例提供一种sip用户认证方法及装置,用于解决现有sip认证方式存在认证效率低的技术问题,提高认证效率。

一方面,本发明实施例提供了一种会话初始协议sip用户认证方法,应用于终端设备,包括:

接收sip用户针对所述终端设备的第一会话请求;

发送所述第一会话请求至sip服务器;

接收所述sip服务器发送的第一响应消息,并确定sip用户身份信息;

确定所述sip用户身份信息的第一摘要消息;

生成所述第一摘要信息的环签名;

发送与所述第一会话请求不同的包括所述环签名的第二会话请求至所述sip服务器,以使所述sip服务器验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。

可选地,所述生成所述第一摘要信息的环签名,包括:

确定包括所述sip用户的私钥,和所述sip服务器的公钥的至少两个参数信息;

通过所述至少两个参数信息对所述第一摘要消息进行处理,生成环签名。

可选地,若所述第一会话请求为第一会话注册请求,所述sip用户身份信息包括域名realm、第一随机数值nonce、用户名username、统一资源标识符uri和密码password,其中,所述username为一有效用户名。

可选地,若所述第一会话请求具体为第一会话邀请请求,所述sip用户身份信息包括域名realm、第一随机数值nonce、用户名username和统一资源标识符uri,其中,所述username为匿名用户名。

另一方面,本发明实施例还提供了一种会话初始协议sip用户认证方法,应用于sip服务器,包括:

接收sip用户针对终端设备发送的第一会话请求;

基于所述第一会话请求向所述终端设备发送第一响应消息,以使所述终端设备生成sip用户身份信息的第一摘要消息的环签名;

接收所述终端设备发送的与所述第一会话请求不同的包括所述环签名的第二会话请求,验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。

可选地,所述验证所述环签名是否有效,包括:

确定包括所述sip用户身份信息的第二摘要消息,所述环签名的系统公钥,以及所述sip服务器的私钥的至少三个参数信息;

通过所述至少三个参数信息验证所述环签名是否有效。

可选地,所述第一会话请求具体为第一会话注册请求;或者,

所述第一会话请求具体为第一会话邀请请求。

另一方面,一种会话初始协议sip用户认证装置,应用于终端设备,包括:

第一接收单元,用于接收sip用户针对所述终端设备的第一会话请求;

第一发送单元,用于发送所述第一会话请求至sip服务器;

第二接收单元,用于接收所述sip服务器发送的第一响应消息,并确定sip用户身份信息;

确定单元,用于确定所述sip用户身份信息的第一摘要消息;

生成单元,用于生成所述第一摘要信息的环签名;

第二发送单元,用于发送与所述第一会话请求不同的包括所述环签名的第二会话请求至所述sip服务器,以使所述sip服务器验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。

可选地,所述生成单元用于:

确定包括所述sip用户的私钥,和所述sip服务器的公钥的至少两个参数信息;

通过所述至少两个参数信息对所述第一摘要消息进行处理,生成环签名。

若所述第一会话请求为第一会话注册请求,所述sip用户身份信息包括域名realm、第一随机数值nonce、用户名username、统一资源标识符uri和密码password,其中,所述username为一有效用户名。

可选地,若所述第一会话请求具体为第一会话邀请请求,所述sip用户身份信息包括域名realm、第一随机数值nonce、用户名username和统一资源标识符uri,其中,所述username为匿名用户名。

另一方面,本发明实施例还提供了一种会话初始协议sip用户认证方法,应用于sip服务器,包括:

接收sip用户针对终端设备发送的第一会话请求;

基于所述第一会话请求向所述终端设备发送第一响应消息,以使所述终端设备生成sip用户身份信息的第一摘要消息的环签名;

接收所述终端设备发送的与所述第一会话请求不同的包括所述环签名的第二会话请求,验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。

可选地,所述验证所述环签名是否有效,包括:

确定包括所述sip用户身份信息的第二摘要消息,所述环签名的系统公钥,以及所述sip服务器的私钥的至少三个参数信息;

通过所述至少三个参数信息验证所述环签名是否有效。

可选地,所述第一会话请求具体为第一会话注册请求;或者,

所述第一会话请求具体为第一会话邀请请求。

另一方面,本发明实施例还提供了一种sip会话初始协议sip用户认证装置,应用于sip服务器,包括:

第三接收单元,用于接收sip用户针对终端设备发送的第一会话请求;

第三发送单元,基于所述第一会话请求向所述终端设备发送第一响应消息,以使所述终端设备生成sip用户身份信息的第一摘要消息的环签名;

验证单元,用于接收所述终端设备发送的与所述第一会话请求不同的包括所述环签名的第二会话请求,验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。

可选地,所述验证单元用于:

确定包括所述sip用户身份信息的第二摘要消息,所述环签名的系统公钥,以及所述sip服务器的私钥的至少三个参数信息;

通过所述至少三个参数信息验证所述环签名是否有效。

可选地,所述第一会话请求具体为第一会话注册请求;或者,

所述第一会话请求具体为第一会话邀请请求。

另一方面,本发明实施例还提供了一种计算机装置,所述终端包括处理器,所述处理器用于执行存储器中存储的计算机程序时实现如上所述的会话初始协议sip用户认证方法的步骤。

另一方面,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的会话初始协议sip用户认证方法的步骤。

本发明实施例中的上述一个或多个技术方案,至少具有如下一种或多种技术效果:

在本发明实施例的技术方案中,一种会话初始协议sip用户认证方法,应用于终端设备,包括:接收sip用户针对所述终端设备的第一会话请求;发送所述第一会话请求至sip服务器;接收所述sip服务器发送的第一响应消息,并确定sip用户身份信息;确定所述sip用户身份信息的第一摘要消息;生成所述第一摘要信息的环签名;发送与所述第一会话请求不同的包括所述环签名的第二会话请求至所述sip服务器,以使所述sip服务器验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。也就是说,在终端设备和sip服务器进行会话的过程中,终端设备直接生成sip用户身份信息的第一摘要信息的环签名,进一步地由指定的sip服务器直接对所述环签名进行验证,换句话说,本发明实施例提出了基于身份指定验证者的环签名方案,能够有效地sip用户的身份进行认证,有效解决了现有sip认证方式存在认证效率低的技术问题,提高了认证效率。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例。

图1为sip协议的三个基本的消息流程示意图;

图2为本发明实施例一提供了一种会话初始协议sip用户认证方法的方法流程图;

图3为本发明实施例一提供了一种会话初始协议sip用户认证方法中步骤s105的方法流程图;

图4为本发明实施例一提供了一种会话初始协议sip用户认证方法对会话注册的认证流程示意图;

图5为本发明实施例一提供了一种会话初始协议sip用户认证方法对会话邀请的认证流程示意图;

图6为本发明实施例二提供的一种会话初始协议sip用户认证装置的结构示意图;

图7为本发明实施例三提供的一种会话初始协议sip用户认证方法的另外一种方法流程图;

图8为本发明实施例三提供的一种会话初始协议sip用户认证方法中步骤s303中步骤:验证所述环签名是否有效的方法流程图;

图9为本发明实施例四提供的一种会话初始协议sip用户认证装置的另外一种结构示意图。

具体实施方式

本发明实施例提供一种sip用户认证方法及装置,用于解决现有sip认证方式存在认证效率低的技术问题,提高认证效率。

本发明实施例中的技术方案为解决上述的技术问题,总体思路如下:

一种会话初始协议sip用户认证方法,应用于终端设备,包括:

接收sip用户针对所述终端设备的第一会话请求;

发送所述第一会话请求至sip服务器;

接收所述sip服务器发送的第一响应消息,并确定sip用户身份信息;

确定所述sip用户身份信息的第一摘要消息;

生成所述第一摘要信息的环签名;

发送与所述第一会话请求不同的包括所述环签名的第二会话请求至所述sip服务器,以使所述sip服务器验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。

在本发明实施例的技术方案中,一种会话初始协议sip用户认证方法,应用于终端设备,包括:接收sip用户针对所述终端设备的第一会话请求;发送所述第一会话请求至sip服务器;接收所述sip服务器发送的第一响应消息,并确定sip用户身份信息;确定所述sip用户身份信息的第一摘要消息;生成所述第一摘要信息的环签名;发送与所述第一会话请求不同的包括所述环签名的第二会话请求至所述sip服务器,以使所述sip服务器验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。也就是说,在终端设备和sip服务器进行会话的过程中,终端设备直接生成sip用户身份信息的第一摘要信息的环签名,进一步地由指定的sip服务器直接对所述环签名进行验证,换句话说,本发明实施例提出了基于身份指定验证者的环签名方案,能够有效地sip用户的身份进行认证,有效解决了现有sip认证方式存在认证效率低的技术问题,提高了认证效率。

在具体实施过程中,本发明具体提出的为基于身份指定验证者的环签名方案,为了简化描述,在下文中所出现的环签名均表明为基于身份指定验证者的环签名。

为了更好的理解上述技术方案,下面通过附图以及具体实施例对本发明技术方案做详细的说明,应当理解本发明实施例以及实施例中的具体特征是对本发明技术方案的详细的说明,而不是对本发明技术方案的限定,在不冲突的情况下,本发明实施例以及实施例中的技术特征可以相互结合。

在具体实施过程中,所述sip用户认证方式可应用于终端设备,本发明实施例中所提及的终端包括但不限于:智能手机(如android手机、ios手机)、平板电脑、笔记本电脑、掌上电脑、穿戴式智能设备等电子设备,也可以是别的电子设备,在此就不一一举例了。所述sip服务器可以是b2b用户代理服务器,还可以是代理服务器,还可以是重定向服务器,还可以是注册服务器,等等,在此就不一一举例了。

实施例一

请参考图2,本发明实施例一提供了一种会话初始协议sip用户认证方法,应用于终端设备,包括:

s101:接收sip用户针对所述终端设备的第一会话请求;

s102:发送所述第一会话请求至sip服务器;

s103:接收所述sip服务器发送的第一响应消息,并确定sip用户身份信息;

s104:确定所述sip用户身份信息的第一摘要消息;

s105:生成所述第一摘要信息的环签名;

s106:发送与所述第一会话请求不同的包括所述环签名的第二会话请求至所述sip服务器,以使所述sip服务器验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。

在具体实施过程中,步骤s101至步骤s106的具体实现过程如下:

首先,接收sip用户针对所述终端设备的第一会话请求,比如,所述第一会话请求为会话注册请求,还可以是会话邀请请求,等等。举个具体的例子来说,用户a通过ip网络向用户b拨打电话。然后,所述终端设备将所述第一会话请求发送至sip服务器;所述sip服务器在接收到所述第一会话请求后如果发现所述sip用户还没有会话注册,则向所述终端设备返回第一响应消息,所述第一响应消息用于表征所述sip服务器要对所述sip用户进行认证。比如,所述第一响应消息为401unauthorized(未鉴权)响应,再比如,所述第一响应消息为407proxyauthenticationrequired(代理需要认证)响应。所述sip服务器在发送所述第一响应消息的同时,通过响应参数返回所述sip服务器的域名realm和随机数值nonce给所述终端设备,从而发起对所述sip用户的认证过程。所述终端设备收到重注册响应后,确定至少包括域名realm和随机数值nonce、用户名username、统一资源标识符uri(uniformresourceidentifier)的sip用户身份信息。然后,确定所述sip用户身份信息的第一摘要消息,比如,确定所述sip用户身份信息的md5(messagedigestalgorithm5,信息摘要算法5)值,再比如,确定所述sip用户身份信息的sha2(securehashalgorithm2,安全散列算法2)值。然后,生成所述第一摘要消息的环签名,并将所述环签名作为相应的响应消息response。然后,所述终端设备重新发起包括所述环签名的会话请求至所述sip服务器,然后,由所述sip服务器对所述环签名进行验证。若所述环签名有效,则表明所述sip用户通过所述sip服务器的认证。

在本发明实施例中,请参考图3,步骤s105:生成所述第一摘要信息的环签名,包括:

s201:确定包括所述sip用户的私钥,和所述sip服务器的公钥的至少两个参数信息;

s202:通过所述至少两个参数信息对所述第一摘要信息进行处理,生成环签名。

在具体实施过程中,步骤s201至步骤s202的具体实现过程如下:

首先,确定包括所述sip用户的私钥,和所述sip服务器的公钥的至少两个参数信息,其中,所述至少两个参数信息除了包括所述sip用户的私钥和所述sip服务器的公钥外,还可以包括环成员身份的集合,还可以包括sip用户的公钥,等等。然后,通过所述至少两个参数信息对所述第一摘要信息进行处理,生成环签名。

下面详细介绍一下步骤s202中所述环签名的具体实现过程:

令g1是一个阶为大素数l的循环加法群,其中g1是一个gdh群。h1(·)和h2(·)是两个哈希(hash)函数,分别记为h1:{0,1}*→g和h2{0,1}*→z/l。kgc定义双线性对其中g2是阶为大素数l的循环乘法群。其中,l表示环成员,sip用户s的私钥为公钥为sip服务器私钥为公钥为

首先,对各个参数进行初始化,选取g1中的一个生成元p,选取一个随机数x∈z/l,令ppub=xp。系统公共参数为(p,ppub,h1,h2)。主密钥为s。需要注意的是h1和h2在后面的证明中会被看作随机预言机。

然后,输入一个sip用户的身份id∈{0,1}*,密钥生成中心计算对应用户身份id的公钥qid,其中qid=h1(id)∈g1。计算参数did,其中did=xqid,并且将did输出作为对应用户身份id私钥。密钥生成中心通过安全通道输出私钥给对应的签名者。

然后,令l={id1,id2,…,idn}是n个用户身份的集合。实际的签名者利用集合l通过以下的步骤给出一个基于身份的环签名。

选取ui∈g1,计算hi=h2(m||l||ui),其中,

选取秘密参数r0∈z/l,如果r0=0,则无效重新选取;

计算rs=h2(m||l||r3);

然后,选取t∈z/l,计算

然后,计算hs=h2(m||l||us),

然后,输出基于消息m的签名其中,所述第一摘要消息计为消息m。由公式可知,通过包括所述sip用户的私钥和所述sip服务器的公钥的至少两个参数可以对所述第一摘要消息进行处理,生成环签名。

此外,在本发明实施例中,在所述sip服务器接收到所述终端设备发送的包括所述环签名的第二会话请求后,所述sip服务器验证所述环签名是否有效。对所述环签名的具体验证过程如下:

首先,计算hi=h2(m||l||ui),其中

然后,计算

进一步地,验证是否满足等式如果满足,那么所述环签名是有效的,否则所述环签名是无效的。此外,由验证公式,本领域的技术人员可知,基于所述环签名是能够用来指定对所述sip用户身份进行验证的服务器qidv的,比如,基于所述环签名,只有sip服务器a才可以对所述sip用户的身份进行验证,而sip服务器b不能对所述sip用户的身份进行验证,从而提高了认证方式的安全强度。此外,本发明实施例中的环签名方案具有基于sip用户身份的属性,可以通过用户名直接生成公钥,不需要ca认证中心对sip服务器的证书的有效性进行验证。

在具体实施过程中,指定验证者可以通过如下方法产生一个与基于身份环成员签名无法区分的副本。

首先,选取u′i∈g1,计算h′i=h2(m||l||u′i),其中

然后,选取秘密参数r′0∈z/l,如果r′0=0,则无效重新选取。计算r′0=r′0p,r′v=h2(m||l||r′3);

然后,选取t'∈z/l,计算

然后,计算h′v=h2(m||l||u′v),

然后,输出基于消息m的签名在实际的应用中,有时候我们可能仅仅是需要向指定验证者声明自己的身份,但是在某些情况下,我们可能需要向所有的人证明自己的实际的签名者身份。因此,可以分成可验证签名者属性的证明分成两种状况进行证明。

如果签名者只需向指定验证者证明自己实际签名者身份,那么签名者只需通过向指定验证者发送或者秘密参数r0证明自己是实际的签名者。

如果签名者想要向任意第三方证明自己的实际签名者身份,那么签名者可以有两种选择。一种是自己公布参数同时要求用户b公布参数通过比对两个值来向任意第三方证明自己的身份,另一种则是直接公布秘密参数r0通过等式来证明自己的身份。

下面是对具有多重属性基于身份环签名方案产生签名的具体验证过程:

原始签名验证过程:

模拟签名副本验证过程:

通过以上的正确性分析,本发明实施例中提出的具有多重属性的基于身份的环签名方案对于指定的验证者能够被验证,是正确的。

此外,本发明实施例中基于身份的环签名方案还有以下特性:签名匿名性、第三方不可验证性、可验证签名者身份、不可传递性(签名者身份模糊性)、弱可链接性。

其中,签名匿名性:

在本发明实施例的环签名方案中,即使攻击者知道了所有环成员和指定验证者的私钥,在无限的计算资源下也无法以比1/n(a不是签名者集合的一员)或1/(n-1)(a是签名者集合的一员)更大的概率获得签名者的实际身份。

证明:由于∪i≠s{ui}和t是随机产生的,因此是均匀分布的。

是否泄漏了关于用户a的信息。由于我们集中于的值,并且hs是可以公开计算的,rs对于指定验证者也是可以计算的。显而易见,与us是相关的。指定验证者能够通过:

计算的值。双线性映射通过检验等式是否成立能够将联系起来。指定签名验证者能够通过检验等式:

是否成立来判断idj是否为真正的签名者。

然而,这个方法是没有用的。不仅当j=s时以上的等式成立,而且当时以上的等式仍然成立。具体过程如下:

因此,即使攻击者获得了所有环成员的私钥,利用私钥进行上面的试探性攻击,仍然无法获得设计签名者的身份。

如果签名验证者想要利用环成员公钥通过攻击chandana方案的攻击方式攻击该方案,同样是不可能成功的,具体攻击过程如下:

又因为:

因此:

又因为:

因此:

通过上面的具体分析可知,攻击者计算出参数j,hs和公钥但是由于t是一个随机数。因此,攻击者如果通过hi和其中i∈{1,…,n},利用环成员公钥进行试探性攻击,是无法得到满足等式的结果的,从而无法获知实际签名者的身份。

因此,通过以上两部分的分析可以看出,对于任意的固定消息m和固定身份集合l,不管谁是实际的签名者,分配是独立且均匀分布的。因此,即使攻击者得到了身份集合l所有用户身份相关私钥并且拥有无限的计算资源,他仍然不能以比随机猜测更高的概率确定实际签名者的身份。

对于第三方不可验证性:

本发明实施例提出的具有多重属性的基于身份环签名方案具有第三方不可验证性。

证明:假设用户a是签名者,用户b是指定签名验证者,用户c则是攻击者。用户b如果想要对用户a的签名进行验证,那么就必须利用用户a签名中的参数,和自己的私钥通过公式:

计算参数rs从而对用户a的签名进行验证。如果用户c想要拥有对签名有效性进行验证的权限,那么只存在两种可能。一种是用户c得到了用户b的私钥,另一种可能是用户c同时得到了用户a的私钥、秘密参数r0和随机数k。因此用户c只要不知道用户a和用户b的私钥就不可能对签名的有效性进行验证。在第二种情况中,即使用户c成功窃取了用户a的私钥,仍然需要秘密参数r0和随机数k才能够通过公式rs=h2(m||l||r3)得到参数r进而对签名进行验证。如果用户c随机猜测一个参数r′0,那么等式的概率不会高于1/(l-1)l。

对于可验证签名者身份:

在不知道秘密参数r0的情况下,任何人不能够证明自己是基于身份的环签名方案的实际签名者,非实际签名者猜测出秘密值r0的概率不大于1/(l-1)。

证明:在实际的应用中,有时候我们可能仅仅是需要向指定验证者声明自己的身份,但是在某些情况下,我们可能需要向所有的人证明自己的实际的签名者身份。因此,我们将分成可验证签名者属性的证明两种状况分别来进行证明。

如果用户c冒充自己是实际的签名者,那么就需要提供参数用户c如果想要得到参数那么他就需要知道用户b的私钥,或者秘密参数r0和用户a的私钥。用户c如果想要获得用户b的私钥来计算参数显然是不太现实的。同样用户c如果想要通过获得秘密参数r0和用户a的私钥来计算参数更是不可能的。

假如用户a采用向所有人公布秘密参数r0的方式来证明自己的身份。用户a向大家公布秘密参数r0。人们通过签名中的参数r2通过公式来进行验证。如果相同,那么用户a就是实际签名者。如果用户c想要冒充实际签名者,那么就必须能够猜测或计算出秘密参数r0。如果用户c随机猜测一个参数r′0,即使在已经知道指定验证者身份的前提下,等式成立的概率不会高于1/(l-1)。如果用户c想要通过等式求解r0',那么用户c就需要解决椭圆曲线离散对数问题。因此用户c是无法成功获得或者以高于1/(l-1)的概率猜出秘密参数r0,因此我们的方案是安全的。

对于不可传递性(签名者身份模糊性):

本文提出的具有多重属性的基于身份环签名方案具有不可传递性,即制定验证者可以验证签名的有效性但是不能向其他人证明签名的有效性。

证明:假设用户a为实际签名者,用户b为签名验证者,用户c为第三方。由签名副本模逆算法可知,新方案满足指定验证者签名的不可传递性。若

为一有效签名,那么其由用户a和用户b产生的概率均为1/2。也就是说用户b可以生成与用户a不可区分的签名副本,因此用户b无法让用户c相信签名是由用户a产生的。

对于弱可链接性:

本文提出的具有多重属性的基于身份环签名方案具有弱可链接性,即在前者身份验证参数不变的情况下,制定验证者可以通过这个参数判断签名是否来自于同一个人,但是无法判断真正的签名者是谁。

证明:假设用户a为实际签名者,用户b为签名验证者,用户c为第三方。由于用户a的签名中存在一个参数如果用户a在多次签名中使用相同的秘密参数r0并且为同一个指定验证者,那么就会重复出现,因此用户a和用户b就可以通过参数判断签名是否由同一用户产生,但是用户b和用户c均无法通过参数得到用户a的具体身份信息。

基于上述分析可知,本发明实施例提供的指定验证者的用户身份认证方式,能够为sip用户注册和会话邀请提供可信会话认证。在现有sip认证方式的基础上提供了基于环签名认证方式,该认证方式包括两种认证模式,ring模式和vring模式。

ring模式:对于用户的身份通过基于身份指定验证者环签名和用户密码进行验证,认证粒度具体到确定的用户。

vrang模式:对用户的身份通过基于身份指定验证者环签名进行验证认证,只进行是否是合法用户的认证而不进行具体到一个用户的认证,从而实现会话邀请过程中主呼人的身份隐藏。

此外,ring模式利用环签名保证sip用户属于可信群组,然后通过sip用户身份信息(包括password信息)进行用户身份唯一性确认,并限制只有指定验证者才能够对用户身份的有效性进行认证。vring模式并不对sip用户的具体身份进行认证,只对用户是否属于群组成员进行认证(不包括password信息),这样可以在用户进行会话邀请时实现隐藏主呼人的身份信息。此外,两种认证模式在生成环签名时可以指定验证者的身份,保证只有指定的验证者才能够验证签名的有效性,非指定验证者无法验证签名的有效性,进一步地提高了认证方式的安全性。

在本发明实施例中,若所述第一会话请求为第一会话注册请求,所述sip用户身份信息包括域名realm、第一随机数值nonce、用户名username、统一资源标识符uri和密码password,其中,所述username为一有效用户名。所述有效用户名表明所述sip用户的用户名是已经存在的用户名,而不是匿名用户名。

在具体实施过程中,由于会话在进行注册时必须采取真实的身份,否则在会话邀请时,服务器就无法寻找到被呼用户,因此仅可以使用ring模式。用户每次发起匿名会话时,需要到sip服务器申请临时电话号码。如果要申请电话号码就必须首先到sip服务器注册,认证成功后才能够发起会话。对会话注册的认证流程示意图如图4所示。

事件1:sip用户生成会话注册信息(register),然后向sip服务器发起会话注册请求;

事件2:sip服务器收到请求后如果发现还没有会话注册,向sip用户返回401unauthorized(无权)响应并且通过www-authenticate字段携带sip应用服务器支持的认证方式ring和sip服务器域名realm,产生本次认证的nonce。其中,所述realm必须是一个全局唯一的字符串,并且全部由可显示的字符组成,用来呈现成用户,指示用户输入用户名及密码。nonce是由服务器提供的一串以16进制或base64表示的随机字符串。

事件3:sip用户收到重注册响应后将realm、nonce、username、uri、password的md5值作为消息m,并计算签名σ作为相应的响应消息response,然后重新发起会话注册请求(register)。具体response的生成算法如下所示:

选取ui∈g1,计算hi=h2(m||l||ui),其中

选取秘密参数r0∈z/l,如果r0=0,则无效重新选取。

然后,计算rs=h2(m||l||r3);

选取t∈z/l,计算

计算hs=h2(m||l||us),

输出基于消息m的签名

其中,l表示环成员,sip用户的私钥为公钥为sip服务器私钥为公钥为

事件4:sip服务器收到sip用户的注册请求,首先检查nonce的正确性,如果和在401unauthorized响应中产生的nonce相同,则通过。否则,直接返回失败。然后,sip服务器会根据realm、nonce、username、uri、password通过md5计算消息m,然后验证环签名σ的有效性。当然,还可以是根据realm、nonce、username、uri、password通过sha2计算消息m。以md5为例,具体的计算过程如下:

首先,计算hi=h2(m||l||ui),其中

然后,计算

然后,验证是否成立;

若合法,将用户信息(m,response)记录到数据库中,并向用户返回响应消息200ok。

在本发明实施例中在sip用户注册时,采用基于sip用户身份来指定验证者环签名对sip用户进行身份认证,具有更高的安全强度。

在本发明实施例中,若所述第一会话请求具体为第一会话邀请请求,所述sip用户身份信息包括域名realm、第一随机数值nonce、用户名username和统一资源标识符uri,其中,所述username为匿名用户名。其中,所述匿名用户名可以是随机生成的用户名。在具体实施过程中,对会话邀请的认证流程示意图如图5所示。在具体实施过程中,所述username还可以是有效用户名。在会话邀请过程中,为实现主呼用户身份的隐藏,本处采用vring模式进行描述,详细情况请看流程中的具体步骤。

事件1:sip用户s随机生成一个用户名发会话邀请invite请求到sip服务器,请求sip服务器邀请sip用户a加入会话。

事件2:sip服务器给sip用户s回100trying(正在处理中)表示已经接收到请求消息,正在对其进行处理。

事件3:sip服务器给sip用户s发407proxyauthenticationrequired响应,表明sip服务器端要求对sip用户s进行认证,并且通过响应参数返回realm和nonce给终端从而发起对用户的认证过程。

事件4:sip用户s收到响应后首先发ack消息给sip服务器,证实已经收到sip服务器对于invite请求的最终响应。

事件5:sip用户s收到重邀请响应后将realm、nonce、username、uri的md5值作为消息m,并计算签名σ作为相应response,然后重新发起会话邀请请求。具体response的生成算法如下所示:

选取ui∈g1,计算hi=h2(m||l||ui),其中

选取秘密参数r0∈z/l,如果r0=0,则无效重新选取。

计算rs=h2(m||l||r3);

选取t∈z/l,计算

计算hs=h2(m||l||us),

输出基于消息m的签名

其中,l表示环成员,sip用户s的私钥为公钥为sip服务器私钥为公钥为

事件6:sip服务器收到sip用户s的会话邀请请求,首先检查nonce的正确性,如果和在407proxyauthenticationrequired响应中产生的nonce相同,则通过。否则,直接返回失败。然后,sip服务器会根据realm、nonce、username、uri通过md5计算消息m,然后,结合sip服务器的私钥验证签名σ的有效性,如果签名校验通过sip服务器给sip用户s回100trying表示已经接收到请求消息,正在对其进行处理。具体签名验证过程如下:

计算hi=h2(m||l||ui),其中

计算

然后,验证是否成立。

事件7:sip服务器向sip用户a发invite请求消息,请求sip用户a加入会话。并且通过该invite请求消息携带sip用户s的会话描述给sip用户a。

事件8:sip用户a给sip服务器回100trying表示已经接收到请求消息,正在对其进行处理。

事件9:sip用户a振铃,并回180ringing(振铃)响应通知sip用户s。

事件10:sip服务器回180ringing响应给sip用户s,sip用户s听回铃音。

事件11:sip用户a给sip服务器回200ok(会话成功)响应表示其发过来的invite请求已经被成功接受、处理。并且通过该消息将自身的ip地址,端口号,静荷类型,静荷类型对应的编码等信息传送给sip服务器。

事件12:sip服务器给sip用户s回200ok响应表示其发过来的invite请求已经被成功接受、处理,并且将sip用户a的会话描述传送给sip用户s。

事件13:sip用户s发ack消息给sip服务器,证实已经收到sip服务器对于invite请求的最终响应。

事件14:sip服务器发ack消息给sip用户a,证实已经收到sip用户a对于invite请求的最终响应。

事件15:sip用户s挂机,发bye消息给sip服务器,请求结束本次会话。

事件16:sip服务器给sip用户s回487requestterminated(请求终止)响应,表明请求终止。

事件17:sip服务器收到sip用户s发过来的bye消息,知道sip用户s已挂机,给sip用户a发bye请求,请求结束本次会话。

事件18:sip用户a挂机,给sip服务器反馈200ok响应,表明已经成功结束会话。

在本发明实施例中在sip用户进行会话邀请时,采用基于sip用户身份来指定验证者环签名对sip用户进行身份认证,具有更高的安全强度。

当然,在本发明实施例中,还可以采用ring模式来进行会话邀请认证,进而完整真实sip用户的身份认证。此外,本领域的技术人员可以根据用户的实际使用习惯来设计会话邀请认证的具体流程,在此就不一一赘述了。

此外,基于同样的发明构思,在sip用户进行会话中继时,也可以采用基于sip用户身份来指定验证者环签名对sip用户进行身份认证,同样具有更高的安全强度。当然,本领域的技术人员可以根据实际需要来设计对sip用户身份进行认证,在此就不一一举例说明了。

相比于传统的sip呼叫方案,本方案将原有的digest和basic用户身份认证方式替换为通过环签名(ring模式或vring模式)进行验证,具有更加高的安全强度,并且本方案采用的是环签名方案具有指定验证者特性,即只有sip服务器能够验证签名是否有效,其他人无法验证签名是否有效。并且本方案中使用的环签名方案是基于身份的方式,这样就不需引入第三方ca认证中心,避免了繁琐的证书校验机制,由于环签名方案是基于椭圆曲线实现的,因此与基于大数和离散对数的密码方案相比不但节省了大量的存储空间,而且计算速度更快。

实施例二

基于与本发明实施例一同样的发明构思,请参考图6,本发明实施例还提供了一种会话初始协议sip用户认证装置,应用于终端设备,包括:

第一接收单元10,用于接收sip用户针对所述终端设备的第一会话请求;

第一发送单元20,用于发送所述第一会话请求至sip服务器;

第二接收单元30,用于接收所述sip服务器发送的第一响应消息,并确定sip用户身份信息;

确定单元40,用于确定所述sip用户身份信息的第一摘要消息;

生成单元50,用于生成所述第一摘要信息的环签名;

第二发送单元60,用于发送与所述第一会话请求不同的包括所述环签名的第二会话请求至所述sip服务器,以使所述sip服务器验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。

在本发明实施例中,所述生成单元用于:

确定包括所述sip用户的私钥,和所述sip服务器的公钥的至少两个参数信息;

通过所述至少两个参数信息对所述第一摘要消息进行处理,生成环签名。

在本发明实施例中,若所述第一会话请求为第一会话注册请求,所述sip用户身份信息包括域名realm、第一随机数值nonce、用户名username、统一资源标识符uri和密码password,其中,所述username为一有效用户名。

在本发明实施例中,若所述第一会话请求具体为第一会话邀请请求,所述sip用户身份信息包括域名realm、第一随机数值nonce、用户名username和统一资源标识符uri,其中,所述username为匿名用户名。

实施例三

基于与本发明实施例一同样的发明构思,请参考图7,本发明实施例还提供了一种会话初始协议sip用户认证方法,应用于sip服务器,包括:

s301:接收sip用户针对终端设备发送的第一会话请求;

s302:基于所述第一会话请求向所述终端设备发送第一响应消息,以使所述终端设备生成sip用户身份信息的第一摘要消息的环签名;

s303:接收所述终端设备发送的与所述第一会话请求不同的包括所述环签名的第二会话请求,验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。

对于步骤s301至步骤s303已在实施例一中进行了详述,在此就不一一赘述了。

在本发明实施例中,如图8所示,步骤s303中步骤:验证所述环签名是否有效,包括:

s401:确定包括所述sip用户身份信息的第二摘要消息,所述环签名的系统公钥,以及所述sip服务器的私钥的至少三个参数信息;

s402:通过所述至少三个参数信息验证所述环签名是否有效。

对于步骤s401至步骤s402已在实施例一中进行了详述,在此就不一一赘述了。

在本发明实施例中,所述第一会话请求具体为第一会话注册请求;或者,

所述第一会话请求具体为第一会话邀请请求。

实施例四

基于与本发明实施例一同样的发明构思,请参考图9,本发明实施例还提供了一种会话初始协议sip用户认证装置,应用于sip服务器,包括:

第三接收单元70,用于接收sip用户针对终端设备发送的第一会话请求;

第三发送单元80,基于所述第一会话请求向所述终端设备发送第一响应消息,以使所述终端设备生成sip用户身份信息的第一摘要消息的环签名;

验证单元90,用于接收所述终端设备发送的与所述第一会话请求不同的包括所述环签名的第二会话请求,验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。

在本发明实施例中,验证单元90用于:

确定包括所述sip用户身份信息的第二摘要消息,所述环签名的系统公钥,以及所述sip服务器的私钥的至少三个参数信息;

通过所述至少三个参数信息验证所述环签名是否有效。

在本发明实施例中,所述第一会话请求具体为第一会话注册请求;或者,所述第一会话请求具体为第一会话邀请请求。

基于本发明实施例一同样的发明构思,本发明实施例中提供了一种计算机装置,所述计算机装置包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述的初始会话协议sip用户认证方法的步骤。

基于本发明实施例一同样的发明构思,本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的初始会话协议sip用户认证方法的步骤。

在本发明实施例的技术方案中,一种会话初始协议sip用户认证方法,应用于终端设备,包括:接收sip用户针对所述终端设备的第一会话请求;发送所述第一会话请求至sip服务器;接收所述sip服务器发送的第一响应消息,并确定sip用户身份信息;确定所述sip用户身份信息的第一摘要消息;生成所述第一摘要信息的环签名;发送与所述第一会话请求不同的包括所述环签名的第二会话请求至所述sip服务器,以使所述sip服务器验证所述环签名是否有效,其中,若所述环签名有效,表明所述sip用户通过所述sip服务器的认证。也就是说,在终端设备和sip服务器进行会话的过程中,终端设备直接生成sip用户身份信息的第一摘要信息的环签名,进一步地由指定的sip服务器直接对所述环签名进行验证,换句话说,本发明实施例提出了基于身份指定验证者的环签名方案,能够有效地sip用户的身份进行认证,有效解决了现有sip认证方式存在认证效率低的技术问题,提高了认证效率。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。

本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。

显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1