一种面向边缘网关的数据可信传输机制
文献发布时间:2023-06-19 09:30:39
技术领域
本发明涉及通信技术领域,具体而言,涉及一种面向边缘网关的数据可信传输机制。
背景技术
作为企业设备端外沿管家的边缘网关,拥有较强的运算能力、较高的安全性等特点,但在与云端协同及网关间互通时还有以下的不足:
1.数据在网关间或被网关向云端传输的过程中,可能会脱离企业与云端的保护,而导致重要部分被窃取。
2.云端的认证或调度需求与企业的信息保护形成冲突。
3.数据在传输过程中有一定安全性后,随着时间推移,信息是否会出错或被篡改不得而知,影响后续被调用的可信度。
因此需要一种既能提取信息价值又不泄漏重要信息的可信传输机制,并且其能够识别数据是否与最初的一致。
发明内容
本发明的目的在于提供一种面向边缘网关的数据可信传输机制,其能够将每个数据块将自身最后计算出的Hash值传递给下一个数据块,最终云端仅需要保留最后一个数据块的总hash值即可知道当后续调用这些信息时,所有数据是否与最初采集的保持一致,当不一致时,可以通过比对验证找出异常数据。
本发明的实施例是这样实现的:
本申请实施例提供一种面向边缘网关的数据可信传输机制,其包括获取上一个数据块的总hash值;根据数据块中的本块地址、前块地址以及时间戳进行hash值计算;对粗粒度设备识别信息和设备状态信息进行hash值计算;对细粒度设备采集信息进行hash值计算;将总hash值传输至下一数据块。
在本发明的一些实施例中,上述对粗粒度设备识别信息和设备状态信息进行hash值计算包括:获取所有设备及设备相关状态完整的Hash值对照表;将对照表高安全性方式传输至云端存储点或其他网关。
在本发明的一些实施例中,上述还包括:设备按预设周期更新状态信息;根据设备序列号状态值1、状态值2至状态值n进行Hash值计算;向云端及其他网关进行hash值传输。
在本发明的一些实施例中,上述对细粒度设备采集信息进行hash值计算包括:向外对接的边缘网关将Hash值链表传输给云端。
在本发明的一些实施例中,上述包括Hash值链表包括上一个数据块的总hash值、本块地址、前块地址以及时间戳hash值、粗粒度信息hash值及细粒度信息的Hash树。
在本发明的一些实施例中,上述还包括:当云端需要调用历史数据时,将调用需求按既定规格发给边缘网关。
在本发明的一些实施例中,上述包括边缘网关收到需求后进行运算,将计算结果和当下的Hash值链表发给云端。
在本发明的一些实施例中,上述还包括:存储顺序由顶点开始逐行记录;核验时按总数据块链接结构逆序比对全体数据块的Hash值,找出所有不同的部分。
在本发明的一些实施例中,上述还包括比对第k个数据块的Hash值n至m,若n至m中有出错的值;则出错值向前及向后寻找最近的正确块,逐步推导出正确值。
在本发明的一些实施例中,上述包括列出各层末端值,若Hash值k出错,只需找出(k-n)所在层数,如(k-n)在∑L-1和∑L之间,说明是在L层,则只需进一步检验Hash值(k+L)和Hash值(k+L+1);直至找出所有出错的数据小块,剩余信息均为原始数据。
相对于现有技术,本发明的实施例至少具有如下优点或有益效果:
每个数据块将自身最后计算出的Hash值传递给下一个数据块,最终云端仅需要保留最后一个数据块的总hash值即可知道当后续调用这些信息时,所有数据是否与最初采集的保持一致,当不一致时,可以通过比对验证找出异常数据。当意外发生,导致其中个别数据块内容出错,那最终计算获得的Hash值一定会不同,此时逆源寻找第一个相同Hash值的块,便知道此前的数据都是可信的。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本发明实施例提供的一种面向边缘网关的数据可信传输机制方法步骤示意图;
图2A为本发明实施例提供的一种面向边缘网关的数据可信传输机制方法详细步骤示意图;
图2B为图2A的补充步骤示意图;
图3为本发明实施例提供的相邻数据块的链接结构示意图;
图4为本发明实施例提供的多数据小块的Hash树形式示意图;
图5为本发明实施例提供的总体数据块链接结构示意图;
图6为本发明实施例提供的设备的三状态码表示意图;
图7为本发明实施例提供的细粒度数据传输机制示意图;
图8为本发明实施例提供的Hash值链表结构示意图;
图9为本发明实施例提供的一种面向边缘网关的数据可信传输机制模块示意图。
具体实施方式
为使本申请实施例的目的、技术方案和优点更加清楚,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。
因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合附图,对本申请的一些实施方式作详细说明。在不冲突的情况下,下述的各个实施例及实施例中的各个特征可以相互组合。
实施例1
请参阅图1、图3、图4以及图5,图1所示为本申请实施例提供的图1为本发明实施例提供的一种面向边缘网关的数据可信传输机制方法步骤示意图,其如下所示:
步骤S100,获取上一个数据块的总hash值;
步骤S110,根据数据块中的本块地址、前块地址以及时间戳进行hash值计算;
步骤S120,对粗粒度设备识别信息和设备状态信息进行hash值计算;
步骤S130,对细粒度设备采集信息进行hash值计算;
步骤S140,将总hash值传输至下一数据块。
在一些实施方式中,请参照图3,,图3所示为两个相连的数据块,分别由4段内容构成。第一段存储的是前一个数据块的总Hash值,该值是对前一个数据块4段内容分别计算出的Hash值进行联合计算得到的。Hash值的计算可以使用MD5或SHA算法。
第二段存储的是由本数据块存储地址、前一个数据块存储地址和数据块的采集时间段三个信息,其中存储地址是形如“存储设备A—存储区块B—起始位置XXXX”的逻辑存储地点,用以快速寻址。
第三段存储的是粗粒度的设备识别信息和设备状态信息。
第四段存储的是细粒度的设备采集信息,这两段的详细情况在性质分析中已表明。需要补充说明的是,粗力度信息量较小,可以直接计算出一个Hash值,但细粒度信息体量大、出错可能性高,需要对其进行Hash树计算,形式请参照图4。
数据按照数字增大的顺序依次采集获得,按给定规格大小形成数据小块。当采集完第1块后,对这些较小的信息计算Hash值1,当采集完第2块后对其本身计算Hash值2,并对Hash1与Hash2联合计算出Hash3,以此类推。当第N个数据块被采集后,就需要依次计算n个新Hash值,而Hash树顶端的值便是图3中设备采集信息对应的Hash值。按照这种方式可以方便地扩展新数据小块,且最终放入总数据块中的Hash值只有1个,满足了良好的扩展性与低存储空间需求。
总体的数据块结构请参照图5,其中每2个相邻数据块的结构如图3所示。因此,每个数据块将自身最后计算出的Hash值传递给下一个数据块,最终云端仅需要保留最后一个数据块的总hash值即可知道当后续调用这些信息时,所有数据是否与最初采集的保持一致,当不一致时,可以通过比对验证找出异常数据。
当意外发生,导致其中个别数据块内容出错,那最终计算获得的Hash值一定会不同,此时逆源寻找第一个相同Hash值的块,便知道此前的数据都是可信的。
实施例2
请参阅图2A、图2B、图6、图7以及图8,图2为本发明实施例提供的一种面向边缘网关的数据可信传输机制方法详细步骤示意图,其如下所示:
步骤S200,获取上一个数据块的总hash值;
步骤S210,根据数据块中的本块地址、前块地址以及时间戳进行hash值计算;
步骤S220,对粗粒度设备识别信息和设备状态信息进行hash值计算;
步骤S230,获取所有设备及设备相关状态完整的Hash值对照表;
步骤S240,将对照表高安全性方式传输至云端存储点或其他网关;
步骤S250,设备按预设周期更新状态信息;
步骤S260,根据设备序列号状态值1、状态值2至状态值n进行Hash值计算;
步骤S270,向云端及其他网关进行hash值传输;
步骤S280,对细粒度设备采集信息进行hash值计算;
步骤S290,向外对接的边缘网关将Hash值链表传输给云端;
步骤S300,Hash值链表包括上一个数据块的总hash值、本块地址、前块地址以及时间戳hash值、粗粒度信息hash值及细粒度信息的Hash树;
步骤S310,当云端需要调用历史数据时,将调用需求按既定规格发给边缘网关;
步骤S320,边缘网关收到需求后进行运算,将计算结果和当下的Hash值链表发给云端;
S330,存储顺序由顶点开始逐行记录;
S340,核验时按总数据块链接结构逆序比对全体数据块的Hash值,找出所有不同的部分;
S350,比对第k个数据块的Hash值n至m,若n至m中有出错的值;
S360,则出错值向前及向后寻找最近的正确块,逐步推导出正确值;
S370,列出各层末端值,若Hash值k出错,只需找出(k-n)所在层数,如(k-n)在∑L-1和∑L之间,说明是在L层,则只需进一步检验Hash值(k+L)和Hash值(k+L+1);
S380,直至找出所有出错的数据小块,剩余信息均为原始数据;
S390,将总hash值传输至下一数据块。
在一些实施方式中,根据所传输数据的不同性质,可以分2类情况讨论。第一类是粗粒度信息的传输,这类信息体量较小,需要且可以被实时上传,但其中的信息涉及到底层设备的状态,不能被第三方截获,同时也要确保其局部信息传输正确。因此采用码表对照的方法进行Hash值传输。
对所有设备及相关状态做完整的Hash值对照表,请参照图6。将对照表用光盘刻录等安全性较高的方式运输至云端存储点或其他网关。
每次设备按设定周期更新状态信息后,按设备序列号-状态值1-状态值2-…-状态值n的格式进行Hash值计算,仅需要向云端或其他网关传输该值。
接收端比对已存储的码表即可知道各设备实时状态信息。
采用Hash码比对方式有两点优势:不用担心截获泄漏,因为Hash的反向破译极难;设备的状态信息简单,难以发现其反转错误,转为Hash值后再传输,若发生局部传输错误便会与既存的码表对应失败,会要求重新传输数据,从而规避传输中的小错误,增强鲁棒性。
第二类是细粒度信息的传输。这部分数据体量大,如果实时传输给云端,一则会占用大量带宽,整体传输速度慢,二则难以全局加密,容易被截获破译。另外这部分数据实际的调用频次是较低,云端或其他网关仅在必要时刻会要求最初的汇集设备提供相关信息,如云平台对企业资质定期评估时,会需要了解设备的运营状态,此时就要调用历史采集数据,分析评估。它们不需要实时上传,但要求在被调用时能给出可信证明。因此采用如图7所示的传输机制。
请参照图7,平时采集过程中,向外对接的边缘网关A将Hash值链表传输给云端,该表包括图3中的4个Hash值及细粒度信息的Hash树,详细情况将会下述。除此以外不再传输其他任何数据。
当云端需要调用历史数据时,将调用需求按既定规格发给边缘网关A,如计算某时间段内所有设备的正常运行率的公式。
边缘网关A收到需求后进行运算,仅将当前处理结果和当下的Hash值链表发给云端。这一步可以由企业与云端联合定制一款软件安装在边缘端,保障需求传递的精准性并确保Hash值链表是根据当下数据计算所得。
此机制利用了边缘网关的计算能力,既能有效提取信息的价值,又能节约带宽,还能避免企业信息的泄漏。
请参照图8,图8为本发明实施例提供的Hash值链表结构示意图,数据的保真是指字符串、整型等能精准表示的数据完全一致,浮点型等有截断误差的数据都以相同可接受精度进行预截取,如按四舍六入五成双的方式保留4位小数,再进行精确的一致性判断。
在此传输机制中,基础数据基本都保存在企业端,随着时间推移,可能会因为设备故障、恶意攻击等原因导致信息一定程度地出错,影响后续被调用的可信度。因此,借助Hash值链表核验对数据进行保真性验证。
数据块中的Hash值1-3前述已说明,Hash4即细粒度数据的Hash树顶点。由于细粒度数据体量大,容易出错,因此Hash树需要完整存储,其使用原理如下:
存储顺序由顶点开始逐行记录,因为每个数据块中小块的规格会有差别,按图4中Hash值生成顺序记录会难以根据次序计算出所在行列,需要额外的尺寸信息。
核验时,按图5逆序比对全体数据块的Hash值,找出所有不同的部分。假设第k个数据块的Hash值与原始的不同,说明其中有错误数据,需要进一步查验。
比对第k个数据块的Hash值2、3、4。如果是2出错,向前及向后寻找最近的正确块,可以逐步推导出正确值。如果是3出错,一般是状态信息出错,由于状态信息重点是实时性,在后续调用中影响不大。如果是4出错,需要进一步查验。
反向比对Hash树,对于第2层:若Hash值5出错,则只需进一步比对7和8;若Hash值6出错,只需进一步比对8和9,以此类推。一般而言,首先列出各层末端值(1,3,6,10,…,∑N),若Hash值k出错,只需找出(k-3)所在层数,如(k-3)在∑L-1和∑L之间,说明是在L层,则只需进一步检验Hash值(k+L)和Hash值(k+L+1)即可。直至找出所有出错的数据小块,剩余信息均为原始数据。
实施例3
请参阅图9,图9为本发明实施例提供的一种面向边缘网关的数据可信传输机制模块示意图,其包括:
前数据模块,用于获取上一个数据块的总hash值;
本数据模块,用于根据数据块中的本块地址、前块地址以及时间戳进行hash值计算;
粗粒度模块,用于对粗粒度设备识别信息和设备状态信息进行hash值计算;
细粒度模块,用于对细粒度设备采集信息进行hash值计算;
传输模块,用于将总hash值传输至下一数据块。
还包括存储器、处理器和通信接口,该存储器、处理器和通信接口相互之间直接或间接地电性连接,以实现数据的传输或交互。例如,这些元件相互之间可通过一条或多条通讯总线或信号线实现电性连接。存储器可用于存储软件程序及模块,处理器通过执行存储在存储器内的软件程序及模块,从而执行各种功能应用以及数据处理。该通信接口可用于与其他节点设备进行信令或数据的通信。
其中,存储器可以是但不限于,随机存取存储器(Random Access Memory,RAM),只读存储器(Read Only Memory,ROM),可编程只读存储器(Programmable Read-OnlyMemory,PROM),可擦除只读存储器(Erasable Programmable Read-Only Memory,EPROM),电可擦除只读存储器(Electric Erasable Programmable Read-Only Memory,EEPROM)等。
处理器可以是一种集成电路芯片,具有信号处理能力。该处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
可以理解,图9所示的结构仅为示意还可包括比图9中所示更多或者更少的组件,或者具有与图9所示不同的配置。图9中所示的各组件可以采用硬件、软件或其组合实现。
在本申请所提供的实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
综上所述,本申请实施例提供的一种面向边缘网关的数据可信传输机制,其可以将每个数据块将自身最后计算出的Hash值传递给下一个数据块,最终云端仅需要保留最后一个数据块的总hash值即可知道当后续调用这些信息时,所有数据是否与最初采集的保持一致,当不一致时,可以通过比对验证找出异常数据。当意外发生,导致其中个别数据块内容出错,那最终计算获得的Hash值一定会不同,此时逆源寻找第一个相同Hash值的块,便知道此前的数据都是可信的。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
对于本领域技术人员而言,显然本申请不限于上述示范性实施例的细节,而且在不背离本申请的精神或基本特征的情况下,能够以其它的具体形式实现本申请。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本申请的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本申请内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
- 一种面向边缘网关的数据可信传输机制
- 面向边缘计算的非结构化数据共享机制实现方法