CN113472792B - 一种长连接网络通信加密方法及系统 - Google Patents

一种长连接网络通信加密方法及系统 Download PDF

Info

Publication number
CN113472792B
CN113472792B CN202110746174.2A CN202110746174A CN113472792B CN 113472792 B CN113472792 B CN 113472792B CN 202110746174 A CN202110746174 A CN 202110746174A CN 113472792 B CN113472792 B CN 113472792B
Authority
CN
China
Prior art keywords
random number
server
algorithm
client
connection
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
CN202110746174.2A
Other languages
English (en)
Other versions
CN113472792A (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.)
Beijing Play Crab Technology Co ltd
Original Assignee
Beijing Play Crab 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 Beijing Play Crab Technology Co ltd filed Critical Beijing Play Crab Technology Co ltd
Priority to CN202110746174.2A priority Critical patent/CN113472792B/zh
Publication of CN113472792A publication Critical patent/CN113472792A/zh
Application granted granted Critical
Publication of CN113472792B publication Critical patent/CN113472792B/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/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/143Termination or inactivation of sessions, e.g. event-controlled end of session
    • H04L67/145Termination or inactivation of sessions, e.g. event-controlled end of session avoiding end of session, e.g. keep-alive, heartbeats, resumption message or wake-up for inactive or interrupted session
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • 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/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/0891Revocation or update of secret information, e.g. encryption key update or rekeying

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Cardiology (AREA)
  • Bioethics (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

本发明涉及一种长连接网络通信加密方法及系统,所述方法包括:客户端通过非对称加密算法生成一对公钥和私钥;并发送携带所述公钥的上行信息给服务器;服务器根据所述上行信息携带的客户端支持的对称加密算法、压缩算法及校验算法列表,选择至少一种对称加密算法、压缩算法及校验算法,并根据所述对称加密算法生成加密密钥;并向随机数服务器申请一个随机数;服务器根据所述公钥加密下行信息;客户端根据所述私钥解密所述下行信息;向所述随机数服务器校验所述随机数;当所述随机数通过校验时,根据所述下行信息建立连接。本发明实施例中,每次在建立连接动态生成公钥私钥,以及双方获取相同的随机数,保障了数据通信过程的加密强度。

Description

一种长连接网络通信加密方法及系统
技术领域
本发明涉及网络通信加密技术领域,尤其涉及一种长连接网络通信加密方法及系统。
背景技术
随着智能手机的迅速普及,与网络的快速发展,移动互联网的相关业务已逐渐成为国内各厂商关注的焦点。从整体行业来看,中国手机游戏行业处于快速发展期。近年来,在电信运营商和手机游戏开发商的联合推动下,中国的手机游戏行业,取得了较快的发展。随着互动娱乐技术的发展,各种类型的互动游戏类应用得到了极大的发展,存在着多种游戏类型与游戏控制方式,游戏的形式也从电脑或游戏机向手机游戏方面过度。
长连接,指在一个连接上可以连续发送多个数据包,在连接保持期间,如果没有数据包发送,需要双方发链路检测包。手机游戏大都需要采用长连接的通信方式。长连接通信底层基于TCP,然后在其基础之上自定义游戏的私有协议报文结构。对于长连接手游而言,外挂等安全问题(篡改、窃听,重放等)日渐突出,所以需要一套相对完善的网络通信层安全加密方案。
现有技术中,HTTPS(Hyper Text Transfer Protocol over SecureSocket Layer以安全为目标的HTTP通道)提供了一套标准的通信加密方案,但并不适合长连接手游项目。传统网站或者APP(application,应用程序)因为大多基于HTTP,所以通信加密是在HTTP基础之上加了一层(HTTPS),即依赖现有的HTTPS方案。对于长连接手游服务器来说,因为本身是基于TCP(Transmission Control Protocol,传输控制协议)实现的私有协议,HTTPS并不适用。另外HTTPS的数字证书等机制相对手游服务器来说也并不适合。
因而,亟需要一种适合长连接手游项目的网络通信安全方案,解决现有技术中常见的窃听、篡改、重放等网络安全问题。
发明内容
本发明提供一种长连接网络通信加密方法及系统,解决现有技术中窃听、篡改、重放等网络安全问题。
根据本发明的一个方面,提供一种长连接网络通信加密方法,包括:
客户端通过非对称加密算法生成一对公钥和私钥;并发送携带所述公钥的上行信息给服务器;所述上行信息还携带客户端支持的对称加密算法、压缩算法及校验算法列表;
服务器根据所述上行信息携带的客户端支持的对称加密算法、压缩算法及校验算法列表,选择至少一种对称加密算法、压缩算法及校验算法,并根据所述对称加密算法生成加密密钥;并向随机数服务器申请一个随机数;
服务器根据所述公钥加密下行信息;所述下行信息携带所述加密密钥及选择的至少一种对称加密算法、压缩算法、校验算法;
客户端根据所述私钥解密所述下行信息;向所述随机数服务器校验所述随机数;当所述随机数通过校验时,根据所述下行信息建立连接。
所述服务器与客户端建立连接后,所述方法还包括:
客户端根据所述下行信息携带的加密密钥及随机数生成新的加密密钥;根据所述下行信息携带的压缩算法对数据信息进行压缩后,根据所述下行信息携带的对称加密算法及新的加密密钥对压缩后的数据信息进行加密;根据所述下行信息携带的校验算法生成校验码;并将所述校验码、压缩和加密后的数据信息生成上行数据信息,发送服务器;
服务器根据所述校验算法对所述上行数据携带的校验码进行校验;根据所述加密密钥及随机数生成新的加密密钥,并根据所述对称加密算法和新的加密密钥对所述上行数据信息进行解密后,根据所述压缩算法进行解压,得到原始的上行数据信息。
所述新的加密密钥是根据所述服务器生成的加密密钥以及所述随机数,利用所述对称加密算法生成。
所述客户端每次与服务器建立新的连接时,通过非对称加密算法动态生成一对与本次连接对应的公钥和私钥。
所述随机数服务器在接收到所述客户端请求校验随机数时,根据所述客户端与服务器本次连接的连接标识查询所述连接已经生成的随机数,并将所述随机数返回给客户端。
所述方法还包括:
所述服务器在向客户端发送下行消息中包含本次连接的连接标识;
所述客户端根据所述连接标识向所述随机数服务器校验所述随机数。
根据本发明的另一个方面,提供了一种长连接网络通信加密系统,所述系统包括:
客户端,用于通过非对称加密算法生成一对公钥和私钥;并发送携带所述公钥的上行信息给服务器;所述上行信息还携带客户端支持的对称加密算法、压缩算法及校验算法列表;根据所述私钥解密服务器发送的下行信息;向随机数服务器校验服务器发送的随机数;当所述随机数通过校验时,根据所述下行信息建立连接;
服务器,用于根据所述上行信息携带的客户端支持的对称加密算法、压缩算法及校验算法列表,选择至少一种对称加密算法、压缩算法及校验算法,并根据所述对称加密算法生成加密密钥;并向随机数服务器申请所述随机数;根据所述公钥加密下行信息;所述下行信息携带所述加密密钥及选择的至少一种对称加密算法、压缩算法、校验算法。
在所述服务器与客户端建立连接后,所述客户端还用于,根据所述下行信息携带的加密密钥及随机数生成新的加密密钥;根据所述下行信息携带的压缩算法对数据信息进行压缩后,根据所述下行信息携带的对称加密算法及新的加密密钥对压缩后的数据信息进行加密;根据所述下行信息携带的校验算法生成校验码;并将所述校验码、压缩和加密后的数据信息生成上行数据信息,发送服务器;
所述服务器还用于,根据所述校验算法对所述上行数据携带的校验码进行校验;根据所述加密密钥及随机数生成新的加密密钥,并根据所述对称加密算法和新的加密密钥对所述上行数据信息进行解密后,根据所述压缩算法进行解压,得到原始的上行数据信息。
所述系统还包括随机数服务器,用于根据服务器的请求生成本次连接对应的随机数;在接收到所述客户端请求校验随机数时,根据所述客户端与服务器本次连接的连接标识查询所述连接已经生成的随机数,并将所述随机数返回给客户端进行校验。
所述系统还包括:
所述服务器在向客户端发送下行消息中包含本次连接的连接标识;所述客户端根据所述连接标识向所述随机数服务器校验所述随机数;
所述新的加密密钥是根据所述服务器生成的加密密钥以及所述随机数,利用所述对称加密算法生成;
所述客户端每次与服务器建立新的连接时,通过非对称加密算法动态生成一对与本次连接对应的公钥和私钥。
采用上述方案的有益效果是:
本发明方案中,客户端通过非对称加密算法生成一对公钥和私钥;并发送携带所述公钥的上行信息给服务器;服务器根据所述上行信息携带的客户端支持的对称加密算法、压缩算法及校验算法列表,选择至少一种对称加密算法、压缩算法及校验算法,并根据所述对称加密算法生成加密密钥;并向随机数服务器申请一个随机数;服务器根据所述公钥加密下行信息;客户端根据所述私钥解密所述下行信息;向所述随机数服务器校验所述随机数;当所述随机数通过校验时,根据所述下行信息建立连接。本发明实施例中,在长连接的基础上抽象和定义了六种大的消息类型,分别表示不同的消息通信阶段。每次在建立连接动态生成公钥私钥,协商对称加密/压缩/校验算法/对称加密key/连接ID,以及双方根据连接ID获取相同的随机数。数据交互阶段使用对称加密,加密对称的新key是由协商的对称加密key和随机数通过相同的算法生成的。另外上行数据包会携带连续生成的序列号。重连的时候客户端根据连接ID获取连接上下文,服务器端除了生成新的对称加密key,其他信息都相同并通过上下文公钥加密协商到客户端。
附图说明
图1为本发明实施例提供的连接建立消息示意图。
图2是本发明实施例提供的长连接网络通信加密方法原理流程图。
图3为本发明实施例提供的一个长连接网络通信加密信息交互流程示意图。
图4为本发明实施例提供的长连接网络通信加密系统结构示意图。
具体实施方式
以下结合附图对本发明的原理和特征进行描述,所举实例只用于解释本发明,并非用于限定本发明的范围。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。
以下结合附图对本发明进一步说明。
如图1所示,本实施例主要定义了六种大的消息类型,分别是CONNECT(连接请求消息)、ESTABLISH(连接建立消息)、DATA(数据交互消息)、HEARTBEAT(心跳消息)、DISCONNECT(断开连接消息)、RECONNECT(重连请求消息)。
图1中,客户端发起建立连接请求(CONNECT),服务器端返回连接建立(ESTABLISH)。
客户端与服务器开始进行正常数据通信交互(DATA),心跳(HEARTBEAT)用来检测连接活跃。
客户端可以主动发起断开连接请求(DISCONNECT)。
在某些弱网情况下,客户端可以发起重连请求(RECONNECT),服务器端返回连接建立(ESTABLISH)。
这一过程为正常的客户端与服务器交互过程。本实施例主要设计了一种客户端与服务器通信方式中的加密方案。
如图2所示,为本发明的实施例1提供的长连接网络通信加密方法原理流程图,具体如下:
步骤11,客户端通过非对称加密算法生成一对公钥和私钥;并发送携带所述公钥的上行信息给服务器;所述上行信息还携带客户端支持的对称加密算法、压缩算法及校验算法列表。
本实施例中,客户端通过非对称加密算法生成公钥和私钥。此处的公钥和私钥是一对儿,公钥用以发送服务器进行加密,私钥用来解密。每次客户端与服务器建立连接都会重新生成公钥和私钥,非对称加密算法可以采用现有的多种算法,例如RSA(Ron Rivest、Adi Shamir、Leonard Adleman提出的非对称加密算法)、DH(Diffie-Hellman加密算法)等。
本实施例中,客户端发送携带公钥的连接请求消息给服务器,也就是上行信息。上行信息还需要携带客户端支持的对称加密算法、压缩算法和校验算法列表,由服务器选择一种对称加密算法、压缩算法和校验算法来进行后续通信的加密、压缩和校验。对称加密算法可以如AES(Advanced Encryption Standard,高级加密标准算法)等,压缩算法可以如Snappy(一个C++的用来压缩和解压缩的开发包)等,校验算法可以如CRC32(CyclicRedundancy Check,循环校验)等。
步骤12,服务器根据上行信息携带的客户端支持的对称加密算法、压缩算法及校验算法列表,选择至少一种对称加密算法、压缩算法及校验算法,并根据所述对称加密算法生成加密密钥;并向随机数服务器申请一个随机数。
本实施例中,服务器在接收到客户端发送的连接请求消息后,从列表中选择可以支持的一种对称加密算法、压缩算法及校验算法。根据选择对称加密算法生成后续和客户端通信对称加密的加密密钥key。同时服务器会生成用于客户端重连的连接ID。最后服务器会保存此次连接的相关上下文信息,如公钥、选择的几种算法、对称加密的key,连接ID等。
本实施例中,服务器同时还需要向随机数服务器申请一个随机数,保存在连接上下文信息内。随机数服务器用以生成随机数并发送给服务器。每一次服务器与客户端的连接均只能生成一个随机数,在服务器或客户端根据本次连接而请求随机数时,均回复同一个随机数。
步骤13,服务器根据公钥加密下行信息;所述下行信息携带所述加密密钥及选择的至少一种对称加密算法、压缩算法、校验算法。
本实施例中,服务器使用保存的客户端公钥加密回复连接建立消息(ESTABLISH),内容包括:服务器选择的对称加密/压缩/校验算法、此次连接对称加密的key,连接ID等。
步骤14,客户端根据所述私钥解密所述下行信息;向所述随机数服务器校验所述随机数;当所述随机数通过校验时,根据所述下行信息建立连接。
本实施例中,客户端使用私钥解密服务器回复的ESTABLISH消息,保存此次连接的相关上下文信息,例如协商的对称加密/压缩/校验算法、对称加密的key,连接ID等。
客户端同时根据连接ID向随机数服务器申请一个随机数。此随机数和服务器申请的随机数一样,这个由随机数服务器保证,同一个连接ID获取的随机数相同。客户端将随机数保存在连接上下文信息内。
本实施例中,传统方案是将公钥通过证书管理在服务器端,本方案是放在游戏客户端。因为考虑到游戏服务器和网站等场景不同,数字证书认证相对比较麻烦,本实施例是客户端每次和游戏服务器建立连接时动态生成公钥和私钥对,防止客户端被暴力破解私钥泄露。
客户端和服务器端在建立连接阶段除了协商对称加密算法,还会协商压缩和校验算法,同时会同步连接ID。
本实施例中,随机数服务器比较重要,为了要解决类似中间人的攻击问题。在实际发送数据时,客户端和服务器端使用对称加密key和随机数并通过相同的算法生成相同的新的对称加密key。
随机数不在通信中传递,所以中间人只能充当转发人的角色。随机数服务器可以是一个HTTPS服务,传入连接ID,会先在缓存判断此连接ID是否生成过随机数,如果生成过,直接返回。如果没有生成过则生成新一个新随机数返回并放到缓存中。
本实施例中,在服务器和客户端建立连接后,进入数据交互阶段。此时,客户端根据所述下行信息携带的加密密钥及随机数生成新的加密密钥;根据所述下行信息携带的压缩算法对数据信息进行压缩后,根据所述下行信息携带的对称加密算法及新的加密密钥对压缩后的数据信息进行加密;根据所述下行信息携带的校验算法生成校验码;并将所述校验码、压缩和加密后的数据信息生成上行数据信息,发送服务器;
服务器根据所述校验算法对所述上行数据携带的校验码进行校验;根据所述加密密钥及随机数生成新的加密密钥,并根据所述对称加密算法和新的加密密钥对所述上行数据信息进行解密后,根据所述压缩算法进行解压,得到原始的上行数据信息。
本实施例中,新的加密密钥是根据所述服务器生成的加密密钥以及所述随机数,利用所述对称加密算法生成。
本实施例中,客户端每次与服务器建立新的连接时,通过非对称加密算法动态生成一对与本次连接对应的公钥和私钥。
本实施例中,随机数服务器在接收到所述客户端请求校验随机数时,根据所述客户端与服务器本次连接的连接标识查询所述连接已经生成的随机数,并将所述随机数返回给客户端。
服务器在向客户端发送下行消息中包含本次连接的连接标识连接ID;客户端根据所述连接标识连接ID向所述随机数服务器校验所述随机数。
本发明实施例中,客户端通过非对称加密算法生成一对公钥和私钥;并发送携带所述公钥的上行信息给服务器;服务器根据所述上行信息携带的客户端支持的对称加密算法、压缩算法及校验算法列表,选择至少一种对称加密算法、压缩算法及校验算法,并根据所述对称加密算法生成加密密钥;并向随机数服务器申请一个随机数;服务器根据所述公钥加密下行信息;客户端根据所述私钥解密所述下行信息;向所述随机数服务器校验所述随机数;当所述随机数通过校验时,根据所述下行信息建立连接。本发明实施例中,在长连接的基础上抽象和定义了六种大的消息类型,分别表示不同的消息通信阶段。每次在建立连接动态生成公钥私钥,协商对称加密/压缩/校验算法/对称加密key/连接ID,以及双方根据连接ID获取相同的随机数。数据交互阶段使用对称加密,加密对称的新key是由协商的对称加密key和随机数通过相同的算法生成的。另外上行数据包会携带连续生成的序列号。重连的时候客户端根据连接ID获取连接上下文,服务器端除了生成新的对称加密key,其他信息都相同并通过上下文公钥加密协商到客户端。
如图3所示,为本发明一个实施例提供的具体加密方案消息交互示意图,其中,
建立连接阶段(CONNECT):
客户端通过非对称加密算法生成公钥和私钥(每次建立连接都会重新生成)。
客户端发送明文消息,内容包括:客户端支持的对称加密算法、压缩算法和校验算法列表以及上一步骤生成的公钥。
服务器选择一种对称加密/压缩/校验算法,生成后续和客户端通信对称加密的key。同时服务器会生成用于客户端连接ID,也就是本次连接的唯一的连接ID。最后服务器会保存此次连接的相关上下文信息,包括如公钥、选择的几种算法、对称加密的key,连接ID等。
服务器使用保存的客户端公钥加密回复连接建立消息(ESTABLISH),内容包括:服务器选择的对称加密/压缩/校验算法、此次连接对称加密的key,连接ID等。
服务器同时会向根据连接ID向随机数服务器申请一个随机数,并保存在连接上下文信息内。
客户端使用私钥解密服务器回复的ESTABLISH消息,保存此次连接的相关上下文信息,如协商的对称加密/压缩/校验算法、对称加密的key、连接ID等。
客户端同时根据连接ID向随机数服务器申请一个随机数。此随机数和服务器申请的随机数一样,这个由随机数服务器保证,同一个连接ID获取的随机数相同。客户端将随机数并保存在连接上下文信息内。
连接建立成功。
数据交互阶段(DATA):
对于客户端到服务器端的上行数据原始报文内容,分别通过上面步骤协商过的校验算法生成校验码、对称加密算法和新key对称加密、压缩算法压缩。这里的新key是协商的对称加密key和随机数通过相同的算法生成的新的对称加密key。
服务器收到数据后,根据连接上下文保存的信息,先使用同样的校验算法进行校验数据(判断计算的校验码和报文中的校验码是否一致,如果不一致则表明有篡改),使用同样的对称加密算法和新key(这里的新key是协商的对称加密key和随机数通过相同的算法生成的新的对称加密key)对称解密,使用同样的压缩算法解压,得到原始报文内容。
服务器向客户端发下行数据包同理。
为了解决重放问题,上行的数据包会携带一个序列号,每次发送都会用状态机生成一个连续的序列号。服务器收到后,也会使用同样的状态机算法生成序列号并和上行序列号判断。如果不一致,则说明可能存在重放的攻击。
重连阶段(RECONNECT):
客户端在某些弱网情况下发起重连请求,内容包括:连接ID,用客户端私钥加密的连接ID。
服务器收到后,根据连接ID找到保存的连接上下文。
根据连接上下文信息中的公钥解密客户端发送的加密连接ID,并与客户端发送的连接ID对比。
验证通过后,根据连接上下文信息,生成新的对称加密key并保存到连接信息中。
服务器使用连接上下文信息中的公钥加密回复连接建立消息(ESTABLISH),连接建立成功。其他细节同建立连接阶段,随机数直接从连接上下文拿到。
进入数据交互阶段。
除了处理连接建立阶段,还包括处理重连阶段。重连时不重新生成公钥私钥,而是通过连接ID获取上次连接的上下文,重新生成用于对称加密的key。
本通信加密方案是在一些已有技术的基础上自实现的适合手游场景的长连接加密方案。
如图4所示,为本发明提供的长连接网络通信加密系统结构示意图,其中包括:
客户端,用于通过非对称加密算法生成一对公钥和私钥;并发送携带所述公钥的上行信息给服务器;所述上行信息还携带客户端支持的对称加密算法、压缩算法及校验算法列表;根据所述私钥解密服务器发送的下行信息;向随机数服务器校验服务器发送的随机数;当所述随机数通过校验时,根据所述下行信息建立连接;
服务器,用于根据所述上行信息携带的客户端支持的对称加密算法、压缩算法及校验算法列表,选择至少一种对称加密算法、压缩算法及校验算法,并根据所述对称加密算法生成加密密钥;并向随机数服务器申请所述随机数;根据所述公钥加密下行信息;所述下行信息携带所述加密密钥及选择的至少一种对称加密算法、压缩算法、校验算法。
在所述服务器与客户端建立连接后,所述客户端还用于,根据所述下行信息携带的加密密钥及随机数生成新的加密密钥;根据所述下行信息携带的压缩算法对数据信息进行压缩后,根据所述下行信息携带的对称加密算法及新的加密密钥对压缩后的数据信息进行加密;根据所述下行信息携带的校验算法生成校验码;并将所述校验码、压缩和加密后的数据信息生成上行数据信息,发送服务器;
所述服务器还用于,根据所述校验算法对所述上行数据携带的校验码进行校验;根据所述加密密钥及随机数生成新的加密密钥,并根据所述对称加密算法和新的加密密钥对所述上行数据信息进行解密后,根据所述压缩算法进行解压,得到原始的上行数据信息。
所述系统还包括随机数服务器,用于根据服务器的请求生成本次连接对应的随机数;在接收到所述客户端请求校验随机数时,根据所述客户端与服务器本次连接的连接标识查询所述连接已经生成的随机数,并将所述随机数返回给客户端进行校验。
所述系统还包括:
所述服务器在向客户端发送下行消息中包含本次连接的连接标识;所述客户端根据所述连接标识向所述随机数服务器校验所述随机数;
所述新的加密密钥是根据所述服务器生成的加密密钥以及所述随机数,利用所述对称加密算法生成;
所述客户端每次与服务器建立新的连接时,通过非对称加密算法动态生成一对与本次连接对应的公钥和私钥。
综上所述,本发明方案中,客户端通过非对称加密算法生成一对公钥和私钥;并发送携带所述公钥的上行信息给服务器;服务器根据所述上行信息携带的客户端支持的对称加密算法、压缩算法及校验算法列表,选择至少一种对称加密算法、压缩算法及校验算法,并根据所述对称加密算法生成加密密钥;并向随机数服务器申请一个随机数;服务器根据所述公钥加密下行信息;客户端根据所述私钥解密所述下行信息;向所述随机数服务器校验所述随机数;当所述随机数通过校验时,根据所述下行信息建立连接。本发明实施例中,在长连接的基础上抽象和定义了六种大的消息类型,分别表示不同的消息通信阶段。每次在建立连接动态生成公钥私钥,协商对称加密/压缩/校验算法/对称加密key/连接ID,以及双方根据连接ID获取相同的随机数。数据交互阶段使用对称加密,加密对称的新key是由协商的对称加密key和随机数通过相同的算法生成的。另外上行数据包会携带连续生成的序列号。重连的时候客户端根据连接ID获取连接上下文,服务器端除了生成新的对称加密key,其他信息都相同并通过上下文公钥加密协商到客户端。
根据特定的实施方式对本发明详细进行了说明,但上述的实施方式仅为例示,本发明不被上述实施方式限定。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (3)

1.一种长连接网络通信加密方法,其特征在于,所述方法包括:
客户端通过非对称加密算法生成一对公钥和私钥;并发送携带所述公钥的上行信息给服务器;所述上行信息还携带客户端支持的对称加密算法、压缩算法及校验算法列表;
服务器根据所述上行信息携带的客户端支持的对称加密算法、压缩算法及校验算法列表,选择至少一种对称加密算法、压缩算法及校验算法,并根据所述对称加密算法生成加密密钥;并向随机数服务器申请一个随机数;
服务器根据所述公钥加密下行信息;所述下行信息携带所述加密密钥及选择的至少一种对称加密算法、压缩算法、校验算法;
客户端根据所述私钥解密所述下行信息;向所述随机数服务器校验所述随机数;当所述随机数通过校验时,根据所述下行信息建立连接;
所述服务器与客户端建立连接后,所述方法还包括:
客户端根据所述下行信息携带的加密密钥及随机数生成新的加密密钥;根据所述下行信息携带的压缩算法对数据信息进行压缩后,根据所述下行信息携带的对称加密算法及新的加密密钥对压缩后的数据信息进行加密;根据所述下行信息携带的校验算法生成校验码;并将所述校验码、压缩和加密后的数据信息生成上行数据信息,发送服务器;
服务器根据所述校验算法对所述上行数据携带的校验码进行校验;根据所述加密密钥及随机数生成所述新的加密密钥,并根据所述对称加密算法和新的加密密钥对所述上行数据信息进行解密后,根据所述压缩算法进行解压,得到原始的上行数据信息;
所述客户端每次与服务器建立新的连接时,通过非对称加密算法动态生成一对与本次连接对应的公钥和私钥;
所述随机数服务器在接收到所述客户端请求校验随机数时,根据所述客户端与服务器本次连接的连接标识查询所述连接已经生成的随机数,并将所述随机数返回给客户端;
所述服务器在向客户端发送下行消息中包含本次连接的连接标识;
所述客户端根据所述连接标识向所述随机数服务器校验所述随机数。
2.如权利要求1所述的方法,其特征在于,所述新的加密密钥是根据所述服务器生成的加密密钥以及所述随机数,利用所述对称加密算法生成。
3.一种长连接网络通信加密系统,其特征在于,所述系统包括:
客户端,用于通过非对称加密算法生成一对公钥和私钥;并发送携带所述公钥的上行信息给服务器;所述上行信息还携带客户端支持的对称加密算法、压缩算法及校验算法列表;根据所述私钥解密服务器发送的下行信息;向随机数服务器校验服务器发送的随机数;当所述随机数通过校验时,根据所述下行信息建立连接;
服务器,用于根据所述上行信息携带的客户端支持的对称加密算法、压缩算法及校验算法列表,选择至少一种对称加密算法、压缩算法及校验算法,并根据所述对称加密算法生成加密密钥;并向随机数服务器申请所述随机数;根据所述公钥加密下行信息;所述下行信息携带所述加密密钥及选择的至少一种对称加密算法、压缩算法、校验算法;
在所述服务器与客户端建立连接后,所述客户端还用于,根据所述下行信息携带的加密密钥及随机数生成新的加密密钥;根据所述下行信息携带的压缩算法对数据信息进行压缩后,根据所述下行信息携带的对称加密算法及新的加密密钥对压缩后的数据信息进行加密;根据所述下行信息携带的校验算法生成校验码;并将所述校验码、压缩和加密后的数据信息生成上行数据信息,发送服务器;
所述服务器还用于,根据所述校验算法对所述上行数据携带的校验码进行校验;根据所述加密密钥及随机数生成所述新的加密密钥,并根据所述对称加密算法和新的加密密钥对所述上行数据信息进行解密后,根据所述压缩算法进行解压,得到原始的上行数据信息;
所述系统还包括随机数服务器,用于根据服务器的请求生成本次连接对应的随机数;在接收到所述客户端请求校验随机数时,根据所述客户端与服务器本次连接的连接标识查询所述连接已经生成的随机数,并将所述随机数返回给客户端进行校验;
所述服务器在向客户端发送下行消息中包含本次连接的连接标识;所述客户端根据所述连接标识向所述随机数服务器校验所述随机数;
所述新的加密密钥是根据所述服务器生成的加密密钥以及所述随机数,利用所述对称加密算法生成;
所述客户端每次与服务器建立新的连接时,通过非对称加密算法动态生成一对与本次连接对应的公钥和私钥。
CN202110746174.2A 2021-07-01 2021-07-01 一种长连接网络通信加密方法及系统 Active CN113472792B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110746174.2A CN113472792B (zh) 2021-07-01 2021-07-01 一种长连接网络通信加密方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110746174.2A CN113472792B (zh) 2021-07-01 2021-07-01 一种长连接网络通信加密方法及系统

Publications (2)

Publication Number Publication Date
CN113472792A CN113472792A (zh) 2021-10-01
CN113472792B true CN113472792B (zh) 2023-05-05

Family

ID=77877188

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110746174.2A Active CN113472792B (zh) 2021-07-01 2021-07-01 一种长连接网络通信加密方法及系统

Country Status (1)

Country Link
CN (1) CN113472792B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114500064B (zh) * 2022-01-30 2024-01-26 北京亚华物联科技发展有限公司 一种通信安全验证方法、装置、存储介质及电子设备
CN115834246B (zh) * 2023-01-29 2023-09-01 厦门简算科技有限公司 一种云端向本地终端数据传输安全防护方法及系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158367A (zh) * 2010-12-17 2011-08-17 中国科学技术大学苏州研究院 主动反外挂的网络游戏系统及网络游戏系统反外挂方法
CN106817219A (zh) * 2015-12-01 2017-06-09 阿里巴巴集团控股有限公司 一种协商会话秘钥的方法及装置
CN109314693A (zh) * 2016-12-30 2019-02-05 华为技术有限公司 验证密钥请求方的方法和设备
CN110971616A (zh) * 2019-12-24 2020-04-07 广州市百果园信息技术有限公司 基于安全传输层协议的连接建立方法、客户端和服务器
CN111211894A (zh) * 2018-11-21 2020-05-29 顺丰科技有限公司 一种数据传输方法、装置及系统

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6711678B2 (en) * 2002-04-05 2004-03-23 Expand Beyond Corporation Pre-authenticated communication within a secure computer network
CN102082796B (zh) * 2011-01-20 2014-04-09 北京融易通信息技术有限公司 一种基于http的产生会话密钥的方法及系统
CN104821944A (zh) * 2015-04-28 2015-08-05 广东小天才科技有限公司 一种混合加密的网络数据安全方法及系统
CN106878016A (zh) * 2017-04-27 2017-06-20 上海木爷机器人技术有限公司 数据发送、接收方法及装置
CN108881256B (zh) * 2018-06-29 2021-09-07 北京旅居四方科技有限公司 密钥交换方法、装置、水电桩和网络设备
CN109561099A (zh) * 2018-12-21 2019-04-02 广州莲雾科技有限公司 一种设备远程通信加密方法
SG10201900198SA (en) * 2019-01-09 2020-08-28 Mastercard International Inc Methods and systems for cryptographic keys exchange
CN110213247B (zh) * 2019-05-16 2021-10-01 福建天泉教育科技有限公司 一种提高推送信息安全性的方法及系统
CN112073185B (zh) * 2020-08-11 2023-06-30 广州点云科技有限公司 云游戏安全传输方法及装置
CN112422560A (zh) * 2020-11-17 2021-02-26 中国电力科学研究院有限公司 基于安全套接层的轻量级变电站安全通信方法及系统

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102158367A (zh) * 2010-12-17 2011-08-17 中国科学技术大学苏州研究院 主动反外挂的网络游戏系统及网络游戏系统反外挂方法
CN106817219A (zh) * 2015-12-01 2017-06-09 阿里巴巴集团控股有限公司 一种协商会话秘钥的方法及装置
CN109314693A (zh) * 2016-12-30 2019-02-05 华为技术有限公司 验证密钥请求方的方法和设备
CN111211894A (zh) * 2018-11-21 2020-05-29 顺丰科技有限公司 一种数据传输方法、装置及系统
CN110971616A (zh) * 2019-12-24 2020-04-07 广州市百果园信息技术有限公司 基于安全传输层协议的连接建立方法、客户端和服务器

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
贾铮 ; .广电双向运营安全有""可循.中国数字电视.(第Z1期),全文. *

Also Published As

Publication number Publication date
CN113472792A (zh) 2021-10-01

Similar Documents

Publication Publication Date Title
CN110380852B (zh) 双向认证方法及通信系统
CN102833253B (zh) 建立客户端与服务器安全连接的方法及服务器
CN113497778B (zh) 一种数据的传输方法和装置
WO2022021992A1 (zh) 一种基于NB-IoT通信的数据传输方法、系统及介质
CN111050322B (zh) 基于gba的客户端注册和密钥共享方法、装置及系统
CN106941401B (zh) 加速设备以及基于加速设备获取会话秘钥的方法
EP3633949A1 (en) Method and system for performing ssl handshake
CN113472792B (zh) 一种长连接网络通信加密方法及系统
CN106941404B (zh) 密钥保护方法及装置
CN110493272B (zh) 使用多重密钥的通信方法和通信系统
CN105119891B (zh) 一种数据交互方法、机顶盒和服务器
CN110839240B (zh) 一种建立连接的方法及装置
CN115499250B (zh) 一种数据加密方法及装置
CN107483429A (zh) 一种数据加密方法和装置
CN107483430A (zh) 一种基于身份证云识别的人证合一认证方法和装置
CN104243452A (zh) 一种云计算访问控制方法及系统
CN111478911A (zh) 一种采用轻量化密钥交换算法的即时通信加密方法
CN115021932A (zh) 用于tlcp协议的握手过程的身份验证方法
CN114173328A (zh) 密钥交换方法、装置、电子设备
CN108337089B (zh) 信令传输加密、解密方法、装置及终端
CN114765543A (zh) 一种量子密码网络扩展设备的加密通信方法及系统
US20090136043A1 (en) Method and apparatus for performing key management and key distribution in wireless networks
CN112217862A (zh) 一种数据通信方法、装置、终端设备和存储介质
EP2713576B1 (en) Method and device for processing streaming media content
CN112235320B (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