一种基于数据报文的轻量级染色与检测方法及装置与流程

文档序号:30222677发布日期:2022-05-31 23:02阅读:149来源:国知局
一种基于数据报文的轻量级染色与检测方法及装置与流程

1.本发明涉及ip通信,具体涉及一种基于数据报文的轻量级染色与检测方法及装置。


背景技术:

2.ip报文在通信过程中,为了保证安全性和提高服务质量一般需要对其承载的业务类别进行区分、对报文的来源合法性进行鉴别以及对数据完整性进行保护以防止被篡改等。虽然通过ipsec隧道加密技术可以完成来源合法性验证与数据完整性保护,但ipsec隧道加密以后,原报文来源、业务类别、数据完整性保护的hmac校验码等信息被加密封装,只有到了接收端解密后才能得到,所有通信中间节点无法进行相应检测与确认。
3.在ip通信网络中为了提高服务质量保障以及对业务精细管控的能力,需要对ip报文承载的业务类别进行准确识别,一般通过其上层协议(udp和tcp)及端口号进行业务的区分,更细致的业务类型划分可能需要进一步对报文载荷进行分析。在ipsec隧道加密封装以后,这些业务类别信息都无法获取。在ip报文没有被加密时,获取这些业务相关信息的计算代价也比较大,或者由于用户业务敏感性或隐私保护等原因不便分析业务内容,同时也难以适应新业务不断变化的场景。
4.现有对数据通信报文进行完整性保护的密钥相关哈希运算消息认证码(hmac)方案中,虽然保证了数据的完整性和来源合法性,但一方面hmac验证码无法提供业务类型识别等语义信息,另一方面也存在密钥更新周期问题:如果更新周期太短,则密钥协商对网络通信带宽和终端的计算能力都有较大的消耗;如果更新周期太长,则难以防范报文重放攻击等风险。


技术实现要素:

5.针对现有技术中的上述不足,本发明提供了一种基于数据报文的轻量级染色与检测方法及装置,通过染色类别/颜色对系统其他节点可见,为节点处理报文提供了高层语义信息,并通过染色类别参与染色值计算,防止信息篡改,结构简单,精准度高,有效防范了重放攻击等风险。
6.为了达到上述发明目的,本发明采用的技术方案为:
7.一方面,一种基于数据报文的轻量级染色与检测方法,包括以下步骤:
8.s1、获取ip数据报文及染色因子并进行预处理,得到预处理后的ip数据报文及染色因子;
9.s2、计算当前时间下报文染色因子的时间序列sn字串;
10.s3、根据预处理后的ip数据报文确定预处理后的染色因子中染色类别,并结合时间序列sn字串,构建输入缓冲区数据;
11.s4、利用消息摘要mac算法计算输入缓冲区数据的消息摘要;
12.s5、对消息摘要进行压缩,得到压缩后的报文染色值;
13.s6、根据报文染色值及预处理后的ip数据报文,构建报文染色检测值;
14.s7、利用报文染色检测值检测报文染色值,得到检测结果。
15.优选地,步骤s1具体为:
16.获取ip数据报文及染色因子,并对染色因子进行划分,其中,将划分的染色因子中第一字节定义为染色类别,其他字节定义为染色混淆值,得到预处理后的染色因子,同时提取ip数据报文的载荷部分,得到预处理后的ip数据报文。
17.优选地,步骤s2具体为:
18.将当前时间转换为预设时间单位下的时间数值,并将时间数值转换为ascii码,得到字符串,并判断字符串是否满足预设长度字节,若不满足则在字符串前进行零填充,并将零填充后的字符串作为当前报文染色因子的时间序列sn字串,否则直接输出字符串,作为当前报文染色因子的时间序列sn字串。
19.优选地,步骤s3具体为:
20.根据预处理后的ip数据报文中载荷确定预处理后的染色因子中染色类别,得到染色类别确定的染色因子,并将时间序列sn字串与染色类别确定的染色因子附加在预处理后的ip数据报文中载荷前,得到多字节的输入缓冲区,可表示为:packet_s=sn+factor+packet,其中,packet_s为输入缓冲区数据,sn为时间序列sn字串,factor为染色类别确定的染色因子,packet为ip数据报文中载荷。
21.优选地,步骤s5具体包括以下分步骤:
22.s51、将输入缓冲区数据的消息摘要划分为多个分组;
23.s52、对各分组依次进行异或运算,得到压缩后的报文染色值,异或运算表示为:
24.stain=group_1xor group_2

xor group_n
25.其中,stain为压缩后的报文染色值,group_n为第n个分组,xor为异或运算式。
26.优选地,步骤s6具体包括以下分步骤:
27.s61、将当前时间转换为预设时间单位下的时间数值,并初始化sn检测次数;
28.s62、将时间数值转换成ascii码,得到字符串,并判断当前字符串是否满足预设字节长度,若不满足则在字符串前补零,得到预设字节长度的字符串,作为当前报文染色的时间序列sn字串;否则直接输出当前字符串,作为当前报文染色的时间序列sn字串;
29.s63、根据报文染色值中染色类型与预处理后的染色因子中染色混淆值构建新染色因子;
30.s64、将时间序列sn字串及新染色因子附加在预处理后的ip数据报文前,形成输入缓冲区数据;
31.s65、利用消息摘要mac算法计算输入缓冲器数据的消息摘要值;
32.s66、对消息摘要值进行压缩,得到压缩后的报文检测值。
33.优选地,步骤s66具体为:
34.将消息摘要值划分为多个分组,并依次对各分组进行异或计算,得到压缩后的报文检测值。
35.优选地,步骤s7具体包括以下分步骤:
36.s71、判断报文染色检测值与报文染色值是否相同,若是则报文染色检测输出“通过”,并得到对应的染色类型,检测结束,否则进入步骤s72;
37.s72、判断当前sn检测次数是否为第一预值,若是,则将当前时间数值加1,并将该更新后的时间数值作为当前时间,且转换为预设时间单位下的时间数值,返回步骤s62,并设置当前sn检测次数为第二预设数值;否则进入步骤s73;
38.s73、判断当前sn检测次数是否为第二预值,若是,则将当前时间数值减2,并将该更新后的时间数值作为当前时间,且转换为预设时间单位下的时间数值,返回步骤s62,并设置当前sn检测次数为第三预值;否则输出“检测不通过”,结束检测。
39.第二方面,一种基于数据报文的轻量级染色与检测装置,包括:
40.预处理装置,用于获取ip数据报文及染色因子并进行预处理,得到预处理后的ip数据报文及染色因子;
41.时间序列sn字串计算模块,用于计算当前时间下报文染色因子的时间序列sn字串;
42.输入缓冲区数据构建模块,用于根据预处理后的ip数据报文确定预处理后的染色因子中染色类别,并结合时间序列sn字串,构建输入缓冲区数据;
43.消息摘要计算模块,用于利用消息摘要mac算法计算输入缓冲区数据的消息摘要;
44.报文染色值构建模块,用于对消息摘要进行压缩,得到压缩后的报文染色值;
45.报文染色检测值构建模块,用于根据报文染色值及预处理后的ip数据报文,构建报文染色检测值;
46.数据报文检测模块,用于利用报文染色检测值检测报文染色值,得到检测结果。
47.优选地,报文染色检测值构建模块包括:
48.时间数值计算子模块,用于将当前时间转换为预设时间单位下的时间数值,并初始化sn检测次数;
49.时间序列sn字串计算子模块,用于将时间数值转换成ascii码,得到字符串,并判断当前字符串是否满足预设字节长度,若不满足则在字符串前补零,得到预设字节长度的字符串,作为当前报文染色的时间序列sn字串;否则直接输出当前字符串,作为当前报文染色的时间序列sn字串;
50.新染色因子构建模块,用于根据报文染色值中染色类型与预处理后的染色因子中染色混淆值构建新染色因子;
51.输入缓冲区数据构建子模块,用于将时间序列sn字串及新染色因子附加在预处理后的ip数据报文前,形成输入缓冲区数据;
52.消息摘要值计算子模块,用于利用消息摘要mac算法计算输入缓冲器数据的消息摘要值;
53.报文检测值获取子模块,用于对消息摘要值进行压缩,得到压缩后的报文检测值。
54.本发明具有以下有益效果:
55.通过预处理获取ip数据报文及染色因子,并计算当前时间下报文染色因子的时间序列sn字串,并根据得到预处理后的ip数据报文确定预处理后的染色因子中染色类别,构建输入缓冲区数据,并利用消息摘要mac算法计算输入缓冲区数据的消息摘要,并对消息摘要进行压缩,得到压缩后的报文染色值;根据报文染色值及预处理后的ip数据报文构建报文染色检测值,并对报文染色值进行检测;本发明结合染色因子与时间序列sn字符串计算报文染色值完成报文来源合法性检验与报文完整性保护,及为安全检测系统或服务质量保
障(qos)系统在不接触用户业务报文内容的前提下进行报文业务类别等高层语义信息提取,有效节约了系统通信带宽和计算资源,其中,染色类别/颜色对系统其他节点可见,为节点处理报文提供了高层语义信息;通过染色类别参与染色值计算,防止信息篡改,同时染色类别可动态扩展支持更多的用户业务管控需求。
56.优选方案具有以下有益效果:
57.1、同时支持ipv4与ipv6通信场景;
58.2、染色类别/颜色对系统其他节点可见,为节点处理报文提供了高层语义信息;
59.3、利用染色类别参与染色值计算,防止信息篡改,同时染色类别可动态扩展支持更多的用户业务管控需求;
60.4、时间序列sn参与报文染色与检测计算,在大大降低染色因子在线更新频率的情况下依然为系统染色计算与检测提供了类似密钥变换的功能,有效节约了系统通信带宽和计算资源;
61.5、完成报文来源合法性检验与报文完整性保护;
62.6、高效地为安全检测系统或服务质量保障(qos)系统在不接触用户业务报文内容的前提下提取报文业务类别等高层语义信息。
附图说明
63.图1为本发明提供的一种基于数据报文的轻量级染色与检测方法的步骤流程图;
64.图2为步骤s5的分步骤流程图;
65.图3为步骤s6的分步骤流程图;
66.图4为步骤s7的分步骤流程图;
67.图5为本发明提供的一种基于数据报文的轻量级染色与检测装置的结构示意图;
68.图6为报文染色检测值构建模块的结构示意图。
具体实施方式
69.下面对本发明的具体实施方式进行描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
70.如图1所示,本发明实施例提供一种基于数据报文的轻量级染色与检测方法,其特征在于,包括以下步骤:
71.s1、获取ip数据报文及染色因子并进行预处理,得到预处理后的ip数据报文及染色因子;
72.优选地,步骤s1具体为:
73.获取ip数据报文及染色因子,并对染色因子进行划分,其中,将划分的染色因子中第一字节定义为染色类别,其他字节定义为染色混淆值,得到预处理后的染色因子,同时提取ip数据报文的载荷部分,得到预处理后的ip数据报文。
74.可选的,在本发明实施例中,染色因子factor一共256比特,即32个字节,可将其划分为两部分,即:染色类别factor_type与染色混淆值factor_confuse,满足:factor=
factor_type+factor_confuse,其中第一个字节标识为染色类别factor_type,可根据用户业务环境和需求,定义为不同的染色类别语义,比如语音业务、视频业务、数据业务、带内性能测量业务等业务类别,其他字节标识为染色混淆值factor_confuse,此染色混淆值通过在线方式跟染色检测节点进行协商与定期更换,染色因子factor共32字节,可用于做密钥,实现对ip数据报文基于hmac算法计算报文染色值。
75.s2、计算当前时间下报文染色因子的时间序列sn字串;
76.优选地,步骤s2具体为:
77.将当前时间转换为预设时间单位下的时间数值,并将时间数值转换为ascii码,得到字符串,并判断字符串是否满足预设长度字节,若不满足则在字符串前进行零填充,并将零填充后的字符串作为当前报文染色因子的时间序列sn字串,否则直接输出字符串,作为当前报文染色因子的时间序列sn字串。
78.可选的,时间序列sn字串共8个字节,在有网络连接的情况下可通过ntp等时间同步协议与其他节点进行时间同步,将当前时间取秒为单位并以10取整计算,得到计算结果,并将计算结果转换为ascii码形成字符串,其中,若字符串不满足8字节时,则在字符串前进行零填充,补足后得到当前报文染色因子的时间序列sn字串。
79.s3、根据预处理后的ip数据报文确定预处理后的染色因子中染色类别,并结合时间序列sn字串,构建输入缓冲区数据;
80.优选地,步骤s3具体为:
81.根据预处理后的ip数据报文中载荷确定预处理后的染色因子中染色类别,得到染色类别确定的染色因子,并将时间序列sn字串与染色类别确定的染色因子附加在预处理后的ip数据报文中载荷前,得到多字节的输入缓冲区,可表示为:packet_s=sn+factor+packet,其中,packet_s为输入缓冲区数据,sn为时间序列sn字串,factor为染色类别确定的染色因子,packet为ip数据报文中载荷。
82.可选的,本发明实施例中,假设输入的ip报文载荷部分为packet,长度为l,并根据packet内容确定此报文所具体染色类别factor_type,将当前报文染色因子的时间序列sn字串及具体化后的染色类别factor_type附加在ip数据报文中载荷前,得到l+8+32字节的输入缓冲区数据,且输入缓冲区数据满足:packet_s=sn+factor+packet。
83.s4、利用消息摘要mac算法计算输入缓冲区数据的消息摘要;
84.可选的,本发明实施例中,根据消息摘要mac算法,例如:可以采用sha-256、sm3等算法,计算输入缓冲区的消息摘要值,满足:d_1=mac(packet_s)。
85.s5、对消息摘要进行压缩,得到压缩后的报文染色值;
86.如图2所示,优选地,步骤s5具体包括以下分步骤:
87.s51、将输入缓冲区数据的消息摘要划分为多个分组;
88.s52、对各分组依次进行异或运算,得到压缩后的报文染色值,异或运算表示为:
89.stain=group_1xor group_2

