CN114827309B - 一种设备指纹生成方法、装置、设备及可读存储介质 - Google Patents
一种设备指纹生成方法、装置、设备及可读存储介质 Download PDFInfo
- Publication number
- CN114827309B CN114827309B CN202210436986.1A CN202210436986A CN114827309B CN 114827309 B CN114827309 B CN 114827309B CN 202210436986 A CN202210436986 A CN 202210436986A CN 114827309 B CN114827309 B CN 114827309B
- Authority
- CN
- China
- Prior art keywords
- data
- fingerprint
- main body
- header
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 45
- 238000003860 storage Methods 0.000 title claims abstract description 22
- 230000004044 response Effects 0.000 claims abstract description 94
- 238000004458 analytical method Methods 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 9
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 238000004422 calculation algorithm Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 7
- 238000000605 extraction Methods 0.000 description 7
- 235000019580 granularity Nutrition 0.000 description 5
- 230000006978 adaptation Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000007781 pre-processing Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004140 cleaning Methods 0.000 description 1
- 238000005206 flow analysis Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 230000002085 persistent effect Effects 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 230000000750 progressive effect Effects 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Collating Specific Patterns (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种设备指纹生成方法、装置、设备及可读存储介质,应用于物联网技术领域,该方法包括:获取设备的网络响应包数据;对网络响应包数据中的头部数据进行解析,获取头部指纹特征;对网络响应包数据中的主体数据进行解析,获取主体指纹特征;根据头部指纹特征和主体指纹特征,生成设备的指纹数据;本发明利用解析设备的网络响应包数据得到的头部指纹特征和主体指纹特征,生成设备的指纹数据,实现设备指纹的自动生成;能够充分利用设备的响应包内容的特征,对响应包内容进行细粒度划分,每一粒度的内容能够提取出相应的特征,保证设备指纹的内容全面性,提高了设备指纹的准确性,从而能够满足大量的物联网设备分类使用。
Description
技术领域
本发明涉及物联网技术领域,特别涉及一种设备指纹生成方法、装置、设备及可读存储介质。
背景技术
人的指纹是独特的,是千变万化的,是可以作为一个人的身份标识;对于物联网设备而言,设备指纹是指可用于唯一识别出设备或是独特的设备特征。设备指纹包括一些固有的、难以篡改的唯一设备标识符;例如,设备的硬件ID、手机在生产过程中被赋予的唯一的IMEI(International Mobile Equipment Identity,国际移动设备标识)编号来专门标识该台设备,类似于计算机的网卡,在生产期间被赋予唯一的MAC(Media Access Control,介质访问控制)地址;这些设备唯一的标识符可以将其视为设备指纹。同时,设备的特征集合也可以用作设备指纹,如将设备的名称、型号、形状、颜色和功能等特征结合在一起作为设备的标识。
现有技术中,设备指纹分析方法主要是被动的包检测技术,包检测技术对设备在网络中传输的数据包进行抓包检查,分析包头和所负载的数据,从而得出该数据包的一些业务特征和访问情况,实现设备指纹的提取。设备指纹虽然是设备的一个通用属性,但在主动识别和被动识别场景下,分析提取设备指纹的方法却不同。当前设备指纹的主动分析提取方法要么是人工使用流量分析工具分析提取设备指纹,使得结果不够严谨,且费时费力;要么无法充分的利用数据包的特征,使得生成的设备指纹的内容不够全面,导致其生成的设备指纹可识别设备种类和数量都远远不够,无法满足大量的物联网设备分类使用。
因此,如何能够充分利用数据包的特征,实现设备指纹的自动生成,保证设备指纹的内容全面性,从而满足大量的物联网设备分类使用,是现今急需解决的问题。
发明内容
本发明的目的是提供一种设备指纹生成方法、装置、设备及可读存储介质,以充分利用设备响应包内容的特征,实现设备指纹的自动生成,保证设备指纹的内容全面性。
为解决上述技术问题,本发明提供一种设备指纹生成方法,包括:
获取设备的网络响应包数据;
对所述网络响应包数据中的头部数据进行解析,获取头部指纹特征;
对所述网络响应包数据中的主体数据进行解析,获取主体指纹特征;
根据所述头部指纹特征和所述主体指纹特征,生成所述设备的指纹数据。
可选的,所述头部指纹特征包括网络协议版本信息,所述对所述网络响应包数据中的头部数据进行解析,获取头部指纹特征,包括:
提取所述头部数据中的原始网络协议版本号;
根据所述原始网络协议版本号,获取所述网络协议版本信息。
可选的,所述头部指纹特征包括网络协议状态码信息。
可选的,所述头部指纹特征包括关键字段信息,所述对所述网络响应包数据中的头部数据进行解析,获取头部指纹特征,包括:
提取所述头部数据中的各关键字段;
根据预设字段库,获取各所述关键字段各自对应的字段索引值;
根据所述头部数据中所述关键字段的顺序,对所述字段索引值进行排序组合,生成所述关键字段信息。
可选的,所述头部指纹特征包括关键字段对应值信息,所述对所述网络响应包数据中的头部数据进行解析,获取头部指纹特征,包括:
提取所述头部数据中的各所述关键字段对应的数据值;
根据预设字段数值库,获取各所述数据值各自对应的数据索引值;
根据所述头部数据中所述数据值的顺序,对所述数据索引值进行排序组合,生成所述关键字段对应值信息。
可选的,所述对所述网络响应包数据中的主体数据进行解析,获取主体指纹特征,包括:
对所述主体数据进行解析,获取格式解析结果;
若所述格式解析结果为解析失败,则将所述主体数据中的字段对应的索引值作为所述主体指纹特征;
若所述格式解析结果为解析成功,则根据所述主体数据的格式,提取所述主体数据的主体骨架信息,并将所述主体骨架信息对应的索引值作为所述主体指纹特征。
可选的,所述根据所述主体数据的格式,提取所述主体数据的主体骨架信息,包括:
在所述主体数据的格式为第一目标格式时,对所述主体数据对应的树形结构进行提取,获取所述树形结构中的标签;根据所述标签得到所述主体骨架信息;
在所述主体数据的格式为第二目标格式时,提取并合并所述主体数据中的关键字段,得到所述主体骨架信息。
本发明还提供了一种设备指纹生成装置,包括:
响应获取模块,用于获取设备的网络响应包数据;
头部解析模块,用于对所述网络响应包数据中的头部数据进行解析,获取头部指纹特征;
主体解析模块,用于对所述网络响应包数据中的主体数据进行解析,获取主体指纹特征;
指纹生成模块,用于根据所述头部指纹特征和所述主体指纹特征,生成所述设备的指纹数据。
本发明还提供了一种设备指纹生成设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如上述所述的设备指纹生成方法的步骤。
此外,本发明还提供了一种可读存储介质,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上述所述的设备指纹生成方法的步骤。
本发明所提供的一种设备指纹生成方法,包括:获取设备的网络响应包数据;对网络响应包数据中的头部数据进行解析,获取头部指纹特征;对网络响应包数据中的主体数据进行解析,获取主体指纹特征;根据头部指纹特征和主体指纹特征,生成设备的指纹数据;
可见,本发明利用解析设备的网络响应包数据中的头部数据和主体数据得到的头部指纹特征和主体指纹特征,生成设备的指纹数据,实现设备指纹的自动生成;并且能够充分利用设备的响应包内容的特征,对响应包内容进行细粒度划分,每一粒度的内容能够提取出相应的特征,保证设备指纹的内容全面性,避免不同的设备由于头部数据相同所导致的设备指纹形相同的情况,提高了设备指纹的准确性,从而能够满足大量的物联网设备分类使用。此外,本发明还提供了一种设备指纹生成装置、设备及可读存储介质,同样具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例所提供的一种设备指纹生成方法的流程图;
图2为本发明实施例所提供的另一种设备指纹生成方法的流程示意图;
图3为本发明实施例所提供的另一种设备指纹生成方法的指纹数据展示图;
图4为本发明实施例所提供的一种设备指纹生成装置的结构框图;
图5为本发明实施例所提供的一种设备指纹生成设备的结构示意图;
图6为本发明实施例所提供的一种设备指纹生成设备的具体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参考图1,图1为本发明实施例所提供的一种设备指纹生成方法的流程图,该方法可以包括:
步骤101:获取设备的网络响应包数据。
其中,本实施例中的设备可以需要生成指纹数据(即设备指纹)的设备。本实施例中的网络响应包数据可以为设备通过网络返回的响应包数据(Banner),即设备对通过网络接收的请求包返回的响应包的内容。
具体的,对于本实施例中的网络响应包数据的具体网络协议类型,可以由设计人员根据实用场景和用户需求自行设置,如网络响应包数据的网络协议类型可以为HTTP(Hyper Text Transfer Protocol,超文本传输协议)协议;例如,本步骤中处理器可以向设备发送HTTP请求,获取设备返回的响应包(即网络响应包数据);网络响应包数据的网络协议类型可以为HTTPS(Hyper Text Transfer Protocol over Secure Socket Layer,超文本传输安全协议)协议或其它网络传输协议,例如,本步骤中处理器可以向设备发送HTTPS请求,获取设备返回的响应包(即网络响应包数据)。只要设备可以通过网络向请求端返回相应网络相应网络协议的响应包数据,本实施例对此不做任何限制。
对应的,对于本实施例中处理器获取设备的网络响应包数据的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如处理器可以向设备发送请求,以接收设备返回的网络响应包数据;即处理器可以通过主动发送请求的方式,获取设备返回的网络响应包数据;例如处理器可以向设备发送HTTP请求,获取设备返回的响应包(即网络响应包数据)。处理器也可以从指纹数据库中获取设备的网络响应包数据,以对指纹数据库中该设备的指纹数据进行更新;例如,指纹数据库可以保存设备的网络响应包数据、指纹数据和指纹生成算法版本信息,从而在本实施例中使用的指纹生成算法版本更新,即设备指纹的生成方式改变时,利用存储的该设备的网络响应包数据,更新指纹数据和指纹生成算法版本信息。本实施例对此不做任何限制。
对应的,本实施例中还可以包括对获取的网络响应包数据进行预处理,获取预处理后的网络响应包数据,以通过预处理过程清理掉网络响应包数据中的无效数据,从而使得后续可以对预处理后的网络响应包数据进行解析,得到设备的指纹数据。
步骤102:对网络响应包数据中的头部数据进行解析,获取头部指纹特征。
可以理解的是,本实施例中的本步骤和步骤103可以分别对网络响应包数据中的头部(Header)数据和主体(Body)数据进行处理,得到相应的子指纹(即头部指纹特征和主体指纹特征),从而合并得到设备的最终指纹(即指纹数据),使得该指纹不仅使用了网络响应包数据的所有特征,并且具有一定的可解释性。具体的,本实施例并不限定步骤102和步骤103的具体先后顺序,可以先进行步骤102再进行步骤103;也可以先进行步骤103再进行步骤102或者两个步骤同时进行。
对应的,本步骤之前还可以包括对网络响应包数据进行分割,得到网络响应包数据中的头部数据和主体数据。例如,处理器可以对与处理后的网络响应包数据进行分割,得到该网络响应包数据中的头部数据和主体数据。具体的,由于不同设备的响应包内容和格式都不一样,因此Header和Body部分的分割,需要考虑到不同格式的网络响应包数据的分隔符,即处理器可以根据预先设置的各格式对应的分隔符(即预设分隔符),对网络响应包数据进行分割,得到网络响应包数据中的头部数据和主体数据。
需要说明的是,本步骤中针对网络响应包数据中的头部数据,其中包含许多字段,例如Title(标题)和Server(服务)等关键字段;本步骤中处理器可以通过对头部数据的解析,利用从头部数据中提取相应的字段得到头部指纹特征。对于本步骤中头部指纹特征中的具体特征类型,即生成头部指纹特征所需使用的字段选择,可以由设计人员根据实用场景和用户需求自行设置,如考虑到后续网络协议版本的更新,本实施例中的头部指纹特征可以包括网络协议版本信息,即头部数据中的原始网络协议版本号(Version)的信息,以利用设备指纹中的网络协议版本信息区分不同物联网设备,保证设备指纹的内容全面性;本实施例中的头部指纹特征也可以包括网络协议状态码信息,即头部数据中的网络协议状态码(Response_code)的信息,以通过设备指纹中的网络协议状态码进一步划分不同物联网设备;例如,头部指纹特征可以包括网络协议版本信息和网络协议状态码信息,以通过与网络协议相关的这两个粒度,区分不同物联网设备。本实施例中的头部指纹特征还可以包括关键字段信息,即头部数据中的各关键字段(keys)的信息,如头部数据中的各关键字段对应的索引值;本实施例中的头部指纹特征还可以包括关键字段对应值信息,即头部数据中的各关键字段各自对应的头部数据中的值(即数据值,Values)的信息,如各数据值对应的索引值;例如,头部指纹特征还可以包括关键字段信息和关键字段对应值信息,以通过与关键字段相关的这两个粒度,进一步区分不同物联网设备。
具体的,对于本步骤中处理器对网络响应包数据中的头部数据进行解析,获取头部指纹特征的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如头部指纹特征包括网络协议版本信息时,针对网络协议版本信息,处理器可以提取头部数据中的原始网络协议版本号;根据提取得到的原始网络协议版本号,获取网络协议版本信息;例如处理器可以直接将提取得到的原始网络协议版本号作为网络协议版本信息,或者计算或匹配原始网络协议版本号对应的索引值作为网络协议版本信息;如网络响应包数据的网络协议类型为HTTP时,处理器可以提取头部数据中的原始HTTP版本号(如1.1或1.0)作为网络协议版本信息,以在设备指纹中完整保留HTTP版本信息。
相应的,头部指纹特征包括网络协议状态码信息时,针对网络协议状态码信息,处理器可以提取头部数据中的网络协议状态码;根据提取得到的原始网络协议状态码,获取网络协议状态码信息;如直接将提取得到的网络协议状态码作为网络协议状态码信息,或者计算或匹配网络协议状态码对应的索引值作为网络协议状态码信息;例如网络响应包数据的网络协议类型为HTTP时,处理器可以提取头部数据中用以表示网页服务器超文本传输协议响应状态的3位数字代码作为网络协议状态码信息,如200(表示请求成功,ok),302(表示重定向,Move Temporarily)或404(表示资源未找到,Not found)等。
对应的,头部指纹特征包括关键字段信息时,针对关键字段信息,处理器可以提取头部数据中的各关键字段,直接计算各关键字段各自对应的索引值(即字段索引值),如计算各关键字段各自对应的哈希值(hash值)作为字段索引值;将各关键字段各自对应的字段索引值组合合并作为关键字段信息,如按照头部数据中关键字段的顺序,对字段索引值进行排序组合,生成关键字段信息,以保留keys字段的顺序特征。为了方便了解解释设备指纹的具体内容,减少计算量,处理器也可以利用预设字段库(如图2中的Header字段库),获取各关键字段各自对应的索引值(即字段索引值),即预设字段库中可以预先设置各常用的关键字段与各自对应的索引值之间的对应关系;例如,本步骤中处理器可以提取头部数据中的各关键字段;根据预设字段库,获取各关键字段各自对应的字段索引值;根据头部数据中关键字段的顺序,对字段索引值进行排序组合,生成关键字段信息,如图3中的ac-rg,co-ty,co-le,l-m,sr。
具体的,对于上述根据预设字段库,获取各关键字段各自对应的字段索引值的具体方式,可以由设计人员自行设置,如处理器判断预设字段库中是否存储有当前关键字段对应的索引值;其中,当前关键字段为任一关键字段;若存储有当前关键字段对应的索引值,则从预设字段库获取当前关键字段对应的索引值(如图3中的ac-rg、co-ty、co-le、l-m或sr)作为当前关键字段对应的字段索引值;若未存储有当前关键字段对应的索引值,则计算当前关键字段对应的字段索引值,如计算当前关键字段对应的哈希值(如图2中32位的哈希值Fnvla_32),并将该哈希值作为当前关键字段对应的字段索引值;也就是说,关键字段信息中的字段索引值可以包括关键字段对应的哈希值和/或关键字段对应的。
对应的,头部指纹特征包括关键字段对应值信息时,针对关键字段对应值信息,处理器可以提取头部数据中的各关键字段对应的值(即数据值),直接计算各数据值各自对应的索引值(即数据索引值),如计算各数据值各自对应的哈希值作为数据索引值;将各数据值各自对应的数据索引值组合合并作为关键字段对应值信息,如按照头部数据中数据值的顺序,对数据索引值进行排序组合,生成关键字段对应值信息,以保留Values字段的顺序特征。为了方便了解解释设备指纹的具体内容,减少计算量,处理器也可以利用预设字段数值库(即如图3中的Values字段库),获取各数据值各自对应的数据索引值,即预设字段库中可以预先设置不同设备的常见关键字段的数据值(Value)与各自对应的索引值之间的对应关系;例如,本步骤中处理器可以提取头部数据中的各关键字段对应的数据值;根据预设字段数值库,获取各数据值各自对应的数据索引值;根据头部数据中数据值的顺序,对数据索引值进行排序组合,生成关键字段信息,如图3中的co-ty:te-ht/sr:7c2784c9。
具体的,对于上述预设字段数值库,获取各数据值各自对应的数据索引值的具体方式,可以由设计人员自行设置,如处理器判断预设字段数值库中是否存储有当前数据值对应的索引值;其中,当前数据值为任一数据值;若存储有当前数据值对应的索引值,则从预设字段数值库获取当前数据值对应的索引值(如图3中的co-ty)作为当前数据值对应的数据索引值;若未存储有当前数据值对应的索引值,则计算当前数据值对应的数据索引值,如计算当前数据值对应的哈希值(如图2中32位的哈希值Fnvla_32),并将该哈希值作为当前数据值对应的数据索引值(如图3中的7c2784c9)。
步骤103:对网络响应包数据中的主体数据进行解析,获取主体指纹特征。
可以理解的是,本步骤中处理器可以对网络响应包数据中的主体数据(Body)进行解析,获取主体指纹特征,以利用主体指纹特征进一步完善生成的设备指纹的内容全面性,避免不同的设备由于头部数据相同所导致的设备指纹形相同的情况。
具体的,本实施例中的主体指纹特征可以包括主体(Body)骨架信息,如HTML(超文本标记语言格式)或XML(可扩展标记语言格式)格式的主体数据对应的树形结构(如DOM树,文档对象化模型树)中全部标签对应的索引值(如哈希值),以利用主体骨架信息,尽可能避免因变化性内容不同(如返回数据的时间不同),而导致的同一设备生成的指纹不同的问题;也就是说,主体骨架信息可以不包括主体数据中的可变化数据值,如时间值。
相应的,对于本步骤中处理器对网络响应包数据中的主体数据进行解析,获取主体指纹特征的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如处理器可以直接计算主体数据中的字段(即Body原生字段)对应的索引值作为主体指纹特征;主体指纹特征可以包括主体骨架信息时,处理器可以对主体数据进行解析,获取格式解析结果;若格式解析结果为解析失败,则计算主体数据中的字段对应的索引值(如哈希值),并将主体数据中的字段对应的索引值作为主体指纹特征;若格式解析结果为解析成功,则根据主体数据的格式,提取主体数据的主体骨架信息,并将主体骨架信息对应的索引值(如哈希值)作为主体指纹特征。
对应的,对于上述处理器根据主体数据的格式,提取主体数据的主体骨架信息的具体方式,可以由设计人员自行设置,如本实施例中可以将格式解析所能得到的主体数据的格式换分为主体数据能够解析为相应的树形结构(如DOM树)的第一目标格式和其它的主体数据不能解析为相应的树形结构的第二目标格式;相应的,利用预先设置的第一目标格式和第二目标格式,处理器可以在主体数据的格式为第一目标格式的情况下,对主体数据对应的树形结构进行提取,获取树形结构中的标签;根据标签得到主体骨架信息;在主体数据的格式为第二目标格式的情况下,提取并合并主体数据中的关键字段,得到主体骨架信息。
举例来说,由于设备的响应包有XML、JSON(JavaScript Object Notation,JavaScript对象表示法)和HTML这三种格式,本实施例中第一目标格式可以包括XML格式和HTML格式,第二目标格式可以包括JSON格式;若格式解析结果为解析成功,则处理器可以在主体数据的格式为JSON格式的情况下,提取并合并主体数据中的关键字段(key字段),得到主体骨架信息,即将主体数据中的关键字段的合并结果作为主体骨架信息;在主体数据的格式为XML格式或HTML格式的情况下,对主体数据对应的DOM树进行提取,获取DOM树中的标签;合并标签,得到主体骨架信息,即将标签的合并结果作为主体骨架信息并计算标签的合并结果对应的索引值(如哈希值),将标签的合并结果对应的索引值作为主体指纹特征;如图2所示,本实施例中可以将DOM树中所有的标签的集合作为Body骨架,计算该标签的集合对应的哈希值(如32位的哈希值Fnvla_32)作为主体指纹特征;如图2所示,本实施例中可以将DOM树中所有的标签的集合作为Body骨架,计算该标签的集合对应的哈希值(如32位的哈希值Fnvla_32)作为主体指纹特征。
步骤104:根据头部指纹特征和主体指纹特征,生成设备的指纹数据。
其中,本步骤中处理器可以利用解析设备的网络响应包数据中的头部数据得到的头部指纹特征和解析设备的网络响应包数据中的主体数据得到的主体指纹特征,生成设备的指纹数据,实现设备指纹的自动生成。
具体的,对于本步骤中处理器根据头部指纹特征和主体指纹特征,生成设备的指纹数据的具体方式,可以由设计人员根据实用场景和用户需求自行设置,如处理器可以直接合并头部指纹特征和主体指纹特征,生成设备的指纹数据;如图3所示,处理器可以直接对头部指纹特征中的网络协议版本信息(1.1)、关键字段信息(ac-rg,co-ty,co-le,l-m,sr)、网络协议状态码信息(200)和关键字段对应值信息(co-ty:te-ht/sr:7c2784c9)以及主体指纹特征(7f24bcb7)进行合并,生成得到设备的指纹数据(200|1.1|ac-rg,co-ty,co-le,l-m,sr|co-ty:te-ht/sr:7c2784c9|7f24bcb7)。
进一步的,本实施例中所提供的方法还可以包括处理器根据生成的设备的指纹数据,从预设规则库中查找获取设备的设备信息,即预设规则库中可以存储各类设备的指纹数据(即设备指纹)与设备信息(如厂商和型号等信息)对应关系,使处理器可以利用生成的设备的指纹数据,从预设规则库中查找获取该设备的设备信息,从而利用预设规则库快速识别出设备信息。对应的,若预设规则库中不存在生成的设备的指纹数据对应的设备信息,本实施例中处理器还可以获取该设备的设备信息,并将该设备的指纹数据和设备信息存储到预设规则库,以补充预设规则库。
进一步的,本实施例中所提供的方法还可以包括处理器将网络响应包数据、指纹数据和指纹生成算法版本信息存储到指纹数据库,即通过将设备对应的Banner(网络响应包数据)、设备指纹(指纹数据)及本实施例中生成设备指纹所使用的指纹生成算法版本号保存到指纹数据库中,以使后续指纹生成算法更新后,可以对指纹数据库中的设备指纹进行更新,如将指纹数据库中存储的各设备对应的指纹数据更新为最新的指纹生成算法版本信息对应的指纹数据,或者在指纹数据库中更新存储各设备最新的指纹生成算法版本信息对应的指纹数据,以保存历代指纹生成算法的指纹数据。
对应的,本实施例所提供的方法还可以包括在指纹生成算法版本更新后,利用更新的指纹生成算法,对指纹数据库中设备的网络响应包数据进行处理,得到该设备更新的指纹数据,并将该设备更新的指纹生成算法版本信息和指纹数据存储到指纹数据库;或者在指纹生成算法版本更新后,利用更新的指纹生成算法与上一版本的指纹生成算法之间的差异信息,对指纹数据库中设备的上一版本的指纹生成算法对应的指纹数据进行处理,得到该设备更新的指纹数据,并将该设备更新的指纹生成算法版本信息和指纹数据存储到指纹数据库。
本实施例中,本发明实施例利用解析设备的网络响应包数据中的头部数据和主体数据得到的头部指纹特征和主体指纹特征,生成设备的指纹数据,实现设备指纹的自动生成;并且能够充分利用设备的响应包内容的特征,对响应包内容进行细粒度划分,每一粒度的内容能够提取出相应的特征,保证设备指纹的内容全面性,避免不同的设备由于头部数据相同所导致的设备指纹形相同的情况,提高了设备指纹的准确性,从而能够满足大量的物联网设备分类使用。
相应于上面的方法实施例,本发明实施例还提供了一种设备指纹生成装置,下文描述的一种设备指纹生成装置与上文描述的一种设备指纹生成方法可相互对应参照。
请参考图4,图4为本发明实施例所提供的一种设备指纹生成装置的结构框图。该装置可以包括:
响应获取模块10,用于获取设备的网络响应包数据;
头部解析模块20,用于对网络响应包数据中的头部数据进行解析,获取头部指纹特征;
主体解析模块30,用于对网络响应包数据中的主体数据进行解析,获取主体指纹特征;
指纹生成模块40,用于根据头部指纹特征和主体指纹特征,生成设备的指纹数据。
可选的,头部指纹特征包括网络协议版本信息,头部解析模块20可以包括:
第一提取子模块,用于提取头部数据中的原始网络协议版本号;
第一生成子模块,用于根据原始网络协议版本号,获取网络协议版本信息。
可选的,头部指纹特征包括网络协议状态码信息。
可选的,头部指纹特征包括关键字段信息,头部解析模块20可以包括:
第二提取子模块,用于提取头部数据中的各关键字段;
第一获取子模块,用于根据预设字段库,获取各关键字段各自对应的字段索引值;
第二生成子模块,用于根据头部数据中关键字段的顺序,对字段索引值进行排序组合,生成关键字段信息。
可选的,头部指纹特征包括关键字段对应值信息,头部解析模块20可以包括:
第三提取子模块,用于提取头部数据中的各关键字段对应的数据值;
第二获取子模块,用于根据预设字段数值库,获取各数据值各自对应的数据索引值;
第三生成子模块,用于根据头部数据中数据值的顺序,对数据索引值进行排序组合,生成关键字段对应值信息。
可选的,该装置还可以包括:
信息获取模块,用于根据指纹数据,从预设规则库中查找获取设备的设备信息。
可选的,该装置还可以包括:
指纹存储模块,用于将网络响应包数据、指纹数据和指纹生成算法版本信息存储到指纹数据库。
可选的,主体解析模块30可以包括:
解析子模块,用于对主体数据进行解析,获取格式解析结果;
主体计算子模块,用于若格式解析结果为解析失败,则将主体数据中的字段对应的索引值作为主体指纹特征;
骨架计算子模块,用于若格式解析结果为解析成功,则根据主体数据的格式,提取主体数据的主体骨架信息,并将主体骨架信息对应的索引值作为主体指纹特征。
可选的,骨架计算子模块可以包括:
标签提取单元,用于在主体数据的格式为第一目标格式时,对主体数据对应的树形结构进行提取,获取树形结构中的标签;根据标签得到主体骨架信息;
字段提取单元,用于在主体数据的格式为第二目标格式时,提取并合并主体数据中的关键字段,得到主体骨架信息。
本实施例中,本发明实施例通过指纹生成模块40利用解析设备的网络响应包数据中的头部数据和主体数据得到的头部指纹特征和主体指纹特征,生成设备的指纹数据,实现设备指纹的自动生成;并且能够充分利用设备的响应包内容的特征,对响应包内容进行细粒度划分,每一粒度的内容能够提取出相应的特征,保证设备指纹的内容全面性,避免不同的设备由于头部数据相同所导致的设备指纹形相同的情况,提高了设备指纹的准确性,从而能够满足大量的物联网设备分类使用。
相应于上面的方法实施例,本发明实施例还提供了一种设备指纹生成设备,下文描述的一种设备指纹生成设备与上文描述的一种设备指纹生成方法可相互对应参照。
请参考图5,图5为本发明实施例所提供的一种设备指纹生成设备的结构示意图。该设备指纹生成设备可以包括:
存储器D1,用于存储计算机程序;
处理器D2,用于执行计算机程序时实现上述方法实施例所提供的请求处理方法的步骤。
具体的,请参考图6,图6为本发明实施例所提供的一种设备指纹生成设备的具体结构示意图,该设备指纹生成设备310可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上处理器(central processing units,CPU)322(例如,一个或一个以上处理器)和存储器332,一个或一个以上存储应用程序342或数据344的存储介质330(例如一个或一个以上海量存储设备)。其中,存储器332和存储介质330可以是短暂存储或持久存储。存储在存储介质330的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据处理设备中的一系列指令操作。更进一步地,中央处理器322可以设置为与存储介质330通信,在设备指纹生成设备310上执行存储介质330中的一系列指令操作。
设备指纹生成设备310还可以包括一个或一个以上电源326,一个或一个以上有线或无线网络接口350,一个或一个以上输入输出接口358,和/或,一个或一个以上操作系统341。例如,Windows ServerTM,Mac OS XTM,UnixTM,LinuxTM,FreeBSDTM等。
其中,设备指纹生成设备310可以具体为服务器。
上文所描述的设备指纹生成方法中的步骤可以由设备指纹生成设备的结构实现。
相应于上面的方法实施例,本发明实施例还提供了一种可读存储介质,下文描述的一种可读存储介质与上文描述的一种设备指纹生成方法可相互对应参照。
一种可读存储介质,可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述方法实施例所提供的设备指纹生成方法的步骤。
该可读存储介质具体可以为U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可存储程序代码的可读存储介质。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备及可读存储介质而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上对本发明所提供的一种设备指纹生成方法、装置、设备及可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
Claims (9)
1.一种设备指纹生成方法,其特征在于,包括:
获取设备的网络响应包数据;
对所述网络响应包数据中的头部数据进行解析,获取头部指纹特征;
对所述网络响应包数据中的主体数据进行解析,获取格式解析结果;
若所述格式解析结果为解析失败,则将所述主体数据中的字段对应的索引值作为主体指纹特征;
若所述格式解析结果为解析成功,则根据所述主体数据的格式,提取所述主体数据的主体骨架信息,并将所述主体骨架信息对应的索引值作为主体指纹特征;其中,所述主体骨架信息为不包括所述主体数据中的可变化数据值对应的信息;
根据所述头部指纹特征和所述主体指纹特征,生成所述设备的指纹数据。
2.根据权利要求1所述的设备指纹生成方法,其特征在于,所述头部指纹特征包括网络协议版本信息,所述对所述网络响应包数据中的头部数据进行解析,获取头部指纹特征,包括:
提取所述头部数据中的原始网络协议版本号;
根据所述原始网络协议版本号,获取所述网络协议版本信息。
3.根据权利要求1所述的设备指纹生成方法,其特征在于,所述头部指纹特征包括网络协议状态码信息。
4.根据权利要求1所述的设备指纹生成方法,其特征在于,所述头部指纹特征包括关键字段信息,所述对所述网络响应包数据中的头部数据进行解析,获取头部指纹特征,包括:
提取所述头部数据中的各关键字段;
根据预设字段库,获取各所述关键字段各自对应的字段索引值;
根据所述头部数据中所述关键字段的顺序,对所述字段索引值进行排序组合,生成所述关键字段信息。
5.根据权利要求4所述的设备指纹生成方法,其特征在于,所述头部指纹特征包括关键字段对应值信息,所述对所述网络响应包数据中的头部数据进行解析,获取头部指纹特征,包括:
提取所述头部数据中的各所述关键字段对应的数据值;
根据预设字段数值库,获取各所述数据值各自对应的数据索引值;
根据所述头部数据中所述数据值的顺序,对所述数据索引值进行排序组合,生成所述关键字段对应值信息。
6.根据权利要求1所述的设备指纹生成方法,其特征在于,所述根据所述主体数据的格式,提取所述主体数据的主体骨架信息,包括:
在所述主体数据的格式为第一目标格式时,对所述主体数据对应的树形结构进行提取,获取所述树形结构中的标签;根据所述标签得到所述主体骨架信息;
在所述主体数据的格式为第二目标格式时,提取并合并所述主体数据中的关键字段,得到所述主体骨架信息。
7.一种设备指纹生成装置,其特征在于,包括:
响应获取模块,用于获取设备的网络响应包数据;
头部解析模块,用于对所述网络响应包数据中的头部数据进行解析,获取头部指纹特征;
主体解析模块,用于对所述网络响应包数据中的主体数据进行解析,获取主体指纹特征;
指纹生成模块,用于根据所述头部指纹特征和所述主体指纹特征,生成所述设备的指纹数据;
其中,所述主体解析模块包括:
解析子模块,用于对所述主体数据进行解析,获取格式解析结果;
主体计算子模块,用于若所述格式解析结果为解析失败,则将所述主体数据中的字段对应的索引值作为所述主体指纹特征;
骨架计算子模块,用于若所述格式解析结果为解析成功,则根据所述主体数据的格式,提取所述主体数据的主体骨架信息,并将所述主体骨架信息对应的索引值作为所述主体指纹特征;其中,所述主体骨架信息为不包括所述主体数据中的可变化数据值对应的信息。
8.一种设备指纹生成设备,其特征在于,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现如权利要求1至6任一项所述的设备指纹生成方法的步骤。
9.一种可读存储介质,其特征在于,所述可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1至6任一项所述的设备指纹生成方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210436986.1A CN114827309B (zh) | 2022-04-19 | 2022-04-19 | 一种设备指纹生成方法、装置、设备及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210436986.1A CN114827309B (zh) | 2022-04-19 | 2022-04-19 | 一种设备指纹生成方法、装置、设备及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114827309A CN114827309A (zh) | 2022-07-29 |
CN114827309B true CN114827309B (zh) | 2024-02-23 |
Family
ID=82506847
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210436986.1A Active CN114827309B (zh) | 2022-04-19 | 2022-04-19 | 一种设备指纹生成方法、装置、设备及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114827309B (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117624A (zh) * | 2018-08-03 | 2019-01-01 | 上海掌门科技有限公司 | 生成验证码图像的方法、电子设备和计算机可读介质 |
CN109933354A (zh) * | 2019-03-07 | 2019-06-25 | 广东汇泰龙科技有限公司 | 一种智能云锁的指纹头在线升级方法、系统及云锁 |
CN110474951A (zh) * | 2019-07-01 | 2019-11-19 | 视联动力信息技术股份有限公司 | 一种指纹采集方法和视联网服务器 |
CN110990897A (zh) * | 2019-12-16 | 2020-04-10 | 北京无忧创想信息技术有限公司 | 一种文件指纹的生成方法及装置 |
CN112714045A (zh) * | 2020-12-31 | 2021-04-27 | 浙江远望信息股份有限公司 | 一种基于设备指纹和端口的快速协议识别方法 |
CN112989315A (zh) * | 2021-02-03 | 2021-06-18 | 杭州安恒信息安全技术有限公司 | 物联网终端的指纹生成方法、装置、设备和可读存储介质 |
CN113497762A (zh) * | 2020-04-01 | 2021-10-12 | 腾讯科技(深圳)有限公司 | 数据报文的传输方法及装置 |
CN114338600A (zh) * | 2021-12-28 | 2022-04-12 | 深信服科技股份有限公司 | 一种设备指纹的推选方法、装置、电子设备和介质 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080175449A1 (en) * | 2007-01-19 | 2008-07-24 | Wison Technology Corp. | Fingerprint-based network authentication method and system thereof |
KR101779327B1 (ko) * | 2016-11-22 | 2017-10-10 | 한국인터넷진흥원 | 룰 기반 핑거프린트 생성 방법 및 그 장치 |
-
2022
- 2022-04-19 CN CN202210436986.1A patent/CN114827309B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109117624A (zh) * | 2018-08-03 | 2019-01-01 | 上海掌门科技有限公司 | 生成验证码图像的方法、电子设备和计算机可读介质 |
CN109933354A (zh) * | 2019-03-07 | 2019-06-25 | 广东汇泰龙科技有限公司 | 一种智能云锁的指纹头在线升级方法、系统及云锁 |
CN110474951A (zh) * | 2019-07-01 | 2019-11-19 | 视联动力信息技术股份有限公司 | 一种指纹采集方法和视联网服务器 |
CN110990897A (zh) * | 2019-12-16 | 2020-04-10 | 北京无忧创想信息技术有限公司 | 一种文件指纹的生成方法及装置 |
CN113497762A (zh) * | 2020-04-01 | 2021-10-12 | 腾讯科技(深圳)有限公司 | 数据报文的传输方法及装置 |
CN112714045A (zh) * | 2020-12-31 | 2021-04-27 | 浙江远望信息股份有限公司 | 一种基于设备指纹和端口的快速协议识别方法 |
CN112989315A (zh) * | 2021-02-03 | 2021-06-18 | 杭州安恒信息安全技术有限公司 | 物联网终端的指纹生成方法、装置、设备和可读存储介质 |
CN114338600A (zh) * | 2021-12-28 | 2022-04-12 | 深信服科技股份有限公司 | 一种设备指纹的推选方法、装置、电子设备和介质 |
Also Published As
Publication number | Publication date |
---|---|
CN114827309A (zh) | 2022-07-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20220035600A1 (en) | API Specification Generation | |
US8601120B2 (en) | Update notification method and system | |
CN107957940B (zh) | 一种测试日志处理方法、系统及终端 | |
CN111506771B (zh) | 一种视频检索方法、装置、设备及存储介质 | |
CN111079043A (zh) | 一种关键内容定位方法 | |
CN111814192B (zh) | 训练样本生成方法及装置、敏感信息检测方法及装置 | |
CN110007906B (zh) | 脚本文件的处理方法、装置和服务器 | |
CN111338693B (zh) | 基于模型构建的目标文件生成方法、服务器及存储介质 | |
US8868571B1 (en) | Systems and methods for selecting interest point descriptors for object recognition | |
KR20190058141A (ko) | 문서로부터 추출되는 데이터를 생성하는 방법 및 그 장치 | |
CN114528457A (zh) | Web指纹检测方法及相关设备 | |
CN111209325B (zh) | 业务系统接口识别方法、装置及存储介质 | |
CN114827309B (zh) | 一种设备指纹生成方法、装置、设备及可读存储介质 | |
CN116346961B (zh) | 金融报文处理方法、装置、电子设备及存储介质 | |
CN115437930B (zh) | 网页应用指纹信息的识别方法及相关设备 | |
CN111917848A (zh) | 基于边缘计算和云计算协同的数据处理方法及云服务器 | |
CN116306531A (zh) | Html文档自动填充方法、装置、电子设备及存储介质 | |
JP2006065467A (ja) | データ抽出定義情報生成装置およびデータ抽出定義情報生成方法 | |
CN116010147A (zh) | 异常处理表的生成方法、系统、电子设备及存储介质 | |
CN106021307B (zh) | 一种针对电子文档进行定位的系统、设备、装置及方法 | |
CN116070586A (zh) | 预览文件生成方法、文件预览方法、装置及计算设备 | |
CN111985446A (zh) | 人脸识别方法以及系统 | |
CN112752165A (zh) | 字幕处理方法、装置、服务器及计算机可读存储介质 | |
CN113158031B (zh) | 用户资源信息的确定方法及装置、计算机存储介质、终端 | |
CN107528896A (zh) | 一种访问信息处理方法、装置和计算机存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |