1.本发明实施例涉及互联网技术领域,尤其涉及一种终端识别方法、装置、电子设备及存储介质。
背景技术:
2.随着云计算虚拟化迅猛发展和智能设备剧增,接入网络中的终端设备日益多样化、规模化。对终端设备进行识别,能够更好的细化上网途径和数据来源,在用户画像和安全治理等领域也有着非常重要的意义。
3.目前针对终端设备的识别技术广泛采用被动流量采集分析方式,通过透明接入网络的流量采集装置,实时分析原始网络数据包中的某些特定维度的信息,实现终端设备的识别。例如,通过mac地址(media access control address,局域网地址)的前三位识别oui(organizationally unique identifier,组织唯一标识符)设备厂商;或者,通过dhcp(dynamic host configuration protocol,东土主机配置协议)请求报文中的options(可选项)中的选项信息识别操作系统类型;或者,通过http(hyper text transfer protocol,超文本传输协议)请求包文中的user-agent(用户代理)或网页代码识别客户端类型。
4.但是,mac地址可以随意修改,还会受到路由器的nat(network address translation,网络地址转换)技术等造成信息丢失,通过mac地址识别设备厂商的方法只适合在局域网内使用;dhcp技术依赖指定类型的数据包,数据量少且只能识别大致的系统分类;http的用户代理不具有统一的规范,在开放网络中越来越多的采用https(hyper text transfer protocol over securesocket layer,安全的http通道)加密方式来提高安全性,因而http用户代理技术识别准确性也逐渐减弱。因此,上述终端识别方法适用的场景较单一,数据信息少,数据特征容易变化,导致了终端识别的成功率较低和准确性较差的问题。
技术实现要素:
5.本发明实施例提供一种终端识别方法、装置、电子设备及存储介质,能够对终端信息进行多维度识别,从而提高终端识别的成功率以及准确性。
6.第一方面,本发明实施例提供了一种终端识别方法,包括:
7.获取待识别终端的待识别数据包;其中,所述待识别数据包包括目标通信协议数据和目标应用层协议数据;
8.根据所述待识别数据包生成所述待识别终端的待识别指纹数据;
9.按照设定匹配规则对所述待识别指纹数据进行特征匹配;
10.根据所述待识别指纹数据的特征匹配结果确定所述待识别终端的识别结果。
11.第二方面,本发明实施例还提供了一种终端识别装置,包括:
12.待识别数据包获取模块,用于获取待识别终端的待识别数据包;其中,所述待识别数据包包括目标通信协议数据和目标应用层协议数据;
13.待识别指纹数据生成模块,用于根据所述待识别数据包生成所述待识别终端的待识别指纹数据;
14.特征匹配模块,用于按照设定匹配规则对所述待识别指纹数据进行特征匹配;
15.识别结果确定模块,用于根据所述待识别指纹数据的特征匹配结果确定所述待识别终端的识别结果。
16.第三方面,本发明实施例还提供了一种电子设备,所述电子设备包括:
17.一个或多个处理器;
18.存储装置,用于存储一个或多个程序;
19.当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明任意实施例所提供的终端识别方法。
20.第四方面,本发明实施例还提供了一种计算机存储介质,其上存储有计算机程序,该程序被处理器执行时实现本发明任意实施例所提供的终端识别方法。
21.本发明实施例通过获取待识别终端的待识别数据包中的目标通信协议数据和目标应用层协议数据,并根据待识别数据包生成待识别终端的待识别指纹数据,以按照设定匹配规则对待识别指纹数据进行特征匹配,从而根据待识别指纹数据的特征匹配结果确定待识别终端的识别结果,解决现有的终端识别方法因适用场景较单一、数据信息少以及数据特征容易变化,而导致的终端识别的成功率较低和准确性较差的问题,能够对终端信息进行多维度识别,从而提高终端识别的成功率以及准确性。
附图说明
22.图1是本发明实施例一提供的一种终端识别方法的流程图;
23.图2是本发明实施例二提供的一种终端识别方法的流程图;
24.图3是本发明实施例二提供的特征数据库中特征数据与终端信息匹配的示意图;
25.图4是本发明实施例三提供的一种终端识别方法的具体示例流程图;
26.图5是本发明实施例三提供的特征数据库识别终端信息的流程示意图;
27.图6是本发明实施例三提供的匹配加速单元识别终端信息的流程示意图;
28.图7是本发明实施例四提供的一种终端识别装置的示意图;
29.图8是本发明实施例五提供的一种电子设备的结构示意图。
具体实施方式
30.下面结合附图和实施例对本发明作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本发明,而非对本发明的限定。
31.另外还需要说明的是,为了便于描述,附图中仅示出了与本发明相关的部分而非全部内容。在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作(或步骤)描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
32.本发明实施例的说明书和权利要求书及附图中的术语“第一”和“第二”等是用于
区别不同的对象,而不是用于描述特定的顺序。此外术语“包括”和“具有”以及他们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有设定于已列出的步骤或单元,而是可包括没有列出的步骤或单元。
33.实施例一
34.图1是本发明实施例一提供的一种终端识别方法的流程图,本实施例可适用于对终端信息进行多维度识别以提高终端识别的成功率以及准确性的情况,该方法可以由终端识别装置执行,该装置可以通过软件和/或硬件的方式实现,并一般可以直接集成在执行本方法的电子设备中,该电子设备可以是终端设备,也可以是服务器设备,本发明实施例并不对执行终端识别方法的电子设备的类型进行限定。具体的,如图1所示,该终端识别方法具体可以包括如下步骤:
35.s110、获取待识别终端的待识别数据包;其中,所述待识别数据包包括目标通信协议数据和目标应用层协议数据。
36.其中,待识别终端可以是接入网络的需要进行识别的终端设备,例如可以是普通电脑、手机、智能家居设备或物联网设备等任意联网设备,本发明实施例对此并不进行限制。待识别数据包可以是需要进行识别的数据包,可以通过对待识别数据包中的数据对待识别终端进行识别;例如可以是待识别网络数据包,可以通过待识别网络数据包中的数据对待识别终端进行识别,本发明实施例对此并不进行限制。目标通信协议数据可以是待识别数据包中的通信协议数据。目标应用层协议数据可以是待识别数据包中的应用层协议数据,例如可以是tcp/ip数据包中应用层的ssl/tls(secure socket layer/transport layer security,安全套接层/传输层安全协议)协议数据,也可以是tcp/ip数据包中应用层的http协议数据等,本发明实施例对此并不进行限制。
37.在本发明实施例中,获取待识别终端的待识别数据包,以获取待识别终端的目标通信协议数据和目标应用层协议数据。具体的,获取待识别终端的待识别数据包,可以是通过专用的数据包采集设备,如dpi(deep packet inspection深度报文检测)采集设备,获取待识别终端的待识别数据包;也可以是通过数据包抓包开发库,如libpcap(packet capture library,数据包捕获函数库)或dpdk(data plane development kit,数据平面开发套件),获取待识别终端的待识别数据包等,本发明实施例对获取待识别终端的待识别数据包的具体实现方式并不进行限制,只要能够实现待识别数据包的获取即可。
38.s120、根据所述待识别数据包生成所述待识别终端的待识别指纹数据。
39.其中,待识别指纹数据可以是需要进行识别的指纹数据,例如可以是能够表征数据特征的指纹数据等,本发明实施例对此并不进行限制。可以理解的是,待识别指纹数据可以是待识别终端的特征数据,可以用于表征待识别终端。
40.在本发明实施例中,在获取待识别终端的待识别数据包之后,可以进一步根据待识别数据包生成待识别终端的待识别指纹数据。具体的,根据待识别数据包生成待识别终端的待识别指纹数据,可以是根据待识别数据包中所有数据生成待识别终端的待识别指纹数据,也可以是根据待识别数据包中部分数据生成待识别终端的待识别指纹数据,本发明实施例对此并不进行限制。
41.s130、按照设定匹配规则对所述待识别指纹数据进行特征匹配。
42.其中,设定匹配规则可以是预设的指纹数据与终端信息的匹配规则。可以理解的
是,可以通过设定匹配规则将指纹数据与终端信息进行匹配。示例性的,如果通过指纹数据a可以识别到待识别终端的终端信息a,则在设定匹配规则中,可以将指纹数据a与终端信息a进行匹配。如果通过指纹数据b可以识别到待识别终端的终端信息b,则在设定匹配规则中,可以将指纹数据b与终端信息b进行匹配。
43.在本发明实施例中,在根据待识别数据包生成待识别终端的待识别指纹数据之后,可以进一步按照设定匹配规则对待识别指纹数据进行特征匹配。示例性的,如果设定匹配规则中包括指纹数据a、指纹数据b和指纹数据c,则按照设定匹配规则对待识别指纹数据进行特征匹配,可以是将待识别指纹数据的特征分别与指纹数据a、指纹数据b以及指纹数据c的特征进行匹配。
44.s140、根据所述待识别指纹数据的特征匹配结果确定所述待识别终端的识别结果。
45.其中,特征匹配结果可以是按照设定匹配规则对待识别指纹进行特征匹配得到的结果。示例性的,假设设定匹配规则中包括指纹数据a和指纹数据b,而且,指纹数据a与终端信息a相匹配,指纹数据b与终端信息b相匹配,则可以将待识别指纹数据的特征分别与指纹数据a和指纹数据b的特征进行匹配。此时,如果待识别指纹数据的特征与指纹数据b的特征相匹配,则特征匹配结果可以是与指纹数据b相匹配的终端信息b。待识别终端的识别结果可以是识别出的任意的终端信息,例如可以是终端的硬件设备的属性信息,也可以是终端硬件设备上操作系统的类型信息,还可以是终端硬件设备的操作系统上的服务信息,或者可以是终端硬件设备的操作系统的服务使用的软件版本的信息等,本发明实施例对此并不进行限制。
46.在本发明实施例中,在按照设定匹配规则对待识别指纹数据进行特征匹配之后,可以进一步根据待识别指纹数据的特征匹配结果确定待识别终端的识别结果。示例性的,如果在设定匹配规则中,指纹数据a与终端信息a相匹配,指纹数据b与终端信息b相匹配,且按照设定匹配规则对待识别指纹数据进行特征匹配时,得到的特征匹配结果是待识别指纹数据与指纹数据b相匹配,那么可以根据指纹数据b相匹配的终端信息b确定待识别终端的识别结果。
47.本实施例的技术方案,通过获取待识别终端的待识别数据包中的目标通信协议数据和目标应用层协议数据,并根据待识别数据包生成待识别终端的待识别指纹数据,以按照设定匹配规则对待识别指纹数据进行特征匹配,从而根据待识别指纹数据的特征匹配结果确定待识别终端的识别结果,解决现有的终端识别方法因适用场景较单一、数据信息少以及数据特征容易变化,而导致的终端识别的成功率较低和准确性较差的问题,能够对终端信息进行多维度识别,从而提高终端识别的成功率以及准确性。
48.实施例二
49.图2是本发明实施例二提供的一种终端识别方法的流程图,本实施例是对上述各技术方案的进一步细化,给出了根据待识别数据包生成待识别终端的待识别指纹数据,按照设定匹配规则对待识别指纹数据进行特征匹配,以及根据待识别指纹数据的特征匹配结果确定待识别终端的识别结果的多种具体可选的实现方式。本实施例中的技术方案可以与上述一个或多个实施例中的各个可选方案结合。如图2所示,该方法可以包括如下步骤:
50.s210、获取待识别终端的待识别数据包。
51.s220、根据所述待识别数据包生成所述待识别终端的待识别指纹数据。
52.可选的,根据待识别数据包生成待识别终端的待识别指纹数据,可以包括:对待识别数据包的目标通信协议数据进行解析,得到至少一个目标通信协议字段数据;根据目标通信协议字段数据和目标通信协议字段数据匹配的字段标识符生成目标通信协议数据匹配的第一待识别指纹数据;和/或,对待识别数据包的目标应用层协议数据进行解析,得到至少一个目标应用层协议字段数据;根据目标应用层协议字段数据和目标应用层协议数据匹配的字段标识符生成目标应用层协议数据匹配的第二待识别指纹数据。
53.其中,目标通信协议字段数据可以是目标通信协议数据中目标通信协议字段的数据,例如可以是ip头部的df(don’t fragment,禁止分片)标记位数据、ip头部长度字段数据或tcp头部的窗口大小字段数据等,本发明实施例对此并不进行限制。字段标识符可以是不同字段的标识符,可以用于标识不同字段。示例性的,ip头部的df标记位的字段标识符为f,ip头部长度的字段标识符为l等,本发明实施例对具体的字段标识符并不进行限制,只要能够实现对不同字段的标识即可。第一待识别指纹数据可以是与目标通信协议数据匹配的一个待识别指纹数据。目标应用层协议字段数据可以是目标应用层协议数据中目标应用层协议字段的数据,例如可以是ssl/tls协议数据中ssl/tls协议版本字段数据、ssl/tls协议数据中支持的密码字段数据、http协议数据中http协议版本字段数据或http协议数据中http请求头名字字段数据等,本发明实施例对此并不进行限制。第二待识别指纹数据可以是与目标应用层协议数据匹配的一个待识别指纹数据。
54.具体的,在待识别数据包包括目标通信协议数据的情况下,可以对待识别数据包的目标通信协议数据进行解析,得到至少一个目标通信协议字段数据,并根据目标通信协议字段数据和目标通信协议字段数据匹配的字段标识符生成目标通信协议数据匹配的第一待识别指纹数据。示例性的,如果对待识别数据包的目标通信协议数据进行解析,可以得到一个df标记位数据,而且df标记位数据为0,df标记位数据匹配的字段标识符为f,则第一待识别指纹数据可以为f0。
55.可以理解的是,对目标通信协议数据进行解析,可以得到多个目标通信协议字段数据。当对目标通信协议数据进行解析得到多个目标通信协议字段数据时,可以根据目标通信协议字段数据和目标通信协议字段数据匹配的字段标识符按预设的固定字段顺序生成第一待识别指纹数据。需要说明的是,在生成第一待识别指纹数据时,不同类型的多个目标通信协议字段数据之间可以使用第一分隔符进行分隔,如冒号分隔符。相同类型的多个目标通信协议字段数据之间可以使用第二分隔符进行分隔,如逗号分隔符。本发明实施例对分隔符的具体符号并不进行限制,只要能够实现对多个目标通信协议字段数据的分隔即可。示例性的,如果对待识别数据包的目标通信协议数据进行解析,可以得到df标记位数据和ip头部长度字段数据,而且df标记位数据为0,df标记位数据匹配的字段标识符为f,ip头部长度字段数据为24,ip头部长度字段数据匹配的字符标识符为l,则根据预设的固定字段顺序生成的第一待识别指纹数据可以是f0:l24。
56.具体的,在待识别数据包包括目标应用层协议数据的情况下,可以对待识别数据包的目标应用层协议数据进行解析,得到至少一个目标应用层协议字段数据,并根据目标应用层协议字段数据和目标应用层协议数据匹配的字段标识符生成目标应用层协议数据匹配的第二待识别指纹数据。示例性的,如果目标应用层协议数据是目标ssl/tls协议数
据,则可以对目标ssl/tls协议数据进行解析。如果对目标ssl/tls协议数据进行解析,可以得到一个ssl/tls协议版本字段数据,而且ssl/tls协议版本字段数据为432,ssl/tls协议版本字段数据匹配的字段标识符为v,则第二待识别指纹数据可以是v432。在另一个示例中,如果目标应用层协议数据是目标http协议数据,则可以对目标http协议数据进行解析。如果对目标http协议数据进行解析,得到的目标应用层协议字段数据是http请求头名字字段数据,而且http请求头名字字段数据为qingqiu1,http请求头名字字段数据匹配的字段标识符为n,则第二待识别指纹数据可以是nqingqiu1。
57.可以理解的是,对目标应用层协议数据进行解析,可以得到多个目标应用层协议字段数据。当对目标应用层协议数据进行解析得到多个目标应用层协议字段数据时,可以根据目标应用层协议字段数据和目标应用层协议字段数据匹配的字段标识符按预设的固定字段顺序生成第二待识别指纹数据。需要说明的是,在生成第二待识别指纹数据时,不同类型的多个目标应用层协议字段数据之间可以使用第一分隔符进行分隔,如冒号分隔符。相同类型的多个目标应用层协议字段数据之间可以使用第二分隔符进行分隔,如逗号分隔符。本发明实施例对分隔符的具体符号并不进行限制,只要能够实现对多个目标应用层协议字段数据的分隔即可。示例性的,如果对待识别数据包的目标ssl/tls协议数据进行解析,可以得到ssl/tls协议版本字段数据和支持的密码字段数据,而且ssl/tls协议版本字段数据为432,ssl/tls协议版本字段数据匹配的字段标识符为v,支持的密码字段数据为546714,支持的密码字段数据匹配的字段标识符为s,则根据预设的固定字段顺序生成的第二待识别指纹数据可以是v432:s546714。在另一个示例中,如果对待识别数据包的目标http协议数据进行解析,可以得到http协议版本字段数据和http请求头名字字段数据,而且http协议版本字段数据为21,http协议版本字段数据匹配的字段标识符为r,http请求头名字字段数据为qingqiu1和qingqiu2,http请求头名字字段数据匹配的字段标识符为n,则根据预设的固定字段顺序生成的第二待识别指纹数据可以是r21:nqingqiu1,nqingqiu2。
58.s230、获取特征数据库存储的第一基准特征数据;其中,所述第一基准特征数据包括至少一个基准单元特征数据;所述基准单元特征数据包括基准字段标识符和基准字段数据。
59.其中,特征数据库可以是存储特征数据和与特征数据相匹配的终端信息的数据库,可以用于根据特征数据库确定与特征数据匹配的终端信息。可以理解的是,特征数据库可以是根据现有的特征数据与终端信息的匹配关系确定的,而且可以根据现有匹配关系进行实时更新。示例性的,图3是本发明实施例二提供的特征数据库中特征数据与终端信息匹配的示意图,如图3所示,在特征数据库中,一个特征数据可以与多个终端信息相匹配。第一基准特征数据可以是特征数据库中能够作为基准的一个特征数据,可以用于对待识别指纹数据进行特征匹配。可以理解的是,在特征数据库中存储的有与第一基准特征数据匹配的终端信息。基准单元特征数据可以是第一基准特征数据中的单个字段特征数据,可以用于对单个字段特征进行特征匹配。基准字段标识符可以是基准单一特征数据中的字段标识符,可以用于与待识别指纹数据中的字段标识符进行匹配。基准字段数据可以是基准单元特征数据中的字段数据,可以用于与待识别指纹数据中的字段数据进行匹配。可以理解的是,第一基准特征数据可以有多个基准单元特征数据,也即,在特征数据库中可以有多个基准单元特征数据匹配一个终端信息。
60.在本发明实施例中,在根据待识别数据包生成待识别终端的待识别指纹数据之后,可以进一步获取特征数据库存储的第一基准特征数据。具体的,第一基准特征数据中可以包括至少一个基准单元特征数据。其中,每个基准单元特征数据都包括基准字段标识符和基准字段数据。
61.s240、根据所述第一基准特征数据对所述待识别指纹数据进行特征匹配,得到所述待识别指纹数据的特征匹配结果。
62.在本发明实施例中,在获取特征数据库存储的第一基准特征数据之后,可以进一步根据第一基准特征数据对待识别指纹数据进行特征匹配,以得到待识别指纹数据的特征匹配结果。可以理解的是,如果待识别指纹数据与第一基准特征数据相匹配,则可以将特征数据库中与第一基准特征数据匹配的终端信息确定为待识别指纹数据的特征匹配结果。
63.可选的,在根据基准特征数据对待识别指纹数据进行特征匹配之后,还可以包括:确定待识别指纹数据的特征匹配结果的匹配命中频率;将待识别指纹数据的特征匹配结果与匹配命中频率存储至匹配缓存表中;建立待识别指纹数据的特征匹配结果与匹配命中频率之间的映射关系;其中,匹配命中频率根据待识别指纹数据的匹配次数实时更新。
64.其中,匹配命中频率可以是待识别指纹数据匹配成功的频率。匹配缓存表可以是存储待识别指纹数据和待识别指纹数据的特征匹配结果的缓存表。可以理解的是,匹配缓存表可以采用内存表进行存储,也可以采用外部数据库表,如redis(remote dictionary server,远程字典服务)进行存储,本发明实施例对此并不进行限制。
65.具体的,在根据基准特征数据对待识别指纹数据进行特征匹配之后,可以进一步确定待识别指纹数据的特征匹配结果的匹配命中频率,并将待识别指纹数据的特征匹配结果与匹配命中频率存储至匹配缓存表中,以建立待识别指纹数据的特征匹配结果与匹配命中频率之间的映射关系。具体的,匹配命中频率可以根据待识别指纹数据的匹配次数进行实时更新。
66.可选的,按照设定匹配规则对待识别指纹数据进行特征匹配,可以包括:获取匹配缓存表存储的第二基准特征数据;其中,第二基准特征数据包括基准指纹数据和基准指纹数据匹配的指纹匹配结果;基准指纹数据包括目标通信协议数据匹配的第一基准指纹数据和/或目标应用层协议数据匹配的第二基准指纹数据;根据第二基准特征数据对待识别指纹数据进行特征匹配,得到待识别指纹数据的特征匹配结果。
67.其中,第二基准特征数据可以是匹配缓存表中能够作为基准的另一个特征数据。基准指纹数据可以是第二基准特征数据中能够作为基准的指纹数据。基准指纹数据匹配的指纹匹配结果可以是与基准指纹数据匹配的终端信息。第一基准指纹数据可以是与目标通信协议数据匹配的一个基准指纹数据。第二基准指纹数据可以是与目标应用层协议数据匹配的另一个基准指纹数据。
68.具体的,按照设定匹配规则对待识别指纹数据进行特征匹配,可以获取匹配缓存表存储的第二基准特征数据中的基准指纹数据和基准指纹数据匹配的指纹匹配结果,并根据第二基准特征数据对待识别指纹数据进行特征匹配,以得到待识别指纹数据的特征匹配结果。可以理解的是,如果待识别指纹数据与第二基准特征数据中的基准指纹数据相匹配,则可以将第二基准特征数据中的基准指纹数据匹配的指纹匹配结果确定为待识别指纹数据的特征匹配结果。具体的,基准指纹数据可以包括第一基准指纹数据,也可以包括第二基
准指纹数据,或者还可以包括第一基准指纹数据和第二基准指纹数据,本发明实施例对此并不进行限制。
69.可选的,终端识别方法还可以包括:对匹配缓存表存储的第二基准特征数据按照匹配命中频率的大小顺序进行排序;在确定达到匹配缓存表的缓存更新周期的情况下,确定匹配命中频率的命中频率更新阈值;在匹配缓存表中删除匹配命中频率小于命中频率更新阈值的第二基准特征数据。
70.其中,缓存更新周期可以是对匹配缓存表进行更新的周期。可以理解的是,在终端进行识别的过程中,可能会出现特征数据过时,导致匹配缓存表中基准指纹数据与基准指纹数据匹配的指纹匹配结果不匹配的情况,或者,也可能会出现匹配缓存表中存储的基准特征数据过多的情况,因此需要对匹配缓存表进行更新,以删除匹配命中频率较低的第二基准特征数据。命中频率更新阈值可以是预设的对匹配缓存表进行更新时匹配命中频率的一个阈值,本发明实施例对此并不进行限制。
71.具体的,对匹配缓存表存储的第二基准特征数据按照匹配命中频率的大小顺序进行排序,并在确定达到匹配缓存表的缓存更新周期的情况下,确定匹配命中频率的命中频率更新阈值,以在匹配缓存表中删除匹配命中频率小于命中频率更新阈值的第二基准特征数据,从而释放匹配缓存表的存储空间。示例性的,命中频率更新阈值可以是5,在确定达到匹配缓存表的缓存更新周期的情况下,在匹配缓存表中删除匹配命中频率小于5的第二基准特征数据。
72.s250、确定所述待识别指纹数据的特征匹配结果中各个字段特征匹配结果的置信度权重值。
73.其中,字段特征匹配结果可以是根据特征数据库对待识别数据包中不同字段特征进行特征匹配得到的结果。示例性的,字段特征匹配结果可以是tcp/ip协议字段特征匹配结果,也可以是ssl/tls协议字段特征匹配结果,或者还可以是http协议字段特征匹配结果,本发明实施例对此并不进行限制。置信度权重值可以是根据字段特征匹配结果的可信任的程度确定的权重值,本发明实施例对置信度权重值的具体数值并不进行限制。示例性的,tcp/ip协议字段特征匹配结果的置信度权重值可以是0.4,ssl/tls协议字段特征匹配结果的置信度权重值可以是0.4,http协议字段特征匹配结果的置信度权重值可以是0.2。
74.在本发明实施例中,在根据第一基准特征数据对待识别指纹数据进行特征匹配,得到待识别指纹数据的特征匹配结果之后,可以进一步确定待识别指纹数据的特征匹配结果中各个字段特征匹配结果的置信度权重值。
75.s260、根据各所述字段特征匹配结果的置信度权重值以及所述各个字段特征匹配结果计算综合字段特征匹配结果。
76.其中,综合字段特征匹配结果可以是根据字段特征匹配结果的置信度权重值与字段特征匹配结果计算得到的结果。示例性的,如果字段特征匹配结果为终端信息a,且字段特征匹配结果的置信度权重值为0.4,则综合字段特征匹配结果可以为0.4概率的终端信息a。
77.在本发明实施例中,在确定待识别指纹数据的特征匹配结果中各个字段特征匹配结果的置信度权重值之后,可以进一步根据各字段特征匹配结果的置信度权重值以及各个字段特征匹配结果计算综合字段特征匹配结果。
78.可选的,根据各字段特征匹配结果的权重值以及各个字段特征匹配结果计算综合字段特征匹配结果,可以包括:获取各个字段特征匹配结果的特征匹配权重值;根据各字段特征匹配结果的置信度权重值、特征匹配权重值以及各个字段特征匹配结果计算综合字段特征匹配结果。
79.其中,特征匹配权重值可以是根据特征数据库对待识别数据包中不同字段特征进行特征匹配时,匹配的终端信息所对应的权重值。示例性的,假设在特征数据库中终端信息a的权重值为0.8,终端信息b的权重值为0.6,如果根据特征数据库对tcp/ip协议字段特征进行特征匹配,得到的字段特征匹配结果为终端信息a,则该字段特征匹配结果的特征匹配权重值可以为0.8。如果根据特征数据库对http协议字段特征进行特征匹配,得到的字段特征匹配结果为终端信息b,则该字段特征匹配结果的特征匹配权重值可以为0.7。
80.具体的,获取各个字段特征匹配结果的特征匹配权重值,并根据各字段特征匹配结果的置信度权重值、特征匹配权重值以及各个字段特征匹配结果计算综合字段特征匹配结果。示例性的,假设tcp/ip协议字段特征匹配结果的置信度权重值是0.4,特征匹配权重值为0.8,字段特征匹配结果为终端信息a,则综合字段特征匹配结果可以为0.4*0.8概率的终端信息a。可以理解的是,在两个字段特征匹配结果相同的情况下,分别根据字段特征匹配结果的置信度权重值、特征匹配权重值以及字段特征匹配结果计算综合字段特征匹配结果之后,可以进一步将两个综合字段特征匹配结果相加,以得到字段特征匹配结果的综合字段特征匹配结果。示例性的,如果tcp/ip协议字段特征匹配结果为终端信息b,tcp/ip协议字段特征匹配结果的置信度权重值是0.4,特征匹配权重值为0.5,则综合字段特征匹配结果可以为0.4*0.5概率的终端信息b;如果http协议字段特征匹配结果为终端信息b,http协议字段特征匹配结果的置信度权重值是0.2,特征匹配权重值为0.7,则综合字段特征匹配结果可以为0.2*0.7概率的终端信息b,则可以将两个综合字段特征匹配结果相加得到终端信息b对应的的综合字段特征匹配结果,也即0.34概率的终端信息b。
81.s270、从所述综合字段特征匹配结果中筛选目标字段特征匹配结果作为待识别终端的识别结果。
82.其中,目标字段特征匹配结果可以是在综合字段特征匹配结果中筛选出的字段特征匹配结果。
83.在本发明实施例中,在根据各字段特征匹配结果的置信度权重值以及各个字段特征匹配结果计算综合字段特征匹配结果之后,可以进一步从综合字段特征匹配结果中筛选目标字段特征匹配结果作为待识别终端的识别结果。具体的,可以筛选综合字段特征匹配结果中概率值最高的一个目标字段特征匹配结果,也可以筛选综合字段特征匹配结果中概率值最高的多个目标字段特征匹配结果。示例性的,如果综合字段特征匹配结果分别为0.4*0.8a+0.4*0.5*a=0.52a、0.4*0.9b=0.36b、0.2*0.7c=0.14c,也即终端信息a的得分为0.52,终端信息b的得分为0.36,终端信息c的得分为0.14,则可以筛选得分最高的一个目标字段特征匹配结果作为待识别终端的识别结果,也即待识别终端的识别结果为终端信息a;也可以筛选得分最高的两个目标字段特征匹配结果作为待识别终端的识别结果,也即待识别终端的识别结果为终端信息a以及终端信息b。
84.本实施例的技术方案,通过获取待识别终端的待识别数据包,根据待识别数据包生成待识别终端的待识别指纹数据,获取特征数据库存储的第一基准特征数据,根据第一
基准特征数据对待识别指纹数据进行特征匹配,得到待识别指纹数据的特征匹配结果,确定待识别指纹数据的特征匹配结果中各个字段特征匹配结果的置信度权重值,根据各字段特征匹配结果的置信度权重值以及各个字段特征匹配结果计算综合字段特征匹配结果,从综合字段特征匹配结果中筛选目标字段特征匹配结果作为待识别终端的识别结果,解决现有的终端识别方法因适用场景较单一、数据信息少以及数据特征容易变化,而导致的终端识别的成功率较低和准确性较差的问题,能够对终端信息进行多维度识别,从而提高终端识别的成功率以及准确性。
85.实施例三
86.tcp/ip是互联网中最广泛的网络协议类型,各个操作系统在rfc标准允许范围内,各自以不同的方式实现了可选项部分。利用这些tcp/ip的差异性分析协议数据包,可以识别操作系统类型或版本。ssl/tls可应用于各种服务器软件中,在互联网中流量中占据较大的比率,数据获取便利。ssl/tls握手请求第一个包是client hello(客户端请求包),消息类型为22,它是ssl通信的第一步,客户端将自身的信息发往服务器进行后续的参数协商,这个数据包及其生成方式取决于构建客户端应用程序时所使用的软件包和方法,具有较高的重复性和相似性,即便ssl/tls是加密协议,在client hello中也能够提取到特征信息。很多轻量级客户端在账号登录以外的网页资源访问操作,仍然使用http协议,因此将http的用户代理识别技术作为补充手段。因此,本发明实施例以获取tcp/ip类型数据、ssl/tls类型数据以及http类型数据为例进行具体说明。图4是本发明实施例三提供的一种终端识别方法的具体示例流程图,如图4所示,该终端识别方法可以具体包括以下内容:
87.(1)在采样周期内通过采集单元获取网络数据包(也即待识别数据包),对采集到的网络数据包进行数据包过滤,丢弃非ip协议和非tcp协议包,并对tcp/ip协议栈和应用层进行解析,将解析得到的ip数据、tcp数据、ssl/tls数据或http数据进行保存。示例性的,采样周期可以是5分钟,也可以是10分钟等,本发明实施例对此并不进行限制。具体的,对tcp/ip协议栈和应用层进行解析,可以是解析网络数据包的第三层协议类型是否为ipv4或ipv6协议,并在第三层协议类型是ipv4(internet protocol version 4,网际协议版本4)或ipv6(internet protocol version 6,网际协议版本6)协议时,判断网络数据包的第四层协议类型是否为tcp协议。在第四层协议类型是tcp协议时,可以进一步判断网络数据包中的tcp数据包是否为syn(建立连接)类型,若tcp数据包是syn类型,则可以将网络数据包确定为待识别数据包,并解析网络数据包中ipv4或ipv6协议头部数据以及tcp头部数据。或者,在第四层协议类型是tcp协议时,进一步判断网络数据包中应用层协议类型是否为ssl/tls协议,若应用层协议类型是ssl/tls协议,且client hello的类型为22,session id(会话标识)为空时,则可以将网络数据包确定为待识别数据包,并解析网络数据包中ssl/tls包内容。或者,在第四层协议类型是tcp协议时,进一步判断网络数据包中应用层协议类型是否为http协议,若应用层协议类型是http协议,且是客户端发送的请求包,则可以将网络数据包中http请求头数据确定为待识别数据包,并解析网络数据包中http请求头数据。可以理解的是,如果网络数据包的第三层协议类型不是ipv4或ipv6协议,或者第四层协议类型不是tcp协议,则将该网络数据包丢弃,继续获取下一个网络数据包。
88.(2)通过指纹提取单元将待识别数据包中的数据细分为tcp/ip类型数据、ssl/tls类型数据和http类型数据。每个类型按照相应的rfc标准格式提取相关字段信息,依照预设
的各类型数据的格式,对二进制数据进行格式化得到待识别指纹数据。示例性的,若是tcp/ip类型数据,则提取字段数据包括但不限于ip头部的df标记位、ip头部长度、tcp头部的window size(窗口大小)、options(可选项)中各属性及值或timestamp(时间戳);若是ssl/tls类型数据,则提取字段数据包括但不限于协议版本、支持的密码、扩展列表或椭圆曲线密码及其格式;若是http类型数据,则提取字段数据包括但不限于版本号或所有请求头名字和值的序列;并将提取的字段数据按照固定的顺序依据“字段标识符+字段数据”的格式进行数据连接,从而生成待识别指纹数据。其中,多个同类型字段数据以逗号分隔,多个不同类型字段数据以冒号分隔。
89.示例性的,可以根据以下数据格式化原则对待识别数据包中的数据进行格式化,以生成待识别指纹数据:如果待识别数据包中的目标通信协议字段数据或目标应用层协议字段数据的值为空,则可以在待识别指纹数据中以横线
“‑”
占位;如果待识别数据包中的目标通信协议字段数据或目标应用层协议字段数据为数字类型,则可以将二进制值转换为十进制值,进一步在待识别指纹数据中以十进制方式存储;如果待识别数据包中的目标通信协议字段数据或目标应用层协议字段数据为字符串类型,则可以将所有字符串转换为小写字符,进一步在待识别指纹数据中以小写字符方式存储;如果待识别数据包中的目标通信协议字段数据或目标应用层协议字段数据为其他类型,则可以将其他类型数据转换为十六进制字符串,进一步在待识别指纹数据中以十六进制字符串方式存储。需要说明的是,如果待识别数据包中的目标通信协议字段数据或目标应用层协议字段数据为特殊的字符串,则可以根据如下标准进行转义,并进一步在待识别指纹数据中以转换后的数据存储:各字段中的回车符、换行符可以使用0x0d、0x0a进行转义;英文逗号“,”双引号“"”单引号
“’”
以及竖线分隔符“|”可以按照rfc1738标准分别使用0x2c、0x22、0x27、0x7c进行转义。
90.(3)通过指纹匹配单元查询特征数据库中符合条件的终端信息,并返回“未匹配”或“匹配成功”的查询结果。其中,特征数据库支持tcp/ip、ssl/tls和http三个维度的信息,在特征数据库中通过定义的一个或多个数学运算、摘要匹配和字符串通配符检验(如正则匹配)规则,建立起指纹数据和终端信息的映射关系。指纹匹配单元遵循相同的规则,对待识别指纹数据进行计算和数据检验,从而得到待识别指纹数据的识别结果。可以理解的是,终端信息会不断变化,基于特征的分析无法精确的识别出终端信息,因此对待识别指纹数据进行识别时,会返回一个或多个识别结果,以进一步对识别结果进行分析。在特征数据库中,每条指纹可以关联一个终端信息,终端信息可以是系统信息和/或客户端软件信息,每个系统信息可以包含多个特征,每个客户端软件信息也可以包含多个特征。
91.图5是本发明实施例三提供的特征数据库识别终端信息的流程示意图,如图5所示,遍历特征数据库中的每一条特征;对待识别指纹数据进行解析,依据冒号和逗号分解为多个类型组和每个类型组的多个数据,提取待识别指纹数据中的每一个字段数据的字符标识符,并依据字符标识符进行对应的数学运算、摘要匹配或正则匹配;若待识别指纹数据中的每个字段数据均和特征数据库中的特征匹配成功,则返回特征数据库中特征匹配的终端信息;若待识别指纹数据中有一个字段数据和特征数据库中的特征未匹配成功,则可以确认待识别指纹数据与特征数据库中的特征不匹配,可以对继续对下一条特征进行匹配。示例性的,若特征数据库中的特征规则是*字符,则待识别指纹数据匹配成功;若特征数据库中的特征规则是数据运算,则按照规则要求的算法进行等于、大于、小于、不等于、与某个常
数的乘积等于或余数等于的运算步骤检查;若特征数据库中的特征规则是摘要匹配,则根据待识别指纹数据计算md5(message-digest algorithm,信息摘要算法)值,并与规则中约定的md5值比较;若特征数据库中的特征规则是字符串匹配,则调用正则匹配进行检查,同时确定字符串匹配的其它约束,若是包含待识别指纹数据,则正则匹配为通过,若是不包含待识别指纹数据,则正则不匹配为通过。
92.(4)在通过指纹匹配单元对待识别指纹数据进行识别之前,还可以通过匹配加速单元对终端信息进行识别,以提高待识别指纹数据的匹配效率。将指纹数据和匹配结果数据以键值对的方式添加到匹配缓存表中,则可以将历史处理结果保存下来,以通过匹配缓存表对待识别指纹数据进行识别,从而最大程度的减少特征匹配时运算和匹配性能的开销。具体的,当收到一条指纹匹配结果时,查找匹配缓存表中是否存在相应记录,若不存在,则向匹配缓存表中插入一条记录,并将当前命中计数为1;若已经存在,则更新命中次数加1。通过设定匹配缓存表的老化周期(也即缓存更新周期)和命中次数最小限制(也即命中频率更新阈值),在到达设定的老化周期时,删除匹配缓存表中命中次数小于命中次数最小限制的指纹数据与匹配结果数据,以及时删除并释放小概率数据,节省内存空间且更好的提高查找效率。具体的,匹配缓存表中的记录可以依照命中次数由大到小的顺序重新排序,确保高频的优先被查到。可选的,还可以建立指纹数据和匹配失败的缓存表,以便进一步对匹配失败的指纹数据进行识别。图6是本发明实施例三提供的匹配加速单元识别终端信息的流程示意图,如图6所示,在获取待识别指纹数据(也即待匹配指纹数据)之后,通过匹配加速单元查询匹配缓存表,若匹配成功,则返回终端信息,若未查找到,则通过特征数据库进行匹配。
93.(5)通过组合分析单元将指纹匹配单元返回的一个或多个的匹配结果进行分析。具体的,根据待识别终端的ip地址创建终端信息识别结果统计表,并依次建立表项,按照置信系数(也即置信权重值)、概率系数(也即特征匹配权重值)、出现次数等累计并计算分值写入统计表中。可以理解的是,待识别终端的ip地址在识别时是待识别终端的唯一标识信息。在特征数据库中,每条特征可以对应多条终端信息,对应的每个终端信息都有概率系数。当一个待识别指纹数据匹配到一个终端信息时,将终端信息写入终端信息识别结果统计表,并计算“1*类型置信系数*概率系数”的分值。
94.示例性的,图6是本发明实施例三提供的识别结果分析的示意图,如图6所示,对特征数据库中的tcp/ip数据类型、ssl/tls数据类型、http数据类型分别设定置信系数,例如可以分别为0.4、0.4、0.2。假设待识别指纹数据为tcp/ip类型数据,待识别指纹数据与特征数据库中的sig1特征相匹配,sig1特征分别对应系统类型os1、系统类型os2、软件类型app2和软件类型app3,且os1、os2的概率系数分别为0.3、0.7,app2、app3的概率系数分别为0.5、0.5,则可以在终端信息识别结果统计表中增加os1、os2、app2和app3的统计项,并分别累加分值1*0.4*0.3,1*0.4*0.7,1*0.4*0.5,1*0.4*0.5。可以理解的是,若获取设定时间内的网络数据包,则可以将识别结果的分值进行累加。示例性的,若获取下一个待识别指纹数据为http类型数据,该待识别指纹数据与特征数据库中的sig2特征相匹配,sig2特征对应系统类型os1,其os1的概率系数为0.8,则可以在终端信息识别结果统计表中os1的统计项上累加1*0.2*0.8的分值。
95.可选的,在对网络数据包进行周期性采样截止后,可以将终端信息识别结果统计
表中的终端信息识别结果按得分从高到低进行排序,并选取前n项结果作为最终的终端信息识别结果。
96.上述技术方案,通过设定采样周期,能够有效降低单个或单条数据的随机性导致的识别不准确的问题;通过设置匹配缓存表,能够提高处理效率,增强实时分析能力;通过多种类型数据组合采样分析,能够提高待识别终端的识别成功率和准确性。
97.实施例四
98.图7是本发明实施例四提供的一种终端识别装置的示意图,如图7所示,所述装置包括:待识别数据包获取模块710、待识别指纹数据生成模块720、特征匹配模块730以及识别结果确定模块740,其中:
99.待识别数据包获取模块710,用于获取待识别终端的待识别数据包;其中,所述待识别数据包包括目标通信协议数据和目标应用层协议数据;
100.待识别指纹数据生成模块720,用于根据所述待识别数据包生成所述待识别终端的待识别指纹数据;
101.特征匹配模块730,用于按照设定匹配规则对所述待识别指纹数据进行特征匹配;
102.识别结果确定模块740,用于根据所述待识别指纹数据的特征匹配结果确定所述待识别终端的识别结果。
103.本实施例的技术方案,通过获取待识别终端的待识别数据包中的目标通信协议数据和目标应用层协议数据,并根据待识别数据包生成待识别终端的待识别指纹数据,以按照设定匹配规则对待识别指纹数据进行特征匹配,从而根据待识别指纹数据的特征匹配结果确定待识别终端的识别结果,解决现有的终端识别方法因适用场景较单一、数据信息少以及数据特征容易变化,而导致的终端识别的成功率较低和准确性较差的问题,能够对终端信息进行多维度识别,从而提高终端识别的成功率以及准确性。
104.可选的,待识别指纹数据生成模块720,可以具体用于:对待识别数据包的目标通信协议数据进行解析,得到至少一个目标通信协议字段数据;根据目标通信协议字段数据和目标通信协议字段数据匹配的字段标识符生成目标通信协议数据匹配的第一待识别指纹数据;和/或,对待识别数据包的目标应用层协议数据进行解析,得到至少一个目标应用层协议字段数据;根据目标应用层协议字段数据和目标应用层协议数据匹配的字段标识符生成目标应用层协议数据匹配的第二待识别指纹数据。
105.可选的,特征匹配模块730,可以具体用于:获取特征数据库存储的第一基准特征数据;其中,第一基准特征数据包括至少一个基准单元特征数据;基准单元特征数据包括基准字段标识符和基准字段数据;根据第一基准特征数据对待识别指纹数据进行特征匹配,得到待识别指纹数据的特征匹配结果。
106.可选的,特征匹配模块730,还可以具体用于:确定待识别指纹数据的特征匹配结果的匹配命中频率;将待识别指纹数据的特征匹配结果与匹配命中频率存储至匹配缓存表中;建立待识别指纹数据的特征匹配结果与匹配命中频率之间的映射关系;其中,匹配命中频率根据待识别指纹数据的匹配次数实时更新。
107.可选的,特征匹配模块730,可以进一步用于,获取匹配缓存表存储的第二基准特征数据;其中,第二基准特征数据包括基准指纹数据和基准指纹数据匹配的指纹匹配结果;基准指纹数据包括目标通信协议数据匹配的第一基准指纹数据和/或目标应用层协议数据
匹配的第二基准指纹数据;根据第二基准特征数据对待识别指纹数据进行特征匹配,得到待识别指纹数据的特征匹配结果。
108.可选的,特征匹配模块730,还可以具体用于:对匹配缓存表存储的第二基准特征数据按照匹配命中频率的大小顺序进行排序;在确定达到匹配缓存表的缓存更新周期的情况下,确定匹配命中频率的命中频率更新阈值;在匹配缓存表中删除匹配命中频率小于命中频率更新阈值的第二基准特征数据。
109.可选的,识别结果确定模块740,可以具体用于:确定待识别指纹数据的特征匹配结果中各个字段特征匹配结果的置信度权重值;根据各字段特征匹配结果的置信度权重值以及各个字段特征匹配结果计算综合字段特征匹配结果;从综合字段特征匹配结果中筛选目标字段特征匹配结果作为待识别终端的识别结果。
110.可选的,识别结果确定模块740,还可以具体用于:获取各个字段特征匹配结果的特征匹配权重值;根据各字段特征匹配结果的置信度权重值、特征匹配权重值以及各个字段特征匹配结果计算综合字段特征匹配结果。
111.上述终端识别装置可执行本发明任意实施例所提供的终端识别方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明任意实施例提供的终端识别方法。
112.由于上述所介绍的终端识别装置为可以执行本发明实施例中的终端识别方法的装置,故而基于本发明实施例中所介绍的终端识别方法,本领域所属技术人员能够了解本实施例的终端识别装置的具体实施方式以及其各种变化形式,所以在此对于该终端识别装置如何实现本发明实施例中的终端识别方法不再详细介绍。只要本领域所属技术人员实施本发明实施例中终端识别方法所采用的装置,都属于本技术所欲保护的范围。
113.实施例五
114.图8是本发明实施例五提供的一种电子设备的结构示意图。图8示出了适于用来实现本发明实施方式的示例性电子设备12的框图。图8显示的电子设备12仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
115.如图8所示,电子设备12以通用计算设备的形式表现。电子设备12的组件可以包括但不限于:一个或者多个处理器16,存储器28,连接不同系统组件(包括存储器28和处理器16)的总线18。
116.总线18表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器,外围总线,图形加速端口,处理器或者使用多种总线结构中的任意总线结构的局域总线。举例来说,这些体系结构包括但不限于工业标准体系结构(industry standard architecture,isa)总线,微通道体系结构(micro channel architecture,mca)总线,增强型isa总线、视频电子标准协会(video electronics standards association,vesa)局域总线以及外围组件互连(peripheral component interconnect,pci)总线。
117.电子设备12典型地包括多种计算机系统可读介质。这些介质可以是任何能够被电子设备12访问的可用介质,包括易失性和非易失性介质,可移动的和不可移动的介质。
118.存储器28可以包括易失性存储器形式的计算机系统可读介质,例如随机存取存储器(random access memory,ram)30和/或高速缓存存储器32。电子设备12可以进一步包括其它可移动/不可移动的、易失性/非易失性计算机系统存储介质。仅作为举例,存储系统34
memory,eprom)或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
125.计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
126.计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、电线、光缆、射频(radio frequency,rf)等等,或者上述的任意合适的组合。
127.可以以一种或多种程序设计语言或其组合来编写用于执行本发明操作的计算机程序代码,所述程序设计语言包括面向对象的程序设计语言—诸如java、smalltalk、c++,还包括常规的过程式程序设计语言,诸如“c”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络,包括局域网(lan)或广域网(wan)连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
128.注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。
技术特征:
1.一种终端识别方法,其特征在于,包括:获取待识别终端的待识别数据包;其中,所述待识别数据包包括目标通信协议数据和目标应用层协议数据;根据所述待识别数据包生成所述待识别终端的待识别指纹数据;按照设定匹配规则对所述待识别指纹数据进行特征匹配;根据所述待识别指纹数据的特征匹配结果确定所述待识别终端的识别结果。2.根据权利要求1所述的方法,其特征在于,所述根据所述待识别数据包生成所述待识别终端的待识别指纹数据,包括:对所述待识别数据包的目标通信协议数据进行解析,得到至少一个目标通信协议字段数据;根据所述目标通信协议字段数据和所述目标通信协议字段数据匹配的字段标识符生成所述目标通信协议数据匹配的第一待识别指纹数据;和/或对所述待识别数据包的目标应用层协议数据进行解析,得到至少一个目标应用层协议字段数据;根据所述目标应用层协议字段数据和所述目标应用层协议数据匹配的字段标识符生成所述目标应用层协议数据匹配的第二待识别指纹数据。3.根据权利要求1所述的方法,其特征在于,所述按照设定匹配规则对所述待识别指纹数据进行特征匹配,包括:获取特征数据库存储的第一基准特征数据;其中,所述第一基准特征数据包括至少一个基准单元特征数据;所述基准单元特征数据包括基准字段标识符和基准字段数据;根据所述第一基准特征数据对所述待识别指纹数据进行特征匹配,得到所述待识别指纹数据的特征匹配结果。4.根据权利要求3所述的方法,其特征在于,在所述根据所述基准特征数据对所述待识别指纹数据进行特征匹配之后,还包括:确定所述待识别指纹数据的特征匹配结果的匹配命中频率;将所述待识别指纹数据的特征匹配结果与所述匹配命中频率存储至匹配缓存表中;建立所述待识别指纹数据的特征匹配结果与所述匹配命中频率之间的映射关系;其中,所述匹配命中频率根据所述待识别指纹数据的匹配次数实时更新。5.根据权利要求4所述的方法,其特征在于,所述按照设定匹配规则对所述待识别指纹数据进行特征匹配,包括:获取所述匹配缓存表存储的第二基准特征数据;其中,所述第二基准特征数据包括基准指纹数据和所述基准指纹数据匹配的指纹匹配结果;所述基准指纹数据包括所述目标通信协议数据匹配的第一基准指纹数据和/或所述目标应用层协议数据匹配的第二基准指纹数据;根据所述第二基准特征数据对所述待识别指纹数据进行特征匹配,得到所述待识别指纹数据的特征匹配结果。6.根据权利要求5所述的方法,其特征在于,所述方法还包括:对所述匹配缓存表存储的第二基准特征数据按照匹配命中频率的大小顺序进行排序;在确定达到所述匹配缓存表的缓存更新周期的情况下,确定匹配命中频率的命中频率
更新阈值;在所述匹配缓存表中删除所述匹配命中频率小于所述命中频率更新阈值的第二基准特征数据。7.根据权利要求1所述的方法,其特征在于,所述根据所述待识别指纹数据的特征匹配结果确定所述待识别终端的识别结果,包括:确定所述待识别指纹数据的特征匹配结果中各个字段特征匹配结果的置信度权重值;根据各所述字段特征匹配结果的置信度权重值以及所述各个字段特征匹配结果计算综合字段特征匹配结果;从所述综合字段特征匹配结果中筛选目标字段特征匹配结果作为所述待识别终端的识别结果。8.根据权利要求7所述的方法,其特征在于,所述根据各所述字段特征匹配结果的置信度权重值以及所述各个字段特征匹配结果计算综合字段特征匹配结果,包括:获取所述各个字段特征匹配结果的特征匹配权重值;根据各所述字段特征匹配结果的置信度权重值、所述特征匹配权重值以及所述各个字段特征匹配结果计算所述综合字段特征匹配结果。9.一种终端识别装置,其特征在于,包括:待识别数据包获取模块,用于获取待识别终端的待识别数据包;其中,所述待识别数据包包括目标通信协议数据和目标应用层协议数据;待识别指纹数据生成模块,用于根据所述待识别数据包生成所述待识别终端的待识别指纹数据;特征匹配模块,用于按照设定匹配规则对所述待识别指纹数据进行特征匹配;识别结果确定模块,用于根据所述待识别指纹数据的特征匹配结果确定所述待识别终端的识别结果。10.一种电子设备,其特征在于,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序;当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1-8中任一所述的终端识别方法。11.一种计算机存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1-8中任一所述的终端识别方法。
技术总结
本发明实施例公开了一种终端识别方法、装置、电子设备及存储介质。终端识别方法,可以具体包括以下步骤:获取待识别终端的待识别数据包;其中,所述待识别数据包包括目标通信协议数据和目标应用层协议数据;根据所述待识别数据包生成所述待识别终端的待识别指纹数据;按照设定匹配规则对所述待识别指纹数据进行特征匹配;根据所述待识别指纹数据的特征匹配结果确定所述待识别终端的识别结果。本发明实施例的技术方案能够对终端信息进行多维度识别,从而提高终端识别的成功率以及准确性。从而提高终端识别的成功率以及准确性。从而提高终端识别的成功率以及准确性。
技术研发人员:陈玲 田野 梁彧 傅强 王杰 杨满智 蔡琳 金红 陈晓光
受保护的技术使用者:北京恒安嘉新安全技术有限公司
技术研发日:2021.12.08
技术公布日:2022/3/8