xor group_n
90.其中,stain为压缩后的报文染色值,group_n为第n个分组,xor为异或运算式。
91.可选的,将输入缓冲区数据的消息摘要d_1(共32字节)划分为32/s个分组group_1,group_2,

,group_n,这些分组从第一组开始依次与后续分组进行异或运算,最后得到的结果值即为长度为s字节(s可选4或8)的报文染色值,满足:stain=group_1xor group_2…
xor group_n。
92.可选的,上述提供的报文染色值计算方法,将染色类别与染色值同时附加在报文头部,一方面便于中间节点不需要访问报文内容只根据染色类别对报文进行区别处理,另一方面也将报文染色类别等语义信息通过hmac算法计算混淆到了染色值中从而染色检测点可以对染色类别与报文内容进行完整性校验,防止了中间节点对染色类别和报文内容的篡改;
93.可选的,本发明实施例中染色计算中对染色因子中的类别(factor_type)不做具体要求,用户可以根据自己的业务应用场景和需求扩展定义染色类别(比如业务的安全性等级等),从而完成基于报文染色的特定应用目的。
94.s6、根据报文染色值及预处理后的ip数据报文,构建报文染色检测值;
95.可选的,输出的报文染色类别factor_type与染色值stain附加在ipv4头部选项扩展字段或ipv6扩展头部字段进行传输,用于报文染色检测值构建。
96.如图3所示,优选地,步骤s6具体包括以下分步骤:
97.s61、将当前时间转换为预设时间单位下的时间数值,并初始化sn检测次数;
98.可选的,将系统当前时间(在有网络连接的情况下可通过ntp等时间同步协议与其他节点进行时间同步)转换为以10秒为单位的数字,即秒数对10取整,设为sn_time,并设置sn检测次数为1。
99.s62、将时间数值转换成ascii码,得到字符串,并判断当前字符串是否满足预设字节长度,若不满足则在字符串前补零,得到预设字节长度的字符串,作为当前报文染色的时间序列sn字串,并进入步骤s63;否则直接输出当前字符串,作为当前报文染色的时间序列sn字串,并进入步骤s63;
100.可选的,将时间数值sn_time转换为ascii码形成字符串,当时间数值sn_time不足8字节时前面填充“0”,补足得到预设长度字节的时间序列sn字符串。
101.s63、根据报文染色值中染色类型与预处理后的染色因子中染色混淆值构建新染色因子;
102.s64、将时间序列sn字符串及新染色因子附加在预处理后的ip数据报文前,形成输入缓冲区数据;
103.可选的,将时间序列sn字符串与新染色因子附加在载荷packet前面形成l+8+32字节的输入缓冲区,即:packet_s=sn+factor+packet。
104.s65、利用消息摘要mac算法计算输入缓冲器数据的消息摘要值;
105.s66、对消息摘要值进行压缩,得到压缩后的报文检测值。
106.优选地,步骤s66具体为:
107.将消息摘要值划分为多个分组,并依次对各分组进行异或计算,得到压缩后的报文检测值。
108.s7、利用报文染色检测值检测报文染色值,得到检测结果。
109.如图4所示,优选地,步骤s7具体包括以下分步骤:
110.s71、判断报文染色检测值与报文染色值是否相同,若是则报文染色检测输出“通过”,并得到对应的染色类型,检测结束,否则进入步骤s72;
111.可选的,
112.s72、判断当前sn检测次数是否为第一预值,若是,则将当前时间数值加1,并将该更新后的时间数值作为当前时间,且转换为预设时间单位下的时间数值,返回步骤s62,并设置当前sn检测次数为第二预设数值;否则进入步骤s73;
113.可选的,如果sn检测次数sn_check满足第一预值,即:1,若是则设置时间数值sn_time=sn_time+1,并将该更新后的时间数值作为当前时间,且将时间数值sn_time转换为预设时间单位下的时间数值,返回步骤s62,将当前时间数值转为ascii码形成字符串,且在不足8字节时在字符串前面填充“0”,补足得到当前报文染色计算的时间序列sn字串,设置sn_check=2;否则进入否则进入步骤s73。
114.s73、判断当前sn检测次数是否为第二预值,若是,则将当前时间数值减2,并将该更新后的时间数值作为当前时间,且转换为预设时间单位下的时间数值,返回步骤s62,并设置当前sn检测次数为第三预值;否则输出“检测不通过”,结束检测。
115.可选的,如果sn检测次数sn_check满足第二预值,本实施例中表征为2,并设置时间数值sn_time=sn_time-2,并将该更新后的时间数值作为当前时间,且转换为预设时间单位下的时间数值,返回步骤s62,将时间数值sn_time转换为ascii码形成字符串,不足8字节时前面填充“0”,补足得到当前报文染色计算的时间序列sn字串,并设置当前sn检测次数为第三预值,本发明实施例中,设置当前sn检测次数为3,即sn_check=3;否则输出“检测不通过”,结束检测。
116.另一方面,如图5所示,本发明实例提供一种基于数据报文的轻量级染色与检测装置,包括:
117.预处理装置,用于获取ip数据报文及染色因子并进行预处理,得到预处理后的ip数据报文及染色因子;
118.时间序列sn字串计算模块,用于计算当前时间下报文染色因子的时间序列sn字串;
119.输入缓冲区数据构建模块,用于根据预处理后的ip数据报文确定预处理后的染色因子中染色类别,并结合时间序列sn字串,构建输入缓冲区数据;
120.消息摘要计算模块,用于利用消息摘要mac算法计算输入缓冲区数据的消息摘要;
121.报文染色值构建模块,用于对消息摘要进行压缩,得到压缩后的报文染色值;
122.报文染色检测值构建模块,用于根据报文染色值及预处理后的ip数据报文,构建报文染色检测值;
123.优选地,如图5所示,报文染色检测值构建模块包括:
124.时间数值计算子模块,用于将当前时间转换为预设时间单位下的时间数值,并初始化sn检测次数;
125.时间序列sn字串计算子模块,用于将时间数值转换成ascii码,得到字符串,并判断当前字符串是否满足预设字节长度,若不满足则在字符串前补零,得到预设字节长度的字符串,作为当前报文染色的时间序列sn字串;否则直接输出当前字符串,作为当前报文染色的时间序列sn字串;
126.新染色因子构建模块,用于根据报文染色值中染色类型与预处理后的染色因子中染色混淆值构建新染色因子;
127.输入缓冲区数据构建子模块,用于将时间序列sn字串及新染色因子附加在预处理
后的ip数据报文前,形成输入缓冲区数据;
128.消息摘要值计算子模块,用于利用消息摘要mac算法计算输入缓冲器数据的消息摘要值;
129.报文检测值获取子模块,用于对消息摘要值进行压缩,得到压缩后的报文检测值。
130.数据报文检测模块,用于利用报文染色检测值检测报文染色值,得到检测结果。
131.本发明实施例提供的一种基于数据报文的轻量级染色与检测装置具有上述一种基于数据报文的轻量级染色与检测方法的全部有益效果。
132.综上所述,本发明实施例所提供的一种基于数据报文的轻量级染色与检测方法及装置,从ip通信的实际出发,通过结合染色因子与时间序列sn计算报文染色值,一方面可以完成报文来源合法性检验与报文完整性保护,另一方面也可以为安全检测系统或服务质量保障(qos)系统在不接触用户业务报文内容的前提下提取报文业务类别等高层语义信息,高效完成相应任务,且时间序列sn参与报文染色与检测计算,在大大降低染色因子在线更新频率的情况下依然为系统染色计算与检测提供了类似密钥变换的功能,有效节约了系统通信带宽和计算资源;且本发明实施例中染色类别/颜色对系统其他节点可见从而为节点处理报文提供了高层语义信息,但染色类别参与了染色值计算可以防止被篡改,与此同时染色类别还可以动态扩展支持更多的用户业务管控需求;并同时支持ipv4与ipv6通信场景。
133.本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
134.这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
135.这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
136.本发明中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
137.本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1