一种物联网环境隐通道的构建方法及系统
文献发布时间:2024-04-18 19:52:40
技术领域
本发明涉及信息传输领域,特别是涉及一种物联网环境隐通道的构建方法及系统。
背景技术
随着物联网技术的日益普及和应用,物联网的数据传输安全也越来越受到重视。在物联网环境中构建隐通道来传递隐蔽信息是保证数据传输安全的重要手段。
隐通道技术是指发送方通过公开信道将秘密信息发送给接收方,而此秘密信息对于第三方来说是不可见的,因此需要在公开信道下构建一条隐通道。发送方通常采用网络协议作为隐通道的载体,然后根据隐蔽算法将秘密信息嵌入网络数据包,接收方从数据包中提取出秘密信息。
由于物联网安全研究目前尚处于起步阶段,因此基于物联网环境构建隐通道的方法很少。同时,目前已有方法所构建的隐通道的抗检测性不强,容易被攻击方检测出隐通道的存在,从而威胁到隐蔽通信的安全。因此找到一种抗检测性强的物联网环境隐通道构建方法十分必要,从而保证隐蔽信息传递的可靠性。
发明内容
本发明的目的是提供一种物联网环境隐通道的构建方法及系统,可保证隐通道的抗检测性,从而保证隐蔽信息传递的可靠性。
为实现上述目的,本发明提供了如下方案:
一种物联网环境隐通道的构建方法,所述方法包括:
向接收方发送隐蔽信息嵌入开始标志的数据包;所述隐蔽信息嵌入开始标志的数据包为发送方和接收方提前商定好的第一包序列组合,所述第一包序列组合由第一类型MQTT协议数据包和第二类型MQTT协议数据包组成;
根据所述第三类型MQTT协议数据包中的第一字段,对所述第三类型MQTT协议数据包进行分组,得到若干组第三类型MQTT协议数据包;所述三类型MQTT协议数据包为所述隐蔽信息嵌入的载体数据包;
从若干组所述第三类型MQTT协议数据包中,选取一组未被选取过的第三类型MQTT协议数据包为当前组第三类型MQTT协议数据包;
针对所述当前组第三类型MQTT协议数据包,根据组内隐蔽信息的嵌入位数对组内第二字段表示值的范围进行分区,得到组内值区个数;所述组内隐蔽信息的嵌入位数由第四类型MQTT协议数据包和第五类型MQTT协议数据包组成的第二包序列组合表示;所述组内第二字段表示值的范围根据组内第二字段的位数确定;
针对所述当前组第三类型MQTT协议数据包,根据所述组内值区个数,以及组内所述第二字段的位数,计算组内每一所述值区的区间;
根据所述组内隐蔽信息以及组内每一所述值区的区间,确定所述当前组第三类型MQTT协议数据包中各待发送的数据包,并将各所述待发送的数据包发送给接收方;所述待发送的数据包为包含目标字段值的数据包,所述目标字段值为与所述组内隐蔽信息对应的值区中的字段值;
判断所述隐蔽信息是否全部嵌入完成,得到第一判断结果;
若所述第一判断结果为否,则返回步骤“从若干组所述第三类型MQTT协议数据包中,选取一组未被选取过的第三类型MQTT协议数据包为当前组第三类型MQTT协议数据包”;
若所述第一判断结果为是,则向所述接收方发送隐蔽信息嵌入结束标志的数据包;所述隐蔽信息嵌入结束标志的数据包为发送方和接收方提前商定好的第三包序列组合,所述第三包序列组合由所述第一类型MQTT协议数据包和所述第二类型MQTT协议数据包组成。
可选的,所述所述值区个数的计算公式包括:
N
其中,N
可选的,所述针对每一组第三类型MQTT协议数据包,根据所述组内值区个数,以及组内第二字段的位数,计算组内每一所述值区的区间,具体包括:
根据所述组内值区个数以及所述组内第二字段的位数,计算值区长度;
根据所述值区长度,计算组内每一所述值区的区间。
可选的,所述值区长度的计算公式包括:
其中,L为值区长度,k为组内第二字段的位数,N
可选的,在所述从若干组所述第三类型MQTT协议数据包中,选取一组未被选取过的第三类型MQTT协议数据包为当前组第三类型MQTT协议数据包之后,在所述针对所述当前组第三类型MQTT协议数据包,根据组内隐蔽信息的嵌入位数对组内第二字段表示值的范围进行分区,得到组内值区个数之前,所述方法还包括:
向所述接收方发送所述组内隐蔽信息的嵌入位数。
可选的,所述方法还包括:
判断传输过程中其余流量数据包中是否包含与所述隐蔽信息嵌入开始标志的数据包或隐蔽信息嵌入结束标志的数据包相同的数据包,得到第二判断结果;所述其余流量数据包为除所述隐蔽信息嵌入开始标志的数据包和所述隐蔽信息嵌入结束标志的数据包之外的数据包;
若所述第二判断结果为是,则在所述其余流量数据包之前插入转义标志数据包;所述转义标志数据包为由所述第一类型MQTT协议数据包和所述第二类型MQTT协议数据包组成的第三包序列组合表示的数据包;
若所述第二判断结果为否,则不对所述其余流量数据包进行处理。
可选的,所述转义标志数据包由发送方和接收方提前商定。
可选的,所述隐蔽信息嵌入结束标志的数据包为所述隐蔽信息嵌入开始标志的数据包的反码。
本发明还提供一种物联网环境隐通道的构建系统,所述系统包括:
隐蔽信息嵌入开始标志的数据包发送模块,用于向接收方发送隐蔽信息嵌入开始标志的数据包;所述隐蔽信息嵌入开始标志的数据包为发送方和接收方提前商定好的第一包序列组合,所述第一包序列组合由第一类型MQTT协议数据包和第二类型MQTT协议数据包组成;
分组模块,用于根据所述第三类型MQTT协议数据包中的第一字段,对所述第三类型MQTT协议数据包进行分组,得到若干组第三类型MQTT协议数据包;所述三类型MQTT协议数据包为所述隐蔽信息嵌入的载体数据包;
选取模块,用于从若干组所述第三类型MQTT协议数据包中,选取一组未被选取过的第三类型MQTT协议数据包为当前组第三类型MQTT协议数据包;
分区模块,用于针对所述当前组第三类型MQTT协议数据包,根据组内隐蔽信息的嵌入位数对组内第二字段表示值的范围进行分区,得到组内值区个数;所述组内隐蔽信息的嵌入位数由第四类型MQTT协议数据包和第五类型MQTT协议数据包组成的第二包序列组合表示;所述组内第二字段表示值的范围根据组内第二字段的位数确定;
值区区间计算模块,用于针对所述当前组第三类型MQTT协议数据包,根据所述组内值区个数,以及组内所述第二字段的位数,计算组内每一所述值区的区间;
待发送数据包确定模块,用于根据所述组内隐蔽信息以及组内每一所述值区的区间,确定所述当前组第三类型MQTT协议数据包中各待发送的数据包,并将各所述待发送的数据包发送给接收方;所述待发送的数据包为包含目标字段值的数据包,所述目标字段值为与所述组内隐蔽信息对应的值区中的字段值;
判断模块,用于判断所述隐蔽信息是否全部嵌入完成,得到第一判断结果;
若所述第一判断结果为否,则返回步骤“从若干组所述第三类型MQTT协议数据包中,选取一组未被选取过的第三类型MQTT协议数据包为当前组第三类型MQTT协议数据包”;
若所述第一判断结果为是,则向所述接收方发送隐蔽信息嵌入结束标志的数据包;所述隐蔽信息嵌入结束标志的数据包为发送方和接收方提前商定好的第三包序列组合,所述第三包序列组合由所述第一类型MQTT协议数据包和所述第二类型MQTT协议数据包组成。
可选的,所述系统还包括:
第二判断模块,用于判断传输过程中其余流量数据包中是否包含与所述隐蔽信息嵌入开始标志的数据包或隐蔽信息嵌入结束标志的数据包相同的数据包,得到第二判断结果;所述其余流量数据包为除所述隐蔽信息嵌入开始标志的数据包和所述隐蔽信息嵌入结束标志的数据包之外的数据包;
若所述第二判断结果为是,则在所述其余流量数据包之前插入转义标志数据包;所述转义标志数据包为由所述第一类型MQTT协议数据包和所述第二类型MQTT协议数据包组成的第三包序列组合表示的数据包;
若所述第二判断结果为否,则不对所述其余流量数据包进行处理。
根据本发明提供的具体实施例,本发明公开了以下技术效果:
本发明提供的物联网环境隐通道的构建方法,首先选取由第一类型MQTT协议数据包和第二类型MQTT协议数据包组成的第一包序列组合作为隐蔽信息嵌入开始标志的数据包,并将该开始标志的数据包发送给接收方;然后,根据所述第三类型MQTT协议数据包中的第一字段,对所述第三类型MQTT协议数据包进行分组,针对每一组第三类型MQTT协议数据包,均根据组内隐蔽信息的嵌入位数对组内第二字段表示值的范围进行分区,得到组内值区个数,根据所述组内值区个数,以及组内所述第二字段的位数,计算组内每一所述值区的区间,根据所述组内隐蔽信息以及组内每一所述值区的区间,确定所述当前组第三类型MQTT协议数据包中各待发送的数据包,然后进行下一组并将各所述待发送的数据包发送给接收方,然后进行下一组数据包隐蔽信息的嵌入,直到隐蔽信息全部嵌入完成,将各组嵌入隐蔽信息的数据包发送给接收方,并向接收方发送隐蔽信息嵌入结束标志的数据包。本发明通过分组变化调节隐藏位数,以及根据嵌入字段值的所在值区来确定嵌入隐蔽信息的方式,可以保证隐蔽流量与公开流量的特征拟合,从而保证隐通道的抗检测性,因此提高了隐蔽信息传递的可靠性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的物联网环境隐通道的构建方法流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议是一种轻量级基于发布/订阅模式的轻量级消息传输协议。MQTT协议已被广泛应用于物联网应用层。MQTT协议可以在物联网公开信道下传送大量信息,为秘密信息的传输提供了有效的载体。MQTT协议的广泛应用可以为隐通道的存在提供较好的掩护。MQTT协议工作在TCP协议之上,可靠性高,进而提高了隐蔽信息传递的可靠性。而且,MQTT协议定义了14种类型的数据包,为使用不同类型数据包的次序调制提供了条件。同时,MQTT数据包中具有可以重新利用的保留字段,为隐蔽信息的存储提供了空间。
本发明的目的是提供一种物联网环境隐通道的构建方法及系统,通过利用MQTT数据包中的保留字段,为隐蔽信息的存储提供了空间。将隐蔽信息嵌入到数据包的相应保留或冗余字段,保证了隐通道的隐蔽性。通过分组变化调节隐藏位数,以及根据嵌入字段值的所在值区来确定嵌入隐蔽信息的方式,可以保证隐蔽流量与公开流量的特征拟合,从而保证隐通道的抗检测性。
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
如图1所示,本发明提供一种物联网环境隐通道的构建方法,所述方法包括:
S1、向接收方发送隐蔽信息嵌入开始标志的数据包;所述隐蔽信息嵌入开始标志的数据包为发送方和接收方提前商定好的第一包序列组合,所述第一包序列组合由第一类型MQTT协议数据包和第二类型MQTT协议数据包组成。
选取P
S2、根据所述第三类型MQTT协议数据包中的第一字段,对所述第三类型MQTT协议数据包进行分组,得到若干组第三类型MQTT协议数据包;所述三类型MQTT协议数据包为所述隐蔽信息嵌入的载体数据包。
选取P
需要说明的是,P
S3、从若干组所述第三类型MQTT协议数据包中,选取一组未被选取过的第三类型MQTT协议数据包为当前组第三类型MQTT协议数据包。
作为一种可选的实施方式,在所述S3之后,在S4之前,所述方法还包括:向所述接收方发送所述组内隐蔽信息的嵌入位数。
隐蔽信息需要根据步骤S2中分的组,进行分组嵌入并发送,其中组内隐蔽信息指需嵌入到当前组第三类型MQTT协议数据包的隐蔽信息,即组内指的是当前组的组内,同理,后续提到的组内值区个数以及组内第二字段等,均指当前组的值区个数以及当前组的第二字段。
在分组中数据包发送前先发送嵌入位数数据包组合。嵌入位数也是选取P
S4、针对所述当前组第三类型MQTT协议数据包,根据组内隐蔽信息的嵌入位数对组内第二字段表示值的范围进行分区,得到组内值区个数;所述组内隐蔽信息的嵌入位数由第四类型MQTT协议数据包和第五类型MQTT协议数据包组成的第二包序列组合表示;所述组内第二字段表示值的范围根据组内第二字段的位数确定。
具体的,组内第二字段表示值的范围为0到第二字段的最大值,即0到2
隐蔽信息嵌入时,根据分组中每个P
作为一种可选的实施方式,所述所述值区个数的计算公式包括:
N
其中,N
具体以组内数据包的字段F
S5、针对所述当前组第三类型MQTT协议数据包,根据所述组内值区个数,以及组内所述第二字段的位数,计算组内每一所述值区的区间。
作为一种可选的实施方式,所述S5具体包括:
S51、根据所述组内值区个数以及所述组内第二字段的位数,计算值区长度;
S52、根据所述值区长度,计算组内每一所述值区的区间。
所述值区长度计算公式为:
其中,L为值区长度,k为组内第二字段的位数,N
计算值区长度时,先根据组内第二字段的位数,计算出组内第二字段的最大值,即最大值=2
例如:若字段F2的最大值Max=127,嵌入位数l=4,则划分为N
S6、根据所述组内隐蔽信息以及组内每一所述值区的区间,确定所述当前组第三类型MQTT协议数据包中各待发送的数据包,并将各所述待发送的数据包发送给接收方;所述待发送的数据包为包含目标字段值的数据包,所述目标字段值为与所述组内隐蔽信息对应的值区中的字段值。
每一组P
S7、判断所述隐蔽信息是否全部嵌入完成,得到第一判断结果;若所述第一判断结果为否,则返回步骤“从若干组所述第三类型MQTT协议数据包中,选取一组未被选取过的第三类型MQTT协议数据包为当前组第三类型MQTT协议数据包”;若所述第一判断结果为是,则向所述接收方发送隐蔽信息嵌入结束标志的数据包;所述隐蔽信息嵌入结束标志的数据包为发送方和接收方提前商定好的第三包序列组合,所述第三包序列组合由所述第一类型MQTT协议数据包和所述第二类型MQTT协议数据包组成。
即当前分组的数据包发送结束后,进入下一个分组,一直重复下去。直到全部隐蔽信息全部嵌入完成,则按照嵌入结束标志发送对应数据包组合,同样选取P
作为一种可选的实施方式,所述隐蔽信息嵌入结束标志的数据包为所述隐蔽信息嵌入开始标志的数据包的反码。
使用嵌入开始标志的反码作为结束标志。比如,如果嵌入开始标志为“1001”时,则嵌入结束标志位“0110”,即对应发送的相应数据包序列为“P
作为一种可选的实施方式,所述方法还包括:
判断传输过程中其余流量数据包中是否包含与所述隐蔽信息嵌入开始标志的数据包或隐蔽信息嵌入结束标志的数据包相同的数据包,得到第二判断结果;所述其余流量数据包为除所述隐蔽信息嵌入开始标志的数据包和所述隐蔽信息嵌入结束标志的数据包之外的数据包;
若所述第二判断结果为是,则在所述其余流量数据包之前插入转义标志数据包;所述转义标志数据包为由所述第一类型MQTT协议数据包和所述第二类型MQTT协议数据包组成的第三包序列组合表示的数据包;
若所述第二判断结果为否,则不对所述其余流量数据包进行处理。
当传输过程中流量数据包序列恰巧包含与表示嵌入开始标志或结束标志的数据包组合相同时,则在该原始数据包组合前插入转义标志。转义标志同样由P
本方法的优点主要有两个方面:
(1)隐蔽性强。MQTT数据包中具有可以重新利用的保留字段,为隐蔽信息的存储提供了空间。将隐蔽信息嵌入到数据包的相应保留或冗余字段,可以保证隐通道的隐蔽性。
(2)抗检测性强。通过分组变化调节隐藏位数,以及根据嵌入字段值的所在值区来确定嵌入隐蔽信息的方式,可以保证隐蔽流量与公开流量的特征拟合,进而提高隐通道的抗检测性。
本发明还提供一种物联网环境隐通道的构建系统,所述系统包括:
隐蔽信息嵌入开始标志的数据包发送模块M1,用于向接收方发送隐蔽信息嵌入开始标志的数据包;所述隐蔽信息嵌入开始标志的数据包为发送方和接收方提前商定好的第一包序列组合,所述第一包序列组合由第一类型MQTT协议数据包和第二类型MQTT协议数据包组成;
分组模块M2,用于根据所述第三类型MQTT协议数据包中的第一字段,对所述第三类型MQTT协议数据包进行分组,得到若干组第三类型MQTT协议数据包;所述三类型MQTT协议数据包为所述隐蔽信息嵌入的载体数据包;
选取模块M3,用于从若干组所述第三类型MQTT协议数据包中,选取一组未被选取过的第三类型MQTT协议数据包为当前组第三类型MQTT协议数据包;
分区模块M4,用于针对所述当前组第三类型MQTT协议数据包,根据组内隐蔽信息的嵌入位数对组内第二字段表示值的范围进行分区,得到组内值区个数;所述组内隐蔽信息的嵌入位数由第四类型MQTT协议数据包和第五类型MQTT协议数据包组成的第二包序列组合表示;所述组内第二字段表示值的范围根据组内第二字段的位数确定;
值区区间计算模块M5,用于针对所述当前组第三类型MQTT协议数据包,根据所述组内值区个数,以及组内所述第二字段的位数,计算组内每一所述值区的区间;
待发送数据包确定模块M6,用于根据所述组内隐蔽信息以及组内每一所述值区的区间,确定所述当前组第三类型MQTT协议数据包中各待发送的数据包,并将各所述待发送的数据包发送给接收方;所述待发送的数据包为包含目标字段值的数据包,所述目标字段值为与所述组内隐蔽信息对应的值区中的字段值;
判断模块M7,用于判断所述隐蔽信息是否全部嵌入完成,得到第一判断结果;
若所述第一判断结果为否,则返回步骤“从若干组所述第三类型MQTT协议数据包中,选取一组未被选取过的第三类型MQTT协议数据包为当前组第三类型MQTT协议数据包”;
若所述第一判断结果为是,则向所述接收方发送隐蔽信息嵌入结束标志的数据包;所述隐蔽信息嵌入结束标志的数据包为发送方和接收方提前商定好的第三包序列组合,所述第三包序列组合由所述第一类型MQTT协议数据包和所述第二类型MQTT协议数据包组成。
可选的,所述系统还包括:
第二判断模块,用于判断传输过程中其余流量数据包中是否包含与所述隐蔽信息嵌入开始标志的数据包或隐蔽信息嵌入结束标志的数据包相同的数据包,得到第二判断结果;所述其余流量数据包为除所述隐蔽信息嵌入开始标志的数据包和所述隐蔽信息嵌入结束标志的数据包之外的数据包;
若所述第二判断结果为是,则在所述其余流量数据包之前插入转义标志数据包;所述转义标志数据包为由所述第一类型MQTT协议数据包和所述第二类型MQTT协议数据包组成的第三包序列组合表示的数据包;
若所述第二判断结果为否,则不对所述其余流量数据包进行处理。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的系统而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处。综上所述,本说明书内容不应理解为对本发明的限制。
- 一种快速识别物联网环境非法接入资产的方法与系统
- 一种基于包排序IP隐通道的数据校验方法
- 一种面向实时交互应用的包重排隐通道构建方法及系统
- 一种电力物联网边缘物联代理高可信执行环境构建方法及系统