CN110138772B - 一种通信方法、装置、系统、设备和存储介质 - Google Patents

一种通信方法、装置、系统、设备和存储介质 Download PDF

Info

Publication number
CN110138772B
CN110138772B CN201910395469.2A CN201910395469A CN110138772B CN 110138772 B CN110138772 B CN 110138772B CN 201910395469 A CN201910395469 A CN 201910395469A CN 110138772 B CN110138772 B CN 110138772B
Authority
CN
China
Prior art keywords
server
random number
communication
client
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.)
Active
Application number
CN201910395469.2A
Other languages
English (en)
Other versions
CN110138772A (zh
Inventor
秦晨
黄镇
段立卿
杨少宾
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Yingheng Electronic Co ltd
Original Assignee
Shanghai Yingheng Electronic Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Yingheng Electronic Co ltd filed Critical Shanghai Yingheng Electronic Co ltd
Priority to CN201910395469.2A priority Critical patent/CN110138772B/zh
Publication of CN110138772A publication Critical patent/CN110138772A/zh
Application granted granted Critical
Publication of CN110138772B publication Critical patent/CN110138772B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/045Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply hybrid encryption, i.e. combination of symmetric and asymmetric encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic 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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic 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/3247Cryptographic 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
    • H04L9/3252Cryptographic 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 using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes

Abstract

本发明公开了一种通信方法、装置、系统、设备和存储介质。该方法包括:通过随机生成的第一AES密钥加密第一预设随机数集合,得到第一通信密文;将第一通信密文发送至服务器,以使服务器通过随机生成的第二AES密钥对第一通信密文进行解密;接收服务器返回的第二通信密文,第二通信密文是通过第二AES密钥加密第二预设随机数集合得到;通过第一AES密钥解密第二通信密文,得到第一解密消息;若第一解密消息与第二预设随机数集合包含的随机数字段相同,则进行加密通信。本发明实施例实现了在降低代码冗余度的同时,完成了对服务器和客户端的可选数据进行加密,从而保证了通信和数据的机密性、完整性和真实性。

Description

一种通信方法、装置、系统、设备和存储介质
技术领域
本发明实施例涉及通信技术,尤其涉及一种通信方法、装置、系统、设备和存储介质。
背景技术
随着汽车电子化程度越来越高,为了满足电子化汽车日益丰富的功能,汽车以太网和汽车Wi-Fi通信逐渐在车载通信中普及,而如何保证在越来越开放的汽车通信中保证车载以太网和车载Wi-Fi的通信安全成为关键。
传统的汽车是一个封闭的环境,基本不需要额外的安全措施。并且,传统的以太网通信和Wi-Fi通信是基于安全套接层(Secure Sockets Layer,SSL)/传输层安全(Transport Layer Security,TLS)、Internet协议安全性(Internet Protocol Security,IPsec)、虚拟专用网络(Virtual Private Network,VPN)等。针对互联网复杂的动态环境,设置了庞大的认证策略和限制措施,就目前使用最广的SSL/TLS,支持的加密套件多达数十种,复杂的处理逻辑、庞大且冗余的代码体系,无疑增加了汽车电子控制单元(ElectronicControl Unit,ECU)的数据处理负担。
发明内容
有鉴于此,本发明提供一种通信方法、装置、系统、设备和存储介质,实现了在降低代码冗余度的同时,保证了通信和数据的机密性、完整性和真实性。
第一方面,本发明实施例提供了一种通信方法,包括:
通过随机生成的第一高级加密标准AES密钥加密第一预设随机数集合,得到第一通信密文;
将所述第一通信密文发送至服务器,以使所述服务器通过随机生成的第二AES密钥对所述第一通信密文进行解密;
接收服务器返回的第二通信密文,所述第二通信密文是通过所述第二AES密钥加密第二预设随机数集合得到;
通过所述第一AES密钥解密所述第二通信密文,得到第一解密消息;
若所述第一解密消息与所述第二预设随机数集合包含的随机数字段相同,则进行加密通信。
第二方面,本发明实施例还提供了一种通信方法,包括:
接收客户端发送的第一通信密文,所述第一通信密文是通过第一高级加密标准AES密钥加密第一预设随机数集合得到;
通过随机生成的第二AES密钥解密所述第一通信密文,得到第二解密消息;
通过所述第二AES密钥加密第二预设随机数集合,以得到第二通信密文;
将所述第二通信密文发送至所述客户端,以使所述客户端通过第一AES密钥对所述第二通信密文进行解密;
若所述第二解密消息与所述第一预设随机数集合包含的随机数字段相同,则进行加密通信。
第三方面,本发明实施例还提供了一种通信装置,包括:
第一加密模块,用于通过随机生成的第一高级加密标准AES密钥加密第一预设随机数集合,得到第一通信密文;
第一发送模块,用于将所述第一通信密文发送至服务器,以使所述服务器通过随机生成的第二AES密钥对所述第一通信密文进行解密;
第一接收模块,用于接收服务器返回的第二通信密文,所述第二通信密文是通过所述第二AES密钥加密第二预设随机数集合得到;
第一解密模块,用于通过所述第一AES密钥解密所述第二通信密文,得到第一解密消息;
第一判断模块,用于若所述第一解密消息与所述第二预设随机数集合包含的随机数字段相同,则进行加密通信。
第四方面,本发明实施例还提供了一种通信装置,包括:
第二接收模块,用于接收客户端发送的第一通信密文,所述第一通信密文是通过第一AES密钥加密第一预设随机数集合得到;
第二解密模块,用于通过随机生成的第二高级加密标准AES密钥解密所述第一通信密文,得到第二解密消息;
第二加密模块,用于通过所述第二AES密钥加密第二预设随机数集合,以得到第二通信密文;
第二发送模块,用于将所述第二通信密文发送至所述客户端,以使所述客户端通过第一AES密钥对所述第二通信密文进行解密;
第二判断模块,用于若所述第二解密消息与所述第一预设随机数集合包含的随机数字段相同,则进行加密通信。
第五方面,本发明实施例还提供了一种通信系统,包括:客户端和服务器;所述客户端集成TPM安全芯片,且设置如第一方面所述的通信装置;所述服务器设置如第二方面所述的通信装置。
第六方面,本发明实施例还提供了一种设备,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如第一方面或第二方面所述的通信方法。
第七方面,本发明实施例还提供了一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行如第一方面或第二方面所述的通信方法。
本发明通过客户端随机生成的第一AES密钥对第一预设随机数集合进行加密,以得到第一通信密文,以使服务器对第一通信密文进行解密;然后客户端通过第一AES密钥解密服务器返回的第二通信密文,得到第一解密消息,若第一解密消息和第二预设随机数集合包含的随机数字段相同,则进行加密通信,解决了现有技术中需采用庞大的加密套件对服务器和客户端的数据进行加密而导致汽车ECU数据处理负担的问题,实现了在降低代码冗余度的同时,完成了对服务器和客户端的可选数据进行加密,从而保证了通信和数据的机密性、完整性和真实性。
附图说明
图1是本发明实施例提供的一种应用于客户端的通信方法的流程图;
图2是本发明实施例提供的另一种应用于客户端的通信方法的流程图;
图3是本发明实施例提供的又一种应用于客户端的通信方法的流程图;
图4是本发明实施例提供的一种应用于服务器的通信方法的流程图;
图5是本发明实施例提供的另一种应用于服务器的通信方法的流程图;
图6是本发明实施例提供的一种通信方法的交互流程图;
图7是本发明实施例提供的一种通信装置的结构框图;
图8是本发明实施例提供的另一种通信装置的结构框图;
图9是本发明实施例提供的一种通信系统的结构示意图;
图10是本发明实施例提供的一种通信设备的结构示意图。
具体实施方式
下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部结构。
图1是本发明实施例提供的一种应用于客户端的通信方法的流程图,本实施例中提供的通信方法可以由通信设备执行,该通信设备可以通过软件和/或硬件的方式实现,该通信设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。本实施例中通信设备为客户端,该客户端可以理解为汽车端。
参考图1,该通信方法具体包括如下步骤:
S110、通过随机生成的第一高级加密标准(Advanced Encryption Standard,AES)密钥加密第一预设随机数集合,得到第一通信密文。
其中,第一预设随机数集合至少包括客户端生成的第一随机数字段、服务器发送的第二随机数字段、客户端生成的第三随机数字段以及第四随机数字段。在实施例中,第一AES密钥是客户端根据AES加密算法随机生成的一个密钥。具体的,在客户端得到第一随机数字段、第二随机数字段、第三随机数字段和第四随机数字段之后,通过第一AES密钥对这四个随机数字段进行加密,得到加密后的数据信息,将该加密后的数据信息记为第一通信密文。
在此需要说明的是,第一预设随机数集合中的第四随机数字段是客户端在生成第三随机数字段之后生成的,并且第四随机数字段并未以明文形式传输至服务器中。可以理解为,第四随机数字段是未在数据传输过程中被窃取的;而第一随机数字段、第二随机数字段和第三随机数字段都会以明文形式在客户端和服务器之间进行数据传输,无法保证其安全性。
S120、将第一通信密文发送至服务器,以使服务器通过随机生成的第二AES密钥对第一通信密文进行解密。
在实施例中,客户端通过以太网通信或Wi-Fi通信将第一通信密文传输至服务器。在服务器接收到第一通信密文,服务器通过第二AES密文对第一通信密文进行解密。在此需要说明的是,第二AES密钥和第一AES密钥的生成过程相同,在此不再对第二AES密钥的生成过程进行赘述。
S130、接收服务器返回的第二通信密文。
其中,第二通信密文是通过第二AES密钥加密第二预设随机数集合得到。需要理解的是,第一随机数字段、第二随机数字段和第三随机数字段都是以明文形式在客户端和服务器之间进行传输,但在客户端和服务器之间进行数据传输时,第四随机数字段是以加密形式进行传输,而并未以明文形式进行传输。为了保证在第一随机数字段、第二随机数字段和第三随机数字段都被窃取的情况下,也能完成服务器对客户端的安全认证。在实施例中,第二预设随机数集合至少包括两个随机数字段,并且,至少包括第四随机数字段,即第二预设随机数集合可以为第一随机数字段和第四随机数字段,也可以为第二随机数字段和第四随机数字段,也可以为第三随机数字段和第四随机数字段。
为了便于对后续的解密进行理解,本实施例中的第二预设随机数集合以包含第三随机数字段和第四随机数字段为例,对第二通信密文的解密进行说明。在确定第二预设随机数集合之后,通过第二AES密钥对第二预设随机数集合进行加密,得到第二通信密文,并以以太网通信或Wi-Fi通信将第二通信密文发送至客户端。
S140、通过第一AES密钥解密第二通信密文,得到第一解密消息。
在实施例中,在客户端接收到服务器返回的第二通信密文之后,通过第一AES密钥对第二通信密文进行解密,以得到包括第三随机数字段和第四随机数字段的第一解密消息。
S150、若第一解密消息与第二预设随机数集合包含的随机数字段相同,则进行加密通信。
在实施例中,在客户端得到第一解密消息之后,将第一解密消息和第二预设随机数集合进行比对分析。具体来说,第二预设随机数集合中包括第三随机数字段和第四随机数字段,若第一解密消息中所包含的第三随机数字段和第四随机数字段,分表与第二预设随机数集合中的第三随机数字段和第四随机数字段相同,则表明服务器对客户端的安全认证通过,从而可以在服务器和客户端之间进行加密通信。
本实施例的技术方案,通过客户端随机生成的第一AES密钥对第一预设随机数集合进行加密,以得到第一通信密文,以使服务器对第一通信密文进行解密;然后客户端通过第一AES密钥解密服务器返回的第二通信密文,得到第一解密消息,若第一解密消息和第二预设随机数集合包含的随机数字段相同,则进行加密通信,解决了现有技术中需采用庞大的加密套件对服务器和客户端进行认证而导致汽车ECU数据处理负担的问题,实现了在降低代码冗余度的同时,完成了对服务器和客户端的可选数据进行加密,从而保证了通信和数据的机密性、完整性和真实性。
在上述实施例的基础上,为了保证客户端和服务器之间的正常加密通信,在通过第一AES密钥对第一预设随机数集合进行加密之前,需在客户端和服务器之间交换参数。图2是本发明实施例提供的另一种应用于客户端的通信方法的流程图,参考图2,该通信方法包括如下步骤:
S210、向服务器发送第一问候消息。
其中,第一问候消息包括第一请求字段、第一随机数字段和第一签名字段,第一签名字段为通过客户端的椭圆曲线数字签名算法(Elliptic Curve Digital SignatureAlgorithm,ECDSA)签名公钥对应的私钥对第一预设哈希值进行加密得到,第一预设哈希值为对第一请求字段、第一随机数字段和服务器的ECDSA签名公钥进行哈希运算得到。
在实施例中,第一请求字段指的是第一问候消息的类型-长度-值(Type-Length-Value,TVL)格式;第一随机数字段指的是一个用于客户端生成主密钥的32字节的随机数;第一签名字段是对第一请求字段、第一随机数字段和服务器的ECDSA签名公钥进行哈希运算,然后通过客户端的ECDSA签名公钥对应的私钥对哈希运算得到的数据进行加密而得到的一串数据。其中,ECDSA签名公钥为通过ECDSA算法随机生成的密钥。在此需要说明的是,由于ECDSA算法是非对称加密算法,则ECDSA签名公钥和ECDSA签名私钥是成对出现的。
S220、接收服务器返回的第二问候消息。
其中,第二问候消息包括第一椭圆曲线Diffie-Hellman(Elliptic CurvcDiffie-Hellman,ECDH)参数字段、第二随机数字段和第二签名字段,第二签名字段为通过服务器的ECDSA签名公钥对应的私钥对第二预设哈希值进行加密得到,第二预设哈希值为对第一ECDH参数字段、第二随机数字段和客户端的ECDSA签名公钥进行哈希运算得到。其中,ECDH是基于椭圆曲线密码体制(Elliptic Curve Cryptosystems,ECC)的DH密钥交换算法,客户端和服务器可以在不共享任何秘密的情况下协商出一个密钥。
在实施例中,第一ECDH参数字段指的是采用ECDH算法所对应的各个参数(比如,ECDH协议依赖的两个公共参数等);第二随机数字段指的是一个用于服务器生成主密钥的32字节的随机数;第二签名字段是对第一ECDH参数字段、第二随机数字段和客户端的ECDSA签名公钥进行哈希运算,然后通过服务器的ECDSA签名公钥对应的私钥对哈希运算得到的数据进行加密而得到的一串数据。
S230、向服务器反馈ECDH消息。
其中,ECDH消息包括:第二ECDH参数字段、第三随机数字段和第三签名字段,第三签名字段为通过客户端的ECDSA签名公钥对应的私钥对第三预设哈希值进行加密得到,第三预设哈希值为对第二ECDH参数字段、第三随机数字段和服务器的ECDSA签名公钥进行哈希运算得到。
在实施例中,第二ECDH参数字段指的是采用ECDH算法所对应的各个参数;第三随机数字段指的是用于服务器生成主密钥的32字节的随机数;第三签名字段指的是对第二ECDH参数字段、第三随机数字段和服务器的ECDSA签名公钥进行哈希运算,然后通过客户端的ECDSA签名公钥对应的私钥对哈希运算得到的数据进行加密而得到的一串数据。
S240、根据第一ECDH参数字段生成第一AES密钥。
在实施例中,客户端通过服务器发送的第一ECDH参数字段计算出第一AES密钥。其中,根据ECDH参数生成AES密钥的具体过程参照现有技术中的具体方式,在此不再赘述。
S250、通过随机生成的第一AES密钥加密第一预设随机数集合,得到第一通信密文。
S260、将第一通信密文发送至服务器,以使服务器通过随机生成的第二AES密钥对第一通信密文进行解密。
S270、接收服务器返回的第二通信密文。
其中,第二通信密文是通过第二AES密钥加密第二预设随机数集合得到。
S280、通过第一AES密钥解密第二通信密文,得到第一解密消息。
S290、若第一解密消息与第二预设随机数集合包含的随机数字段相同,则进行加密通信。
在上述实施例的基础上,为了保证密钥的安全性,需对密钥进行数据写入和属性配置。具体的,在向服务器发送第一问候消息之前,还包括:将服务器的ECDSA签名公钥和预生成的RSA密钥存储在客户端的可信赖平台模块(Trusted Platform Module,TPM)的非易失存储器(Non-volatile memory,NVM);对NVM的访问属性进行设置。
在此需要说明的是,为了保证数据的安全性,通过将关键数据预先写入一个安全的环境下,然后对该安全的环境进行属性配置,以防止对写入数据进行非法篡改。在实施例中,客户端中集成有TPM安全芯片,并通过TPM安全芯片将服务器的ECDSA签名公钥预先写入客户端的TPM的NVM中,从而保证了只有在客户端的TPM安全芯片被重置的情况下,才可以对NVM内部的数据进行修改。当然,为了保证TPM安全芯片只有被重置的情况下,才可以对NVM内部的数据进行修改,需对NVM的访问属性进行设置。在实施例中,客户端将NVM的访问属性至少设置为TPMA_NV_AUTHWRITE|TPMA_NV_AUTHREAD|TPMA_NV_WRITEDEFINE,从而保证NVM中的数据写入之后,除了TPM安全芯片重置之外,无法对NVM中的数据进行更改。
在上述实施例的基础上,为了实现客户端和服务器之间的快速认证,在加密通信之后,可对第二通信密文中的数据信息作进一步处理。图3是本发明实施例提供的又一种应用于客户端的通信方法的流程图。参考图3,该通信方法包括:
S310、对客户端的可信赖平台模块TPM中非易失存储器NVM的访问属性进行设置。
S320、将服务器的ECDSA签名公钥和预生成的RSA密钥存储在NVM。
S330、向服务器发送第一问候消息。
其中,第一问候消息包括第一请求字段、第一随机数字段和第一签名字段,第一签名字段为通过客户端的椭圆曲线数字签名算法ECDSA签名公钥对应的私钥对第一预设哈希值进行加密得到,第一预设哈希值为对第一请求字段、第一随机数字段和服务器的ECDSA签名公钥进行哈希运算得到。
S340、接收服务器返回的第二问候消息。
其中,第二问候消息包括第一椭圆曲线密码体制ECDH参数字段、第二随机数字段和第二签名字段,第二签名字段为通过服务器的ECDSA签名公钥对应的私钥对第二预设哈希值进行加密得到,第二预设哈希值为对第一ECDH参数字段、第二随机数字段和客户端的ECDSA签名公钥进行哈希运算得到。
S350、向服务器反馈ECDH消息。
其中,ECDH消息包括:第二ECDH参数字段、第三随机数字段和第三签名字段,第三签名字段为通过客户端的ECDSA签名公钥对应的私钥对第三预设哈希值进行加密得到,第三预设哈希值为对第二ECDH参数字段、第三随机数字段和服务器的ECDSA签名公钥进行哈希运算得到;
S360、根据第一ECDH参数字段生成第一AES密钥。
S370、通过随机生成的第一高级加密标准AES密钥加密第一预设随机数集合,得到第一通信密文。
S380、将第一通信密文发送至服务器,以使服务器通过随机生成的第二AES密钥对第一通信密文进行解密。
S390、接收服务器返回的第二通信密文,第二通信密文是通过第二AES密钥加密第二预设随机数集合得到。
S3100、通过第一AES密钥解密第二通信密文,得到第一解密消息;
S3110、若第一解密消息与第二预设随机数集合包含的随机数字段相同,则进行加密通信。
S3120、基于第二通信密文中包括的预先加密生成的第三通信密文,根据RSA密钥生成RSA加密密钥。
其中,第三通信密文为通过第三AES密钥对生成第二AES密钥的过程和客户端的互联网协议(Internet Protocol,IP)地址进行加密得到。在此需要说明的是,在服务器对第二预设随机数集合进行加密的同时,还会对第三通信密文进行加密,以得到第二通信密文。可以理解为,第三通信密文是服务器通过私人密钥加密处理得到的,在该第三通信密文中包括生成第二AES密钥的所有信息和客户端IP。其中,服务器的私人密钥与所采用的加密算法有关,比如,服务器采用AES加密算法,则私人密钥可以为第三AES密钥。当然,服务器也可采用其它的加密算法,对此并不进行限定,相应的,其私人密钥也会随服务器所采用的加密算法而变化。
在实施例中,客户端在第三通信密文、服务器IP和第一AES密钥之间建立关联关系,即可以通过其一参数可以查找到另外的两个参数信息,比如,通过第三通信密文可以查找到服务器IP和第一AES密钥。然后将第三通信密文扩展进TPM安全芯片的寄存器中,比如,该寄存器为PCR,则将该存入第三通信密文的寄存器PCR记为PCR15。在此需要说明的是,在PCR15中存储的是第三通信密文的哈希值。在将第三通信密文存入TPM安全芯片的寄存器之后,客户端调用TPM安全芯片,将RSA密钥和PCR15中的第三通信密文进行关联,以派生出RSA加密密钥。其中,RSA密钥可以理解为客户端的主密钥。
S3130、通过RSA加密密钥加密服务器IP和第一AES密钥,生成加密块。
在实施例中,客户端通过RSA加密密钥对服务器IP和第一AES密钥进行加密,以得到加密块。其中,通过RSA加密密钥对服务器IP和第一AES密钥进行加密的具体过程,参考现有技术中的RSA加密算法的加密过程,在此不再赘述。
S3140、将第三通信密文和加密块存储在客户端的嵌入式多媒体卡(EmbeddedMulti Media Card,EMMC)。
在此需要说明的是,嵌入式多媒体卡可以随意从客户端上移除,从而无法保证嵌入式多媒体卡中数据的安全性。需要理解的是,在RSA密钥和PCR15中的第三通信密文之间建立关联关系,是为了防止对嵌入式多媒体卡中的第三通信密文进行篡改之后,无法通过RSA加密密钥对加密块进行解密,以得到服务器IP和第一AES密钥。
在上述实施例的基础上,在将第三通信密文和加密块存储在客户端的嵌入式多媒体卡EMMC之后,还包括:对加密块设置预设工作时长;在预设工作时长内,通过RSA加密密钥解密所述加密块,得到服务器IP和第一AES密钥。
在此需要说明的是,本技术方案的通信方法是建立在传输控制协议(Transmission Control Protocol,TCP)连接上,并采用客户端/服务器(Client/Server,C/S)模式而实现的。而TCP连接是有一定时间限制的,即,在超过预先设定时间时,需在客户端和服务器之间重新建立连接。在实施例中,对加密块设置计时器,以监控客户端和服务器之间的已连接时间,若已连接时间达到预设工作时长,则表明客户端和服务器之间的连接已经到期,需删除加密块;反之,在已连接时间未达到预设工作时长之前,可以通过RSA加密密钥对加密块进行解密,以得到服务器IP和第一AES密钥,以为后续的客户端和服务器之间的握手恢复建立基础。
在上述实施例的基础上,在客户端和服务器之间的已连接时间未达到预设工作时长之前,客户端可以从EMMC中读取第三通信密文,并将第三通信密文扩展进TPM安全芯片的寄存器中,即PCR15中,并通过RSA密钥派生出新的RSA加密密钥。然后,客户端采用新的RSA加密密钥解密加密块,若解密失败,则删除加密块,表明有恶意数据对EMMC中的第三通信密文进行恶意篡改,则发送解密失败报告以及有恶意数据进行非法篡改的报告,然后在客户端和服务器之间重新进行安全握手。当然,若采用新的RSA加密密钥可以解密加密块,则客户端向服务器发送第三通信密文,服务器通过第三AES密钥对第三通信密文进行解密,以得到第二AES密钥,然后服务器和客户端之间恢复握手,从而在设定时间内可以快速在客户端和服务器之间建立已经断开的安全通信。
图4是本发明实施例提供的一种应用于服务器的通信方法的流程图,本实施例中提供的通信方法可以由通信设备执行,该通信设备可以通过软件和/或硬件的方式实现,该通信设备可以是两个或多个物理实体构成,也可以是一个物理实体构成。本实施例中通信设备为服务器端。
参考图4,该通信方法具体包括如下步骤:
S410、接收客户端发送的第一通信密文。
其中,第一通信密文是通过第一AES密钥加密第一预设随机数集合得到。在实施例中,第一预设随机数集合包括客户端生成的第一随机数字段、服务器发送的第二随机数字段、客户端生成的第三随机数字段以及第四随机数字段。其中,生成第一通信密文的具体过程见上述实施例中的详细描述,在此不再赘述。
S420、通过随机生成的第二AES密钥解密第一通信密文,得到第二解密消息。
在实施例中,服务器在接收到第一通信密文之后,通过第二AES密钥对第一通信密文进行解密,以得到包括第一随机数字段、第二随机数字段、第三随机数字段和第四随机数字段的第二解密消息。然后,将第二解密消息中的第一随机数字段、第二随机数字段、第三随机数字段和预先接收到的第一随机数字段、第二随机数字段和第三随机数字段进行对比分析,若不相同,服务器主动断开与客户端之间的TCP连接;若相同,则表明客户端对服务器的安全认证通过。
S430、通过第二AES密钥加密第二预设随机数集合,以得到第二通信密文。
其中,第二预设随机数集合至少包括两个随机数字段,并且至少包括第四随机数字段。对第二预设随机数集合的解释见上述实施例的描述,在此不再赘述。在实施例中,以第二预设随机数集合为第四随机数字段和第三随机数字段为例,对第二通信密文的生成进行说明。在实施例中,服务器通过随机生成的第二AES密钥对第四随机数字段和第三随机数字段进行加密,以得到第二通信密文。
S440、将第二通信密文发送至客户端,以使客户端通过第一AES密钥对第二通信密文进行解密。
在实施例中,服务器将得到的第二通信密文以以太网通信或Wi-Fi通信发送至客户端,在客户端接收到第二通信密文之后,通过第一AES密钥对第二通信密文进行解密,以得到第一解密消息,若第一解密消息中包含的第三随机数字段和第四随机数字段,分别与预先接收到的第三随机数字段和第四随机数字段相同,则表明服务器对客户端的安全认证通过。
S450、若第二解密消息与第一预设随机数集合包含的随机数字段相同,则进行加密通信。
在实施例中,在服务器得到第二解密消息之后,将第二解密消息和第一预设随机数集合进行比对分析。其中,第一预设随机数集合中包括第一随机数字段、第二随机数字段、第三随机数字段和第四随机数字段。需要说明的是,服务器中的第四随机数字段是随第一通信密文接收到的,在服务器接收到第一通信密文之前,未接收到第四随机数字段,则在对第二解密消息和第一预设随机数进行比对时,只需对两者之间的第一随机数字段、第二随机数字段和第三随机数字段进行互相比对即可,若这三个随机数字段分别对应相同,表明服务器对客户端的安全认证通过,则可以在服务器和客户端之间进行加密通信。
本实施例的技术方案,通过服务器随机生成的第二AES密钥对第一通信密文进行解密,得到第二解密消息,并通过第二AES密钥加密第二预设随机数集合,以得到第二通信密文,并将第二通信密文发送至客户端,以使客户端通过第一AES密钥对第二通信密文进行解密,若第二解密消息与第一预设随机数集合包含的随机数字段相同,则进行加密通信,解决了现有技术中需采用庞大的加密套件对服务器和客户端进行认证而导致汽车ECU数据处理负担的问题,实现了在降低代码冗余度的同时,完成了对服务器和客户端的可选数据进行加密,从而保证了通信和数据的机密性、完整性和真实性。
在上述实施例的基础上,为了保证客户端和服务器之间的正常加密通信,在接收客户端发送的第一通信密文之前,需在客户端和服务器之间交换参数。图5是本发明实施例提供的另一种应用于服务器的通信方法的流程图,参考图5,该通信方法包括如下步骤:
S510、接收客户端发送的第一问候消息。
其中,第一问候消息包括第一请求字段、第一随机数字段和第一签名字段,第一签名字段为通过客户端的椭圆曲线数字签名算法ECDSA签名公钥对应的私钥对第一预设哈希值进行加密得到,第一预设哈希值为对第一请求字段、第一随机数字段和服务器的ECDSA签名公钥进行哈希运算得到。
S520、向客户端反馈第二问候消息。
其中,第二问候消息包括第一椭圆曲线Diffie-Hellman(Elliptic CurvcDiffie-Hellman,ECDH)参数字段、第二随机数字段和第二签名字段,第二签名字段为通过服务器的ECDSA签名公钥对应的私钥对第二预设哈希值进行加密得到,第二预设哈希值为对第一ECDH参数字段、第二随机数字段和客户端的ECDSA签名公钥进行哈希运算得到。
在实施例中,对第二问候消息中各个参数的具体解释见上述实施例的描述,在此不再赘述。
S530、接收客户端发送的ECDH消息。
其中,ECDH消息包括:第二ECDH参数字段、第三随机数字段和第三签名字段,第三签名字段为通过客户端的ECDSA签名公钥对应的私钥对第三预设哈希值进行加密得到,第三预设哈希值为对第二ECDH参数字段、第三随机数字段和服务器的ECDSA签名公钥进行哈希运算得到。
在实施例中,对ECDH消息中各个参数的具体解释见上述实施例的描述,在此不再赘述。
S540、根据第二ECDH参数字段生成第二AES密钥。
在实施例中,服务器通过客户端发送的第二ECDH参数字段计算出第二AES密钥。其中,根据ECDH参数生成AES密钥的具体过程参照现有技术中的具体方式,在此不再赘述。
S550、接收客户端发送的第一通信密文。
其中,第一通信密文是通过第一高级加密标准AES密钥加密第一预设随机数集合得到。
S560、通过随机生成的第二AES密钥解密第一通信密文,得到第二解密消息。
S570、通过第二AES密钥加密第二预设随机数集合,以得到第二通信密文。
S580、将第二通信密文发送至客户端,以使客户端通过第一AES密钥对第二通信密文进行解密。
S590、若第二解密消息与第一预设随机数集合包含的随机数字段相同,则进行加密通信。
在上述实施例的基础上,为了保证密钥的安全性,需对密钥进行数据写入和属性配置。具体的,在接收客户端发送的第一问候消息之前,还包括:将客户端的ECDSA签名公钥存储在服务器的可信存储区。
在此需要说明的是,为了保证客户端和服务器中关键数据的安全性,可将关键数据预先写入一个安全的环境中。在实施例中,服务器将客户端的ECDSA签名公钥预先写入服务器的可信存储区中。其中,可信存储区指的是服务器中一个比较安全的存储区域,其可信存储区的位置与服务器自身的属性信息有关。
在上述实施例的基础上,以客户端和服务器之间交互的方式对通信方法进行说明。图6是本发明实施例提供的一种通信方法的交互流程图。在此需要说明的是,TMP安全芯片为客户端中的一部分,为了更便于对通信方法的理解,以TPM安全芯片、客户端和服务器三端交互的方式对通信方法的步骤进行说明。
参考图6,该通信方法包括如下步骤:
S610、生成第一随机数字段。
其中,第一随机数字段记为nonce1。
S620、向服务器发送第一问候消息。
在实施例中,客户端将第一问候消息记为Client Hello消息,并且Client Hello消息中包含第一请求字段、nonce1、第一签名字段。其中,签名的输入包括第一请求字段、nonce1、服务器的ECDSA签名公钥Sp1。具体的,对第一请求字段、nonce1和Sp1进行哈希运算,并通过客户端的ECDSA签名公钥Cp1对应的私钥对哈希运算得到的数据进行加密得到。
S630、向客户端返回第二问候消息。
在实施例中,服务器端接收到Client Hello消息,先验证第一签名字段,若第一签名字段核验不通过,丢弃该Client Hello消息;若验证通过后返回Server Hello第二问候消息,并将第二问候消息记为Server Hello消息,并在该消息中包含第一ECDH参数字段,记为ServerEcParam、第二随机数字段,记为nonce2、第二签名字段。其中,第二签名字段的输入包括第一ECDH参数字段、nonce2、客户端的ECDSA签名公钥Cp1。具体的,对第一ECDH参数字段、nonce2和Cp1进行哈希运算,并通过服务器的ECDSA签名公钥Sp1对应的私钥对哈希运算得到的数据进行加密得到。
S640、生成第二ECDH参数字段。
S650、向服务器反馈ECDH消息。
在实施例中,在客户端接收到Server Hello消息后,先验证第二签名字段,若第二签名字段核验不通过,丢弃该消息;若验证通过后发送ECDH消息,并将该ECDH消息记为Client ECDH消息,该消息中包含第二ECDH参数字段,记为ClientEcParam、第三随机数字段,记为nonce3、第三签名字段。其中,第三签名字段的输入包括ClientEcParam、nonce3、Sp1。具体的,对ClientEcParam、nonce3和Sp1进行哈希运算,并通过客户端的ECDSA签名公钥Cp1对应的私钥对哈希运算得到的数据进行加密得到。
S660、生成第一AES密钥和第四随机数字段。
在实施例中,客户端通过服务器发送的ServerEcParam,计算出第一AES密钥,记为Cencry1。同时,客户端随机生成一个32字节的随机数,得到第四随机数字段,并记为nonce4。
S670、生成第一通信密文。
在实施例中,客户端通过Cencry1对接收到的nonce1、nonce2、nonce3和新生成的nonce4进行加密,得到第一通信密文,并将第一通信密文记为Client Enc。其中,nonce1、nonce2、nonce3和新生成的nonce4记为第一预设随机数集合。
S680、向服务器发送第一通信密文。
在实施例中,客户端以以太网通信或Wi-Fi通信将Client Enc发送至服务器。
S690、解密第一通信密文,以得到第二解密消息。
在实施例中,服务器接收到Client ECDH消息,先核验第三签名字段,若第三签名字段核验不通过,丢弃该消息;若验证通过后,利用客户端发送的ClientEcParam,计算出第二AES密钥,记为Sencry1。然后,服务器通过Sencry1对第一通信密文进行解密,以得到第二解密消息。
S6100、将第二解密消息与预先接收到的第一随机数字段、第二随机数字段以及第三随机数字段进行比对。
在实施例中,服务器对第二解密消息中的nonce1、nonce2、nonce3与之前服务器接收到的nonce1、nonce2、nonce3进行对比,若不相同,服务器主动断开TCP连接,要求重新连接;若相同,执行步骤S6140。
S6110、生成第二通信密文。
在实施例中,服务器通过Sencry1对第二预设随机数集合和第三通信密文进行加密,得到第二通信密文,记为ServerEnc。其中,第二预设随机数集合包括nonce3、nonce4;第三通信密文记为nonceTicket。其中,nonceTicket是经过服务器私人密钥Sencry2加密处理过的,并且包含有生成Sencry1的所有信息和客户端IP。
S6120、向客户端发送第二通信密文。
在实施例中,服务器以以太网通信或Wi-Fi通信将ServerEnc发送至客户端。
S6130、解密第二通信密文,以得到第一解密消息。
在实施例中,客户端接收到服务器发送的ServerEnc之后,客户端利用Cencry1对ServerEnc解密,得到第一解密消息。
S6140、将第一解密消息与预先接收到的第三随机数字段以及第四随机数字段进行比对。
在实施例中,客户端对第一解密消息中的nonce3和nonce4与之前接收到的nonce3和nonce4进行对比,若不相同,客户端主动断开TCP连接,要求重新连接;若相同,开始加密回话,并执行步骤S6160。
S6150、生成RSA密钥。
在实施例中,由TPM生成RSA密钥,并将RSA密钥记为Rs1,并将Rs1移入NVM中。
S6160、将第三通信密文、服务器IP和第一AES密钥进行关联,并发送至TPM安全芯片。
在实施例中,客户端在nonceTicket、服务器IP和Cencry1之间设置关联关系,并将nonceTicket、服务器IP和Cencry1发送至TPM安全芯片。
S6170、将第三通信密文扩展到TPM的寄存器中。
在实施例中,将nonceTicket扩展进TPM的寄存器PCR中,并将存储有nonceTicket的PCR记为PCR15。其中,在该PCR15存储的是nonceTicket的哈希值。
S6180、根据RSA密钥和第三通信密文PCR15生成RSA加密密钥。
在实施例中,客户端调用TPM安全芯片,由Rs1关联PCR15派生出RSA加密密钥,记为Renc1。
S6190、通过RSA加密密钥加密第三通信密文、服务器IP和第一AES密钥,生成加密块。
在实施例中,通过Renc1加密nonceTicket、服务器IP和Cencry1,生成加密块,并将加密块记为Renc1Block。
S6200、将加密块和第三通信密文存储在客户端的EMMC。
在实施例中,将Renc1Block和nonceTicket存储在客户端的EMMC中。
S6210、启动加密块的计时器。
在实施例中,客户端为Renc1Block设置计时器,并计时N小时。当N小时到期后,删除Renc1Block;在N小时到期之前,客户端可以通过Renc1解密Renc1Block,以解封服务器IP、Cencry1。
S6220、读取EMMC中的第三通信密文,并再次将其扩展到TPM的寄存器中,并根据RSA密钥和第三通信密文生成新的RSA加密密钥。
在实施例中,在N小时未到期之前,客户端可以从本地EMMC中读取nonceTicket,并将nonceTicket扩展进TPM的PCR15,并由Rs1和nonceTicket派生出新的RSA加密密钥,记为Renc2。
S6230、采用新的RSA加密密钥对加密块进行解密。
在实施例中,客户端调用Renc2解密Renc1Block,若解密失败,则删除RencBlock,并报告有恶意数据对EMMC中的数据进行非法修改,并重新在客户端和服务器之间建立连接;若可以解密,执行步骤S6240。
S6240、向服务器发送第三通信密文。
在实施例中,客户端将nonceTicket发送至服务器。
S6250、采用第三AES密钥对第三通信密文解密,以恢复第二AES密钥。
在实施例中,服务器采用Sencry2对nonceTicket进行解密,并恢复第二AES密钥Sencry1,从而使得服务器和客户端恢复握手。
在此需要说明的是,步骤S610-步骤S6210为服务器和客户端之间的安全握手阶段,而步骤S6220-步骤S6250为服务器和客户端之间的握手恢复阶段。当然,在安全握手阶段,还包括数据写入和TPM访问属性的配置阶段,即步骤S310和步骤S320,具体解释见上述实施例的描述,在此不再赘述。
在实施例中,客户端为汽车端,RSA采用RSA2048,签名采用ECDSA,ECC曲线为P-256,哈希算法为SHA256,AES为AES128-GCM。
本实施例的技术方案,通过在客户端中配置TPM安全芯片,提供了可信的存储环境,并通过随机数、ECDSA签名、RSA加密和AES加密完成客户端和服务器的双向认证以及对可选的数据进行加密,避免了采用多种加密套件进行加密而导致汽车ECU数据处理负担的问题,从而在降低代码冗余度的同时,更加直接的、具有针对性的处理逻辑提高了客户端的执行速度,以及保证了通信的机密性、完整性和真实性。
图7是本发明实施例提供的一种通信装置的结构框图。本实施例的通信装置可设置于客户端中,参考图7,该通信装置包括:第一加密模块710、第一发送模块720、第一接收模块730、第一解密模块740和第一判断模块750。
其中,第一加密模块710,用于通过随机生成的第一高级加密标准AES密钥加密第一预设随机数集合,得到第一通信密文;
第一发送模块720,用于将第一通信密文发送至服务器,以使服务器通过随机生成的第二AES密钥对第一通信密文进行解密;
第一接收模块730,用于接收服务器返回的第二通信密文,第二通信密文是通过第二AES密钥加密第二预设随机数集合得到;
第一解密模块740,用于通过第一AES密钥解密第二通信密文,得到第一解密消息;
第一判断模块750,用于若第一解密消息与第二预设随机数集合包含的随机数字段相同,则进行加密通信。
本实施例提供的技术方案,通过客户端随机生成的第一AES密钥对第一预设随机数集合进行加密,以得到第一通信密文,以使服务器对第一通信密文进行解密;然后客户端通过第一AES密钥解密服务器返回的第二通信密文,得到第一解密消息,若第一解密消息和第二预设随机数集合包含的随机数字段相同,则进行加密通信,解决了现有技术中需采用庞大的加密套件对服务器和客户端的数据进行加密而导致汽车ECU数据处理负担的问题,实现了在降低代码冗余度的同时,完成了对服务器和客户端的可选数据进行加密,从而保证了通信和数据的机密性、完整性和真实性。
在上述实施例的基础上,通信装置,还包括:
第一问候消息发送模块,用于在通过随机生成的第一AES密钥加密第一预设随机数集合之前,向服务器发送第一问候消息,第一问候消息包括第一请求字段、第一随机数字段和第一签名字段,第一签名字段为通过客户端的椭圆曲线数字签名算法ECDSA签名公钥对应的私钥对第一预设哈希值进行加密得到,第一预设哈希值为对第一请求字段、第一随机数字段和服务器的ECDSA签名公钥进行哈希运算得到;
第二问候消息接收模块,用于接收服务器返回的第二问候消息,第二问候消息包括第一椭圆曲线密码体制ECDH参数字段、第二随机数字段和第二签名字段,第二签名字段为通过服务器的ECDSA签名公钥对应的私钥对第二预设哈希值进行加密得到,第二预设哈希值为对第一ECDH参数字段、第二随机数字段和客户端的ECDSA签名公钥进行哈希运算得到;
ECDH消息反馈模块,用于向服务器反馈ECDH消息,ECDH消息包括:第二ECDH参数字段、第三随机数字段和第三签名字段,第三签名字段为通过客户端的ECDSA签名公钥对应的私钥对第三预设哈希值进行加密得到,第三预设哈希值为对第二ECDH参数字段、第三随机数字段和服务器的ECDSA签名公钥进行哈希运算得到;
第一AES密钥生成模块,用于根据第一ECDH参数字段生成第一AES密钥。
在上述实施例的基础上,通信装置,还包括:
属性设置模块,用于在向服务器发送第一问候消息之前,对客户端的可信赖平台模块TPM中非易失存储器NVM的访问属性进行设置;
第一存储模块,用于将服务器的ECDSA签名公钥和预生成的RSA密钥存储在NVM。
在上述实施例的基础上,通信装置,还包括:
RSA加密密钥生成模块,用于在加密通信之后,基于第二通信密文中包括的预先加密生成的第三通信密文,根据RSA密钥生成RSA加密密钥,第三通信密文为通过第三AES对生成第二AES密钥的过程和客户端IP进行加密得到;
加密块生成模块,用于通过RSA加密密钥加密服务器IP和第一AES密钥,生成加密块;
第二存储模块,用于将第三通信密文和加密块存储在客户端的嵌入式多媒体卡EMMC。
在上述实施例的基础上,通信装置,还包括:
时长设置模块,用于在将第三通信密文和加密块存储在客户端的嵌入式多媒体卡EMMC之后,对加密块设置预设工作时长;
加密块解密模块,用于在预设工作时长内,通过RSA加密密钥解密加密块,得到服务器IP和第一AES密钥。
上述通信装置可执行本发明任意实施例所提供的设置于客户端的通信方法,具备执行方法相应的功能模块和有益效果。
图8是本发明实施例提供的另一种通信装置的结构框图。本实施例的通信装置可设置于服务器端中,参考图8,该通信装置包括:第二接收模块810、第二解密模块820、第二加密模块830、第二发送模块840和第二判断模块850。
其中,第二接收模块810,用于接收客户端发送的第一通信密文,第一通信密文是通过第一高级加密标准AES密钥加密第一预设随机数集合得到;
第二解密模块820,用于通过随机生成的第二AES密钥解密第一通信密文,得到第二解密消息;
第二加密模块830,用于通过第二AES密钥加密第二预设随机数集合,以得到第二通信密文;
第二发送模块840,用于将第二通信密文发送至客户端,以使客户端通过第一AES密钥对第二通信密文进行解密;
第二判断模块850,用于若第二解密消息与第一预设随机数集合包含的随机数字段相同,则进行加密通信。
在上述实施例的基础上,该通信装置,还包括:
第一问候消息接收模块,用于在接收客户端发送的第一通信密文之前,接收客户端发送的第一问候消息,第一问候消息包括第一请求字段、第一随机数字段和第一签名字段,第一签名字段为通过客户端的椭圆曲线数字签名算法ECDSA签名公钥对应的私钥对第一预设哈希值进行加密得到,第一预设哈希值为对第一请求字段、第一随机数字段和服务器的ECDSA签名公钥进行哈希运算得到;
第二问候消息反馈模块,用于向客户端反馈第二问候消息,第二问候消息包括第一椭圆曲线密码体制ECDH参数字段、第二随机数字段和第二签名字段,第二签名字段为通过服务器的ECDSA签名公钥对应的私钥对第二预设哈希值进行加密得到,第二预设哈希值为对第一ECDH参数字段、第二随机数字段和客户端的ECDSA签名公钥进行哈希运算得到;
ECDH消息接收模块,用于接收客户端发送的ECDH消息,ECDH消息包括:第二ECDH参数字段、第三随机数字段和第三签名字段,第三签名字段为通过客户端的ECDSA签名公钥对应的私钥对第三预设哈希值进行加密得到,第三预设哈希值为对第二ECDH参数字段、第三随机数字段和服务器的ECDSA签名公钥进行哈希运算得到;
第二AES密钥生成模块,用于根据第二ECDH参数字段生成第二AES密钥。
在上述实施例的基础上,通信装置,还包括:
第三存储模块,用于在接收客户端发送的第一问候消息之前,将客户端的ECDSA签名公钥存储在服务器的可信存储区。
上述通信装置可执行本发明任意实施例所提供的设置于服务器端的通信方法,具备执行方法相应的功能模块和有益效果。
图9是本发明实施例提供的一种通信系统的结构示意图。参考图9,该通信系统包括:客户端910和服务器920。
其中,客户端910为汽车端,并且在该汽车端中安装有TPM安全芯片,并且该汽车端的服务器920为一种后台服务器,可与客户端910之间建立以太网通信或Wi-Fi通信。
其中,客户端910集成TPM安全芯片,且设置如上述实施例中所述的应用于客户端910的通信装置;所述服务器设置如上述实施例中所述的应用于服务器920的通信装置。
需要说明的是,本实施例中客户端910的数量不作限定。同时,本实施例中的客户端910和服务器920可分别执行上述各个对应的通信方法,具体的执行过程可参见上述通信方法,在此不再赘述。
图10是本发明实施例提供的一种通信设备的结构示意图。参考图10,该通信设备包括:处理器1010、存储器1020、输入装置1030以及输出装置1040。该通信设备中处理器1010的数量可以是一个或者多个,图10中以一个处理器1010为例。该通信设备中存储器1020的数量可以是一个或者多个,图10中以一个存储器1020为例。该通信设备的处理器1010、存储器1020、输入装置1030以及输出装置1040可以通过总线或者其他方式连接,图10中以通过总线连接为例。实施例中,该通信设备可为客户端,该客户端为汽车端。
存储器1020作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明任意实施例所述的通信设备对应的程序指令/模块(例如,通信装置中的第一加密模块710、第一发送模块720、第一接收模块730、第一解密模块740和第一判断模块750)。存储器1020可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序;存储数据区可存储根据设备的使用所创建的数据等。此外,存储器1020可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器1020可进一步包括相对于处理器1010远程设置的存储器,这些远程存储器可以通过网络连接至设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置1030可用于接收输入的数字或者字符信息,以及产生与设备的用户设置以及功能控制有关的键信号输入,还可以是用于获取图像的摄像头以及获取音频数据的拾音设备。输出装置1040可以包括扬声器等音频设备。需要说明的是,输入装置1030和输出装置1040的具体组成可以根据实际情况设定。
处理器1010通过运行存储在存储器1020中的软件程序、指令以及模块,从而执行设备的各种功能应用以及数据处理,即实现上述的通信方法。
上述提供的通信设备可用于执行上述任意实施例提供的应用于客户端的通信方法,具备相应的功能和有益效果。
此外,通信设备为服务器时,其硬件结构可参见通信设备为服务器时的内容解释。需要说明的是,当通信设备为服务器时,对应的存储器1020中存储的程序可以是本发明实施例所提供应用于服务器的通信方法对应的程序指令/模块,处理器1010通过运行存储在存储器1020中的软件程序、指令以及模块,从而执行计算机设备的各种功能应用以及数据处理,即实现上述方法实施例中应用于服务器的通信方法。可以理解的是,上述通信设备为服务器时,可执行本发明任意实施例所提供的应用于服务器的通信方法,且具备相应的功能和有益效果。
本发明实施例还提供一种包含计算机可执行指令的存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种通信方法,包括:
通过随机生成的第一高级加密标准AES密钥加密第一预设随机数集合,得到第一通信密文;将第一通信密文发送至服务器,以使服务器通过随机生成的第二AES密钥对第一通信密文进行解密;接收服务器返回的第二通信密文,第二通信密文是通过第二AES密钥加密第二预设随机数集合得到;通过第一AES密钥解密第二通信密文,得到第一解密消息;若第一解密消息与第二预设随机数集合包含的随机数字段相同,则进行加密通信。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的应用于客户端的通信方法操作,还可以执行本发明任意实施例所提供的应用于客户端的通信方法中的相关操作,且具备相应的功能和有益效果。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台计算机设备(可以是机器人,个人计算机,服务器,或者网络设备等)执行本发明任意实施例所述的通信方法。
本发明实施例的计算机存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、射频等等,或者上述的任意合适的组合。可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在客户端上执行。
值得注意的是,上述通信装置中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本发明实施例还提供了另一种计算机可读存储介质,所述计算机可执行指令在由计算机处理器执行时用于执行一种应用于服务器的通信方法,该方法包括:接收客户端发送的第一通信密文,第一通信密文是通过第一高级加密标准AES密钥加密第一预设随机数集合得到;通过随机生成的第二AES密钥解密第一通信密文,得到第二解密消息;通过第二AES密钥加密第二预设随机数集合,以得到第二通信密文;将第二通信密文发送至客户端,以使客户端通过第一AES密钥对第二通信密文进行解密;若第二解密消息与第一预设随机数集合包含的随机数字段相同,则进行加密通信。
对存储介质的介绍可参见上述实施例中的内容解释。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (13)

1.一种通信方法,其特征在于,包括:
通过随机生成的第一高级加密标准AES密钥加密第一预设随机数集合,得到第一通信密文;
将所述第一通信密文发送至服务器,以使所述服务器通过随机生成的第二AES密钥对所述第一通信密文进行解密;
接收服务器返回的第二通信密文,所述第二通信密文是通过所述第二AES密钥加密第二预设随机数集合得到;
通过所述第一AES密钥解密所述第二通信密文,得到第一解密消息;
若所述第一解密消息与所述第二预设随机数集合包含的随机数字段相同,则进行加密通信;
所述第一预设随机数集合至少包括:已经以明文形式在客户端和服务器之间进行传输的随机数字段和未以明文形式传输至服务器的随机数字段,以及所述第二预设随机数集合至少包括所述未以明文形式传输至服务器的随机数字段。
2.根据权利要求1所述的方法,其特征在于,在所述通过随机生成的第一AES密钥加密第一预设随机数集合之前,还包括:
向服务器发送第一问候消息,所述第一问候消息包括第一请求字段、第一随机数字段和第一签名字段,所述第一签名字段为通过客户端的椭圆曲线数字签名算法ECDSA签名公钥对应的私钥对第一预设哈希值进行加密得到,所述第一预设哈希值为对第一请求字段、第一随机数字段和服务器的ECDSA签名公钥进行哈希运算得到;
接收所述服务器返回的第二问候消息,所述第二问候消息包括第一ECDH参数字段、第二随机数字段和第二签名字段,所述第二签名字段为通过服务器的ECDSA签名公钥对应的私钥对第二预设哈希值进行加密得到,所述第二预设哈希值为对第一ECDH参数字段、第二随机数字段和客户端的ECDSA签名公钥进行哈希运算得到;
向服务器反馈ECDH消息,所述ECDH消息包括:第二ECDH参数字段、第三随机数字段和第三签名字段,所述第三签名字段为通过客户端的ECDSA签名公钥对应的私钥对第三预设哈希值进行加密得到,所述第三预设哈希值为对第二ECDH参数字段、第三随机数字段和服务器的ECDSA签名公钥进行哈希运算得到;
根据所述第一ECDH参数字段生成第一AES密钥。
3.根据权利要求2所述的方法,其特征在于,在所述向服务器发送第一问候消息之前,还包括:
对客户端的可信赖平台模块TPM中非易失存储器NVM的访问属性进行设置;
将服务器的ECDSA签名公钥和预生成的RSA密钥存储在NVM。
4.根据权利要求3所述的方法,其特征在于,在所述加密通信之后,还包括:
基于所述第二通信密文中包括的预先加密生成的第三通信密文,根据所述RSA密钥生成RSA加密密钥,所述第三通信密文为通过第三AES密钥对生成第二AES密钥的过程和客户端IP进行加密得到;
通过所述RSA加密密钥加密服务器IP和所述第一AES密钥,生成加密块;
将所述第三通信密文和所述加密块存储在客户端的嵌入式多媒体卡EMMC。
5.根据权利要求4所述的方法,其特征在于,在所述将所述第三通信密文和所述加密块存储在客户端的嵌入式多媒体卡EMMC之后,还包括:
对所述加密块设置预设工作时长;
在所述预设工作时长内,通过所述RSA加密密钥解密所述加密块,得到所述服务器IP和所述第一AES密钥。
6.一种通信方法,其特征在于,包括:
接收客户端发送的第一通信密文,所述第一通信密文是通过第一高级加密标准AES密钥加密第一预设随机数集合得到;
通过随机生成的第二AES密钥解密所述第一通信密文,得到第二解密消息;
通过所述第二AES密钥加密第二预设随机数集合,以得到第二通信密文;
将所述第二通信密文发送至所述客户端,以使所述客户端通过第一AES密钥对所述第二通信密文进行解密;
若所述第二解密消息与所述第一预设随机数集合包含的随机数字段相同,则进行加密通信;
所述第一预设随机数集合至少包括:已经以明文形式在客户端和服务器之间进行传输的随机数字段和未以明文形式传输至服务器的随机数字段,以及所述第二预设随机数集合至少包括所述未以明文形式传输至服务器的随机数字段。
7.根据权利要求6所述的方法,其特征在于,在所述接收客户端发送的第一通信密文之前,还包括:
接收客户端发送的第一问候消息,所述第一问候消息包括第一请求字段、第一随机数字段和第一签名字段,所述第一签名字段为通过客户端的椭圆曲线数字签名算法ECDSA签名公钥对应的私钥对第一预设哈希值进行加密得到,所述第一预设哈希值为对第一请求字段、第一随机数字段和服务器的ECDSA签名公钥进行哈希运算得到;
向客户端反馈第二问候消息,所述第二问候消息包括第一ECDH参数字段、第二随机数字段和第二签名字段,所述第二签名字段为通过服务器的ECDSA签名公钥对应的私钥对第二预设哈希值进行加密得到,所述第二预设哈希值为对第一ECDH参数字段、第二随机数字段和客户端的ECDSA签名公钥进行哈希运算得到;
接收客户端发送的ECDH消息,所述ECDH消息包括:第二ECDH参数字段、第三随机数字段和第三签名字段,所述第三签名字段为通过客户端的ECDSA签名公钥对应的私钥对第三预设哈希值进行加密得到,所述第三预设哈希值为对第二ECDH参数字段、第三随机数字段和服务器的ECDSA签名公钥进行哈希运算得到;
根据所述第二ECDH参数字段生成第二AES密钥。
8.根据权利要求7所述的方法,其特征在于,在所述接收客户端发送的第一问候消息之前,还包括:
将客户端的ECDSA签名公钥存储在服务器的可信存储区。
9.一种通信装置,其特征在于,包括:
第一加密模块,用于通过随机生成的第一高级加密标准AES密钥加密第一预设随机数集合,得到第一通信密文;
第一发送模块,用于将所述第一通信密文发送至服务器,以使所述服务器通过随机生成的第二AES密钥对所述第一通信密文进行解密;
第一接收模块,用于接收服务器返回的第二通信密文,所述第二通信密文是通过所述第二AES密钥加密第二预设随机数集合得到;
第一解密模块,用于通过所述第一AES密钥解密所述第二通信密文,得到第一解密消息;
第一判断模块,用于若所述第一解密消息与所述第二预设随机数集合包含的随机数字段相同,则进行加密通信;
所述第一预设随机数集合至少包括:已经以明文形式在客户端和服务器之间进行传输的随机数字段和未以明文形式传输至服务器的随机数字段,以及所述第二预设随机数集合至少包括所述未以明文形式传输至服务器的随机数字段。
10.一种通信装置,其特征在于,包括:
第二接收模块,用于接收客户端发送的第一通信密文,所述第一通信密文是通过第一高级加密标准AES密钥加密第一预设随机数集合得到;
第二解密模块,用于通过随机生成的第二AES密钥解密所述第一通信密文,得到第二解密消息;
第二加密模块,用于通过所述第二AES密钥加密第二预设随机数集合,以得到第二通信密文;
第二发送模块,用于将所述第二通信密文发送至所述客户端,以使所述客户端通过第一AES密钥对所述第二通信密文进行解密;
第二判断模块,用于若所述第二解密消息与所述第一预设随机数集合包含的随机数字段相同,则进行加密通信;
所述第一预设随机数集合至少包括:已经以明文形式在客户端和服务器之间进行传输的随机数字段和未以明文形式传输至服务器的随机数字段,以及所述第二预设随机数集合至少包括所述未以明文形式传输至服务器的随机数字段。
11.一种通信系统,其特征在于,包括:客户端和服务器;所述客户端集成TPM安全芯片,且设置如权利要求9所述的通信装置;所述服务器设置如权利要求10所述的通信装置。
12.一种通信设备,其特征在于,包括:存储器以及一个或多个处理器;
所述存储器,用于存储一个或多个程序;
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的通信方法。
13.一种包含计算机可执行指令的存储介质,其特征在于,所述计算机可执行指令在由计算机处理器执行时用于执行如权利要求1-8中任一所述的通信方法。
CN201910395469.2A 2019-05-13 2019-05-13 一种通信方法、装置、系统、设备和存储介质 Active CN110138772B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910395469.2A CN110138772B (zh) 2019-05-13 2019-05-13 一种通信方法、装置、系统、设备和存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910395469.2A CN110138772B (zh) 2019-05-13 2019-05-13 一种通信方法、装置、系统、设备和存储介质

Publications (2)

Publication Number Publication Date
CN110138772A CN110138772A (zh) 2019-08-16
CN110138772B true CN110138772B (zh) 2022-02-25

Family

ID=67573627

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910395469.2A Active CN110138772B (zh) 2019-05-13 2019-05-13 一种通信方法、装置、系统、设备和存储介质

Country Status (1)

Country Link
CN (1) CN110138772B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112016113B (zh) * 2020-09-28 2024-04-16 同盾控股有限公司 数据加解密方法、装置及系统
CN112131596B (zh) * 2020-09-30 2021-11-09 北京海泰方圆科技股份有限公司 加解密方法、设备及存储介质
CN112491559B (zh) * 2020-12-03 2022-11-22 中国联合网络通信集团有限公司 一种身份验证方法及装置
CN113783887B (zh) * 2021-09-22 2023-07-18 广东九联科技股份有限公司 基于网络通信的远程控制方法、系统及存储介质
CN113922952B (zh) * 2021-09-30 2024-03-01 恒众创美(深圳)发展合伙企业(有限合伙) 访问请求响应方法、装置、计算机设备和存储介质
CN114389803A (zh) * 2021-12-24 2022-04-22 奇安信科技集团股份有限公司 Spa密钥分发方法及装置
CN114520727B (zh) * 2022-04-15 2022-06-21 广州万协通信息技术有限公司 安全芯片数据防护方法及系统
CN114785530B (zh) * 2022-06-22 2022-10-04 浙江地芯引力科技有限公司 芯片的认证方法、装置、设备及存储介质
CN115913672B (zh) * 2022-11-02 2023-09-01 广州市南方人力资源评价中心有限公司 电子档案加密传输方法、系统、终端设备及计算机介质
CN115499250B (zh) * 2022-11-17 2023-03-31 北京搜狐新动力信息技术有限公司 一种数据加密方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101715190A (zh) * 2009-11-04 2010-05-26 中兴通讯股份有限公司 一种无线局域网下实现终端与服务器鉴别的系统及方法
CN104821930A (zh) * 2014-02-03 2015-08-05 塔塔咨询服务公司 计算机实施的物联网数据报传输轻型认证系统和方法
CN105721500A (zh) * 2016-04-10 2016-06-29 北京工业大学 一种基于TPM的Modbus/TCP协议的安全增强方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9264222B2 (en) * 2013-02-28 2016-02-16 Apple Inc. Precomputing internal AES states in counter mode to protect keys used in AES computations
CN103763631B (zh) * 2014-01-07 2018-06-01 青岛海信电器股份有限公司 认证方法、服务器和电视机
CN109005028A (zh) * 2018-11-02 2018-12-14 美的集团股份有限公司 密钥协商方法、云服务器、设备、存储介质以及系统
CN109120649B (zh) * 2018-11-02 2020-11-06 美的集团股份有限公司 密钥协商方法、云服务器、设备、存储介质以及系统
CN109245885A (zh) * 2018-11-02 2019-01-18 美的集团股份有限公司 密钥协商方法、设备、存储介质以及系统

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101715190A (zh) * 2009-11-04 2010-05-26 中兴通讯股份有限公司 一种无线局域网下实现终端与服务器鉴别的系统及方法
CN104821930A (zh) * 2014-02-03 2015-08-05 塔塔咨询服务公司 计算机实施的物联网数据报传输轻型认证系统和方法
CN105721500A (zh) * 2016-04-10 2016-06-29 北京工业大学 一种基于TPM的Modbus/TCP协议的安全增强方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
WTLS握手协议后向安全性分析及改进;潘进,等;《西安邮电大学学报》;20151228;第21卷(第1期);全文 *

Also Published As

Publication number Publication date
CN110138772A (zh) 2019-08-16

Similar Documents

Publication Publication Date Title
CN110138772B (zh) 一种通信方法、装置、系统、设备和存储介质
US11533297B2 (en) Secure communication channel with token renewal mechanism
EP3210335B1 (en) Efficient start-up for secured connections and related services
KR101541911B1 (ko) 사용자 인터페이스에서 보안 서비스를 제공하는 장치 및 방법
CN107005577B (zh) 指纹数据的处理方法及处理装置
US10181949B2 (en) Data distributing over network to user devices
CN110868291B (zh) 一种数据加密传输方法、装置、系统及存储介质
WO2013117087A1 (zh) 一种文件下载方法及系统
US11831752B2 (en) Initializing a data storage device with a manager device
EP3361737A1 (en) Protecting media content
WO2023226308A1 (zh) 一种文件共享方法、系统、电子设备及可读存储介质
WO2021226989A1 (zh) 通信的方法和通信装置
CN104243452A (zh) 一种云计算访问控制方法及系统
WO2019120231A1 (zh) 确定tpm可信状态的方法、装置及存储介质
CN111836260B (zh) 一种认证信息处理方法、终端和网络设备
CN111835691B (zh) 一种认证信息处理方法、终端和网络设备
CN112487380A (zh) 一种数据交互方法、装置、设备及介质
US20230071333A1 (en) Set up and distribution of post-quantum secure pre-shared keys using extendible authentication protocol
JP4663437B2 (ja) コンテンツ利用情報送信方法およびその方法を利用可能なコンテンツ利用情報提供装置およびコンテンツ利用情報享受装置
CN113609522B (zh) 数据授权及数据访问方法和装置
CN111431846B (zh) 数据传输的方法、装置和系统
US20230239149A1 (en) Data storage method, data read method, electronic device, and program product
CN117879920A (zh) 基于国密算法的消息加密方法、装置、电子设备和介质
EP4305800A1 (en) Devices and methods for performing cryptographic handshaking
CN115361140A (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