掌桥专利:专业的专利平台
掌桥专利
首页

物联网终端设备与服务器通信方法、计算机可读存储介质

文献发布时间:2024-01-17 01:26:37


物联网终端设备与服务器通信方法、计算机可读存储介质

技术领域

本发明涉及物联网加密通信技术领域,具体涉及物联网终端设备与服务器通信方法、计算机可读存储介质。

背景技术

随着日常生活、生产的智能化程度越来越高,物联网设备也越来越普及。在众多的物联网设备通信过程中,不乏诸如个人隐私、金融数据、行业机密等等敏感内容,所以物联网设备通信的安全性、完整性也就显得尤为重要。但是现有的物联网设备往往使用通用的加密算法,便存在着如下问题:

一、通用的加密算法可能会被破解。通用的加密算法往往是公开的,其中的加密实现过程都可以轻易被获取,所以就有可能被破解。

二、物联网设备中存储密钥是不安全的。密钥是通用的加密算法最关键的信息,一旦密钥泄露,加密功能将立即失效。在物联网的应用中,密钥又不得不存储在物联网设备中,而物联网设备中的密钥又容易被获取,这就存在着极大的安全风险。所以在物联网的应用中,将密钥作为最关键的信息,存在不可避免的风险。

三、通用的加密算法无法避免重放攻击。即使密钥不被泄露,但是如果获取真实的报文,就可以对终端设备或者服务器发起重放攻击。这是通用的加密算法无法解决的问题。

四、单纯使用通用加密算法无法保证通信数据的完整性。很多物联网设备往往采用无线通信等等不稳定通信,受限于客观环境,通信过程会存在不稳定因素,从而造成通信数据的丢失,这是单纯使用通用加密算法无法解决的问题。

发明内容

针对现有技术存在的不足,本发明的目的在于提供一种物联网终端设备与服务器通信方法及计算机可读存储介质,该方法及计算机可读存储介质能够提高物联网通信的安全性、完整性。

为了实现上述目的,本发明提供如下技术方案:

物联网终端设备与服务器通信方法,包括加密过程和解密过程,加密过程包括:S1,根据物联网终端设备与服务器上一次通信时刻的物联网终端设备的经度、纬度、时间、主控芯片的ID、定时器的计数值中的至少一个数值选定通用对称加密算法的排列组合方式;S2,根据S1选定的通用对称加密算法的排列组合方式对输入报文进行加密,形成通用加密报文;S3,使用第一自定义加密算法对通用加密报文进行加密,形成第一加密报文;S4,使用第二自定义加密算法对第一加密报文进行加密,形成最终加密报文。

在本发明中,优选地,S1包括:S11,物联网终端设备与服务器上一次通信时刻的物联网终端设备的经度、纬度、时间、定时器的计数值中的至少一个数值组合成一个字符串;S12,对字符串使用信息摘要算法产生信息摘要值;S13,对信息摘要值使用数据完整性校验算法产生信息摘要的校验值;S14,根据信息摘要的校验值所在的数值区间,选定通用对称加密算法对应的排列组合方式。

在本发明中,优选地,S3包括:S31,将第一自定义密钥与通用加密报文进行按字节循环异或操作;S32,将按字节循环异或操作后的通用加密报文与第一自定义密钥组合形成第一加密报文。

在本发明中,优选地,由物联网终端设备发起通信时,第一自定义密钥的生成方式为:物联网终端设备主控芯片的定时器的计数值与物联网终端设备主控芯片的ID,组合成一个字符串,并对该字符串使用信息摘要算法获得的信息摘要值作为第一种自定义密钥;由服务器发起通信时,第一自定义密钥的生成方式为:服务器获取定时器的计数值与服务器的MAC地址,组合成一个字符串,并将该字符串使用信息摘要算法获得的信息摘要作为第一自定义密钥。

在本发明中,优选地,S32中将按字节循环异或操作后的通用加密报文与第一自定义密钥组合,其方式为第一自定义密钥拼接在按字节循环异或操作后的通用加密报文的后面或者前面,或者将二者按照字节交叉混编在一起。

在本发明中,优选地,S4中第二自定义加密算法为将第二自定义密钥与第一加密报文进行按字节循环异或操作,得到最终加密报文。

