CN115242521A - 密码认证方法、装置及终端设备发起呼叫的通讯方法 - Google Patents

密码认证方法、装置及终端设备发起呼叫的通讯方法 Download PDF

Info

Publication number
CN115242521A
CN115242521A CN202210880143.0A CN202210880143A CN115242521A CN 115242521 A CN115242521 A CN 115242521A CN 202210880143 A CN202210880143 A CN 202210880143A CN 115242521 A CN115242521 A CN 115242521A
Authority
CN
China
Prior art keywords
turn
password
authentication
user name
value
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.)
Pending
Application number
CN202210880143.0A
Other languages
English (en)
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.)
Shenzhen Grandstream Networks Technologies Co ltd
Original Assignee
Shenzhen Grandstream Networks 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 Shenzhen Grandstream Networks Technologies Co ltd filed Critical Shenzhen Grandstream Networks Technologies Co ltd
Priority to CN202210880143.0A priority Critical patent/CN115242521A/zh
Publication of CN115242521A publication Critical patent/CN115242521A/zh
Pending legal-status Critical Current

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/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3239Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Telephonic Communication Services (AREA)

Abstract

本申请实施例属于信息通讯领域,涉及一种密码认证方法,包括配置服务器接收终端设备发送的TURN密码请求,根据TURN密码请求,生成第一TURN密码发送给终端设备;TURN服务器接收终端设备发送的TURN分配请求和终端设备使用第一TURN密码、用户名以及随机数Nonce值计算获得的第一认证摘要值;TURN服务器根据TURN分配请求,生成第二TURN密码,并使用第二TURN密码、用户名以及Nonce值获得第二认证摘要值;TURN服务器对比第一认证摘要值和第二认证摘要值,二者相等则认证通过。本申请还提供一种密码认证装置及终端设备发起呼叫的通讯方法。本申请可以有效的解决大量的用户账号信息维护问题,避免了大量的数据库维护工作,安全可靠。

Description

