CN109510711B - 一种网络通信方法、服务器、客户端及系统 - Google Patents
一种网络通信方法、服务器、客户端及系统 Download PDFInfo
- Publication number
- CN109510711B CN109510711B CN201910016548.8A CN201910016548A CN109510711B CN 109510711 B CN109510711 B CN 109510711B CN 201910016548 A CN201910016548 A CN 201910016548A CN 109510711 B CN109510711 B CN 109510711B
- Authority
- CN
- China
- Prior art keywords
- client
- server
- data
- key
- authentication
- 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
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3263—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving certificates, e.g. public key certificate [PKC] or attribute certificate [AC]; Public key infrastructure [PKI] arrangements
-
- 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/0823—Network architectures or network communication protocols for network security for authentication of entities using certificates
-
- 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/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- 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/0625—Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
-
- 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/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0838—Key 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
Abstract
本发明公开了一种网络通信方法、服务器、客户端及系统,该方法的步骤包括:接收客户端传入的客户端证书;通过预设的根公钥对客户端证书进行验签,当验签通过时保存客户端证书中的客户端公钥;生成服务器认证数据,并将服务器认证数据发送至客户端,以接收客户端利用客户端私钥对服务器认证数据进行签名生成的客户端认证签名;通过客户端公钥验签客户端认证签名,当对客户端认证签名的验签通过时,将客户端设置为认证可信状态。本方法实现了服务器对向其上传工作数据的客户端的可信认证,进而确保了服务器接收客户端上传的工作数据的可靠性。此外,本方法还提供一种服务器、客户端及通信认证系统,有益效果同上所述。
Description
技术领域
本发明涉及数据通信领域,特别是涉及一种网络通信方法、服务器、客户端及系统。
背景技术
设备之间的通信需要建立在设备间数据传输的基础上,为了防止设备间传输的数据被第三方设备拦截并进行恶意篡改,会对数据实施加密操作。当前所采用的一种加密方式为对称加密,即设备之间通信时对数据进行加密以及解密所使用密钥相同,但是在设备之间通信前,需要将密钥通过网络传输,因此安全性不高,为了解决对称加密存在的安全性问题,非对称加密应运而生,非对称加密使用了一对密钥,即公钥与私钥,设备的私钥对外保密,公钥对外公开,发送数据的发送端设备采用自身的私钥对原数据加密并将加密数据发送至接收端设备,接收加密数据的接收端设备采用发送端设备的公钥对加密数据进行解密以获取发送端设备的原数据。
在当前的应用场景中,服务器往往需要接收客户端中应用软件上传的工作数据,并对工作数据进行相应的统计及分析,由于工作数据反映的是应用程序的真是工作状态,因此需要保证向服务器上传工作数据的客户端是可信的客户端,以此确保工作数据的可靠性。
由此可见,提供一种网络通信方法,以实现服务器对向其上传工作数据的客户端的可信认证,进而确保服务器接收客户端上传的工作数据的可靠性,是本领域技术人员亟待解决的问题。
发明内容
本发明的目的是提供一种网络通信方法、服务器、客户端及系统,以实现服务器对向其上传工作数据的客户端的可信认证,进而确保服务器接收客户端上传的工作数据的可靠性。
为解决上述技术问题,本发明提供一种网络通信方法,应用于服务器,方法包括:
接收客户端传入的客户端证书;其中,客户端证书包含自定义客户端数据以及经根私钥对自定义客户端数据进行签名生成的客户端签名数据,自定义客户端数据中包含客户端公钥;
通过预设的根公钥对客户端证书进行验签,当验签通过时保存客户端证书中的客户端公钥;其中根公钥与根私钥为相应的非对称密钥对;
生成服务器认证数据,并将服务器认证数据发送至客户端,以接收客户端利用客户端私钥对服务器认证数据进行签名生成的客户端认证签名;
通过客户端公钥验签客户端认证签名,当对客户端认证签名的验签通过时,将客户端设置为认证可信状态。
优选的,方法还包括:
向客户端上传服务器证书,以供客户端验签服务器证书并获取服务器证书中的服务器公钥;其中,服务器证书包含自定义服务器数据以及通过根私钥对自定义服务器数据进行签名生成的服务器签名数据,自定义服务器数据中包含服务器公钥;
接收由客户端传入的客户端认证数据,并通过服务器私钥对客户端认证数据进行签名生成服务器认证签名;
将服务器认证签名发送至客户端,以供客户端根据服务器认证签名完成通信认证。
优选的,在生成服务器认证数据之前,该方法进一步包括:
生成对应的临时服务器公钥以及临时服务器私钥;
相应的,服务器认证数据具体为临时服务器公钥,以供客户端根据ECDH密钥协商算法将临时服务器公钥及客户端预先生成的临时客户端私钥共同转化为协商密钥,并通过协商密钥对原始工作数据进行DES加密,生成加密工作数据以与服务器通信;
相应的,客户端认证数据具体为客户端预先生成的临时客户端公钥;
相应的,在将客户端设置为认证可信状态后,方法还包括:
通过ECDH密钥协商算法将临时客户端公钥以及临时服务器私钥共同转化为协商密钥,以通过协商密钥将客户端传入的加密工作数据解密为原始工作数据。
优选的,自定义客户端数据中还包含客户端的唯一标识。
优选的,客户端的唯一标识具体为客户端的硬件设备序列号。
优选的,客户端和/或服务器预设有安全芯片,且均通过安全芯片存储及使用密钥。
此外,本发明还提供一种网络通信方法,应用于客户端,方法包括:
向服务器上传客户端证书,以供客户端验签客户端证书并获取客户端证书中的客户端公钥;其中,客户端证书包含自定义客户端数据以及经根私钥对自定义客户端数据进行签名生成的客户端签名数据,自定义客户端数据中包含客户端公钥;
接收由服务器传入的服务器认证数据,并通过客户端私钥对服务器认证数据进行签名生成客户端认证签名;
将客户端认证签名发送至服务器,以供服务器根据客户端认证签名完成通信认证。
优选的,方法还包括:
接收服务器传入的服务器证书;其中,服务器证书包含自定义服务器数据以及通过根私钥对自定义服务器数据进行签名生成的服务器签名数据,自定义服务器数据中包含服务器公钥;
通过预设的根公钥对服务器证书进行验签,当验签通过时保存服务器证书中的服务器公钥;其中根公钥与根私钥为相应的非对称密钥对;
生成客户端认证数据,并将客户端认证数据发送至服务器,以接收服务器利用服务器私钥对客户端认证数据进行签名生成的服务器认证签名;
通过服务器公钥验签服务器认证签名,当对服务器认证签名的验签通过时,将服务器设置为认证可信状态。
优选的,在生成客户端认证数据之前,该方法进一步包括:
生成对应的临时客户端公钥以及临时客户端私钥;
相应的,客户端认证数据具体为临时客户端公钥,以供服务器根据ECDH密钥协商算法将临时客户端公钥及服务器预先生成的临时服务器私钥共同转化为协商密钥,并通过协商密钥对客户端传入的加密工作数据进行DES解密获取原始工作数据。
相应的,在将服务器设置为认证可信状态后,方法还包括:
通过ECDH密钥协商算法将临时服务器公钥以及临时客户端私钥共同转化为协商密钥,以接收数据终端发送的第一数据,利用协商密钥将第一数据加密后发送给服务器;以及接收服务器发送的第二数据,利用协商密钥将第二数据解密后,发送给数据终端。
此外,本发明还提供一种服务器,服务器包括存储器、处理器以及总线,存储器上存储有可通过总线传输至处理器,并在处理器上运行的网络通信程序,网络通信程序被处理器执行时实现如上述的应用于服务器的网络通信方法。
优选的,服务器为组成CDN网络或者区块链网络的节点。
此外,本发明还提供一种客户端,客户端包括存储器和处理器,存储器上存储有可通过总线传输至处理器,并在处理器上运行的网络通信程序,网络通信程序被处理器执行时实现如上述的应用于客户端的网络通信方法。
此外,本发明还提供一种通信认证系统,系统包括:
服务器,用于接收客户端传入的客户端证书;其中,客户端证书包含自定义客户端数据以及通过根私钥对自定义客户端数据进行签名生成的客户端签名数据,自定义客户端数据中包含客户端公钥;通过预设的根公钥对客户端证书进行验签,当验签通过时保存客户端证书中的客户端公钥;其中根公钥与根私钥为相应的非对称密钥对;生成服务器认证数据,并将服务器认证数据发送至客户端,以接收客户端利用客户端私钥对服务器认证数据进行签名生成的客户端认证签名;通过客户端公钥验签客户端认证签名,当对客户端认证签名的验签通过时,将客户端设置为认证可信状态;
客户端,用于向服务器上传客户端证书,以供客户端验签客户端证书并获取客户端证书中的客户端公钥;其中,客户端证书包含自定义客户端数据以及通过根私钥对自定义客户端数据进行签名生成的客户端签名数据,自定义客户端数据中包含客户端公钥;接收由服务器传入的服务器认证数据,并通过客户端私钥对服务器认证数据进行签名生成客户端认证签名;将客户端认证签名发送至服务器,以供服务器根据客户端认证签名完成通信认证。
优选的,系统还包括:
数据终端,用于向客户端发送第一数据;
相应的,客户端还用于接收数据终端发送的第一数据,利用预先生成的协商密钥将第一数据加密后发送给服务器;以及接收服务器发送的第二数据,利用协商密钥将第二数据解密后,发送给数据终端。
此外,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有网络通信程序,网络通信程序可被一个或者多个处理器执行,以实现如上述的应用于服务器的网络通信方法或实现如上述应用于客户端的网络通信方法。
此外,本发明还提供一种计算机程序产品,包括计算机指令,当其在计算机上运行时,使得计算机可以执行上述的应用于服务器的网络通信方法或实现如上述应用于客户端的网络通信方法。
本发明所提供的网络通信方法,首先由服务器接收客户端传入的含自定义客户端数据以及通过根私钥对所述自定义客户端数据进行签名生成的客户端签名数据的客户端证书,其中,自定义客户端数据至少包含有客户端公钥,进而服务器通过与根私钥对应的根公钥对该客户端证书进行验签,当验签通过时保存客户端证书中的客户端公钥,进而生成服务器认证数据,并将服务器认证数据发送至客户端,以接收通过客户端私钥对该服务器认证数据进行签名生成的客户端认证签名,进而通过保存的客户端公钥验签客户端认证签名,当对所述客户端认证签名的验签通过时,将所述客户端设置为认证可信状态。本方法中服务器通过根公钥对客户端证书进行验签,以此确保客户端所使用的客户端证书能够被服务器解析,即服务器与客户端之间使用相同的根公钥以及根私钥,进而在此基础上,服务器进一步通过向客户端发送服务器认证数据,并接收客户端返回的客户端认证签名,进而通过本地保存的客户端公钥验签所述客户端认证签名,以此判定客户端签名所使用的客户端私钥与服务器本地保存的客户端公钥是否对应,当服务器对所述客户端认证签名的验签通过时,即客户端签名所使用的客户端私钥与服务器本地保存的客户端公钥对应时,则将所述客户端设置为认证可信状态,以此完成认证。本方法通过判定客户端的客户端证书中的客户端公钥与客户端使用的客户端私钥之间是否对应,实现了服务器对向其上传工作数据的客户端的可信认证,进而确保了服务器接收客户端上传的工作数据的可靠性。此外,本方法还提供一种服务器、客户端及通信认证系统,有益效果同上所述。
附图说明
为了更清楚地说明本发明实施例,下面将对实施例中所需要使用的附图做简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例提供的一种应用于服务器端的网络通信方法的流程图;
图2为本发明实施例提供的另一种应用于服务器端的网络通信方法的流程图;
图3为本发明实施例提供的一种应用于客户端的网络通信方法的流程图;
图4为本发明实施例提供的一种服务器的结构图;
图5为本发明实施例提供的一种通信认证系统的示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的实施例能够以除了在这里图示或描述的内容以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
需要说明的是,在本发明中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本发明要求的保护范围之内。
实施例一
本发明提供一种应用于服务器的网络通信方法。
参照图1,图1为本发明实施例提供的一种应用于服务器端的网络通信方法的流程图。
在实施例一中,该方法包括:
步骤S10:接收客户端传入的客户端证书。
其中,客户端证书包含自定义客户端数据以及经根私钥对自定义客户端数据进行签名生成的客户端签名数据,自定义客户端数据中包含客户端公钥。
需要说明的是,本方法的执行主体为服务器,本步骤中服务器接收与其通信的客户端传入的客户端证书,其中,客户端证书包含自定义客户端数据以及通过根私钥对自定义客户端数据进行签名并生成的客户端签名数据,自定义客户端数据中至少应包含有客户端公钥,即客户端在非对称加密时所使用的公钥。
另外,根私钥和根公钥是预先生成的,其中根私钥需要单独保存,可以保存在特定设备中,目的是确保根私钥的绝对保密;可利用特定设备通过根私钥对自定义客户端数据进行签名得到客户端签名数据,客户端保存该客户端签名数据,由于通过私钥对数据进行签名是本领域技术人员公知的操作内容,故在此不做赘述。
步骤S11:通过预设的根公钥对客户端证书进行验签,当验签通过时保存客户端证书中的客户端公钥。
其中根公钥与根私钥为相应的非对称密钥对。
需要说明的是,本步骤中的根公钥与根私钥是相对应的非对称密钥对,根公钥与根私钥均为预先生成,通过预设的根公钥对客户端证书进行验签,目的是判定客户端传入的客户端证书是否被篡改,即客户端证书是否可用。
通过预设的根公钥对客户端证书进行验签的具体步骤包括:
通过预设的根公钥对客户端证书中的客户端签名数据进行解密,生成目标自定义客户端数据;
比对客户端证书中的自定义客户端数据与目标自定义客户端数据之间的一致性,当客户端证书中的自定义客户端数据与目标自定义客户端数据一致时,则客户端证书的内容未被篡改,即验签通过。
在对客户端证书进行验签完成,并且验签通过时,服务器将客户端证书中的客户端公钥进行保存,以供后续使用。
步骤S12:生成服务器认证数据,并将服务器认证数据发送至客户端,以接收客户端利用客户端私钥对服务器认证数据进行签名生成的客户端认证签名。
本步骤中,生成服务器认证数据并将服务器认证数据发送至客户端,进而客户端利用客户端私钥对服务器认证数据进行签名生成客户端认证签名,并将客户端认证签名返回至服务器。由于客户端认证签名是由客户端私钥对服务器认证数据进行的签名,因此能够通过客户端私钥对应的客户端公钥对客户端认证签名进行解密,以此获取到原有的服务器认证数据。
步骤S13:通过客户端公钥验签客户端认证签名,当对客户端认证签名的验签通过时,将客户端设置为认证可信状态。
本步骤的重点在于,通过客户端公钥对客户端认证签名进行验签,目的是判定服务器中保存的客户端公钥能否解密客户端认证签名,如果客户端公钥能够解密客户端认证签名,并且获得到与服务器认证数据一致的结果数据时,则说明服务器中的客户端公钥与客户端自身签名数据时使用的客户端私钥是相应的非对称密钥对,即客户端证书以及客户端证书中的客户端公钥均为该客户端段所有,因此客户端并未对客户端证书进行篡改以及盗用,能够确保客户端为可信状态的客户端,进而本步骤当对客户端认证签名的验签通过时,将客户端设置为认证可信状态,以此完成服务器对于客户端的认证。
本发明所提供的网络通信方法,首先由服务器接收客户端传入的含自定义客户端数据以及通过根私钥对所述自定义客户端数据进行签名生成的客户端签名数据的客户端证书,其中,自定义客户端数据至少包含有客户端公钥,进而服务器通过与根私钥对应的根公钥对该客户端证书进行验签,当验签通过时保存客户端证书中的客户端公钥,进而生成服务器认证数据,并将服务器认证数据发送至客户端,以接收通过客户端私钥对该服务器认证数据进行签名生成的客户端认证签名,进而通过保存的客户端公钥验签客户端认证签名,当对所述客户端认证签名的验签通过时,将所述客户端设置为认证可信状态。本方法中服务器通过根公钥对客户端证书进行验签,以此确保客户端所使用的客户端证书能够被服务器解析,即服务器与客户端之间使用相同的根公钥以及根私钥,进而在此基础上,服务器进一步通过向客户端发送服务器认证数据,并接收客户端返回的客户端认证签名,进而通过本地保存的客户端公钥验签所述客户端认证签名,以此判定客户端签名所使用的客户端私钥与服务器本地保存的客户端公钥是否对应,当服务器对所述客户端认证签名的验签通过时,即客户端签名所使用的客户端私钥与服务器本地保存的客户端公钥对应时,则将所述客户端设置为认证可信状态,以此完成认证。本方法通过判定客户端的客户端证书中的客户端公钥与客户端使用的客户端私钥之间是否对应,实现了服务器对向其上传工作数据的客户端的可信认证,进而确保了服务器接收客户端上传的工作数据的可靠性。
实施例二
在上述实施例的基础上,本发明还提供以下一系列优选的实施方式。
参照图2,图2为本发明实施例提供的另一种应用于服务器端的网络通信方法的流程图。
作为一种优选的实施方式,本方法还包括:
步骤S20:向客户端上传服务器证书,以供客户端验签服务器证书并获取服务器证书中的服务器公钥。
其中,服务器证书包含自定义服务器数据以及通过根私钥对自定义服务器数据进行签名生成的服务器签名数据,自定义服务器数据中包含服务器公钥。
需要说明的是,本实施方式的具体内容是服务器响应客户端对其的可信认证。首先服务器将自身的服务器整数上传至与其通信的客户端,进而客户端通过其自身的根公钥对服务器整数进行验签并获取到服务器证书中的服务器公钥。
步骤S21:接收由客户端传入的客户端认证数据,并通过服务器私钥对客户端认证数据进行签名生成服务器认证签名。
本步骤是接收由客户端生成并传入的客户端认证数据,进而通过服务器自身的服务器私钥对客户端认证数据进行签名生成服务器认证签名,由于通过私钥对数据进行签名为本领域技术人员公知的内容,因此在此不做赘述。
步骤S22:将服务器认证签名发送至客户端,以供客户端根据服务器认证签名完成通信认证。
本步骤中服务器将服务器认证签名发送至客户端,客户端在接收到服务器认证签名后,对服务器认证签名进行相应的通信认证。
本实施方式中,重点在于服务器通过自身的服务器私钥对客户端传入的客户端认证数据进行签名,以此获取根据服务器私钥生成的服务器认证签名,进而服务器认证签名能够表征服务器的具体身份,因此服务器将服务器认证签名发送至客户端,客户端即可以根据服务器认证签名分析获悉服务器的身份,以此完成对服务器的认证,本实施方式以此实现了服务器对于客户端对服务器进行认证时的响应。本实施方式在服务器认证客户端的基础上进一步实现了,客户端对于服务器的认证,以此实现了客户端与服务器之间的双向认证。
在上述实施方式的基础上,作为一种优选的实施方式,在生成服务器认证数据之前,该方法进一步包括:
生成对应的临时服务器公钥以及临时服务器私钥;
相应的,服务器认证数据具体为临时服务器公钥,以供客户端根据ECDH密钥协商算法将临时服务器公钥及客户端预先生成的临时客户端私钥共同转化为协商密钥,并通过协商密钥对原始工作数据进行DES加密,生成加密工作数据以与服务器通信;
相应的,客户端认证数据具体为客户端预先生成的临时客户端公钥;
相应的,在将客户端设置为认证可信状态后,方法还包括:
通过ECDH密钥协商算法将临时客户端公钥以及临时服务器私钥共同转化为协商密钥,以通过协商密钥将客户端传入的加密工作数据解密为原始工作数据。
需要说明的是,在本实施方式中,服务器在生成服务器认证数据之前,首先生成对应的临时服务器公钥以及临时服务器私钥,在此基础上,服务器向客户端发送的服务器认证数据具体为临时服务器公钥,并且服务器保存服务器公钥对应的临时服务器私钥,客户端在接收到临时服务器公钥后,通过客户端私钥将临时服务器公钥签名为客户端认证签名并返回至服务器,在服务器验签客户端认证签名通过后,即服务器设置客户端的状态为认证可信状态后,服务器通过ECDH密钥协商算法将临时客户端公钥以及临时服务器私钥共同转化为协商密钥,以通过协商密钥将客户端传入的加密工作数据解密为原始工作数据;
相应的,客户端在生成客户端认证数据之前,首先生成对应的临时客户端公钥以及临时客户端私钥,在此基础上,客户端向服务器发送的客户端认证数据具体为临时客户端公钥,并且客户端保存临时客户端公钥对应的临时客户端私钥,服务器在接收到临时客户端公钥后,
通过服务器私钥将临时客户端公钥签名为服务器认证签名并返回至客户端,在客户端验签服务器认证签名通过后,即客户端设置服务器的状态为认证可信状态后,客户端通过ECDH密钥协商算法将临时服务器公钥以及临时客户端私钥共同转化为协商密钥,以通过协商密钥对原始工作数据进行DES加密,生成加密工作数据并上传至服务器以与服务器通信。
在服务器与客户端均生成相同的协商密钥后,客户端能够以协商密钥对上传的原始工作数据进行DES的对称加密,并将加密后的加密工作数据上传至服务器,以供服务器通过协商密钥对加密工作数据进行解密操作,获取原始工作数据并进行后续的统计分析。当客户端向服务器上传的原始工作数据的数据量超过预设值时,客户端可以提取原始工作数据的原始Hash值,并通过协商密钥对该原始Hash值进行加密生成加密Hash值,进而将加密Hash值以及原始工作数据发送至服务器,以供服务器通过协商密钥对加密Hash值进行解密,获取原始Hash值,并对原始工作数据进行Hash运算,获取当前Hash值,进而进行原始Hash值与当前Hash值之间的比对,当比对结果一致时,则判定原始工作数据可用;当比对结果不一致时,判定原始工作数据发生改变,不可用。
本实施方式通过ECDH密钥协商算法生成服务器与客户端之间的协商密钥,能够确保服务器与客户端之间进行数据传输所使用的密钥仅能够由相通信的服务器以及客户端获悉,以此确保了客户端向服务器上传数据时的整体安全性。
此外,作为一种优选的实施方式,自定义客户端数据中还包含客户端的唯一标识。
由于考虑到,在实际应用场景中,往往是多个客户端同时向客户端上传工作数据,因此极易存在服务器无法辨别各个客户端身份的情况,可能造成服务器对工作数据的统计出现错误的情况,因此为了确保服务器能够明确区分各个与其通信的客户端,本实施方式的客户端证书中,自定义客户端数据中还包含客户端的唯一标识,以此在服务器对客户端证书的验签成功后,除了能够获取到客户端证书中的客户端公钥,还能够获取到表征客户端身份的唯一标识,进而服务器能够明确辨别多个与自身通信的客户端之间的身份,相对提高了服务器接收客户端上传的工作数据的准确性。
在上述实施方式的基础上,作为一种优选的实施方式,客户端的唯一标识具体为客户端的硬件设备序列号。
由于考虑到相比于随机生成的标识,由于受到随机种子的限制,仍然有可能存在标识重复的情况,相比于随机数而言,客户端的硬件设备序列号是在客户端硬件设备出厂时即唯一表征相应的硬件设备,因此各个客户端之间的硬件设备序列号均不相同,进而本实施方式将客户端的硬件设备序列号设置为客户端的唯一标识,能够最大程度的确保与服务器通信的客户端之间的唯一性。
此外,作为一种优选的实施方式,客户端和/或服务器预设有安全芯片,且均通过安全芯片存储及使用密钥。
需要说明的是,本实施方式中的密钥是进行签名、验签或加密、解密时所使用到的私钥及公钥的统称。由于考虑到密钥保存于客户端以及服务器中的存储空间后,极易通过存储空间的外部数据接口泄露,难以确保密钥的可靠性及通信认证的可靠性,因此本实施方式中的客户端和/或服务器预设有安全芯片,在此基础上,通过安全芯片存储及使用密钥,由于安全芯片本身具有对外的保密性,因此能够提高密钥的可靠性及通信认证的可靠性。
实施例三
本发明还提供一种应用于客户端的网络通信方法。
参照图3,图3为本发明实施例提供的一种应用于客户端的网络通信方法的流程图。
在实施例三中,该方法包括:
步骤S30:接收服务器传入的服务器证书。
其中,服务器证书包含自定义服务器数据以及通过根私钥对自定义服务器数据进行签名生成的服务器签名数据,自定义服务器数据中包含服务器公钥。
步骤S31:通过预设的根公钥对服务器证书进行验签,当验签通过时保存服务器证书中的服务器公钥。
其中根公钥与根私钥为相应的非对称密钥对。
步骤S32:生成客户端认证数据,并将客户端认证数据发送至服务器,以接收服务器利用服务器私钥对客户端认证数据进行签名生成的服务器认证签名。
步骤S33:通过服务器公钥验签服务器认证签名,当对服务器认证签名的验签通过时,将服务器设置为认证可信状态。
需要说明的是,由于本实施例是当服务器对客户端进行通信认证时,客户端根据服务器的操作内容所执行的相应操作内容,对于通信认证的整体操作逻辑的阐述请参考实施例一的内容,在此不做赘述。
本发明所提供的网络通信方法,首先由服务器接收客户端传入的含自定义客户端数据以及通过根私钥对所述自定义客户端数据进行签名生成的客户端签名数据的客户端证书,其中,自定义客户端数据至少包含有客户端公钥,进而服务器通过与根私钥对应的根公钥对该客户端证书进行验签,当验签通过时保存客户端证书中的客户端公钥,进而生成服务器认证数据,并将服务器认证数据发送至客户端,以接收通过客户端私钥对该服务器认证数据进行签名生成的客户端认证签名,进而通过保存的客户端公钥验签客户端认证签名,当对所述客户端认证签名的验签通过时,将所述客户端设置为认证可信状态。本方法中服务器通过根公钥对客户端证书进行验签,以此确保客户端所使用的客户端证书能够被服务器解析,即服务器与客户端之间使用相同的根公钥以及根私钥,进而在此基础上,服务器进一步通过向客户端发送服务器认证数据,并接收客户端返回的客户端认证签名,进而通过本地保存的客户端公钥验签所述客户端认证签名,以此判定客户端签名所使用的客户端私钥与服务器本地保存的客户端公钥是否对应,当服务器对所述客户端认证签名的验签通过时,即客户端签名所使用的客户端私钥与服务器本地保存的客户端公钥对应时,则将所述客户端设置为认证可信状态,以此完成认证。本方法通过判定客户端的客户端证书中的客户端公钥与客户端使用的客户端私钥之间是否对应,实现了服务器对向其上传工作数据的客户端的可信认证,进而确保了服务器接收客户端上传的工作数据的可靠性。
实施例四
在上述实施例的基础上,本发明还提供以下一系列优选的实施方式。
作为一种优选的实施方式,本方法还包括:
接收服务器传入的服务器证书。
其中,服务器证书包含自定义服务器数据以及通过根私钥对自定义服务器数据进行签名生成的服务器签名数据,自定义服务器数据中包含服务器公钥。
通过预设的根公钥对服务器证书进行验签,当验签通过时保存服务器证书中的服务器公钥;其中根公钥与根私钥为相应的非对称密钥对。
生成客户端认证数据,并将客户端认证数据发送至服务器,以接收服务器利用服务器私钥对客户端认证数据进行签名生成的服务器认证签名。
通过服务器公钥验签服务器认证签名,当对服务器认证签名的验签通过时,将服务器设置为认证可信状态。
需要说明的是,本方法的执行主体为客户端,本步骤中客户端接收与其通信的服务器传入的服务器证书,其中,服务器证书包含自定义服务器数据以及通过根私钥对自定义服务器数据进行签名并生成的服务器签名数据,自定义服务器数据中至少应包含有服务器公钥,即服务器在非对称加密时所使用的公钥。另外,根私钥是预先生成的,需要单独保存,可以由专人保管或保存在特定设备中,目的是确保根私钥的绝对保密,仅公开通过根私钥对自定义服务器数据进行签名的服务器签名数据,由于通过私钥对数据进行签名是本领域技术人员公知的操作内容,故在此不做赘述。
此外,需要说明的是,根公钥与根私钥是相对应的非对称密钥对,根公钥与根私钥均为预先生成,通过预设的根公钥对服务器证书进行验签,目的是判定服务器传入的服务器证书是否被篡改,即服务器证书是否可用。
通过预设的根公钥对服务器证书进行验签的具体步骤包括:
通过预设的根公钥对服务器证书中的服务器签名数据进行解密,生成目标自定义服务器数据;
比对服务器证书中的自定义服务器数据与目标自定义服务器数据之间的一致性,当服务器证书中的自定义服务器数据与目标自定义服务器数据一致时,则服务器证书的内容未被篡改,即验签通过。
在对服务器证书进行验签完成,并且验签通过时,客户端将服务器证书中的服务器公钥进行保存,以供后续使用。
生成客户端认证数据并将客户端认证数据发送至服务器,进而服务器利用服务器私钥对客户端认证数据进行签名生成服务器认证签名,并将服务器认证签名返回至客户端。由于服务器认证签名是由服务器私钥对客户端认证数据进行的签名,因此能够通过服务器私钥对应的服务器公钥对服务器认证签名进行解密,以此获取到原有的客户端认证数据。
通过服务器公钥对服务器认证签名进行验签,目的是判定客户端中保存的服务器公钥能否解密服务器认证签名,如果服务器公钥能够解密服务器认证签名,并且获得到与客户端认证数据一致的结果数据时,则说明客户端中的服务器公钥与服务器自身签名数据时使用的服务器私钥是相应的非对称密钥对,即服务器证书以及服务器证书中的服务器公钥均为该服务器段所有,因此服务器并未对服务器证书进行篡改以及盗用,能够确保服务器为可信状态的服务器,进而本步骤当对服务器认证签名的验签通过时,将服务器设置为认证可信状态,以此完成客户端对于服务器的认证。
本实施方式在服务器认证客户端的基础上进一步实现了,客户端对于服务器的认证,以此实现了客户端与服务器之间的双向认证。
在上述实施方式的基础上,作为一种优选的实施方式,在生成客户端认证数据之前,该方法进一步包括:
生成对应的临时客户端公钥以及临时客户端私钥;
相应的,客户端认证数据具体为临时客户端公钥,以供服务器根据ECDH密钥协商算法将临时客户端公钥及服务器预先生成的临时服务器私钥共同转化为协商密钥,并通过协商密钥对客户端传入的加密工作数据进行DES解密获取原始工作数据。
相应的,在将服务器设置为认证可信状态后,方法还包括:
通过ECDH密钥协商算法将临时服务器公钥以及临时客户端私钥共同转化为协商密钥,以接收数据终端发送的第一数据,利用协商密钥将第一数据加密后发送给服务器;以及接收服务器发送的第二数据,利用协商密钥将第二数据解密后,发送给数据终端。
需要说明的是,本实施方式中的客户端相当于建立在服务器与数据终端之间的“中间设备”,客户端所起到的作用是建立数据终端与服务器之间的通信,具体执行的工作内容为:接收数据终端的明文数据,根据与服务器协商生成的协商密钥对明文数据加密并发送给服务器;以及接收服务器发送的密文数据,并利用相同的协商秘钥对密文数据进行解密并发送至数据终端。其中,数据终端可以具体为手机或移动电脑等移动设备,应根据应用场景的实际需求而定,在此不做具体限定。
由于客户端对于服务器的通信认证的整体逻辑与服务器对客户端通信认证的逻辑类似,因此对于本实施方式的阐述请参考实施例二中相应部分的内容,在此不做赘述。
实施例五
在上文中对于网络通信方法的实施例进行了详细的描述,本发明还提供一种与该方法对应的服务器,由于服务器部分的实施例与方法部分的实施例相互对应,因此服务器部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图4为本发明实施例提供的一种服务器的结构图。
在本实施例中,服务器1可以是PC(PersonalComputer,个人电脑),也可以是智能手机、平板电脑、掌上电脑、便携计算机、智能路由器、矿机、网络存储设备终端设备。
该服务器1可以是组成CDN网络或者区块链网络的节点。
该服务器1可以包括存储器11、处理器12和总线13。
其中,存储器11至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等)、磁性存储器、磁盘、光盘等。存储器11在一些实施例中可以是服务器1的内部存储单元,例如该服务器1的硬盘。存储器11在另一些实施例中也可以是服务器1的外部存储设备,例如服务器1上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,存储器11还可以既包括服务器1的内部存储单元也包括外部存储设备。存储器11不仅可以用于存储安装于服务器1的应用软件及各类数据,例如网络通信程序的代码等,还可以用于暂时地存储已经输出或者将要输出的数据。
处理器12在一些实施例中可以是一中央处理器(Central Processing Unit,CPU)、控制器、微控制器、微处理器或其他数据处理芯片,用于运行存储器11中存储的程序代码或处理数据,例如执行网络通信程序等。
该总线13可以是外设部件互连标准(peripheral component interconnect,简称PCI)总线或扩展工业标准结构(extended industry standard architecture,简称EISA)总线等。该总线可以分为地址总线、数据总线、控制总线等。为便于表示,图4中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
进一步地,服务器1还可以包括网络接口,网络接口可选的可以包括有线接口和/或无线接口(如WI-FI接口、蓝牙接口等),通常用于在该服务器1与其他电子设备之间建立通信连接。
可选地,该服务器1还可以包括用户接口,用户接口可以包括显示器(Display)、输入单元比如键盘(Keyboard),可选的用户接口还可以包括标准的有线接口、无线接口。可选地,在一些实施例中,显示器可以是LED显示器、液晶显示器、触控式液晶显示器以及OLED(Organic Light-Emitting Diode,有机发光二极管)触摸器等。其中,显示器也可以适当的称为显示屏或显示单元,用于显示在服务器1中处理的信息以及用于显示可视化的用户界面。
本发明还提供一种与该方法对应的客户端,由于客户端部分的实施例与方法部分的实施例相互对应,因此客户端部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
客户端包括存储器、处理器和总线,存储器上存储有可在处理器上运行的网络通信程序,网络通信程序通过总线被处理器获取并执行时实现如上述的应用于调度服务器的网络通信方法。
实施例六
本发明还提供一种通信认证系统。
参照图5,图5为本发明实施例提供的一种通信认证系统的示意图。
该通信认证系统包括:
服务器20,用于接收客户端21传入的客户端证书;其中,客户端证书包含自定义客户端数据以及通过根私钥对自定义客户端数据进行签名生成的客户端签名数据,自定义客户端数据中包含客户端公钥;通过预设的根公钥对客户端证书进行验签,当验签通过时保存客户端证书中的客户端公钥;其中根公钥与根私钥为相应的非对称密钥对;生成服务器认证数据,并将服务器认证数据发送至客户端21,以接收客户端21利用客户端私钥对服务器认证数据进行签名生成的客户端认证签名;通过客户端公钥验签客户端认证签名,当对客户端认证签名的验签通过时,将客户端21设置为认证可信状态;
客户端21,用于向服务器20上传客户端证书,以供客户端21验签客户端证书并获取客户端证书中的客户端公钥;其中,客户端证书包含自定义客户端数据以及通过根私钥对自定义客户端数据进行签名生成的客户端签名数据,自定义客户端数据中包含客户端公钥;接收由服务器20传入的服务器认证数据,并通过客户端私钥对服务器认证数据进行签名生成客户端认证签名;将客户端认证签名发送至服务器20,以供服务器20根据客户端认证签名完成通信认证。
本发明所提供的通信认证系统,首先由服务器接收客户端传入的含自定义客户端数据以及通过根私钥对所述自定义客户端数据进行签名生成的客户端签名数据的客户端证书,其中,自定义客户端数据至少包含有客户端公钥,进而服务器通过与根私钥对应的根公钥对该客户端证书进行验签,当验签通过时保存客户端证书中的客户端公钥,进而生成服务器认证数据,并将服务器认证数据发送至客户端,以接收通过客户端私钥对该服务器认证数据进行签名生成的客户端认证签名,进而通过保存的客户端公钥验签客户端认证签名,当对所述客户端认证签名的验签通过时,将所述客户端设置为认证可信状态。本系统中服务器通过根公钥对客户端证书进行验签,以此确保客户端所使用的客户端证书能够被服务器解析,即服务器与客户端之间使用相同的根公钥以及根私钥,进而在此基础上,服务器进一步通过向客户端发送服务器认证数据,并接收客户端返回的客户端认证签名,进而通过本地保存的客户端公钥验签所述客户端认证签名,以此判定客户端签名所使用的客户端私钥与服务器本地保存的客户端公钥是否对应,当服务器对所述客户端认证签名的验签通过时,即客户端签名所使用的客户端私钥与服务器本地保存的客户端公钥对应时,则将所述客户端设置为认证可信状态,以此完成认证。本系统通过判定客户端的客户端证书中的客户端公钥与客户端使用的客户端私钥之间是否对应,实现了服务器对向其上传工作数据的客户端的可信认证,进而确保了服务器接收客户端上传的工作数据的可靠性。
作为一种优选的实施方式,该系统还包括:
数据终端,用于向客户端发送第一数据;
相应的,客户端还用于接收数据终端发送的第一数据,利用预先生成的协商密钥将第一数据加密后发送给服务器;以及接收服务器发送的第二数据,利用协商密钥将第二数据解密后,发送给数据终端。
实施例七
本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有网络通信程序,网络通信程序可被一个或者多个处理器执行,以实现如上述应用于服务器的网络通信方法或实现如上述应用于客户端的网络通信方法。
本发明所提供的计算机可读存储介质,在执行过程中实现由服务器接收客户端传入的含自定义客户端数据以及通过根私钥对所述自定义客户端数据进行签名生成的客户端签名数据的客户端证书,其中,自定义客户端数据至少包含有客户端公钥,进而服务器通过与根私钥对应的根公钥对该客户端证书进行验签,当验签通过时保存客户端证书中的客户端公钥,进而生成服务器认证数据,并将服务器认证数据发送至客户端,以接收通过客户端私钥对该服务器认证数据进行签名生成的客户端认证签名,进而通过保存的客户端公钥验签客户端认证签名,当对所述客户端认证签名的验签通过时,将所述客户端设置为认证可信状态。本计算机可读存储介质中服务器通过根公钥对客户端证书进行验签,以此确保客户端所使用的客户端证书能够被服务器解析,即服务器与客户端之间使用相同的根公钥以及根私钥,进而在此基础上,服务器进一步通过向客户端发送服务器认证数据,并接收客户端返回的客户端认证签名,进而通过本地保存的客户端公钥验签所述客户端认证签名,以此判定客户端签名所使用的客户端私钥与服务器本地保存的客户端公钥是否对应,当服务器对所述客户端认证签名的验签通过时,即客户端签名所使用的客户端私钥与服务器本地保存的客户端公钥对应时,则将所述客户端设置为认证可信状态,以此完成认证。本计算机可读存储介质通过判定客户端的客户端证书中的客户端公钥与客户端使用的客户端私钥之间是否对应,实现了服务器对向其上传工作数据的客户端的可信认证,进而确保了服务器接收客户端上传的工作数据的可靠性。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
需要说明的是,上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。并且本文中的术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种网络通信方法,其特征在于,应用于服务器,所述方法包括:
接收客户端传入的客户端证书;其中,所述客户端证书包含自定义客户端数据以及经根私钥对所述自定义客户端数据进行签名生成的客户端签名数据,所述自定义客户端数据中包含客户端公钥;
通过预设的根公钥对所述客户端证书进行验签,当验签通过时保存所述客户端证书中的客户端公钥;其中所述根公钥与所述根私钥为相应的非对称密钥对;
生成对应的临时服务器公钥以及临时服务器私钥;
生成服务器认证数据,并将所述服务器认证数据发送至所述客户端,以接收所述客户端利用客户端私钥对所述服务器认证数据进行签名生成的客户端认证签名;所述服务器认证数据具体为所述临时服务器公钥,以供所述客户端根据ECDH密钥协商算法将所述临时服务器公钥及所述客户端预先生成的临时客户端私钥共同转化为协商密钥,并通过所述协商密钥对原始工作数据进行DES加密,生成加密工作数据以与所述服务器通信;
通过所述客户端公钥验签所述客户端认证签名,当对所述客户端认证签名的验签通过时,将所述客户端设置为认证可信状态;
向所述客户端上传服务器证书,以供所述客户端验签所述服务器证书并获取所述服务器证书中的服务器公钥;其中,所述服务器证书包含自定义服务器数据以及通过所述根私钥对所述自定义服务器数据进行签名生成的服务器签名数据,所述自定义服务器数据中包含所述服务器公钥;
接收由所述客户端传入的客户端认证数据,所述客户端认证数据具体为所述客户端预先生成的临时客户端公钥,并通过服务器私钥对所述客户端认证数据进行签名生成服务器认证签名;并通过ECDH密钥协商算法将所述临时客户端公钥以及所述临时服务器私钥共同转化为所述协商密钥,以通过所述协商密钥将所述客户端传入的所述加密工作数据解密为所述原始工作数据;
将所述服务器认证签名发送至所述客户端,以供所述客户端根据所述服务器认证签名完成通信认证;
其中,所述客户端通过所述协商密钥对原始工作数据进行DES加密,生成加密工作数据,具体包括:所述客户端对所述原始工作数据进行DES加密生成所述加密工作数据,以及当所述原始工作数据的数据量超出预设值时,所述客户端提取所述原始工作数据的原始Hash值,利用所述协商密钥对所述原始Hash值进行加密,生成加密Hash值,并将所述加密Hash值和所述原始工作数据发送至所述服务器,以使所述服务器利用所述协商密钥对所述加密Hash值解密后对所述原始工作数据进行Hash得到的当前Hash值进行一致性比对、在比对一致时确定所述原始工作数据可用、在比对不一致时确定所述原始工作数据不可用。
2.根据权利要求1所述的方法,其特征在于,所述自定义客户端数据中还包含所述客户端的唯一标识。
3.根据权利要求2所述的方法,其特征在于,所述客户端的唯一标识具体为所述客户端的硬件设备序列号。
4.根据权利要求1至3任意一项所述的方法,其特征在于,所述客户端和/或所述服务器预设有安全芯片,且均通过所述安全芯片存储及使用密钥。
5.一种网络通信方法,其特征在于,应用于客户端,所述方法包括:
向服务器上传客户端证书,以供所述客户端验签所述客户端证书并获取所述客户端证书中的客户端公钥;其中,所述客户端证书包含自定义客户端数据以及经根私钥对所述自定义客户端数据进行签名生成的客户端签名数据,所述自定义客户端数据中包含所述客户端公钥;
接收由所述服务器传入的服务器认证数据,并通过客户端私钥对所述服务器认证数据进行签名生成客户端认证签名;
将所述客户端认证签名发送至所述服务器,以供所述服务器根据所述客户端认证签名完成通信认证;
接收所述服务器传入的服务器证书;其中,所述服务器证书包含自定义服务器数据以及通过根私钥对所述自定义服务器数据进行签名生成的服务器签名数据,所述自定义服务器数据中包含服务器公钥;
通过预设的根公钥对所述服务器证书进行验签,当验签通过时保存所述服务器证书中的服务器公钥;其中所述根公钥与所述根私钥为相应的非对称密钥对;
生成对应的临时客户端公钥以及临时客户端私钥;
生成客户端认证数据,并将所述客户端认证数据发送至所述服务器,以接收所述服务器利用服务器私钥对所述客户端认证数据进行签名生成的服务器认证签名;所述客户端认证数据具体为所述临时客户端公钥,以供所述服务器根据ECDH密钥协商算法将所述临时客户端公钥及所述服务器预先生成的临时服务器私钥共同转化为协商密钥,并通过所述协商密钥对所述客户端传入的加密工作数据进行DES解密获取原始工作数据;
通过所述服务器公钥验签所述服务器认证签名,当对所述服务器认证签名的验签通过时,将所述服务器设置为认证可信状态;
通过ECDH密钥协商算法将所述临时服务器公钥以及所述临时客户端私钥共同转化为所述协商密钥,以接收数据终端发送的第一数据,利用所述协商密钥将所述第一数据加密后发送给所述服务器;以及接收所述服务器发送的第二数据,利用所述协商密钥将所述第二数据解密后,发送给所述数据终端;
其中,所述利用所述协商密钥将所述第一数据加密后发送给所述服务器,具体包括:对所述原始工作数据进行DES加密生成所述加密工作数据,以及当所述原始工作数据的数据量超出预设值时,所述客户端提取所述原始工作数据的原始Hash值,利用所述协商密钥对所述原始Hash值进行加密,生成加密Hash值,并将所述加密Hash值和所述原始工作数据发送至所述服务器,以使所述服务器利用所述协商密钥对所述加密Hash值解密后对所述原始工作数据进行Hash得到的当前Hash值进行一致性比对、在比对一致时确定所述原始工作数据可用、在比对不一致时确定所述原始工作数据不可用;所述原始工作数据为所述第一数据。
6.一种服务器,其特征在于,所述服务器包括存储器、处理器以及总线,所述存储器上存储有可通过所述总线传输至所述处理器,并在所述处理器上运行的网络通信程序,所述网络通信程序被所述处理器执行时实现如权利要求1至4任一项所述的方法。
7.根据权利要求6所述的服务器,其特征在于,所述服务器为组成CDN网络或者区块链网络的节点。
8.一种客户端,其特征在于,所述客户端包括存储器和处理器,所述存储器上存储有可通过总线传输至所述处理器,并在所述处理器上运行的网络通信程序,所述网络通信程序被所述处理器执行时实现如权利要求5所述的方法。
9.一种通信认证系统,其特征在于,所述系统包括:
服务器,用于接收客户端传入的客户端证书;其中,所述客户端证书包含自定义客户端数据以及通过根私钥对所述自定义客户端数据进行签名生成的客户端签名数据,所述自定义客户端数据中包含客户端公钥;通过预设的根公钥对所述客户端证书进行验签,当验签通过时保存所述客户端证书中的客户端公钥;其中所述根公钥与所述根私钥为相应的非对称密钥对;生成对应的临时服务器公钥以及临时服务器私钥;生成服务器认证数据,并将所述服务器认证数据发送至所述客户端,以接收所述客户端利用客户端私钥对所述服务器认证数据进行签名生成的客户端认证签名;所述服务器认证数据具体为所述临时服务器公钥,以供所述客户端根据ECDH密钥协商算法将所述临时服务器公钥及所述客户端预先生成的临时客户端私钥共同转化为协商密钥,并通过所述协商密钥对原始工作数据进行DES加密,生成加密工作数据以与所述服务器通信;通过所述客户端公钥验签所述客户端认证签名,当对所述客户端认证签名的验签通过时,将所述客户端设置为认证可信状态;向所述客户端上传服务器证书,以供所述客户端验签所述服务器证书并获取所述服务器证书中的服务器公钥;其中,所述服务器证书包含自定义服务器数据以及通过所述根私钥对所述自定义服务器数据进行签名生成的服务器签名数据,所述自定义服务器数据中包含所述服务器公钥;接收由所述客户端传入的客户端认证数据,所述客户端认证数据具体为所述客户端预先生成的临时客户端公钥,并通过服务器私钥对所述客户端认证数据进行签名生成服务器认证签名;并通过ECDH密钥协商算法将所述临时客户端公钥以及所述临时服务器私钥共同转化为所述协商密钥,以通过所述协商密钥将所述客户端传入的所述加密工作数据解密为所述原始工作数据;将所述服务器认证签名发送至所述客户端,以供所述客户端根据所述服务器认证签名完成通信认证;
客户端,用于向服务器上传客户端证书,以供所述客户端验签所述客户端证书并获取所述客户端证书中的客户端公钥;其中,所述客户端证书包含自定义客户端数据以及通过根私钥对所述自定义客户端数据进行签名生成的客户端签名数据,所述自定义客户端数据中包含所述客户端公钥;接收由所述服务器传入的服务器认证数据,并通过客户端私钥对所述服务器认证数据进行签名生成客户端认证签名;将所述客户端认证签名发送至所述服务器,以供所述服务器根据所述客户端认证签名完成通信认证;接收所述服务器传入的服务器证书;其中,所述服务器证书包含自定义服务器数据以及通过根私钥对所述自定义服务器数据进行签名生成的服务器签名数据,所述自定义服务器数据中包含服务器公钥;通过预设的根公钥对所述服务器证书进行验签,当验签通过时保存所述服务器证书中的服务器公钥;其中所述根公钥与所述根私钥为相应的非对称密钥对;生成对应的临时客户端公钥以及临时客户端私钥;生成客户端认证数据,并将所述客户端认证数据发送至所述服务器,以接收所述服务器利用服务器私钥对所述客户端认证数据进行签名生成的服务器认证签名;所述客户端认证数据具体为所述临时客户端公钥,以供所述服务器根据ECDH密钥协商算法将所述临时客户端公钥及所述服务器预先生成的临时服务器私钥共同转化为协商密钥,并通过所述协商密钥对所述客户端传入的加密工作数据进行DES解密获取原始工作数据;通过所述服务器公钥验签所述服务器认证签名,当对所述服务器认证签名的验签通过时,将所述服务器设置为认证可信状态;通过ECDH密钥协商算法将所述临时服务器公钥以及所述临时客户端私钥共同转化为所述协商密钥,以接收数据终端发送的第一数据,利用所述协商密钥将所述第一数据加密后发送给所述服务器;以及接收所述服务器发送的第二数据,利用所述协商密钥将所述第二数据解密后,发送给所述数据终端;
所述数据终端,用于向所述客户端发送所述第一数据;
其中,所述利用所述协商密钥将所述第一数据加密后发送给所述服务器,具体包括:对所述原始工作数据进行DES加密生成所述加密工作数据,以及当所述原始工作数据的数据量超出预设值时,所述客户端提取所述原始工作数据的原始Hash值,利用所述协商密钥对所述原始Hash值进行加密,生成加密Hash值,并将所述加密Hash值和所述原始工作数据发送至所述服务器,以使所述服务器利用所述协商密钥对所述加密Hash值解密后对所述原始工作数据进行Hash得到的当前Hash值进行一致性比对、在比对一致时确定所述原始工作数据可用、在比对不一致时确定所述原始工作数据不可用;所述原始工作数据为所述第一数据。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有网络通信程序,所述网络通信程序可被一个或者多个处理器执行,以实现如权利要求1至4中任一项所述的网络通信方法或实现如权利要求5所述的网络通信方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016548.8A CN109510711B (zh) | 2019-01-08 | 2019-01-08 | 一种网络通信方法、服务器、客户端及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910016548.8A CN109510711B (zh) | 2019-01-08 | 2019-01-08 | 一种网络通信方法、服务器、客户端及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109510711A CN109510711A (zh) | 2019-03-22 |
CN109510711B true CN109510711B (zh) | 2022-04-01 |
Family
ID=65756378
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910016548.8A Active CN109510711B (zh) | 2019-01-08 | 2019-01-08 | 一种网络通信方法、服务器、客户端及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109510711B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112637109B (zh) * | 2019-09-24 | 2023-09-05 | 北京京东尚科信息技术有限公司 | 数据传输方法、系统、电子设备及计算机可读介质 |
CN112632585B (zh) * | 2020-12-31 | 2022-04-01 | 北京海泰方圆科技股份有限公司 | 一种网页数据传输系统、方法、装置、介质和设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101521881A (zh) * | 2009-03-24 | 2009-09-02 | 刘建 | 一种无线局域网接入方法及系统 |
CN101600204A (zh) * | 2009-06-30 | 2009-12-09 | 中兴通讯股份有限公司 | 一种文件传输方法及系统 |
CN103701609A (zh) * | 2013-03-15 | 2014-04-02 | 福建联迪商用设备有限公司 | 一种服务器与操作终端双向认证的方法及系统 |
CN104639516A (zh) * | 2013-11-13 | 2015-05-20 | 华为技术有限公司 | 身份认证方法、设备及系统 |
CN107070667A (zh) * | 2017-06-07 | 2017-08-18 | 国民认证科技(北京)有限公司 | 身份认证方法、用户设备和服务器 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3928589B2 (ja) * | 2003-06-12 | 2007-06-13 | コニカミノルタビジネステクノロジーズ株式会社 | 通信システムおよび方法 |
CN105827412B (zh) * | 2016-03-14 | 2019-01-08 | 中金金融认证中心有限公司 | 认证方法、服务器及客户端 |
CN107302541A (zh) * | 2017-07-31 | 2017-10-27 | 成都蓝码科技发展有限公司 | 一种基于http协议的数据加密传输方法 |
-
2019
- 2019-01-08 CN CN201910016548.8A patent/CN109510711B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101521881A (zh) * | 2009-03-24 | 2009-09-02 | 刘建 | 一种无线局域网接入方法及系统 |
CN101600204A (zh) * | 2009-06-30 | 2009-12-09 | 中兴通讯股份有限公司 | 一种文件传输方法及系统 |
CN103701609A (zh) * | 2013-03-15 | 2014-04-02 | 福建联迪商用设备有限公司 | 一种服务器与操作终端双向认证的方法及系统 |
CN104639516A (zh) * | 2013-11-13 | 2015-05-20 | 华为技术有限公司 | 身份认证方法、设备及系统 |
CN107070667A (zh) * | 2017-06-07 | 2017-08-18 | 国民认证科技(北京)有限公司 | 身份认证方法、用户设备和服务器 |
Also Published As
Publication number | Publication date |
---|---|
CN109510711A (zh) | 2019-03-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11757662B2 (en) | Confidential authentication and provisioning | |
EP3324572B1 (en) | Information transmission method and mobile device | |
US10015159B2 (en) | Terminal authentication system, server device, and terminal authentication method | |
CN108377190B (zh) | 一种认证设备及其工作方法 | |
CN104219228B (zh) | 一种用户注册、用户识别方法及系统 | |
JP6399382B2 (ja) | 認証システム | |
CN110290108B (zh) | 一种区块链网络中的数据处理方法、系统及相关设备 | |
CN109034796B (zh) | 基于联盟链的交易监管方法、电子装置及可读存储介质 | |
US8601267B2 (en) | Establishing a secured communication session | |
CN109714176B (zh) | 口令认证方法、装置及存储介质 | |
CN109688098B (zh) | 数据的安全通信方法、装置、设备及计算机可读存储介质 | |
CN108809633B (zh) | 一种身份认证的方法、装置及系统 | |
CN108199847B (zh) | 数字安全处理方法、计算机设备及存储介质 | |
CN109150526A (zh) | 密钥协商方法、设备、终端、存储介质以及系统 | |
CN109309566B (zh) | 一种认证方法、装置、系统、设备及存储介质 | |
WO2018120938A1 (zh) | 密钥离线传输方法、终端和存储介质 | |
WO2015135398A1 (zh) | 一种基于协商密钥的数据处理方法 | |
CN113709115B (zh) | 认证方法及装置 | |
CN113411187B (zh) | 身份认证方法和系统、存储介质及处理器 | |
CN109510711B (zh) | 一种网络通信方法、服务器、客户端及系统 | |
CN109922022A (zh) | 物联网通信方法、平台、终端和系统 | |
CN107948213A (zh) | 一种加密认证方法、系统、装置及计算机可读存储介质 | |
CN111064577A (zh) | 一种安全认证方法、装置及电子设备 | |
CN110912683B (zh) | 密码存储方法及装置、密码验证方法及装置 | |
CN114598478B (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 |