一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

物联网设备加密秘钥获取方法、装置、设备及存储介质与流程

2022-09-02 19:32:34 来源:中国专利 TAG:


1.本发明涉及物联网技术领域,尤其涉及一种物联网设备加密秘钥获取方法、装置、设备及存储介质。


背景技术:

2.物联网(the internet of things,iot)安全工程师在对各种物联网设备进行漏洞挖掘或者逆向分析时,会使用工具抓取物联网设备的流量数据,通过对流量数据进行分析,确定物联网设备是否存在潜在漏洞。但是物联网产品的流量数据中的重要数据都是通过秘钥加密传输的,在没有秘钥的情况下,消息解密比较困难,也比较消耗时间,给漏洞挖掘或逆向分析带来了很大的困难。
3.上述内容仅用于辅助理解本发明的技术方案,并不代表承认上述内容是现有技术。


技术实现要素:

4.本发明的主要目的在于提供一种物联网设备加密秘钥获取方法、装置、设备及存储介质,旨在解决现有技术对物联网设备进行漏洞挖掘或逆向分析困难的技术问题。
5.为实现上述目的,本发明提供了一种物联网设备加密秘钥获取方法,所述方法包括以下步骤:
6.获取物联网设备的固件信息及通信流量数据,对所述通信流量数据进行解析,以获得待解密数据;
7.根据预设字符截取规则在所述固件信息中获取解密字符;
8.根据所述解密字符对所述待解密数据进行解密,以获得解密结果;
9.在所述解密结果为解密成功时,将所述解密字符作为所述物联网设备对应的加密秘钥。
10.可选的,所述根据所述解密字符对所述待解密数据进行解密,以获得解密结果的步骤之前,还包括:
11.将所述待解密数据转换为预设数据格式,以获得标准待解密数据;
12.相应的,所述根据所述解密字符对所述待解密数据进行解密,以获得解密结果的步骤,包括:
13.根据所述解密字符对所述标准待解密数据进行解密,以获得解密结果。
14.可选的,所述根据所述解密字符对所述待解密数据进行解密,以获得解密结果的步骤之后,还包括:
15.在所述解密结果为解密失败时,对所述预设字符截取规则进行调整,以获得新的预设字符截取规则,并返回根据预设字符截取规则在所述固件信息中获取解密字符的步骤。
16.可选的,所述根据预设字符截取规则在所述固件信息中获取解密字符的步骤,包
括:
17.根据所述预设字符截取规则确定数据起始位及数据截取长度;
18.根据所述数据起始位及数据截取长度在所述固件信息中获取解密字符;
19.相应的,所述对所述预设字符截取规则进行调整,以获得新的预设字符截取规则的步骤,包括:
20.对所述数据起始位进行加一处理,以获得修改后的数据起始位;
21.根据修改后的数据起始位及所述数据截取长度确定新的预设字符截取规则。
22.可选的,所述根据预设字符截取规则在所述固件信息中获取解密字符的步骤,包括:
23.根据预设字符截取规则确定字符截取长度及字符截取方式;
24.根据所述字符截取方式及字符截取长度在所述固件信息中截取字符串,以获得字符串集合;
25.根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符。
26.可选的,所述根据所述解密字符对所述待解密数据进行解密,以获得解密结果的步骤之后,还包括:
27.在所述解密结果为解密失败时,将所述字符串集合中的所述解密字符清除,并返回所述根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符的步骤。
28.可选的,所述获取物联网设备的固件信息及通信流量数据的步骤,包括:
29.获取物联网设备的设备信息;
30.根据所述设备信息及预设抓包工具抓取所述物联网设备向其他终端发送的通信流量数据;
31.根据所述设备信息确定固件读取方式,并根据所述固件读取方式读取所述物联网设备的固件信息。
32.可选的,所述根据所述设备信息及预设抓包工具抓取所述物联网设备向其他终端发送的通信流量数据的步骤,包括:
33.根据所述设备信息确定目标网络及目标端口;
34.通过预设抓包工具在所述目标网络抓取所述物联网设备通过所述目标端口向其他终端发送的通信流量数据。
35.可选的,所述通过预设抓包工具在所述目标网络抓取所述物联网设备通过所述目标端口向其他终端发送的通信流量数据的步骤之后,还包括:
36.对所述通信流量数据进行校验,以确定所述通信流量数据中是否存在已加密数据;
37.在所述通信流量数据中不存在已加密数据时,返回所述通过预设抓包工具在所述目标网络抓取所述物联网设备通过所述目标端口向其他终端发送的通信流量数据的步骤。
38.可选的,所述根据所述设备信息确定固件读取方式,并根据所述固件读取方式读取所述物联网设备的固件信息的步骤,包括:
39.根据所述设备信息确定所述物联网设备是否存在预设类型的接口;
40.在所述物联网设备存在预设类型的接口时,将所述物联网设备中所述预设类型的接口作为目标接口;
41.通过所述目标接口读取所述物联网设备的固件信息。
42.可选的,所述根据所述设备信息确定所述物联网设备是否存在预设类型的接口的步骤之后,还包括:
43.在所述物联网设备不存在预设类型的接口时,根据所述设备信息确定所述物联网设备的固件类型;
44.根据所述固件类型确定固件逆向读取工具,通过所述固件逆向读取工具读取所述物联网设备的固件信息。
45.可选的,所述将所述解密字符作为所述物联网设备对应的加密秘钥的步骤之后,还包括:
46.根据所述加密秘钥对所述物联网设备的发送的流量数据进行解密,以获得解密流量数据;
47.根据所述解密流量数据进行漏洞挖掘,以获得漏洞挖掘报告;
48.将所述漏洞挖掘报告存储至预设存储空间,并展示所述漏洞挖掘报告。
49.此外,为实现上述目的,本发明还提出一种物联网设备加密秘钥获取装置,所述物联网设备加密秘钥获取装置包括以下模块:
50.数据获取模块,用于获取物联网设备的固件信息及通信流量数据,对所述通信流量数据进行解析,以获得待解密数据;
51.字符截取模块,用于根据预设字符截取规则在所述固件信息中获取解密字符;
52.数据解密模块,用于根据所述解密字符对所述待解密数据进行解密,以获得解密结果;
53.秘钥确定模块,用于在所述解密结果为解密成功时,将所述解密字符作为所述物联网设备对应的加密秘钥。
54.可选的,所述数据解密模块,还用于将所述待解密数据转换为预设数据格式,以获得标准待解密数据;
55.所述数据解密模块,还用于根据所述解密字符对所述标准待解密数据进行解密,以获得解密结果。
56.可选的,所述秘钥确定模块,还用于在所述解密结果为解密失败时,对所述预设字符截取规则进行调整,以获得新的预设字符截取规则,并返回根据预设字符截取规则在所述固件信息中获取解密字符的步骤。
57.可选的,所述字符截取模块,还用于根据所述预设字符截取规则确定数据起始位及数据截取长度;根据所述数据起始位及数据截取长度在所述固件信息中获取解密字符;
58.所述秘钥确定模块,还用于对所述数据起始位进行加一处理,以获得修改后的数据起始位;根据修改后的数据起始位及所述数据截取长度确定新的预设字符截取规则。
59.可选的,所述字符截取模块,还用于根据预设字符截取规则确定字符截取长度及字符截取方式;根据所述字符截取方式及字符截取长度在所述固件信息中截取字符串,以获得字符串集合;根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符。
60.可选的,所述秘钥确定模块,还用于在所述解密结果为解密失败时,将所述字符串集合中的所述解密字符清除,并返回所述根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符的步骤。
61.此外,为实现上述目的,本发明还提出一种物联网设备加密秘钥获取设备,所述物联网设备加密秘钥获取设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的物联网设备加密秘钥获取程序,所述物联网设备加密秘钥获取程序被所述处理器执行时实现如上所述的物联网设备加密秘钥获取方法的步骤。
62.此外,为实现上述目的,本发明还提出一种计算机可读存储介质,所述计算机可读存储介质上存储有物联网设备加密秘钥获取程序,所述物联网设备加密秘钥获取程序执行时实现如上所述的物联网设备加密秘钥获取方法的步骤。
63.本发明通过获取物联网设备的固件信息及通信流量数据,对所述通信流量数据进行解析,以获得待解密数据;根据预设字符截取规则在所述固件信息中获取解密字符;根据所述解密字符对所述待解密数据进行解密,以获得解密结果;在所述解密结果为解密成功时,将所述解密字符作为所述物联网设备对应的加密秘钥。由于物联网设备的加密秘钥存储在固件信息中,通过预设字符截取规则在固件信息中获取解密字符,并根据解密字符对待解密数据进行解密,在解密成功时可以快速确定物联网设备对应的加密秘钥,便于对物联网设备进行漏洞挖掘或逆向分析。
附图说明
64.图1是本发明实施例方案涉及的硬件运行环境的电子设备的结构示意图;
65.图2为本发明物联网设备加密秘钥获取方法第一实施例的流程示意图;
66.图3为本发明物联网设备加密秘钥获取方法第二实施例的流程示意图;
67.图4为本发明物联网设备加密秘钥获取方法第三实施例的流程示意图;
68.图5为本发明物联网设备加密秘钥获取方法第四实施例的流程示意图;
69.图6为本发明物联网设备加密秘钥获取装置第一实施例的结构框图。
70.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
71.应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
72.参照图1,图1为本发明实施例方案涉及的硬件运行环境的物联网设备加密秘钥获取设备结构示意图。
73.如图1所示,该电子设备可以包括:处理器1001,例如中央处理器(central processing unit,cpu),通信总线1002、用户接口1003,网络接口1004,存储器1005。其中,通信总线1002用于实现这些组件之间的连接通信。用户接口1003可以包括显示屏(display)、输入单元比如键盘(keyboard),可选用户接口1003还可以包括标准的有线接口、无线接口。网络接口1004可选的可以包括标准的有线接口、无线接口(如无线保真(wireless-fidelity,wi-fi)接口)。存储器1005可以是高速的随机存取存储器(random access memory,ram)存储器,也可以是稳定的非易失性存储器(non-volatile memory,nvm),例如磁盘存储器。存储器1005可选的还可以是独立于前述处理器1001的存储装置。
74.本领域技术人员可以理解,图1中示出的结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
75.如图1所示,作为一种存储介质的存储器1005中可以包括操作系统、网络通信模
块、用户接口模块以及物联网设备加密秘钥获取程序。
76.在图1所示的电子设备中,网络接口1004主要用于与网络服务器进行数据通信;用户接口1003主要用于与用户进行数据交互;本发明电子设备中的处理器1001、存储器1005可以设置在物联网设备加密秘钥获取设备中,所述电子设备通过处理器1001调用存储器1005中存储的物联网设备加密秘钥获取程序,并执行本发明实施例提供的物联网设备加密秘钥获取方法。
77.本发明实施例提供了一种物联网设备加密秘钥获取方法,参照图2,图2为本发明一种物联网设备加密秘钥获取方法第一实施例的流程示意图。
78.本实施例中,所述物联网设备加密秘钥获取方法包括以下步骤:
79.步骤s10:获取物联网设备的固件信息及通信流量数据,对所述通信流量数据进行解析,以获得待解密数据。
80.需要说明的是,本实施例的执行主体可以是所述物联网设备加密秘钥获取设备,所述物联网设备加密秘钥获取设备可以是个人电脑、服务器等电子设备,还可以为其他可实现相同或相似功能的设备,本实施例对此不加以限制,在本实施例及下述各实施例中,以物联网设备加密秘钥获取设备为例对本发明物联网设备加密秘钥获取方法进行说明。
81.需要说明的是,固件(firmware)是写入可擦写可编程只读存储器(eprom)或电可擦写可编程只读存储器(eeprom)中的程序,可以认为固件是设备内部保存的设备的驱动程序。固件信息可以是物联网设备中存储的固件数据。通信流量是指网中两个数据交换中心之间彼此互相往来的业务通信的数量,通信流量数据可以是至少一条物联网设备向其他终端发送的业务通信的数据。待解密数据可以是通信流量数据中已经被物联网设备根据加密秘钥进行过加密的数据。大部分情况下,物联网设备在生产出厂时,加密秘钥会存储在物联网设备的固件信息中。
82.步骤s20:根据预设字符截取规则在所述固件信息中获取解密字符。
83.需要说明的是,预设字符截取规则可以根据物联网设备的设备信息进行设置或调整,解密字符可以是在固件信息中根据预设字符截取规则在固件信息中截取的字符串。
84.步骤s30:根据所述解密字符对所述待解密数据进行解密,以获得解密结果。
85.需要说明的是,解密结果包括解密成功及解密失败,可以通过解密验证工具根据解密字符对待解密数据进行解密。解密验证工具可以根据实际需要进行选择。
86.在实际使用中,解密验证工具可以使用python、node或java等开发语言中提供的crypto模块或其他类似的解密验证工具,本实施例对此不加以限制。
87.进一步地,为了兼容各种解密验证工具,本实施例步骤s30之前,还可以包括:
88.将所述待解密数据转换为预设数据格式,以获得标准待解密数据。
89.相应的,本实施例中步骤s30,可以具体包括:
90.根据所述解密字符对所述标准待解密数据进行解密,以获得解密结果。
91.可以理解的是,各个解密验证工具可接收的数据格式也并不相同,根据使用的解密验证工具的不同,可以根据使用的解密验证工具,预先设置数据格式,将待解密数据转换为预设数据格式,再通过解密验证工具根据解密字符对标准解密数据进行解密,可以兼容各种不同的解密验证工具。
92.例如:若使用python开发语言中的crypto模块作为解密验证工具,可以将python
中的crypto模块声明需要的数据格式设定为预设数据格式,将待解密数据先转化为16进制的数据,再对转化后的数据进行base64编码,即可将待解密数据转换为预设数据格式,以获得标准待解密数据。
93.步骤s40:在所述解密结果为解密成功时,将所述解密字符作为所述物联网设备对应的加密秘钥。
94.可以理解的是,若解密结果为解密成功,则可以说明解密字符是物联网设备对数据进行加密使用的加密秘钥,因此,可以直接将解密字符作为物联网设备对应的加密秘钥。
95.进一步地,为了便于记录挖掘获得的漏洞,本实施例步骤s40之后,还可以包括:
96.根据所述加密秘钥对所述物联网设备的发送的流量数据进行解密,以获得解密流量数据;根据所述解密流量数据进行漏洞挖掘,以获得漏洞挖掘报告;将所述漏洞挖掘报告存储至预设存储空间,并展示所述漏洞挖掘报告。
97.需要说明的是,流量数据可以是物联网设备在一定时间段中向其他终端发送的所有通信业务的数据,通过确定的加密秘钥对流量数据中的已加密数据进行解密,即可获得解密后的解密流量数据,再对解密流量数据进行漏洞挖掘,则可以挖掘出物联网设备存在的潜在漏洞,此时,可以生成相应的漏洞挖掘报告,可以将漏洞挖掘报告存储至预设存储空间中便于后续追溯查询,并展示漏洞挖掘报告,以便于物联网安全工程师针对潜在漏洞进行相应的处理。
98.本实施例通过获取物联网设备的固件信息及通信流量数据,对所述通信流量数据进行解析,以获得待解密数据;根据预设字符截取规则在所述固件信息中获取解密字符;根据所述解密字符对所述待解密数据进行解密,以获得解密结果;在所述解密结果为解密成功时,将所述解密字符作为所述物联网设备对应的加密秘钥。由于物联网设备的加密秘钥存储在固件信息中,通过预设字符截取规则在固件信息中获取解密字符,并根据解密字符对待解密数据进行解密,在解密成功时可以快速确定物联网设备对应的加密秘钥,便于对物联网设备进行漏洞挖掘或逆向分析。
99.参考图3,图3为本发明一种物联网设备加密秘钥获取方法第二实施例的流程示意图。
100.基于上述第一实施例,本实施例物联网设备加密秘钥获取方法的所述步骤s10,可以包括:
101.步骤s101:获取物联网设备的设备信息。
102.需要说明的是,设备信息可以包括设备型号、主板型号、芯片型号、通信端口、设备连接网络等信息。
103.步骤s102:根据所述设备信息及预设抓包工具抓取所述物联网设备向其他终端发送的通信流量数据。
104.需要说明的是,预设抓包工具可以是常用的网络抓包工具,例如:wireshark、sniffer、fiddler等网络抓包工具。
105.进一步地,为了减少不必要的性能开销,减少处理时间,本实施例步骤s102,可以包括:
106.根据所述设备信息确定目标网络及目标端口;通过预设抓包工具在所述目标网络抓取所述物联网设备通过所述目标端口向其他终端发送的通信流量数据。
107.需要说明的是,通过网络抓包工具进行流量抓取时,若不指定网络,则难以进行后续的流量抓取工作,而若不指定端口,则网络抓包工具会抓取该网络下所有端口的流量数据,会抓取到与物联网设备并不相关的其他数据,处理其他数据会产生不必要的性能开销,增加处理时间。因此,可以通过设备信息确定物联网设备当前连接的网络作为目标网络,将物联网设备通信使用的通信端口作为目标端口,可以去除不相关的其他数据,避免不必要的性能开销,减少处理时间。
108.进一步地,为了保证获取到的通信流量数据可使用,本实施例步骤s102之后,还可以包括:
109.对所述通信流量数据进行校验,以确定所述通信流量数据中是否存在已加密数据;在所述通信流量数据中不存在已加密数据时,返回所述通过预设抓包工具在所述目标网络抓取所述物联网设备通过所述目标端口向其他终端发送的通信流量数据的步骤。
110.可以理解的是,物联网设备在于其他终端进行通信时,可能会存在心跳检测等状态检测产生的流量数据,此种数据并不包含真实的业务数据,若获取的通信流量数据为此种流量数据,则可能并不包含根据加密秘钥进行加密的已加密数据,会影响后续的步骤进行,导致无法获取到真正的加密秘钥,因此,在获取到通信流量数据之后,可以对通信流量数据进行校验,检查获取到的通信流量数据中是否存在已加密数据,在通信流量数据中不存在已加密数据时,返回通过预设抓包工具在所述目标网络抓取所述物联网设备通过所述目标端口向其他终端发送的通信流量数据的步骤重新获取通信流量数据。
111.步骤s103:根据所述设备信息确定固件读取方式,并根据所述固件读取方式读取所述物联网设备的固件信息。
112.可以理解的是,针对不同型号的物联网设备,因其硬件设置均不相同,固件读取方式也并不相同,因此,可以先通过设备信息确定物联网设备的型号,确定主板、芯片等硬件信息,根据硬件信息确定可使用的固件读取方式,再通过固件读取方式读取物联网设备的固件信息。
113.进一步地,为了说明如何确定固件读取方式,本实施例步骤s103,可以包括:
114.根据所述设备信息确定所述物联网设备是否存在预设类型的接口;在所述物联网设备存在预设类型的接口时,将所述物联网设备中所述预设类型的接口作为目标接口;通过所述目标接口读取所述物联网设备的固件信息。
115.需要说明的是,预设类型的接口可以是jtag(joint test action group)、swd(serial wire debug)等类型的接口或串行接口(也称为串口),此预设类型的接口可以是为了便于进行调试设置的调试专用接口,该调试专用接口可以用来读取物联网设备的固件信息,若物联网设备存在预设类型的接口,则说明物联网设备存在固件读取专用接口,因此,在物联网设备存在预设类型的接口时,可以直接将预设类型的接口作为目标接口,通过目标接口读取物联网设备的固件信息。
116.进一步地,为了在物联网设备不存在预设类型的接口时依旧可读取物联网设备的固件信息,本实施例根据所述设备信息确定所述物联网设备是否存在预设类型的接口的步骤之后,还可以包括:
117.在所述物联网设备不存在预设类型的接口时,根据所述设备信息确定所述物联网设备的固件类型;根据所述固件类型确定固件逆向读取工具,通过所述固件逆向读取工具
读取所述物联网设备的固件信息。
118.需要说明的是,固件类型可以是物联网设备存储固件所使用的芯片的类型。
119.可以理解的是,针对不同固件类型的物联网设备,所需使用的固件逆向读取工具也不相同,例如:针对使用flash芯片的物联网设备,固件逆向读取工具可以使用flash芯片烧录器或编码器。
120.步骤s104:对所述通信流量数据进行解析,以获得待解密数据。
121.可以理解的是,通信流量数据中可以包含已加密过的加密数据,通过对通信流量数据进行解析,可以提取已加密过的加密数据作为待解密数据。
122.例如:通常加密数据均保存在通信流量数据中的data字段中,因此,可以对通信流量数据进行解密,提取data字段对应的数据作为待解密数据。
123.本实施例通过获取物联网设备的设备信息;根据所述设备信息及预设抓包工具抓取所述物联网设备向其他终端发送的通信流量数据;根据所述设备信息确定固件读取方式,并根据所述固件读取方式读取所述物联网设备的固件信息;对所述通信流量数据进行解析,以获得待解密数据。在获取通信流量数据时根据设备信息确定目标网络及目标端口,排除了不相关的其他流量数据,且在读取固件信息时根据设备信息选择可用的固件读取方式,保证可以读取到物联网设备的固件信息,提高了可靠性。
124.参考图4,图4为本发明一种物联网设备加密秘钥获取方法第三实施例的流程示意图。
125.基于上述第一实施例,本实施例物联网设备加密秘钥获取方法在所述步骤s30之后,还包括:
126.步骤s50:在所述解密结果为解密失败时,对所述预设字符截取规则进行调整,以获得新的预设字符截取规则,并返回根据预设字符截取规则在所述固件信息中获取解密字符的步骤。
127.需要说明的是,若解密结果为解密失败,则说明获取的解密字符并非物联网设备所使用的加密秘钥,因此,可以对预设字符截取规则进行调整,获得新的预设字符截取规则,返回根据预设字符截取规则在所述固件信息中获取解密字符的步骤根据新的预设字符截取规则获取新的解密字符。
128.进一步地,为了合理获取解密字符,本实施例步骤s20,可以包括:
129.根据所述预设字符截取规则确定数据起始位及数据截取长度;根据所述数据起始位及数据截取长度在所述固件信息中获取解密字符。
130.需要说明的是,固件信息在读取完毕之后,一般是16进制的数据,预设字符截取规则可以包括数据起始位及数据截取长度。解密字符可以是截取的字符串。数据起始位可以表明从固件信息的第几位数据开始进行数据截取,数据截取长度可以表示需要截取的数据长度,字符截取长度可以根据实际使用中常用的加密秘钥长度进行设置,例如:若物联网设备使用的是mqtt协议,而mqtt协议中加密秘钥一般为16位字符串,因此,可以设置数据截取长度为16。
131.在实际使用中,可以根据数据起始位在固件信息中确定数据截取起点,从截取起点开始截取数据截取长度的字符串作为解密字符。
132.例如:针对16进制的固件信息,假设数据起始位为0,数据截取长度为16,则可以从
固件信息中截取第0位至第15位共16个字节的字符串作为解密字符。
133.相应的,所述对所述预设字符截取规则进行调整,以获得新的预设字符截取规则的步骤,包括:
134.对所述数据起始位进行加一处理,以获得修改后的数据起始位;根据修改后的数据起始位及所述数据截取长度确定新的预设字符截取规则。
135.可以理解的是,若根据预设字符截取规则截取的解密字符对待解密数据解密失败,则说明该解密字符并非物联网设备使用的加密秘钥,因此,可以对预设字符截取规则进行调整,获得新的预设字符截取规则,并根据新的预设字符截取规则重新在固件信息中截取解密字符。
136.在实际使用中,对预设字符截取规则进行调整可以是将预设字符截取规则中中包含的数据起始位进行加一处理,获得修改后的数据起始位,再根据修改后的数据起始位及数据截取长度确定新的预设字符截取规则,从而根据新的预设字符截取规则在固件信息中截取新的解密字符。由此,每失败一次,则对数据起始位进行加一处理,则可以将固件信息中所有长度为数据截取长度的字符串都进行解密尝试,直到获取到加密秘钥或所有字符串均尝试之后判定获取加密秘钥失败。
137.本实施例通过在所述解密结果为解密失败时,对所述预设字符截取规则进行调整,以获得新的预设字符截取规则,并返回根据预设字符截取规则在所述固件信息中获取解密字符的步骤重新获取解密字符,再根据重新获取的解密字符再次尝试对待解密数据进行解密,直到获取到加密秘钥或在所有解密字符均尝试之后判定获取加密秘钥失败,可以保证全面的对可能存在于固件信息中的加密秘钥进行尝试,提高了获取到加密秘钥的可能性。
138.参考图5,图5为本发明一种物联网设备加密秘钥获取方法第四实施例的流程示意图。
139.基于上述第一实施例,本实施例物联网设备加密秘钥获取方法在所述步骤s20,可以包括:
140.步骤s201:根据预设字符截取规则确定字符截取长度及字符截取方式。
141.需要说明的是,字符截取长度可以表示需要截取的字符长度,字符截取长度可以根据实际使用中常用的加密秘钥长度进行设置,例如:若物联网设备使用的是mqtt协议,而mqtt协议中加密秘钥一般为16位字符串,可以设置数据截取长度为16。通过字符截取方式可以获取固件信息中所有字符截取长度的字符,字符截取方式可以根据实际需要进行设置,例如:从固件信息的数据开头往结尾顺序获取所有字符截取长度的字符、从固件信息结尾往开头顺序获取所有字符截取长度的字符或从固件信息中随机截取所有字符截取长度的字符,具体的字符截取方式本实施例不加以限制。
142.步骤s202:根据所述字符截取方式及字符截取长度在所述固件信息中截取字符串,以获得字符串集合。
143.可以理解的是,根据字符截取方式可以截取固件信息中所有字符截取长度的字符串,可以获得多个字符串,根据获得的多个字符串即可构建字符串集合,字符串集合可以是有序集合,例如:根据获取字符串的时间顺序进行排序构建的有序集合或根据字符串的字符顺序规则进行排序的有序集合,也可以是无序集合。
144.步骤s203:根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符。
145.需要说明的是,预设字符选择规则是用于设定如何从字符串集合中选取字符串的规则,预设字符串选择规则可以根据实际需要进行设置,例如:预设字符串选择规则设置为从字符串集合中根据集合下标顺序选取字符串或随机从字符串集合中选取字符串。
146.进一步地,为了便于获取解密秘钥,本实施例步骤s40之后,还可以包括:
147.步骤s50':在所述解密结果为解密失败时,将所述字符串集合中的所述解密字符清除,并返回所述根据预设字符选择规则在所述字符串集合中选取字符作为解密字符的步骤。
148.需要说明的是,在解密结果为解密失败时,可以说明该解密字符并非物联网设备所使用的加密秘钥,因此,需要更换字符进行尝试,而若是未将该解密字符从字符串集合中移除,直接返回根据预设字符选择规则在所述字符串集合中选取字符作为解密字符的步骤重新选择解密字符,则可能会令该解密字符再次被选中为解密字符进行解密尝试,而该解密字符已经被判定为并非物联网设备的加密秘钥,再次进行解密尝试造成不必要的性能浪费,且会浪费解密时间,而若是将解密字符从字符串集合中移除,再返回根据预设字符选择规则在所述字符串集合中选取字符作为解密字符的步骤重新选择解密字符,则该解密字符不会再次被选中,可以避免该解密字符再次被选中为解密字符,可以避免不必要的性能浪费,避免浪费解密时间。
149.本实施例通过根据预设字符截取规则确定字符截取长度及字符截取方式;根据所述字符截取方式及字符截取长度在所述固件信息中截取字符串,以获得字符串集合;根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符。可以快速获取固件信息中所有字符截取长度的字符串,并构建集合,避免了每次尝试解密失败之后仅需从字符串集合中重新获取解密字符,而不需要再次从固件信息中截取字符串,避免了在循环过程中进行大量功能操作,提高了运行效率。
150.此外,本发明实施例还提出一种存储介质,所述存储介质上存储有物联网设备加密秘钥获取程序,所述物联网设备加密秘钥获取程序被处理器执行时实现如上文所述的物联网设备加密秘钥获取方法的步骤。
151.参照图6,图6为本发明物联网设备加密秘钥获取装置第一实施例的结构框图。
152.如图6所示,本发明实施例提出的物联网设备加密秘钥获取装置包括:
153.数据获取模块601,用于获取物联网设备的固件信息及通信流量数据,对所述通信流量数据进行解析,以获得待解密数据;
154.字符截取模块602,用于根据预设字符截取规则在所述固件信息中获取解密字符;
155.数据解密模块603,用于根据所述解密字符对所述待解密数据进行解密,以获得解密结果;
156.秘钥确定模块604,用于在所述解密结果为解密成功时,将所述解密字符作为所述物联网设备对应的加密秘钥。
157.本实施例通过获取物联网设备的固件信息及通信流量数据,对所述通信流量数据进行解析,以获得待解密数据;根据预设字符截取规则在所述固件信息中获取解密字符;根据所述解密字符对所述待解密数据进行解密,以获得解密结果;在所述解密结果为解密成
功时,将所述解密字符作为所述物联网设备对应的加密秘钥。由于物联网设备的加密秘钥存储在固件信息中,通过预设字符截取规则在固件信息中获取解密字符,并根据解密字符对待解密数据进行解密,在解密成功时可以快速确定物联网设备对应的加密秘钥,便于对物联网设备进行漏洞挖掘或逆向分析。
158.进一步地,所述数据解密模块603,还用于将所述待解密数据转换为预设数据格式,以获得标准待解密数据;
159.所述数据解密模块603,还用于根据所述解密字符对所述标准待解密数据进行解密,以获得解密结果。
160.进一步地,所述秘钥确定模块604,还用于在所述解密结果为解密失败时,对所述预设字符截取规则进行调整,以获得新的预设字符截取规则,并返回根据预设字符截取规则在所述固件信息中获取解密字符的步骤。
161.进一步地,所述字符截取模块602,还用于根据所述预设字符截取规则确定数据起始位及数据截取长度;根据所述数据起始位及数据截取长度在所述固件信息中获取解密字符;
162.所述秘钥确定模块604,还用于对所述数据起始位进行加一处理,以获得修改后的数据起始位;根据修改后的数据起始位及所述数据截取长度确定新的预设字符截取规则。
163.进一步地,所述字符截取模块602,还用于根据预设字符截取规则确定字符截取长度及字符截取方式;根据所述字符截取方式及字符截取长度在所述固件信息中截取字符串,以获得字符串集合;根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符。
164.进一步地,所述秘钥确定模块604,还用于在所述解密结果为解密失败时,将所述字符串集合中的所述解密字符清除,并返回所述根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符的步骤。
165.进一步地,所述数据获取模块601,还用于获取物联网设备的设备信息;根据所述设备信息及预设抓包工具抓取所述物联网设备向其他终端发送的通信流量数据;根据所述设备信息确定固件读取方式,并根据所述固件读取方式读取所述物联网设备的固件信息。
166.进一步地,所述数据获取模块601,还用于根据所述设备信息确定目标网络及目标端口;通过预设抓包工具在所述目标网络抓取所述物联网设备通过所述目标端口向其他终端发送的通信流量数据。
167.进一步地,所述数据获取模块601,还用于对所述通信流量数据进行校验,以确定所述通信流量数据中是否存在已加密数据;在所述通信流量数据中不存在已加密数据时,返回所述通过预设抓包工具在所述目标网络抓取所述物联网设备通过所述目标端口向其他终端发送的通信流量数据的步骤。
168.进一步地,所述数据获取模块601,还用于根据所述设备信息确定所述物联网设备是否存在预设类型的接口;在所述物联网设备存在预设类型的接口时,将所述物联网设备中所述预设类型的接口作为目标接口;通过所述目标接口读取所述物联网设备的固件信息。
169.进一步地,所述数据获取模块601,还用于在所述物联网设备不存在预设类型的接口时,根据所述设备信息确定所述物联网设备的固件类型;根据所述固件类型确定固件逆
向读取工具,通过所述固件逆向读取工具读取所述物联网设备的固件信息。
170.进一步地,所述秘钥确定模块604,还用于根据所述加密秘钥对所述物联网设备的发送的流量数据进行解密,以获得解密流量数据;根据所述解密流量数据进行漏洞挖掘,以获得漏洞挖掘报告;将所述漏洞挖掘报告存储至预设存储空间,并展示所述漏洞挖掘报告。
171.应当理解的是,以上仅为举例说明,对本发明的技术方案并不构成任何限定,在具体应用中,本领域的技术人员可以根据需要进行设置,本发明对此不做限制。
172.需要说明的是,以上所描述的工作流程仅仅是示意性的,并不对本发明的保护范围构成限定,在实际应用中,本领域的技术人员可以根据实际的需要选择其中的部分或者全部来实现本实施例方案的目的,此处不做限制。
173.另外,未在本实施例中详尽描述的技术细节,可参见本发明任意实施例所提供的物联网设备加密秘钥获取方法,此处不再赘述。
174.此外,需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者系统不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者系统所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括该要素的过程、方法、物品或者系统中还存在另外的相同要素。
175.上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
176.通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如只读存储器(read only memory,rom)/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
177.以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
178.本发明公开了a1、一种物联网设备加密秘钥获取方法,所述物联网设备数据解密方法包括以下步骤:
179.获取物联网设备的固件信息及通信流量数据,对所述通信流量数据进行解析,以获得待解密数据;
180.根据预设字符截取规则在所述固件信息中获取解密字符;
181.根据所述解密字符对所述待解密数据进行解密,以获得解密结果;
182.在所述解密结果为解密成功时,将所述解密字符作为所述物联网设备对应的加密秘钥。
183.a2、如a1所述的物联网设备加密秘钥获取方法,所述根据所述解密字符对所述待解密数据进行解密,以获得解密结果的步骤之前,还包括:
184.将所述待解密数据转换为预设数据格式,以获得标准待解密数据;
185.相应的,所述根据所述解密字符对所述待解密数据进行解密,以获得解密结果的
步骤,包括:
186.根据所述解密字符对所述标准待解密数据进行解密,以获得解密结果。
187.a3、如a1所述的物联网设备加密秘钥获取方法,所述根据所述解密字符对所述待解密数据进行解密,以获得解密结果的步骤之后,还包括:
188.在所述解密结果为解密失败时,对所述预设字符截取规则进行调整,以获得新的预设字符截取规则,并返回根据预设字符截取规则在所述固件信息中获取解密字符的步骤。
189.a4、如a3所述的物联网设备加密秘钥获取方法,所述根据预设字符截取规则在所述固件信息中获取解密字符的步骤,包括:
190.根据所述预设字符截取规则确定数据起始位及数据截取长度;
191.根据所述数据起始位及数据截取长度在所述固件信息中获取解密字符;
192.相应的,所述对所述预设字符截取规则进行调整,以获得新的预设字符截取规则的步骤,包括:
193.对所述数据起始位进行加一处理,以获得修改后的数据起始位;
194.根据修改后的数据起始位及所述数据截取长度确定新的预设字符截取规则。
195.a5、如a1所述的物联网设备加密秘钥获取方法,所述根据预设字符截取规则在所述固件信息中获取解密字符的步骤,包括:
196.根据预设字符截取规则确定字符截取长度及字符截取方式;
197.根据所述字符截取方式及字符截取长度在所述固件信息中截取字符串,以获得字符串集合;
198.根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符。
199.a6、如a5所述的物联网设备加密秘钥获取方法,所述根据所述解密字符对所述待解密数据进行解密,以获得解密结果的步骤之后,还包括:
200.在所述解密结果为解密失败时,将所述字符串集合中的所述解密字符清除,并返回所述根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符的步骤。
201.a7、如a1所述的物联网设备加密秘钥获取方法,所述获取物联网设备的固件信息及通信流量数据的步骤,包括:
202.获取物联网设备的设备信息;
203.根据所述设备信息及预设抓包工具抓取所述物联网设备向其他终端发送的通信流量数据;
204.根据所述设备信息确定固件读取方式,并根据所述固件读取方式读取所述物联网设备的固件信息。
205.a8、如a7所述的物联网设备加密秘钥获取方法,所述根据所述设备信息及预设抓包工具抓取所述物联网设备向其他终端发送的通信流量数据的步骤,包括:
206.根据所述设备信息确定目标网络及目标端口;
207.通过预设抓包工具在所述目标网络抓取所述物联网设备通过所述目标端口向其他终端发送的通信流量数据。
208.a9、如a8所述的物联网设备加密秘钥获取方法,所述通过预设抓包工具在所述目标网络抓取所述物联网设备通过所述目标端口向其他终端发送的通信流量数据的步骤之
后,还包括:
209.对所述通信流量数据进行校验,以确定所述通信流量数据中是否存在已加密数据;
210.在所述通信流量数据中不存在已加密数据时,返回所述通过预设抓包工具在所述目标网络抓取所述物联网设备通过所述目标端口向其他终端发送的通信流量数据的步骤。
211.a10、如a7所述的物联网设备加密秘钥获取方法,所述根据所述设备信息确定固件读取方式,并根据所述固件读取方式读取所述物联网设备的固件信息的步骤,包括:
212.根据所述设备信息确定所述物联网设备是否存在预设类型的接口;
213.在所述物联网设备存在预设类型的接口时,将所述物联网设备中所述预设类型的接口作为目标接口;
214.通过所述目标接口读取所述物联网设备的固件信息。
215.a11、如a7所述的物联网设备加密秘钥获取方法,所述根据所述设备信息确定所述物联网设备是否存在预设类型的接口的步骤之后,还包括:
216.在所述物联网设备不存在预设类型的接口时,根据所述设备信息确定所述物联网设备的固件类型;
217.根据所述固件类型确定固件逆向读取工具,通过所述固件逆向读取工具读取所述物联网设备的固件信息。
218.a12、如a1-a11任一项所述的物联网设备加密秘钥获取方法,所述将所述解密字符作为所述物联网设备对应的加密秘钥的步骤之后,还包括:
219.根据所述加密秘钥对所述物联网设备的发送的流量数据进行解密,以获得解密流量数据;
220.根据所述解密流量数据进行漏洞挖掘,以获得漏洞挖掘报告;
221.将所述漏洞挖掘报告存储至预设存储空间,并展示所述漏洞挖掘报告。
222.本发明公开了b13、一种物联网设备加密秘钥获取装置,所述物联网设备加密秘钥获取装置包括以下模块:
223.数据获取模块,用于获取物联网设备的固件信息及通信流量数据,对所述通信流量数据进行解析,以获得待解密数据;
224.字符截取模块,用于根据预设字符截取规则在所述固件信息中获取解密字符;
225.数据解密模块,用于根据所述解密字符对所述待解密数据进行解密,以获得解密结果;
226.秘钥确定模块,用于在所述解密结果为解密成功时,将所述解密字符作为所述物联网设备对应的加密秘钥。
227.b14、如b13所述的物联网设备加密秘钥获取装置,所述数据解密模块,还用于将所述待解密数据转换为预设数据格式,以获得标准待解密数据;
228.所述数据解密模块,还用于根据所述解密字符对所述标准待解密数据进行解密,以获得解密结果。
229.b15、如b13所述的物联网设备加密秘钥获取装置,所述秘钥确定模块,还用于在所述解密结果为解密失败时,对所述预设字符截取规则进行调整,以获得新的预设字符截取规则,并返回根据预设字符截取规则在所述固件信息中获取解密字符的步骤。
230.b16、如b15所述的物联网设备加密秘钥获取装置,所述字符截取模块,还用于根据所述预设字符截取规则确定数据起始位及数据截取长度;根据所述数据起始位及数据截取长度在所述固件信息中获取解密字符;
231.所述秘钥确定模块,还用于对所述数据起始位进行加一处理,以获得修改后的数据起始位;根据修改后的数据起始位及所述数据截取长度确定新的预设字符截取规则。
232.b17、如b13所述的物联网设备加密秘钥获取装置,所述字符截取模块,还用于根据预设字符截取规则确定字符截取长度及字符截取方式;根据所述字符截取方式及字符截取长度在所述固件信息中截取字符串,以获得字符串集合;根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符。
233.b18、如b17所述的物联网设备加密秘钥获取装置,所述秘钥确定模块,还用于在所述解密结果为解密失败时,将所述字符串集合中的所述解密字符清除,并返回所述根据预设字符选择规则在所述字符串集合中选取字符串作为解密字符的步骤。
234.本发明公开了c19、一种物联网设备加密秘钥获取设备,所述物联网设备加密秘钥获取设备包括:处理器、存储器及存储在所述存储器上并可在所述处理器上运行的物联网设备加密秘钥获取程序,所述物联网设备加密秘钥获取程序被所述处理器执行时实现如上所述的物联网设备加密秘钥获取方法的步骤。
235.本发明公开了d20、一种计算机可读存储介质,所述计算机可读存储介质上存储有物联网设备加密秘钥获取程序,所述物联网设备加密秘钥获取程序执行时实现如上所述的物联网设备加密秘钥获取方法的步骤。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献