CN111193585A - 通信请求管理方法及装置 - Google Patents
通信请求管理方法及装置 Download PDFInfo
- Publication number
- CN111193585A CN111193585A CN201910904785.8A CN201910904785A CN111193585A CN 111193585 A CN111193585 A CN 111193585A CN 201910904785 A CN201910904785 A CN 201910904785A CN 111193585 A CN111193585 A CN 111193585A
- Authority
- CN
- China
- Prior art keywords
- client
- server
- communication
- parameter
- key
- 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.)
- Granted
Links
Images
Classifications
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/45—Network directories; Name-to-address mapping
- H04L61/4505—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols
- H04L61/4511—Network directories; Name-to-address mapping using standardised directories; using standardised directory access protocols using domain name system [DNS]
-
- 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/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
- H04L63/0846—Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- 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/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0866—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/088—Usage controlling of secret information, e.g. techniques for restricting cryptographic keys to pre-authorized uses, different access levels, validity of crypto-period, different key- or password length, or different strong and weak cryptographic algorithms
-
- 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/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
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)
- Power Engineering (AREA)
- Computer And Data Communications (AREA)
Abstract
本申请实施例公开了一种通信请求管理方法及装置,该方法包括客户端获取通信参数以及客户端密钥,根据通信参数以及客户端密钥生成客户端验证参数,然后生成并向服务端发送通信请求,通信请求携带客户端验证参数以及通信参数;服务端在接收通信请求后,解析通信请求,得到客户端验证参数以及通信参数,获取通信参数对应的服务端密钥,根据服务端密钥以及通信标识,生成服务端验证参数,并根据服务端验证参数以及客户端验证参数,对通信请求进行有效性验证;本申请基于动态密钥等密钥对客户端进行有效性验证,该过程在保证客户端验证过程的安全性的基础上,不需要通过第三方平台对通信数据进行加密,降低了客户端验证成本。
Description
技术领域
本申请涉及通信领域,具体涉及一种通信请求管理方法及装置。
背景技术
在客户端与服务端进行通信时,需要对客户端进行身份等有效性验证,当前技术为了保证验证过程的安全性等,通过第三方平台运用多种加密手段来保护验证过程中相互交换的信息,以实现对客户端验证。
这种通过第三方平台实现对客户端验证的方法,存在实现成本高,验证过程复杂等技术问题。
发明内容
本申请实施例提供一种通信请求管理方法及装置,以降低客户端验证成本。
为解决上述技术问题,本申请实施例提供以下技术方案:
本申请实施例提供一种通信请求管理方法,其包括:
接收来自客户端的通信请求;通信请求携带客户端验证参数以及通信参数,客户端验证参数为客户端根据客户端密钥以及通信参数生成的;
解析通信请求,得到客户端验证参数以及通信参数;
获取通信参数对应的服务端密钥;
根据服务端密钥以及通信标识,生成服务端验证参数;
根据服务端验证参数以及客户端验证参数,对通信请求进行有效性验证。
本申请实施例提供一种通信请求管理方法,其包括:
获取通信参数以及客户端密钥;
根据通信参数以及客户端密钥,生成客户端验证参数;
生成通信请求,通信请求携带客户端验证参数以及通信参数;
向服务端发送通信请求。
本申请实施例提供一种通信请求管理方法,其包括:
客户端获取通信参数以及客户端密钥,根据通信参数以及客户端密钥,生成客户端验证参数;
客户端生成通信请求,并向服务端发送通信请求,通信请求携带客户端验证参数以及通信参数;
服务端接收通信请求,解析通信请求,得到客户端验证参数以及通信参数;
服务端获取通信参数对应的服务端密钥,根据服务端密钥以及通信标识,生成服务端验证参数,并根据服务端验证参数以及客户端验证参数,对通信请求进行有效性验证。
本申请实施例提供一种通信请求管理装置,其包括:
接收模块,用于接收来自客户端的通信请求;通信请求携带客户端验证参数以及通信参数,客户端验证参数为客户端根据客户端密钥以及通信参数生成的;
解析模块,用于解析通信请求,得到客户端验证参数以及通信参数;
第一获取模块,用于获取通信参数对应的服务端密钥;
第一处理模块,用于根据服务端密钥以及通信标识,生成服务端验证参数;
验证模块,用于根据服务端验证参数以及客户端验证参数,对通信请求进行有效性验证。
本申请实施例提供一种通信请求管理装置,其包括:
第二获取模块,用于获取通信参数以及客户端密钥;
第二处理模块,用于根据通信参数以及客户端密钥,生成客户端验证参数;
构建模块,用于生成通信请求,通信请求携带客户端验证参数以及通信参数;
发送模块,用于向服务端发送通信请求。
本申请实施例提供一种电子设备,其包括处理器和存储器,存储器存储有多条指令,指令适于处理器进行加载,以执行上述方法中的步骤。
本申请实施例提供一种存储介质,存储介质存储有多条指令,指令适于处理器进行加载,以执行上述方法中的步骤。
本申请实施例提供了一种通信请求管理方法及装置,该方法包括客户端获取通信参数以及客户端密钥,根据通信参数以及客户端密钥,生成客户端验证参数,然后生成并向服务端发送通信请求,通信请求携带客户端验证参数以及通信参数;服务端在接收通信请求后,解析通信请求,得到客户端验证参数以及通信参数,获取通信参数对应的服务端密钥,根据服务端密钥以及通信标识,生成服务端验证参数,并根据服务端验证参数以及客户端验证参数,对通信请求进行有效性验证;本申请基于动态密钥等密钥对客户端发送的通信请求进行有效性验证,该过程在保证客户端验证过程的安全性的基础上,不需要通过第三方平台对通信数据进行加密,解决了当前通过第三方平台对客户端验证所存在的实现成本高、验证过程复杂等技术问题,降低了客户端验证成本,简化了验证流程,加快了验证速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1a是本申请实施例提供的通信系统的组网示意图;
图1b是本申请实施例提供的通信系统的通信示意图;
图1c是本申请实施例提供的密钥数据库的示意图;
图1d是本申请实施例提供的密钥周期示意图;
图2是本申请实施例提供的通信请求管理方法的第一种流程示意图;
图3是本申请实施例提供的通信请求管理方法的第二种流程示意图;
图4是本申请实施例提供的通信请求管理方法的第三种流程示意图;
图5a是本申请实施例提供的通信请求管理装置的第一种结构示意图;
图5b是本申请实施例提供的通信请求管理装置的第二种结构示意图;
图6是本申请实施例提供的终端的结构示意图;
图7是本申请实施例提供的服务器的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
为了便于下文描述,现将本申请涉及到的术语进行说明。
在本申请实施例中,通信系统是基于C/S架构设置的系统,C/S(Client/Server,客户端/服务端)架构是一种软件系统体系结构。
在本申请实施例中,通信请求以及通信响应是基于HTTPS协议进行的,HTTPS(HyperText Transfer Protocol Secure,超文本传输安全协议)是一种通过计算机网络进行安全通信的传输协议。IP(Internet Protocol Address,互联网协议地址)是指一种通信地址。
在本申请实施例中,域名(Domain Name),又称网域,是由一串用点分隔的字符组成的互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位。
在本申请实施例中,客户端密钥是指存储在客户端本地的密钥,客户端验证参数是指客户端生成的验证参数;服务端密钥是指存储在服务端本地的密钥,服务端验证参数是指服务端生成的验证参数。
请参阅图1a所示,图1a为本申请实施例所提供的通信系统的场景示意图,该系统可以包括客户端设备以及服务端设备,客户端设备以及服务端设备通过各种网关组成的互联网等通信网络连接,不再赘述,其中,客户端设备包括多个客户端110,服务端设备包括多个服务端120以及DNS服务器130等;其中:
客户端110包括但不局限于手机、平板等设置有通信功能的便携终端,电脑、查询机、广告机等固定终端,以及用于测试功能的虚拟终端等;
服务端120通过本地服务器和/或远程服务器等实现。
DNS(Domain Name System)服务器130是一个域名和IP地址相互映射的一个分布式数据库,提供把域名映射为IP的服务器。
在本申请中,客户端与服务端通过采用HTTPS技术做数据加密传输和用动态密钥做二次身份验证,以提高网络通信的安全性。具体的,如图2所示,在本申请中:
客户端110获取通信参数以及客户端密钥,根据通信参数以及客户端密钥,生成客户端验证参数;
客户端110生成通信请求,并向服务端120发送通信请求,通信请求携带客户端验证参数以及通信参数;
服务端120接收通信请求,解析通信请求,得到客户端验证参数以及通信参数;
服务端120获取通信参数对应的服务端密钥,根据服务端密钥以及通信标识,生成服务端验证参数,并根据服务端验证参数以及客户端验证参数,对通信请求进行有效性验证。
请参阅图1b所示,客户端110包括以下功能模块:
DNS请求模块,用于定期向DNS服务器发送请求更新IP列表;
通信请求模块,用于处理HTTPS IP直连功能;
密钥管理模块,用于处理简单的密钥管理功能以及签名生成功能;
应用模块,用于处理客户端的主要业务。
请参阅图1b所示,服务端120包括以下功能模块:
接入层,用于进行路由分发;
过滤层,用于进行身份验证;
逻辑层,用于处理主要业务逻辑;
数据层,用于进行密钥的灾备管理等
请参阅图1b所示,通信网络包括物理层、数据链路层、网络层、传输层、会话层、TLS/SSL、表示层、应用层等。SSL/TLS(Secure Sockets Layer/Transport LayerSecurity)是一种传输层安全性协议安全协议,为互联网通信提供安全及数据完整性保障,在本申请中,HTTPS的数据加密是在TLS/SSL中进行的。
在本申请中,客户端的密钥管理是指存储一个最新的密钥,例如初始密钥以及服务端通过通信响应返回的密钥;而服务端的密钥管理比较复杂,因为需要记录所有客户的客户端标识和历史密钥及和历史密钥的生命周期。为了提高密钥管理的高可用,请参阅图1c所示,本申请采用主备模式(Active-Standby)的高可用(HA,High Availability)方案,例如:服务器写入或者读取密钥时,只和主机进行交互;备机和主机建立长连接,称为保持心跳,且通过该长连接共享主机数据;当备机发现无心跳超过阈值时,认为主机不可用,马上将自己的状态切换为主机,对外提供服务,原来的主机如果恢复正常,第一步重连心跳,且发现对方已经是主机,将自己的状态设置为备机。
请参阅图1d所示,针对某一客户端,对应的密钥包括初始密钥K0以及历史密钥K1等,T1-s和T1-e之间的时间段为一个密钥生成周期T;同时为了增强容错性,新密钥knew和老密钥kold中间是有一段时间重叠期,例如Ti+1-s和Ti-e之间,在重叠期期间,新密钥knew和老密钥kold都是有效的,老密钥kold是指的新密钥knew的上一个有效密钥。
需要说明的是,图1a至图1d所示的场景示意图仅仅是一个示例,本申请实施例描述的服务端以及场景是为了更加清楚的说明本申请实施例的技术方案,并不构成对于本申请实施例提供的技术方案的限定,本领域普通技术人员可知,随着系统的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
以下针对本申请提供的通信请求管理方法进行详细说明。
图2是本申请实施例提供的通信请求管理方法的第一种流程示意图,请参阅图2,该通信请求管理方法包括以下步骤:
201:客户端获取通信参数以及客户端密钥。
在一种实施例中,通信参数包括客户端标识和客户端时间参数等;客户端标识可以是位于标识客户端的参数,例如该客户端的IP地址、MAC(Media Access Control,媒体访问控制)地址、全网唯一标识等,客户端时间参数是指客户端当前时间参数,可以是生成通信请求的时间,发送通信请求的时间等。
在一种实施例中,客户端密钥包括存储在客户端本地的密钥,例如初始密钥、服务端返回的密钥等。
202:客户端根据通信参数以及客户端密钥,生成客户端验证参数。
在一种实施例中,本步骤可以直接将通信参数与客户端密钥进行组合得到客户端验证参数;这样数据处理量小。
在一种实施例中,可以对通信参数以及客户端密钥进行哈希计算,以保证数据安全性,此时本步骤包括:对通信参数以及客户端密钥进行哈希计算,得到客户端验证参数。
203:客户端生成通信请求。
在一种实施例中,通信请求携带客户端验证参数以及通信参数,以便于服务端进行验证。
在一种实施例中,本步骤包括:根据服务端的域名参数,从DNS服务器获取服务端的通信地址;将域名参数添加至通信请求的请求头中;将服务端的通信地址,作为通信请求的目标地址。
204:客户端向服务端发送通信请求。
在一种实施例中,客户端将通信请求发送到通信网络中,通信网络基于目标地址将该通信请求转发至对应的服务器。
205:服务端接收来自客户端的通信请求。
在一种实施例中,通信请求通过URL(Uniform Resource Locator,统一资源定位符)等字段、或者通信请求正文等字段,携带客户端验证参数以及通信参数,客户端验证参数为客户端根据客户端密钥以及通信参数生成的。
206:服务端解析通信请求,得到客户端验证参数以及通信参数。
在一种实施例中,服务端对通信请求进行解析,得到通信请求携带的客户端验证参数以及通信参数。
在一种实施例中,可以先根据是否解析得到所需要的参数来判断通信请求是否有效,即本步骤包括:服务端解析通信请求以判断通信请求是否有效,在得到客户端验证参数以及通信参数时,通信请求有效,在密钥得到客户端验证参数以及通信参数时,通信请求无效。
在一种实施例中,可以先根据时间参数来判断通信请求是否有效,此时本步骤包括:获取服务端时间参数;根据服务端时间参数以及时间阈值,对客户端时间参数进行有效性验证;在客户端时间参数通过有效性验证时,获取服务端密钥;在客户端时间参数没有通过有效性验证时,停止获取服务端密钥的步骤。例如,服务端判断服务端时间参数与客户端时间参数之差是否大于时间阈值,若小于,则客户端时间参数通过有效性验证,若大于,则客户端时间参数没有通过有效性验证。
在一种实施例中,可以基于请求头内的域名来判断通信请求是否有效,此时本步骤包括:从通信请求的请求头中获取域名参数;对域名参数进行有效性验证;在域名参数通过有效性验证时,继续解析通信请求;在域名参数没有通过有效性验证时,停止解析通信请求的步骤。
207:服务端获取通信参数对应的服务端密钥。
在一种实施例中,可以在密钥数据库中存储密钥,此时,本步骤包括:根据客户端标识,向密钥数据库发送读操作;接收密钥数据库基于读操作返回的服务端密钥。
在一种实施例中,密钥数据库可以基于主备模式实现,此时,密钥数据库包括保活连接的主机和备机;本实施例还包括:向密钥数据库发送写操作;写操作携带客户端标识以及密钥生命周期,用于指示密钥数据库的主机基于密钥生命周期生成客户端标识对应的服务端密钥。
208:服务端根据服务端密钥以及通信标识,生成服务端验证参数。
在一种实施例中,本步骤需要采用和客户端相同的生成算法生成服务端验证参数。
209:服务端根据服务端验证参数以及客户端验证参数,对通信请求进行有效性验证。
在一种实施例中,本步骤包括:将服务端验证参数与客户端验证参数进行比对,若比对通过,则通信请求通过有效性验证,若比对未通过,则通信请求没有通过有效性验证。
在一种实施例中,为了增强容错性,服务端密钥包括第一服务端密钥和第二服务端密钥,此时,步骤208包括:根据第一服务端密钥以及通信标识,生成第一服务端验证参数,根据第二服务端密钥以及通信标识,生成第二服务端验证参数;步骤209包括:使用第一服务端验证参数或者第二服务端验证参数,分别与客户端验证参数进行比对;若第一服务端验证参数或者第二服务端验证参数中的任一参数与客户端验证参数比对通过,则通信请求通过有效性验证。
210:服务端根据通信请求,生成通信响应。
在一种实施例中,通信响应携带服务端密钥,用于指示客户端将服务端密钥作为客户端密钥存储在本地。
211:服务端向客户端发送通信响应。
212:客户端接收服务端基于通信请求发送的通信响应。
213:客户端解析通信响应,得到服务端密钥。
214:客户端将服务端密钥作为客户端密钥存储在本地。
本实施例提供了一种通信请求管理方法,该方法基于动态密钥等密钥对客户端发送的通信请求进行有效性验证,该过程在保证客户端验证过程的安全性的基础上,不需要通过第三方平台对通信数据进行加密,解决了当前通过第三方平台对客户端验证所存在的实现成本高、验证过程复杂等技术问题,降低了客户端验证成本,简化了验证流程,加快了验证速度。
服务端对外提供网络服务通常是公开域名Domain Name而不是IP,客户端用域名进行请求的第一步是进行域名解析,即把Domain Name解析为对应的IP,默认提供网络服务的供应商会在底层自动提供该服务,然而一些恶意供应商等会返回一个错误、甚至有害的IP地址欺骗客户端,这个被称为DNS域名劫持。为了防止DNS劫持,客户端先往可靠的DNS服务器请求Domain Name对应的IP地址,接着直接请求该IP地址。但是在HTTPS机制下会有问题,因为HTTPS证书是服务端用Domain Name注册的,而客户端用IP直连,会被认为身份不正确,甚至可能会拒绝该请求。因此,本申请设计了Domain Name-IP策略,即在请求头的“Host”主机字段使用Domain Name而不是IP,让Server在做身份验证的时候使用请求头的“Host”。
图3是本申请实施例提供的通信请求管理方法的第二种流程示意图,请参阅图3,该通信请求管理方法包括以下步骤:
301:客户端获取客户端标识、客户端时间以及客户端密钥。
在一种实施例中,客户端获取客户端MAC地址作为客户端标识IDclient,客户端当前时间Tcurrent-client作为客户端时间Tclient,将客户端内存储的密钥K作为客户端密钥Kclient。
302:客户端对客户端标识、客户端时间以及客户端密钥进行哈希值计算生成签名,作为客户端验证参数。
在一种实施例中,本步骤可以通过签名算法等得到客户端标识、客户端时间以及客户端密钥对应的哈希值,作为客户端验证参数SIGclient:
SIGclient=generate Signature(IDclient,Tclient,Kclient);
其中,generate Signature是一种生成签名的算法或者函数等。
303:客户端生成通信请求。
在一种实施例中,本步骤包括:根据服务端的域名参数Domain Name,从DNS服务器获取服务端的通信地址IP;将域名参数Domain Name添加至通信请求的请求头中;将服务端的通信地址IP,作为通信请求的目标地址IP。例如,在通信请求的请求头的“Host”(主机)字段使用Domain Name而不是IP,对应的,服务端在进行通信请求验证时使用请求头的“Host”字段进行验证。这样即可以利用HTTPS进行数据加密传输,又在防止DNS劫持下提高了访问效率。
在一种实施例中,在通信请求Req的URL字段携带客户端标识IDclient,客户端时间Tclient,以及客户端验证参数SIGclient。
304:客户端向服务端发送通信请求。
在一种实施例中,客户端将通信请求Req发送到通信网络中,通信网络基于目标地址将该通信请求转发至对应的服务器。
305:服务端接收来自客户端的通信请求Req。
306:服务端解析通信请求,并进行时间验证。
在一种实施例中,服务端调用解析函数对通信请求Req进行解析:
suc(IDclient,Tclient,SIGclient)=parse Request(Req)
其中,sue为回调函数,parse Request为分析请求函数,本步骤对通信请求Req进行分析,若suc返回False(失败),则直接判定通信请求无效,返回验证失败,流程结束。
suc返回(IDclient,Tclient,SIGclient),则服务端获取服务端当前时间Tcurrent-server作为服务端时间参数Tserver,然后判断服务端时间参数与客户端时间参数之差是否大于时间阈值:
Tserver>Tclient+MAX_TIMESTAMP_INTERVAL?
其中,MAX_TIMESTAMP_INTERVAL为最大时间阈值。
若Tserver>Tclient+MAX_TIMESTAMP_INTERVAL,那么客户端时间参数没有通过有效性验证,直接判定通信请求无效,返回验证失败,流程结束。
若Tserver≤Tclient+MAX_TIMESTAMP_INTERVAL,那么客户端时间参数通过有效性验证,执行下一步骤。
307:服务端对通信请求进行签名验证。
在一种实施例中,服务端根据客户端标识,向图1c所示的密钥数据库发送读操作;接收密钥数据库基于读操作返回的服务端密钥。
在一种实施例中,参照图1d所示的密钥存储方法,若服务端时间参数Tserver位于Ti-s和Ti+1-s之间,则仅返回一个密钥Ki作为服务端密钥Kserver;若服务端时间参数Tserver位于Ti+1-s和Ti-e之间,则返回两个密钥Ki和Ki+1,分别作为第一服务端密钥Kserver-1和第二服务端密钥Kserver-2。
在一种实施例中,若服务端时间参数Tserver位于Ti-s和Ti+1-s之间,则仅存在一个服务端密钥Kserver,那么生成服务端验证参数SIGserver:
SIGserver=generate Signature(IDclient,Tclient,Kserver);
在一种实施例中,若服务端时间参数Tserver位于Ti+1-s和Ti-e之间,则存在两个服务端密钥Kserver-1和Kserver-2,那么生成第一服务端验证参数SIGserver-1和第二服务端验证参数SIGserver-2:
SIGserver-1=generate Signature(IDclient,Tclient,Kserver-1);
SIGserver-2=generate Signature(IDclient,Tclient,Kserver-2);
其中,generate Signature是步骤302使用的算法或者函数等。
在一种实施例中,若服务端时间参数Tserver位于Ti-s和Ti+1-s之间,仅存在一个服务端验证参数SIGserver,此时:
strEqual(SIGclient,SIGserver);
若服务端时间参数Tserver位于Ti+1-s和Ti-e之间,则存在两个服务端验证参数SIGserver-1和SIGserver-2,此时:
strEqual(SIGclient,SIGserver-1);
strEqual(SIGclient,SIGserver-2);
其中,strEqual为一种比对函数。
在一种实施例中,若strEqual(SIGclient,SIGserver)的结果为比对通过,则通信请求通过有效性验证,进入后续的逻辑层和数据层,若strEqual(SIGclient,SIGserver)的结果为比对未通过,则通信请求没有通过有效性验证,直接判定通信请求无效,返回验证失败,流程结束。
在一种实施例中,若strEqual(SIGclient,SIGserver-1)的结果为比对通过、和/或strEqual(SIGclient,SIGserver-2)的结果为比对通过,则通信请求通过有效性验证,进入后续的逻辑层和数据层,若strEqual(SIGclient,SIGserver-1)的结果为比对未通过且strEqual(SIGclient,SIGserver-2)的结果为比对未通过,则通信请求没有通过有效性验证,直接判定通信请求无效,返回验证失败,流程结束。
308:服务端根据通信请求,生成通信响应。
在一种实施例中,本步骤包括服务端确定最新密钥的步骤。
如图1d所示,在同一时刻Tserver,密钥数据库针对同一个客户端标识IDclient最多存储有两个密钥Ki和Ki+1,那么服务端确定最新密钥的步骤包括:
服务端判断客户端标识以及对应的旧密钥是否有效:
Expire(IDclient,kold)
其中,Expire为有效性判断函数。
此时,若Expire(IDclient,kold)的结果为kold无效,则生成kold无效标记,并将最新密钥设置为null(零值);
若Expire(IDclient,kold)的结果为kold有效,在密钥数据库中获取客户端标识IDclient对应的最新密钥:
knew=getLatestDynamicKey(IDclient)
其中,getLatestDynamicKey为在列表中查询密钥的查询函数等。
然后比对新密钥knew和旧密钥kold是否相同:
Equal(knew,kold);
若Equal(knew,kold)的结果为kold和knew相同,则生成kold有效标记,并将最新密钥设置为kold;例如在服务端时间参数Tserver位于Ti-s和Ti+1-s之间时,最新密钥为Ki;
若Equal(knew,kold)的结果为kold和knew不同,则生成更新标记,并将最新密钥设置为knew;例如在服务端时间参数Tserver位于Ti+1-s和Ti-e之间时,最新密钥为Ki+1。
在一种实施例中,将业务处理结果以及最新密钥knew添加在通信响应中。
309:服务端向客户端发送通信响应。
310:客户端解析通信响应,得到服务端密钥,并将服务端密钥作为客户端密钥存储在本地。
客户端解析通信响应得到服务端密钥knew,将其作为客户端密钥Kclient存储在本地。
本实施例提供一种具体的通信请求验证方案,该方案设计了一套算法简单、且安全可用的、基于动态密钥进行身份验证的方法,利用高可用的主备模式做动态密钥的灾备管理,大大提高了密钥管理的安全性;并且采用DomainName-IP策略解决HTTPS的IP直连问题,即可以利用HTTPS进行数据加密传输,又在防止DNS劫持下提高了访问效率。
现以客户端与DNS服务器之间基于HTTP(HyperText Transfer Protocol,超文本传输协议,一种通过计算机网络进行通信的传输协议)通信,客户端与服务端之间基于HTTPS通信为例对本申请进行进一步说明。
图4是本申请实施例提供的通信请求管理方法的第三种流程示意图,请参阅图4,该通信请求管理方法包括以下步骤:
401:客户端向DNS服务器发送IP地址请求。
客户端根据服务端的公开域名Domain Name,向DNS服务器发送IP地址请求。
402:DNS服务器查找IP地址。
DNS服务器根据存储的域名和IP地址的相互映射关系,确定服务端的公开域名Domain Name对应的IP地址。
403:DNS服务器向客户端发送IP地址。
DNS服务器将查询到的公开域名Domain Name对应的IP地址,通过网络传输层发送至客户端。
404:客户端生成签名。
在一种实施例中,客户端获取客户端MAC地址作为客户端标识IDclient,客户端当前时间Tcurrent-client作为客户端时间Tclient-0,将客户端内存储的初始密钥K0作为客户端密钥Kclient。
在一种实施例中,本步骤可以通过签名算法等得到客户端标识、客户端时间以及客户端密钥对应的哈希值,作为客户端验证参数SIGclient-0作为签名:
SIGclient-0=generate Signature(IDclient,Tclient-0,K0)。
405:客户端生成通信请求Req0。
在一种实施例中,客户端在通信请求的请求头的“Host”字段使用DomainName而不是IP,这样即可以利用HTTPS进行数据加密传输,又在防止DNS劫持下提高了访问效率。
在一种实施例中,在通信请求Req0的URL字段携带客户端标识IDclient,客户端时间Tclient-0,以及客户端验证参数SIGclient-0。
406:客户端向服务端发送通信请求Req0。
在一种实施例中,客户端基于通信网络中的TLS/SSL将通信请求Req0发送到至对应的服务端。
407:服务端对通信请求Req0进行证书验证。
在本实施例中,服务端对通信请求Req0的请求头的“Host”字段进行提取,得到通信请求Req0携带的Domain Name,然后服务端使用其根据公开域名注册的HTTPS证书对通信请求Req0携带的Domain Name进行验证,在通信请求Req0携带的Domain Name与服务端的公开域名相同时,通信请求Req0通过证书验证,在通信请求Req0携带的Domain Name与服务端的公开域名不同时,通信请求Req0没有通过证书验证,则直接判定通信请求Req0无效,返回验证失败,流程结束。
408:服务端对通信请求Req0进行时间验证。
在本实施例中,服务端调用解析函数对通信请求Req0进行解析:
suc(IDclient,Tclient-0,SIGclient-0)=parse Request(Req0)
其中,sue为回调函数,parse Request为分析请求函数,本步骤对通信请求Req0进行分析,若suc返回False(失败),则直接判定通信请求Req0无效,返回验证失败,流程结束。
suc返回(IDclient,Tclient-0,SIGclient-0),则服务端获取服务端当前时间Tcurrent-server作为服务端时间参数Tserver-0,然后判断服务端时间参数与客户端时间参数之差是否大于时间阈值:
Tserver-0>Tclient-0+MAX_TIMESTAMP_INTERVAL?
其中,MAX_TIMESTAMP_INTERVAL为最大时间阈值。
若Tserver-0>Tclient-0+MAX_TIMESTAMP_INTERVAL,那么客户端时间参数没有通过有效性验证,直接判定通信请求Req0无效,返回验证失败,流程结束。
若Tserver-0≤Tclient-0+MAX_TIMESTAMP_INTERVAL,那么客户端时间参数通过有效性验证,直接判定通信请求Req0有效,执行下一步骤。
409:服务端对通信请求Req0进行签名验证。
在本实施例中,服务端根据客户端标识,向图1c所示的密钥数据库发送读操作;接收密钥数据库基于读操作返回的服务端密钥。
参照图1d所示的密钥存储方法,由于该客户端与服务端是第一次通信,该客户端在密钥数据库内对应的密钥为初始密钥K0,确定密钥生成周期(例如60秒等)和重叠期(例如6秒等),然后生成该客户端对应的其他密钥,如K1和K2等。
在本实施例中,服务端时间参数Tserver位于T0-s和T1-s之间,则仅返回一个密钥K0作为服务端密钥Kserver,生成服务端验证参数SIGserver-0:
SIGserver-0=generate Signature(IDclient,Tclient-0,K0);
然后进行strEqual(SIGclient-0,SIGserver-0)比对;
若strEqual(SIGclient-0,SIGserver-0)的结果为比对通过,则通信请求Req0通过有效性验证,进入后续的逻辑层和数据层,若strEqual(SIGclient-0,SIGserver-0)的结果为比对未通过,则通信请求没有通过有效性验证,直接判定通信请求Req0无效,返回验证失败,流程结束。
410:服务端根据通信请求生成通信响应Res0。
在一种实施例中,服务端执行通信请求Req0之后,生成通信响应Res0;此时,服务端时间参数Tserver-0'位于T1-s和T0-e之间,服务端判断客户端标识以及对应的旧密钥是否有效:
Expire(IDclient,k0)
此时,若Expire(IDclient,k0)的结果为k0有效,在密钥数据库中获取客户端标识IDclient对应的最新密钥:
knew=getLatestDynamicKey(IDclient)=k1
然后比对Equal(k1,k0)是否相同:
此时,Equal(knew,kold)的结果为kold和knew不同,则生成更新标记,并将最新密钥设置为k1。
在一种实施例中,将业务处理结果以及最新密钥k1添加在通信响应Res0中。
411:服务端向客户端发送通信响应Res0。
412:客户端解析通信响应Res0,得到服务端密钥,并将服务端密钥作为客户端密钥存储在本地。
客户端解析通信响应得到服务端密钥k1,将其作为客户端密钥Kclient存储在本地,此时客户端内存储的密钥为k1。
413:客户端处理通信响应Res0,并生成通信请求Req1。
在本实施例中,客户端处理通信响应Res0之后,需要生成新的通信请求Req1。此时,获取客户端MAC地址作为客户端标识IDclient,客户端当前时间Tcurrent-client作为客户端时间Tclient-1,将客户端内存储的密钥K1作为客户端密钥Kclient。
在一种实施例中,本步骤可以通过签名算法等得到客户端标识、客户端时间以及客户端密钥对应的哈希值,作为客户端验证参数SIGclient-1作为签名:
SIGclient-1=generate Signature(IDclient,Tclient-1,K1)。
客户端在通信请求的请求头的“Host”字段使用Domain Name而不是IP,这样即可以利用HTTPS进行数据加密传输,又在防止DNS劫持下提高了访问效率。
在通信请求Req1的URL字段携带客户端标识IDclient,客户端时间Tclient-1,以及客户端验证参数SIGclient-1。
414:客户端向服务端发送通信请求Req1。
在一种实施例中,客户端基于通信网络中的TLS/SSL将通信请求Req1发送到至对应的服务端。
415:服务端对通信请求Req1进行验证。
在本实施例中,服务端首先对通信请求Req1的请求头的“Host”字段进行提取,得到通信请求Req1携带的Domain Name,然后服务端使用其根据公开域名注册的HTTPS证书对通信请求Req1携带的Domain Name进行验证,在通信请求Req1携带的Domain Name与服务端的公开域名相同时,通信请求Req1通过证书验证,在通信请求Req1携带的Domain Name与服务端的公开域名不同时,通信请求Req1没有通过证书验证,则直接判定通信请求Req1无效,返回验证失败,流程结束。
然后服务端对通信请求Req1进行时间验证。
在本实施例中,服务端调用解析函数对通信请求Req1进行解析:
suc(IDclient,Tclient-1,SIGclient-1)=parse Request(Req1)
其中,suc为回调函数,parse Request为分析请求函数,本步骤对通信请求Req1进行分析,若suc返回False(失败),则直接判定通信请求Req1无效,返回验证失败,流程结束。
suc返回(IDclient,Tclient-1,SIGclient-1),则服务端获取服务端当前时间Tcurrent-server作为服务端时间参数Tserver-1,然后判断服务端时间参数与客户端时间参数之差是否大于时间阈值:
Tserver-1>Tclient-1+MAX_TIMESTAMP_INTERVAL?
若Tserver-1>Tclient-1+MAX_TIMESTAMP_INTERVAL,那么客户端时间参数没有通过有效性验证,直接判定通信请求Req1无效,返回验证失败,流程结束。
若Tserver-1≤Tclient-1+MAX_TIMESTAMP_INTERVAL,那么客户端时间参数通过有效性验证,直接判定通信请求Req1有效,执行下一步骤。
最后服务端对通信请求Req1进行签名验证。
在本实施例中,服务端时间参数Tserver-1位于T0-e和T2-s之间,则仅返回一个密钥K1作为服务端密钥Kserver,生成服务端验证参数SIGserver-1:
SIGserver-1=generate Signature(IDclient,Tclient-1,K1);
然后进行strEqual(SIGclient-1,SIGserver-1)比对;
若strEqual(SIGclient-1,SIGserver-1)的结果为比对通过,则通信请求Req1通过有效性验证,进入后续的逻辑层和数据层,若strEqual(SIGclient-1,SIGserver-1)的结果为比对未通过,则通信请求Req1没有通过有效性验证,直接判定通信请求Req1无效,返回验证失败,流程结束。
416:服务端根据通信请求生成通信响应Res1。
在一种实施例中,服务端执行通信请求Req1之后,生成通信响应Res1;此时,服务端时间参数Tserver-1'位于T0-e和T2-s之间,服务端判断客户端标识以及对应的旧密钥是否有效:
Expire(IDclient,k1)
此时,若Expire(IDclient,k1)的结果为k1有效,在密钥数据库中获取客户端标识IDclient对应的最新密钥:
knew=getLatestDynamicKey(IDclient)=k1
然后比对Equal(k1,k1)是否相同:
此时,Equal(knew,kold)的结果为kold和knew相同,则生成kold有效标记,并将最新密钥设置为k1。
在一种实施例中,将业务处理结果以及最新密钥k1添加在通信响应Res1中。
417:服务端向客户端发送通信响应Res1。
418:客户端解析通信响应Res1,得到服务端密钥,并将服务端密钥作为客户端密钥存储在本地。
客户端解析通信响Res1应得到服务端密钥k1,将其作为客户端密钥Kclient存储在本地,此时客户端内存储的密钥为k1。
419:客户端处理通信响应Res1,并生成通信请求Req2。
在本实施例中,客户端处理通信响应Res1之后,需要生成新的通信请求Req2。此时,获取客户端MAC地址作为客户端标识IDclient,客户端当前时间Tcurrent-client作为客户端时间Tclient-2,将客户端内存储的密钥K1作为客户端密钥Kclient。
在一种实施例中,本步骤可以通过签名算法等得到客户端标识、客户端时间以及客户端密钥对应的哈希值,作为客户端验证参数SIGclient-2作为签名:
SIGclient-2=generate Signature(IDclient,Tclient-2,K1)。
客户端在通信请求的请求头的“Host”字段使用Domain Name而不是IP,这样即可以利用HTTPS进行数据加密传输,又在防止DNS劫持下提高了访问效率。
在通信请求Req2的URL字段携带客户端标识IDclient,客户端时间Tclient-2,以及客户端验证参数SIGclient-2。
420:客户端向服务端发送通信请求Req2。
在一种实施例中,客户端基于通信网络中的TLS/SSL将通信请求Req2发送到至对应的服务端。
421:服务端对通信请求Req2进行验证。
在本实施例中,服务端首先对通信请求Req2的请求头的“Host”字段进行提取,得到通信请求Req2携带的Domain Name,然后服务端使用其根据公开域名注册的HTTPS证书对通信请求Req2携带的Domain Name进行验证,在通信请求Req2携带的Domain Name与服务端的公开域名相同时,通信请求Req2通过证书验证,在通信请求Req2携带的Domain Name与服务端的公开域名不同时,通信请求Req2没有通过证书验证,则直接判定通信请求Req2无效,返回验证失败,流程结束。
然后服务端对通信请求Req2进行时间验证。
在本实施例中,服务端调用解析函数对通信请求Req2进行解析:
suc(IDclient,Tclient-2,SIGclient-2)=parse Request(Req2)
其中,sue为回调函数,parse Request为分析请求函数,本步骤对通信请求Req2进行分析,若sue返回False(失败),则直接判定通信请求Req2无效,返回验证失败,流程结束。
suc返回(IDclient,Tclient-2,SIGclient-2),则服务端获取服务端当前时间Tcurrent-server作为服务端时间参数Tserver-2,然后判断服务端时间参数与客户端时间参数之差是否大于时间阈值:
Tserver-2>Tclient-2+MAX_TIMESTAMP_INTERVAL?
若Tserver-2>Tclient-2+MAX_TIMESTAMP_INTERVAL,那么客户端时间参数没有通过有效性验证,直接判定通信请求Req2无效,返回验证失败,流程结束。
若Tserver-2≤Tclient-2+MAX_TIMESTAMP_INTERVAL,那么客户端时间参数通过有效性验证,直接判定通信请求Req2有效,执行下一步骤。
最后服务端对通信请求Req2进行签名验证。
在本实施例中,服务端时间参数Tserver-2位于T2-s和T1-e之间,则返回两个密钥K1和K2分别作为第一服务端密钥Kserver-2-1和第二服务端密钥Kserver-2-2,生成第一服务端验证参数SIGserver-2-1和第二服务端验证参数SIGserver-2-2:
SIGserver-2-1=generate Signature(IDclient,Tclient-2,Kserver-2-1);
SIGserver-2-2=generate Signature(IDclient,Tclient-2,Kserver-2-2);
然后分别进行strEqual(SIGclient-2,SIGserver-2-1)和strEqual(SIGclient-2,SIGserver-2-2)的比对;
若strEqual(SIGclient-2,SIGserver-2-1)的结果为比对通过、和/或strEqual(SIGclient-2,SIGserver-2-2)的结果为比对通过,则通信请求Req2通过有效性验证,进入后续的逻辑层和数据层;若strEqual(SIGclient-2,SIGserver-2-1)的结果为比对未通过且strEqual(SIGclient-2,SIGserver-2-2)的结果为比对未通过,则通信请求Req2没有通过有效性验证,直接判定通信请求Req2无效,返回验证失败,流程结束。
422:服务端根据通信请求生成通信响应。
在一种实施例中,服务端执行通信请求Req2之后,生成通信响应Res2;此时,服务端时间参数Tserver-2'位于T2-s和T1-e之间,服务端判断客户端标识以及对应的旧密钥是否有效:
Expire(IDclient,k1)
此时,若Expire(IDclient,k1)的结果为k1有效,在密钥数据库中获取客户端标识IDclient对应的最新密钥:
knew=getLatestDynamicKey(IDclient)=k2
然后比对Equal(k1,k2)是否相同:
此时,Equal(knew,kold)的结果为kold和knew不同,则生成更新标记,并将最新密钥设置为k2。
在一种实施例中,将业务处理结果以及最新密钥k2添加在通信响应Res2中。
423:服务端向客户端发送通信响应Res2。
424:客户端解析通信响应Res2,得到服务端密钥,并将服务端密钥作为客户端密钥存储在本地。
客户端解析通信响Res2应得到服务端密钥k2,将其作为客户端密钥Kclient存储在本地,此时客户端内存储的密钥为k2。
循环上述步骤,直至业务结束。
相应的,图5a是本申请实施例提供的通信请求管理装置的第一种结构示意图,请参阅图5a可知,该通信请求管理装置在服务端内包括以下模块:
接收模块501,用于接收来自客户端的通信请求;通信请求携带客户端验证参数以及通信参数,客户端验证参数为客户端根据客户端密钥以及通信参数生成的;
解析模块502,用于解析通信请求,得到客户端验证参数以及通信参数;
第一获取模块503,用于获取通信参数对应的服务端密钥;
第一处理模块504,用于根据服务端密钥以及通信标识,生成服务端验证参数;
验证模块505,用于根据服务端验证参数以及客户端验证参数,对通信请求进行有效性验证。
在一种实施例中,第一获取模块503用于根据客户端标识,向密钥数据库发送读操作;接收密钥数据库基于读操作返回的服务端密钥。
在一种实施例中,第一获取模块503还用于向密钥数据库发送写操作;写操作携带客户端标识以及密钥生命周期,用于指示密钥数据库的主机基于密钥生命周期生成客户端标识对应的服务端密钥。
在一种实施例中,解析模块502还用于获取服务端时间参数;根据服务端时间参数以及时间阈值,对客户端时间参数进行有效性验证;在客户端时间参数通过有效性验证时,获取服务端密钥。
在一种实施例中,解析模块502还用于从通信请求的请求头中获取域名参数;对域名参数进行有效性验证;在域名参数通过有效性验证时,解析通信请求。
在一种实施例中,服务端密钥包括第一服务端密钥和第二服务端密钥,第一处理模块504用于根据第一服务端密钥以及通信标识,生成第一服务端验证参数,根据第二服务端密钥以及通信标识,生成第二服务端验证参数;验证模块505用于使用第一服务端验证参数或者第二服务端验证参数,与客户端验证参数进行比对;若第一服务端验证参数或者第二服务端验证参数中的任一参数与客户端验证参数比对通过,则通信请求通过有效性验证。
在一种实施例中,该通信请求管理装置在服务端内还包括响应发送模块,用于根据通信请求,生成通信响应,通信响应携带服务端密钥,用于指示客户端将服务端密钥作为客户端密钥存储在本地;向客户端发送通信响应。
相应的,图5b是本申请实施例提供的通信请求管理装置的第二种结构示意图,请参阅图5b可知,该通信请求管理装置在客户端内包括以下模块:
第二获取模块506,用于获取通信参数以及客户端密钥;
第二处理模块507,用于根据通信参数以及客户端密钥,生成客户端验证参数;
构建模块508,用于生成通信请求,通信请求携带客户端验证参数以及通信参数;
发送模块509,用于向服务端发送通信请求。
在一种实施例中,构建模块508用于根据服务端的域名参数,获取服务端的通信地址;将域名参数添加至通信请求的请求头中;将服务端的通信地址,作为通信请求的目标地址。
在一种实施例中,该通信请求管理装置在客户端内还包括响应接受模块,用于接收服务端基于通信请求发送的通信响应;解析通信响应,得到服务端密钥;将服务端密钥作为客户端密钥存储在本地。
相应的,本申请实施例还提供一种终端,如图6所示,该终端可以包括射频(RF,Radio Frequency)电路601、包括有一个或一个以上计算机可读存储介质的存储器602、输入单元603、显示单元604、传感器605、音频电路606、无线保真(WiFi,Wireless Fidelity)模块607、包括有一个或者一个以上处理核心的处理器608、以及电源609等部件。本领域技术人员可以理解,图6中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
RF电路601可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器608处理;另外,将涉及上行的数据发送给基站。通常,RF电路601包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM,Subscriber Identity Module)卡、收发信机、耦合器、低噪声放大器(LNA,Low Noise Amplifier)、双工器等。此外,RF电路601还可以通过无线通信与网络和其他设备通信。无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GSM,Global System of Mobile communication)、通用分组无线服务(GPRS,GeneralPacket Radio Service)、码分多址(CDMA,Code Division Multiple Access)、宽带码分多址(WCDMA,Wideband Code Division Multiple Access)、长期演进(LTE,Long TermEvolution)、电子邮件、短消息服务(SMS,Short Messaging Service)等。
存储器602可用于存储软件程序以及模块,处理器608通过运行存储在存储器602的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器602可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器602可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器602还可以包括存储器控制器,以提供处理器608和输入单元603对存储器602的访问。
输入单元603可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元603可包括触敏表面以及其他输入设备。触敏表面,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面上或在触敏表面附近的操作),并根据预先设定的程式驱动相应的连接装置。在一实施例中,触敏表面可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器608,并能接收处理器608发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面。除了触敏表面,输入单元603还可以包括其他输入设备。具体地,其他输入设备可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元604可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元604可包括显示面板,在一实施例中,可以采用液晶显示器(LCD,Liquid CrystalDisplay)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器608以确定触摸事件的类型,随后处理器608根据触摸事件的类型在显示面板上提供相应的视觉输出。虽然在图6中,触敏表面与显示面板是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面与显示面板集成而实现输入和输出功能。
终端还可包括至少一种传感器605,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板的亮度,接近传感器可在终端移动到耳边时,关闭显示面板和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路606、扬声器,传声器可提供用户与终端之间的音频接口。音频电路606可将接收到的音频数据转换后的电信号,传输到扬声器,由扬声器转换为声音信号输出;另一方面,传声器将收集的声音信号转换为电信号,由音频电路606接收后转换为音频数据,再将音频数据输出处理器608处理后,经RF电路601以发送给比如另一终端,或者将音频数据输出至存储器602以便进一步处理。音频电路606还可能包括耳塞插孔,以提供外设耳机与终端的通信。
WiFi属于短距离无线传输技术,终端通过WiFi模块607可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块607,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器608是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器602内的软件程序和/或模块,以及调用存储在存储器602内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。在一实施例中,处理器608可包括一个或多个处理核心;优选的,处理器608可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器608中。
终端还包括给各个部件供电的电源609(比如电池),优选的,电源可以通过电源管理系统与处理器608逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源609还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端中的处理器608会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器602中,并由处理器608来运行存储在存储器602中的应用程序,从而实现各种功能:
获取通信参数以及客户端密钥;
根据通信参数以及客户端密钥,生成客户端验证参数;
生成通信请求,通信请求携带客户端验证参数以及通信参数;
向服务端发送通信请求。
相应的,本申请实施例还提供一种服务器,如图7所示,其示出了本申请实施例所涉及的服务器的结构示意图,具体来讲:
该服务器可以包括一个或者一个以上处理核心的处理器701、一个或一个以上计算机可读存储介质的存储器702、电源703和输入单元704等部件。本领域技术人员可以理解,图7中示出的服务器结构并不构成对服务器的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中:
处理器701是该服务器的控制中心,利用各种接口和线路连接整个服务器的各个部分,通过运行或执行存储在存储器702内的软件程序和/或模块,以及调用存储在存储器702内的数据,执行服务器的各种功能和处理数据,从而对服务器进行整体监控。可选的,处理器701可包括一个或多个处理核心;优选的,处理器701可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器701中。
存储器702可用于存储软件程序以及模块,处理器701通过运行存储在存储器702的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器702可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据服务器的使用所创建的数据等。此外,存储器702可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器702还可以包括存储器控制器,以提供处理器701对存储器702的访问。
服务器还包括给各个部件供电的电源703,优选的,电源703可以通过电源管理系统与处理器701逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源703还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
该服务器还可包括输入单元704,该输入单元704可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。
尽管未示出,服务器还可以包括显示单元等,在此不再赘述。具体在本实施例中,服务器中的处理器701会按照如下的指令,将一个或一个以上的应用程序的进程对应的可执行文件加载到存储器702中,并由处理器701来运行存储在存储器702中的应用程序,从而实现各种功能,如下:
接收来自客户端的通信请求;通信请求携带客户端验证参数以及通信参数,客户端验证参数为客户端根据客户端密钥以及通信参数生成的;
解析通信请求,得到客户端验证参数以及通信参数;
获取通信参数对应的服务端密钥;
根据服务端密钥以及通信标识,生成服务端验证参数;
根据服务端验证参数以及客户端验证参数,对通信请求进行有效性验证。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见上文的详细描述,此处不再赘述。
本领域普通技术人员可以理解,上述实施例的各种方法中的全部或部分步骤可以通过指令来完成,或通过指令控制相关的硬件来完成,该指令可以存储于一计算机可读存储介质中,并由处理器进行加载和执行。
为此,本申请实施例提供一种存储介质,其中存储有多条指令,该指令能够被处理器进行加载,以执行本申请实施例所提供的任一种方法中的步骤。例如,该指令可以执行如下步骤:
客户端获取通信参数以及客户端密钥,根据通信参数以及客户端密钥,生成客户端验证参数;
客户端生成通信请求,并向服务端发送通信请求,通信请求携带客户端验证参数以及通信参数;
服务端接收通信请求,解析通信请求,得到客户端验证参数以及通信参数;
服务端获取通信参数对应的服务端密钥,根据服务端密钥以及通信标识,生成服务端验证参数,并根据服务端验证参数以及客户端验证参数,对通信请求进行有效性验证。
以上各个操作的具体实施可参见前面的实施例,在此不再赘述。
其中,该存储介质可以包括:只读存储器(ROM,Read Only Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
由于该存储介质中所存储的指令,可以执行本申请实施例所提供的任一种方法中的步骤,因此,可以实现本申请实施例所提供的任一种方法所能实现的有益效果,详见前面的实施例,在此不再赘述。
以上对本申请实施例所提供的一种通信请求管理方法及装置、终端、服务器及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (13)
1.一种通信请求管理方法,其特征在于,包括:
接收来自客户端的通信请求;所述通信请求携带客户端验证参数以及通信参数,所述客户端验证参数为所述客户端根据客户端密钥以及所述通信参数生成的;
解析所述通信请求,得到所述客户端验证参数以及所述通信参数;
获取所述通信参数对应的服务端密钥;
根据所述服务端密钥以及所述通信标识,生成服务端验证参数;
根据所述服务端验证参数以及所述客户端验证参数,对所述通信请求进行有效性验证。
2.根据权利要求1所述的通信请求管理方法,其特征在于,所述通信参数包括客户端标识;所述获取所述通信参数对应的服务端密钥的步骤,包括:
根据所述客户端标识,向密钥数据库发送读操作;
接收所述密钥数据库基于所述读操作返回的服务端密钥。
3.根据权利要求2所述的通信请求管理方法,其特征在于,所述密钥数据库包括保活连接的主机和备机;所述通信请求管理方法还包括:
向所述密钥数据库发送写操作;所述写操作携带客户端标识以及密钥生命周期,用于指示所述密钥数据库的主机基于所述密钥生命周期生成所述客户端标识对应的服务端密钥。
4.根据权利要求1所述的通信请求管理方法,其特征在于,所述通信参数还包括客户端时间参数;在获取所述通信参数对应的服务端密钥的步骤之前,还包括:
获取服务端时间参数;
根据所述服务端时间参数以及时间阈值,对所述客户端时间参数进行有效性验证;
在所述客户端时间参数通过有效性验证时,获取所述服务端密钥。
5.根据权利要求1所述的通信请求管理方法,其特征在于,还包括:
根据所述通信请求,生成通信响应,所述通信响应携带服务端密钥,用于指示所述客户端将所述服务端密钥作为客户端密钥存储在本地;
向所述客户端发送所述通信响应。
6.根据权利要求1所述的通信请求管理方法,其特征在于,在接收来自客户端的通信请求的步骤之后,包括:
从所述通信请求的请求头中获取域名参数;
对所述域名参数进行有效性验证;
在所述域名参数通过有效性验证时,解析所述通信请求。
7.根据权利要求1至6任一项所述的通信请求管理方法,其特征在于,所述服务端密钥包括第一服务端密钥和第二服务端密钥;
根据所述服务端密钥以及所述通信标识,生成服务端验证参数的步骤包括:根据所述第一服务端密钥以及所述通信标识,生成第一服务端验证参数,根据所述第二服务端密钥以及所述通信标识,生成第二服务端验证参数;
根据所述服务端验证参数以及所述客户端验证参数,对所述通信请求进行有效性验证的步骤包括:使用所述第一服务端验证参数或者所述第二服务端验证参数,与所述客户端验证参数进行比对;若所述第一服务端验证参数或者所述第二服务端验证参数中的任一参数与所述客户端验证参数比对通过,则所述通信请求通过有效性验证。
8.一种通信请求管理方法,其特征在于,包括:
获取通信参数以及客户端密钥;
根据所述通信参数以及所述客户端密钥,生成客户端验证参数;
生成通信请求,所述通信请求携带客户端验证参数以及通信参数;
向服务端发送所述通信请求。
9.根据权利要求8所述的通信请求管理方法,其特征在于,所述生成通信请求的步骤,包括:
根据所述服务端的域名参数,获取所述服务端的通信地址;
将所述域名参数添加至所述通信请求的请求头中;
将所述服务端的通信地址,作为所述通信请求的目标地址。
10.根据权利要求8或9所述的通信请求管理方法,其特征在于,还包括:
接收所述服务端基于所述通信请求发送的通信响应;
解析所述通信响应,得到服务端密钥;
将所述服务端密钥作为客户端密钥存储在本地。
11.一种通信请求管理方法,其特征在于,包括:
客户端获取通信参数以及客户端密钥,根据所述通信参数以及所述客户端密钥,生成客户端验证参数;
所述客户端生成通信请求,并向服务端发送所述通信请求,所述通信请求携带客户端验证参数以及通信参数;
所述服务端接收所述通信请求,解析所述通信请求,得到所述客户端验证参数以及所述通信参数;
所述服务端获取所述通信参数对应的服务端密钥,根据所述服务端密钥以及所述通信标识,生成服务端验证参数,并根据所述服务端验证参数以及所述客户端验证参数,对所述通信请求进行有效性验证。
12.一种通信请求管理装置,其特征在于,包括:
接收模块,用于接收来自客户端的通信请求;所述通信请求携带客户端验证参数以及通信参数,所述客户端验证参数为所述客户端根据客户端密钥以及所述通信参数生成的;
解析模块,用于解析所述通信请求,得到所述客户端验证参数以及所述通信参数;
第一获取模块,用于获取所述通信参数对应的服务端密钥;
第一处理模块,用于根据所述服务端密钥以及所述通信标识,生成服务端验证参数;
验证模块,用于根据所述服务端验证参数以及所述客户端验证参数,对所述通信请求进行有效性验证。
13.一种通信请求管理装置,其特征在于,包括:
第二获取模块,用于获取通信参数以及客户端密钥;
第二处理模块,用于根据所述通信参数以及所述客户端密钥,生成客户端验证参数;
构建模块,用于生成通信请求,所述通信请求携带客户端验证参数以及通信参数;
发送模块,用于向服务端发送所述通信请求。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910904785.8A CN111193585B (zh) | 2019-09-24 | 2019-09-24 | 通信请求管理方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910904785.8A CN111193585B (zh) | 2019-09-24 | 2019-09-24 | 通信请求管理方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111193585A true CN111193585A (zh) | 2020-05-22 |
CN111193585B CN111193585B (zh) | 2021-11-30 |
Family
ID=70709018
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910904785.8A Active CN111193585B (zh) | 2019-09-24 | 2019-09-24 | 通信请求管理方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111193585B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966287A (zh) * | 2021-03-30 | 2021-06-15 | 建信金融科技有限责任公司 | 获取用户数据的方法、系统、设备和计算机可读介质 |
CN113225179A (zh) * | 2021-04-07 | 2021-08-06 | 卡斯柯信号有限公司 | 一种列车控制器的加密方法 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102333280A (zh) * | 2011-09-26 | 2012-01-25 | 中兴通讯股份有限公司 | 一种业务密钥更新的方法、系统及业务处理服务器 |
US20120140928A1 (en) * | 2010-12-07 | 2012-06-07 | Motorola, Inc. | Method and apparatus for extending a key-management protocol |
CN104980445A (zh) * | 2015-07-02 | 2015-10-14 | 郑州悉知信息技术有限公司 | 一种通信验证方法、装置及系统 |
CN105634737A (zh) * | 2014-10-31 | 2016-06-01 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、终端及其系统 |
CN105915342A (zh) * | 2016-07-01 | 2016-08-31 | 广州爱九游信息技术有限公司 | 一种应用程序通信处理系统、设备、装置及方法 |
CN108055233A (zh) * | 2017-10-30 | 2018-05-18 | 北京智芯微电子科技有限公司 | 一种安全芯片的多算法处理方法及装置 |
US20180167218A1 (en) * | 2016-12-13 | 2018-06-14 | Nxp B.V. | Legitimacy verification of a node in a distributed network |
CN108574569A (zh) * | 2017-03-08 | 2018-09-25 | 中国移动通信有限公司研究院 | 一种基于量子密钥的认证方法及认证装置 |
CN109936552A (zh) * | 2017-12-19 | 2019-06-25 | 方正国际软件(北京)有限公司 | 一种密钥认证方法、服务器及系统 |
-
2019
- 2019-09-24 CN CN201910904785.8A patent/CN111193585B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120140928A1 (en) * | 2010-12-07 | 2012-06-07 | Motorola, Inc. | Method and apparatus for extending a key-management protocol |
CN102333280A (zh) * | 2011-09-26 | 2012-01-25 | 中兴通讯股份有限公司 | 一种业务密钥更新的方法、系统及业务处理服务器 |
CN105634737A (zh) * | 2014-10-31 | 2016-06-01 | 腾讯科技(深圳)有限公司 | 一种数据传输方法、终端及其系统 |
CN104980445A (zh) * | 2015-07-02 | 2015-10-14 | 郑州悉知信息技术有限公司 | 一种通信验证方法、装置及系统 |
CN105915342A (zh) * | 2016-07-01 | 2016-08-31 | 广州爱九游信息技术有限公司 | 一种应用程序通信处理系统、设备、装置及方法 |
US20180167218A1 (en) * | 2016-12-13 | 2018-06-14 | Nxp B.V. | Legitimacy verification of a node in a distributed network |
CN108574569A (zh) * | 2017-03-08 | 2018-09-25 | 中国移动通信有限公司研究院 | 一种基于量子密钥的认证方法及认证装置 |
CN108055233A (zh) * | 2017-10-30 | 2018-05-18 | 北京智芯微电子科技有限公司 | 一种安全芯片的多算法处理方法及装置 |
CN109936552A (zh) * | 2017-12-19 | 2019-06-25 | 方正国际软件(北京)有限公司 | 一种密钥认证方法、服务器及系统 |
Non-Patent Citations (2)
Title |
---|
QIAN LIU ECT.: "A Routing Scheme for Bulk Data Transfers in Multi-domain OCS Networks with Assistive Storage", 《IEEE》 * |
李璐璐,董庆宽,陈萌萌: "基于云的轻量级RFID群组标签认证协议", 《计算机科学》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112966287A (zh) * | 2021-03-30 | 2021-06-15 | 建信金融科技有限责任公司 | 获取用户数据的方法、系统、设备和计算机可读介质 |
CN113225179A (zh) * | 2021-04-07 | 2021-08-06 | 卡斯柯信号有限公司 | 一种列车控制器的加密方法 |
Also Published As
Publication number | Publication date |
---|---|
CN111193585B (zh) | 2021-11-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110830463B (zh) | 第三方授权登录方法和装置 | |
CN106686070B (zh) | 一种数据库数据迁移方法、装置、终端及系统 | |
CN111193695B (zh) | 一种第三方账号登录的加密方法、装置及存储介质 | |
US11057376B2 (en) | Method, apparatus, and system for controlling intelligent device, and storage medium | |
WO2018157858A1 (zh) | 信息存储方法、装置及计算机可读存储介质 | |
CN110198301B (zh) | 一种服务数据获取方法、装置及设备 | |
CN107395343A (zh) | 证书管理方法及系统 | |
CN107979461B (zh) | 秘钥找回方法、装置、终端、秘钥托管服务器及可读介质 | |
WO2020164526A1 (zh) | 一种分布式系统中的节点控制方法和相关装置 | |
WO2015090248A1 (zh) | 服务器的过载保护方法及装置 | |
CN109039989B (zh) | 地址解析协议欺骗检测方法、主机及计算机可读存储介质 | |
CN113037741B (zh) | 一种鉴权方法、鉴权装置、计算机设备及存储介质 | |
CN112153032B (zh) | 一种信息处理方法、装置、计算机可读存储介质及系统 | |
CN111478849B (zh) | 业务访问方法、装置和存储介质 | |
CN110335386B (zh) | 一种身份验证方法、装置、终端以及存储介质 | |
CN109088844B (zh) | 信息拦截方法、终端、服务器及系统 | |
WO2017067369A1 (zh) | 一种加密图片、解密图片的方法、装置和设备 | |
CN111193585B (zh) | 通信请求管理方法及装置 | |
CN104580177A (zh) | 资源提供方法、装置和系统 | |
CN104702678B (zh) | 文件传输方法及装置 | |
CN105306244B (zh) | 路由器管理方法、系统及设备 | |
CN111193636A (zh) | 测试单机可用性的方法及装置 | |
CN117411655A (zh) | 一种设备解密控制方法、装置、电子设备和存储介质 | |
CN108737341B (zh) | 业务处理方法、终端及服务器 | |
CN113746909A (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 |