CN108718314B - 一种网络报文的完整性检测方法和装置 - Google Patents
一种网络报文的完整性检测方法和装置 Download PDFInfo
- Publication number
- CN108718314B CN108718314B CN201810558472.7A CN201810558472A CN108718314B CN 108718314 B CN108718314 B CN 108718314B CN 201810558472 A CN201810558472 A CN 201810558472A CN 108718314 B CN108718314 B CN 108718314B
- Authority
- CN
- China
- Prior art keywords
- brujin
- binary
- network message
- sequence
- integrity
- 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
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本申请提出一种网络报文的完整性检测方法和装置,所述方法包括:获取网络报文的二进制De Brujin构造;确定所述二进制De Brujin构造在函数映射F下对应的De Brujin序列;将所述De Brujin序列与所述网络报文的实际值进行比较;根据比较结果确定所述网络报文的完整性。本发明提出了一种基于DeBrujin序列的完整性保护机制,相比传统的保护机制更加隐蔽与巧妙,完美的解决了传统完整性保护易受攻击的脆弱性。
Description
技术领域
本发明涉及报文检测技术领域,具体涉及一种网络报文的完整性检测方法和装置。
背景技术
在操作系统内存或是网络报文中,通常会放置一个”陷阱”,作为内存或网络报文完整性的标志。比如分配的内存区块首部,以防止缓冲区溢出攻击。
目前,业界最常见的做法是采用硬编码魔术数的方法保护完整性。魔术数通常采用硬编码的方式,例如采用32bit硬编码0xdeadface放在分配内存的首部。如果其值发生变化,说明内存被篡改过了。
基于魔术数的保护方式有着不可避免的脆弱性:
魔术数的值通常是唯一的,很容易被仿制;
魔术数的长度一般情况下是定长的,不具有灵活性;
在魔术数保护机制下,如果内存,报文被部分拷贝,保护强度下降甚至可能失效;
如果魔术数的内存或报文区域被进行了剪切,保护性下降。
发明内容
本发明提供一种网络报文的完整性检测方法和装置,解决了传统完整性保护易受攻击的脆弱性。
为了实现上述发明目的,本发明采取的技术方案如下:
第一方面,本发明提供一种网络报文的完整性检测方法,包括:
获取网络报文的二进制De Brujin构造;
确定所述二进制De Brujin构造在函数映射F下对应的De Brujin序列;
将所述De Brujin序列与所述网络报文的实际值进行比较;
根据比较结果确定所述网络报文的完整性。
优选地,确定所述二进制De Brujin构造在函数映射F下对应的De Brujin序列包括:
从所述二进制De Brujin构造中抽取长度为N的切片;
计算所述切片在函数映射F下的二进制排列;
根据所述二进制排列推导出所述De Brujin构造对应的De Brujin序列中每个元素的值。
优选地,所述二进制De Brujin序列为通过网络报文转换的切片长度为N的二进制De Brujin构造经过函数映射F获得的。
优选地,所述二进制De Brujin构造的最大长度为2N,且元素各不相同。
优选地,根据比较结果确定所述网络报文的完整性包括:
当所述所述De Brujin序列与所述网络报文的实际值相同时,确定所述网络报文未被篡改并且完整;
当所述所述De Brujin序列与所述网络报文的实际值不相同时,确定所述网络报文被篡改或者不完整。
第二方面,本发明提供一种网络报文的完整性检测装置,包括:
获取模块,设置为获取网络报文的二进制De Brujin构造;
映射模块,设置为确定所述二进制De Brujin构造在函数映射F下对应的DeBrujin序列;
比较模块,设置为将所述De Brujin序列与所述网络报文的实际值进行比较;
验证模块,设置为根据比较结果确定所述网络报文的完整性。
优选地,映射模块确定所述二进制De Brujin构造在函数映射F下对应的DeBrujin序列包括:
从所述二进制De Brujin构造中抽取长度为N的切片;
计算所述切片在函数映射F下的二进制排列;
根据所述二进制排列推导出所述De Brujin构造对应的De Brujin序列中每个元素的值。
优选地,获取模块获取的所述二进制De Brujin序列为通过网络报文转换的切片长度为N的二进制De Brujin构造经过函数映射F获得的。
优选地,所述验证模块根据比较结果确定所述网络报文的完整性包括:
当所述所述De Brujin序列与所述网络报文的实际值相同时,确定所述网络报文未被篡改并且完整;
当所述所述De Brujin序列与所述网络报文的实际值不相同时,确定所述网络报文被篡改或者不完整。
本发明和现有技术相比,本发明提出了一种基于DeBrujin序列的完整性保护机制,相比传统的保护机制更加隐蔽与巧妙,完美的解决了传统完整性保护易受攻击的脆弱性。
附图说明
图1为本发明实施例的网络报文的完整性检测方法的流程图;
图2为本发明实施例的网络报文的完整性检测装置的结构示意图。
具体实施方式
为使本发明的发明目的、技术方案和有益效果更加清楚明了,下面结合附图对本发明的实施例进行说明,需要说明的是,在不冲突的情况下,本申请中的实施例和实施例中的特征可以相互任意组合。
二进制De Brujin序列
如果一个二进制序列中任意取出相邻的n个数,序列中的二进制排列(称为切片)一定不一样。这样的二进制序列称为二进制De Brujin序列(简称De Brujin序列),记为DeB(n)。
例如当n=5时,下列序列是De Brujin序列。
0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1
不难验证,任取5个相邻的数,其切片值,
00000
00001
00010
00100
01001
…
不会发生重复。
DeBrujin构造
一个序列S称作DeBrujin构造C(n),如果该序列满足如下条件:
1、该序列的最大长度为2n,且元素各不相同;
2、存在一个函数映射f,使得f(Si)是一个二进制DeBrujin序列DeB(n),Si为DeBrujin序列。
例如,抽取32张扑克牌,牌的红黑作为函数f,如果将32张牌排列后形成一个n=5的DeBrujin构造,即红黑值的二进制排列恰为一个De Brujin序列。
例如一个可能的排列:
梅花8,梅花A,梅花2,梅花4,黑桃A,方片2,梅花5,黑桃3,方片6,黑桃4,红桃A,方片3,梅花7,黑桃7,红桃7,红桃6,红桃4,红桃8,方片A,梅花3,梅花6,黑桃5,红桃3,方片7,黑桃6,红桃5,红桃2,方片5,黑桃2,方片4,黑桃8,方片8
相应的DeBrujin序列为黑牌为0,红牌为1;
0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1
如果抽取5张牌,其红黑值0,1,0,0,1
查看上述De Brujin序列,其唯一位置如下所示:
0,0,0,0,0,1,0,0,1,0,1,1,0,0,1,1,1,1,1,0,0,0,1,1,0,1,1,1,0,1,0,1
在DeBrujin构造的相同位置,可以找到具体的牌:
梅花8,梅花A,梅花2,梅花4,黑桃A,方片2,梅花5,黑桃3,方片6,黑桃4,红桃A,方片3,梅花7,黑桃7,红桃7,红桃6,红桃4,红桃8,方片A,梅花3,梅花6,黑桃5,红桃3,方片7,黑桃6,红桃5,红桃2,方片5,黑桃2,方片4,黑桃8,方片8
可以知道5张牌为黑桃A,方片2,梅花5,黑桃3,方片6
不难看出,根据5张牌的红黑属性,便可以知道每张牌的具体花色与点数,当推算出来的花色与点数与实际情况不一致时,必定是牌被动过了。
实施例一
本实施例结合图1说明一种网络报文的完整性检测方法,包括:
S101、获取网络报文的二进制De Brujin构造;
S102、确定所述二进制De Brujin构造在函数映射F下对应的De Brujin序列;
S103、将所述De Brujin序列与所述网络报文的实际值进行比较;
S104、根据比较结果确定所述网络报文的完整性。
步骤S102确定所述二进制De Brujin构造在函数映射F下对应的De Brujin序列包括:
从所述二进制De Brujin构造中抽取长度为N的切片;
计算所述切片在函数映射F下的二进制排列;
根据所述二进制排列推导出所述De Brujin构造对应的De Brujin序列中每个元素的值。
其中,所述二进制De Brujin序列为通过网络报文转换的切片长度为N的二进制DeBrujin构造经过函数映射F获得的。
所述二进制De Brujin构造的最大长度为2N,且元素各不相同。
步骤S104根据比较结果确定所述网络报文的完整性包括:
当所述所述De Brujin序列与所述网络报文的实际值相同时,确定所述网络报文未被篡改并且完整;
当所述所述De Brujin序列与所述网络报文的实际值不相同时,确定所述网络报文被篡改或者不完整。
实施例二
如图2所示,本实施例提供一种网络报文的完整性检测装置,包括:
获取模块,设置为获取网络报文的二进制De Brujin构造;
映射模块,设置为确定所述二进制De Brujin构造在函数映射F下对应的DeBrujin序列;
比较模块,设置为将所述De Brujin序列与所述网络报文的实际值进行比较;
验证模块,设置为根据比较结果确定所述网络报文的完整性。
映射模块确定所述二进制De Brujin构造在函数映射F下对应的De Brujin序列包括:
从所述二进制De Brujin构造中抽取长度为N的切片;
计算所述切片在函数映射F下的二进制排列;
根据所述二进制排列推导出所述De Brujin构造对应的De Brujin序列中每个元素的值。
获取模块获取的所述二进制De Brujin序列为通过网络报文转换的切片长度为N的二进制De Brujin构造经过函数映射F获得的。
所述验证模块根据比较结果确定所述网络报文的完整性包括:
当所述所述De Brujin序列与所述网络报文的实际值相同时,确定所述网络报文未被篡改并且完整;
当所述所述De Brujin序列与所述网络报文的实际值不相同时,确定所述网络报文被篡改或者不完整。
实施例三
本发明实施例说明利用二进制DeBrujin序列的原理进行网络报文的完整性检测方法流程:
相同的道理,如果将牌替换成一个字节,字节的奇偶性可以作为函数映射f。那么可以构造一个DeBrujin构造。在这个构造中,任意长度为N的切片的奇偶排列,就可以决定每个字节应有的值。而发现不吻合时,就可以断定,内存或报文字节被篡改过了。
并且,任何DeBrujin构造的子序列仍为DeBrujin构造。这就是说,如果DeBrujin序列的一部分被拷贝了,这种关系依旧成立。
一个DeBrujin构造,在剪切变换后仍为DeBrujin构造。所谓剪切变换是指:
序列S1,S2,……Sn
变换为Sj+1,Sj+2,……Sn,S1,S2,……Sj-1
也就是说,即便内存或是网络报文进行了剪切操作,仍然可以用这种方法来检测完整性。
本实施例中构造De Brujin构造C如下:
0x1,0x3,0x5,0x7,0x9,0x2,0xb,0xd,0x4,0xf,0x6,0x8,0x11,0x13,0xa,0xc,0xe,0x10,0x12,0x15,0x17,0x19,0x14,0x16,0x1b,0x18,0x1a,0x1c,0x1d,0x1e,0x1f,0x20
下表为De Brujin构造和De Brujin序列对应关系:
可以将构造C作为网络报文的字节序列。
本实施例中例如收到的报文序列为:
0x1,0x3,0x5,0x7,0x2
根据F(x)函数计算其序列值对应为:
0 0 0 0 1
查上表可知原始报文序列为:
0x3 0x5 0x7 0x9 0x2
与收到的报文序列不同说明报文序列被更改过了。
而如果收到的报文序列为0x1,0x3,0x5,0x7,0x9
根据F(x)函数计算其序列值对应为
0 0 0 0 0
查上表可知原始报文序列为:
0x1 0x3 0x5 0x7 0x9
与收到的报文序列相同说明报文未被更改。
虽然本发明所揭示的实施方式如上,但其内容只是为了便于理解本发明的技术方案而采用的实施方式,并非用于限定本发明。任何本发明所属技术领域内的技术人员,在不脱离本发明所揭示的核心技术方案的前提下,可以在实施的形式和细节上做任何修改与变化,但本发明所限定的保护范围,仍须以所附的权利要求书限定的范围为准。
Claims (7)
1.一种网络报文的完整性检测方法,其特征在于:包括:
获取网络报文的二进制De Brujin构造;
确定所述二进制De Brujin构造在函数映射F下对应的De Brujin序列;
将所述De Brujin序列与所述网络报文的实际值进行比较;
根据比较结果确定所述网络报文的完整性;
其中,确定所述二进制De Brujin构造在函数映射F下对应的De Brujin序列包括:
从所述二进制De Brujin构造中抽取长度为N的切片;
计算所述切片在函数映射F下的二进制排列;
根据所述二进制排列推导出所述De Brujin构造对应的De Brujin序列中每个元素的值;
所述网络报文的二进制De Brujin构造是根据报文中每个字节的奇偶性构造的。
2.如权利要求1所述的方法,其特征在于,所述二进制De Brujin序列为通过网络报文转换的切片长度为N的二进制De Brujin构造经过函数映射F获得的。
3.如权利要求1所述的方法,其特征在于,所述二进制De Brujin构造的最大长度为2N,且元素各不相同。
4.如权利要求1所述的方法,其特征在于,根据比较结果确定所述网络报文的完整性包括:
当所述所述De Brujin序列与所述网络报文的实际值相同时,确定所述网络报文未被篡改并且完整;
当所述所述De Brujin序列与所述网络报文的实际值不相同时,确定所述网络报文被篡改或者不完整。
5.一种网络报文的完整性检测装置,其特征在于:包括:
获取模块,设置为获取网络报文的二进制De Brujin构造;
映射模块,设置为确定所述二进制De Brujin构造在函数映射F下对应的De Brujin序列;
比较模块,设置为将所述De Brujin序列与所述网络报文的实际值进行比较;
验证模块,设置为根据比较结果确定所述网络报文的完整性;
其中,映射模块确定所述二进制De Brujin构造在函数映射F下对应的De Brujin序列包括:
从所述二进制De Brujin构造中抽取长度为N的切片;
计算所述切片在函数映射F下的二进制排列;
根据所述二进制排列推导出所述De Brujin构造对应的De Brujin序列中每个元素的值;
所述网络报文的二进制De Brujin构造是根据报文中每个字节的奇偶性构造的。
6.如权利要求5所述的装置,其特征在于,获取模块获取的所述二进制De Brujin序列为通过网络报文转换的切片长度为N的二进制De Brujin构造经过函数映射F获得的。
7.如权利要求5所述的装置,其特征在于,所述验证模块根据比较结果确定所述网络报文的完整性包括:
当所述所述De Brujin序列与所述网络报文的实际值相同时,确定所述网络报文未被篡改并且完整;
当所述所述De Brujin序列与所述网络报文的实际值不相同时,确定所述网络报文被篡改或者不完整。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810558472.7A CN108718314B (zh) | 2018-06-01 | 2018-06-01 | 一种网络报文的完整性检测方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810558472.7A CN108718314B (zh) | 2018-06-01 | 2018-06-01 | 一种网络报文的完整性检测方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108718314A CN108718314A (zh) | 2018-10-30 |
CN108718314B true CN108718314B (zh) | 2021-09-07 |
Family
ID=63912738
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810558472.7A Active CN108718314B (zh) | 2018-06-01 | 2018-06-01 | 一种网络报文的完整性检测方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108718314B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101978628A (zh) * | 2008-03-26 | 2011-02-16 | 高通股份有限公司 | 在通信系统中产生加扰序列的方法和设备 |
CN103258145A (zh) * | 2012-12-22 | 2013-08-21 | 中国科学院深圳先进技术研究院 | 一种基于De Bruijn图的并行基因拼接方法 |
CN105933303A (zh) * | 2016-04-15 | 2016-09-07 | 浪潮集团有限公司 | 一种文件篡改的检测方法及装置 |
CN106301764A (zh) * | 2016-10-09 | 2017-01-04 | 上海泥娃通信科技有限公司 | 基于路径散列的消息摘要方法和系统 |
CN106899406A (zh) * | 2016-12-15 | 2017-06-27 | 中国电子科技集团公司第三十研究所 | 一种云端数据存储完整性的证明方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2967752A1 (en) * | 2016-05-18 | 2017-11-18 | Bioinformatics Solutions Inc. | Methods and systems for assembly of protein sequences |
-
2018
- 2018-06-01 CN CN201810558472.7A patent/CN108718314B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101978628A (zh) * | 2008-03-26 | 2011-02-16 | 高通股份有限公司 | 在通信系统中产生加扰序列的方法和设备 |
CN103258145A (zh) * | 2012-12-22 | 2013-08-21 | 中国科学院深圳先进技术研究院 | 一种基于De Bruijn图的并行基因拼接方法 |
CN105933303A (zh) * | 2016-04-15 | 2016-09-07 | 浪潮集团有限公司 | 一种文件篡改的检测方法及装置 |
CN106301764A (zh) * | 2016-10-09 | 2017-01-04 | 上海泥娃通信科技有限公司 | 基于路径散列的消息摘要方法和系统 |
CN106899406A (zh) * | 2016-12-15 | 2017-06-27 | 中国电子科技集团公司第三十研究所 | 一种云端数据存储完整性的证明方法 |
Also Published As
Publication number | Publication date |
---|---|
CN108718314A (zh) | 2018-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104700033B (zh) | 病毒检测的方法及装置 | |
CN104468531B (zh) | 敏感数据的授权方法、装置和系统 | |
KR102002889B1 (ko) | 성문 검증 방법 및 장치, 저장 매체 및 기기 | |
NZ745637A (en) | Using cell-free dna fragment size to determine copy number variations | |
CN108449321B (zh) | 登陆方法、服务器和客户端 | |
CN107148010B (zh) | 多运营商实现方法、装置、存储介质和计算机设备 | |
CN106599964A (zh) | 一种二维码生成、验证方法及装置 | |
CN103310150A (zh) | 一种检测pdf漏洞的方法和装置 | |
CN110362719B (zh) | 数据处理方法、装置、电子终端及存储介质 | |
CN103067364A (zh) | 病毒检测方法及设备 | |
CN109040505A (zh) | 一种基于批量二维码传输的安全数据传输方法 | |
CN108718314B (zh) | 一种网络报文的完整性检测方法和装置 | |
CN107360192A (zh) | 提高漏洞扫描效率和精度的指纹识别方法 | |
CN110764996A (zh) | 一种契约测试方法、系统、存储介质及终端设备 | |
RU2009124522A (ru) | Устройство обработки информации и способ обработки информации | |
CN106682508B (zh) | 病毒的查杀方法和装置 | |
CN104239795B (zh) | 文件的扫描方法及装置 | |
CN114788199A (zh) | 一种数据校验方法及装置 | |
CN109033818B (zh) | 终端、验证方法和计算机可读存储介质 | |
CN106301787B (zh) | 一种用时间验证验证码的方法 | |
CN106529973A (zh) | 一种基于增强现实的防伪方法及装置 | |
CN109376597A (zh) | 一种检测信息获取方法及相关装置 | |
CN106161452A (zh) | 验证码的发送方法及装置 | |
US9208352B2 (en) | LFSR watermark system | |
CN111106931B (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 |