密码认证方法、装置及终端设备发起呼叫的通讯方法
技术领域
本申请涉及信息通讯技术领域,尤其涉及密码认证方法、装置及终端设备发起呼叫的通讯方法。
背景技术
随着行业对基于IP的语音传输(Voice over Internet Protocol,缩写为VOIP)的安全的越来越重视,安全可靠的TURN服务被广泛的应用,但是公开的TURN服务需要面对指数级增长的用户量。
现有技术中,TURN服务器(TURN服务器)一般使用数据库中保存的静态账号信息,随着用户量增大以及定期更新账号密码的需求,使得数据库维护的工作量很大而且不安全。
发明内容
本申请实施例的目的在于提出一种密码认证方法、装置及终端设备发起呼叫的通讯方法,以解决现有技术中TURN服务器账号密码信息的维护工作量很大而且不安全的问题。
为了解决上述技术问题,本申请实施例提供一种密码认证方法,采用了如下所述的技术方案:
配置服务器接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名;
所述配置服务器根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备;
TURN服务器接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名;
所述TURN服务器根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值;
所述TURN服务器对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过。
进一步的,配置服务器根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备具体包括:
所述配置服务器根据所述TURN密码请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第一TURN密码发送给所述终端设备。
进一步的,配置服务器根据所述TURN密码请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第一TURN密码,包括:
根据共享密钥和当前UTC时间,计算获得第一哈希值;
从所述第一哈希值中随机截取预设数量的字节,其中所述预设数量的字节为所述当前UTC时间的预设天数;
根据随机截取的所述预设数量的字节以及用户名,计算获得第一数值;
计算所述第一数值的SHA256哈希值,获得所述第一TURN密码。
进一步的,TURN服务器根据所述TURN分配请求,生成第二TURN密码具体包括:
所述TURN服务器根据所述TURN分配请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第二TURN密码。
进一步的,TURN服务器根据所述TURN分配请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第二TURN密码,包括:
根据共享密钥和当前UTC时间,计算获得第二哈希值;
从所述第二哈希值中随机截取预设数量的字节,其中所述预设数量的字节为所述当前UTC时间的预设天数;
根据随机截取的所述预设数量的字节以及所述用户名,计算获得第二数值;
计算所述第二数值的SHA256哈希值,获得所述第二TURN密码。
进一步的,在所述配置服务器接收终端设备发送的TURN密码请求之后,所述方法还包括:
所述配置服务器根据所述用户名随机生成用户账号,并将所述用户账号发送给所述终端设备;
相应的,所述TURN服务器接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名具体包括:
所述TURN服务器接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户账号。
为了解决上述技术问题,本申请实施例还提供一种密码认证装置,采用了如下所述的技术方案:
配置服务器,用于接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名;根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备;
TURN服务器,用于接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名;根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值;对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过。
进一步的,配置服务器包括第一接收模块、第一生成模块和发送模块;
所述第一接收模块,用于接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名;
所述第一生成模块,用于根据所述TURN密码请求,生成第一TURN密码;
所述发送模块,用于将所述第一TURN密码发送给所述终端设备。
进一步的,所述第一生成模块,具体用于根据所述TURN密码请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第一TURN密码发送给所述终端设备。
进一步的,所述第一生成模块包括第一计算单元和第一截取单元;
所述第一计算单元,用于根据共享密钥和当前UTC时间,计算获得第一哈希值;
所述第一截取单元,用于从所述第一哈希值中随机截取预设数量的字节,其中所述预设数量的字节为所述当前UTC时间的预设天数;
所述第一计算单元,还用于根据随机截取的所述预设数量的字节以及用户名,计算获得第一数值;计算所述第一数值的SHA256哈希值,获得所述第一TURN密码。
进一步的,所述TURN服务器包括第二接收模块、第二生成模块和鉴权模块;
所述第二接收模块,用于接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名;
所述第二生成模块,用于根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值;
所述鉴权模块,用于对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过。
进一步的,所述第二生成模块,具体用于根据所述TURN分配请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第二TURN密码。
进一步的,所述第二生成模块包括第二计算单元和第二截取单元;
所述第二计算单元,用于根据共享密钥和当前UTC时间,计算获得第二哈希值;
所述第二截取单元,用于从所述第二哈希值中随机截取预设数量的字节,其中所述预设数量的字节为所述当前UTC时间的预设天数;
所述第二计算单元,还用于根据随机截取的所述预设数量的字节以及用户名,计算获得第二数值;计算所述第二数值的SHA256哈希值,获得所述第二TURN密码。
进一步的,所述第一生成模块,还用于根据所述用户名随机生成用户账号。
本申请实施例还提供一种终端设备发起呼叫的通讯方法,采用了如下所述的技术方案:
第一终端设备和第二终端设备分别发送TURN密码请求给配置服务器,以使所述配置服务器根据所述TURN密码请求,生成第一TURN密码,所述TURN密码请求中至少包括用户名;
所述第一终端设备和所述第二终端设备分别接收所述配置服务器发送的所述第一TURN密码;
所述第一终端和所述第二终端设备分别发送TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值给TURN服务器,所述TURN分配请求中至少包括所述用户名,以使所述TURN服务器根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值,以使所述TURN服务器对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过所述第一终端设备和所述第二终端设备;
当所述第一终端设备、所述第二终端设备分别通过认证时,则在所述第一终端设备和所述第二终端设备之间建立会话初始协议SIP通讯。
进一步的,所述方法还包括:
所述第一终端设备经由SIP服务器向所述第二终端设备发起呼叫;
所述第二终端响应呼叫,与所述第一终端设备相互通信。
为了解决上述技术问题,本申请实施例还提供一种计算机设备,采用了如下所述的技术方案:
提供一种计算机设备,包括,一个或多个处理器;存储器,用于存储一个或多个程序,使得一个或多个处理器实现上述任意一项所述的密码认证方法。
为了解决上述技术问题,本申请实施例还提供一种计算机可读存储介质,采用了如下所述的技术方案:
一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任意一项所述的密码认证方法。
与现有技术相比,本申请实施例主要有以下有益效果:
本申请通过配置服务器接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名;所述配置服务器根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备;TURN服务器接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名;所述TURN服务器根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值;所述TURN服务器对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过。本申请可以有效的解决大量的用户账号信息维护问题,避免了大量的数据库维护工作,安全可靠。
附图说明
为了更清楚地说明本申请中的方案,下面将对本申请实施例描述中所需要使用的附图作一个简单介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请可以应用于其中的示例性系统架构图;
图2是根据本申请的密码认证方法的一个实施例的流程图;
图3是根据本申请的密码认证装置的一个实施例的结构示意图;
图4是根据本申请的终端设备发起呼叫的通讯方法的一个实施例的流程图;
图5是根据本申请的计算机设备的一个实施例的结构示意图。
具体实施方式
除非另有定义,本文所使用的所有的技术和科学术语与属于本申请的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本申请;本申请的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本申请的说明书和权利要求书或上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
为了使本技术领域的人员更好地理解本申请方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述。
如图1所示,系统架构100可以包括终端设备101、102、103,网络104和服务器105。网络104用以在终端设备101、102、103和服务器105之间提供通信链路的介质。网络104可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备101、102、103通过网络104与服务器105交互,以接收或发送消息等。终端设备101、102、103上可以安装有各种通讯客户端应用,例如网页浏览器应用、购物类应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备101、102、103可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、电子书阅读器、MP3播放器(Moving Picture ExpertsGroup Audio Layer III,动态影像专家压缩标准音频层面3)、MP4(Moving PictureExperts Group Audio Layer IV,动态影像专家压缩标准音频层面4)播放器、膝上型便携计算机和台式计算机等等。
服务器105可以是提供各种服务的服务器,例如对终端设备101、102、103上显示的页面提供支持的后台服务器。
需要说明的是,本申请实施例所提供的密码认证方法一般由服务器执行。
应该理解,图1中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
继续参考图2,示出了根据本申请的密码认证方法的一个实施例的流程图。所述的密码认证方法,包括以下步骤:
步骤201,配置服务器接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名。
在本实施例中,用户名为终端设备提供的用户名。
步骤202,所述配置服务器根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备。
在本实施例中,配置服务器根据终端设备提供的用户名动态生成第一TURN密码。
步骤203,TURN服务器接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名。
步骤204,所述TURN服务器根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值。
在本实施例中,TURN服务器根据终端设备提供的用户名动态生成第二TURN密码。
步骤205,所述TURN服务器对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过。
在本实施例中,第一TURN密码和第二TURN密码的计算方式是一致的,数值也是一样的。区别在于:
第一TURN密码是“配置服务器”根据从“终端设备”配置请求中的用户名,然后结合当前UTC时间,共享密钥计算出来的。然后“终端设备”使用第一TURN密码计算出TURN分配请求中的认证信息;
第二TURN密码是“Turn服务器”根据从“终端设备”的TURN分配请求中的用户名,然后结合当前UTC时间,共享密钥计算出来的。然后TURN服务器使用第二密码来对“终端设备”的TURN分配请求进行安全校验,其中安全校验MESSAGE-INTEGRITY的具体方法遵循标准RFC8656。
本申请通过配置服务器接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名;所述配置服务器根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备;TURN服务器接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名;所述TURN服务器根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值;所述TURN服务器对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过。本申请可以有效的解决大量的用户账号信息维护问题,避免了大量的数据库维护工作,安全可靠。
在本实施例的一些可选的实现方式中,上述步骤202配置服务器根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备,上述电子设备还可以执行以下步骤:
所述配置服务器根据所述TURN密码请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第一TURN密码发送给所述终端设备。
本实施例中,配置服务器采用双因子密码生成算法动态生成TURN账号密码,将密钥生成的时间推迟到用户请求的时间点,根据当前UTC时间(utc时间戳)结合用户的用户名进行临时计算得到用户账号信息。其中,UTC时间(utc),又称世界统一时间、世界标准时间、国际协调时间。本申请实施例中,utc时间戳为1970年1月1日零点到当前时间所经过的天数。
在本实施例的一些可选的实现方式中,上述步骤配置服务器根据所述TURN密码请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第一TURN密码,上述电子设备还可以执行以下步骤:
根据共享密钥和当前UTC时间,计算获得第一哈希值;
从所述第一哈希值中随机截取预设数量的字节,其中所述预设数量的字节为所述当前UTC时间的预设天数;
根据随机截取的所述预设数量的字节以及用户名,计算获得第一数值;
计算所述第一数值的SHA256哈希值,获得所述第一TURN密码。
本实施例中,共享密钥为部署TURN服务环境时在TURN服务器和配置服务器上固定配置的不公开的共享密钥,utc时间戳会使用当前utc天数前后预设天数来生成TURN密码。具体的,可以通过以下公式进行计算:
A1=hmac_sha1(共享密钥,utc时间戳);这是一个20字节的数据
B1=从A1中截取随机的4个字节,其中所述随机的4个字节为utc时间的预设天数;
C1=用户账号+B1
第一TURN密码=sha256(C1)。
在本实施例的一些可选的实现方式中,上述步骤204TURN服务器根据所述TURN分配请求,生成第二TURN密码,上述电子设备还可以执行以下步骤:
所述TURN服务器根据所述TURN分配请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第二TURN密码。
实际使用中,TURN服务器采用双因子密码生成算法动态生成TURN账号密码,将密钥生成的时间推迟到用户请求的时间点,根据当前UTC时间结合用户的用户名进行临时计算得到用户账号信息。特别要说明的是,此处的当前UTC时间与配置服务器生成第一TURN密码时的当前UTC时间相同。
在本实施例的一些可选的实现方式中,上述步骤TURN服务器根据所述TURN分配请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第二TURN密码,上述电子设备具体可以执行以下步骤:
根据共享密钥和当前UTC时间,计算获得第二哈希值;
从所述第二哈希值中随机截取预设数量的字节,其中所述预设数量的字节为所述当前UTC时间的预设天数;
根据随机截取的所述预设数量的字节以及所述用户名,计算获得第二数值;
计算所述第二数值的SHA256哈希值,获得所述第二TURN密码。
本实施例中,共享密钥为部署TURN服务环境时在TURN服务器和配置服务器上固定配置的不公开的共享密钥,utc时间戳会使用当前utc天数前后预设天数来生成TURN密码。具体的,可以通过以下公式进行计算:
A2=hmac_sha1(共享密钥,utc时间戳);这是一个20字节的数据
B2=从A2中截取随机的4个字节,其中所述随机的4个字节为utc时间的预设天数;
C2=用户账号+B2
第二TURN密码=sha256(C2)。
在本实施例的一些可选的实现方式中,在步骤201配置服务器接收终端设备发送的TURN密码请求之后,上述电子设备还可以执行以下步骤:
所述配置服务器根据所述用户名随机生成用户账号,并将所述用户账号发送给所述终端设备;
在本实施例中,由于用户账号为随机数,因此,进一步保障了账号的安全。
在本实施例的一些可选的实现方式中,步骤203TURN服务器接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名,上述电子设备还可以执行以下步骤:
所述TURN服务器接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户账号。
实际使用中,在所述TURN服务器对所述终端设备鉴权认证通过后,所述终端设备可以建立与其他至少一个终端设备的互相通信。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
进一步参考图3,作为对上述图2所示方法的实现,本申请提供了一种密码认证装置的一个实施例,该装置实施例与图2所示的方法实施例相对应。
如图3所示,本实施例所述的密码认证装置300包括:配置服务器301以及TURN服务器302。其中:
所述配置服务器301,用于接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名;根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备;
所述TURN服务器302,用于接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名;根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值;对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过。
本申请通过配置服务器301接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名;根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备;TURN服务器302接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名;根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值;对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过。本申请可以有效的解决大量的用户账号信息维护问题,避免了大量的数据库维护工作,安全可靠。
在本实施例的一些可选的实现方式中,上述配置服务器301,包括第一接收模块3011、第一生成模块3012和发送模块3013;
所述第一接收模块3011,用于接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名;
所述第一生成模块3012,用于根据所述TURN密码请求,生成第一TURN密码;
所述发送模块3013,用于将所述第一TURN密码发送给所述终端设备。
在本实施例的一些可选的实现方式中,上述第一生成模块3012,具体用于根据所述TURN密码请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第一TURN密码发送给所述终端设备。
本实施例中,配置服务器采用双因子密码生成算法动态生成TURN账号密码,将密钥生成的时间推迟到用户请求的时间点,根据当前UTC时间(utc时间戳)结合用户的用户名进行临时计算得到用户账号信息。其中,UTC时间(utc),又称世界统一时间、世界标准时间、国际协调时间。本申请实施例中,utc时间戳为1970年1月1日零点到当前时间所经过的天数。
在本实施例的一些可选的实现方式中,上述第一生成模块3012包括第一计算单元30121和第一截取单元30122;
所述第一计算单元30121,用于根据共享密钥和当前UTC时间,计算获得第一哈希值;
所述第一截取单元30122,用于从所述第一哈希值中随机截取预设数量的字节,其中所述预设数量的字节为所述当前UTC时间的预设天数;
所述第一计算单元30121,还用于根据随机截取的所述预设数量的字节以及用户名,计算获得第一数值;计算所述第一数值的SHA256哈希值,获得所述第一TURN密码。
本实施例中,共享密钥为部署TURN服务环境时在TURN服务器和配置服务器上固定配置的不公开的共享密钥,utc时间戳会使用当前utc天数前后预设天数来生成TURN密码。具体的,可以通过以下公式进行计算:
A1=hmac_sha1(共享密钥,utc时间戳);这是一个20字节的数据
B1=从A1中截取随机的4个字节,其中所述随机的4个字节为utc时间的预设天数;
C1=用户账号+B1
第一TURN密码=sha256(C1)。
在本实施例的一些可选的实现方式中,上述TURN服务器302包括第二接收模块3021、第二生成模块3022和鉴权模块3023;
所述第二接收模块3021,用于接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名;
所述第二生成模块3022,用于根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值;
所述鉴权模块3023,用于对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过。
在本实施例的一些可选的实现方式中,上述第二生成模块3022,具体用于根据所述TURN分配请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第二TURN密码。
实际使用中,TURN服务器采用双因子密码生成算法动态生成TURN账号密码,将密钥生成的时间推迟到用户请求的时间点,根据当前UTC时间结合用户的用户名进行临时计算得到用户账号信息。
在本实施例的一些可选的实现方式中,上述第二生成模块3022包括第二计算单元30221和第二截取单元30222;
所述第二计算单元30221,用于根据共享密钥和当前UTC时间,计算获得第二哈希值;
所述第二截取单元30222,用于从所述第二哈希值中随机截取预设数量的字节,其中所述预设数量的字节为所述当前UTC时间的预设天数;
所述第二计算单元30221,还用于根据随机截取的所述预设数量的字节以及用户名,计算获得第二数值;计算所述第二数值的SHA256哈希值,获得所述第二TURN密码。
本实施例中,共享密钥为部署TURN服务环境时在TURN服务器和配置服务器上固定配置的不公开的共享密钥,utc时间戳会使用当前utc天数前后预设天数来生成TURN密码。具体的,可以通过以下公式计算所述第二TURN密码:
A2=hmac_sha1(共享密钥,utc时间戳);这是一个20字节的数据
B2=从A2中截取随机的4个字节,其中所述随机的4个字节为utc时间的预设天数;
C2=用户账号+B2
第二TURN密码=sha256(C2)。
在本实施例的一些可选的实现方式中,上述第一生成模块3012,还用于根据所述用户名随机生成用户账号。
在本实施例中,由于用户账号为随机数,因此,进一步保障了账号的安全。
进一步参考图4,作为对上述图2所示方法的实现,本申请提供了一种终端设备发起呼叫的通讯方法的一个实施例,该方法实施例与图2所示的方法实施例相对应。所述的终端设备发起呼叫的通讯方法,包括以下步骤:
步骤401,第一终端设备和第二终端设备分别发送TURN密码请求给配置服务器,以使所述配置服务器根据所述TURN密码请求,生成第一TURN密码,所述TURN密码请求中至少包括用户名;
步骤402,所述第一终端设备和所述第二终端设备分别接收所述配置服务器发送的所述第一TURN密码;
步骤403,所述第一终端和所述第二终端设备分别发送TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值给TURN服务器,所述TURN分配请求中至少包括所述用户名,以使所述TURN服务器根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值,以使所述TURN服务器对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过所述第一终端设备和所述第二终端设备;
步骤404,当所述第一终端设备、所述第二终端设备分别通过认证时,则在所述第一终端设备和所述第二终端设备之间建立会话初始协议SIP通讯。
在本实施例的一些可选的实现方式中,上述步骤404当所述第一终端设备、所述第二终端设备分别通过认证时,则在所述第一终端设备和所述第二终端设备之间建立会话初始协议SIP通讯之后,上述电子设备还可以执行以下步骤:
所述第一终端设备经由SIP服务器向所述第二终端设备发起呼叫;
所述第二终端响应呼叫,与所述第一终端设备相互通信。
为解决上述技术问题,本申请实施例还提供计算机设备。具体请参阅图5,图5为本实施例计算机设备基本结构框图。
所述计算机设备5包括通过系统总线相互通信连接存储器51、处理器52、网络接口53。需要指出的是,图中仅示出了具有组件51-53的计算机设备5,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(ApplicationSpecific Integrated Circuit,ASIC)、可编程门阵列(Field-Programmable GateArray,FPGA)、数字处理器(Digital Signal Processor,DSP)、嵌入式设备等。
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
所述存储器51至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器51可以是所述计算机设备5的内部存储单元,例如该计算机设备5的硬盘或内存。在另一些实施例中,所述存储器51也可以是所述计算机设备5的外部存储设备,例如该计算机设备5上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(FlashCard)等。当然,所述存储器51还可以既包括所述计算机设备5的内部存储单元也包括其外部存储设备。本实施例中,所述存储器51通常用于存储安装于所述计算机设备5的操作系统和各类应用软件,例如密码认证方法的程序代码等。此外,所述存储器51还可以用于暂时地存储已经输出或者将要输出的各类数据。
所述处理器52在一些实施例中可以是中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器52通常用于控制所述计算机设备5的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的程序代码或者处理数据,例如运行所述密码认证方法的程序代码。
所述网络接口53可包括无线网络接口或有线网络接口,该网络接口53通常用于在所述计算机设备5与其他电子设备之间建立通信连接。
本申请还提供了另一种实施方式,即提供一种计算机可读存储介质,所述计算机可读存储介质存储有通讯设备间的备份程序,所述通讯设备间的备份程序可被至少一个处理器执行,以使所述至少一个处理器执行如上述的密码认证方法的步骤。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本申请各个实施例所述的方法。
显然,以上所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例,附图中给出了本申请的较佳实施例,但并不限制本申请的专利范围。本申请可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本申请的公开内容的理解更加透彻全面。尽管参照前述实施例对本申请进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本申请说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本申请专利保护范围之内。