在本发明中,优选地,第二自定义密钥由用户设定,分别存储在物联网终端设备和服务器中。

在本发明中,优选地,解密过程包括:S5,将最终加密报文传输至目标的物联网终端设备或服务器;S6,将第二自定义密钥与最终加密报文进行按字节循环异或操作,得到第一加密报文;S7,在第一加密报文中取出第一自定义密钥,将第一自定义密钥与第一加密报文中剩下的部分进行按字节循环异或操作,得到通用加密报文;S8,比对本次通信的第一自定义密钥与上次通信的第一自定义密钥是否相同,如果相同,就丢弃本次通信获得的最终加密报文并停止通信;如果不同,则继续进行S9;S9,根据S1选定的通用对称加密算法的排列组合方式对通用加密报文进行解密,获得输入报文。

在本发明中,优选地,S1之前还包括:S0:对原始报文使用数据完整性校验算法得到校验值,将校验值与原始报文组合得到输入报文。

计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行如上述任一项的物联网终端设备与服务器通信的加密方法。

与现有技术相比,本发明的有益效果是:

本发明的方法采用了若干种通用的加密算法,使用哪些类型的加密算法、加密算法的加密顺序都是随机的,并且物联网终端设备所处的空间和时间,以及不同的物联网终端设备,都会影响到加密算法的类型和加密顺序。同时本发明还提供了自定义的加密算法,用户可对自定义加密算法自由改动,就能形成极难破解的新的加密算法,加密后的文件的破解难度远远高于通用的加密算法;本方法的安全性并不完全依赖于密钥,同时还依赖于一整套的加密流程来保证安全性,可以保证在密钥泄露的情况下加密文件仍然安全;本方法提供了一种通用性极强、成本极低的生成可靠随机变量的方法,使用该方法产生的随机变量可以用于避免重放攻击;本方法包含了数据完整性校验算法,确保了通信数据的完整性。

附图说明

图1为本发明物联网终端设备与服务器通信方法一个实施例的流程图。

图2为本发明物联网终端设备与服务器通信方法一个实施例中的S1的流程图。

图3为本发明物联网终端设备与服务器通信方法一个实施例中的S3的流程图。

图4为本发明物联网终端设备与服务器通信方法一个实施例的流程图。

图5为本发明本发明物联网终端设备与服务器通信方法一个实施例加密过程的示意图。

图6为本发明本发明物联网终端设备与服务器通信方法一个实施例解密过程的示意图。

附图中: 101-原始报文、102-输入报文、103-校验值、105-通用加密报文、107-第一自定义密钥、108-第一加密报文、109-最终加密报文、a0-数据完整性校验算法、a1-通用对称加密算法、a2-第一自定义加密算法、a3-第二自定义加密算法。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

需要说明的是,当组件被称为“固定于”另一个组件,它可以直接在另一个组件上或者也可以存在居中的组件。当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中组件。当一个组件被认为是“设置于”另一个组件,它可以是直接设置在另一个组件上或者可能同时存在居中组件。本文所使用的术语“垂直的”、 “ 水平的”、“ 左”、“ 右”以及类似的表述只是为了说明的目的。

除非另有定义,本文所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。本文中在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本发明。本文所使用的术语“及/或”包括一个或多个相关的所列项目的任意的和所有的组合。

请同时参见图1至图3,本发明一较佳实施方式提供一种物联网终端设备与服务器通信方法,包括加密过程和解密过程,加密过程包括:

S0:对原始报文使用数据完整性校验算法得到校验值,将校验值与原始报文组合得到输入报文;

S1,根据物联网终端设备与服务器上一次通信时刻的物联网终端设备的经度、纬度、时间、主控芯片的ID、定时器的计数值中的至少一个数值选定通用对称加密算法的排列组合方式;

S2,根据S1选定的通用对称加密算法的排列组合方式对输入报文进行加密,形成通用加密报文;

S3,使用第一自定义加密算法对通用加密报文进行加密,形成第一加密报文;

S4,使用第二自定义加密算法对第一加密报文进行加密,形成最终加密报文。

S0中,对原始报文首先使用数据完整性校验算法,在本实施例中,数据完整性校验算法具体为CRC16校验算法,也可采用其他的数据完整性校验算法。使用CRC16校验算法对原始报文操作后,生成了校验值,将原始报文与校验值组合(组合方式可以是拼接、混编等),得到一条包含原始报文与校验值的报文,该报文作为后续加密操作的输入报文。

