CN111901124B - 一种通信安全防护方法、装置及电子设备 - Google Patents
一种通信安全防护方法、装置及电子设备 Download PDFInfo
- Publication number
- CN111901124B CN111901124B CN202010748014.7A CN202010748014A CN111901124B CN 111901124 B CN111901124 B CN 111901124B CN 202010748014 A CN202010748014 A CN 202010748014A CN 111901124 B CN111901124 B CN 111901124B
- Authority
- CN
- China
- Prior art keywords
- parameter
- request
- signature value
- data
- 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
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/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
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
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
本申请提供一种通信安全防护方法、装置及电子设备。该方法包括:接收所述客户端发送的数据请求;其中,所述数据请求中包括第一时间参数、第一随机数参数、第一请求数据参数以及第一签名值;基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值;将所述第一签名值以及所述第二签名值进行比对。通过该方式,能够有效的避免重放攻击和数据非法伪造,为数据传输带来了极大的安全性和可靠性。
Description
技术领域
本申请涉及网络安全技术领域,具体而言,涉及一种通信安全防护方法、装置及电子设备。
背景技术
随着现在网络科技的不断进步,用户对于网络的安全意识也不断增加,特别是Web通信安全备受关注,例如数据伪造、重放攻击等安全漏洞。这些安全漏洞会严重影响到网络业务的正常运营。
发明内容
本申请实施例的目的在于提供一种通信安全防护方法、装置及电子设备,以改善“目前出现的数据伪造、重放攻击等安全漏洞,会严重影响到网络业务的正常运营”的问题。
本发明是这样实现的:
第一方面,本申请实施例提供一种通信安全防护方法,应用于服务器,所述服务器与客户端之间通信连接,所述方法包括:接收所述客户端发送的数据请求;其中,所述数据请求中包括第一时间参数、第一随机数参数、第一请求数据参数以及第一签名值;所述第一签名值通过预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后生成的;所述第二时间参数、所述第二随机数参数、所述第二请求数据参数为所述客户端在发送所述数据请求时携带的参数;其中,所述第一预设字符串为所述客户端与所述服务器之间预先约定的,且所述第一预设字符串记录在所述客户端的配置文件中;基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值;其中,所述第二预设字符串为所述客户端与所述服务器之间预先约定的,且所述第二预设字符串记录在所述服务器的配置文件中;将所述第一签名值以及所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求。
在本申请实施例中,服务器在接收到第一时间参数、第一随机数参数、第一请求数据参数后,采用与客户端生成第一签名值相同的算法对上述参数进行加密,进而生成第二签名值,然后对第一签名值和第二签名值进行比对,若比对不一致,则表征数据请求为非法请求。通过该方式,能够有效的避免重放攻击和数据非法伪造,为数据传输带来了极大的安全性和可靠性。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,在所述基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值之前,所述方法还包括:确定接收到所述数据请求的时长未超过预设规定时长。
在本申请实施例中,在服务器对接收到的参数进行加密之前,会先判断接收到的数据请求是否超过预设规定时长。也即,服务器首先对数据的传输时间进行验证,再对加密后的签名值进行验证,通过双重验证的方式,加强了对非法请求的检测,进一步的提高了数据传输的安全性。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,在所述基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值之前,以及在所述确定接收到所述数据请求的时长未超过预设规定时长之后,所述方法还包括:确定所述第一随机数参数未存储在存储器中。
在本申请实施例中,在服务器对接收到的参数进行加密之前以及在确定接收到数据请求的时长未超过预设规定时长之后,服务器还会对第一随机数参数进行验证。第一随机参数若未存储于存储器中,则可以验证数据请求不是重放攻击。本申请实施例通过三重验证的方式,进一步的加强了对非法请求的检测,极大的提高了数据传输的安全性。此外,由于数据传输过程中限定了数据请求的预设规定时长,因此,存储器中可以仅存储与该数据请求的预设规定时长内的随机参数即可,进而保证了存储器中不用无限制的存储随机参数。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,在所述基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值之前,所述方法还包括:确定所述第一随机数参数未存储在存储器中。
在本申请实施例中,服务器还会对第一随机数参数进行验证。第一随机参数若未存储于存储器中,则可以初步验证数据请求不是重放攻击。通过双重验证的方式,加强了对非法请求的检测,进一步的提高了数据传输的安全性。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,所述数据请求中还包括第一登录信息参数;相应的,所述第一签名值通过所述预设加密算法对所述第二时间参数、所述第二随机数参数、所述第二请求数据参数、第二登录信息参数以及所述第一预设字符串进行加密后生成的;所述第二登录信息参数为所述客户端在向所述服务器发送请求前存储在本地的;相应的,所述基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值,包括:基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数、所述第一登录信息参数以及所述第二预设字符串进行加密后生成所述第二签名值。
在本申请实施例中,服务器与客户端之间各自生成的签名值的组成部分中还包括登录信息参数。通过将登录信息参数结合到签名值中,可以验证请求的合法性,进一步的提高数据传输的安全性。
结合上述第一方面提供的技术方案,在一些可能的实现方式中,在所述将所述第一签名值以及所述第二签名值进行比对,且比对结果一致之后,所述方法还包括:对所述第一登录信息参数进行验证;其中,若验证失败,则表征所述数据请求为非法请求。
在本申请实施例中,服务器在对签名值进行比对,且比对结果一致后,还会对接收到的第一登录信息进行验证,进而验证客户端与服务器之间通信的合法性,避免攻击者进行非法访问。
第二方面,本申请实施例提供一种通信安全防护方法,应用于客户端,所述客户端与服务器之间通信连接,所述方法包括:基于预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后生成第一签名值;其中,所述第一预设字符串为所述客户端与所述服务器之间预先约定的,且所述第一预设字符串记录在所述客户端的配置文件中;向所述服务器发送数据请求,以使所述服务器基于接收到的第一时间参数、第一随机数参数、第一请求数据参数以及第二预设字符串生成第二签名值;并将所述第一签名值和所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求;其中,所述客户端在发送所述数据请求时,携带有第二时间参数、第二随机数参数、第二请求数据参数以及第一签名值。
第三方面,本申请实施例提供一种通信安全防护装置,应用于服务器,所述服务器与客户端之间通信连接,所述装置包括:接收模块,用于接收所述客户端发送的数据请求;其中,所述数据请求中包括第一时间参数、第一随机数参数、第一请求数据参数以及第一签名值;所述第一签名值通过预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后生成的;所述第二时间参数、所述第二随机数参数、所述第二请求数据参数为所述客户端在发送所述数据请求时携带的参数;其中,所述第一预设字符串为所述客户端与所述服务器之间预先约定的,且所述第一预设字符串记录在所述客户端的配置文件中;生成模块,用于基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值;其中,所述第二预设字符串为所述客户端与所述服务器之间预先约定的,且所述第二预设字符串记录在所述服务器的配置文件中;比对模块,用于将所述第一签名值以及所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求。
第四方面,本申请实施例提供一种通信安全防护装置,应用于客户端,所述客户端与服务器之间通信连接,所述装置包括:生成模块,用于基于预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后生成第一签名值;其中,所述第一预设字符串为所述客户端与所述服务器之间预先约定的,且所述第一预设字符串记录在所述客户端的配置文件中;发送模块,用于向所述服务器发送数据请求,以使所述服务器基于接收到的第一时间参数、第一随机数参数、第一请求数据参数以及第二预设字符串生成第二签名值;并将所述第一签名值和所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求;其中,所述客户端在发送所述数据请求时,携带有第二时间参数、第二随机数参数、第二请求数据参数以及第一签名值。
第五方面,本申请实施例提供一种电子设备,包括:处理器和存储器,所述处理器和所述存储器连接;所述存储器用于存储程序;所述处理器用于调用存储在所述存储器中的程序,执行如上述第一方面实施例和/或结合上述第一方面实施例的一些可能的实现方式提供的方法,或执行如上述第二方面实施例提供的方法。
第六方面,本申请实施例提供一种存储介质,其上存储有计算机程序,所述计算机程序在被处理器运行时执行如上述第一方面实施例和/或结合上述第一方面实施例的一些可能的实现方式提供的方法,或执行如上述第二方面实施例提供的方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种通信安全防护方法及装置的应用环境示意图。
图2为本申请实施例提供的一种电子设备的结构示意图。
图3为本申请实施例提供的一种通信安全防护方法的步骤流程图。
图4为本申请实施例提供的另一种通信安全防护方法的步骤流程图。
图5为本申请实施例提供的一种应用于服务器中的通信安全防护装置的模块框图。
图标:100-电子设备;110-处理器;120-存储器;201-接收模块;202-生成模块;203-比对模块。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
本发明实施例所提供的通信安全防护方法及装置可应用于如图1所示的应用环境中。如图1所示,服务器以及一个或多个客户端通过无线网络或有线网络进行数据传输。
可选地,本申请实施例提供的通信安全防护方法适用Web(全球广域网)通信。比如,客户端通过浏览器向服务器发送AJAX请求,服务器端可以接收并验证客户端发送的AJAX请求是否为非法请求。
下面请参考图2,图2示出了一种电子设备100的结构框图。本申请实施例中,服务器和客户端均可以采用图2所示的电子设备的结构。其中,客户端可以是,但不限于智能手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、移动上网设备(MobileInternet Device,MID)等。具体的,电子设备100包括:处理器110和存储器120。
其中,处理器110与存储器120直接或间接地电性连接,以实现数据的传输或交互,例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。通信安全防护装置包括至少一个可以软件或固件(Firmware)的形式存储在存储器120中或固化在电子设备100的操作系统(Operating System,OS)中的软件模块。处理器110用于执行存储器120中存储的可执行模块,例如,通信安全防护装置所包括的软件功能模块及计算机程序等,以实现通信安全防护方法。处理器110可以在接收到执行指令后,执行计算机程序。
其中,处理器110可以是一种集成电路芯片,具有信号处理能力。处理器110也可以是通用处理器,例如,可以是中央处理器(Central Processing Unit,CPU)、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、分立门或晶体管逻辑器件、分立硬件组件,可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。此外,通用处理器可以是微处理器或者任何常规处理器等。
存储器120可以是,但不限于,随机存取存储器(Random Access Memory,RAM)、只读存储器(Read Only Memory,ROM)、可编程只读存储器(Programmable Read-OnlyMemory,PROM)、可擦可编程序只读存储器(Erasable Programmable Read-Only Memory,EPROM),以及电可擦编程只读存储器(Electric Erasable Programmable Read-OnlyMemory,EEPROM)。存储器120用于存储程序,处理器110在接收到执行指令后,执行该程序。
应当理解,图2所示的结构仅为示意,本申请实施例提供的电子设备100还可以具有比图2更少或更多的组件,或是具有与图2所示不同的配置。此外,图2所示的各组件可以通过软件、硬件或其组合实现。
请参阅图3,图3为本申请实施例提供的抗重放攻击方法的步骤流程图,需要说明的是,本申请实施例提供的抗重放攻击方法不以图3及以下所示的顺序为限制,以下结合图3对抗重放攻击方法的具体流程及步骤进行描述。该方法包括:步骤S101-步骤S105。
步骤S101:基于预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后生成第一签名值。
本申请实施例根据客户端与服务器之间生成的签名值sig进行非法请求的验证。
下面对签名值sig的组成进行说明:签名值sig包括时间参数stime、随机数参数non、请求数据参数(其参数名为requestParam和paramValue)以预设字符串asymmetricEncryptionStr。
时间参数stime表示时间戳。时间戳是使用数字签名技术产生的数据。时间戳用于表示当前数据产生的时间,比如生成请求数据的时间、向服务器发送数据请求时的时间等等,本申请不作限定。通常情况下,攻击者会对在拦截到数据请求时,会对时间参数stime进行篡改,以使得数据请求符合通信时间限制,进而得到重放攻击的目的。因此,通过设置时间参数stime用来防止重放攻击。
随机数参数non是随机生成的多位字符串。是通讯过程中可用于验证重放攻击的重要参数。需要解释的是,在客户端向服务器发送数据请求时,可以生成仅一次有效的多位字符串,服务器可以将每次获取到的字符串存储于存储中。若是字符串重复,可以验证为数据请求为重复攻击。上述的多位字符串可以是,但不限于六位字符串,八位字符串、十二位字符串。因此,设置随机数参数non用来防止重放攻击。
请求数据参数是指的所请求的数据,参数名为requestParam和paramValue,分别对应键和值;请求数据参数可以是json格式的字符集。请求数据参数是用来验证数据是否被攻击进行篡改。
预设字符串asymmetricEncryptionStr是客户端与服务器接口之间进行约定协商后所形成的字符串。与以上的组成不同的是,asymmetricEncryptionStr形成后,是记录在客户端和服务器的配置文件中的。在数据传输过程中,asymmetricEncryptionStr不会单独进行传输。通过预设字符串可以用来验证签名值是否为伪造。
可选地,上述的预设算法为MD5算法。则签名值sig=MD5(non+stime+requestParam+paramValue+asymmetricEncryptionStr)。MD5算法的原理可简要的叙述为:MD5码以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。
在其他实施例中,上述的预设算法还可以是哈希(Hash)算法。对此,本申请不作限定。
需要解释的是,上述的参数前所加的“第一”、“第二”主要是用于区分客户端发送数据请求时携带的参数和服务器接收到的参数。由于攻击者可以在数据传输过程中对数据进行篡改、伪造,则客户端所发送的参数不一定是服务器所接收到的参数。所以此处定义客户端生成的参数为:第二时间参数、第二随机数参数、第二请求数据参数。相应的,记录在客户端配置文件的为第一预设字符串。通过预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后,生成第一签名值。而定义服务器接收到的参数为:第一时间参数、第一随机数参数、第一请求数据参数。相应的,记录在服务器配置文件的为第二预设字符串。
步骤S102:向服务器发送数据请求;其中,数据请求中携带有第二时间参数、第二随机数参数、第二请求数据参数以及第一签名值。
当客户端基于预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密生成第一签名值后,客户端向服务器发送的数据请求,数据请求中包括四项公共参数:第二时间参数、第二随机数参数、第二请求数据参数以及第一签名值。
步骤S103:接收客户端发送的数据请求;其中,数据请求中包括第一时间参数、第一随机数参数、第一请求数据参数以及第一签名值。
在前文中也说明了,由于攻击者可能会对数据进行篡改,导致客户端所发送的参数不一定是服务器所接收到的参数。因此,将服务器接收到的参数定义为:第一时间参数、第一随机数参数、第一请求数据参数。相应的,记录在服务器配置文件的为第二预设字符串。
步骤S104:基于预设加密算法对第一时间参数、第一随机数参数、第一请求数据参数以及第二预设字符串进行加密后生成第二签名值。
服务器根据与客户端相同的预设加密算法对第一时间参数、第一请求数据参数以及第二预设字符串进行加密后生成第二签名值。比如,均采用MD5算法进行加密,或者均采用哈希算法进行加密。
步骤S105:将所述第一签名值以及所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求。
服务器在生成第二签名值后,将第二签名值与获取的第一签名值进行比对。若比对结果一致,则表征数据请求合法,数据请求并未被攻击者进行篡改以及数据请求并非是重放攻击。此时,客户端向服务器发送的第一时间参数、第一随机数参数、第一请求数据参数即为服务器所接收到的第二时间参数、第二随机数参数、第二请求数据参数。若比对结果不一致,则表征数据请求为非法请求,数据请求被攻击者进行了篡改或数据请求为重放攻击。
在本申请实施例中,服务器在接收到第一时间参数、第一随机数参数、第一请求数据参数后,采用与客户端生成第一签名值相同的算法对上述参数进行加密,进而生成第二签名值,然后对第一签名值和第二签名值进行比对,若比对不一致,则表征数据请求异常,该数据为重放攻击。通过该方式,能够有效的避免重放攻击和数据非法伪造,为数据传输带来了极大的安全性和可靠性。
可选地,在步骤S105服务器将第一签名值和第二签名值进行比对之后,服务器会根据不同的比对结果执行不同的操作。比如当比对结果不一致时,则表征数据请求为非法请求,此时服务器可以拒绝客户端的数据请求和/或向客户度发送请求失败信息。当比对结果一致时,则表征数据请求合法,此时服务器根据客户端发送的数据请求进行后续的处理。
可选地,为了进一步的提高数据传输的安全性,验证请求的合法性,本申请实施例中,在签名值的组成中还增加了登录信息参数token。
登录信息参数token是通讯中带有登录信息的参数,在通讯请求中用来验证登录。token是登录之后产生的,是服务端生成的一串字符串,以作客户端进行请求的一个令牌。当客户端第一次登录后,服务器生成一个token便将此token返回给客户端,以后客户端通讯只需带上这个token前来请求数据即可。
可选地,若预设算法采用MD5算法,则签名值sig=MD5(non+stime+token+requestParam+paramValue+asymmetricEncryptionStr)。
而为了区分客户端在向服务器发送请求前生成参数和服务器接收到的参数。将客户端发送的登录信息参数定义为第二登录信息参数;将服务器接收的登录信息参数定义为第一登录信息参数。
相应的,服务器在接收到包含第一登录信息参数的数据请求后,基于与客户端相同的预设加密算法对第一时间参数、第一请求数据参数、第一登录信息参数以及第二预设字符串进行加密后生成第二签名值。服务器在生成第二签名值后,将第二签名值与获取的第一签名值进行比对。若比对结果一致,则表征数据请求合法,数据请求并未被攻击者进行篡改以及数据请求并非是重放攻击。此时,客户端向服务器发送的第一时间参数、第一随机数参数、第一请求数据参数、第二登录信息参数即为服务器所接收到的第二时间参数、第二随机数参数、第二请求数据参数、第一登录信息参数。若比对结果不一致,则表征数据请求为非法请求,数据请求被攻击者进行了篡改或数据请求为重放攻击。
可选地,为了进一步的验证客户端与服务器之间通信的合法性,避免攻击者进行非法访问,在比对结果一致后,服务器还会对接收到的第一登录信息进行验证。也即验证服务器接收到的第一登录信息与客户端第一次登录时,服务器向客户端返回的登录信息参数token是否一致,若验证成功,则表示登录信息参数一致,数据请求合法。若验证失败,则表示登录信息参数不一致,数据请求不合法。
相应的,若验证失败,此时服务器可以拒绝客户端的数据请求和/或向客户度发送请求失败信息。当验证成功,此时服务器根据客户端发送的数据请求进行后续的处理。
请参阅图4,本申请实施例提供另一种通信安全防护方法,该方法将服务器的验证机制进行复杂化,进而加强了数据通信的安全性。该方法包括:步骤S201-步骤S205。
步骤S201:接收客户端发送的数据请求;其中,数据请求中包括第一时间参数、第一随机数参数、第一请求数据参数以及第一签名值。
步骤S202:判断接收到所述数据请求的时长是否超过预设规定时长。
服务器在接收到数据请求后,首先对传输时间进行验证,也即判断数据请求的时长是否超过预设规定时长。其中预设规定时长通常设置为60秒。也即一次正常的通信请求,从客户端发送请求到服务接收到请求通常情况不会超过60秒。若是攻击者从中进行抓包然后篡改数据再到重放,整个过程必然超过60秒,因此,通过判断接收到数据请求的时长来验证是否数据请求为重放攻击。上述的预设规定时长还可以设置为58秒、65秒等等,本申请不作限定。
具体的,服务器根据第一时间参数对应的客户端发送请求时的时间戳与接收到的数据请求时的时间相减,进而判断传输时长是否超过预设规定时长。当确定出接收到数据请求的时长未超过预设规定时长后,执行步骤S203。当确定出接收到数据请求的时长超过预设规定时长后,此时服务器可以拒绝客户端的数据请求和/或向客户度发送请求失败信息。
步骤S203:判断所述第一随机参数是否存储在存储器中。
在通过传输时间验证后,服务器再对第一随机参数进行验证。第一随机数参数是随机生成的多位字符串。是通讯过程中可用于验证重放的重要参数。需要解释的是,在客户端向服务器发送数据请求时,可以生成仅一次有效的多位字符串,服务器可以将每次获取到的字符串存储于存储中。若是字符串重复,可以验证为数据请求为重复攻击。当确定出字符串重复后,此时服务器可以拒绝客户端的数据请求和/或向客户度发送请求失败信息。当确定出字符串未存储在存储器中,则执行步骤S204。
可选地,对于服务器存储随机数参数的位置,本申请不作限定,比如服务器还可以将随机数参数存储在数据库中。
需要说明的是,由于在该过程中,第一次验证时限定了数据请求的预设规定时长,因此,存储器中可以仅存储与该数据请求的预设规定时长内的随机参数即可,进而保证了存储器中不用无限制的存储随机参数。
步骤S204:基于预设加密算法对第一时间参数、第一随机数参数、第一请求数据参数以及第二预设字符串进行加密后生成第二签名值。
步骤S205:将所述第一签名值以及所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求。
需要说明的是,步骤S204和步骤S205的过程与上述实施例中步骤S104和步骤S105相同,为了避免累赘,此处不作重复阐述,相同部分,参考上述实施例即可。
综上可知,步骤S201-步骤S205中,通过将服务器的验证机制进行复杂化,进而实现对数据请求的三重验证,也即首先对传输时间进行验证,其次对第一随机参数进行验证,最后对签名值进行验证。通过三重验证的方式,进一步的加强了对非法请求的检测,极大的提高了数据传输的安全性。
可选地,在其他实施例中,也可以仅采用双重验证的方式,比如可以采用先对传输时间进行验证,再对签名值进行验证的方式,也可以采用先对第一随机参数进行验证,再对签名值进行验证的方式,还可以采用先对传输时间进行验证,再对第一随机参数进行验证的方式。对此,本申请不作限定。
可选地,为了进一步的提高数据传输的安全性,避免攻击者对登录信息参数进行恶意篡改后进行重放攻击,本申请实施例中,在签名值的组成中还增加了登录信息参数token。相应的,在步骤S205服务器在比对签名值的结果一致后,服务器还会对接收到的第一登录信息进行验证。也即验证服务器接收到的第一登录信息与客户端第一次登录时,服务器向客户端返回的登录信息参数token是否一致,若验证成功,则表示登录信息参数一致,数据请求合法。若验证失败,则表示登录信息参数不一致,数据请求不合法。需要说明的是,上述步骤的具体过程,可以参考前述实施例中的介绍,为了避免累赘此处不作重复阐述。
请参阅图5,基于同一发明构思,本申请实施例还提供一种通信安全防护装置,该装置应用于服务器。服务器与客户端之间通信连接。该装置包括:接收模块201、生成模块202和比对模块203。
接收模块201,用于接收所述客户端发送的数据请求;其中,所述数据请求中包括第一时间参数、第一随机数参数、第一请求数据参数以及第一签名值;所述第一签名值通过预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后生成的;所述第二时间参数、所述第二随机数参数、所述第二请求数据参数为所述客户端在发送所述数据请求时携带的参数;其中,所述第一预设字符串为所述客户端与所述服务器之间预先约定的,且所述第一预设字符串记录在所述客户端的配置文件中。
生成模块202,用于基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值;其中,所述第二预设字符串为所述客户端与所述服务器之间预先约定的,且所述第二预设字符串记录在所述服务器的配置文件中。
比对模块203,用于将所述第一签名值以及所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求。
可选地,该装置还包括第一确定模块。第一确定模块用于在所述基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值之前,确定接收到所述数据请求的时长未超过预设规定时长。
可选地,该装置还包括第二确定模块。第二确定模块用于在所述基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值之前,以及在所述确定接收到所述数据请求的时长未超过预设规定时长之后,确定所述第一随机数参数未存储在存储器中。
可选地,数据请求中还包括第一登录信息参数。相应的,生成模块202具体用于基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数、所述第一登录信息参数以及所述第二预设字符串进行加密后生成所述第二签名值。
可选地,该装置还包括验证模块。验证模块用于在在所述将所述第一签名值以及所述第二签名值进行比对,且比对结果一致之后,对所述第一登录信息参数进行验证;其中,若验证失败,则表征所述数据请求为非法请求。
基于同一发明构思,本申请实施例还提供一种通信安全防护装置,该装置应用于客户端。服务器与客户端之间通信连接。该装置包括:生成模块和发送模块。
生成模块,用于基于预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后生成第一签名值;其中,所述第一预设字符串为所述客户端与所述服务器之间预先约定的,且所述第一预设字符串记录在所述客户端的配置文件中。
发送模块,用于向所述服务器发送数据请求,以使所述服务器基于接收到的第一时间参数、第一随机数参数、第一请求数据参数以及第二预设字符串生成第二签名值;并将所述第一签名值和所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求;其中,所述客户端在发送所述数据请求时,携带有第二时间参数、第二随机数参数、第二请求数据参数以及第一签名值。
需要说明的是,由于所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
基于同一发明构思,本申请实施例还提供一种存储介质,其上存储有计算机程序,计算机程序在被运行时执行上述实施例中提供的方法。
该存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种通信安全防护方法,其特征在于,应用于服务器,所述服务器与客户端之间通信连接,所述方法包括:
接收所述客户端发送的数据请求;其中,所述数据请求中包括第一时间参数、第一随机数参数、第一请求数据参数以及第一签名值;所述第一签名值通过预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后生成的;所述第二时间参数、所述第二随机数参数、所述第二请求数据参数为所述客户端在发送所述数据请求时携带的参数;其中,所述第一预设字符串为所述客户端与所述服务器之间预先约定的,且所述第一预设字符串记录在所述客户端的配置文件中;
基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值;其中,所述第二预设字符串为所述客户端与所述服务器之间预先约定的,且所述第二预设字符串记录在所述服务器的配置文件中;
将所述第一签名值以及所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求;
所述数据请求中还包括第一登录信息参数;相应的,所述第一签名值通过所述预设加密算法对所述第二时间参数、所述第二随机数参数、所述第二请求数据参数、第二登录信息参数以及所述第一预设字符串进行加密后生成的;所述第二登录信息参数为所述客户端在向所述服务器发送请求前存储在本地的;
相应的,所述基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值,包括:
基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数、所述第一登录信息参数以及所述第二预设字符串进行加密后生成所述第二签名值;
在所述将所述第一签名值以及所述第二签名值进行比对,且比对结果一致之后,所述方法还包括:
对所述第一登录信息参数进行验证;其中,若验证失败,则表征所述数据请求为非法请求。
2.根据权利要求1所述的通信安全防护方法,其特征在于,在所述基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值之前,所述方法还包括:
确定接收到所述数据请求的时长未超过预设规定时长。
3.根据权利要求2所述的通信安全防护方法,其特征在于,在所述基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值之前,以及在所述确定接收到所述数据请求的时长未超过预设规定时长之后,所述方法还包括:
确定所述第一随机数参数未存储在存储器中。
4.根据权利要求1所述的通信安全防护方法,其特征在于,在所述基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值之前,所述方法还包括:
确定所述第一随机数参数未存储在存储器中。
5.一种通信安全防护方法,其特征在于,应用于客户端,所述客户端与服务器之间通信连接,所述方法包括:
基于预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后生成第一签名值;其中,所述第一预设字符串为所述客户端与所述服务器之间预先约定的,且所述第一预设字符串记录在所述客户端的配置文件中;
向所述服务器发送数据请求,以使所述服务器基于接收到的第一时间参数、第一随机数参数、第一请求数据参数以及第二预设字符串生成第二签名值;并将所述第一签名值和所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求;其中,所述客户端在发送所述数据请求时,携带有第二时间参数、第二随机数参数、第二请求数据参数以及第一签名值;
所述数据请求中还包括第一登录信息参数;相应的,所述第一签名值通过所述预设加密算法对所述第二时间参数、所述第二随机数参数、所述第二请求数据参数、第二登录信息参数以及所述第一预设字符串进行加密后生成的;所述第二登录信息参数为所述客户端在向所述服务器发送请求前存储在本地的;
相应的,所述基于接收到的第一时间参数、第一随机数参数、第一请求数据参数以及第二预设字符串生成第二签名值,包括:
基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数、所述第一登录信息参数以及所述第二预设字符串进行加密后生成所述第二签名值;
在所述将所述第一签名值和所述第二签名值进行比对,且比对结果一致之后,所述方法还包括:
对所述第一登录信息参数进行验证;其中,若验证失败,则表征所述数据请求为非法请求。
6.一种通信安全防护装置,其特征在于,应用于服务器,所述服务器与客户端之间通信连接,所述装置包括:
接收模块,用于接收所述客户端发送的数据请求;其中,所述数据请求中包括第一时间参数、第一随机数参数、第一请求数据参数以及第一签名值;所述第一签名值通过预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后生成的;所述第二时间参数、所述第二随机数参数、所述第二请求数据参数为所述客户端在发送所述数据请求时携带的参数;其中,所述第一预设字符串为所述客户端与所述服务器之间预先约定的,且所述第一预设字符串记录在所述客户端的配置文件中;
生成模块,用于基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数以及第二预设字符串进行加密后生成第二签名值;其中,所述第二预设字符串为所述客户端与所述服务器之间预先约定的,且所述第二预设字符串记录在所述服务器的配置文件中;
比对模块,用于将所述第一签名值以及所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求;
数据请求中还包括第一登录信息参数,相应的,生成模块具体用于基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数、所述第一登录信息参数以及所述第二预设字符串进行加密后生成所述第二签名值;
该装置还包括验证模块,验证模块用于在所述将所述第一签名值以及所述第二签名值进行比对,且比对结果一致之后,对所述第一登录信息参数进行验证;其中,若验证失败,则表征所述数据请求为非法请求。
7.一种通信安全防护装置,其特征在于,应用于客户端,所述客户端与服务器之间通信连接,所述装置包括:
生成模块,用于基于预设加密算法对第二时间参数、第二随机数参数、第二请求数据参数以及第一预设字符串进行加密后生成第一签名值;其中,所述第一预设字符串为所述客户端与所述服务器之间预先约定的,且所述第一预设字符串记录在所述客户端的配置文件中;
发送模块,用于向所述服务器发送数据请求,以使所述服务器基于接收到的第一时间参数、第一随机数参数、第一请求数据参数以及第二预设字符串生成第二签名值;并将所述第一签名值和所述第二签名值进行比对;其中,若比对结果不一致,则表征所述数据请求为非法请求;其中,所述客户端在发送所述数据请求时,携带有第二时间参数、第二随机数参数、第二请求数据参数以及第一签名值;
数据请求中还包括第一登录信息参数,相应的,生成模块具体用于基于所述预设加密算法对所述第一时间参数、所述第一随机数参数、所述第一请求数据参数、所述第一登录信息参数以及所述第二预设字符串进行加密后生成所述第二签名值。
8.一种电子设备,其特征在于,包括:处理器和存储器,所述处理器和所述存储器连接;
所述存储器用于存储程序;
所述处理器用于运行存储在所述存储器中的程序,执行如权利要求1-4中任一项所述的方法或执行如权利要求5所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010748014.7A CN111901124B (zh) | 2020-07-29 | 2020-07-29 | 一种通信安全防护方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010748014.7A CN111901124B (zh) | 2020-07-29 | 2020-07-29 | 一种通信安全防护方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111901124A CN111901124A (zh) | 2020-11-06 |
CN111901124B true CN111901124B (zh) | 2023-04-18 |
Family
ID=73183412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010748014.7A Active CN111901124B (zh) | 2020-07-29 | 2020-07-29 | 一种通信安全防护方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111901124B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112631735B (zh) * | 2020-12-30 | 2024-06-21 | 北京天融信网络安全技术有限公司 | 一种虚拟机授权管理方法、装置,电子设备及存储介质 |
CN112953720A (zh) * | 2021-01-28 | 2021-06-11 | 上海微盟企业发展有限公司 | 一种网络请求处理方法、装置、设备及存储介质 |
CN114553438A (zh) * | 2022-03-02 | 2022-05-27 | 深圳壹账通智能科技有限公司 | 数据传输方法、装置、电子设备及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965230A (zh) * | 2018-05-09 | 2018-12-07 | 深圳市中信网安认证有限公司 | 一种安全通信方法、系统及终端设备 |
CN111260365A (zh) * | 2020-03-13 | 2020-06-09 | 上海商米科技集团股份有限公司 | 一种保护交易安全性的加密方法和装置 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107453878A (zh) * | 2017-08-11 | 2017-12-08 | 四川长虹电器股份有限公司 | 一种支持rest api防篡改防重放的方法 |
CN107493286A (zh) * | 2017-08-23 | 2017-12-19 | 杭州安恒信息技术有限公司 | 一种基于安全鉴权的rpc远程过程调用方法 |
CN110545173A (zh) * | 2019-07-29 | 2019-12-06 | 大众问问(北京)信息科技有限公司 | 一种安全验证及发送请求的方法及装置 |
CN110611564B (zh) * | 2019-07-30 | 2022-11-11 | 云南昆钢电子信息科技有限公司 | 一种基于时间戳的api重放攻击的防御系统及方法 |
-
2020
- 2020-07-29 CN CN202010748014.7A patent/CN111901124B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108965230A (zh) * | 2018-05-09 | 2018-12-07 | 深圳市中信网安认证有限公司 | 一种安全通信方法、系统及终端设备 |
CN111260365A (zh) * | 2020-03-13 | 2020-06-09 | 上海商米科技集团股份有限公司 | 一种保护交易安全性的加密方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN111901124A (zh) | 2020-11-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9497210B2 (en) | Stateless attestation system | |
CN111901124B (zh) | 一种通信安全防护方法、装置及电子设备 | |
US9853964B2 (en) | System and method for authenticating the legitimacy of a request for a resource by a user | |
CN108243176B (zh) | 数据传输方法和装置 | |
JP4591894B2 (ja) | セキュリティモジュールを有するユーザ装置により実行できる処理に対するプライバシの維持 | |
CN112711759A (zh) | 一种防重放攻击漏洞安全防护的方法及系统 | |
CN109831311B (zh) | 一种服务器验证方法、系统、用户终端及可读存储介质 | |
CN112968910B (zh) | 一种防重放攻击方法和装置 | |
JP2007522739A (ja) | 一方向性認証 | |
CN114244522B (zh) | 信息保护方法、装置、电子设备及计算机可读存储介质 | |
US10122755B2 (en) | Method and apparatus for detecting that an attacker has sent one or more messages to a receiver node | |
CN112688919A (zh) | 一种基于app接口的反爬虫方法、设备及介质 | |
CN110929231A (zh) | 数字资产的授权方法、装置和服务器 | |
CN114244508A (zh) | 数据加密方法、装置、设备及存储介质 | |
CN108900595B (zh) | 访问云存储服务器数据的方法、装置、设备及计算介质 | |
CN112600831B (zh) | 一种网络客户端身份认证系统和方法 | |
CN114531246A (zh) | 数据下载方法及装置 | |
CN110830465B (zh) | 一种访问UKey的安全防护方法、服务器和客户端 | |
CN113938323B (zh) | 基于jwt的防重放攻击方法、装置、设备以及存储介质 | |
CN114650175B (zh) | 一种验证方法及装置 | |
CN117728942A (zh) | 互信码生成方法、设备验证方法及电子设备 | |
CN117040821A (zh) | 登录态生成和验证的方法、电子设备及介质 | |
CN116881939A (zh) | 基于数字签名算法选择的加密校验方法、装置及设备 | |
EP3087714B1 (en) | A method and apparatus for detecting that an attacker has sent one or more messages to a receiver node | |
CN116744298A (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 |