Claims (10)

1.一种密码认证方法,其特征在于,包括下述步骤:
配置服务器接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名;
所述配置服务器根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备;
TURN服务器接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名;
所述TURN服务器根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值;
所述TURN服务器对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过。
2.根据权利要求1所述的密码认证方法,其特征在于,所述配置服务器根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备具体包括:
所述配置服务器根据所述TURN密码请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第一TURN密码发送给所述终端设备。
3.根据权利要求2所述的密码认证方法,其特征在于,所述配置服务器根据所述TURN密码请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第一TURN密码,包括:
根据共享密钥和当前UTC时间,计算获得第一哈希值;
从所述第一哈希值中随机截取预设数量的字节,其中所述预设数量的字节为所述当前UTC时间的预设天数;
根据随机截取的所述预设数量的字节以及用户名,计算获得第一数值;
计算所述第一数值的SHA256哈希值,获得所述第一TURN密码。
4.根据权利要求1所述的密码认证方法,其特征在于,所述TURN服务器根据所述TURN分配请求,生成第二TURN密码具体包括:
所述TURN服务器根据所述TURN分配请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第二TURN密码。
5.根据权利要求4所述的密码认证方法,其特征在于,所述TURN服务器根据所述TURN分配请求中的所述用户名,结合共享密钥和当前UTC时间生成所述第二TURN密码,包括:
根据共享密钥和当前UTC时间,计算获得第二哈希值;
从所述第二哈希值中随机截取预设数量的字节,其中所述预设数量的字节为所述当前UTC时间的预设天数;
根据随机截取的所述预设数量的字节以及所述用户名,计算获得第二数值;
计算所述第二数值的SHA256哈希值,获得所述第二TURN密码。
6.根据权利要求1所述的密码认证方法,其特征在于,在所述配置服务器接收终端设备发送的TURN密码请求之后,所述方法还包括:
所述配置服务器根据所述用户名随机生成用户账号,并将所述用户账号发送给所述终端设备;
相应的,所述TURN服务器接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名具体包括:
所述TURN服务器接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户账号。
7.一种密码认证装置,其特征在于,包括:
配置服务器,用于接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名;根据所述TURN密码请求,生成第一TURN密码发送给所述终端设备;
TURN服务器,用于接收所述终端设备发送的TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值,所述TURN分配请求中至少包括所述用户名;根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值;对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过。
8.根据权利要求7所述的密码认证装置,其特征在于,所述配置服务器包括第一接收模块、第一生成模块和发送模块;
所述第一接收模块,用于接收终端设备发送的TURN密码请求,所述TURN密码请求中至少包括用户名;
所述第一生成模块,用于根据所述TURN密码请求,生成第一TURN密码;
所述发送模块,用于将所述第一TURN密码发送给所述终端设备。
9.一种终端设备发起呼叫的通讯方法,其特征在于,所述方法包括下述步骤:
第一终端设备和第二终端设备分别发送TURN密码请求给配置服务器,以使所述配置服务器根据所述TURN密码请求,生成第一TURN密码,所述TURN密码请求中至少包括用户名;
所述第一终端设备和所述第二终端设备分别接收所述配置服务器发送的所述第一TURN密码;
所述第一终端和所述第二终端设备分别发送TURN分配请求和所述终端设备使用所述第一TURN密码、所述用户名以及随机数Nonce值计算获得的第一认证摘要值给TURN服务器,所述TURN分配请求中至少包括所述用户名,以使所述TURN服务器根据所述TURN分配请求,生成第二TURN密码,并使用所述第二TURN密码、所述用户名以及Nonce值计算获得第二认证摘要值,以使所述TURN服务器对比所述第一认证摘要值和所述第二认证摘要值,在二者相等时,则认证通过所述第一终端设备和所述第二终端设备;
当所述第一终端设备、所述第二终端设备分别通过认证时,则在所述第一终端设备和所述第二终端设备之间建立会话初始协议SIP通讯。
10.根据权利要求9所述的终端设备发起呼叫的通讯方法,其特征在于,所述方法还包括:
所述第一终端设备经由SIP服务器向所述第二终端设备发起呼叫;
所述第二终端响应呼叫,与所述第一终端设备相互通信。
CN202210880143.0A 2022-07-25 2022-07-25 密码认证方法、装置及终端设备发起呼叫的通讯方法 Pending CN115242521A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210880143.0A CN115242521A (zh) 2022-07-25 2022-07-25 密码认证方法、装置及终端设备发起呼叫的通讯方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210880143.0A CN115242521A (zh) 2022-07-25 2022-07-25 密码认证方法、装置及终端设备发起呼叫的通讯方法