验证原始报文是否完整的操作为:在一条包含了原始报文与校验值的输入报文中取出原始报文,然后再对原始报文进行数据完整性校验算法操作,获得了一个新校验值,将新校验值与原来的校验值进行比较,如果两个校验值相同,就代表报文在整个数据传输和操作过程中没有发生错误。

需指出的是,S0并非本发明方法的必要步骤,而是一种优化处理方法,在其他步骤中的输入报文并不特指经S0获得的输入报文,输入报文仅指S2中将要通过通用对称加密算法进行加密的报文,既可以是经过S0处理后的报文,也可以是原始报文本身。

S2中,对输入报文要进行通用对称加密算法(如AES、DES、IDEA、Blowfish、Twofish等)加密,通用对称加密算法可以选用一种、两种或多种,对他们进行排列组合,按照排列组合的顺序对输入报文进行加密,即可获得较复杂的通用对称加密算法加密信息,即为通用加密报文。通用对称加密算法用X1至Xn表示,由于这些对称加密算法是公开通用的,所以在此对其加密和解密过程不做赘述。

S1中,选定通用对称加密算法的排列组合方式,即选择通用对称加密算法的类型和加密顺序。为了使通用对称加密算法的排列组合方式具有随机性,需要选用一定的随机数值来确定该排列组合方式,可以选用物联网终端设备与服务器上一次通信时刻的物联网终端设备的经度、纬度、时间、主控芯片的ID、定时器的计数值这些具有随机性的数值,这些数值可以选用其中的一种或几种,可以根据需要和现实的设备条件来决定选用哪些数值。本实施例选择全部这些数值。具体的,S1包括:

S11,物联网终端设备与服务器上一次通信时刻的物联网终端设备的经度、纬度、时间、定时器的计数值中的至少一个数值组合成一个字符串;

S12,对字符串使用信息摘要算法产生信息摘要值;

S13,对信息摘要值使用数据完整性校验算法产生信息摘要的校验值;

S14,根据信息摘要的校验值所在的数值区间,选定通用对称加密算法对应的排列组合方式。

物联网终端设备与服务器上一次通信时刻的物联网终端设备的经度、纬度、时间和物联网终端设备定时器的计数值,加上物联网终端设备主控芯片的ID,组合成一个字符串,该字符串分别存储在物联网终端设备和服务器中,供本次通信使用。对该字符串使用信息摘要算法产生信息摘要值,然后再对信息摘要值使用数据完整性校验算法(例如CRC16校验算法)产生信息摘要的校验值,然后再对信息摘要的校验值进行校验值判断,根据不同的判断情况,比如校验值的大小位于0~A、A~B、B~C、C~0xFFFF哪个区间内,根据所处的区间,选择不同的通用对称加密算法的类型和加密顺序。

选择哪几种通用对称加密算法以及采用怎样的加密顺序都是跟随信息摘要的校验值的大小而联动变化的,经过多种通用对称加密算法加密后,产生了通用对称加密算法加密后的报文,即通用加密报文,该报文作为后续加密操作的输入信息。

该选择方法可以确保物联网终端设备所处的空间和时间,以及不同的物联网终端设备,都会影响到通用对称加密算法的类型和加密顺序。因为加入了随机变量,还可以保证即使是同一个物联网终端设备处在相同的空间和时间,也会随机使用加密算法的类型和加密顺序。这就使得本发明提供的加密方法的破解难度远远高于一般通用的加密算法。如果去掉经度、纬度、时间字段,减少了选择通用对称加密算法的类型和加密顺序的过程对定位模块、时间模块的依赖,在实现了类似的功能的同时,也进一步降低了硬件成本,但同时减少了选定通用对称加密算法的排列组合方式的随机因素,从理论上降低了加密报文的破解难度。因此,采用哪些数值作为选定通用对称加密算法的排列组合方式的决定因素需要用户综合考量软硬件环境来决定。

