CN109587180B - 一种建立连接的方法、客户端及服务器 - Google Patents

一种建立连接的方法、客户端及服务器 Download PDF

Info

Publication number
CN109587180B
CN109587180B CN201910081444.5A CN201910081444A CN109587180B CN 109587180 B CN109587180 B CN 109587180B CN 201910081444 A CN201910081444 A CN 201910081444A CN 109587180 B CN109587180 B CN 109587180B
Authority
CN
China
Prior art keywords
password
verified
client
user name
equipment
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.)
Active
Application number
CN201910081444.5A
Other languages
English (en)
Other versions
CN109587180A (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.)
Hangzhou Tuya Information Technology Co Ltd
Original Assignee
Hangzhou Tuya Information Technology 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 Hangzhou Tuya Information Technology Co Ltd filed Critical Hangzhou Tuya Information Technology Co Ltd
Priority to CN201910081444.5A priority Critical patent/CN109587180B/zh
Publication of CN109587180A publication Critical patent/CN109587180A/zh
Application granted granted Critical
Publication of CN109587180B publication Critical patent/CN109587180B/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/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
    • 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/0876Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/121Timestamp

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Power Engineering (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Computer And Data Communications (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种建立连接的方法、客户端及服务器,其中,该建立连接的方法包括:获取与所述客户端相关联的设备密码及设备ID;对所述设备密码进行哈希运算,得到待验证密码;基于所述设备密码及当前时间戳,生成待验证用户名;基于所述待验证密码、所述待验证用户名及所述设备ID向服务器发送建立连接请求,以使得所述服务器在对所述建立连接请求验证成功后建立与所述客户端的连接。通过本申请方案,实现了在建立连接过程中对用户名及密码的加密传输,提升了建立连接过程的安全性。

Description

一种建立连接的方法、客户端及服务器
技术领域
本申请属于通讯技术领域,尤其涉及一种建立连接的方法、客户端、服务器及计算机可读存储介质。
背景技术
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)作为即时通讯协议,是目前物联网的重要组成部分。该协议支持所有平台,可以将所有联网物品和外部连接起来,其通常被用来当做传感器和制动器的通信协议。基于该MQTT协议,可通过连接(CONNECT)消息的用户名(username)字段和密码(password)字段发送客户端的用户名和密码,以实现MQTT会话的身份验证。但是上述过程中,由于用户名和密码是明文传输的,其安全性有待提高;并且,上述过程容易出现会话重放现象,导致出现原有会话被踢掉的风险。
发明内容
有鉴于此,本申请提供了一种建立连接的方法、客户端、服务器及计算机可读存储介质,实现了在建立连接过程中对用户名及密码的加密传输,提升了建立连接过程的安全性。
本申请的第一方面提供了一种建立连接的方法,应用于客户端,包括:
获取与上述客户端相关联的设备密码及设备ID;
对上述设备密码进行哈希运算,得到待验证密码;
基于上述设备密码及当前时间戳,生成待验证用户名;
基于上述待验证密码、上述待验证用户名及上述设备ID向服务器发送建立连接请求,以使得上述服务器在对上述建立连接请求验证成功后建立与上述客户端的连接。
本申请的第二方面提供了一种建立连接的方法,应用于服务器,包括:
接收并解析客户端发送的建立连接请求,得到上述客户端的待验证密码、待验证用户名及设备ID;
基于上述设备ID获取与上述客户端相关联的设备密码;
基于上述设备密码对上述待验证密码进行验证;
若上述待验证密码验证成功,则基于当前时间戳及上述设备密码对上述待验证用户名进行验证;
若上述待验证用户名验证成功,则建立与上述客户端的连接。
本申请的第三方面提供了一种客户端,包括:
设备参数获取单元,用于获取与上述客户端相关联的设备密码及设备ID;
待验证密码生成单元,用于对上述设备密码进行哈希运算,得到待验证密码;
待验证用户名生成单元,用于基于上述设备密码及当前时间戳,生成待验证用户名;
请求发送单元,用于基于上述待验证密码、上述待验证用户名及上述设备ID向服务器发送建立连接请求,以使得上述服务器在对上述建立连接请求验证成功后建立与上述客户端的连接。
本申请的第四方面提供了一种服务器,包括:
接收单元,用于接收客户端发送的建立连接请求;
解析单元,用于解析上述建立连接请求得到上述客户端的待验证密码、待验证用户名及设备ID;
获取单元,用于基于上述设备ID获取与上述客户端相关联的设备密码;
密码验证单元,用于基于上述设备密码对上述待验证密码进行验证;
用户名验证单元,用于若上述待验证密码验证成功,则基于当前时间戳及上述设备密码对上述待验证用户名进行验证;
连接建立单元,用于若上述待验证用户名验证成功,则建立与上述客户端的连接。
本申请的第五方面提供了一种客户端,包括存储器处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上第一方面的方法的步骤。
本申请的第六方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上第一方面的方法的步骤。
本申请的第七方面提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被处理器执行时实现如上第一方面的方法的步骤。
本申请的第八方面提供了一种服务器,包括存储器、处理器以及存储在上述存储器中并可在上述处理器上运行的计算机程序,上述处理器执行上述计算机程序时实现如上第二方面的方法的步骤。
本申请的第九方面提供了一种计算机可读存储介质,上述计算机可读存储介质存储有计算机程序,上述计算机程序被处理器执行时实现如上第二方面的方法的步骤。
本申请的第十方面提供了一种计算机程序产品,上述计算机程序产品包括计算机程序,上述计算机程序被处理器执行时实现如上第二方面的方法的步骤。
由上可见,通过本申请方案,客户端可以先获取与上述客户端相关联的设备密码及设备ID,然后对上述设备密码进行哈希运算,得到待验证密码,并基于上述设备密码及当前时间戳,生成待验证用户名,最后基于上述待验证密码、上述待验证用户名及上述设备ID向服务器发送建立连接请求,以使得上述服务器在对上述建立连接请求验证成功后建立与上述客户端的连接。要注意的是,上述待验证密码及待验证用户名的可以先后生成,也可以同时生成。通过本申请方案,实现了在建立连接过程中对用户名及密码的加密传输,提升了建立连接过程的安全性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种建立连接的方法的实现流程示意图;
图2是本申请实施例提供的另一种建立连接的方法的实现流程示意图;
图3是本申请实施例提供的建立连接的方法中,客户端与服务器的交互流程示意图;
图4是本申请实施例提供的客户端的结构框图;
图5是本申请实施例提供的服务器的结构框图;
图6是本申请实施例提供的客户端的示意图;
图7是本申请实施例提供的服务器的示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
为了说明本申请上述的技术方案,下面通过具体实施例来进行说明。
实施例一
下面对本申请实施例提供的一种建立连接的方法进行描述,该建立连接的方法应用于客户端,请参阅图1,本申请实施例中的建立连接的方法包括:
在步骤101中,获取与上述客户端相关联的设备密码及设备ID;
在本申请实施例中,每一智能家居设备在出厂时均配置有相应的客户端,可使得各智能家居设备与预设的服务器进行数据交互,帮助用户更好的管理各个智能家居设备。可选地,在上述智能家居设备被安装好后,上述智能家居设备的客户端可以联网进行激活,用以生成客户端的设备密码及设备ID。当上述客户端需要与上述服务器建立连接时,可以由客户端接收用户输入的建立连接指令,并基于该建立连接指令获取与上述客户端相关联的设备密码及设备ID。
可选地,在客户端出厂时,客户端的厂商会为每一客户端烧录原始ID(记为UID)及原始密钥(记为Secret Key);随后在客户端联网进行激活时,客户端可以基于上述UID生成设备ID(记为Device ID),同时基于上述Secret Key生成设备密码(记为Local Key)。需要注意的是,上述客户端可以进行多次激活,每一次激活可以重新生成新的设备密码及设备ID,并且,激活新生成的设备密码及设备ID可以覆盖原有的设备密码及设备ID;进一步地,客户端激活所得到的设备密码及设备ID也可以存储于服务器中。
在步骤102中,对上述设备密码进行哈希运算,得到待验证密码;
在本申请实施例中,客户端可以对上述设备密码进行哈希运算,得到预设长度的待验证密码。可选地,还可以进一步对上述待验证密码通过base64进行加密编码,当然,也可以通过其他加密方式对上述待验证密码进行加密编码,此处不作限定。具体地,可以采用哈希消息认证码(Hash-based Message Authentication Code,HMAC)对上述设备密码进行哈希运算。
在步骤103中,基于上述设备密码及当前时间戳,生成待验证用户名;
在本申请实施例中,客户端可以先基于当前时间获取当前时间戳,并基于上述设备密码及当前时间戳生成待验证用户名。可选地,为了提升上述待验证用户名的安全性,上述步骤103可以具体为:
A1、将上述设备密码及上述当前时间戳拼接后进行哈希运算,得到中间结果;
A2、将上述中间结果与上述当前时间戳拼接,得到待验证用户名。
可选地,还可以进一步对上述待验证用户名通过base64进行加密编码,当然,也可以通过其他加密方式对上述待验证密码进行加密编码,此处不作限定。具体地,在本步骤中,也可以采用HMAC进行哈希运算。
需要注意的是,上述步骤102及步骤103之间并没有执行的先后顺序。可以是先生成待验证密码,再生成待验证用户名;也可以是先生成待验证用户名,再生成待验证密码;还可以是在同一时刻生成待验证用户名及待验证密码,也即是说,此处不对上述待验证用户名及待验证密码的生成顺序作出限定。
在步骤104中,基于上述待验证密码、上述待验证用户名及上述设备ID向服务器发送建立连接请求,以使得上述服务器在对上述建立连接请求验证成功后建立与上述客户端的连接。
在本申请实施例中,客户端可以基于上述待验证密码、待验证用户名及设备ID生成建立连接请求,并随之向上述预设的服务器发送建立连接请求,在上述服务器通过对上述建立连接请求的验证后,上述客户端即可实现与上述服务器的连接。
由上可见,通过本申请实施例,客户端可以先获取与上述客户端相关联的设备密码及设备ID,然后对上述设备密码进行哈希运算,得到待验证密码,并基于上述设备密码及当前时间戳,生成待验证用户名,最后基于上述待验证密码、上述待验证用户名及上述设备ID向服务器发送建立连接请求,以使得上述服务器在对上述建立连接请求验证成功后建立与上述客户端的连接。通过本申请方案,实现了在建立连接过程中对用户名及密码的加密传输,提升了建立连接过程的安全性;并且由于用户名是动态变化的,进一步提升了建立连接过程的安全性。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
实施例二
下面对本申请实施例提供的另一种建立连接的方法进行描述,该建立连接的方法应用于服务器,请参阅图2,本申请实施例中的建立连接的方法包括:
在步骤201中,接收并解析客户端发送的建立连接请求,得到上述客户端的待验证密码、待验证用户名及设备ID;
在本申请实施例中,上述服务器一直处于等待接收客户端所发送的请求的状态中。当上述服务器接收到上述客户端所发送的建立连接请求时,将对上述建立连接请求进行解析,以得到上述建立连接请求中所携带的上述客户端的待验证密码、待验证用户名及设备ID。
在步骤202中,基于上述设备ID获取与上述客户端相关联的设备密码;
在本申请实施例中,由于各个客户端需要通过上述服务器进行激活,也即是说,每一客户端在激活时,会同时将激活所得到的设备ID和设备密码存储于上述服务器的数据库中。基于此,上述服务器在解析得到了上述设备密码后,可以在预设的数据库中查询上述设备ID所对应的设备密码,也即查询获得与上述客户端相关联的设备密码。
在步骤203中,基于上述设备密码,检测上述待验证密码是否验证成功,若是,则执行步骤204,若否,则执行步骤206;
在本申请实施例中,服务器可以先基于上述设备密码对上述待验证密码进行验证。可选地,上述步骤203具体包括:
B1、对上述设备密码进行哈希运算,得到目标密码;
B2、检测上述目标密码与上述待验证密码是否匹配;
B3、若上述目标密码与上述待验证密码匹配成功,则确定上述待验证密码验证成功;
B4、若上述目标密码与上述待验证密码匹配失败,则确定上述待验证密码验证失败。
其中,由于上述服务器自身存储有各个客户端的设备密码,因而在获取得到了设备ID后,可以基于上述设备ID获得设备密码,也即,上述客户端、设备ID及设备密码是一一对应的关系;随后由服务器对上述设备密码通过HMAC进行哈希运算后,可以得到目标密码,将上述目标密码与上述待验证密码进行匹配,若能够匹配成功,则说明待验证密码已通过验证;若匹配失败,则说明待验证密码未通过验证。具体地,若上述待验证密码经过了base64进行了加密编码,则需要先对上述待验证密码进行相应解密后再执行上述验证操作。
在步骤204中,基于当前时间戳及上述设备密码,检测上述待验证用户名是否验证成功,若是,则执行步骤205,若否,则执行步骤206;
在本申请实施例中,服务器在上述待验证密码通过验证后,可以进一步基于上述当前时间戳及上述设备密码对上述待验证用户名进行验证。可选地,上述步骤204具体包括:
C1、解析得到上述待验证用户名所携带的时间戳及设备密码;
C2、检测上述待验证用户名所携带的时间戳是否在当前时间戳的预设范围内;
C3、若上述待验证用户名所携带的时间戳在当前时间戳的预设范围内,则检测上述待验证用户名所携带的设备密码与上述服务器基于上述设备ID获取到的设备密码是否匹配;
C4、若上述待验证用户名所携带的设备密码与上述服务器基于上述设备ID获取到的设备密码匹配成功,则确定上述待验证用户名验证成功。
其中,由于上述待验证用户名实际为将设备密码与时间戳拼接后进行了哈希运算,再将上述哈希运算的结果与时间戳拼接所构成,也即是说,上述待验证用户名可以表示为timestamp+HMAC(Local Key+timestamp),上述timestamp是生成该待验证用户名时的时间戳,上述Loccal Key为设备密码。因而,对上述待验证用户名近些解析后,将得到待验证用户名所携带的时间戳timestamp及待验证用户名所携带的HMAC(Local Key+timestamp)。服务器可以先对上述时间戳进行验证。具体地,可以先检测上述时间戳是否在预设的redis数据库中,若未存在,则继续检测该时间戳是否在当前时间戳的预设范围内,上述预设范围可以被设置为15分钟,此处不作限定。若上述时间戳在当前时间戳的预设范围内,则继续计算待验证用户名所携带的HMAC(Local Key+timestamp)是否正确,实现对设备密码的再次验证。可选地,若上述时间戳不在预设的redis数据库中,则可以将上述时间戳存入上述redis数据库后再进行后续验证;若上述时间戳已在预设的redis数据库中,则认为上述时间戳已被使用过,此时上述待验证用户名可能是黑客所伪装的用户名,上述服务器将忽略上述建立连接请求,并跳转执行步骤206。
也即是说,针对待验证用户名所携带的timestamp及HMAC(Local Key+timestamp),只有在时间戳timestamp不存在于redis服务器,且timestamp在当前时间戳的预设范围内,且HMAC(Local Key+timestamp)计算无误时,才能通过对上述待验证用户名的验证。
在步骤205中,建立与上述客户端的连接;
在本申请实施例中,只要上述待验证用户名及待验证密码均验证成功,则可以触发上述服务器建立与上述客户端的连接。
在步骤206中,向上述客户端反馈连接错误消息。
在本申请实施例中,若上述待验证密码验证失败,或者,若上述待验证用户名验证失败,则服务器可以忽略上述建立连接请求,并向上述客户端反馈连接错误消息。
由上可见,通过本申请实施例,服务器首先接收并解析客户端发送的建立连接请求,得到所述客户端的待验证密码、待验证用户名及设备ID,然后基于所述设备ID获取与所述客户端相关联的设备密码,接着基于所述设备密码对所述待验证密码进行验证,若所述待验证密码验证成功,则基于当前时间戳及所述设备密码对所述待验证用户名进行验证,若所述待验证用户名验证成功,则建立与所述客户端的连接。通过本申请方案,实现了在建立连接过程中对用户名及密码的加密传输,提升了建立连接过程的安全性;并且由于用户名是动态变化的,进一步提升了建立连接过程的安全性。
为了更好的解释上述建立连接的方法,下面对客户端及服务器的交互过程进行说明,请参阅图3:
在步骤301中,客户端首先获取设备ID及设备密码;
在步骤302中,客户端基于设备密码生成待验证密码password=base64(HMAC(Local Key));
在步骤303中,客户端基于当前时间戳及设备密码生成待验证用户名username=base64(timestamp+HMAC(Local Key+timestamp));需要注意的是,也可以先执行步骤302,再执行步骤303;或者,上述步骤302及步骤303可以同时执行;
在步骤304中,客户端基于设备ID、待验证用户名及待验证密码向服务器发送建立连接请求;
在步骤305中,服务器接收并解析上述建立连接请求,获得设备ID、待验证密码及待验证用户名;
在步骤306中,服务器基于设备ID获取设备密码;
在步骤307中,服务器对待验证密码进行验证,若验证通过,则继续执行步骤308,若验证未通过,中断此次连接;
在步骤308中,服务器解析待验证用户名;
在步骤309中,服务器基于待验证用户名的解析结果,检测待验证用户名所携带的时间戳是否已存在于redis数据库,若不存在,则继续执行步骤310,若存在,则中断此次连接;
在步骤310中,服务器基于待验证用户名的解析结果,检测待验证用户名携带的时间戳是否在当前时间的预设范围内,若是,则继续执行步骤311,若不是,则中断此次连接;
在步骤310中,服务器检测待验证用户名携带的HMAC(Local Key+timestamp)是否正确,若是,则继续执行步骤312,若否,则中断此次连接;
在步骤312中,上述待验证密码及待验证用户名均验证成功,上述服务器建立与上述客户端的连接。
实施例三
下面对本申请实施例所提供的一种客户端进行说明。请参阅图4,上述客户端400包括:
设备参数获取单元401,用于获取与上述客户端相关联的设备密码及设备ID;
待验证密码生成单元402,用于对上述设备密码进行哈希运算,得到待验证密码;
待验证用户名生成单元403,用于基于上述设备密码及当前时间戳,生成待验证用户名;
请求发送单元404,用于基于上述待验证密码、上述待验证用户名及上述设备ID向服务器发送建立连接请求,以使得上述服务器在对上述建立连接请求验证成功后建立与上述客户端的连接。
可选地,上述设备参数获取单元401,具体用于在接收到输入的建立连接指令时,获取与上述客户端相关联的设备密码及设备ID,其中,上述设备密码及上述设备ID在上述客户端被激活时生成。
可选地,上述设待验证用户名生成单元403包括:
哈希计算子单元,用于将上述设备密码及上述当前时间戳拼接后进行哈希运算,得到中间结果;
字符串拼接子单元,用于将上述中间结果与上述当前时间戳拼接,得到待验证用户名。
由上可见,通过本申请实施例,客户端可以先获取与上述客户端相关联的设备密码及设备ID,然后对上述设备密码进行哈希运算,得到待验证密码,并基于上述设备密码及当前时间戳,生成待验证用户名,最后基于上述待验证密码、上述待验证用户名及上述设备ID向服务器发送建立连接请求,以使得上述服务器在对上述建立连接请求验证成功后建立与上述客户端的连接。通过本申请方案,实现了在建立连接过程中对用户名及密码的加密传输,提升了建立连接过程的安全性;并且由于用户名是动态变化的,进一步提升了建立连接过程的安全性。
实施例四
下面对本申请实施例所提供的一种服务器进行说明。请参阅图5,上述客户端500包括:
接收单元501,用于接收客户端发送的建立连接请求;
解析单元502,用于解析上述建立连接请求得到上述客户端的待验证密码、待验证用户名及设备ID;
获取单元503,用于基于上述设备ID获取与上述客户端相关联的设备密码;
密码验证单元504,用于基于上述设备密码对上述待验证密码进行验证;
用户名验证单元505,用于若上述待验证密码验证成功,则基于当前时间戳及上述设备密码对上述待验证用户名进行验证;
连接建立单元506,用于若上述待验证用户名验证成功,则建立与上述客户端的连接。
可选地,上述密码验证单元504包括:
目标密码获取子单元,用于对上述设备密码进行哈希运算,得到目标密码;
密码匹配检测子单元,用于检测上述目标密码与上述待验证密码是否匹配;
密码验证结果确定子单元,用于若上述目标密码与上述待验证密码匹配成功,则确定上述待验证密码验证成功;若上述目标密码与上述待验证密码匹配失败,则确定上述待验证密码验证失败。
可选地,用户名验证单元505包括:
用户名解析子单元,用于解析得到上述待验证用户名所携带的时间戳及设备密码;
时间戳检测子单元,用于检测上述待验证用户名所携带的时间戳是否在当前时间戳的预设范围内;
设备密码检测子单元,用于若上述待验证用户名所携带的时间戳在当前时间戳的预设范围内,则检测上述待验证用户名所携带的设备密码与上述服务器基于上述设备ID获取到的设备密码是否匹配;
用户名验证结果确定子单元,用于若上述待验证用户名所携带的设备密码与上述服务器基于上述设备ID获取到的设备密码匹配成功,则确定上述待验证用户名验证成功。
由上可见,通过本申请实施例,服务器首先接收并解析客户端发送的建立连接请求,得到所述客户端的待验证密码、待验证用户名及设备ID,然后基于所述设备ID获取与所述客户端相关联的设备密码,接着基于所述设备密码对所述待验证密码进行验证,若所述待验证密码验证成功,则基于当前时间戳及所述设备密码对所述待验证用户名进行验证,若所述待验证用户名验证成功,则建立与所述客户端的连接。通过本申请方案,实现了在建立连接过程中对用户名及密码的加密传输,提升了建立连接过程的安全性;并且由于用户名是动态变化的,进一步提升了建立连接过程的安全性。
实施例五
本申请实施例提供一种客户端,请参阅图6,本申请实施例中的客户端包括:存储器601,一个或多个处理器602(图6中仅示出一个)及存储在存储器601上并可在处理器上运行的计算机程序。其中:存储器601用于存储软件程序以及模块,处理器602通过运行存储在存储器601的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器602通过运行存储在存储器601的上述计算机程序时实现以下步骤:
获取与上述客户端相关联的设备密码及设备ID;
对上述设备密码进行哈希运算,得到待验证密码;
基于上述设备密码及当前时间戳,生成待验证用户名;
基于上述待验证密码、上述待验证用户名及上述设备ID向服务器发送建立连接请求,以使得上述服务器在对上述建立连接请求验证成功后建立与上述客户端的连接。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,上述获取与上述客户端相关联的设备密码及设备ID,包括:
在接收到输入的建立连接指令时,获取与上述客户端相关联的设备密码及设备ID,其中,上述设备密码及上述设备ID在上述客户端被激活时生成。
在上述第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述基于上述设备密码及当前时间戳,生成待验证用户名,包括:
将上述设备密码及上述当前时间戳拼接后进行哈希运算,得到中间结果;
将上述中间结果与上述当前时间戳拼接,得到待验证用户名。
进一步,如图6所示,上述服务器还可包括:一个或多个输入设备603(图6中仅示出一个)和一个或多个输出设备604(图6中仅示出一个)。存储器601、处理器602、输入设备603和输出设备604通过总线605连接。
应当理解,在本申请实施例中,所称处理器602可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器601可以包括只读存储器和随机存取存储器,并向处理器602提供指令和数据。存储器601的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器601还可以存储设备类型的信息。
由上可见,通过本申请实施例,首先接收并解析客户端发送的建立连接请求,得到所述客户端的待验证密码、待验证用户名及设备ID,然后基于所述设备ID获取与所述客户端相关联的设备密码,接着基于所述设备密码对所述待验证密码进行验证,若所述待验证密码验证成功,则基于当前时间戳及所述设备密码对所述待验证用户名进行验证,若所述待验证用户名验证成功,则建立与所述客户端的连接。通过本申请方案,实现了在建立连接过程中对用户名及密码的加密传输,提升了建立连接过程的安全性;并且由于用户名是动态变化的,进一步提升了建立连接过程的安全性。
实施六
本申请实施例提供一种服务器,请参阅图7,本申请实施例中的服务器包括:存储器701,一个或多个处理器702(图7中仅示出一个)及存储在存储器701上并可在处理器上运行的计算机程序。其中:存储器701用于存储软件程序以及模块,处理器702通过运行存储在存储器701的软件程序以及单元,从而执行各种功能应用以及数据处理,以获取上述预设事件对应的资源。具体地,处理器702通过运行存储在存储器701的上述计算机程序时实现以下步骤:
接收并解析客户端发送的建立连接请求,得到上述客户端的待验证密码、待验证用户名及设备ID;
基于上述设备ID获取与上述客户端相关联的设备密码;
基于上述设备密码对上述待验证密码进行验证;
若上述待验证密码验证成功,则基于当前时间戳及上述设备密码对上述待验证用户名进行验证;
若上述待验证用户名验证成功,则建立与上述客户端的连接。
假设上述为第一种可能的实施方式,则在第一种可能的实施方式作为基础而提供的第二种可能的实施方式中,上述基于上述设备密码对上述待验证密码进行验证,包括:
对上述设备密码进行哈希运算,得到目标密码;
检测上述目标密码与上述待验证密码是否匹配;
若上述目标密码与上述待验证密码匹配成功,则确定上述待验证密码验证成功;
若上述目标密码与上述待验证密码匹配失败,则确定上述待验证密码验证失败。
在上述第一种可能的实施方式作为基础而提供的第三种可能的实施方式中,上述基于当前时间戳及上述设备密码对上述待验证用户名进行验证,包括:
解析得到上述待验证用户名所携带的时间戳及设备密码;
检测上述待验证用户名所携带的时间戳是否在当前时间戳的预设范围内;
若上述待验证用户名所携带的时间戳在当前时间戳的预设范围内,则检测上述待验证用户名所携带的设备密码与上述服务器基于上述设备ID获取到的设备密码是否匹配;
若上述待验证用户名所携带的设备密码与上述服务器基于上述设备ID获取到的设备密码匹配成功,则确定上述待验证用户名验证成功。
进一步,如图7所示,上述服务器还可包括:一个或多个输入设备703(图7中仅示出一个)和一个或多个输出设备704(图7中仅示出一个)。存储器701、处理器702、输入设备703和输出设备704通过总线705连接。
应当理解,在本申请实施例中,所称处理器702可以是中央处理单元(CentralProcessing Unit,CPU),该处理器还可以是其他通用处理器、数字信号处理器(DigitalSignal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
输入设备703可以包括键盘、触控板、麦克风等,输出设备704可以包括显示器、扬声器等。
存储器701可以包括只读存储器和随机存取存储器,并向处理器702提供指令和数据。存储器701的一部分或全部还可以包括非易失性随机存取存储器。例如,存储器701还可以存储设备类型的信息。
由上可见,通过本申请实施例,服务器首先接收并解析客户端发送的建立连接请求,得到所述客户端的待验证密码、待验证用户名及设备ID,然后基于所述设备ID获取与所述客户端相关联的设备密码,接着基于所述设备密码对所述待验证密码进行验证,若所述待验证密码验证成功,则基于当前时间戳及所述设备密码对所述待验证用户名进行验证,若所述待验证用户名验证成功,则建立与所述客户端的连接。通过本申请方案,实现了在建立连接过程中对用户名及密码的加密传输,提升了建立连接过程的安全性;并且由于用户名是动态变化的,进一步提升了建立连接过程的安全性。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将上述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,上述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,上述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,上述计算机程序包括计算机程序代码,上述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。上述计算机可读介质可以包括:能够携带上述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,上述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括是电载波信号和电信信号。
以上上述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。

Claims (4)

1.一种建立连接的方法,其特征在于,应用于客户端,包括:
获取与所述客户端相关联的设备密码及设备ID;
对所述设备密码进行哈希运算,得到预设长度的待验证密码;
基于所述设备密码及当前时间戳,生成待验证用户名;
基于所述待验证密码、所述待验证用户名及所述设备ID向服务器发送建立连接请求,以使得所述服务器在对所述建立连接请求验证成功后建立与所述客户端的连接;
所述基于所述设备密码及当前时间戳,生成待验证用户名,包括:
将所述设备密码及所述当前时间戳拼接后进行哈希运算,得到中间结果;
将所述中间结果与所述当前时间戳拼接,得到待验证用户名。
2.如权利要求1所述的方法,其特征在于,所述获取与所述客户端相关联的设备密码及设备ID,包括:
在接收到输入的建立连接指令时,获取与所述客户端相关联的设备密码及设备ID,其中,所述设备密码及所述设备ID在所述客户端被激活时生成。
3.一种客户端,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1或2所述方法的步骤。
4.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1或2所述方法的步骤。
CN201910081444.5A 2019-01-28 2019-01-28 一种建立连接的方法、客户端及服务器 Active CN109587180B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910081444.5A CN109587180B (zh) 2019-01-28 2019-01-28 一种建立连接的方法、客户端及服务器

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910081444.5A CN109587180B (zh) 2019-01-28 2019-01-28 一种建立连接的方法、客户端及服务器

Publications (2)

Publication Number Publication Date
CN109587180A CN109587180A (zh) 2019-04-05
CN109587180B true CN109587180B (zh) 2021-11-09

Family

ID=65917848

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910081444.5A Active CN109587180B (zh) 2019-01-28 2019-01-28 一种建立连接的方法、客户端及服务器

Country Status (1)

Country Link
CN (1) CN109587180B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112134885A (zh) * 2020-09-23 2020-12-25 国网江苏省电力有限公司泰州供电分公司 一种互联网终端访问加密的方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291228A (zh) * 2008-06-18 2008-10-22 华为技术有限公司 一种超级密码的生成、认证方法和系统、设备
CN102377756A (zh) * 2010-08-23 2012-03-14 中国移动通信有限公司 业务访问、鉴权方法及对应的系统、客户端、鉴权服务器
CN103067373A (zh) * 2012-12-20 2013-04-24 天津书生投资有限公司 一种用户注册方法
CN106789883A (zh) * 2016-11-21 2017-05-31 美的智慧家居科技有限公司 连接服务器的方法和装置
CN108471426A (zh) * 2018-06-25 2018-08-31 联想(北京)有限公司 认证方法、登录方法、服务器和客户端
CN108768974A (zh) * 2018-05-16 2018-11-06 深圳市沃特沃德股份有限公司 一种形成注册信息的方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10218510B2 (en) * 2015-06-01 2019-02-26 Branch Banking And Trust Company Network-based device authentication system

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101291228A (zh) * 2008-06-18 2008-10-22 华为技术有限公司 一种超级密码的生成、认证方法和系统、设备
CN102377756A (zh) * 2010-08-23 2012-03-14 中国移动通信有限公司 业务访问、鉴权方法及对应的系统、客户端、鉴权服务器
CN103067373A (zh) * 2012-12-20 2013-04-24 天津书生投资有限公司 一种用户注册方法
CN106789883A (zh) * 2016-11-21 2017-05-31 美的智慧家居科技有限公司 连接服务器的方法和装置
CN108768974A (zh) * 2018-05-16 2018-11-06 深圳市沃特沃德股份有限公司 一种形成注册信息的方法及装置
CN108471426A (zh) * 2018-06-25 2018-08-31 联想(北京)有限公司 认证方法、登录方法、服务器和客户端

Also Published As

Publication number Publication date
CN109587180A (zh) 2019-04-05

Similar Documents

Publication Publication Date Title
US10979427B2 (en) Method and device for authenticating based on authenticating device
CN109347835B (zh) 信息传输方法、客户端、服务器以及计算机可读存储介质
CN110493197B (zh) 一种登录处理方法及相关设备
CN107483509B (zh) 一种身份验证方法、服务器及可读存储介质
EP3320523B1 (en) Method and device for authentication using dynamic passwords
CN108023874B (zh) 单点登录的校验装置、方法及计算机可读存储介质
US9838205B2 (en) Network authentication method for secure electronic transactions
CN111556006A (zh) 第三方应用系统登录方法、装置、终端及sso服务平台
US20170223009A1 (en) Late binding authentication
CN111062023B (zh) 多应用系统实现单点登录的方法及装置
CN108322416B (zh) 一种安全认证实现方法、装置及系统
CN108449357B (zh) 一种授权登录方法、装置、智能设备及存储介质
CN111800378B (zh) 一种登录认证方法、装置、系统和存储介质
CN111565179B (zh) 身份校验方法、装置、电子设备及存储介质
CN111800276B (zh) 业务处理方法及装置
CN113204772A (zh) 数据处理方法、装置、系统、终端、服务器和存储介质
CN109587180B (zh) 一种建立连接的方法、客户端及服务器
CN117336092A (zh) 一种客户端登录方法、装置、电子设备和存储介质
CN112966242A (zh) 一种用户名口令认证方法、装置、设备及可读存储介质
US9027096B2 (en) Method and device for enhancing security of user security model
US11818574B2 (en) Provisioning devices securely using zero touch deployments
WO2019184206A1 (zh) 身份认证方法及装置
CN114944921A (zh) 登录认证方法、装置、电子设备及存储介质
JP5793593B2 (ja) ユーザ識別情報を安全に検証するためのネットワーク認証方法
CN116389168B (zh) 一种身份认证方法和装置

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
GR01 Patent grant
GR01 Patent grant