Publications (1)

Publication Number Publication Date
CN115242521A true CN115242521A (zh) 2022-10-25

Family

ID=83675633

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210880143.0A Pending CN115242521A (zh) 2022-07-25 2022-07-25 密码认证方法、装置及终端设备发起呼叫的通讯方法

Country Status (1)

Country Link
CN (1) CN115242521A (zh)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105516070A (zh) * 2014-09-30 2016-04-20 华为技术有限公司 一种认证凭证更替的方法及装置
CN106233704A (zh) * 2013-12-27 2016-12-14 华为技术有限公司 提供通过Relay方式穿越网络地址转换凭证和服务器的方法和装置
CN107819888A (zh) * 2016-09-14 2018-03-20 华为技术有限公司 一种分配中继地址的方法、装置以及网元
CN108833109A (zh) * 2018-05-28 2018-11-16 苏州科达科技股份有限公司 身份认证方法、装置以及电子设备
CN113381853A (zh) * 2020-03-10 2021-09-10 北京京东振世信息技术有限公司 生成随机密码以及客户端鉴权的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106233704A (zh) * 2013-12-27 2016-12-14 华为技术有限公司 提供通过Relay方式穿越网络地址转换凭证和服务器的方法和装置
CN105516070A (zh) * 2014-09-30 2016-04-20 华为技术有限公司 一种认证凭证更替的方法及装置
CN107819888A (zh) * 2016-09-14 2018-03-20 华为技术有限公司 一种分配中继地址的方法、装置以及网元
CN108833109A (zh) * 2018-05-28 2018-11-16 苏州科达科技股份有限公司 身份认证方法、装置以及电子设备
CN113381853A (zh) * 2020-03-10 2021-09-10 北京京东振世信息技术有限公司 生成随机密码以及客户端鉴权的方法和装置

