CN113472634B - 即时通讯方法、装置及系统、存储介质、电子装置 - Google Patents
即时通讯方法、装置及系统、存储介质、电子装置 Download PDFInfo
- Publication number
- CN113472634B CN113472634B CN202110738466.1A CN202110738466A CN113472634B CN 113472634 B CN113472634 B CN 113472634B CN 202110738466 A CN202110738466 A CN 202110738466A CN 113472634 B CN113472634 B CN 113472634B
- Authority
- CN
- China
- Prior art keywords
- target
- communication link
- key information
- information
- request
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L51/00—User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
- H04L51/04—Real-time or near real-time messaging, e.g. instant messaging [IM]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/068—Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Telephonic Communication Services (AREA)
Abstract
本申请公开了一种即时通讯方法、装置及系统、存储介质、电子装置。其中,该方法包括:接收第一用户端请求创建通讯链路的第一请求;创建用于服务端与第一用户端进行即时交互的目标通讯链路,并为目标通讯链路配置链路标识;根据目标通讯链路的链路标识,生成与目标通讯链路绑定使用的目标密钥信息,目标密钥信息中包括与第一用户端预先约定的为指定长度的目标密钥段,预先约定用于指示指定长度,指定长度短于目标密钥信息的长度;将目标密钥信息发送给第一用户端,目标密钥信息中的目标密钥段,用于对通过目标通讯链路传输的交互信息进行加密处理或者解密处理。本申请解决了相关技术中即时通讯的安全性较低的技术问题。
Description
技术领域
本申请涉及即时通讯领域,具体而言,涉及一种即时通讯方法、装置及系统、存储介质、电子装置。
背景技术
如今,即时通讯软件让人与人之间的沟通变得更为方便,然而,现有的即时通讯软件显示的消息都是明文的,当手机网络存在安全隐患的情况下,这些明文信息很容易被别人获取,且其中很可能有一些通信数据会涉及一些私密数据,例如财务数据、身份证等隐私数据、商业信息等,这些信息的泄露有可能对使用者及其联系人造成不可估计的损失。
针对上述即时通讯的安全性较低的问题,目前尚未提出有效的解决方案。
发明内容
本申请实施例提供了一种即时通讯方法、装置及系统、存储介质、电子装置,以至少解决相关技术中即时通讯的安全性较低的技术问题。
根据本申请实施例的一个方面,提供了一种即时通讯系统,包括:即时通讯服务的服务端,用于在接收到第一请求的情况下,创建用于进行即时交互的目标通讯链路,并根据目标通讯链路的链路标识,生成与目标通讯链路绑定使用的目标密钥信息;即时通讯服务的用户端,用于在向服务端发送第一请求之后,接收服务端返回的目标密钥信息,按照与服务端的预先约定从目标密钥信息中截取为指定长度的目标密钥段,其中,目标密钥信息中的目标密钥段,用于对通过目标通讯链路传输的交互信息进行加密处理或者解密处理,预先约定用于指示指定长度,指定长度短于目标密钥信息的长度。
根据本申请实施例的另一方面,还提供了一种即时通讯方法,应用于提供即时通讯服务的服务端,该方法包括:接收第一请求,其中,第一请求用于第一用户端请求创建通讯链路,第一用户端为提供即时通讯服务的用户端;创建用于服务端与第一用户端进行即时交互的目标通讯链路,并为目标通讯链路配置链路标识;根据目标通讯链路的链路标识,生成与目标通讯链路绑定使用的目标密钥信息,其中,目标密钥信息中包括与第一用户端预先约定的为指定长度的目标密钥段,预先约定用于指示指定长度,指定长度短于目标密钥信息的长度;将目标密钥信息发送给第一用户端,其中,目标密钥信息中的目标密钥段,用于对通过目标通讯链路传输的交互信息进行加密处理或者解密处理。
可选地,在接收第一请求之后,接收第二请求,其中,第二请求用于请求创建通讯链路;创建用于服务端与第二请求的发送用户端进行即时交互的第一通讯链路,并为第一通讯链路配置链路标识;根据第一通讯链路的链路标识,生成与第一通讯链路绑定使用的第一密钥信息,其中,第一密钥信息与目标密钥信息不同,第一密钥信息中包括与第二请求的发送用户端预先约定的为指定长度的密钥段;将第一密钥信息发送给第二请求的发送用户端,其中,第二请求的发送用户端用于利用第一密钥信息中的密钥段,对通过第一通讯链路传输的交互信息进行加密处理或者解密处理。
可选地,在根据目标通讯链路的链路标识,生成与目标通讯链路绑定使用的目标密钥信息之后,在数据表中保存目标通讯链路的链路标识与目标密钥信息之间的关联关系,其中,数据表用于保存各通讯链路的链路标识与相应密钥信息之间的关联关系;利用在目标通讯链路上发送的心跳包监控目标通讯链路的状态;在监控到目标通讯链路断开的情况下,在数据表中删除与目标通讯链路的链路标识关联的目标密钥信息。
可选地,在将目标密钥信息发送给第一用户端之后,在接收到密钥更换请求的情况下,判断目标通讯链路是否处于存活状态;在目标通讯链路处于存活状态的情况下,将目标通讯链路的密钥信息从目标密钥信息更换为第二密钥信息,其中,第二密钥信息与目标密钥信息不同。
可选地,将目标密钥信息发送给第一用户端之后,方法还包括:按照如下方式利用目标密钥段对通过目标通讯链路传输的交互信息进行加密处理或者解密处理:在通过目标通讯链路接收到第一用户端向第二用户端发送的第一加密信息的情况下,查找与目标通讯链路的链路标识关联的目标密钥信息,利用目标密钥信息中的目标密钥段对第一加密信息进行解密得到第一明文信息,确定与第二用户端进行通讯的第二通讯链路,查找与第二通讯链路的链路标识关联的第三密钥信息,使用第三密钥信息中的密钥段对第一明文信息进行加密得到第二加密信息,利用第二通讯链路将第二加密信息发送给第二用户端;或,在通过第三通讯链路接收到第三用户端向第一用户端发送的第三加密信息的情况下,查找与第三通讯链路的链路标识关联的第四密钥信息,利用第四密钥信息中的密钥段对第三加密信息进行解密得到第二明文信息,确定与第一用户端进行通讯的目标通讯链路,查找与目标通讯链路的链路标识关联的目标密钥信息,使用目标密钥信息中的目标密钥段对第二明文信息进行加密得到第四加密信息,利用目标通讯链路将第四加密信息发送给第一用户端。
可选地,在生成与目标通讯链路绑定使用的目标密钥信息之后,利用目标通讯链路向用户端发送心跳包,心跳包用于保持与用户端之间的连接;在接收到心跳包的回应包的时间大于第一时长的情况下,通过短连接与用户端沟通是否需要更换密钥信息,若需要更换,则通过短连接更换密钥信息,第一时长长于正常响应的最长时间;在第二时长内未收到心跳包的回应包的情况下,将目标通讯链路和目标密钥信息作废,通过短连接告知用户端目标通讯链路和目标密钥信息已经作废,在收到用户端的反馈的情况下,重新建立与用户端之间的通讯链路,并通过短连接将新通讯链路的密钥信息发送给用户端。
根据本申请实施例的另一方面,还提供了一种即时通讯方法,应用于提供即时通讯服务的用户端,该方法包括:向服务端发送第一请求,其中,第一请求用于请求服务端创建通讯链路;接收服务端返回的目标密钥信息,其中,服务端用于创建与用户端进行即时交互的目标通讯链路,并根据为目标通讯链路创建的链路标识,生成与目标通讯链路绑定使用的目标密钥信息;按照与服务端的预先约定,从目标密钥信息中截取为指定长度的目标密钥段,其中,预先约定用于指示指定长度,指定长度短于目标密钥信息的长度,目标密钥段用于对通过目标通讯链路传输的交互信息进行加密处理或者解密处理。
可选地,在接收服务端返回的目标密钥信息之后,在数据表中保存目标密钥信息与目标通讯链路之间的关联关系,其中,数据表用于保存各通讯链路的链路标识与相应密钥信息之间的关联关系;在数据表中保存目标密钥信息与目标通讯链路之间的关联关系之后,接收服务端返回的密钥更新指令,其中,密钥更新指令用于指示将与目标通讯链路绑定使用的密钥信息从目标密钥信息更换为第二密钥信息,其中,第二密钥信息与目标密钥信息不同;判断目标通讯链路是否处于存活状态;在目标通讯链路处于存活状态的情况下,将目标通讯链路的密钥信息从目标密钥信息更换为第二密钥信息。
可选地,按照与服务端的预先约定,从目标密钥信息中截取为指定长度的目标密钥段之后,按照如下方式利用目标密钥段对通过目标通讯链路传输的交互信息进行加密处理或者解密处理:查找待发送的第一明文信息需要使用的目标通讯链路,获取与目标通讯链路的链路标识关联的目标密钥信息,使用目标密钥信息中的目标密钥段对第一明文信息进行加密,得到第一加密信息,利用目标通讯链路将第一加密信息发送给服务端;和/或,在通过目标通讯链路接收到第三加密信息的情况下,获取与目标通讯链路的链路标识关联的目标密钥信息,使用目标密钥中的目标密钥段对第三加密信息进行解密,得到第二明文信息。
可选地,接收服务器返回的目标密钥信息包括:通过短连接接收密钥信息;或,通过长连接(即目标通讯链路)接收目标密钥信息。
可选地,密钥信息与通讯链路是绑定使用的,对于接收到的目标密钥信息,与其他密钥信息不同,其他密钥信息也是用户端的即时通讯应用使用的,其他密钥信息是与其他通讯链路(与目标通讯链路不同)绑定使用的,换言之,目标密钥信息不能在利用其他通讯链路进行交互时使用,其他密钥信息也不能在利用目标通讯链路进行交互时使用。
根据本申请实施例的另一方面,还提供了一种即时通讯装置,应用于提供即时通讯服务的服务端,装置包括:第一接收单元,用于接收第一请求,其中,第一请求用于第一用户端请求创建通讯链路,第一用户端为提供即时通讯服务的用户端;创建单元,用于创建用于服务端与第一用户端进行即时交互的目标通讯链路,并为目标通讯链路配置链路标识;生成单元,用于根据目标通讯链路的链路标识,生成与目标通讯链路绑定使用的目标密钥信息,其中,目标密钥信息中包括与第一用户端预先约定的为指定长度的目标密钥段,预先约定用于指示指定长度,指定长度短于目标密钥信息的长度;第一发送单元,用于将目标密钥信息发送给第一用户端,其中,目标密钥信息中的目标密钥段,用于对通过目标通讯链路传输的交互信息进行加密处理或者解密处理。
根据本申请实施例的另一方面,还提供了一种即时通讯装置,应用于提供即时通讯服务的用户端,装置包括:第二发送单元,用于向服务端发送第一请求,其中,第一请求用于请求服务端创建通讯链路;第二接收单元,用于接收服务端返回的目标密钥信息,其中,服务端用于创建与用户端进行即时交互的目标通讯链路,并根据为目标通讯链路创建的链路标识,生成与目标通讯链路绑定使用的目标密钥信息;处理单元,用于按照与服务端的预先约定,从目标密钥信息中截取为指定长度的目标密钥段,其中,预先约定用于指示指定长度,指定长度短于目标密钥信息的长度,目标密钥段用于对通过目标通讯链路传输的交互信息进行加密处理或者解密处理。
根据本申请实施例的另一方面,还提供了一种存储介质,该存储介质包括存储的程序,程序运行时执行上述的方法。
根据本申请实施例的另一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器通过计算机程序执行上述的方法。
根据本申请的一个方面,提供了一种计算机程序产品或计算机程序,该计算机程序产品或计算机程序包括计算机指令,该计算机指令存储在计算机可读存储介质中。计算机设备的处理器从计算机可读存储介质读取该计算机指令,处理器执行该计算机指令,使得该计算机设备执行上述方法中任一实施例的步骤。
在本申请实施例中,在即时通讯服务的用户端与服务端进行即时通讯时,服务端为用户端创建专用的通讯链路,并生成需要与该通讯链路绑定使用的密钥信息,在使用该通讯链路交互时利用该密钥信息对交互信息进行加解密处理,由于通讯链路是与密钥信息绑定使用的,所以只要通讯链路发生变化,那么之前的密钥信息就不能再使用,需要使用新的与变化后的通讯链路匹配的密钥信息,换言之,密钥信息是随通讯链路的变化而变化的,可以解决相关技术中即时通讯的安全性较低的技术问题,进而达到提高即时通讯中数据安全的技术效果。
附图说明
此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是根据本申请实施例的即时通讯方法的硬件环境的示意图;
图2是根据本申请实施例的一种可选的即时通讯方法的流程示意图;
图3是根据本申请实施例的一种可选的即时通讯方法的流程示意图;
图4是根据本申请实施例的一种可选的即时通讯方案的交互示意图;
图5是根据本申请实施例的一种可选的即时通讯装置的结构框图;
图6是根据本申请实施例的一种可选的即时通讯装置的结构框图;以及,
图7是根据本申请实施例的一种终端的结构框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或者术语适用于如下解释:
API(Application Programming Interface,应用程序接口)是一些预先定义的接口(如函数、HTTP接口),或指软件系统不同组成部分衔接的约定。
即时通讯(Instant Messaging,简称IM)是目前Internet上最为流行的通讯方式,各种各样的即时通讯软件也层出不穷;服务提供商也提供了越来越丰富的通讯服务功能。
超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。它指定了客户端可能发送给服务器什么样的消息以及得到什么样的响应。
HTTPS(全称:Hyper Text Transfer Protocol over Secure Socket Layer),是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。
传输控制协议(TCP,Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议,由IETF的RFC 793定义。
非对称加密虽然加密安全程度高,但加密速度慢、密钥交互步骤繁琐,不适合用户量或者并发量较大的互联网应用场景,在这些场景中可选择对称加密,如即时通讯应用中,由服务端、用户端采用同一加密Key,进行加解密,例如,某些即时通讯应用中,采用即时通讯号码做为密钥Key,进行聊天记录的加密。
相比非对称加密来说,对称加密的优点是加密速度快,但密钥管理起来较困难,主要是加密Key的规则容易泄露,一旦加密Key规则被发现,则存在数据泄露的危险。
为了克服以上问题,根据本申请实施例的一方面,提供了一种即时通讯方法的实施例。
可选地,在本实施例中,上述即时通讯方法可以应用于如图1所示的由用户端101(用于向用户提供即时通讯服务,可以为即时通讯服务的客户端或者安装有该客户端的智能终端)和服务端103(用于向客户端提供即时通讯服务,可以为即时通讯服务的服务器或者虚拟服务器)所构成的环境中。上述即时交互服务的应用可以是单独的及时交互应用,也可以是提供即时交互服务的其他应用(如游戏应用、直播应用等)。
如图1所示,服务端103可用于为客户端提供即时通讯服务,如在接收到用户端的第一请求的情况下,创建用于与用户端进行即时交互的目标通讯链路,并根据目标通讯链路的链路标识,生成与目标通讯链路绑定使用的目标密钥信息,然后从目标密钥信息中截取为指定长度的目标密钥段,并在利用目标通讯链路进行即时交互的过程中,服务端和用户端中的一个利用目标密钥段对发送的交互信息进行加密,另一个则利用目标密钥段对接收的交互信息进行解密。
服务端103通过网络可与用户端101进行连接(如利用短连接和长连接进行连接),可在服务端上或独立于服务端设置数据库105,用于为服务端103提供数据存储服务(如存储令牌数据TOKEN),上述网络包括但不限于:广域网、城域网或局域网,上述智能终端并不限定于PC、手机、平板电脑等。
如图2所示,本申请实施例的即时通讯方法可以由用户端101来执行以下步骤:
步骤S21,用户端向服务端发送第一请求,以请求服务端创建通讯链路。
步骤S22,用户端接收服务端返回的目标密钥信息,服务端用于在接收到第一请求的情况下,创建与用户端进行即时交互的目标通讯链路,并根据为目标通讯链路创建的链路标识,生成与目标通讯链路绑定使用的目标密钥信息。
步骤S23,用户端按照与服务端的预先约定,从目标密钥信息中截取为指定长度的目标密钥段,预先约定用于指示指定长度,指定长度短于目标密钥信息的长度,目标密钥段用于对通过目标通讯链路传输的交互信息进行加密处理或者解密处理。
如图3所示,本申请实施例的即时通讯方法可以由服务端103来执行以下步骤:
步骤S31,服务端接收第一请求,第一请求用于第一用户端请求创建通讯链路,第一用户端为提供即时通讯服务的用户端。
上述第一请求为用于请求创建通讯链路的请求,可以为用户端主动发送的请求,如登录请求、链路更新请求等;还可以是服务端自己产生的请求,如在原通讯链路发生故障等情况下产生的请求。
步骤S32,服务端创建用于服务端与第一用户端进行即时交互的目标通讯链路,并为目标通讯链路配置链路标识。
步骤S33,服务端根据目标通讯链路的链路标识,生成与目标通讯链路绑定使用的目标密钥信息,目标密钥信息中包括与第一用户端预先约定的为指定长度的目标密钥段,预先约定用于指示指定长度,指定长度短于目标密钥信息的长度。
步骤S34,服务端将目标密钥信息发送给第一用户端,目标密钥信息中的目标密钥段,用于对通过目标通讯链路传输的交互信息进行加密处理或者解密处理。
本申请实施例的即时通讯方法还可以由同一终端单独执行,即终端同时实现用户端101和服务端103的步骤,在此不再赘述。
通过上述步骤,在即时通讯服务的用户端与服务端进行即时通讯时,服务端为用户端创建专用的通讯链路,并生成需要与该通讯链路绑定使用的密钥信息,在使用该通讯链路交互时利用该密钥信息对交互信息进行加解密处理,由于通讯链路是与密钥信息绑定使用的,所以只要通讯链路发生变化,那么之前的密钥信息就不能再使用,需要使用新的与变化后的通讯链路匹配的密钥信息,换言之,密钥信息是随通讯链路的变化而变化的,可以解决相关技术中即时通讯的安全性较低的技术问题,进而达到提高即时通讯中数据安全的技术效果。下文结合具体步骤示意性的详述本申请的技术方案:
步骤1,用户端(后续以第一用户端为例进行说明,对于第二用户端等用户端,与此类似)向服务端发送登录请求(属于第一请求中的一种),登录请求用于请求在服务端上登录通讯应用中的目标通讯帐号。
如图1所示,服务端可以向提供API接口和IM接口,API接口为即时通讯IM服务的接口服务,主要为用户提供HTTP相关的接口数据,比如IM系统中的拉消息等;IM接口为即时通讯IM服务提供长连接服务接口,主要是建立长连接并维持用户的长连接,接收并发送消息等,该接口是基于TCP进行开发的。
第一用户端向服务端发送登录请求时,可以通过API接口实现,即利用HTTP的短连接发送登录请求给服务端。
步骤2,服务端利用IM接口创建用于与第一用户端进行即时交互的目标通讯链路。
例如,当有两个用户User1及User2分别登录系统时,则这两个用户分别维持了至少一条长连接至IM服务中。
步骤3,服务端根据目标通讯链路的链路标识,生成与目标通讯链路绑定使用的目标密钥信息,目标密钥信息中包括与第一用户端预先约定的长度为指定长度的目标密钥段,预先约定用于指示指定长度,指定长度短于目标密钥信息的长度。
可选地,在服务端,对于所有使用中的通讯链路均存在链路标识,且其中任意两个通讯链路的链路标识不同(以避免产生相同的密钥信息);利用链路标识生成目标密钥信息,具体的生成方案可以为AES、DES、3DES等算法实现。
步骤4,服务端将目标密钥信息发送给第一用户端。
服务端可通过短连接发送目标密钥信息给第一用户端;也可通过长连接(即目标通讯链路)发送目标密钥信息给第一用户端。
步骤5,服务端在数据表中保存各通讯链路的链路标识与相应密钥信息之间的关联关系(包括目标通讯链路的链路标识与目标密钥信息之间的关联关系),并基于此维护与用户端之间的通讯链路和密钥信息,以维护与第一用户端的通讯链路和密钥信息为例,可通过以下步骤51-步骤53所示意的方案实现:
步骤51,利用目标通讯链路向第一用户端发送心跳包,以保持与第一用户端之间的连接。
步骤52,在接收到心跳包的回应包的时间大于第一时长(例如1秒)的情况下,通过短连接与第一用户端沟通是否需要更换密钥信息,若需要更换,则通过短连接发送密钥更新指令来更换密钥信息,第一时长长于正常响应的最长时间。
正常情况下,第一用户端在接收到心跳包后会返回回应包,且间隔心跳包的发送时间不会超过最大时长(即第一时长),若超过了则说明存在通讯故障(如网络抖动、终端卡顿等),此时可以由终端和服务端协商是否更换密钥。
步骤53,在第二时长内未收到心跳包的回应包的情况下,即在监控到目标通讯链路断开的情况下,在数据表中删除与目标通讯链路的链路标识关联的目标密钥信息(此处的删除可以是物理删除,也可以是冻结以暂停该密钥的使用),通过短连接通知第一用户端目标通讯链路和目标密钥信息已经暂停使用,在收到第一用户端针对通知的反馈的情况下,可重新建立与第一用户端之间的通讯链路,并通过短连接将新通讯链路的密钥信息发送给第一用户端,也可恢复之前密钥信息的使用。
可选地,在将目标密钥信息发送给第一用户端之后,第一用户端可以发起密钥更新请求来更换密钥,服务端在接收到第一用户端的密钥更换请求的情况下,判断目标通讯链路是否处于存活状态(即在第二时长内未收到心跳包的回应包);在目标通讯链路处于存活状态的情况下,将目标通讯链路的密钥信息从目标密钥信息更换为第二密钥信息,第二密钥信息与目标密钥信息不同,并将第二密钥信息通过短连接告知第一用户端。
步骤6,第一用户端接收服务端发送的目标密钥信息,包括但不局限于如下几种情况:
其一是:接收服务端针对登录请求返回的携带有密钥信息的登录回执,登录回执为服务端同意登录目标通讯帐号、且为第一用户端创建所通讯链路后生成的;
其二是,在服务端发送给第一客户端密钥更新指令(例如,在心跳包的回应超时后,需要更新密钥信息的情况发送的密钥更新指令)之后,获取更换的密钥信息(与之前的密钥信息不同);
其三是,接收服务端返回的链路更新指令(例如,在没有心跳包的回应的情况下,重新更新通讯链路的链路更新指令),链路更新指令用于指示将与智能终端进行即时交互的通讯链路进行更换、并指示与更换后的通讯链路绑定使用的密钥信息,第一客户端可以获取所指示的更新后的通讯链路和对应的密钥信息;
其四是,在第一用户端向服务端发起密钥更新请求后,获取由服务端更新后的密钥信息。
在用户端,可在数据表中保存各通讯链路的链路标识与相应密钥信息之间的关联关系,如在接收服务端返回的目标密钥信息之后,在数据表中保存目标密钥信息与目标通讯链路之间的关联关系;在接收服务端返回的密钥更新指令之后,判断目标通讯链路是否处于存活状态,在目标通讯链路处于存活状态的情况下,在数据表中更新目标通讯链路的密钥信息。
步骤7,第一用户端按照与服务端的预先约定,从目标密钥信息中截取为指定长度的目标密钥段,预先约定用于指示指定长度,指定长度短于目标密钥信息的长度。
从目标密钥信息中截取为指定长度的目标密钥段包括但不局限于如下方案:
其一是:预先约定除了指定目标密钥段的长度外,还指定了目标密钥段在目标密钥信息中的位置,目标密钥信息的字符长度为a,目标密钥段的长度为b(b小于a),例如,目标密钥信息的长度a为10,目标密钥段的长度b为6,预先约定指定的目标密钥段在目标密钥信息中的起始位置是第2个字符,那么目标密钥段就是目标密钥信息中第2个至第7个字符;
其二是,利用发送时间戳来确定目标密钥段在目标密钥信息中的位置。目标密钥段在使用过程中是可以发生变化的。
例如,在刚刚收到目标密钥信息(如登录回执中携带的、密钥更新指令所指示的、链路更新指令所指示的)时,获取目标密钥信息的发送时间戳,然后利用时间戳在目标密钥信息中确定目标密钥段的起始位置,进而确定目标密钥段;再如,第一用户端在接收到服务端通过目标通讯链路发送的数据包时,用之前的目标密钥段不能正确解密、且未收到服务端发送的更新目标密钥信息的通知,则获取数据包的时间戳,然后利用时间戳在目标密钥信息中确定新的目标密钥段的起始位置,进而确定目标密钥段。
利用时间戳在目标密钥信息中确定目标密钥段(可以是第一次确定目标密钥段,也可以是确定新的目标密钥段)的实现方式如下:截取发送时间戳的后c位的值;将发送时间戳的后c位的值与a取余,得到d;在(d+b-1)小于等于a的情况下,直接取目标密钥信息中的第d位至第(d+b-1)位为目标密钥段;在(d+b-1)大于a的情况下,确定目标密钥信息中第d位至第a位的第一密钥段、目标密钥信息中第1位至第(b+d-a-1)位的第二密钥段,将第一密钥段和第二密钥段拼接为目标密钥段。
在上述方案中,服务端在以下情况下:发现有危险、存在疑似危险、定时触发,在不变更目标密钥信息的情况下更换目标密钥段,提高信息交互的安全性,且终端侧也能在不和服务端交互的情况下,知晓服务端的意图,避免中间沟通密钥的过程被发现(因为存在风险,若继续在存在风险的网络中沟通密钥,必然存在泄露的可能性),从而提高了整个系统的安全性。
步骤8,在使用目标通讯链路进行即时交互的过程中,按照目标通讯链路的标识从数据表中查找对应的目标密钥信息,以利用目标密钥段对交互信息进行处理。
按照如下方式利用目标密钥段对通过目标通讯链路传输的交互信息进行加密处理或者解密处理:
1)查找待发送的第一明文信息需要使用的目标通讯链路,获取与目标通讯链路的链路标识关联的目标密钥信息,使用目标密钥信息中的目标密钥段对第一明文信息进行加密,得到第一加密信息,利用目标通讯链路将第一加密信息发送给服务端;
2)在通过目标通讯链路接收到第三加密信息的情况下,获取与目标通讯链路的链路标识关联的目标密钥信息,使用目标密钥中的目标密钥段对第三加密信息进行解密,得到第二明文信息。
按照如下方式利用目标密钥段对通过目标通讯链路传输的交互信息进行加密处理或者解密处理:
1)在通过目标通讯链路接收到第一用户端向第二用户端发送的第一加密信息的情况下,查找与目标通讯链路的链路标识关联的目标密钥信息,利用目标密钥信息中的目标密钥段对第一加密信息进行解密得到第一明文信息,确定与第二用户端进行通讯的第二通讯链路,查找与第二通讯链路的链路标识关联的第三密钥信息,使用第三密钥信息中的密钥段对第一明文信息进行加密得到第二加密信息,利用第二通讯链路将第二加密信息发送给第二用户端;
2)在通过第三通讯链路接收到第三用户端向第一用户端发送的第三加密信息的情况下,查找与第三通讯链路的链路标识关联的第四密钥信息,利用第四密钥信息中的密钥段对第三加密信息进行解密得到第二明文信息,确定与第一用户端进行通讯的目标通讯链路,查找与目标通讯链路的链路标识关联的目标密钥信息,使用目标密钥信息中的目标密钥段对第二明文信息进行加密得到第四加密信息,利用目标通讯链路将第四加密信息发送给第一用户端。
上述以利用服务端与第一客户端之间的一个通讯连接进行交互为例进行说明,对于其他通讯连接,与此类似:
步骤1,服务端接收第二请求,第二请求用于请求创建通讯链路。
步骤2,服务端创建用于服务端与第二请求的发送用户端进行即时交互的第一通讯链路,并为第一通讯链路配置链路标识。
步骤3,服务端根据第一通讯链路的链路标识,生成与第一通讯链路绑定使用的第一密钥信息,第一密钥信息与目标密钥信息不同,第一密钥信息中包括与第二请求的发送用户端预先约定的为指定长度的密钥段。
步骤4,服务端将第一密钥信息发送给第二请求的发送用户端,第二请求的发送用户端用于利用第一密钥信息中的密钥段,对通过第一通讯链路传输的交互信息进行加密处理或者解密处理。
在上述步骤中,第二请求的发送用户端可以为第一用户端,此时相当于第一用户端可以与服务端保持多个通讯链接,且每个通讯链接的密钥信息不同(密钥的生成方式除了考虑通讯链路的标识,还可以考虑客户端的标识);第二请求的发送用户端可以为第一用户端以外的客户端,该客户端与服务端之间的交互与第一客户端类似,不再赘述。
在本申请的技术方案中,本通讯连接所传输的数据主要包括两种:普通二进制流消息,对于一些安全性较低,或者需要保证快速传输的会采用这一方式;需要对称加密的内,对于一些有安全性要求的内容,防篡改防破解的内容均采用这一方式。对于加密机制除了3DES外,也可采用其它方式,只需要客户端与服务端协商即可,同理,加密Key在每个连接上是唯一的,当断线重连时即可生成新的加密Key。
在某一连接存活期间,本连接未进行改变,若需改变,则需由服务端产生,并首先更新服务端连接的加密Key属性,同时,通知至客户端,由客户端更新连接中的加密Key值即可。
在IM系统中可使用对称加密及非对称加密,由服务为每一个接入者颁发私钥,由使用者通过本私钥进行加密,并由IM服务端通过公钥进行解密,在此过程中,需要有公私钥的数据协商的过程,相对来说交互较为复杂,且执行效率较低,不太适合高并发的互联网应用。而采用本方案的设计,采用每一连接动态协商的加密Key进行动态加密,可解决单聊、群聊相关的数据在TCP网络传输过程中的数据安全问题。
作为一种可选的实施例,下面以具体实现方式为例示意性的描述本申请的技术方案:
当有两个用户User1及User2分别登录系统时,这两个用户则分别维持了一条长连接至IM服务中,操作步骤为:
步骤1,如图4所示,User1首先通过HTTPS发送登录请求至IM服务,IM服务接收到此请求后,利用TCP为其创建连接服务(即通讯链路),并返回回执至User1,同时,回执中包含本条连接的加密Key1,由客户端及服务端分别进行保存,供在本条连接发送数据时加密,及接收数据解密时使用。
其中,加密Key1的生成方式为,采用客户端至服务端的连接ChannelId(即链路标识)为基础规则,进行生成,生成为一个用于客户端,服务端进行加密使用的64位的加密串(即密钥信息)。
加密Key在下发时,采用将这64位加密串整体下发,即当用户建连登录时,在登录的回执中,携带此加密Key,此登录回执包为二进制协议格式,采用自定义的消息协议,有一定的破解难度。当客户端收到此Key在使用时,并不真正完全使用这64位的串,而是取预先的约定规则获取中间的部分Key,以此来简单实现加密Key的混淆传输并有效使用的目的。
步骤2,User2同理,也会在建立登录请求时,获取得到本条连接的加密Key2,其它操作User1。
步骤3,当User1向中User2发消息时,则采用User1的加密Key1作为密钥,采用3DES算法,对消息内容进行加密。
步骤4,IM服务器当收到本条内容后,则获取到事先保存好的User1的加密Key1,进行对User1的数据进行解密,由此,在服务端,将本条消息内容作为明文内容进行存储落地。
加密Key1在服务端保存的方式为,在服务端的本连接的Channel中,绑定并设置该Key1的信息,以此来确保每一连接中该值的唯一性。
当在连接中保存、或在使用时,均根据设定好的关键字操作这一连接的相关的Key值即可。
步骤5,向User2下发本条消息时,由又采用User2本连接的加密Key2进行对消息进行加密,User2收到后,采用加密Key2进行解密即可。
通过以上交互,保证了在本系统的TCP通信中,并未完全采用对称及非对称加密,而是采用每一连接动态协商的加密Key进行动态加密,兼顾了对称加密可以高效处理的特性,同时,又保证加密Key值不唯一,通过动态变更,加大了数据包在网络传输过程中的安全性,及破解的门槛。
在本申请的技术方案中:
1)未使用传统的对称及非对称加密,主要通过动态协商,将加密Key精确至每一个连接中,无论用户在进行TCP登录,或者断线重连时,都会获取一新Key,加大了破解的难度;
2)客户端、及服务端所建连的TCP连接,是双工的形式,连接在建立时,两端会在连接的Channel信息中,绑定相关的参数,如uid、加密Key等,当某一连接在建立时,服务端将本连接的加密Key绑定在了本连接的Channel中,同时,会将加密Key发送至客户端,客户端也将此加密Key绑定在自己的连接Channel中;
3)在本连接的存活的周期内,均可随时取用本加密Key,当连接断开时,则连接上所绑定的相关参数信息将自动销毁,包括uid、加密Key等;
4)由于本IM系统为互联网应用,日常消息量较大,服务端采用3DES算法,对二进制内容进行加解密,有效保证了程序的执行效率,且通过该算法加密后的数据,与同类算法相比包体积较小。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
根据本申请实施例的另一个方面,还提供了一种用于实施上述即时通讯方法的即时通讯装置。图5是根据本申请实施例的一种可选的即时通讯装置的结构框图,如图5所示,该装置可以包括:
第一接收单元51,用于接收第一请求,其中,所述第一请求用于第一用户端请求创建通讯链路,所述第一用户端为提供即时通讯服务的用户端;
创建单元53,用于创建用于所述服务端与所述第一用户端进行即时交互的目标通讯链路,并为所述目标通讯链路配置链路标识;
生成单元55,用于根据所述目标通讯链路的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息,其中,所述目标密钥信息中包括与所述第一用户端预先约定的为指定长度的目标密钥段,所述预先约定用于指示所述指定长度,所述指定长度短于所述目标密钥信息的长度;
第一发送单元57,用于将所述目标密钥信息发送给所述第一用户端,其中,所述目标密钥信息中的所述目标密钥段,用于对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理。
可选地,第一接收单元还用于接收第二请求,其中,所述第二请求用于请求创建通讯链路;创建单元还用于创建用于所述服务端与所述第二请求的发送用户端进行即时交互的第一通讯链路,并为所述第一通讯链路配置链路标识;生成单元还用于根据所述第一通讯链路的链路标识,生成与所述第一通讯链路绑定使用的第一密钥信息,其中,所述第一密钥信息与所述目标密钥信息不同,所述第一密钥信息中包括与所述第二请求的发送用户端预先约定的为指定长度的密钥段;第一发送单元还用于将所述第一密钥信息发送给所述第二请求的发送用户端,其中,所述第二请求的发送用户端用于利用所述第一密钥信息中的密钥段,对通过所述第一通讯链路传输的交互信息进行加密处理或者解密处理。
可选地,上述装置还可包括:监控单元,用于:在根据所述目标通讯链路的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息之后,在数据表中保存所述目标通讯链路的链路标识与所述目标密钥信息之间的关联关系,其中,所述数据表用于保存各通讯链路的链路标识与相应密钥信息之间的关联关系;利用在所述目标通讯链路上发送的心跳包监控所述目标通讯链路的状态;在监控到所述目标通讯链路断开的情况下,在所述数据表中删除与所述目标通讯链路的链路标识关联的所述目标密钥信息。
可选地,上述监控单元还用于:在将所述目标密钥信息发送给所述第一用户端之后,在接收到密钥更换请求的情况下,判断所述目标通讯链路是否处于存活状态;在所述目标通讯链路处于存活状态的情况下,将所述目标通讯链路的密钥信息从所述目标密钥信息更换为第二密钥信息,其中,所述第二密钥信息与所述目标密钥信息不同。
可选地,上述第一发送单元还用于按照如下方式利用所述目标密钥段对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理:在通过所述目标通讯链路接收到所述第一用户端向第二用户端发送的第一加密信息的情况下,查找与所述目标通讯链路的链路标识关联的所述目标密钥信息,利用所述目标密钥信息中的所述目标密钥段对所述第一加密信息进行解密得到第一明文信息,确定与所述第二用户端进行通讯的第二通讯链路,查找与所述第二通讯链路的链路标识关联的第三密钥信息,使用所述第三密钥信息中的密钥段对所述第一明文信息进行加密得到第二加密信息,利用所述第二通讯链路将所述第二加密信息发送给所述第二用户端;或,在通过第三通讯链路接收到第三用户端向所述第一用户端发送的第三加密信息的情况下,查找与所述第三通讯链路的链路标识关联的第四密钥信息,利用所述第四密钥信息中的密钥段对所述第三加密信息进行解密得到第二明文信息,确定与所述第一用户端进行通讯的所述目标通讯链路,查找与所述目标通讯链路的链路标识关联的所述目标密钥信息,使用所述目标密钥信息中的所述目标密钥段对所述第二明文信息进行加密得到第四加密信息,利用所述目标通讯链路将所述第四加密信息发送给所述第一用户端。
根据本申请实施例的另一个方面,还提供了一种用于实施上述即时通讯方法的即时通讯装置。图6是根据本申请实施例的一种可选的即时通讯装置的结构框图,如图6所示,该装置可以包括:
第二发送单元61,用于向服务端发送第一请求,其中,所述第一请求用于请求所述服务端创建通讯链路;
第二接收单元63,用于接收所述服务端返回的目标密钥信息,其中,所述服务端用于创建与所述用户端进行即时交互的目标通讯链路,并根据为所述目标通讯链路创建的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息;
处理单元65,用于按照与所述服务端的预先约定,从所述目标密钥信息中截取为指定长度的目标密钥段,其中,所述预先约定用于指示所述指定长度,所述指定长度短于所述目标密钥信息的长度,所述目标密钥段用于对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理。
可选地,本申请的装置还可包括:更新单元,用于在接收服务端返回的目标密钥信息之后,在数据表中保存所述目标密钥信息与所述目标通讯链路之间的关联关系,其中,所述数据表用于保存各通讯链路的链路标识与相应密钥信息之间的关联关系;在数据表中保存所述目标密钥信息与所述目标通讯链路之间的关联关系之后,接收所述服务端返回的密钥更新指令,其中,所述密钥更新指令用于指示将与所述目标通讯链路绑定使用的密钥信息从所述目标密钥信息更换为第二密钥信息,其中,所述第二密钥信息与所述目标密钥信息不同;判断所述目标通讯链路是否处于存活状态;在所述目标通讯链路处于存活状态的情况下,将所述目标通讯链路的密钥信息从所述目标密钥信息更换为所述第二密钥信息。
可选地,第二接收单元还用于按照如下方式利用所述目标密钥段对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理:查找待发送的第一明文信息需要使用的所述目标通讯链路,获取与所述目标通讯链路的链路标识关联的所述目标密钥信息,使用所述目标密钥信息中的所述目标密钥段对所述第一明文信息进行加密,得到第一加密信息,利用所述目标通讯链路将所述第一加密信息发送给所述服务端;和/或,在通过所述目标通讯链路接收到第三加密信息的情况下,获取与所述目标通讯链路的链路标识关联的所述目标密钥信息,使用所述目标密钥中的所述目标密钥段对所述第三加密信息进行解密,得到第二明文信息。
此处需要说明的是,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述模块作为装置的一部分可以运行在如图1所示的环境中,可以通过软件实现,也可以通过硬件实现。
根据本申请实施例的另一个方面,还提供了一种用于实施上述即时通讯方法的服务器或终端。
图7是根据本申请实施例的一种智能终端的结构框图,如图7所示,该智能终端可以包括:一个或多个(图7中仅示出一个)处理器701、存储器703、以及传输装置705,如图7所示,该智能终端还可以包括输入输出设备707。
其中,存储器703可用于存储软件程序以及模块,如本申请实施例中的即时通讯方法和装置对应的程序指令/模块,处理器701通过运行存储在存储器703内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的即时通讯方法。存储器703可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器703可进一步包括相对于处理器701远程设置的存储器,这些远程存储器可以通过网络连接至智能终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
上述的传输装置705用于经由一个网络接收或者发送数据,还可以用于处理器与存储器之间的数据传输。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置705包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置705为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
其中,具体地,存储器703用于存储应用程序。
处理器701可以通过传输装置705调用存储器703存储的应用程序,以执行下述步骤:
接收第一请求,其中,所述第一请求用于第一用户端请求创建通讯链路,所述第一用户端为提供即时通讯服务的用户端;
创建用于所述服务端与所述第一用户端进行即时交互的目标通讯链路,并为所述目标通讯链路配置链路标识;
根据所述目标通讯链路的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息,其中,所述目标密钥信息中包括与所述第一用户端预先约定的为指定长度的目标密钥段,所述预先约定用于指示所述指定长度,所述指定长度短于所述目标密钥信息的长度;
将所述目标密钥信息发送给所述第一用户端,其中,所述目标密钥信息中的所述目标密钥段,用于对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理。
处理器701还用于执行下述步骤:
向服务端发送第一请求,其中,所述第一请求用于请求所述服务端创建通讯链路;
接收所述服务端返回的目标密钥信息,其中,所述服务端用于创建与所述用户端进行即时交互的目标通讯链路,并根据为所述目标通讯链路创建的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息;
按照与所述服务端的预先约定,从所述目标密钥信息中截取为指定长度的目标密钥段,其中,所述预先约定用于指示所述指定长度,所述指定长度短于所述目标密钥信息的长度,所述目标密钥段用于对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
本领域普通技术人员可以理解,图7所示的结构仅为示意,智能终端可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(MobileInternet Devices,MID)、PAD等终端设备。图7其并不对上述电子装置的结构造成限定。例如,智能终端还可包括比图7中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图7所示不同的配置。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(RandomAccess Memory,RAM)、磁盘或光盘等。
本申请的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于执行即时通讯方法的程序代码。
可选地,在本实施例中,上述存储介质可以位于上述实施例所示的网络中的多个网络设备中的至少一个网络设备上。
可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:
接收第一请求,其中,所述第一请求用于第一用户端请求创建通讯链路,所述第一用户端为提供即时通讯服务的用户端;
创建用于所述服务端与所述第一用户端进行即时交互的目标通讯链路,并为所述目标通讯链路配置链路标识;
根据所述目标通讯链路的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息,其中,所述目标密钥信息中包括与所述第一用户端预先约定的为指定长度的目标密钥段,所述预先约定用于指示所述指定长度,所述指定长度短于所述目标密钥信息的长度;
将所述目标密钥信息发送给所述第一用户端,其中,所述目标密钥信息中的所述目标密钥段,用于对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理。
可选地,存储介质还被设置为存储用于执行以下步骤的程序代码:
向服务端发送第一请求,其中,所述第一请求用于请求所述服务端创建通讯链路;
接收所述服务端返回的目标密钥信息,其中,所述服务端用于创建与所述用户端进行即时交互的目标通讯链路,并根据为所述目标通讯链路创建的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息;
按照与所述服务端的预先约定,从所述目标密钥信息中截取为指定长度的目标密钥段,其中,所述预先约定用于指示所述指定长度,所述指定长度短于所述目标密钥信息的长度,所述目标密钥段用于对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理。
可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。
在本申请的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本申请的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本申请原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本申请的保护范围。
Claims (11)
1.一种即时通讯系统,其特征在于,包括:
提供即时通讯服务的服务端,用于在接收到第一请求的情况下,创建用于进行即时交互的目标通讯链路,并利用所述目标通讯链路的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息;在接收到第二请求的情况下,创建用于进行即时交互的第一通讯链路,并利用所述第一通讯链路的链路标识,生成与所述第一通讯链路绑定使用的第一密钥信息,其中,所述第一请求与所述第二请求为同一即时通讯服务的第一用户端发送的请求,所述第一密钥信息与所述目标密钥信息不同;
提供即时通讯服务的第一用户端,用于在向所述服务端发送所述第一请求之后,接收所述服务端返回的所述目标密钥信息,按照与所述服务端的预先约定从所述目标密钥信息中截取为指定长度的目标密钥段,其中,所述目标密钥信息中的所述目标密钥段,用于对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理,所述预先约定用于指示所述指定长度,所述指定长度短于所述目标密钥信息的长度,所述目标密钥段随时间戳变化而变化;在向所述服务端发送所述第二请求之后,接收所述服务端返回的所述第一密钥信息,按照与所述服务端的预先约定从所述第一密钥信息中截取为指定长度的第一密钥段,利用所述第一密钥信息中的所述第一密钥段,对通过所述第一通讯链路传输的交互信息进行加密处理或者解密处理;
其中,所述目标通讯链路为长链接,所述服务端还用于在将所述目标密钥信息发送给所述第一用户端之后,在通过短连接接收到密钥更换请求的情况下,判断所述目标通讯链路是否处于存活状态;在所述目标通讯链路处于存活状态的情况下,通过短连接将所述目标通讯链路的密钥信息从所述目标密钥信息更换为第二密钥信息,其中,所述第二密钥信息与所述目标密钥信息不同。
2.一种即时通讯方法,其特征在于,应用于提供即时通讯服务的服务端,所述方法包括:
接收第一请求,其中,所述第一请求用于请求创建目标通讯链路,所述第一请求为第一用户端发送的请求,所述第一用户端为提供即时通讯服务的用户端;
创建用于所述服务端与所述第一用户端进行即时交互的所述目标通讯链路,并为所述目标通讯链路配置链路标识;
利用所述目标通讯链路的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息,其中,所述目标密钥信息中包括目标密钥段,所述目标密钥段为所述第一用户端按照与所述服务端的预先约定从所述目标密钥信息中截取的指定长度的密钥段,所述预先约定用于指示所述指定长度,所述指定长度短于所述目标密钥信息的长度,所述目标密钥段随时间戳变化而变化;
将所述目标密钥信息发送给所述第一用户端,其中,所述目标密钥信息中的所述目标密钥段,用于对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理;
其中,在接收第一请求之后,所述方法还包括:接收第二请求,其中,所述第二请求用于请求创建第一通讯链路;创建用于所述服务端与所述第二请求的发送用户端进行即时交互的所述第一通讯链路,并为所述第一通讯链路配置链路标识;利用所述第一通讯链路的链路标识,生成与所述第一通讯链路绑定使用的第一密钥信息,其中,所述第一密钥信息与所述目标密钥信息不同,所述第一密钥信息中包括第一密钥段,所述第一密钥段为所述第二请求的发送用户端按照与所述服务端的预先约定从所述第一密钥信息中截取的指定长度的密钥段;将所述第一密钥信息发送给所述第二请求的发送用户端,其中,所述第二请求的发送用户端用于利用所述第一密钥信息中的第一密钥段,对通过所述第一通讯链路传输的交互信息进行加密处理或者解密处理,所述第二请求的发送用户端为所述第一用户端;
其中,所述目标通讯链路为长链接,在将所述目标密钥信息发送给所述第一用户端之后,所述方法还包括:在通过短连接接收到密钥更换请求的情况下,判断所述目标通讯链路是否处于存活状态;在所述目标通讯链路处于存活状态的情况下,通过短连接将所述目标通讯链路的密钥信息从所述目标密钥信息更换为第二密钥信息,其中,所述第二密钥信息与所述目标密钥信息不同。
3.根据权利要求2所述的方法,其特征在于,在利用所述目标通讯链路的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息之后,所述方法还包括:
在数据表中保存所述目标通讯链路的链路标识与所述目标密钥信息之间的关联关系,其中,所述数据表用于保存各通讯链路的链路标识与相应密钥信息之间的关联关系;
利用在所述目标通讯链路上发送的心跳包监控所述目标通讯链路的状态;
在监控到所述目标通讯链路断开的情况下,在所述数据表中删除与所述目标通讯链路的链路标识关联的所述目标密钥信息。
4.根据权利要求2或3所述的方法,其特征在于,将所述目标密钥信息发送给所述第一用户端之后,所述方法还包括:按照如下方式利用所述目标密钥段对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理:
在通过所述目标通讯链路接收到所述第一用户端向第二用户端发送的第一加密信息的情况下,查找与所述目标通讯链路的链路标识关联的所述目标密钥信息,利用所述目标密钥信息中的所述目标密钥段对所述第一加密信息进行解密得到第一明文信息,确定与所述第二用户端进行通讯的第二通讯链路,查找与所述第二通讯链路的链路标识关联的第三密钥信息,使用所述第三密钥信息中的密钥段对所述第一明文信息进行加密得到第二加密信息,利用所述第二通讯链路将所述第二加密信息发送给所述第二用户端;或,
在通过第三通讯链路接收到第三用户端向所述第一用户端发送的第三加密信息的情况下,查找与所述第三通讯链路的链路标识关联的第四密钥信息,利用所述第四密钥信息中的密钥段对所述第三加密信息进行解密得到第二明文信息,确定与所述第一用户端进行通讯的所述目标通讯链路,查找与所述目标通讯链路的链路标识关联的所述目标密钥信息,使用所述目标密钥信息中的所述目标密钥段对所述第二明文信息进行加密得到第四加密信息,利用所述目标通讯链路将所述第四加密信息发送给所述第一用户端。
5.一种即时通讯方法,其特征在于,应用于提供即时通讯服务的第一用户端,所述方法包括:
向服务端发送第一请求,其中,所述第一请求用于请求所述服务端创建目标通讯链路;
接收所述服务端返回的目标密钥信息,其中,所述服务端用于创建与所述第一用户端进行即时交互的目标通讯链路,并利用为所述目标通讯链路创建的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息;
按照与所述服务端的预先约定,从所述目标密钥信息中截取为指定长度的目标密钥段,其中,所述预先约定用于指示所述指定长度,所述指定长度短于所述目标密钥信息的长度,所述目标密钥段随时间戳变化而变化,所述目标密钥段用于对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理;
向服务端发送第二请求,其中,所述第二请求用于请求所述服务端创建第一通讯链路;
接收所述服务端利用为所述第一通讯链路创建的链路标识生成并返回的与所述第一通讯链路绑定使用的第一密钥信息,所述第一密钥信息与所述目标密钥信息不同;
按照与所述服务端的预先约定,从所述第一密钥信息中截取为指定长度的第一密钥段,所述第一密钥段用于对通过所述第一通讯链路传输的交互信息进行加密处理或者解密处理;
其中,所述目标通讯链路为长链接,所述服务端还用于在将所述目标密钥信息发送给所述第一用户端之后,在通过短连接接收到密钥更换请求的情况下,判断所述目标通讯链路是否处于存活状态;在所述目标通讯链路处于存活状态的情况下,通过短连接将所述目标通讯链路的密钥信息从所述目标密钥信息更换为第二密钥信息,其中,所述第二密钥信息与所述目标密钥信息不同。
6.根据权利要求5所述的方法,其特征在于,
在接收服务端返回的目标密钥信息之后,所述方法还包括:在数据表中保存所述目标密钥信息与所述目标通讯链路之间的关联关系,其中,所述数据表用于保存各通讯链路的链路标识与相应密钥信息之间的关联关系;
在数据表中保存所述目标密钥信息与所述目标通讯链路之间的关联关系之后,所述方法还包括:接收所述服务端返回的密钥更新指令,其中,所述密钥更新指令用于指示将与所述目标通讯链路绑定使用的密钥信息从所述目标密钥信息更换为第二密钥信息,其中,所述第二密钥信息与所述目标密钥信息不同;判断所述目标通讯链路是否处于存活状态;在所述目标通讯链路处于存活状态的情况下,将所述目标通讯链路的密钥信息从所述目标密钥信息更换为所述第二密钥信息。
7.根据权利要求5所述的方法,其特征在于,按照与所述服务端的预先约定,从所述目标密钥信息中截取为指定长度的目标密钥段之后,所述方法还包括:按照如下方式利用所述目标密钥段对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理:
查找待发送的第一明文信息需要使用的所述目标通讯链路,获取与所述目标通讯链路的链路标识关联的所述目标密钥信息,使用所述目标密钥信息中的所述目标密钥段对所述第一明文信息进行加密,得到第一加密信息,利用所述目标通讯链路将所述第一加密信息发送给所述服务端;和/或,
在通过所述目标通讯链路接收到第三加密信息的情况下,获取与所述目标通讯链路的链路标识关联的所述目标密钥信息,使用所述目标密钥中的所述目标密钥段对所述第三加密信息进行解密,得到第二明文信息。
8.一种即时通讯装置,其特征在于,应用于提供即时通讯服务的服务端,所述装置包括:
第一接收单元,用于接收第一请求,其中,所述第一请求用于请求创建目标通讯链路,所述第一请求为第一用户端发送的请求,所述第一用户端为提供即时通讯服务的用户端;
创建单元,用于创建用于所述服务端与所述第一用户端进行即时交互的所述目标通讯链路,并为所述目标通讯链路配置链路标识;
生成单元,用于利用所述目标通讯链路的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息,其中,所述目标密钥信息中包括目标密钥段,所述目标密钥段为所述第一用户端按照与所述服务端的预先约定从所述目标密钥信息中截取的指定长度的密钥段,所述预先约定用于指示所述指定长度,所述指定长度短于所述目标密钥信息的长度,所述目标密钥段随时间戳变化而变化;
第一发送单元,用于将所述目标密钥信息发送给所述第一用户端,其中,所述目标密钥信息中的所述目标密钥段,用于对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理;
其中,所述即时通讯装置还用于在接收第一请求之后,接收第二请求,其中,所述第二请求用于请求创建第一通讯链路;创建用于所述服务端与所述第二请求的发送用户端进行即时交互的所述第一通讯链路,并为所述第一通讯链路配置链路标识;利用所述第一通讯链路的链路标识,生成与所述第一通讯链路绑定使用的第一密钥信息,其中,所述第一密钥信息与所述目标密钥信息不同,所述第一密钥信息中包括第一密钥段,所述第一密钥段为所述第二请求的发送用户端按照与所述服务端的预先约定从所述第一密钥信息中截取的指定长度的密钥段;将所述第一密钥信息发送给所述第二请求的发送用户端,其中,所述第二请求的发送用户端用于利用所述第一密钥信息中的第一密钥段,对通过所述第一通讯链路传输的交互信息进行加密处理或者解密处理,所述第二请求的发送用户端为所述第一用户端;
其中,所述目标通讯链路为长链接,所述即时通讯装置还用于在将所述目标密钥信息发送给所述第一用户端之后,在通过短连接接收到密钥更换请求的情况下,判断所述目标通讯链路是否处于存活状态;在所述目标通讯链路处于存活状态的情况下,通过短连接将所述目标通讯链路的密钥信息从所述目标密钥信息更换为第二密钥信息,其中,所述第二密钥信息与所述目标密钥信息不同。
9.一种即时通讯装置,其特征在于,应用于提供即时通讯服务的第一用户端,所述装置包括:
第二发送单元,用于向服务端发送第一请求,其中,所述第一请求用于请求所述服务端创建目标通讯链路;
第二接收单元,用于接收所述服务端返回的目标密钥信息,其中,所述服务端用于创建与所述第一用户端进行即时交互的目标通讯链路,并利用为所述目标通讯链路创建的链路标识,生成与所述目标通讯链路绑定使用的目标密钥信息;
处理单元,用于按照与所述服务端的预先约定,从所述目标密钥信息中截取为指定长度的目标密钥段,其中,所述预先约定用于指示所述指定长度,所述指定长度短于所述目标密钥信息的长度,所述目标密钥段随时间戳变化而变化,所述目标密钥段用于对通过所述目标通讯链路传输的交互信息进行加密处理或者解密处理;
其中,所述即时通讯装置还用于向服务端发送第二请求,其中,所述第二请求用于请求所述服务端创建第一通讯链路;接收所述服务端利用为所述第一通讯链路创建的链路标识生成并返回的与所述第一通讯链路绑定使用的第一密钥信息;按照与所述服务端的预先约定,从所述第一密钥信息中截取为指定长度的第一密钥段,所述第一密钥段用于对通过所述第一通讯链路传输的交互信息进行加密处理或者解密处理,所述第一密钥信息与所述目标密钥信息不同;
其中,所述目标通讯链路为长链接,所述服务端还用于在将所述目标密钥信息发送给所述第一用户端之后,在通过短连接接收到密钥更换请求的情况下,判断所述目标通讯链路是否处于存活状态;在所述目标通讯链路处于存活状态的情况下,通过短连接将所述目标通讯链路的密钥信息从所述目标密钥信息更换为第二密钥信息,其中,所述第二密钥信息与所述目标密钥信息不同。
10.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求2至7任一项中所述的方法。
11.一种电子装置,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,其特征在于,所述处理器通过所述计算机程序执行上述权利要求2至7任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110738466.1A CN113472634B (zh) | 2021-06-30 | 2021-06-30 | 即时通讯方法、装置及系统、存储介质、电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110738466.1A CN113472634B (zh) | 2021-06-30 | 2021-06-30 | 即时通讯方法、装置及系统、存储介质、电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113472634A CN113472634A (zh) | 2021-10-01 |
CN113472634B true CN113472634B (zh) | 2023-08-18 |
Family
ID=77876747
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110738466.1A Active CN113472634B (zh) | 2021-06-30 | 2021-06-30 | 即时通讯方法、装置及系统、存储介质、电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113472634B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114422570B (zh) * | 2021-12-31 | 2024-05-14 | 深圳市联软科技股份有限公司 | 一种跨平台的多模块通讯方法及系统 |
CN117748745B (zh) * | 2024-02-19 | 2024-05-10 | 国网浙江省电力有限公司宁波供电公司 | 一种优化增强配电网可靠性的方法及系统 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215877B1 (en) * | 1998-03-20 | 2001-04-10 | Fujitsu Limited | Key management server, chat system terminal unit, chat system and recording medium |
CN106411715A (zh) * | 2016-11-02 | 2017-02-15 | 中国人民公安大学 | 一种基于云端的安全即时通信方法及系统 |
CN108235074A (zh) * | 2018-01-08 | 2018-06-29 | 武汉斗鱼网络科技有限公司 | 一种发送、接收密钥信息的方法、服务器及计算机设备 |
CN108712363A (zh) * | 2018-03-22 | 2018-10-26 | 新华三信息安全技术有限公司 | 一种日志加解密方法 |
CN109309566A (zh) * | 2017-07-28 | 2019-02-05 | 中国移动通信有限公司研究院 | 一种认证方法、装置、系统、设备及存储介质 |
CN112437044A (zh) * | 2020-11-03 | 2021-03-02 | 建信金融科技有限责任公司 | 即时通讯方法和装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8886934B2 (en) * | 2006-07-26 | 2014-11-11 | Cisco Technology, Inc. | Authorizing physical access-links for secure network connections |
US11595327B2 (en) * | 2016-10-14 | 2023-02-28 | Salesforce, Inc. | Method, apparatus, and computer program product for associating an identifier with one or more message communications within a group-based communication system |
-
2021
- 2021-06-30 CN CN202110738466.1A patent/CN113472634B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6215877B1 (en) * | 1998-03-20 | 2001-04-10 | Fujitsu Limited | Key management server, chat system terminal unit, chat system and recording medium |
CN106411715A (zh) * | 2016-11-02 | 2017-02-15 | 中国人民公安大学 | 一种基于云端的安全即时通信方法及系统 |
CN109309566A (zh) * | 2017-07-28 | 2019-02-05 | 中国移动通信有限公司研究院 | 一种认证方法、装置、系统、设备及存储介质 |
CN108235074A (zh) * | 2018-01-08 | 2018-06-29 | 武汉斗鱼网络科技有限公司 | 一种发送、接收密钥信息的方法、服务器及计算机设备 |
CN108712363A (zh) * | 2018-03-22 | 2018-10-26 | 新华三信息安全技术有限公司 | 一种日志加解密方法 |
CN112437044A (zh) * | 2020-11-03 | 2021-03-02 | 建信金融科技有限责任公司 | 即时通讯方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN113472634A (zh) | 2021-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101936758B1 (ko) | 정보 조회 기록의 무결성을 위한 암호화 장치, 방법 및 블록체인에서 정보 조회 기록의 무결성을 위한 분산 원장 장치 | |
EP3155761B1 (en) | Systems and methods for secure communication over a network using a linking address | |
US9344405B1 (en) | Optimized transport layer security | |
TW201919363A (zh) | 量子金鑰的分發系統及其分發方法和資料處理方法 | |
US11303431B2 (en) | Method and system for performing SSL handshake | |
CN111428225A (zh) | 数据交互方法、装置、计算机设备及存储介质 | |
CN113472634B (zh) | 即时通讯方法、装置及系统、存储介质、电子装置 | |
CN113497778B (zh) | 一种数据的传输方法和装置 | |
CN107172001B (zh) | 网站代理服务器的控制方法及装置、密钥代理服务器 | |
WO2016022717A1 (en) | System and method to communicate sensitive information via one or more untrusted intermediate nodes with resilience to disconnected network topology | |
US9813250B2 (en) | Combined authentication and encryption | |
WO2015180604A1 (zh) | 一种保密通信控制、保密通信方法及装置 | |
CN113433831A (zh) | 智能家居设备的控制方法、模块及存储介质 | |
CN114938312B (zh) | 一种数据传输方法和装置 | |
CN110690967B (zh) | 一种不依赖于服务端安全的即时通信密钥确立方法 | |
CN115550041A (zh) | 数据的传输方法、装置、计算机设备和存储介质 | |
CN114173328A (zh) | 密钥交换方法、装置、电子设备 | |
WO2020248906A1 (zh) | 智融标识网络的安全数据传输方法和装置 | |
CN110166460B (zh) | 业务帐号的注册方法和装置、存储介质、电子装置 | |
CN112470438B (zh) | 用于发现中间功能和选择两个通信装置之间的路径的方法 | |
CN111797417A (zh) | 文件的上传方法和装置、存储介质及电子装置 | |
Boyd et al. | Secure channels and termination: The last word on TLS | |
KR101730405B1 (ko) | 네트워크 경로를 관리하는 방법 및 이를 수행하는 네트워크 엔티티 | |
KR101888952B1 (ko) | 클라이언트 및 클라이언트의 동작 방법 | |
US20220069982A1 (en) | Caching encrypted content in an oblivious content distribution network, and system, compter-readable medium, and terminal for the same |
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 |