CN113691502B - 通信方法、装置、网关服务器、客户端及存储介质 - Google Patents

通信方法、装置、网关服务器、客户端及存储介质 Download PDF

Info

Publication number
CN113691502B
CN113691502B CN202110881481.1A CN202110881481A CN113691502B CN 113691502 B CN113691502 B CN 113691502B CN 202110881481 A CN202110881481 A CN 202110881481A CN 113691502 B CN113691502 B CN 113691502B
Authority
CN
China
Prior art keywords
key
communication
request
ciphertext
client
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
CN202110881481.1A
Other languages
English (en)
Other versions
CN113691502A (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 Pudong Development Bank Co Ltd
Original Assignee
Shanghai Pudong Development Bank 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 Pudong Development Bank Co Ltd filed Critical Shanghai Pudong Development Bank Co Ltd
Priority to CN202110881481.1A priority Critical patent/CN113691502B/zh
Publication of CN113691502A publication Critical patent/CN113691502A/zh
Application granted granted Critical
Publication of CN113691502B publication Critical patent/CN113691502B/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/0442Network 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 asymmetric encryption, i.e. different keys for encryption and decryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/66Arrangements for connecting between networks having differing types of switching systems, e.g. gateways
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/068Network architectures or network communication protocols for network security for supporting key management in a packet data network using time-dependent keys, e.g. periodically changing keys
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • H04L63/0846Network architectures or network communication protocols for network security for authentication of entities using passwords using time-dependent-passwords, e.g. periodically changing passwords
    • 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/3297Cryptographic 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 time stamps, e.g. generation of time stamps

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本申请涉及一种通信方法、装置、网关服务器、客户端及计算机可读存储介质,该方法包括:网关服务器接收客户端发送的通信密钥请求报文,从缓存服务器中获取与公钥版本号匹配的公钥,通过与公钥对应的私钥对临时密钥密文进行解密得到临时密钥;网关服务器再通过SM4算法生成长效密钥,并根据预设的窗口长度、第一请求时间戳以及长效密钥生成通信密钥,并通过解密后的临时密钥对通信密钥进行加密得到通信密钥密文,最后,将通信密钥密文发送给客户端。本申请提供的通信方法网关服务器为不同的客户端生成不同的通信密钥,且为不同的通信密钥设置有效使用时长保证了网关服务器与客户端进行通信时使用的密钥具有时效性以及唯一性,提高了通信的安全性。

Description

通信方法、装置、网关服务器、客户端及存储介质
技术领域
本申请涉及通信技术领域,特别是涉及一种通信方法、装置、网关服务器、客户端及存储介质。
背景技术
在金融信息通信领域,网关服务器在与客户端进行数据通信时,通常会使用加密技术,例如通过加密技术对用户信息进行加密传输、生成数字签名对用户的身份进行认证、对交易环境进行加密处理等,以保障用户的信息以及交易的安全。
目前,常用的加密技术通常使用对称加密算法,不同的客户端与同一网关服务器进行数据交互时,均使用对称加密算法对交互的数据、用户信息等进行加密,所以网关服务器为客户端分配的密钥都是相同的,那么一旦该密钥被破解,整个系统将完全暴露,会导致信息泄露的问题出现,使用对称加密算法进行通信时安全性较低。
发明内容
本申请提供了一种通信方法、装置、网关服务器、客户端及存储介质,网关服务器针对不同的客户端以及不同的时间段生成不同的密钥,从而保证了网关服务器与客户端进行通信时使用的密钥具有时效性以及唯一性,从而避免了密钥被破解导致信息泄露的问题出现,提高了通信的安全性。
本申请的第一方面提供了一种通信方法,应用于网关服务器,该方法包括:
接收客户端发送的通信密钥请求报文,通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳;
从缓存服务器中获取与公钥版本号匹配的公钥,通过与公钥对应的私钥对临时密钥密文进行解密得到临时密钥,公钥和私钥均是根据SM2算法生成的,缓存服务器中存储有不同版本号的公钥以及与不同版本号的公钥对应的多个私钥;
通过SM4算法生成长效密钥,根据预设的窗口长度、第一请求时间戳以及长效密钥生成通信密钥,通信密钥用于建立网关服务器与客户端之间的数据通信;
通过临时密钥对通信密钥进行加密得到通信密钥密文,将通信密钥密文发送给客户端,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的。
本申请的第二方面提供了一种通信方法,应用于客户端,该方法包括:
向网关服务器发送通信密钥请求报文;通信密钥请求报文包括第一请求时间戳;通信密钥请求报文用于请求通信密钥;通信密钥用于建立网关服务器与客户端之间的数据通信;
接收网关服务器发送的与通信密钥请求报文对应的通信密钥密文,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的;
根据第一请求时间戳从客户端的国密库中获取对应的临时密钥,临时密钥是通过SM4算法生成的,国密库用于对客户端的传输报文进行加密解密处理以及生成客户端请求的密钥;
通过临时密钥对通信密钥密文进行解密得到通信密钥。
本申请的第三方面,提供了一种通信装置,应用于网关服务器,装置包括:
接收模块,用于接收客户端发送的通信密钥请求报文,通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳;
获取模块,用于从缓存服务器中获取与公钥版本号匹配的公钥,通过与公钥对应的私钥对临时密钥密文进行解密得到临时密钥,公钥和私钥均是根据SM2算法生成的,缓存服务器中存储有不同版本号公钥以及与不同版本号公钥对应的多个私钥;
生成模块,用于通过SM4算法随机生成长效密钥,根据预设的窗口长度、第一请求时间戳以及长效密钥生成通信密钥,通信密钥用于建立网关服务器与客户端之间的数据通信;
发送模块,用于通过临时密钥对通信密钥进行加密得到通信密钥密文,将通信密钥密文发送给客户端,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的。
本申请的第四方面提供了一种通信装置,应用于客户端,该装置包括:
发送模块,用于向网关服务器发送通信密钥请求报文;通信密钥请求报文包括第一请求时间戳;通信密钥请求报文用于请求通信密钥;通信密钥用于建立网关服务器与客户端之间的数据通信;
接收模块,用于接收网关服务器发送的与通信密钥请求报文对应的通信密钥密文,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的;
获取模块,用于根据第一请求时间戳从客户端的国密库中获取对应的临时密钥,临时密钥是通过SM4算法生成的,国密库用于对客户端的传输报文进行加密解密处理以及生成客户端请求的密钥;
解密模块,用于通过临时密钥对通信密钥密文进行解密得到通信密钥。
本申请的第五方面,提供了一种网关服务器,包括存储器、处理器和收发器,存储器存储有计算机程序,
收发器,用于接收客户端发送的通信密钥请求报文,通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳;
处理器执行计算机程序时,用于从缓存服务器中获取与公钥版本号匹配的公钥,通过与公钥对应的私钥对临时密钥密文进行解密得到临时密钥,公钥和私钥均是根据SM2算法生成的,缓存服务器中存储有不同版本号公钥以及与不同版本号公钥对应的多个私钥;
处理器执行计算机程序时,还用于通过SM4算法随机生成长效密钥,根据预设的窗口长度、第一请求时间戳以及长效密钥生成通信密钥,通信密钥用于建立网关服务器与客户端之间的数据通信;
收发器,还用于通过临时密钥对通信密钥进行加密得到通信密钥密文,将通信密钥密文发送给客户端,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的。
本申请的第六方面,提供了一种客户端,包括存储器、处理器和收发器,存储器存储有计算机程序,
收发器,用于向网关服务器发送通信密钥请求报文;通信密钥请求报文包括第一请求时间戳;通信密钥请求报文用于请求通信密钥;通信密钥用于建立网关服务器与客户端之间的数据通信;
收发器,还用于接收网关服务器发送的与通信密钥请求报文对应的通信密钥密文,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的;
处理器执行计算机程序时,用于根据第一请求时间戳从客户端的国密库中获取对应的临时密钥,临时密钥是通过SM4算法生成的,国密库用于对客户端的传输报文进行加密解密处理以及生成客户端请求的密钥;
处理器执行计算机程序时,还用于通过临时密钥对通信密钥密文进行解密得到通信密钥。
本申请的第七方面,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现上述任一项的方法的步骤。
本申请提供了一种通信方法、装置、网关服务器、客户端及计算机可读存储介质,该方法包括:网关服务器接收客户端发送的通信密钥请求报文,通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳,然后,从缓存服务器中获取与公钥版本号匹配的公钥,通过与公钥对应的私钥对临时密钥密文进行解密得到临时密钥,公钥和私钥均是根据SM2算法生成的,缓存服务器中存储有不同版本号公钥以及与不同版本号公钥对应的多个私钥;网关服务器再通过SM4算法生成长效密钥,并根据预设的窗口长度、第一请求时间戳以及长效密钥生成通信密钥,并通过解密后的临时密钥对通信密钥进行加密得到通信密钥密文,最后,将通信密钥密文发送给客户端,其中,通信密钥密文携带有效使用时长,有效使用时长是根据所述第一请求时间戳生成的,以使客户端接收到该通信密钥密文后对其解密得到通信密钥后,可以通过该通信密钥与网关服务器进行数据通信。本申请提供的通信方法,因为不同客户端发送的通信密钥请求报文不同,而网关服务器的通信密钥是基于客户端发送的通信密钥请求报文生成的,所以网关服务器为不同的客户端生成不同的通信密钥,且基于不同客户端发送的不同请求时间戳为不同的通信密钥设置有效使用时长,从而保证了网关服务器与客户端进行通信时使用的密钥具有时效性以及唯一性,从而避免了密钥被破解导致信息泄露的问题出现,提高了通信的安全性。
附图说明
图1为一个实施例中通信方法的应用环境图;
图2为一个实施例中通信方法的流程示意图;
图3为另一个实施例中通信方法的流程示意图;
图4为另一个实施例中通信方法的流程示意图;
图5为另一个实施例中通信方法的流程示意图;
图6为另一个实施例中通信方法的流程示意图;
图7为另一个实施例中通信方法的流程示意图;
图8为另一个实施例中通信方法的流程示意图;
图9为另一个实施例中通信方法的流程示意图;
图10为另一个实施例中通信方法的流程示意图;
图11为一个实施例中通信装置的结构框图;
图12为另一个实施例中通信装置的结构框图;
图13为一个实施例中网关服务器的内部结构图;
图14为一个实施例中客户端的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的通信方法,可以应用于如图1所示的应用环境中。其中,客户端102通过网络与网关服务器104进行通信,网关服务器104通过网络与缓存服务器106进行通信。客户端102在需要与网关服务器104进行通信之前,先向网关服务器104发送通信密钥请求报文,网关服务器104从缓存服务器106中获取私钥对通信密钥请求报文中的临时密钥密文进行解密得到临时密钥,网关服务器104再根据通信密钥请求报文生成对应的通信密钥,并通过临时密钥对通信密钥进行加密后发送给客户端102,客户端102就可以通过该通信密钥在与网关服务器104进行数据通信时,对数据进行和加解密。网关服务器104针对不同客户端发送的通信密钥请求报文生成不同的通信密钥,避免了密钥被破解导致信息泄露的问题出现,提高了通信的安全性。其中,客户端102可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,网关服务器104可以用独立的服务器或者是多个服务器组成的服务器集群来实现,缓存服务器106也可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
在一个实施例中,如图2所示,提供了一种通信方法,以该方法应用于图1中的网关服务器为例进行说明,包括以下步骤:
步骤S202,接收客户端发送的通信密钥请求报文,通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳。
其中,网关服务器可以是接收多个不同客户端发送的通信密钥请求报文,当网关服务器在同一时间段接收到多个不同客户端发送的通信密钥请求报文时,可以是批量处理该通信密钥请求报文,也可以是按照请求的时间顺序依次处理通信密钥请求报文。本申请对此不加以限定。
通信密钥请求报文是客户端为了与网关服务器进行通信,向网关服务器请求通信密钥时发送的报文信息。该通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳,临时密钥密文即为加密后的临时密钥,该临时密钥是客户端中的国密库通过SM4算法生成的,用于对网关服务器生成的通信密钥进行加密。公钥版本号表征公钥的版本标识,因为公钥是网关服务器生成的,所以网关服务器中存储有公钥以及与公钥对应的私钥,通过公钥版本号可以快速从缓存服务器中查找到目标公钥以及与目标公钥对应的私钥,通过与公钥对应的私钥能够对临时密钥密文进行解密。其中,公钥与私钥为通过SM2算法得到的密钥对,公钥一般用于加密,私钥一般用于对公钥加密后的数据进行解密。第一请求时间戳是使用数字签名技术产生的数据,在本申请中可以是对签名时间使用数字签名技术产生的数据,第一请求时间戳一方面能够对通信密钥请求报文产生的时间进行认证,避免该通信密钥请求报文在生成后被篡改;另一方面可以表征客户端生成通信密钥请求报文的时间,使得网关服务器根据请求时间戳区别不同的客户端,还可以使网关服务器根据客户端发送的请求时间戳对网关服务器生成的通信密钥设置有效使用时间段,增加通信密钥时效性,使得网关服务器以及客户端只能在通信密钥的有效使用时间段范围内进行通信时使用该通信密钥进行加密或者解密才属于有效的通信,超过有效使用时间段范围,通信密钥就会失效,若客户端要与网关服务器再一次进行通信,需要向网关服务器重新申请通信密钥。
步骤S204,从缓存服务器中获取与公钥版本号匹配的公钥,通过与公钥对应的私钥对临时密钥密文进行解密得到临时密钥,公钥和私钥均是根据SM2算法生成的,缓存服务器中存储有不同版本号的公钥以及与不同版本号的公钥对应的多个私钥。
其中,缓存服务器可以与网关服务器通过网络进行通信,缓存服务器可以是与网关服务器相同的设备,也可以是与网关服务器不同的设备,例如网关服务器可以为服务器集群,而缓存服务器为独立的服务器。缓存服务器上存储有各个版本号的公钥、私钥、网关服务器生成密钥等全部密钥,因为网关服务器中设置的是加密、解密以及传输的多种不同逻辑,所以设置缓存服务器能够环节网关服务器的存储压力,有利于网关服务器提高密钥生成、加密、解密、传输等的效率。
当网关服务器接收到客户端发送的通信密钥请求报文时,可以将通信密钥请求报文中公钥版本号发给缓存服务器,缓存服务器根据公钥版本号查找对应版本号的公钥,进一步查找到与公钥对应的私钥,通过私钥对临时密钥密文进行解密得到临时密钥,便于后续网关服务器使用该临时密钥。
步骤S206,通过SM4算法随机生成长效密钥,根据预设的窗口长度、第一请求时间戳以及长效密钥生成通信密钥,通信密钥用于建立网关服务器与客户端之间的数据通信。
其中,长效密钥是相对于临时密钥的一种密钥,长效密钥使用的有效时长大于临时密钥。当网关服务器接收到客户端发送的通信密钥请求报文时,通过SM4算法生成一密钥,该密钥可以是随机生成的。然后,根据预设的窗口长度、第一请求时间戳以及长效密钥得到通信密钥,可以是将第一请求时间戳按照预设的窗口长度根据滑动窗口算法对第一请求时间戳进行计算得到新的请求时间戳,然后在将新的请求时间戳对应与长效密钥进行任一种加减乘除运算得到通信密钥;或者,按照排列顺序,将请求时间戳间隔插入长效密钥中形成通信密钥,该间隔可以是间隔一个字符、两个字符或者三个字符等;本申请对此不加以限定。
步骤S208,通过临时密钥对通信密钥进行加密得到通信密钥密文,将通信密钥密文发送给客户端,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的。
其中,临时密钥是通过从缓存服务器获取的私钥对临时密钥密文解密得到的。为了将生成的通信密钥安全的发送给客户端,通过临时密钥对上述得到的通信密钥进行加密,得到通信密钥密文,将通信密钥密文发送给客户端,客户端解密后得到通信密钥,就可以使用该通信密钥与网关服务器进行通信。该通信密钥具有第一有效使用时间段,该第一有效使用时间段可以是根据第一时间戳生成的。示例性的,根据第一时间戳,网关服务器获得了客户端生成通信密钥请求报文的时间为9:01,那么可以是将[9:30-10:00]这一时间段确定为该通信密钥的第一有效使用时间段。需要说明的是,通信密钥的有效时长可以是网关服务器预设的一个固定值,比如15分钟、30分钟、1小时等,当网关服务器获得了客户端生成通信密钥请求报文的时间,就可以根据该预设的有效时长得到通信密钥的有效使用时间段;还可以是网关服务器为不同的客户端设置不同的通信密钥有效时长,本申请对此不加以限定。
本申请提供了一种通信方法,包括:网关服务器接收客户端发送的通信密钥请求报文,通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳,然后,从缓存服务器中获取与公钥版本号匹配的公钥,通过与公钥对应的私钥对临时密钥密文进行解密得到临时密钥,公钥和私钥均是根据SM2算法生成的,缓存服务器中存储有不同版本号的公钥以及与不同版本号的公钥对应的多个私钥;网关服务器再通过SM4算法生成长效密钥,并根据预设的窗口长度、第一请求时间戳以及长效密钥生成通信密钥,并通过解密后的临时密钥对通信密钥进行加密得到通信密钥密文,最后,将通信密钥密文发送给客户端,其中,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的,以使客户端接收到该通信密钥密文对其解密得到通信密钥后,可以通过该通信密钥与网关服务器进行数据通信。本申请提供的通信方法,因为不同客户端发送的通信密钥请求报文不同,而网关服务器的通信密钥是基于客户端发送的通信密钥请求报文生成的,所以网关服务器为不同的客户端生成不同的通信密钥,且基于不同客户端发送的不同请求时间戳为不同的通信密钥设置有效使用时间段,从而保证了网关服务器与客户端进行通信时使用的通信密钥具有时效性以及唯一性,从而避免了密钥被破解导致信息泄露的问题出现,提高了通信的安全性。
在一个实施例中,如图3所示,本实施例是如何根据预设的窗口长度、第一请求时间戳以及长效密钥生成通信密钥的一种可选的方法实施例,该方法步骤包括:
步骤S2061,将第一请求时间戳按照预设的窗口长度通过滑动平均算法计算得到偏移时间戳。
其中,若第一请求时间戳为(t1t2t3t4t5t6t7t8t9t10),预设的窗口长度为3,那么,偏移时间戳中的第一个元素t11通过t1+t2+t3计算得到,第二个元素t22通过t2+t3+t4计算得到,第三个元素t33通过t3+t4+t5计算得到,以此类推,得到的偏移时间戳为(t11t22t33t44t55t66t77t88)。
步骤S2062,将偏移时间戳与长效密钥按照预设的组合规则进行组合,生成通信密钥。
其中,若长效密钥为(s1s2s3s4s5s6s7s8),上述得到的偏移时间戳为(t11t22t33t44t55t66t77t88),将偏移时间戳与长效密钥按照预设的组合规则进行组合得到的通信密钥可以为(s1t11s2t22s3t33s4t44s5t55s6t66s7t77s8t88),或者将偏移时间戳与长效密钥按照预设的组合规则进行组合得到的通信密钥可以为(s1s2t11t22s3s4t33t44s5s6t55t66s7s8t77t88),或者将偏移时间戳与长效密钥按照预设的组合规则进行组合得到的通信密钥可以为(s1s2s3t11t22t33s4s5s6t44t55t66s7s8t77t88)等,本申请对此不加以限定。
本申请是实施例提供的通信方法,通过滑动平均算法以及元素之间的组合规则生成通信密钥,该通信密钥不容易被破解,安全性高。
在一个实施例中,如图4所示,本实施例是对通信密钥请求报文进行校验的一种可选的方法实施例,该方法的步骤包括:
步骤S302,通过SM3算法对通信密钥请求密文进行计算得到第二杂凑值,将第二杂凑值与第一杂凑值进行比较,得到比较结果;若比较结果为第一杂凑值与第二杂凑值一致,执行步骤S304;若比较结果为第一杂凑值与第二杂凑值不一致,执行步骤S306;
步骤S304,通信密钥请求报文验证成功;
步骤S306,向客户端返回拒绝消息。
其中,通信密钥请求报文包括两个部分,第一部分为通信密钥请求密文,第二部分为通过SM3算法对通信密钥请求密文进行计算得到的第一杂凑值。为了验证报文的可靠性,本申请通过对杂凑值进行比对实现对客户端发送的通信请求报文进行校验,经过网关服务器授权的客户端中存储有与网关服务器相同的算法,所以通过相同的算法对同一密文进行计算,得到的结果才能一致,网关服务器确定该客户端为经过授权的合法客户端,进一步表明通信密钥请求报文验证成功,反之,表明该客户端为未经授权的非法客户端,网关服务器则向该客户端返回拒绝消息。
本申请提供的通信方法,在网关服务器接收到客户端发送的通信密钥请求报文后,采用杂凑值比较的方式对客户端发送的通信密钥请求报文进行校验,能够避免网关服务器接收到虚假报文,或者未经授权的客户端发送的通信请求报文,威胁数据的安全性,同时能够避免对通信资源造成浪费的情况发生。
在一个实施例中,如图5所示,本实施例是对客户端发送的公钥请求报文进行校验的一种可选的方法实施例,该方法步骤包括:
步骤S402,接收客户端发送的公钥请求报文,公钥请求报文包括公钥请求密文和第三杂凑值,第三杂凑值是公钥请求密文通过SM3算法计算得到。
其中,客户端需要通过公钥生成通信请求报文,该公钥也是网关服务器基于客户端发送的公钥请求报文生成的,基于上述对通信密钥请求报文进行验证的理由,当网关服务器接收到客户端发送的公钥请求报文后,也需要对公钥请求报文进行验证。
步骤S404,通过SM3算法对公钥请求报文进行计算得到第四杂凑值,将第四杂凑值与第三杂凑值进行比较,得到比较结果;若比较结果为第三杂凑值与第四杂凑值一致,执行步骤S406;若比较结果为第三杂凑值与第四杂凑值不一致,执行步骤S408;
步骤S406,公钥请求报文验证成功;
步骤S408,向客户端返回拒绝消息。
其中,本申请通过对杂凑值进行比对实现对客户端发送的公钥请求报文进行校验,经过网关服务器授权的客户端中存储有与网关服务器相同的算法,所以通过相同的算法对同一密文进行计算,得到的结果才能一致,网关服务器确定该客户端为经过授权的合法客户端,进一步表明公钥请求报文验证成功,反之,表明该客户端为未经授权的非法客户端,网关服务器则向该客户端返回拒绝消息。
本申请提供的通信方法,在网关服务器接收到客户端发送的公钥请求报文后,采用杂凑值比较的方式对客户端发送的公钥请求报文进行校验,能够避免网关服务器接收到虚假报文,或者未经授权的客户端发送的公钥请求报文,威胁数据的安全性,同时能够避免对通信资源造成浪费的情况发生。
在一个实施例中,如图6所示,本实施例是网关服务器生成公钥的一种可选的方法实施例,该方法的步骤包括:
步骤S502,从缓存服务器中获取公钥,公钥的版本号大于缓存服务器中存储的其他公钥的版本号,公钥的版本号按照升序的规则进行更新。
其中,缓存服务器中存储有多个不同版本号的公钥,公钥的版本号按照升序的规则进行更新,那么在客户端向网关服务器请求公钥时,网关服务器获取的是当前缓存服务器中版本号最新的公钥,若公钥的版本号是按照升序的规则进行更新,那么网关服务器从缓存服务器中获取的应该是版本号最大的公钥。因为公钥的版本更新可以是使得更新后的公钥比未更新的公钥的加密性能更好,还可能是根据应用环境、场景的改变使得更新后的公钥与当下的应用环境或者场景更加的适配,所以网关服务器需要从缓存服务器中获取最新版本的公钥发送给客户端,以使客户端根据该公钥进行数据加密、报文生成等操作。
步骤S504,通过SM4算法对公钥进行加密得到公钥密文;并将公钥密文发送给客户端,公钥密文携带第二有效使用时间段,第二有效使用时间段是根据第二请求时间戳生成的。
其中,为了保证网关服务器为客户端传输公钥的安全性,网关服务器在对公钥进行传输之前对该公钥进行了SM4算法的加密处理得到公钥密文,并为公钥密文添加第二有效使用时间段,以此来约束公钥的时效性,第二有效使用时间段根据第二请求时间戳的生成方法同上述根据所述第一请求时间戳生成第一有效使用时间段的方法,本申请对此不再赘述。
在一个实施例中,如图7所示,提供了一种通信方法,以该方法应用于图1中的客户端为例进行说明,包括以下步骤:
步骤S602,向网关服务器发送通信密钥请求报文;通信密钥请求报文包括第一请求时间戳;通信密钥请求报文用于请求通信密钥;通信密钥用于建立网关服务器与客户端之间的数据通信。
其中,客户端需要与网关服务器进行数据交互时,首先需要客户端向网关服务器发送通信密钥请求报文以请求通信密钥,待网关服务器向客户端发送了通信密钥,客户端与网关服务器才能通过该通信密钥对需要交互的数据进行加密和解密,来实现数据交互。
步骤S604,接收网关服务器发送的与通信密钥请求报文对应的通信密钥密文,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的。
其中,基于上述客户端向网关服务器发送的通信密钥请求报文,网关服务器在生成对应的通信密钥后,经过加密处理,向客户端返回通信密钥密文,该通信密钥密文携带第一请求时间戳,第一请求时间戳与客户端向网关服务器发送通信密钥请求报文时携带的第一请求时间戳相同,便于客户端识别该通信密钥密文,同时,便于客户端通过该第一请求时间戳查找对应的密钥对通信密钥密文进行解密。
步骤S606,根据第一请求时间戳从客户端的国密库中获取对应的临时密钥,临时密钥是通过SM4算法生成的,国密库用于对客户端的传输报文进行加密解密处理以及生成客户端请求的密钥。
其中,国密库可以是设置在客户端中用于存储的一个模块,国密库中存储有用于对报文进行加密或者解密的逻辑以及生成密钥的多种不同的算法,例如SM2算法、SM3算法、SM4算法等。当客户端需要生成通信密钥请求报文时,需要通过国密库中的临时密钥生成,国密库每生成一个临时密钥,为了对该临时密钥进行标记,都会为该临时密钥添加对应的时间戳后进行存储,便于后续从国密库中查找对应的临时密钥对通信密钥密文进行解密,所以,当客户端接收到网关服务器发送的通信密钥密文后,根据通信密钥密文中的时间戳,就可以很快的从国密库中查找到对应的临时密钥以对该通信密钥密文进行解密得到通信密钥。
步骤S608,通过临时密钥对通信密钥密文进行解密得到通信密钥。
其中,基于上述描述,客户端从国密库中查找到对应的临时密钥后,通过该临时密钥对网关服务器发送的通信密钥密文进行解密就可以的待通信密钥,以通过该通信密钥对需要交互的数据进行加密后发送给网关服务器,或者接收到网关服务器发送的数据后,通过该通信密钥进行解密处理。
在一个实施例中,如图8所示,本实施是生成通信密钥请求报文的一种可选的方法实施例,该方法的步骤包括:
步骤S702,向国密库发送临时密钥请求以及预存的公钥。
其中,临时密钥是国密库基于其中存储的密钥生成算法得到的,预存的公钥是客户端在与网关服务器进行数据通信之前向网关服务器请求的,用于对临时密钥进行加密。当网关服务器将最新版本号的公钥发送给客户端时,客户端将该公钥存储在缓存或者文件中,便于在后续使用时,快速的对公钥进行读取。基于上述描述可知通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳,而临时密钥由客户端中的国密库生成,所以客户端在生成通信密钥请求报文时,需要先向国密库请求一个临时密钥,并将缓存的或者在文件中存储的公钥发送给国密库,便于国密库通过公钥对临时密钥进行处理。
步骤S704,接收国密库发送的临时密钥密文,临时密钥密文是国密库通过公钥对临时密钥进行加密处理后获得的。
其中,由于国密库中存储有加密、解密的逻辑,所以当客户端向国密库发送了临时密钥请求后,国密库可以是根据其上存储的SM4算法生成一临时密钥,然后根据客户端发送的公钥对该临时密钥进行加密,即得到临时密钥密文,并将该临时密钥密文发送给客户端,便于客户端后续生成通信密钥请求报文。
步骤S706,根据临时密钥密文、第一请求时间戳以及公钥的版本号生成通信密钥请求报文。
其中,可以是将公钥的版本号以及第一请求时间戳加入报文的头部,临时密钥密文拼装通信密钥请求组成报文实体,共同组成通信密钥请求报文。通信密钥请求报文的构成与报文的构成方式相同,对此不再赘述。
在一个实施例中,如图9所示,本实施例是获取公钥的一种可选的方法实施例,该方法的步骤为:
步骤S802,向网关服务器发送公钥请求报文,公钥请求报文携带第二请求时间戳。
其中,基于上述描述,客户端在生成通信密钥请求报文时,需要用到缓存服务器中存储的最新版本号的公钥,所以在客户端生成通信密钥请求报文之前,先要向网关服务器进行公钥请求。向网关服务器请求公钥的方式与向网关服务器请求通信密钥的方式相同,都是先向网关服务器发送对应的请求报文,网关服务器响应该请求报文,生成对应的公钥或者通信密钥发送给客户端。
步骤S804,接收网关服务器发送的公钥密文,公钥密文携带第二有效使用时间段,第二有效时间段是根据第二请求时间戳生成的。
其中,在客户端向网关服务器发送了公钥请求报文后,待网关服务器验证成功,则会从缓存服务器中获取最新版本号的公钥,并经过加密后发送给客户端。为了加强通信的安全性,网关服务器为公钥密文添加了第二有效使用时间段,以此来约束公钥的时效性,第二有效使用时间段根据第二请求时间戳的生成方法同上述根据所述第一请求时间戳生成第一有效使用时间段的方法,本申请对此不再赘述。
步骤S806,通过预设的第一密钥对公钥密文进行解密得到公钥并存储,预设的第一密钥是通过SM4算法生成的。
其中,由于客户端在生成公钥请求报文时,通过SM4算法对公钥请求明文进行加密,所以网关服务器在向客户端返回公钥密文时,也通过SM4算法对公钥进行加密,这样可以使客户端在接收到该公钥密文后,不需要再重新配置解密密钥对公钥密文进行解密,通过原始存储的预设的第一密钥对公钥密文进行解密即可。基于上述描述,该公钥是携带第二有效使用时间段的,所以客户端需要在公钥的第二有效使用时间段内使用该公钥,超过公钥的第二有效使用时间段,则需要向网关服务器重新申请公钥。客户端使用公钥的目的是生成通信密钥请求报文,所以在获得了网关服务器发送的公钥后,可以是先将公钥存储在缓存中,或者文件中,便于后续快速的读取该公钥,以基于该公钥生成通信密钥请求报文。
在一个实施例中,如图10所示,本实施例是客户端生成公钥请求报文的一种可选的方法实施例,该方法的步骤包括:
步骤S902,向国密库发送公钥密文请求,公钥密文请求包括公钥请求明文。
其中,客户端的国密库中存储有对报文加密或者解密的逻辑,所以客户端需要向国密库发送公钥密文请求以是国密库对公钥请求明文进行加密处理。
步骤S904,接收国密库发送的公钥请求密文,公钥请求密文是通过预设的第一密钥对公钥请求明文进行加密处理后获得的。
其中,基于上述描述可知,对公钥请求明文的加密通过国密库来实现,所以当国密库接收到客户端发送的公钥密文请求后,通过SM4算法对公钥请求明文进行加密得到公钥请求密文发送给客户端,以完成对客户端的请求进行响应。
步骤S906,根据公钥请求密文和第二请求时间戳生成公钥请求报文,发送公钥请求报文给网关服务器。
其中,可以是将第二请求时间戳加入报文的头部,公钥请求密文拼装公钥请求组成报文实体,共同组成公钥请求报文。公钥请求报文的构成与报文的构成方式相同,对此不再赘述。报文生成后,发送给网关服务器以使网关服务器对该请求进行响应。
应该理解的是,虽然图2-10的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2-10中的至少一部分步骤可以包括多个步骤或者多个阶段,这些步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤中的步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图11所示,提供了一种通信装置1000,应用于网关服务器,装置包括:接收模块1002、获取模块1004、生成模块1006和发送模块1008。
接收模块1002,用于接收客户端发送的通信密钥请求报文,通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳;
获取模块1004,用于从缓存服务器中获取与公钥版本号匹配的公钥,通过与公钥对应的私钥对临时密钥密文进行解密得到临时密钥,公钥和私钥均是根据SM2算法生成的,缓存服务器中存储有不同版本号公钥以及与不同版本号公钥对应的多个私钥;
生成模块1006,用于通过SM4算法随机生成长效密钥,根据预设的窗口长度、第一请求时间戳以及长效密钥生成通信密钥,通信密钥用于建立网关服务器与客户端之间的数据通信;
发送模块1008,用于通过临时密钥对通信密钥进行加密得到通信密钥密文,将通信密钥密文发送给客户端,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的。
在一个实施例中,生成模块1006包括:计算单元和组合生成单元(图中未示出),
计算单元,用于将第一请求时间戳按照预设的窗口长度通过滑动平均算法计算得到偏移时间戳;
组合生成单元,用于将偏移时间戳与长效密钥按照预设的组合规则进行组合,生成通信密钥。
在一个实施例中,通信装置1000还包括:校验模块1010;
校验模块1010,用于通过SM3算法对通信密钥请求密文进行计算得到第二杂凑值,将第二杂凑值与第一杂凑值进行比较,得到比较结果;在比较结果为第一杂凑值与第二杂凑值一致的情况下,通信密钥请求报文验证成功;在比较结果为第一杂凑值与第二杂凑值不一致的情况下,向客户端返回拒绝消息。
在一个实施例中,接收模块1002,还用于接收客户端发送的公钥请求报文,公钥请求报文包括公钥请求密文和第三杂凑值,第三杂凑值是公钥请求密文通过SM3算法计算得到;
校验模块1010,还用于通过SM3算法对公钥请求报文进行计算得到第四杂凑值,将第四杂凑值与第三杂凑值进行比较,得到比较结果;在比较结果为第三杂凑值与第四杂凑值一致的情况下,公钥请求报文验证成功;在比较结果为第三杂凑值与第四杂凑值不一致的情况下,向客户端返回拒绝消息。
在一个实施例中,获取模块1004,还用于从缓存服务器中获取公钥,公钥的版本号大于缓存服务器中存储的其他公钥的版本号,公钥的版本号按照升序的规则进行更新;
发送模块1008,还用于通过SM4算法对公钥进行加密得到公钥密文;并将公钥密文发送给客户端,公钥密文携带第二有效使用时间段,第二有效时间段是根据第二请求时间戳生成的。
在一个实施例中,如图12所示,提供了另一种通信装置2000,应用于客户端,装置包括:发送模块2002、接收模块2004、获取模块2006以及解密模块2008;
发送模块2002,用于向网关服务器发送通信密钥请求报文;通信密钥请求报文包括第一请求时间戳;通信密钥请求报文用于请求通信密钥;通信密钥用于建立网关服务器与客户端之间的数据通信;
接收模块2004,用于接收网关服务器发送的与通信密钥请求报文对应的通信密钥密文,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的;
获取模块2006,用于根据第一请求时间戳从客户端的国密库中获取对应的临时密钥,临时密钥是通过SM4算法生成的,国密库用于对客户端的传输报文进行加密解密处理以及生成客户端请求的密钥;
解密模块2008,用于通过临时密钥对通信密钥密文进行解密得到通信密钥。
在一个实施例中,通信装置2000还包括:生成模块2010;
生成模块2010,用于向国密库发送临时密钥请求以及预存的公钥;并接收国密库发送的临时密钥密文,临时密钥密文是国密库通过公钥对临时密钥进行加密处理后获得的;根据临时密钥密文、第一请求时间戳以及公钥的版本号生成通信密钥请求报文。
在一个实施例中,发送模块2002,还用于向网关服务器发送公钥请求报文;
接收模块2004,还用于接收网关服务器发送的公钥密文,公钥密文携带第二有效使用时间段,第二有效时间段是根据第二请求时间戳生成的;
解密模块2008,还用于通过预设的第一密钥对公钥密文进行解密得到公钥并存储,预设的第一密钥是通过SM4算法生成的。
在一个实施例中,生成模块2010,还用于向国密库发送公钥密文请求,公钥密文请求包括公钥请求明文;接收国密库发送的公钥请求密文,公钥请求密文是通过预设的第一密钥对公钥请求明文进行加密处理后获得的;根据公钥请求密文和第二请求时间戳生成公钥请求报文;
发送模块2002,还用于将公钥请求报文发送给网关服务器。
关于通信装置的具体限定可以参见上文中对于通信方法的限定,在此不再赘述。上述通信装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是网关服务器,其内部结构图可以如图13所示。该计算机设备包括通过系统总线连接的处理器、存储器和网络接口。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储通信数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种通信方法。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是客户端,其内部结构图可以如图14所示。该计算机设备包括通过系统总线连接的处理器、存储器、通信接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的通信接口用于与外部的终端进行有线或无线方式的通信,无线方式可通过WIFI、运营商网络、NFC(近场通信)或其他技术实现。该计算机程序被处理器执行时以实现一种通信方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图13-14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种网关服务器,包括存储器、处理器和收发器,存储器存储有计算机程序,
收发器,用于接收客户端发送的通信密钥请求报文,通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳;
处理器执行计算机程序时,用于从缓存服务器中获取与公钥版本号匹配的公钥,通过与公钥对应的私钥对临时密钥密文进行解密得到临时密钥,公钥和私钥均是根据SM2算法生成的,缓存服务器中存储有不同版本号公钥以及与不同版本号公钥对应的多个私钥;
处理器执行计算机程序时,还用于通过SM4算法随机生成长效密钥,根据预设的窗口长度、第一请求时间戳以及长效密钥生成通信密钥,通信密钥用于建立网关服务器与客户端之间的数据通信;
收发器,还用于通过临时密钥对通信密钥进行加密得到通信密钥密文,将通信密钥密文发送给客户端,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的。
在一个实施例中,处理器执行计算机程序时,还用于将第一请求时间戳按照预设的窗口长度通过滑动平均算法计算得到偏移时间戳;将偏移时间戳与长效密钥按照预设的组合规则进行组合,生成通信密钥。
在一个实施例中,通信密钥请求报文包括通信密钥请求密文和第一杂凑值,第一杂凑值是通过SM3算法对通信密钥请求密文计算得到,处理器执行计算机程序时,还用于通过SM3算法对通信密钥请求密文进行计算得到第二杂凑值,将第二杂凑值与第一杂凑值进行比较,得到比较结果;在比较结果为第一杂凑值与第二杂凑值一致的情况下,通信密钥请求报文验证成功;在比较结果为第一杂凑值与第二杂凑值不一致的情况下,向客户端返回拒绝消息。
在一个实施例中,收发器,还用于接收客户端发送的公钥请求报文,公钥请求报文包括公钥请求密文和第三杂凑值,第三杂凑值是公钥请求密文通过SM3算法计算得到;
处理器执行计算机程序时,还用于通过SM3算法对公钥请求报文进行计算得到第四杂凑值,将第四杂凑值与第三杂凑值进行比较,得到比较结果;在比较结果为第三杂凑值与第四杂凑值一致的情况下,公钥请求报文验证成功;在比较结果为第三杂凑值与第四杂凑值不一致的情况下,向客户端返回拒绝消息。
在一个实施例中,处理器执行计算机程序时,还用于从缓存服务器中获取公钥,公钥的版本号大于缓存服务器中存储的其他公钥的版本号,公钥的版本号按照升序的规则进行更新;通过SM4算法对公钥进行加密得到公钥密文;并将公钥密文发送给客户端,公钥密文携带第二有效使用时间段,第二有效时间段是根据第二请求时间戳生成的。
在一个实施例中,如图14所示,提供了一种客户端,包括存储器、处理器和收发器,存储器存储有计算机程序,
收发器,用于向网关服务器发送通信密钥请求报文;通信密钥请求报文包括第一请求时间戳;通信密钥请求报文用于请求通信密钥;通信密钥用于建立网关服务器与客户端之间的数据通信;
收发器,还用于接收网关服务器发送的与通信密钥请求报文对应的通信密钥密文,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的;
处理器执行计算机程序时,用于根据第一请求时间戳从客户端的国密库中获取对应的临时密钥,临时密钥是通过SM4算法生成的,国密库用于对客户端的传输报文进行加密解密处理以及生成客户端请求的密钥;以及通过临时密钥对通信密钥密文进行解密得到通信密钥。
在一个实施例中,收发器,还用于向国密库发送临时密钥请求以及预存的公钥;接收国密库发送的临时密钥密文,临时密钥密文是国密库通过公钥对临时密钥进行加密处理后获得的;
处理器执行计算机程序时,还用于根据临时密钥密文、第一请求时间戳以及公钥的版本号生成通信密钥请求报文。
在一个实施例中,收发器,还用于向网关服务器发送公钥请求报文;接收网关服务器发送的公钥密文,公钥密文携带第二有效使用时间段,第二有效时间段是根据第二请求时间戳生成的;
处理器执行计算机程序时,还用于通过预设的第一密钥对公钥密文进行解密得到公钥并存储,预设的第一密钥是通过SM4算法生成的。
在一个实施例中,收发器,还用于向国密库发送公钥密文请求,公钥密文请求包括公钥请求明文;接收国密库发送的公钥请求密文,公钥请求密文是通过预设的第一密钥对公钥请求明文进行加密处理后获得的;
处理器执行计算机程序时,还用于根据公钥请求密文和第二请求时间戳生成公钥请求报文;
收发器,还用于将公钥请求报文发送给网关服务器。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
接收客户端发送的通信密钥请求报文,通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳;
从缓存服务器中获取与公钥版本号匹配的公钥,通过与公钥对应的私钥对临时密钥密文进行解密得到临时密钥,公钥和私钥均是根据SM2算法生成的,缓存服务器中存储有不同版本号的公钥以及与不同版本号的公钥对应的多个私钥;
通过SM4算法生成长效密钥,根据预设的窗口长度、第一请求时间戳以及长效密钥生成通信密钥,通信密钥用于建立网关服务器与客户端之间的数据通信;
通过临时密钥对通信密钥进行加密得到通信密钥密文,将通信密钥密文发送给客户端,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
将第一请求时间戳按照预设的窗口长度通过滑动平均算法计算得到偏移时间戳;
将偏移时间戳与长效密钥按照预设的组合规则进行组合,生成通信密钥。
在一个实施例中,通信密钥请求报文包括通信密钥请求密文和第一杂凑值,第一杂凑值是通过SM3算法对通信密钥请求密文计算得到,计算机程序被处理器执行时还实现以下步骤:
通信密钥请求报文包括通信密钥请求密文和第一杂凑值,第一杂凑值是通过SM3算法对通信密钥请求密文计算得到,方法还包括:
通过SM3算法对通信密钥请求密文进行计算得到第二杂凑值,将第二杂凑值与第一杂凑值进行比较,得到比较结果;
在比较结果为第一杂凑值与第二杂凑值一致的情况下,通信密钥请求报文验证成功;在比较结果为第一杂凑值与第二杂凑值不一致的情况下,向客户端返回拒绝消息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
接收客户端发送的公钥请求报文,公钥请求报文包括公钥请求密文和第三杂凑值,第三杂凑值是公钥请求密文通过SM3算法计算得到;
通过SM3算法对公钥请求报文进行计算得到第四杂凑值,将第四杂凑值与第三杂凑值进行比较,得到比较结果;
在比较结果为第三杂凑值与第四杂凑值一致的情况下,公钥请求报文验证成功;在比较结果为第三杂凑值与第四杂凑值不一致的情况下,向客户端返回拒绝消息。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
从缓存服务器中获取公钥,公钥的版本号大于缓存服务器中存储的其他公钥的版本号,公钥的版本号按照升序的规则进行更新;
通过SM4算法对公钥进行加密得到公钥密文;并将公钥密文发送给客户端,公钥密文携带第二有效使用时间段,第二有效时间段是根据第二请求时间戳生成的。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
向网关服务器发送通信密钥请求报文;通信密钥请求报文包括第一请求时间戳;通信密钥请求报文用于请求通信密钥;通信密钥用于建立网关服务器与客户端之间的数据通信;
接收网关服务器发送的与通信密钥请求报文对应的通信密钥密文,通信密钥密文携带第一有效使用时间段,第一有效使用时间段是根据第一请求时间戳生成的;
根据第一请求时间戳从客户端的国密库中获取对应的临时密钥,临时密钥是通过SM4算法生成的,国密库用于对客户端的传输报文进行加密解密处理以及生成客户端请求的密钥;
通过临时密钥对通信密钥密文进行解密得到通信密钥。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:
向国密库发送临时密钥请求以及预存的公钥;
接收国密库发送的临时密钥密文,临时密钥密文是国密库通过公钥对临时密钥进行加密处理后获得的;
根据临时密钥密文、第一请求时间戳以及公钥的版本号生成通信密钥请求报文。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:向网关服务器发送公钥请求报文;
向网关服务器发送公钥请求报文,公钥请求报文携带第二请求时间戳;
接收网关服务器发送的公钥密文,公钥密文携带第二有效使用时间段,第二有效时间段是根据第二请求时间戳生成的;
通过预设的第一密钥对公钥密文进行解密得到公钥并存储,预设的第一密钥是通过SM4算法生成的。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:向国密库发送公钥密文请求,公钥密文请求包括公钥请求明文;
向国密库发送公钥密文请求,公钥密文请求包括公钥请求明文;
接收国密库发送的公钥请求密文,公钥请求密文是通过预设的第一密钥对公钥请求明文进行加密处理后获得的;
根据公钥请求密文和第二请求时间戳生成公钥请求报文,并将公钥请求报文发送给网关服务器。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和易失性存储器中的至少一种。非易失性存储器可包括只读存储器(Read-Only Memory,ROM)、磁带、软盘、闪存或光存储器等。易失性存储器可包括随机存取存储器(Random Access Memory,RAM)或外部高速缓冲存储器。作为说明而非局限,RAM可以是多种形式,比如静态随机存取存储器(Static Random Access Memory,SRAM)或动态随机存取存储器(Dynamic Random Access Memory,DRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

Claims (13)

1.一种通信方法,其特征在于,所述方法应用于网关服务器,所述方法包括:
接收所述客户端发送的通信密钥请求报文,所述通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳;所述第一请求时间戳用于对所述通信密钥请求报文产生的时间进行认证,表征所述客户端生成所述通信密钥请求报文的时间,以根据请求时间戳区别不同的客户端;
从缓存服务器中获取与所述公钥版本号匹配的公钥,通过与所述公钥对应的私钥对所述临时密钥密文进行解密得到临时密钥,所述公钥和所述私钥均是根据SM2算法生成的,所述缓存服务器中存储有不同版本号的公钥以及与不同版本号的公钥对应的多个私钥、以及网关服务器生成密钥;
通过SM4算法生成长效密钥,将所述第一请求时间戳按照预设的窗口长度通过滑动平均算法计算得到偏移时间戳,并将所述偏移时间戳与所述长效密钥按照预设的组合规则进行组合,生成通信密钥,所述通信密钥用于建立所述网关服务器与所述客户端之间的数据通信;
通过所述临时密钥对所述通信密钥进行加密得到通信密钥密文,将所述通信密钥密文发送给所述客户端,所述通信密钥密文携带第一有效使用时间段,所述第一有效使用时间段是根据所述第一请求时间戳生成的。
2.根据权利要求1所述的方法,其特征在于,所述通信密钥请求报文包括通信密钥请求密文和第一杂凑值,所述第一杂凑值是通过SM3算法对所述通信密钥请求密文计算得到,所述方法还包括:
通过SM3算法对所述通信密钥请求密文进行计算得到第二杂凑值,将所述第二杂凑值与所述第一杂凑值进行比较,得到比较结果;
若所述比较结果为所述第一杂凑值与所述第二杂凑值一致,则所述通信密钥请求报文验证成功;若所述比较结果为所述第一杂凑值与所述第二杂凑值不一致,则向所述客户端返回拒绝消息。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述客户端发送的公钥请求报文,所述公钥请求报文包括公钥请求密文和第三杂凑值,所述第三杂凑值是所述公钥请求密文通过SM3算法计算得到;
通过SM3算法对所述公钥请求报文进行计算得到第四杂凑值,将所述第四杂凑值与所述第三杂凑值进行比较,得到比较结果;
若所述比较结果为所述第三杂凑值与所述第四杂凑值一致,则所述公钥请求报文验证成功;若所述比较结果为所述第三杂凑值与所述第四杂凑值不一致,则向所述客户端返回拒绝消息。
4.根据权利要求3所述的方法,其特征在于,所述公钥请求报文携带第二请求时间戳,在所述公钥请求报文验证成功之后,所述方法包括:
从所述缓存服务器中获取公钥,所述公钥的版本号大于所述缓存服务器中存储的其他公钥的版本号,所述公钥的版本号按照升序的规则进行更新;
通过所述SM4算法对所述公钥进行加密得到公钥密文;并将所述公钥密文发送给所述客户端,所述公钥密文携带第二有效使用时间段,所述第二有效时间段是根据所述第二请求时间戳生成的。
5.一种通信方法,其特征在于,所述方法应用于客户端,所述方法包括:
向网关服务器发送通信密钥请求报文;所述通信密钥请求报文包括第一请求时间戳;所述通信密钥请求报文用于请求通信密钥;所述通信密钥用于建立所述网关服务器与所述客户端之间的数据通信;
接收所述网关服务器发送的与所述通信密钥请求报文对应的通信密钥密文,所述通信密钥密文携带第一有效使用时间段,所述第一有效使用时间段是根据所述第一请求时间戳生成的;
根据所述第一请求时间戳从所述客户端的国密库中获取对应的临时密钥,所述临时密钥是通过SM4算法生成的,所述国密库用于对所述客户端的传输报文进行加密解密处理以及生成所述客户端请求的密钥;
通过所述临时密钥对所述通信密钥密文进行解密得到所述通信密钥;所述通信密钥是将所述第一请求时间戳按照预设的窗口长度通过滑动平均算法计算得到偏移时间戳,并将所述偏移时间戳与长效密钥按照预设的组合规则进行组合生成的。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括生成所述通信密钥请求报文的步骤:
向所述国密库发送临时密钥请求以及预存的公钥;
接收所述国密库发送的所述临时密钥密文,所述临时密钥密文是所述国密库通过所述公钥对所述临时密钥进行加密处理后获得的;
根据所述临时密钥密文、所述第一请求时间戳以及所述公钥的版本号生成所述通信密钥请求报文。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
向所述网关服务器发送公钥请求报文,所述公钥请求报文携带第二请求时间戳;
接收所述网关服务器发送的公钥密文,所述公钥密文携带第二有效使用时间段,所述第二有效时间段是根据所述第二请求时间戳生成的;
通过预设的第一密钥对所述公钥密文进行解密得到所述公钥并存储,所述预设的第一密钥是通过所述SM4算法生成的。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括生成所述公钥请求报文的步骤:
向所述国密库发送公钥密文请求,所述公钥密文请求包括公钥请求明文;
接收所述国密库发送的公钥请求密文,所述公钥请求密文是通过预设的第一密钥对所述公钥请求明文进行加密处理后获得的;
根据所述公钥请求密文和第二请求时间戳生成所述公钥请求报文,并将所述公钥请求报文发送给所述网关服务器。
9.一种通信装置,其特征在于,应用于网关服务器,所述装置包括:
接收模块,用于接收所述客户端发送的通信密钥请求报文,所述通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳;
获取模块,用于从缓存服务器中获取与所述公钥版本号匹配的公钥,通过与所述公钥对应的私钥对所述临时密钥密文进行解密得到临时密钥,所述公钥和所述私钥均是根据SM2算法生成的,所述缓存服务器中存储有不同版本号公钥以及与不同版本号公钥对应的多个私钥;
生成模块,用于通过SM4算法随机生成长效密钥,将所述第一请求时间戳按照预设的窗口长度通过滑动平均算法计算得到偏移时间戳,并将所述偏移时间戳与所述长效密钥按照预设的组合规则进行组合,生成通信密钥,所述通信密钥用于建立所述网关服务器与所述客户端之间的数据通信;
发送模块,用于通过所述临时密钥对所述通信密钥进行加密得到通信密钥密文,将所述通信密钥密文发送给所述客户端,所述通信密钥密文携带第一有效使用时间段,所述第一有效使用时间段是根据所述第一请求时间戳生成的。
10.一种通信装置,其特征在于,应用于客户端,所述装置包括:
发送模块,用于向网关服务器发送通信密钥请求报文;所述通信密钥请求报文包括第一请求时间戳;所述通信密钥请求报文用于请求通信密钥;所述通信密钥用于建立所述网关服务器与所述客户端之间的数据通信;
接收模块,用于接收所述网关服务器发送的与所述通信密钥请求报文对应的通信密钥密文,所述通信密钥密文携带第一有效使用时间段,所述第一有效使用时间段是根据所述第一请求时间戳生成的;
获取模块,用于根据所述第一请求时间戳从所述客户端的国密库中获取对应的临时密钥,所述临时密钥是通过SM4算法生成的,所述国密库用于对所述客户端的传输报文进行加密解密处理以及生成客户端请求的密钥;
解密模块,用于通过所述临时密钥对所述通信密钥密文进行解密得到所述通信密钥;所述通信密钥是将所述第一请求时间戳按照预设的窗口长度通过滑动平均算法计算得到偏移时间戳,并将所述偏移时间戳与长效密钥按照预设的组合规则进行组合生成的。
11.一种网关服务器,包括存储器、处理器和收发器,所述存储器存储有计算机程序,其特征在于,
所述收发器,用于接收所述客户端发送的通信密钥请求报文,所述通信密钥请求报文包括临时密钥密文、公钥版本号以及第一请求时间戳;
所述处理器执行所述计算机程序时,用于从缓存服务器中获取与所述公钥版本号匹配的公钥,通过与所述公钥对应的私钥对所述临时密钥密文进行解密得到临时密钥,所述公钥和所述私钥均是根据SM2算法生成的,所述缓存服务器中存储有不同版本号公钥以及与不同版本号公钥对应的多个私钥;
所述处理器执行所述计算机程序时,还用于通过SM4算法随机生成长效密钥,将所述第一请求时间戳按照预设的窗口长度通过滑动平均算法计算得到偏移时间戳,并将所述偏移时间戳与所述长效密钥按照预设的组合规则进行组合,生成通信密钥,所述通信密钥用于建立所述网关服务器与所述客户端之间的数据通信;
所述收发器,还用于通过所述临时密钥对所述通信密钥进行加密得到通信密钥密文,将所述通信密钥密文发送给所述客户端,所述通信密钥密文携带第一有效使用时间段,所述第一有效使用时间段是根据所述第一请求时间戳生成的。
12.一种客户端,包括存储器、处理器和收发器,所述存储器存储有计算机程序,其特征在于,
所述收发器,用于向网关服务器发送通信密钥请求报文;所述通信密钥请求报文包括第一请求时间戳;所述通信密钥请求报文用于请求通信密钥;所述通信密钥用于建立所述网关服务器与所述客户端之间的数据通信;
所述收发器,还用于接收所述网关服务器发送的与所述通信密钥请求报文对应的通信密钥密文,所述通信密钥密文携带第一有效使用时间段,所述第一有效使用时间段是根据所述第一请求时间戳生成的;
所述处理器执行所述计算机程序时,用于根据所述第一请求时间戳从所述客户端的国密库中获取对应的临时密钥,所述临时密钥是通过SM4算法生成的,所述国密库用于对所述客户端的传输报文进行加密解密处理以及生成客户端请求的密钥;
所述处理器执行所述计算机程序时,还用于通过所述临时密钥对所述通信密钥密文进行解密得到所述通信密钥;所述通信密钥是将所述第一请求时间戳按照预设的窗口长度通过滑动平均算法计算得到偏移时间戳,并将所述偏移时间戳与长效密钥按照预设的组合规则进行组合生成的。
13.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至8中任一项所述的方法的步骤。
CN202110881481.1A 2021-08-02 2021-08-02 通信方法、装置、网关服务器、客户端及存储介质 Active CN113691502B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202110881481.1A CN113691502B (zh) 2021-08-02 2021-08-02 通信方法、装置、网关服务器、客户端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202110881481.1A CN113691502B (zh) 2021-08-02 2021-08-02 通信方法、装置、网关服务器、客户端及存储介质

Publications (2)

Publication Number Publication Date
CN113691502A CN113691502A (zh) 2021-11-23
CN113691502B true CN113691502B (zh) 2023-06-30

Family

ID=78578758

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202110881481.1A Active CN113691502B (zh) 2021-08-02 2021-08-02 通信方法、装置、网关服务器、客户端及存储介质

Country Status (1)

Country Link
CN (1) CN113691502B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114172664B (zh) * 2021-12-07 2024-02-09 天融信雄安网络安全技术有限公司 数据加密、数据解密方法、装置、电子设备及存储介质
CN114499836A (zh) * 2021-12-29 2022-05-13 北京像素软件科技股份有限公司 一种密钥管理方法、装置、计算机设备及可读存储介质
CN114499875B (zh) * 2021-12-31 2024-05-10 兴业消费金融股份公司 业务数据处理方法、装置、计算机设备和存储介质
CN115333839B (zh) * 2022-08-15 2023-11-07 中国电信股份有限公司 数据安全传输方法、系统、设备及存储介质
CN115883052A (zh) * 2022-10-24 2023-03-31 鼎铉商用密码测评技术(深圳)有限公司 数据加密方法、数据解密方法、设备及存储介质
CN115913755A (zh) * 2022-12-07 2023-04-04 重庆紫光华山智安科技有限公司 数据加密传输方法、装置、设备及介质
CN116094763A (zh) * 2022-12-07 2023-05-09 天翼云科技有限公司 一种基于云手机的上网行为管控方法及系统
CN115982778B (zh) * 2023-03-14 2023-07-14 北京仁科互动网络技术有限公司 Obs文件访问方法、系统、装置、电子设备及存储介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185740A (zh) * 2011-05-13 2011-09-14 北京星网锐捷网络技术有限公司 心跳检测方法及网络设备
CN112956224A (zh) * 2019-10-10 2021-06-11 尤温洛克公司 用于生成与uwb无线标签发送的消息相关的数字证明的方法和相关系统

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080304364A1 (en) * 2007-06-08 2008-12-11 Michael Holtzman Memory device with circuitry for improving accuracy of a time estimate
CN104519013B (zh) * 2013-09-27 2018-08-14 华为技术有限公司 保证媒体流安全性的方法、设备和系统
US9729312B2 (en) * 2015-04-28 2017-08-08 The United States Of America As Represented By The Secretary Of The Navy System and method for high-assurance data storage and processing based on homomorphic encryption
CN106712932B (zh) * 2016-07-20 2019-03-19 腾讯科技(深圳)有限公司 密钥管理方法、装置及系统
CN112235107B (zh) * 2020-10-27 2023-03-03 南方电网科学研究院有限责任公司 一种数据传输方法、装置、设备和存储介质
CN112512038B (zh) * 2020-11-19 2022-11-29 中国建设银行股份有限公司 会话密钥的生成方法、装置、电子设备及可读存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185740A (zh) * 2011-05-13 2011-09-14 北京星网锐捷网络技术有限公司 心跳检测方法及网络设备
CN112956224A (zh) * 2019-10-10 2021-06-11 尤温洛克公司 用于生成与uwb无线标签发送的消息相关的数字证明的方法和相关系统

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
一种基于雾计算的物联网应用;朱敏;;电脑知识与技术(34);全文 *

Also Published As

Publication number Publication date
CN113691502A (zh) 2021-11-23

Similar Documents

Publication Publication Date Title
CN113691502B (zh) 通信方法、装置、网关服务器、客户端及存储介质
CN107959567B (zh) 数据存储方法、数据获取方法、装置及系统
US10142107B2 (en) Token binding using trust module protected keys
KR100979576B1 (ko) 새로운 패스워드를 실현하기 위한 방법 및 컴퓨터 판독가능 매체
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
CN109714176B (zh) 口令认证方法、装置及存储介质
CN108199847B (zh) 数字安全处理方法、计算机设备及存储介质
CN110690956B (zh) 双向认证方法及系统、服务器和终端
US20200195446A1 (en) System and method for ensuring forward & backward secrecy using physically unclonable functions
CN110855667B (zh) 一种区块链加密方法、装置及系统
CN115473655B (zh) 接入网络的终端认证方法、装置及存储介质
CN115001841A (zh) 一种身份认证方法、装置及存储介质
CN111294203A (zh) 信息传输方法
US20180287796A1 (en) Security key hopping
GB2488753A (en) Encrypted communication
CN116049802B (zh) 应用单点登陆方法、系统、计算机设备和存储介质
CN116232639B (zh) 数据传输方法、装置、计算机设备和存储介质
CN114553557B (zh) 密钥调用方法、装置、计算机设备和存储介质
CN114124440B (zh) 安全传输方法、装置、计算机设备和存储介质
CN115361198A (zh) 解密方法、加密方法、装置、计算机设备和存储介质
CN114826702A (zh) 数据库访问密码加密方法、装置和计算机设备
CN116708039B (zh) 基于零信任单包认证的访问方法、装置及系统
Tsai et al. Cloud encryption using distributed environmental keys
US10491385B2 (en) Information processing system, information processing method, and recording medium for improving security of encrypted communications
Chang et al. Comments on a Secret-key-privacy-preserving authentication and key agreement scheme

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