Similar Documents

Publication Publication Date Title
WO2022206349A1 (zh) 一种信息验证的方法、相关装置、设备以及存储介质
CN113347206A (zh) 一种网络访问方法和装置
EP2947840A1 (en) Certificateless multi-agent signature method and apparatus
WO2021143457A1 (zh) 基于sm9算法的身份认证方法、装置和计算机设备
WO2013156531A1 (en) Secure password-based authentication for cloud computing services
US20140344910A1 (en) System and method for single-sign-on in virtual desktop infrastructure environment
CN109981576B (zh) 密钥迁移方法和装置
CN110958119A (zh) 身份验证方法和装置
EP4350556A1 (en) Information verification method and apparatus
CN112988674A (zh) 大数据文件的处理方法、装置、计算机设备及存储介质
JP2002207698A (ja) 利用権制御を伴うサーバおよびクライアントならびにサービス提供方法および利用権証明方法
EP3133791B1 (en) Double authentication system for electronically signed documents
CN114301617A (zh) 多云应用网关的身份认证方法、装置、计算机设备及介质
CN113239397A (zh) 信息访问方法、装置、计算机设备及介质
CN109769010B (zh) 基于SDK访问CloudStack服务器的方法、装置、设备及存储介质
CN114567600A (zh) 流量管理方法及相关设备
CN113434882A (zh) 应用程序的通讯保护方法、装置、计算机设备及存储介质
CN112905990A (zh) 一种访问方法、客户端、服务端及访问系统
CN109995821A (zh) 文件上传的方法及系统、客户端、服务器、对象存储系统
CN109525613B (zh) 一种请求处理系统及方法
CN115242521A (zh) 密码认证方法、装置及终端设备发起呼叫的通讯方法
CN115733685A (zh) Web会话认证管理方法、装置、计算机设备及存储介质
CN113381853B (zh) 生成随机密码以及客户端鉴权的方法和装置
CN114726597A (zh) 数据传输方法、装置、系统及存储介质
US10798077B1 (en) Securely authenticating untrusted operating environments

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination