CN117439799A - 一种http请求数据防篡改的方法 - Google Patents
一种http请求数据防篡改的方法 Download PDFInfo
- Publication number
- CN117439799A CN117439799A CN202311529491.4A CN202311529491A CN117439799A CN 117439799 A CN117439799 A CN 117439799A CN 202311529491 A CN202311529491 A CN 202311529491A CN 117439799 A CN117439799 A CN 117439799A
- Authority
- CN
- China
- Prior art keywords
- request
- data
- encryption
- encryption algorithm
- http
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 47
- 150000003839 salts Chemical class 0.000 claims abstract description 26
- 238000001914 filtration Methods 0.000 claims abstract description 17
- 230000002427 irreversible effect Effects 0.000 claims abstract description 16
- 238000004364 calculation method Methods 0.000 claims abstract description 12
- 230000007246 mechanism Effects 0.000 claims description 10
- 241000533950 Leucojum Species 0.000 claims description 8
- 230000006870 function Effects 0.000 claims description 8
- 230000009471 action Effects 0.000 claims description 7
- 238000012544 monitoring process Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000012545 processing Methods 0.000 claims description 3
- 230000001960 triggered effect Effects 0.000 claims description 3
- 230000002776 aggregation Effects 0.000 claims description 2
- 238000004220 aggregation Methods 0.000 claims description 2
- 238000004140 cleaning Methods 0.000 claims 1
- 230000001419 dependent effect Effects 0.000 claims 1
- 238000004891 communication Methods 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 239000003795 chemical substances by application Substances 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 241001522296 Erithacus rubecula Species 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 238000013496 data integrity verification Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000000354 decomposition reaction Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- 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/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0236—Filtering by address, protocol, port number or service, e.g. IP-address or URL
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1466—Active attacks involving interception, injection, modification, spoofing of data unit addresses, e.g. hijacking, packet injection or TCP sequence number attacks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/146—Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- 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/14—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
- H04L9/16—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms the keys or algorithms being changed during operation
-
- 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/40—Network security protocols
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)
- Computer And Data Communications (AREA)
Abstract
本发明公开了一种http请求数据防篡改的方法,属于数据防篡改技术领域。本发明旨在对公布在网络上的http请求数据进行安全性保护。步骤如下:S100、服务器端解析http的请求数据;S200、判断Token是否为空,如果为空则加密数据不包括Token,否则取Token中前N位数据,其中N为正整数;S300、判断请求体是否为空,如果为空则加密数据不包括请求体数据,否则取前1024字节数据,不足1024字节的数据取全部;S400、采用加密动态盐;S500、采用动态加密;S600、采用不可逆加密算法对加密数据进行加盐计算;S700、针对攻击者的重放攻击,采用过滤方法,进行记录。
Description
技术领域
本发明涉及数据防篡改技术领域,具体为一种http请求数据防篡改的方法。
背景技术
当今很多物联网平台缺少对公布在网络上的http请求数据的安全性保护,导致不法之徒利用工具拦截并篡改http请求数据,从而获取到重要的用户数据,造成巨大的安全隐患。http是一种明文传输协议,因此在传输过程中容易受到中间人攻击,通过加密通信可以提高http通信的安全性。重放攻击是攻击者多次发送相同请求的行为,通常用于欺骗服务器或干扰系统。防止重放攻击需要采用不同的安全措施,如请求记录、时间窗口、记录保留等。
现有技术在处理重放攻击方面存在漏洞,重放攻击是攻击者发送相同请求的行为,会导致数据被多次访问或系统遭受干扰,缺乏有效的防护机制会导致安全风险。某些现有技术可能使用复杂的加密方法,增加了系统的复杂性和性能开销,而没有提供明显的增加安全性的好处。在防护重放攻击方面,现有技术需要记录和管理大量请求数据,这会导致数据存储和维护的复杂性。现有技术缺乏弹性,难以调整安全策略以适应不同的应用场景和需求。
发明内容
本发明的目的在于提供一种http请求数据防篡改的方法,以解决上述背景技术中提出的问题。
为了解决上述技术问题,本发明提供如下技术方案:
一种http请求数据防篡改的方法,步骤如下:
S100、服务器端解析http请求数据的接口地址,请求头中的Sign、Token、Serialnumber元素,请求体的数据;
S200、判断Token是否为空,如果为空执行步骤S201,否则执行步骤S202;
S201、说明是在非登录情况下调用,则加密数据不包括Token;
S202、取Token中前N位数据,其中N为正整数;
S300、判断请求体是否为空,如果为空执行步骤S301,否则执行步骤S302;
S301、说明http请求业务逻辑不传输数据,则加密数据不包括请求体数据;
S302、取前1024字节数据,不足1024字节的数据取全部;
S400、使用不可逆的MD5加密算法,结合动态盐,保护http请求数据的完整性和防止篡改;
S500、采用动态加密,统计客户端向后台请求数据按照接口地址、请求频次进行分类,根据不同请求频次,分配给对应接口地址不同强度的加密算法;
S600、采用不可逆加密算法对加密数据进行加盐计算,得到的结果与Sign元素比较;如果一致执行步骤S601,否则执行步骤S602;
S601、认为数据是安全、完整并且没有被篡改的;
S602、表示数据为不安全的,停止向业务逻辑端执行;
S700、针对攻击者的重放攻击,采用过滤方法,记录每次请求的接口地址和请求头中的Serialnumber,如果发现有与之重复的请求数据,自动过滤,避免攻击者利用此攻击目标系统。
根据步骤S100,接口地址从http请求的URL中提取,使用服务器端的http请求处理库或框架访问URL信息;请求头中元素Sign、Token、Serialnumber,通过http请求对象的请求头字段访问,使用相应的函数,根据请求头字段的名称获取请求头中元素的值;解析请求体的数据,具体取决于请求的内容类型,使用服务器端框架或库提供的相应函数或方法,从http请求对象中提取请求体数据,如果请求体是JSON数据,使用JSON解析器将JSON数据解析为可处理的数据结构。
根据步骤S400,所述动态盐内容为P1+P2,P1取加密数据的前M字节数据,不足M字节的数据取全部,其中M是正整数;P2是请求头Serialnumber,Serialnumber是雪花算法产生的数字,每次请求都不同。
雪花算法是一种分布式唯一ID生成算法,用于生成全局唯一的标识符。这些标识符通常在分布式系统中用于唯一地标识对象、实体或数据。雪花算法的设计目的是确保生成的ID是全局唯一、有序的,并且可以在分布式系统中高效生成,不需要中心化的协调。
使用雪花算法生成Serialnumber,Serialnumber包含符号位、时间戳、机器ID、序列号和随机位;所述符号位占一位,用于表示在正负;所述时间戳占四十一位,记录当前时间的毫秒级别,从一个固定时间Epoch开始计算;所述机器ID占十位,用于标识不同的机器,每台机器需要分配一个唯一的ID,由系统管理员进行分配;所述序列号占十二位,用于解决同一毫秒内产生多个ID的冲突问题,如果同一毫秒内产生多个ID,序列号会递增,直到毫秒结束;所述随机位占一位,设置0或者1,用于增加ID的随机性。
根据步骤S500,采用动态加密时,在服务器端,首先需要分析客户端向后台发送的请求的特征,基于请求的特征,将请求按照接口地址、请求频次进行分类;接着,为每个请求类别确定相应的加密策略,选择使用的加密算法、密钥长度、初始化向量;对于高安全性要求的请求,选择更复杂的加密算法,以及更长的密钥;对于低频率的请求,选择轻量级的加密算法,减少计算开销;确定加密策略以后,服务器使用选定的加密算法和密钥对请求数据进行加密,数据在加密后变为不可读;
在接收到加密数据后,服务器需要根据请求的特征解密数据,解密过程依赖于之前选择的加密算法和密钥;动态加密包括实时监控机制,以捕获不同请求特征的变化;如果请求的模式或特征发生变化,服务器能够随时调整加密策略;对于秘钥,使用密钥轮换策略定期更改密钥。
给对应接口地址分配不同强度的加密算法的方案如下:
对于接口地址login且每日请求频次在0到A的,使用加密算法MD5,其中A是正整数;对于接口地址qryClient且每日请求频次在A+1到B的,使用加密算法SHA256,其中B是正整数;对于接口地址qryUser且每日请求频次大于B的,使用加密算法RSA。
MD5是一种广泛使用的不可逆散列函数,用于生成固定长度的哈希值,MD5基于密码学原理,其工作原理如下:
输入数据:MD5接收一个输入消息作为输入。
数据填充:如果输入的消息不是64字节的整数倍,MD5会对消息进行填充以确保其长度是64字节的整数倍。
初始值:MD5算法使用一组初始常数值作为哈希计算的初始种子。
消息分块:MD5将填充后的消息分成512位的块,然后对每个块应用一系列的循环运算。
循环运算:每个分块通过四轮循环运算,包括位操作、布尔函数、循环迭代和模运算。这些运算使数据逐步转化为128位的哈希值。
合并哈希:最后的哈希值是所有块的哈希的累积结果。
SHA-256是一种密码学安全散列函数,用于生成具有固定长度的哈希值,通常为256位。SHA-256是SHA-2家族中的一员,是其中最常用的一种。它广泛用于密码学、数字签名、数据完整性验证和加密通信等领域,因为其高度安全性和广泛可用性。
SHA-256的工作原理如下:
输入数据:SHA-256接受一个输入消息,可以是任意长度的数据。
填充数据:如果输入消息的长度不是512位的整数倍,SHA-256会对消息进行填充以确保其长度是512位的整数倍。
初始常数:SHA-256使用一组初始常数值8个32位字作为哈希计算的初始种子。
分块处理:SHA-256将填充后的消息分成512位的块,并对每个块应用一系列的循环运算。
循环运算:每个块通过64轮的循环运算,包括位操作、布尔函数、位移和模运算。这些运算逐步将数据转化为256位的哈希值。
合并哈希:SHA-256算法通过合并所有块的哈希值,生成最终的256位哈希值。
RSA是一种非对称加密算法,用于加密和解密数据,以及进行数字签名。RSA算法是由美国密码学家Ron Rivest、Adi Shamir和Leonard Adleman于1977年共同发明的,它基于数论的复杂性问题,特别是大素数分解问题。RSA算法在加密通信、数字签名、安全密钥交换和安全认证等领域广泛应用。
RSA算法的核心原理基于两个密钥:公钥和私钥。这两个密钥是一对密钥对,用于加密和解密数据以及数字签名。公钥可以被任何人访问,用于加密数据。它包含一个大整数n和一个指数e。私钥是机密的,仅由接收者拥有,用于解密数据。它包含另一个大整数n和一个私有指数d。
发送者使用接收者的公钥n和e对要发送的数据进行加密,生成密文。这个过程是不可逆的。接收者使用其私钥n和d对密文进行解密,以还原原始数据。发送者使用其私钥对数据进行数字签名,以证明数据的来源和完整性。接收者可以使用发送者的公钥验证签名的有效性。
根据步骤S500,按照接口地址、请求频次进行分类需要确保服务器端记录了客户端请求的日志,所述日志包括接口地址和时间戳,日志类型包括http服务器的访问日志,应用程序日志或自定义的日志;请求日志数据将存储在数据库中;
接着使用代码分析所述日志数据,并按照接口地址和请求频次进行分类,将请求日志数据按照接口地址进行分组,通过提取请求中的URL路径实现;对每个接口地址进行请求频次统计,通过对时间戳进行聚合操作实现,以小时为单位统计每个接口地址的请求频次。
根据步骤S600,选择不可逆加密算法MD5,通过加盐增加哈希值的随机性和安全性;加盐数据是一个随机生成的字符串,与要哈希的数据合并;接着将要加密的数据与生成的盐字符串合并,将两者连接在一起,确保数据和盐都以正确的方式编码,以便后续的哈希计算;
使用所选择的不可逆加密算法MD5,对合并后的数据进行哈希计算,算法会生成一个固定长度的哈希值。
根据步骤S700,所述过滤方法如下:当服务器接收到请求时,记录每次请求的关键信息到数据库中,所述关键信息包括接口地址和请求头中的Serialnumber;在每次接收到请求之前,服务器检查请求中的接口地址和请求头中的Serialnumber是否已被记录,如果这些信息在记录中存在,说明这个请求可能是一个重放攻击;过滤条件设置为:请求与之前记录的请求具有相同的接口地址,请求头中的Serialnumber与之前的请求重复,请求时间戳与之前的请求时间戳相似但允许一定的时间差;如果请求被判定为重放攻击,服务器将自动拒绝所述请求,拒绝采取不响应请求或返回错误状态码的操作。
在所述过滤方法中,为了避免误判,需要设置一个时间窗口,在所述时间窗口内认为相同的请求不是重放攻击;为了避免记录占用过多的存储空间,需要定期清理过时的请求记录,只保留最近的记录,是否过时取决于时间窗口的设置,超出时间窗口则认为是过时记录;实现监控机制,当检测到若干次重放攻击尝试时,触发告警机制,以通知管理员。
与现有技术相比,本发明所达到的有益效果是:
通过采用不可逆加密算法和加盐计算,本发明有助于确保传输的数据在传输过程中不被篡改,从而提高数据的完整性和可靠性。
根据接口地址和请求频次的不同,本发明使用不同强度的加密算法,使数据在高频请求和低频请求之间具有适当的安全性。
通过记录和过滤重复的请求数据,本发明提供了一种方法来抵御重放攻击,从而提高系统的安全性。
附图说明
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
图1是本发明一种http请求数据防篡改的方法的程序流程图;
图2是本发明一种http请求数据防篡改的方法的http请求格式图;
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1和图2,本发明提供技术方案:
根据本发明的一个实施例,如图1一种http请求数据防篡改的方法的程序流程图所示,步骤如下:
S100、服务器端解析http请求数据的接口地址,请求头中的Sign、Token、Serialnumber元素,请求体的数据;
S200、判断Token是否为空,如果为空执行步骤S201,否则执行步骤S202;
S201、说明是在非登录情况下调用,则加密数据不包括Token;
S202、取Token中前5位数据;
S300、判断请求体是否为空,如果为空执行步骤S301,否则执行步骤S302;
S301、说明http请求业务逻辑不传输数据,则加密数据不包括请求体数据;
S302、取前1024字节数据,不足1024字节的数据取全部;
S400、使用不可逆的MD5加密算法,结合动态盐,保护http请求数据的完整性和防止篡改;
S500、采用动态加密,统计客户端向后台请求数据按照接口地址、请求频次进行分类,根据不同请求频次,分配给对应接口地址不同强度的加密算法;
S600、采用不可逆加密算法对加密数据进行加盐计算,得到的结果与Sign元素比较;如果一致执行步骤S601,否则执行步骤S602;
S601、认为数据是安全、完整并且没有被篡改的;
S602、表示数据为不安全的,停止向业务逻辑端执行;
S700、针对攻击者的重放攻击,采用过滤方法,记录每次请求的接口地址和请求头中的Serialnumber,如果发现有与之重复的请求数据,自动过滤,避免攻击者利用此攻击目标系统。
根据步骤S100,我们有一个http请求如下:
接口地址:/api/login;
请求头:Sign: e2b1c2a7d4f9;Token: exampleToken12345;Serialnumber:1234567890;
请求体数据格式:{"username": "user123","password": "passw0rd"}
服务器端的任务是解析这个http请求以获取接口地址、请求头中的Sign、Token、Serialnumber元素和请求体数据。
根据步骤S200,由于Token不为空,我们执行S202。我们取Token中的前5位数据,并将其存储在token_data变量中。在这个实施例中,token_data的值将是:examp,即Token的前5个字符。
根据步骤S300,由于请求体不为空,我们执行S302。我们将请求体的数据存储在request_body_data变量中。在本实施例中,request_body_data的值将是一个包含用户名和密码的字典。
根据步骤S400,所述动态盐内容为P1+P2,P1取加密数据的前20字节数据,不足20字节的数据取全部,其中M是正整数;P2是请求头Serialnumber,Serialnumber是雪花算法产生的数字,每次请求都不同。
使用雪花算法生成Serialnumber,Serialnumber包含符号位、时间戳、机器ID、序列号和随机位;所述符号位占一位,用于表示在正负;所述时间戳占四十一位,记录当前时间的毫秒级别,从一个固定时间Epoch开始计算;所述机器ID占十位,用于标识不同的机器,每台机器需要分配一个唯一的ID,由系统管理员进行分配;所述序列号占十二位,用于解决同一毫秒内产生多个ID的冲突问题,如果同一毫秒内产生多个ID,序列号会递增,直到毫秒结束;所述随机位占一位,设置0或者1,用于增加ID的随机性。
根据步骤S500,采用动态加密时,在服务器端,首先需要分析客户端向后台发送的请求的特征,基于请求的特征,将请求按照接口地址、请求频次进行分类;接着,为每个请求类别确定相应的加密策略,选择使用的加密算法、密钥长度、初始化向量;对于高安全性要求的请求,选择更复杂的加密算法,以及更长的密钥;对于低频率的请求,选择轻量级的加密算法,减少计算开销;确定加密策略以后,服务器使用选定的加密算法和密钥对请求数据进行加密,数据在加密后变为不可读;
在接收到加密数据后,服务器需要根据请求的特征解密数据,解密过程依赖于之前选择的加密算法和密钥;动态加密包括实时监控机制,以捕获不同请求特征的变化;如果请求的模式或特征发生变化,服务器能够随时调整加密策略;对于秘钥,使用密钥轮换策略定期更改密钥。
给对应接口地址分配不同强度的加密算法的方案如下:
对于接口地址login且每日请求频次在0到50的,使用加密算法MD5;对于接口地址qryClient且每日请求频次在51到200的,使用加密算法SHA256,其中B是正整数;对于接口地址qryUser且每日请求频次大于200的,使用加密算法RSA。
根据步骤S600,选择不可逆加密算法MD5,通过加盐增加哈希值的随机性和安全性;加盐数据是一个随机生成的字符串,与要哈希的数据合并;接着将要加密的数据与生成的盐字符串合并,将两者连接在一起,确保数据和盐都以正确的方式编码,以便后续的哈希计算;
使用所选择的不可逆加密算法MD5,对合并后的数据进行哈希计算,算法会生成一个固定长度的哈希值。
原始数据:user123
随机生成的盐:R@nD0mS@lt
接下来,将原始数据与盐合并:user123R@nD0mS@lt
然后,对合并后的数据进行MD5哈希计算,生成一个固定长度的哈希值:7c4a8d09ca3762af61e59520943dc26494f8941b
根据步骤S700,所述过滤方法如下:当服务器接收到请求时,记录每次请求的关键信息到数据库中,所述关键信息包括接口地址和请求头中的Serialnumber;在每次接收到请求之前,服务器检查请求中的接口地址和请求头中的Serialnumber是否已被记录,如果这些信息在记录中存在,说明这个请求可能是一个重放攻击;过滤条件设置为:请求与之前记录的请求具有相同的接口地址,请求头中的Serialnumber与之前的请求重复,请求时间戳与之前的请求时间戳相似但允许一定的时间差;如果请求被判定为重放攻击,服务器将自动拒绝所述请求,拒绝采取不响应请求或返回错误状态码的操作。
在所述过滤方法中,为了避免误判,需要设置一个时间窗口,在所述时间窗口内认为相同的请求不是重放攻击;为了避免记录占用过多的存储空间,需要定期清理过时的请求记录,只保留最近的记录,是否过时取决于时间窗口的设置,超出时间窗口则认为是过时记录;实现监控机制,当检测到若干次重放攻击尝试时,触发告警机制,以通知管理员。
根据本发明的另一个实施例,如图2一种http请求数据防篡改的方法的http请求格式图所示,请求行Request Line:
请求方法:POST
请求URI:http://localhost:7800/login
协议版本:http/1.1
这部分指定了请求的方法、目标URI和使用的协议版本。
请求头Request Headers:
Accept: */*:表示客户端能够接受任意类型的响应。
Accept-Encoding: gzip, deflate, br:表示客户端支持的内容编码方式,例如gzip、deflate和br。
Accept-Language: zh-CN,zh;q=0.9,en;q=0.8:表示客户端支持的语言,按优先级排序。
Cache-Control: max-age=0:控制缓存的行为,max-age=0表示不使用缓存。
Connection: keep-alive:表示客户端希望与服务器保持连接。
Content-Length: 89:表示请求体的长度为89个字节。
Host: localhost:7800:表示请求的目标主机。
Origin: http://localhost:7800:表示请求的来源。
Referer: http://localhost:7800/:表示请求的来源页面。
Sec-Fetch-Dest: empty、Sec-Fetch-Mode: cors、Sec-Fetch-Site: same-origin:这些是用于浏览器的安全性(Same-Origin Policy)的请求头。
User-Agent包含了客户端的用户代理信息,即浏览器的详细信息。
Content-type:application/json;charset=UTF-8:表示请求体的内容类型为JSON格式,字符集为UTF-8。
Sec-ch-ua:Sec-ch-ua-mobile: ?0、Sec-ch-ua-platform: "Windows":安全性相关的头部,包含浏览器和平台的信息。
Sign: 2d94122a50f07e0759ebad322025568b:自定义的签名,可能用于验证请求的完整性。
Token: :Token字段为空,可能是在非登录情况下的请求。
Serialnumber: 1633428137092915202:请求头中的一个唯一序列号,用于标识每次请求的唯一性。
请求体(Request Payload):
请求体是一个JSON格式的数据,包含了用户名和密码的哈希值。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。
最后应说明的是:以上所述仅为本发明的优选实施例而已,并不用于限制本发明,尽管参照前述实施例对本发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种http请求数据防篡改的方法,其特征在于:步骤如下:
S100、服务器端解析http请求数据的接口地址,请求头中的Sign、Token、Serialnumber元素,请求体的数据;
S200、判断Token是否为空,如果为空执行步骤S201,否则执行步骤S202;
S201、说明是在非登录情况下调用,则加密数据不包括Token;
S202、取Token中前N位数据,其中N为正整数;
S300、判断请求体是否为空,如果为空执行步骤S301,否则执行步骤S302;
S301、说明http请求业务逻辑不传输数据,则加密数据不包括请求体数据;
S302、取前1024字节数据,不足1024字节的数据取全部;
S400、使用不可逆的MD5加密算法,结合动态盐,保护http请求数据的完整性和防止篡改;
S500、采用动态加密,统计客户端向后台请求数据按照接口地址、请求频次进行分类,根据不同请求频次,分配给对应接口地址不同强度的加密算法;
S600、采用不可逆加密算法对加密数据进行加盐计算,得到的结果与Sign元素比较;如果一致执行步骤S601,否则执行步骤S602;
S601、认为数据是安全、完整并且没有被篡改的;
S602、表示数据为不安全的,停止向业务逻辑端执行;
S700、针对攻击者的重放攻击,采用过滤方法,记录每次请求的接口地址和请求头中的Serialnumber,如果发现有与之重复的请求数据,自动过滤,避免攻击者利用重复的请求数据攻击目标系统。
2.根据权利要求1所述的一种http请求数据防篡改的方法,其特征在于:根据步骤S100,接口地址从http请求的URL中提取,使用服务器端的http请求处理库或框架访问URL信息;请求头中元素Sign、Token、Serialnumber,通过http请求对象的请求头字段访问,使用相应的函数,根据请求头字段的名称获取请求头中元素的值;解析请求体的数据,具体取决于请求的内容类型,使用服务器端框架或库提供的相应函数或方法,从http请求对象中提取请求体数据,如果请求体是JSON数据,使用JSON解析器将JSON数据解析为可处理的数据结构。
3.根据权利要求1所述的一种http请求数据防篡改的方法,其特征在于:根据步骤S400,所述动态盐内容为P1+P2,P1取加密数据的前M字节数据,不足M字节的数据取全部,其中M是正整数;P2是请求头Serialnumber,Serialnumber是雪花算法产生的数字,每次请求都不同。
4.根据权利要求3所述的一种http请求数据防篡改的方法,其特征在于:使用雪花算法生成Serialnumber,Serialnumber包含符号位、时间戳、机器ID、序列号和随机位;所述符号位占一位,用于表示在正负;所述时间戳占四十一位,记录当前时间的毫秒级别,从一个固定时间Epoch开始计算;所述机器ID占十位,用于标识不同的机器,每台机器需要分配一个唯一的ID,由系统管理员进行分配;所述序列号占十二位,用于解决同一毫秒内产生多个ID的冲突问题,如果同一毫秒内产生多个ID,序列号会递增,直到毫秒结束;所述随机位占一位,设置0或者1,用于增加ID的随机性。
5.根据权利要求1所述的一种http请求数据防篡改的方法,其特征在于:根据步骤S500,采用动态加密时,在服务器端,首先需要分析客户端向后台发送的请求的特征,基于请求的特征,将请求按照接口地址、请求频次进行分类;接着,为每个请求类别确定相应的加密策略,选择使用的加密算法、密钥长度、初始化向量;对于高安全性要求的请求,选择更复杂的加密算法,以及更长的密钥;对于低频率的请求,选择轻量级的加密算法,减少计算开销;确定加密策略以后,服务器使用选定的加密算法和密钥对请求数据进行加密,数据在加密后变为不可读;
在接收到加密数据后,服务器需要根据请求的特征解密数据,解密过程依赖于之前选择的加密算法和密钥;动态加密包括实时监控机制,以捕获不同请求特征的变化;如果请求的模式或特征发生变化,服务器能够随时调整加密策略;对于秘钥,使用密钥轮换策略定期更改密钥。
6.根据权利要求5所述的一种http请求数据防篡改的方法,其特征在于:给对应接口地址分配不同强度的加密算法的方案如下:
对于接口地址login且每日请求频次在0到A的,使用加密算法MD5,其中A是正整数;对于接口地址qryClient且每日请求频次在A+1到B的,使用加密算法SHA256,其中B是正整数;对于接口地址qryUser且每日请求频次大于B的,使用加密算法RSA。
7.根据权利要求5所述的一种http请求数据防篡改的方法,其特征在于:根据步骤S500,按照接口地址、请求频次进行分类需要确保服务器端记录了客户端请求的日志,所述日志包括接口地址和时间戳,日志类型包括http服务器的访问日志,应用程序日志或自定义的日志;请求日志数据将存储在如数据库中;
接着使用代码分析所述日志数据,并按照接口地址和请求频次进行分类,将请求日志数据按照接口地址进行分组,通过提取请求中的URL路径实现;对每个接口地址进行请求频次统计,通过对时间戳进行聚合操作实现,以小时为单位统计每个接口地址的请求频次。
8.根据权利要求1所述的一种http请求数据防篡改的方法,其特征在于:根据步骤S600,选择不可逆加密算法MD5,通过加盐增加哈希值的随机性和安全性;加盐数据是一个随机生成的字符串,与要哈希的数据合并;接着将要加密的数据与生成的盐字符串合并,将两者连接在一起,确保数据和盐都以正确的方式编码,以便后续的哈希计算;
使用所选择的不可逆加密算法MD5,对合并后的数据进行哈希计算,算法会生成一个固定长度的哈希值。
9.根据权利要求1所述的一种http请求数据防篡改的方法,其特征在于:根据步骤S700,所述过滤方法如下:当服务器接收到请求时,记录每次请求的关键信息到数据库中,所述关键信息包括接口地址和请求头中的Serialnumber;在每次接收到请求之前,服务器检查请求中的接口地址和请求头中的Serialnumber是否已被记录,如果这些信息在记录中存在,说明这个请求可能是一个重放攻击;过滤条件设置为:请求与之前记录的请求具有相同的接口地址,请求头中的Serialnumber与之前的请求重复,请求时间戳与之前的请求时间戳相似但允许一定的时间差;如果请求被判定为重放攻击,服务器将自动拒绝所述请求,拒绝采取不响应请求或返回错误状态码的操作。
10.根据权利要求9所述的一种http请求数据防篡改的方法,其特征在于:在所述过滤方法中,为了避免将合法的、相同的请求,错误标记为重放攻击,需要设置一个时间窗口,在所述时间窗口内认为相同的请求不是重放攻击;为了避免记录占用过多的存储空间,需要定期清理过时的请求记录,只保留最近的记录;所述占用过多代表存储记录的数量大于C条,其中C是用户设置的一个正整数;所述定期代表系统以固定的时间间隔D天执行清理操作,删除过时的请求记录,其中D是用户设置的一个正整数;所述过时取决于时间窗口的设置,超出时间窗口则认为是过时记录;所述最近的记录代表在时间窗口内发生的记录;实现监控机制,当检测到若干次重放攻击尝试时,触发告警机制,以通知管理员。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311529491.4A CN117439799A (zh) | 2023-11-16 | 2023-11-16 | 一种http请求数据防篡改的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311529491.4A CN117439799A (zh) | 2023-11-16 | 2023-11-16 | 一种http请求数据防篡改的方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117439799A true CN117439799A (zh) | 2024-01-23 |
Family
ID=89553357
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311529491.4A Pending CN117439799A (zh) | 2023-11-16 | 2023-11-16 | 一种http请求数据防篡改的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117439799A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117972657A (zh) * | 2024-03-29 | 2024-05-03 | 中国标准化研究院 | 一种基于服务调用数据的水印嵌入方法 |
-
2023
- 2023-11-16 CN CN202311529491.4A patent/CN117439799A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117972657A (zh) * | 2024-03-29 | 2024-05-03 | 中国标准化研究院 | 一种基于服务调用数据的水印嵌入方法 |
CN117972657B (zh) * | 2024-03-29 | 2024-05-31 | 中国标准化研究院 | 一种基于服务调用数据的水印嵌入方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11695555B2 (en) | Federated key management | |
CN108471432B (zh) | 防止网络应用程序接口被恶意攻击的方法 | |
Ray et al. | Secure logging as a service—delegating log management to the cloud | |
EP2957063B1 (en) | Policy enforcement with associated data | |
Bernstein et al. | The security impact of a new cryptographic library | |
CA2899019C (en) | Delayed data access | |
US11372993B2 (en) | Automatic key rotation | |
US20170091463A1 (en) | Secure Audit Logging | |
US20230254129A1 (en) | Key management for multi-party computation | |
CN100580652C (zh) | 用于光纤信道公共传输的机密性保护的方法和装置 | |
CN111797431B (zh) | 一种基于对称密钥体制的加密数据异常检测方法与系统 | |
CN114244508B (zh) | 数据加密方法、装置、设备及存储介质 | |
CN117439799A (zh) | 一种http请求数据防篡改的方法 | |
CN109254893B (zh) | 一种业务数据稽核方法、装置、服务器和存储介质 | |
US20070028116A1 (en) | Data collation system and method | |
GB2488753A (en) | Encrypted communication | |
CN113918977A (zh) | 基于物联网和大数据分析的用户信息传输装置 | |
Roth et al. | A secure submission system for online whistleblowing platforms | |
CN114510734B (zh) | 数据访问控制方法、装置及计算机可读存储介质 | |
CN115842663A (zh) | 一种ip地址保护申请管理方法及系统 | |
CN115150076A (zh) | 一种基于量子随机数的加密系统及方法 | |
GB2428318A (en) | Auditing networked devices | |
CN111295656A (zh) | 隐私保护日志分析 | |
CN116866029B (zh) | 随机数加密数据传输方法、装置、计算机设备及存储介质 | |
CN113572615B (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 |