CN111669402B - 加密通信方法、装置、设备及存储介质 - Google Patents
加密通信方法、装置、设备及存储介质 Download PDFInfo
- Publication number
- CN111669402B CN111669402B CN202010577245.6A CN202010577245A CN111669402B CN 111669402 B CN111669402 B CN 111669402B CN 202010577245 A CN202010577245 A CN 202010577245A CN 111669402 B CN111669402 B CN 111669402B
- Authority
- CN
- China
- Prior art keywords
- client
- request
- authenticated
- token
- queue
- 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
Images
Classifications
-
- 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/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/50—Queue scheduling
- H04L47/62—Queue scheduling characterised by scheduling criteria
- H04L47/625—Queue scheduling characterised by scheduling criteria for service slots or service orders
- H04L47/6255—Queue scheduling characterised by scheduling criteria for service slots or service orders queue load conditions, e.g. longest queue first
-
- 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/062—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key distribution, e.g. centrally by trusted party
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/06—Cryptographic 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/0618—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
- H04L9/0631—Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
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)
- Storage Device Security (AREA)
Abstract
本发明涉及金融科技技术领域,公开了一种加密通信方法、装置、设备及存储介质,该方法包括接入客户端发送的认证请求,若客户端队列中的客户端数量达到最大连接数,则基于多级清理流程移除已存储的一个或多个已认证客户端;基于认证请求生成令牌和密钥,并将令牌和密钥分别返回至redis服务器和客户端;通过令牌和密钥与客户端进行加密通信。由此,通过redis服务器管理客户端队列,控制同时连接至服务器的客户端的数量,防止服务器瘫痪,提高服务器运行的稳定性;并且基于客户端的认证信息生成令牌和密钥,由于客户端可以根据需要发送认证信息,因此可以实现密钥的动态调整,增强了加密通信的安全性。
Description
技术领域
本发明涉及金融科技(Fintech)技术领域,尤其涉及一种加密通信方法、装置、设备及存储介质。
背景技术
随着计算机技术的发展,越来越多的技术应用在金融领域,传统金融业正在逐步向金融科技(Fintech)转变,但由于金融行业的安全性、实时性要求,也对技术提出了更高的要求。
当前为了保护信息安全,客户端与服务器之间都通过加密的形式进行通信。当前的加密通信一般延续使用固定的AES(Advanced Encryption Standard,高级加密标准)密钥,因此第一AES密钥存在泄漏风险,当第一AES密钥泄漏后客户端与服务器之间的通信存在安全隐患。并且当前的加密通信未考虑服务器接入大量客户端时,会由于负载过大导致服务器运行异常甚至瘫痪。
发明内容
本发明提供一种加密通信方法、装置、设备及存储介质,旨在增强加密通信的安全性,保证服务器运行的稳定性。
为实现上述目的,本发明提供一种加密通信方法,所述方法包括:
接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数;
若所述第一客户端队列中的所述已认证客户端数量达到所述最大连接数,则基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列;
基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端,以供所述redis服务器更新所述清理后的客户端队列;
优选地,所述基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列的步骤包括:
依次根据最新请求时间点、所述最新请求时间点和数据请求次数、数据请求频率对所述第一客户端队列中的所述已认证客户端进行筛选,若存在符合条件的已认证客户端,则将所述目标已认证客户端从所述第一客户端队列中移除,获得清理后的客户端队列。
优选地,所述依次根据最新请求时间点、所述最新请求时间点和数据请求次数、数据请求频率对所述第一客户端队列中的所述已认证客户端进行筛选,若存在符合条件的已认证客户端,则,将所述目标已认证客户端从所述第一客户端队列中移除,获得清理后的客户端队列的步骤包括:
遍历所述第一客户端队列中保存的已认证客户端编码、已认证第一令牌,并根据所述已认证第一令牌获取对应已认证客户端的最新请求时间点和请求次数;
将所述已认证客户端的所述最新请求时间点与第一预设时间点进行比较,判断是否存在所述最新请求时间点小于或等于所述第一预设时间点的第一目标已认证客户端;
若存在所述最新请求时间点小于或等于所述第一预设时间点的第一目标已认证客户端,则将所述第一目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列;
若不存在所述最新请求时间点小于或等于所述第一预设时间点的第一目标已认证客户端,则将所述已认证客户端的所述最新时间点与第二预设时间点进行比较,并将所述已认证客户端的所述数据请求次数与预设数据请求次数进行对比,判断是否存在所述最新请求时间点小于或等于所述第二预设时间点且所述数据请求次数小于或等于所述预设数据请求次数的第二目标已认证客户端,其中所述第二预设时间点晚于所述第一预设时间点;
若存在所述最新请求时间点小于或等于所述第二预设时间点且所述数据请求次数小于或等于所述预设数据请求次数的第二目标已认证客户端,则将所述第二目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列。
优选地,所述若存在所述最新请求时间点小于或等于所述第二预设时间点且所述数据请求次数小于或等于所述预设数据请求次数的第二目标已认证客户端,则将所述第二目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列的步骤之后还包括:
若不存在所述最新请求时间点小于或等于所述第二预设时间点且所述请求次数小于或等于所述预设请求次数的第二目标已认证客户端,则计算所述各个已认证客户端的数据请求频率的频率表示值;
将所述频率表示值小于预设频率阈值的第三目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列;
其中,所述频率表示值根据频率表示值计算公式计算,所述频率表示值计算公式为:
其中,Ck表示频率表示值,k表示各个已认证客户端的序号标记;CUR_TIME表示当前实际时间点,REQ_TIMEk表示所述已认证客户端的认证请求接入的时间点,seconds表示CUR_TIME与REQ_TIMEk两个时间点之差的秒数,REQ_COUNTk表示所述已认证客户端的数据请求次数,max表示取最大值。
优选地,所述接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数的步骤之前还包括:
接收所述客户端的发送的注册请求,基于所述注册请求中的客户端标识进行注册,并在注册成功后向所述客户端返回第一客户端编码和第一认证密码;
接收所述客户端发送的所述认证请求,获取所述认证请求中的所述认证信息,所述认证信息包括第二客户端编码、第二认证密码;
将所述第二客户端编码和所述第二认证密码分别与所述第一客户端编码和所述第一认证密码进行比较,基于客户端编码比较结果和认证密码比较结果判断所述认证请求是否合法;
若所述认证请求合法,获取所述认证信息中的认证时间,将所述认证时间与预设时间范围进行比较,获得时间比较结果,基于所述时间比较结果判断所述认证请求是否过期;
若所述认证请求未过期,则执行步骤:接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数。
优选地,所述第一密钥包括第一高级加密标准AES密钥,所述通过所述第一令牌和所述第一密钥与所述客户端进行加密通信的步骤包括:
接收所述客户端发送的数据请求,获取所述请求中的请求令牌、加密业务内容以及客户端签名;
从所述清理后的客户端队列中查找与所述请求令牌一致的第一令牌,并将与所述请求令牌一致的第一令牌标记为目标第一令牌;
获取与所述目标第一令牌对应的客户端公钥和第一AES密钥;
通过所述客户端公钥对所述客户端签名进行验签;
验签通过后,基于所述第一AES密钥对所述加密业务内容进行解密获得解密业务内容,并根据所述解密业务内容处理所述数据请求生成加密响应报文;
向所述客户端发送所述加密响应报文和服务器签名,以供所述客户端通过所述第一AES密钥解密所述加密响应报文,获得响应报文。
优选地,所述基于所述请求令牌从所述redis服务器中获取对应的客户端公钥和第一AES密钥的步骤包括:
从所述redis服务器存储的所述清理后的客户端队列中查找与所述请求令牌一致的第一令牌;
若所述清理后的客户端队列中存在与所述请求令牌一致的第一令牌,则获取所述第一令牌对应的所述客户端公钥和所述第一AES密钥;
若所述清理后的客户端队列中不存在与所述请求令牌一致的第一令牌,则判定所述请求令牌已过期;
接入所述客户端的二次认证请求,基于所述二次认证请求中的认证信息生成第二令牌和第二AES密钥,并将所述第二令牌和所述第二AES密钥发送至所述redis服务器和所述客户端,以供从redis服务器中获取对应的客户端公钥和所述第二AES密钥,其中所述第二AES密钥与所述第一AES密钥不相同。
优选地,所述基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端的步骤之后还包括:
设置所述第一令牌的有效期,若当前时间达到所述有效期,则将所述第一令牌对应的过期客户端从所述清理后的客户端队列中移除。
此外,为实现上述目的,本发明还提供一种加密通信装置,所述加密通信装置包括:
判断模块,用于接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数;
清理模块,用于若所述第一客户端队列中的所述已认证客户端数量达到所述最大连接数,则基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列;
返回模块,用于基于所述认证请求中的认证信息生成第一令牌和第一高级加密标准密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端,以供所述redis服务器更新所述清理后的客户端队列;
通信模块,用于通过所述第一令牌和所述第一密钥与所述客户端进行加密通信。
此外,为实现上述目的,本发明还一种加密通信设备,所述加密通信设备包括处理器,存储器以及存储在所述存储器中的加密通信程序,所述加密通信程序被所述处理器运行时,实现如上所述的加密通信方法的步骤。
此外,为实现上述目的,本发明还一种计算机存储介质,所述计算机存储介质上存储有加密通信程序,所述加密通信程序被处理器运行时实现如上所述加密通信方法的步骤。
相比现有技术,本发明提供一种加密通信方法、装置、设备及存储介质,接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数;若所述第一客户端队列中的所述已认证客户端数量达到所述最大连接数,则基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列;基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端,以供所述redis服务器更新所述清理后的客户端队列;通过所述第一令牌和所述第一密钥与所述客户端进行加密通信。由此,通过redis服务器管理客户端队列,控制同时连接至服务器的客户端的数量,防止服务器瘫痪,提高服务器运行的稳定性;并且基于客户端的认证信息生成令牌和密钥,由于客户端可以根据需要发送认证信息,因此可以实现密钥的动态调整,增强了加密通信的安全性。
附图说明
图1是本发明各实施例涉及的加密通信设备的硬件结构示意图;
图2是本发明加密通信方法第一实施例的流程示意图;
图3是本发明加密通信装置第一实施例的功能模块示意图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
本发明实施例主要涉及的加密通信设备是指能够实现网络连接的网络连接设备,所述加密通信设备可以是服务器、云平台等。
参照图1,图1是本发明各实施例涉及的加密通信设备的硬件结构示意图。本发明实施例中,加密通信设备可以包括处理器1001(例如中央处理器Central ProcessingUnit、CPU),通信总线1002,输入端口1003,输出端口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信;输入端口1003用于数据输入;输出端口1004用于数据输出,存储器1005可以是高速RAM存储器,也可以是稳定的存储器(non-volatile memory),例如磁盘存储器,存储器1005可选的还可以是独立于前述处理器1001的存储装置。本领域技术人员可以理解,图1中示出的硬件结构并不构成对本发明的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
继续参照图1,图1中作为一种可读存储介质的存储器1005可以包括操作系统、网络通信模块、应用程序模块以及加密通信程序。在图1中,网络通信模块主要用于连接服务器,与服务器进行数据通信;而处理器1001可以调用存储器1005中存储的加密通信程序,并执行本发明实施例提供的加密通信方法。
本发明实施例提供了一种加密通信方法。
参照图2,图2是本发明加密通信方法第一实施例的流程示意图。
本实施例中,所述加密通信方法应用于加密通信设备,所述方法包括:
步骤S101,接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数;
步骤S102,若所述第一客户端队列中的所述已认证客户端数量达到所述最大连接数,则基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列;
步骤S103,基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端,以供所述redis服务器更新所述清理后的客户端队列;
步骤S104,通过所述第一令牌和所述第一密钥与所述客户端进行加密通信。
可以理解地,在接入客户端的认证请求之前,需要对所述客户端进行注册和认证。本实施例中,所述步骤S101之前还包括:
接收所述客户端的发送的注册请求,基于所述注册请求中的客户端标识进行注册,并在注册成功后向所述客户端返回第一客户端编码和第一认证密码;
接收所述客户端发送的所述认证请求,获取所述认证请求中的所述认证信息,所述认证信息包括第二客户端编码、第二认证密码;
将所述第二客户端编码和所述第二认证密码分别与所述第一客户端编码和所述第一认证密码进行比较,基于客户端编码比较结果和认证密码比较结果判断所述认证请求是否合法;
若所述认证请求合法,获取所述认证信息中的认证时间,将所述认证时间与预设时间范围进行比较,获得时间比较结果,基于所述时间比较结果判断所述认证请求是否过期;
若所述认证请求未过期,则执行步骤:接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数。
一般地,所述加密通信设备对外公开自身的RSA服务器公钥PUB_KEY_SERVER,并且本地保存RSA私钥PRI_KEY_SERVER。其中RSA由罗纳德·李维斯特(Ron Rivest)、阿迪·萨莫尔(Adi Shamir)和伦纳德·阿德曼(Leonard Adleman)一起提出的一种非对称加密算法,RSA广泛应用于电子商业中。当所述客户端需要在所述加密通信设备上进行注册时,获取所述RSA服务器公钥PUB_KEY_SERVER,通过所述RSA服务器公钥PUB_KEY_SERVER将用户填写的客户端标识CLIENT_CODE和客户端RSA公钥PUB_KEY_CLIENT进行加密,获得加密注册信息,并基于所述加密注册信息生成所述注册请求。当所述加密通信设备接收到所述客户端的发送的所述注册请求后,通过所述服务器RSA私钥PRI_KEY_SERVER对所述注册请求中的加密注册信息进行解密,获得所述客户端标识CLIENT_CODE和所述客户端RSA公钥PUB_KEY_CLIENT;基于所述客户端标识CLIENT_CODE查询数据库中是否有存在相同的客户端标识,若所述数据库中存在相同的客户端标识,则返回客户端标识已存在的提示信息,以供用户重新填写客户端标识;若所述数据库中不存在相同的客户端标识,则保存所述客户端标识,表示所述客户端注册成功,并随机生成第一预设字节长度的第一客户端编码CLIENT_ID1,同时生成第二预设字节长度的第一认证密码PASSWORD1。其中,所述第一预设字节长度和所述第二预设字节长度可以根据需要设置,例如将所述第一预设字节长度设置为32字节,将所述第二预设字节长度设置为16字节。然后通过所述客户端RSA公钥PUB_KEY_CLIENT将所述客户端标识CLIENT_CODE、所述第一客户端编码CLIENT_ID1和所述第一认证密码PASSWORD1生成加密注册响应信息,并将所述加密注册响应信息返回至所述客户端,以供所述客户端利用客户端RSA私钥PRI_KEY_CLIENT对所述加密注册响应信息进行解密,获得所述第一客户端编码CLIENT_ID1和所述第一认证密码PASSWORD1。由此,完成了注册全流程。
当注册成功后,还需要对所述客户端进行认证。具体地,接收所述客户端发送的所述认证请求,获取所述认证请求中的所述认证信息,所述认证信息包括第二客户端编码CLIENT_ID2、第二认证密码PASSWORD2。所述客户端通过所述服务器RSA公钥PUB_KEY_SERVER将所述第二客户端编码CLIENT_ID1、所述第二认证密码PASSWORD1、所述客户端RSA公钥PUB_KEY_CLIENT以及精确至秒的认证时间CURRENT_TIME进行加密,获得所述认证请求,其中所述认证时间CURRENT_TIME是当前系统时间;所述加密通信设备接收到所述加密认证请求数据后通过所述服务器RSA私钥PRI_KEY_SERVER对所述认证请求进行解密,获得所述第二客户端编码CLIENT_ID2、所述第二认证密码PASSWORD2、所述客户端RSA公钥PUB_KEY_CLIENT、以及所述认证时间CURRENT_TIME。
将所述第二客户端编码与所述第一客户端编码进行比较,若所述第二客户端编码与所述第一客户端编码一致,则判定所述客户端已注册,继续将所述第二认证密码与所述第一认证密码进行比较,若所述第二认证密码与所述第一认证密码一致,则判定所述认证请求合法。反之,若所述第二客户端编码与所述第一客户端编码不一致,则判定所述客户端未注册,则拒绝所述认证请求并向所述客户端返回未注册的提示信息;若所述第二认证密码与所述第一认证密码不一致,则说明所述认证请求不合法,拒绝所述认证请求。
进一步地,若所述认证请求合法,则获取所述认证请求中的所述认证时间CURRENT_TIME,所述认证时间与预设时间范围进行比较,其中所述预设时间范围可以是当前实际时间往前60s至所述当前时间时间,例如若当前实际时间是11:00:00,则所述预设时间范围是10:59:00-11:00:00。若所述认证时间不在预设时间范围内,则说明所述认证请求已过期,拒绝所述认证请求;若所述认证时间在所述预设时间范围内,则说明所述认证请求未过期,并执行步骤S101:接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数。
本实施例中,通过redis服务器维护所述加密通信设备的已认证客户端的客户端队列CLIENT_QUEUE。多台加密通信设备的可以共享一个redies服务器。所述客户端队列CLIENT_QUEUE的队列大小QUEUE_SIZE由所述加密通信设备的数量和加密通信设备的处理器核数决定,一般地所述队列大小的值为共享所述redies服务器的所述加密通信设备的数量乘以加密通信设备的处理器核数再乘以预设常数的积。也即队列大小QUEUE_SIZE=加密通信设备的数量×加密通信设备的处理器核数×常数。若以N表示加密通信设备的数量,以C表示加密通信设备的处理器核数,用K表示常数,则队列大小QUEUE_SIZE=N*C*K。其中常数可以根据经验设置,例如将所述常数确定为18或15。
所述队列大小QUEUE_SIZE就是可以连接至所述加密通信设备的客户端数量的最大连接数。
当接入客户端发送的认证请求后,则获取所述第一客户端队列中的已认证客户端数量,将所述已认证客户端数量与所述最大连接数进行对比,若所述已认证客户端数量小于所述最大连接数,则直接执行步骤S103。反之,若所述第一客户端队列中的所述已认证客户端数量达到所述最大连接数,则基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列。
本实施例中为了保证所述加密通信设备不超载,使得所述加密通信设备可以平稳运行,需要将连接在所述加密通信设备上的已认证客户端的数量控制在不超过所述最大连接数。若连接在所述加密通信设备上的所述已认证客户端数量达到所述最大连接数,则需要对所述第一客户端队列进行清理,及时清除长时间未发送数据请求、最近发送过数据请求但是发送数据请求次数少以及数据请求频率低的已认证客户端。
本实施例中,基于预设多级清理流程移除存储在所述第一客户端队列中的一个或多个已认证客户端。所述多级清理流程分别是根据最新请求时间点进行清理的第一级清理;根据最新请求时间点和数据请求次数进行清理的第二级清理;根据数据请求频率进行清理的第多级清理。本实施例中,依次根据最新请求时间点、所述最新请求时间点和数据请求次数、数据请求频率对所述第一客户端队列中的所述已认证客户端进行筛选,若存在符合条件的已认证客户端,则将所述目标已认证客户端从所述第一客户端队列中移除,获得清理后的客户端队列。
具体地,遍历所述第一客户端队列中保存的已认证客户端编码、已认证第一令牌,并根据所述认证第一令牌对应对应已认证客户端的最新请求时间点和请求次数;令牌(token)是所述加密通信设备生产的一串字符串,并将这一串字符串发送至客户端,作为所述客户端向所述加密通信设备进行请求的令牌。当所述客户端在所述加密通信设备中登录一次后,所述客户端就能获得所述加密通信设备生成的令牌,当所述客户端后续需要访问所述加密通信设备时,只需要上传所述令牌即可,无需再上传客户端的用户名和密码。所述客户端队列中存储有各个已认证客户端的已认证客户端编码、已认证第一令牌等信息。当所述加密通信设备基于所述认证第一令牌确定对应的已认证客户端后,则确定对应的最新请求时间和请求次数,其中所述最新请求时间是上一次发送认证请求的时间点,所述请求次数是指所述客户端队列中保存的各个已认证客户端发送认证请求次数的总次数。
将所述已认证客户端的所述最新请求时间点与第一预设时间点进行比较,若存在所述最新请求时间点小于或等于所述第一预设时间点的第一目标已认证客户端;当获取到所述最新请求时间后,将所述最新请求时间点与第一预设时间点进行比较,其中,所述第一预设时间点可以根据需要具体设置,例如将所述第一预设时间点设置为当前时间点往前20分钟,也即,若当前时间点是9:00:00,则所述第一预设时间点是8:40:00,若所述最新请求时间点是8:30:00,则说明所述最新请求时间点小于或等于所述第一预设时间点,其对应的已认证客户端就是第一目标已认证客户端。可以理解地,所述第一目标已认证客户端的个数可以为一个或多个。所述最新请求时间点可以是注册请求、认证请求以及数据请求的最新请求时间点。
则将所述第一目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列;本实施例中,可以移除所述第一目标已认证客户端的所有相关信息例如客户端编码、已认证第一令牌等,以获得所述清理后的客户端队列。
若不存在所述最新请求时间点小于或等于所述第一预设时间点的第一目标已认证客户端,则将所述已认证客户端的所述最新时间点与第二预设时间点进行比较,并将所述已认证客户端的所述数据请求次数与预设数据请求次数进行对比,其中所述第二预设时间点晚于所述第一预设时间点;所述第二预设时间点可以根据需要具体设置,例如将所述第二预设时间点设置为当前时间点往前60秒。例如若当前时间点是9:00:00,则所述第二预设时间点是8:59:00。所述预设数据请求次数也可以根据需要设置,例如将所述预设数据请求次数设置为2次,如此若某个已认证客户端的所述最新请求时间点是8:54:23,数据请求次数是1,则将该客户端标记为第二目标已认证客户端。
若存在所述最新请求时间点小于或等于所述第二预设时间点且所述数据请求次数小于或等于所述预设数据请求次数的第二目标已认证客户端,则将所述第二目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列。
进一步地,若不存在所述最新请求时间点小于或等于所述第二预设时间点且所述请求次数小于或等于所述预设请求次数的第二目标已认证客户端,则计算所述各个已认证客户端的数据请求频率的频率表示值,并将所述频率表示值小于预设频率阈值的第三目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列。本实施例中,所述预设频率阈值可以根据需要具体设置。所述频率表示值根据频率表示值计算公式计算,本实施例将所述频率表示值计算公式为:
其中k表示各个已认证客户端的序号标记,所述序号标记可以根据各个客户端的认证请求接入的先后顺序确定。CUR_TIME表示当前实际时间点,REQ_TIMEk表示已认证客户端的认证请求接入的时间点,seconds表示取CUR_TIME与REQ_TIMEk两个时间点之差的秒数,取平方是为了将比值扩大,更容易过滤出请求频率小于所述预设频率阈值的第三目标已认证客户端,REQ_COUNTk表示已认证客户端的数据请求次数,加1是为了防止请求次数为0时,分母为0的情况,max表示取最大值。
如此,按所述频率表示值的公式计算出所述客户端队列中各个所述已认证客户端的频率表示值后,将各个频率表示值按从小到大的顺序进行排序,基于排序结果,将排在第一的频率表示值对应的已认证客户端标记为第三目标已认证客户端,并将所述第三目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列。
值得说明的是,本实施例中只需要从所述客户端队列中清除一个或多个目标已认证客户端即可,若获得了所述第一目标已认证客户端,则不需要再去获取所述第二目标已认证客户端或所述第三目标已认证客户端;若未获得所述第一目标已认证客户端,则进行二级清理,如果获得了所述第二目标已认证客户端,则不需要执行多级清理;若未获得所述第一目标已认证客户端和所述第二目标已认证客户端,则继续执行多级清理流程中的三级清理,获得所述第三目标已认证客户端。若不存在满足条件的所述目标已认证客户端则说明未获得所述第一目标已认证客户端、所述第二目标已认证客户端和所述第目标三客户端,则暂时不清理所述第一客户端队列,并拒绝所述客户端发送的所述认证请求。如此即可获得已认证客户端数量未达到最大连接数的清理后客户端队列,可以保证同时接入所述加密通信设备上的客户端的数量不会超过所述加密通信设备可承受的最大量,能保证所述加密通信设备的平稳运行。
当获得所述清理后的客户端队列后,或者所述第一客户端队列中的已认证客户端数量未达到最大连接数,则执行所述步骤S103:基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端,以供所述redis服务器更新所述清理后的客户端队列。
获取所述认证信息中的第二客户端编码,并以所述第二客户端编码CLIENT_ID2为键(key)生成键值(value)为第三预设字节长度的随机字符串,将所述第三预设字节长度的随机字符串标记为第一令牌TOKEN1。同时生成第四预设字节长度的随机字符串,并将所述第四预设字节长度的随机字符串标记为第一密钥。本实施例中,所述第一密钥是AES(Advanced Encryption Standard,高级加密标准)密钥。所述第一密钥还可以是DES(DataEncryption Standard,数据加密标准)密钥、ECC(Error Correcting Code,错误检测和纠正)密钥。
所述redis服务器中以key-value的形式保存所述已认证客户端的第一令牌和所述第一AES密钥,也即所述redies中保存的信息为CLIENT_ID2—TOKEN1。进一步地,以所述第一令牌TOKEN1为key,以RSA服务器公钥PUB_KEY_CLIENT、第一AES密钥、请求次数REQ_COUNT、最新请求时间LAST_REQ_TIME(这里为当前实际时间,精确到秒)为value的信息保存至所述redis服务器中。其中,所述REQ_COUNT的初始值为0,用于记录所述已认证客户端使用所述TOKEN1发送数据请求的次数。
进一步地,设置所述第一令牌的有效期,若当前时间达到所述有效期,则将所述第一令牌和所述第一AES密钥对应的过期客户端从所述清理后的客户端队列中移除。例如可以将所述第一令牌TOKEN1的有效期设置为从所述认证时间CURRENT_TIME起的30分钟,若所述认证时间CURRENT_TIME是6:00:00,则有效期为6:00:00-6:30:00,若当前时间为6:30:01,则将所述认证时间为6:00:00的客户端标记为过期客户端,并将所述过期客户端的所述第一令牌和所述第一AES密钥以及RSA服务器公钥PUB_KEY_CLIENT、请求次数REQ_COUNT、最新请求时间LAST_REQ_TIME等相关信息从所述redis服务器中的所述清理后的已认证客户端队列中移除,获得不包括所述过期客户端的更新后已认证客户端队列。由此,若所述已认证客户端在有效期外还需要访问所述加密通信设备,则需要重新进行发起认证请求,重新获得新的密钥,由此实现了密钥的动态变化,保证了加密通信的安全。
进一步地,所述加密通信设备使用所述RSA客户端公钥PUB_KEY_CLIENT将所述第一令牌TOKEN1和所述第一AES密钥进行加密,获得加密令牌、密钥报文,所述客户端接收到所述加密令牌、密钥报文后,利用自身的RSA客户端私钥PRI_KEY_CLIENT对所述加密令牌、密钥报文进行解密,获得所述第一令牌TOKEN1和所述第一AES密钥。
当所述加密通信设备、所述redis服务器和所述客户端都获得所述第一令牌TOKEN1和所述第一密钥后,即可执行所述步骤S104:通过所述第一令牌和所述第一密钥与所述客户端进行加密通信。
具体地,所述步骤S104包括:
接收所述客户端发送的数据请求,获取所述请求中的请求令牌、加密业务内容以及客户端签名;一般地,所述数据请求包括请求令牌、加密业务内容ENCRYPT_BIZ_CONTENT以及客户端签名SIGN,一般地,所述请求令牌就是之前获取的所述第一令牌,所述客户端一般会使用所述第一AES密钥对业务内容BIZ_CONTENT进行加密,获得所述加密业务内容ENCRYPT_BIZ_CONTENT。然后所述客户端再基于RSA客户端私钥PRI_KEY_CLIENT对所述加密业务内容ENCRYPT_BIZ_CONTENT进行签名获得所述客户端签名SIGN。由此可以保证在通信过程中所述业务内容不会被篡改。并根据所述请求令牌、所述加密业务内容ENCRYPT_BIZ_CONTENT以及所述客户端签名SIGN生成数据请求,然后将所述数据请求发送至所述加密通信服务设备。
从所述清理后的客户端队列中查找与所述请求令牌一致的第一令牌,并将与所述请求令牌一致的第一令牌标记为目标第一令牌;获取与所述目标第一令牌对应的客户端公钥和第一AES密钥;具体地,从所述redis服务器存储的所述清理后的客户端队列中查找与所述请求令牌一致的第一令牌;若所述清理后的客户端队列中存在与所述请求令牌一致的目标第一令牌,则获取所述目标第一令牌对应的所述客户端公钥PUB_KEY_CLIENT和所述第一AES密钥;若所述清理后的客户端队列中不存在与所述请求令牌一致的第一令牌,则判定所述请求令牌已过期;接入所述客户端的二次认证请求,基于所述二次认证请求中的认证信息生成第二令牌和第二AES密钥,并将所述第二令牌和所述第二AES密钥发送至所述redis服务器和所述客户端,以供从redis服务器中获取对应的客户端公钥和所述第二AES密钥,其中所述第二AES密钥与所述第一AES密钥不相同。如此,可以动态生成AES密钥,降低了AES密钥被盗用的风险,增强了加密通信的安全性。
通过所述客户端公钥PUB_KEY_CLIENT对所述客户端签名SIGN进行验签;所述加密通信设备利用所述客户端公钥PUB_KEY_CLIENT对所述客户端签名SIGN进行解密,若解密成功则验签成功,若解密失败则表明验签失败。
验签通过后,基于所述第一AES密钥对所述加密业务内容进行解密获得解密业务内容BIZ_CONTENT,并根据所述解密业务内容处理所述数据请求生成响应报文,并通过所述第一AES密钥对所述响应数据RESPONSE_CONTENT进行加密,获得加密响应报文ENCRYPT_RESPONSE_CONTENT;并使用RSA私钥PRI_KEY_SERVER对所述加密响应报文ENCRYPT_RESPONSE_CONTENT进行签名,获得服务器签名。
向所述客户端发送所述加密响应报文和服务器签名,以供所述客户端基于所述服务器签名判断所述加密响应报文是否被篡改;所述客户端接收到所述加密响应报文和所述服务器签名后,通过RSA服务器公钥PUB_KEY_SERVER对所述加密响应报文ENCRYPT_RESPONSE_CONTENT进行验签,若验签通过则判定所述加密响应报文未被篡改;反之若验签未通过则判定所述加密响应报文被篡改。若所述加密响应报文未被篡改,所在客户端就可以通过所述第一AES密钥解密所述加密响应报文,获得响应报文。
本实施例通过上述方案,接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数;若所述第一客户端队列中的所述已认证客户端数量达到所述最大连接数,则基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列;基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端,以供所述redis服务器更新所述清理后的客户端队列;通过所述第一令牌和所述第一密钥与所述客户端进行加密通信。由此,通过redis服务器管理客户端队列,控制同时连接至服务器的客户端的数量,防止服务器瘫痪,提高服务器运行的稳定性;并且基于客户端的认证信息生成令牌和密钥,由于客户端可以根据需要发送认证信息,因此可以实现密钥的动态调整,增强了加密通信的安全性。
此外,本实施例还提供一种加密通信装置。参照图3,图3为本发明加密通信装置第一实施例的功能模块示意图。
本实施例中,所述加密通信装置为虚拟装置,存储于图1所示的加密通信设备的存储器1005中,以实现加密通信程序的所有功能:用于接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数;用于若所述第一客户端队列中的所述已认证客户端数量达到所述最大连接数,则基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列;用于基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端,以供所述redis服务器更新所述清理后的客户端队列;用于通过所述第一令牌和所述第一密钥与所述客户端进行加密通信。
具体地,所述加密通信装置包括:
判断模块10,用于接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数;
清理模块20,用于若所述第一客户端队列中的所述已认证客户端数量达到所述最大连接数,则基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列;
返回模块30,用于基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端,以供所述redis服务器更新所述清理后的客户端队列;
通信模块40,用于通过所述第一令牌和所述第一密钥与所述客户端进行加密通信。
进一步地,所述清理模块还用于:
依次根据最新请求时间点、所述最新请求时间点和数据请求次数、数据请求频率对所述第一客户端队列中的所述已认证客户端进行筛选,若存在符合条件的已认证客户端,则将所述目标已认证客户端从所述第一客户端队列中移除,获得清理后的客户端队列。
进一步地,所述清理模块还用于:
遍历所述第一客户端队列中保存的已认证客户端编码、已认证第一令牌,并根据所述已认证第一令牌获取对应已认证客户端的最新请求时间点和请求次数;
将所述已认证客户端的所述最新请求时间点与第一预设时间点进行比较,判断是否存在所述最新请求时间点小于或等于所述第一预设时间点的第一目标已认证客户端;
若存在所述最新请求时间点小于或等于所述第一预设时间点的第一目标已认证客户端,则将所述第一目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列;
若不存在所述最新请求时间点小于或等于所述第一预设时间点的第一目标已认证客户端,则将所述已认证客户端的所述最新时间点与第二预设时间点进行比较,并将所述已认证客户端的所述数据请求次数与预设数据请求次数进行对比,判断是否存在所述最新请求时间点小于或等于所述第二预设时间点且所述数据请求次数小于或等于所述预设数据请求次数的第二目标已认证客户端,其中所述第二预设时间点晚于所述第一预设时间点;
若存在所述最新请求时间点小于或等于所述第二预设时间点且所述数据请求次数小于或等于所述预设数据请求次数的第二目标已认证客户端,则将所述第二目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列。
进一步地,所述清理模块还用于:
若不存在所述最新请求时间点小于或等于所述第二预设时间点且所述请求次数小于或等于所述预设请求次数的第二目标已认证客户端,则计算所述各个已认证客户端的数据请求频率的频率表示值;
将所述频率表示值小于预设频率阈值的第三目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列;
其中,所述频率表示值根据频率表示值计算公式计算,所述频率表示值计算公式为:
其中,Ck表示频率表示值,k表示各个已认证客户端的序号标记;CUR_TIME表示当前实际时间点,REQ_TIMEk表示所述已认证客户端的认证请求接入的时间点,seconds表示CUR_TIME与REQ_TIMEk两个时间点之差的秒数,REQ_COUNTk表示所述已认证客户端的数据请求次数,max表示取最大值。
进一步地,所述判断模块还用于:
接收所述客户端的发送的注册请求,基于所述注册请求中的客户端标识进行注册,并在注册成功后向所述客户端返回第一客户端编码和第一认证密码;
接收所述客户端发送的所述认证请求,获取所述认证请求中的所述认证信息,所述认证信息包括第二客户端编码、第二认证密码;
将所述第二客户端编码和所述第二认证密码分别与所述第一客户端编码和所述第一认证密码进行比较,基于客户端编码比较结果和认证密码比较结果判断所述认证请求是否合法;
若所述认证请求合法,获取所述认证信息中的认证时间,将所述认证时间与预设时间范围进行比较,获得时间比较结果,基于所述时间比较结果判断所述认证请求是否过期;
若所述认证请求未过期,则执行步骤:接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数。
进一步地,所述通信模块还用于:
接收所述客户端发送的数据请求,获取所述请求中的请求令牌、加密业务内容以及客户端签名;
从所述清理后的客户端队列中查找与所述请求令牌一致的第一令牌,并将与所述请求令牌一致的第一令牌标记为目标第一令牌;
获取与所述目标第一令牌对应的客户端公钥和第一AES密钥;
通过所述客户端公钥对所述客户端签名进行验签;
验签通过后,基于所述第一AES密钥对所述加密业务内容进行解密获得解密业务内容,并根据所述解密业务内容处理所述数据请求生成加密响应报文;
向所述客户端发送所述加密响应报文和服务器签名,以供所述客户端通过所述第一AES密钥解密所述加密响应报文,获得响应报文。
进一步地,所述通信模块还用于:
从所述redis服务器存储的所述清理后的客户端队列中查找与所述请求令牌一致的第一令牌;
若所述清理后的客户端队列中存在与所述请求令牌一致的第一令牌,则获取所述第一令牌对应的所述客户端公钥和所述第一AES密钥;
若所述清理后的客户端队列中不存在与所述请求令牌一致的第一令牌,则判定所述请求令牌已过期;
接入所述客户端的二次认证请求,基于所述二次认证请求中的认证信息生成第二令牌和第二AES密钥,并将所述第二令牌和所述第二AES密钥发送至所述redis服务器和所述客户端,以供从redis服务器中获取对应的客户端公钥和所述第二AES密钥,其中所述第二AES密钥与所述第一AES密钥不相同。
进一步地,所述通信模块还用于:
设置所述第一令牌的有效期,若当前时间达到所述有效期,则将所述第一令牌对应的过期客户端从所述清理后的客户端队列中移除。
此外,本发明实施例还提供一种计算机存储介质,所述计算机存储介质上存储有加密通信程序,所述加密通信程序被处理器运行时实现如上所述加密通信方法的步骤,此处不再赘述。
相比现有技术,本发明提出的一种加密通信方法、装置、设备及存储介质,接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数;若所述第一客户端队列中的所述已认证客户端数量达到所述最大连接数,则基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列;基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端,以供所述redis服务器更新所述清理后的客户端队列;通过所述第一令牌和所述第一密钥与所述客户端进行加密通信。由此,通过redis服务器管理客户端队列,控制同时连接至服务器的客户端的数量,防止服务器瘫痪,提高服务器运行的稳定性;并且基于客户端的认证信息生成令牌和密钥,由于客户端可以根据需要发送认证信息,因此可以实现密钥的动态调整,增强了加密通信的安全性。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备执行本发明各个实施例所述的方法。
以上所述仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或流程变换,或直接或间接运用在其它相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种加密通信方法,其特征在于,所述方法包括:
接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数;
若所述第一客户端队列中的所述已认证客户端数量达到所述最大连接数,则基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列;
基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端,以供所述redis服务器更新所述清理后的客户端队列;
通过所述第一令牌和所述第一密钥与所述客户端进行加密通信;
所述基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列的步骤包括:
依次根据最新请求时间点、所述最新请求时间点和数据请求次数、数据请求频率对所述第一客户端队列中的所述已认证客户端进行筛选,若存在符合条件的已认证客户端,则将所述目标已认证客户端从所述第一客户端队列中移除,获得清理后的客户端队列;
其中,所述数据请求频率的频率表示值根据频率表示值计算公式计算,所述频率表示值计算公式为:
其中,Ck表示频率表示值,k表示各个已认证客户端的序号标记;CUR_TIME表示当前实际时间点,REQ_TIMEk表示所述已认证客户端的认证请求接入的时间点,seconds表示CUR_TIME与REQ_TIMEk两个时间点之差的秒数,REQ_COUNTk表示所述已认证客户端的数据请求次数,max表示取最大值。
2.根据权利要求1所述的方法,其特征在于,所述依次根据最新请求时间点、所述最新请求时间点和数据请求次数、数据请求频率对所述第一客户端队列中的所述已认证客户端进行筛选,若存在符合条件的已认证客户端,则,将所述目标已认证客户端从所述第一客户端队列中移除,获得清理后的客户端队列的步骤包括:
遍历所述第一客户端队列中保存的已认证客户端编码、已认证第一令牌,并根据所述已认证第一令牌获取对应已认证客户端的最新请求时间点和数据请求次数;
将所述已认证客户端的所述最新请求时间点与第一预设时间点进行比较,判断是否存在所述最新请求时间点小于或等于所述第一预设时间点的第一目标已认证客户端;
若存在所述最新请求时间点小于或等于所述第一预设时间点的第一目标已认证客户端,则将所述第一目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列;
若不存在所述最新请求时间点小于或等于所述第一预设时间点的第一目标已认证客户端,则将所述已认证客户端的所述最新请求时间点与第二预设时间点进行比较,并将所述已认证客户端的所述数据请求次数与预设数据请求次数进行对比,判断是否存在所述最新请求时间点小于或等于所述第二预设时间点且所述数据请求次数小于或等于所述预设数据请求次数的第二目标已认证客户端,其中所述第二预设时间点晚于所述第一预设时间点;
若存在所述最新请求时间点小于或等于所述第二预设时间点且所述数据请求次数小于或等于所述预设数据请求次数的第二目标已认证客户端,则将所述第二目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列。
3.根据权利要求2所述的方法,其特征在于,所述若存在所述最新请求时间点小于或等于所述第二预设时间点且所述数据请求次数小于或等于所述预设数据请求次数的第二目标已认证客户端,则将所述第二目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列的步骤之后还包括:
若不存在所述最新请求时间点小于或等于所述第二预设时间点且所述请求次数小于或等于预设请求次数的第二目标已认证客户端,则计算各个已认证客户端的数据请求频率的频率表示值;
将所述频率表示值小于预设频率阈值的第三目标已认证客户端从所述第一客户端队列中移除,获得所述清理后的客户端队列。
4.根据权利要求1所述的方法,其特征在于,所述接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数的步骤之前还包括:
接收所述客户端的发送的注册请求,基于所述注册请求中的客户端标识进行注册,并在注册成功后向所述客户端返回第一客户端编码和第一认证密码;
接收所述客户端发送的所述认证请求,获取所述认证请求中的所述认证信息,所述认证信息包括第二客户端编码、第二认证密码;
将所述第二客户端编码和所述第二认证密码分别与所述第一客户端编码和所述第一认证密码进行比较,基于客户端编码比较结果和认证密码比较结果判断所述认证请求是否合法;
若所述认证请求合法,获取所述认证信息中的认证时间,将所述认证时间与预设时间范围进行比较,获得时间比较结果,基于所述时间比较结果判断所述认证请求是否过期;
若所述认证请求未过期,则执行步骤:接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数。
5.根据权利要求1所述的方法,其特征在于,所述第一密钥包括第一高级加密标准AES密钥,所述通过所述第一令牌和所述第一密钥与所述客户端进行加密通信的步骤包括:
接收所述客户端发送的数据请求,获取所述请求中的请求令牌、加密业务内容以及客户端签名;
从所述清理后的客户端队列中查找与所述请求令牌一致的第一令牌,并将与所述请求令牌一致的第一令牌标记为目标第一令牌;
获取与所述目标第一令牌对应的客户端公钥和第一AES密钥;
通过所述客户端公钥对所述客户端签名进行验签;
验签通过后,基于所述第一AES密钥对所述加密业务内容进行解密获得解密业务内容,并根据所述解密业务内容处理所述数据请求生成加密响应报文;
向所述客户端发送所述加密响应报文和服务器签名,以供所述客户端通过所述第一AES密钥解密所述加密响应报文,获得响应报文。
6.根据权利要求5所述的方法,其特征在于,所述基于所述请求令牌从所述redis服务器中获取对应的客户端公钥和第一AES密钥的步骤包括:
从所述redis服务器存储的所述清理后的客户端队列中查找与所述请求令牌一致的第一令牌;
若所述清理后的客户端队列中存在与所述请求令牌一致的第一令牌,则获取所述第一令牌对应的所述客户端公钥和所述第一AES密钥;
若所述清理后的客户端队列中不存在与所述请求令牌一致的第一令牌,则判定所述请求令牌已过期;
接入所述客户端的二次认证请求,基于所述二次认证请求中的认证信息生成第二令牌和第二AES密钥,并将所述第二令牌和所述第二AES密钥发送至所述redis服务器和所述客户端,以供从redis服务器中获取对应的客户端公钥和所述第二AES密钥,其中所述第二AES密钥与所述第一AES密钥不相同。
7.根据权利要求1-6中任一项所述的方法,其特征在于,所述基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端的步骤之后还包括:
设置所述第一令牌的有效期,若当前时间达到所述有效期,则将所述第一令牌对应的过期客户端从所述清理后的客户端队列中移除。
8.一种加密通信装置,其特征在于,所述加密通信装置包括:
判断模块,用于接入客户端发送的认证请求,判断保存在远程字典redis服务器中的第一客户端队列中的已认证客户端数量是否达到最大连接数;
清理模块,用于若所述第一客户端队列中的所述已认证客户端数量达到所述最大连接数,则基于预设多级清理流程确定目标已认证客户端,若存在一个或多个所述目标已认证客户端则移除存储在所述第一客户端队列中的所述目标已认证客户端,获得清理后的客户端队列;
返回模块,用于基于所述认证请求中的认证信息生成第一令牌和第一密钥,并将所述第一令牌和所述第一密钥分别返回至所述redis服务器和所述客户端,以供所述redis服务器更新所述清理后的客户端队列;
通信模块,用于通过所述第一令牌和所述第一密钥与所述客户端进行加密通信;
所述清理模块,还用于:
依次根据最新请求时间点、所述最新请求时间点和数据请求次数、数据请求频率对所述第一客户端队列中的所述已认证客户端进行筛选,若存在符合条件的已认证客户端,则将所述目标已认证客户端从所述第一客户端队列中移除,获得清理后的客户端队列;
其中,所述数据请求频率的频率表示值根据频率表示值计算公式计算,所述频率表示值计算公式为:
其中,Ck表示频率表示值,k表示各个已认证客户端的序号标记;CUR_TIME表示当前实际时间点,REQ_TIMEk表示所述已认证客户端的认证请求接入的时间点,seconds表示CUR_TIME与REQ_TIMEk两个时间点之差的秒数,REQ_COUNTk表示所述已认证客户端的数据请求次数,max表示取最大值。
9.一种加密通信设备,其特征在于,所述加密通信设备包括处理器,存储器以及存储在所述存储器中的加密通信程序,所述加密通信程序被所述处理器运行时,实现如权利要求1-7中任一项所述的加密通信方法的步骤。
10.一种计算机存储介质,其特征在于,所述计算机存储介质上存储有加密通信程序,所述加密通信程序被处理器运行时实现如权利要求1-7中任一项所述加密通信方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010577245.6A CN111669402B (zh) | 2020-06-22 | 2020-06-22 | 加密通信方法、装置、设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010577245.6A CN111669402B (zh) | 2020-06-22 | 2020-06-22 | 加密通信方法、装置、设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111669402A CN111669402A (zh) | 2020-09-15 |
CN111669402B true CN111669402B (zh) | 2023-03-21 |
Family
ID=72389487
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010577245.6A Active CN111669402B (zh) | 2020-06-22 | 2020-06-22 | 加密通信方法、装置、设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111669402B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112202557B (zh) * | 2020-11-17 | 2023-05-30 | 平安科技(深圳)有限公司 | 基于密钥更新分发的加密方法、装置、设备及存储介质 |
CN114124440B (zh) * | 2021-09-29 | 2023-09-26 | 平安养老保险股份有限公司 | 安全传输方法、装置、计算机设备和存储介质 |
CN113986374A (zh) * | 2021-10-22 | 2022-01-28 | 上海浦东发展银行股份有限公司 | 一种基于鉴权认证的配置信息更新方法、客户端、服务器 |
CN114666397B (zh) * | 2022-01-29 | 2024-07-23 | 北京北信源软件股份有限公司 | 一种客户端版本更新方法及系统 |
CN116170232B (zh) * | 2023-04-21 | 2023-06-23 | 安徽中科锟铻量子工业互联网有限公司 | 量子网关数据显示管理系统 |
CN116436710B (zh) * | 2023-06-15 | 2023-08-29 | 烟台岸基网络科技有限公司 | 港口桥式装卸设备作业远程操作系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109150910A (zh) * | 2018-10-11 | 2019-01-04 | 平安科技(深圳)有限公司 | 登录令牌生成及验证方法、装置及存储介质 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103441805B (zh) * | 2013-07-17 | 2015-10-28 | 北京神州泰岳软件股份有限公司 | 信号监控及优化方法、系统 |
CA2912461C (en) * | 2014-11-17 | 2020-11-24 | Skotel Corporation | Method and apparatus for deterministic date and time alignment of media signals and generation of time-related labels |
US10063661B2 (en) * | 2015-01-14 | 2018-08-28 | Oracle International Corporation | Multi-tenant cloud-based queuing systems |
CN109302379A (zh) * | 2018-08-10 | 2019-02-01 | 深圳市佰仟金融服务有限公司 | 身份认证方法、装置、服务器及介质 |
CN109617907B (zh) * | 2019-01-04 | 2022-04-08 | 平安科技(深圳)有限公司 | 认证方法、电子装置及计算机可读存储介质 |
-
2020
- 2020-06-22 CN CN202010577245.6A patent/CN111669402B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109150910A (zh) * | 2018-10-11 | 2019-01-04 | 平安科技(深圳)有限公司 | 登录令牌生成及验证方法、装置及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN111669402A (zh) | 2020-09-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111669402B (zh) | 加密通信方法、装置、设备及存储介质 | |
US11036861B2 (en) | Host attestation | |
CN107493273B (zh) | 身份认证方法、系统及计算机可读存储介质 | |
CN111010367B (zh) | 数据存证方法、装置、计算机设备和存储介质 | |
CN112671720B (zh) | 一种云平台资源访问控制的令牌构造方法、装置及设备 | |
CN108769230B (zh) | 交易数据存储方法、装置、服务器及存储介质 | |
US20080172562A1 (en) | Encryption and authentication of data and for decryption and verification of authenticity of data | |
CN112788036B (zh) | 身份验证方法及装置 | |
CN113221128B (zh) | 账号和密码的存储方法及注册管理系统 | |
CN108494783B (zh) | 云端数据的保护方法 | |
CN104468120B (zh) | 一种实现电子签章的方法和系统 | |
CN109409079B (zh) | 弱口令核查方法及装置 | |
CN112948851A (zh) | 用户认证方法、装置、服务器及存储介质 | |
CN111835526A (zh) | 一种生成匿名凭证的方法及系统 | |
CN111404892B (zh) | 数据监管方法、装置和服务器 | |
US20170054561A1 (en) | Double authenitication system for electronically signed documents | |
CN115460019B (zh) | 基于数字身份的目标应用提供方法和装置、设备和介质 | |
CN111241492A (zh) | 一种产品多租户安全授信方法、系统及电子设备 | |
JPWO2018220693A1 (ja) | 情報処理装置、検証装置、情報処理システム、情報処理方法、及び、記録媒体 | |
WO2023124958A1 (zh) | 密钥更新方法、服务器、客户端及存储介质 | |
CN111147235B (zh) | 对象访问方法、装置、电子设备及机器可读存储介质 | |
CN110995454A (zh) | 一种业务验证方法及系统 | |
CN113395281B (zh) | 可验证声明的验证方法、装置和电子设备 | |
CN109688158B (zh) | 金融执行链认证方法、电子装置及存储介质 | |
CN113590664A (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 |