S3中,第一自定义密钥并非固定的,而是根据发起通信的主体不同而变化的。由物联网终端设备发起通信时,此时由物联网终端设备产生,第一自定义密钥的生成方式为:物联网终端设备主控芯片的定时器的计数值与物联网终端设备主控芯片的ID,组合成一个字符串,并对该字符串使用信息摘要算法获得的信息摘要值作为第一种自定义密钥;由服务器发起通信时,此时由服务器产生,第一自定义密钥的生成方式为:服务器获取定时器的计数值与服务器的MAC地址,组合成一个字符串,并将该字符串使用信息摘要算法获得的信息摘要作为第一自定义密钥。

具体的,S3包括:

S31,将第一自定义密钥与通用加密报文进行按字节循环异或操作;

S32,将按字节循环异或操作后的通用加密报文与第一自定义密钥组合形成第一加密报文。

举例说明按字节循环异或操作的方式,比如第一自定义密钥为40个字节的字符串,通用加密报文为90个字节的字符串,则将通用加密报文的第1~40字符与第一自定义密钥的第1~40字符按对应字节进行异或操作,然后再将通用加密报文的第41~80字符与第一自定义密钥的第1~40字符按对应字节进行异或操作,然后再将通用加密报文的第81~90字符与第一自定义密钥的第1~10字符按对应字节进行异或操作。其他长度的需要加密的报文以此类推。

按字节循环异或操作后的通用加密报文会成为无法被识读的杂乱的字符串,第一自定义密钥本身也是一串随机的字符,所以将二者组合起来之后,整体看起来就是一串毫无规律的字符串。

第一自定义密钥以一种什么样的方式与按字节循环异或操作后的通用加密报文组合起来,可以拼接在加密报文的后面或者前面,还可以将它们按照字节交叉混编在一起,组合后报文即为第一加密报文

第一加密报文将第一自定义密钥与按字节循环异或操作后的通用加密报文拼接起来一起传输,这样就会天然的在第一加密报文中包含了解密的密钥,当了解该加密规律的接收者接收到报文后,就可以取得其中的密钥,利用该密钥进行解密,避免了传递密钥的风险。

在本实施例中,如图5所示,第二自定义加密算法的加密方式为:将第二自定义密钥与第一加密报文进行按字节循环异或操作即可得到第二种自定义加密算法加密后的报文,即为最终加密报文。第二自定义密钥是固定的,由用户设定,分别存储在物联网终端设备和服务器中。

本发明的方法中,最终加密报文传输到信宿端以后,解密过程的操作顺序与加密的操作顺序相反,具体如图6所示,即先进行第二自定义加密算法的解密,再进行第一自定义加密算法的解密,最后再进行通用对称加密算法的解密,然后得到了包含了原始报文和校验值的信息。流程框图如图4所示,解密过程具体包括:

S5,将最终加密报文传输至目标的物联网终端设备或服务器;

S6,将第二自定义密钥与最终加密报文进行按字节循环异或操作,得到第一加密报文;

S7,在第一加密报文中取出第一自定义密钥,将第一自定义密钥与第一加密报文中剩下的部分进行按字节循环异或操作,得到通用加密报文;

S8,比对本次通信的第一自定义密钥与上次通信的第一自定义密钥是否相同,如果相同,就丢弃本次通信获得的最终加密报文并停止通信;如果不同,则继续进行S9;

S9,根据S1选定的通用对称加密算法的排列组合方式对通用加密报文进行解密,获得输入报文。

第一自定义加密算法、第二自定义加密算法的加密和解密过程使用了按字节循环异或的操作,这是利用了异或操作本身隐藏的规律,即输入信息与同一个变量连续进行两次异或操作,得出的结果仍然是原来的输入信息。

S8中的丢弃选择,其目的在于避免系统受到重放攻击。由随机变量生成的第一自定义密钥也具有随机性,物联网终端设备或者服务器收到最终加密报文后,会比对本次通信与上次的第一自定义密钥是否相同,如果相同,就丢弃本次通信的报文,这就有效地避免了重放攻击。

本发明还提供一种计算机可读存储介质,计算机可读存储介质包括计算机执行指令,当计算机执行指令在计算机上运行时,使得计算机执行上述物联网终端设备与服务器通信方法。

上述说明是针对本发明较佳可行实施例的详细说明,但实施例并非用以限定本发明的专利申请范围,凡本发明所提示的技术精神下所完成的同等变化或修饰变更,均应属于本发明所涵盖专利范围。

技术分类

06120116217875