本发明涉及设备指纹技术领域,特别涉及一种设备识别码获取方法及装置。
背景技术:
设备指纹是根据设备的软件、硬件信息计算得到的能够唯一标识设备的ID。设备指纹在精准营销、风险防控等领域具有重要的定位、识别和追踪作用。在设备指纹算法设计中,核心的关注点是如何协调设备指纹的差异性和稳定性之间的矛盾。现有的设备指纹算法中,通常的做法是将采集到的软硬件设备信息直接进行全量计算,通过选择冲突率较低的哈希算法得到相对唯一的指纹ID,现有技术的主要局限有如下两个方面:
1、稳定性不足。设备指纹的稳定性要求保证同一个设备对应同一个设备指纹,在设备信息发生微小变化时仍然能够识别。全量设备信息计算得到的指纹,某个属性稍微变化一点就会导致指纹不同,指纹的稳定性不足。
2、差异性不足。设备指纹的差异性要求保证不同的设备对应不同的设备指纹。为了保证上一点所述指纹的稳定性,就不得在指纹计算时对于设备信息进行一些取舍,这限制了参与指纹计算的属性维度,导致不同设备计算出的相同指纹的概率比较大,从而使得指纹的差异性不足。
技术实现要素:
本发明实施例的主要目的在于提出一种设备识别码获取方法及装置,本案获得的最终设备指纹作为设备识别码,能够解决了如何让设备指纹兼顾稳定性和差异性的问题,从而更加精确的定位和识别网络中的设备。
为实现上述目的,本发明提供了一种设备识别码获取方法,包括:
获取当前设备的设备信息;
将所述设备信息划分为主属性信息和附加属性信息;
根据所述主属性信息获得静态设备指纹;
根据所述静态指纹识别所述当前设备是否为历史设备;
如果所述当前设备是历史设备,则确定所述静态指纹所对应的历史设备信息,从所述历史设备信息中获得历史设备的附加属性信息;并对所述历史设备的附加属性信息和所述当前设备的附加属性信息进行匹配,获得相似度;
将所述相似度与设定的相似度阈值进行比对,根据比对结果获得所述当前设备的最终设备指纹;其中,所述最终设备指纹为设备识别码。
可选的,在本发明一实施例中,还包括:
如果所述当前设备不是历史设备,则根据所述当前设备的附加属性信息获得动态设备指纹;并将所述静态设备指纹和所述动态设备指纹合成为所述当前设备的最终设备指纹。
可选的,在本发明一实施例中,所述根据比对结果获得所述当前设备的最终设备指纹的步骤为:
如果所述比对结果是不满足匹配要求,则根据所述当前设备的附加属性信息获得动态设备指纹;并将所述静态设备指纹和所述动态设备指纹合成为所述当前设备的最终设备指纹。
可选的,在本发明一实施例中,所述根据比对结果获得所述当前设备的最终设备指纹的步骤为:
如果所述比对结果是满足匹配要求,则将所述历史设备的设备指纹作为所述当前设备的最终设备指纹。
可选的,在本发明一实施例中,将所述设备信息划分为主属性信息和附加属性信息的步骤包括:
对所述设备信息进行有效性校验和设备类型识别;
根据所述设备类型识别结果将校验通过的设备信息划分为主属性信息和附加属性信息;其中,划分的原则为:经过多次采集,获得的所述设备信息中的一属性信息不会变化,该属性信息为主属性信息,否则,该属性信息为附加属性信息。
为实现上述目的,本发明还提供了一种设备识别码获取装置,包括:
设备信息获取单元,用于获取当前设备的设备信息;
设备信息划分单元,用于将所述设备信息划分为主属性信息和附加属性信息;
静态设备指纹获取单元,用于根据所述主属性信息获得静态设备指纹;
历史设备判断单元,用于根据所述静态指纹识别所述当前设备是否为历史设备;
相似度确定单元,用于如果所述当前设备是历史设备,则确定所述静态指纹所对应的历史设备信息,从所述历史设备信息中获得历史设备的附加属性信息;并对所述历史设备的附加属性信息和所述当前设备的附加属性信息进行匹配,获得相似度;
第一设备识别码获取单元,用于将所述相似度与设定的相似度阈值进行比对,根据比对结果获得所述当前设备的最终设备指纹;其中,所述最终设备指纹为设备识别码。
可选的,在本发明一实施例中,还包括:
第二设备识别码获取单元,用于如果所述当前设备不是历史设备,则根据所述当前设备的附加属性信息获得动态设备指纹;并将所述静态设备指纹和所述动态设备指纹合成为所述当前设备的最终设备指纹。
可选的,在本发明一实施例中,所述第一设备识别码获取单元还用于如果所述比对结果是不满足匹配要求,则根据所述当前设备的附加属性信息获得动态设备指纹;并将所述静态设备指纹和所述动态设备指纹合成为所述当前设备的最终设备指纹。
可选的,在本发明一实施例中,所述第一设备识别码获取单元还用于如果所述比对结果是满足匹配要求,则将所述历史设备的设备指纹作为所述当前设备的最终设备指纹。
可选的,在本发明一实施例中,所述设备信息划分单元包括:
校验设备模块,用于对所述设备信息进行有效性校验和设备类型识别;
属性信息划分模块,用于根据所述设备类型识别结果将校验通过的设备信息划分为主属性信息和附加属性信息;其中,划分的原则为:经过多次采集,获得的所述设备信息中的一属性信息不会变化,该属性信息为主属性信息,否则,该属性信息为附加属性信息。
上述技术方案具有如下有益效果:
本案将设备信息划分为主属性信息和附加属性信息,在生成设备指纹时使用了由主属性信息和附加属性信息构成的全量设备信息,根据附加属性的相似度匹配模型进行特征匹配和判断,兼顾了设备指纹的差异性和稳定性,使得指纹计算在原本相悖的两个特性之间取得了良好的平衡。另外,本案在相似度匹配时约简了参与相似度计算的属性维度。随着设备信息和指纹数据的历史积累,全量设备信息的相似度匹配可能成为指纹计算和识别系统的性能瓶颈。本提案的相似度匹配模型基于设备信息的附加属性计算,很大程度上减少了计算的复杂度,对指纹识别算法本身性能的提升具有显著效果。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本实施例提出的一种设备识别码获取方法流程图之一;
图2为本实施例提出的一种设备识别码获取方法流程图之二;
图3为设备属性划分和设备指纹之间的对应关系图;
图4为本实施例提出的一种设备识别码获取装置框图之一;
图5为本实施例提出的一种设备识别码获取装置框图之二;
图6为本实施例提供的设备识别码计算系统架构图;
图7为本实施例的获得设备识别码的程序流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本领域技术技术人员知道,本发明的实施方式可以实现为一种系统、装置、设备、方法或计算机程序产品。因此,本公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。
根据本发明的实施方式,提出了一种设备识别码获取方法及装置。
此外,附图中的任何元素数量均用于示例而非限制,以及任何命名都仅用于区分,而不具有任何限制含义。
下面参考本发明的若干代表性实施方式,详细阐释本发明的原理和精神。
本技术方案的工作原理为:本案根据采集到的设备信息计算出能够唯一标识该设备的设备指纹,同时对于已经生成设备指纹的设备来说,能够根据两阶段认证机制做出精准的识别。该技术方案将设备的属性信息划分为主属性信息和附加属性信息,在指纹计算和生成阶段,分别对主属性信息计算得到静态设备指纹,对附加属性信息计算得到动态设备指纹,最终将二者合成为设备指纹,保证了设备指纹的差异性;在指纹识别阶段,通过引入附加属性信息获得相似度,来避免将同一设备因少量设备信息改变而识别为不同设备的误判,从而保证了设备指纹的稳定性。
基于上述工作原理,本实施例提出一种设备识别码获取方法之一,如图1所示。包括:
步骤101):获取当前设备的设备信息;
步骤102):将所述设备信息划分为主属性信息和附加属性信息;
步骤103):根据所述主属性信息获得静态设备指纹;
步骤104):根据所述静态指纹识别所述当前设备是否为历史设备;
步骤105):如果所述当前设备是历史设备,则确定所述静态指纹所对应的历史设备信息,从所述历史设备信息中获得历史设备的附加属性信息;并对所述历史设备的附加属性信息和所述当前设备的附加属性信息进行匹配,获得相似度;
步骤106):将所述相似度与设定的相似度阈值进行比对,根据比对结果获得所述当前设备的最终设备指纹;其中,所述最终设备指纹为设备识别码。
在本实施例中,根据比对结果获得所述当前设备的最终设备指纹的情况分为两种:
第一种情况为:如果所述比对结果是不满足匹配要求,则根据所述当前设备的附加属性信息获得动态设备指纹;并将所述静态设备指纹和所述动态设备指纹合成为所述当前设备的最终设备指纹。
第二种情况为:如果所述比对结果是满足匹配要求,则将所述历史设备的设备指纹作为所述当前设备的最终设备指纹。
如图2所示,为本实施例提出的一种设备识别码获取方法流程图之二。在图1的基础之上,还包括:
步骤105’):如果所述当前设备不是历史设备,则根据所述当前设备的附加属性信息获得动态设备指纹;并将所述静态设备指纹和所述动态设备指纹合成为所述当前设备的最终设备指纹;其中,所述最终设备指纹为设备识别码。
本案设计实现了一种获得能够兼顾稳定性和差异性的设备指纹的方法,如图3所示,为设备属性划分和设备指纹之间的对应关系图。对于采集到的设备信息,将其属性划分为主属性和附加属性。在计算设备指纹时,首先根据主属性计算得到静态指纹,接着通过相似度匹配模型计算当前设备信息的附加属性和已经存在的设备信息的附加属性相似度,从而根据相似度匹配结果计算动态指纹,最后由静态指纹和动态指纹合成最终的设备指纹。
相比于现有技术的做法,本提案通过属性划分和相似度匹配模型的设计,在指纹计算时使用包括主属性和附加属性的全量设备信息,这就使得不同设备生成相同的指纹信息的可能性显著降低,保证了指纹的差异性;同时在计算动态指纹时,根据相似度匹配模型计算出当前设备的附加属性信息和已经存在的设备信息的相似度,并根据设定的阈值判断是同一设备的概率,如果识别为同一设备,则返回已经存在的设备指纹信息,否则才计算新的动态指纹信息,从而保证了指纹的稳定性。与此同时,通过将设备信息的属性进行划分,在相似度计算和匹配的过程中仅对附加属性进行处理而不是对全量属性信息进行匹配计算,减少了参与相似度计算和匹配的属性维度,对于提升计算性能、降低资源消耗具有显著的效果。此外,在相似度匹配模型的构建过程中,根据历史数据和机器学习算法,不断地矫正相似度匹配模型的准确度和精度,使得设备指纹识别机制更加的精准和可靠。
本发明实施例还提供一种计算机可读程序,其中当在电子设备中执行所述程序时,所述程序使得计算机在所述电子设备中执行如图1、2所述的方法。
本发明实施例还提供一种存储有计算机可读程序的存储介质,其中所述计算机可读程序使得计算机在电子设备中执行如图1、2所述的方法。
应当注意,尽管在附图中以特定顺序描述了本发明方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
如图4所示,为本实施例提出的一种设备识别码获取装置功能框图之一。包括:
设备信息获取单元401,用于获取当前设备的设备信息;
设备信息划分单元402,用于将所述设备信息划分为主属性信息和附加属性信息;
静态设备指纹获取单元403,用于根据所述主属性信息获得静态设备指纹;
历史设备判断单元404,用于根据所述静态指纹识别所述当前设备是否为历史设备;
相似度确定单元405,用于如果所述当前设备是历史设备,则确定所述静态指纹所对应的历史设备信息,从所述历史设备信息中获得历史设备的附加属性信息;并对所述历史设备的附加属性信息和所述当前设备的附加属性信息进行匹配,获得相似度;
第一设备识别码获取单元406,用于将所述相似度与设定的相似度阈值进行比对,根据比对结果获得所述当前设备的最终设备指纹;其中,所述最终设备指纹为设备识别码。
在实际应用中,第一设备识别码获取单元406具体用于如果所述比对结果是不满足匹配要求,则根据所述当前设备的附加属性信息获得动态设备指纹;并将所述静态设备指纹和所述动态设备指纹合成为所述当前设备的最终设备指纹;其中,所述最终设备指纹为设备识别码。
还有一种情况为,第一设备识别码获取单元406具体用于如果所述比对结果是满足匹配要求,则将所述历史设备的设备指纹作为所述当前设备的最终设备指纹;其中,所述最终设备指纹为设备识别码。
如图5所示,为本实施例提出的一种设备识别码获取装置功能框图之二。在图4的基础上,还包括:
第二设备识别码获取单元406’,用于如果所述当前设备不是历史设备,则根据所述当前设备的附加属性信息获得动态设备指纹;并将所述静态设备指纹和所述动态设备指纹合成为所述当前设备的最终设备指纹;其中,所述最终设备指纹为设备识别码。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一般计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)或随机存储记忆体(Random Access Memory,RAM)等。
本领域技术人员还可以了解到本发明实施例列出的各种功能是通过硬件还是软件来实现取决于特定的应用和整个系统的设计要求。本领域技术人员可以对于每种特定的应用,可以使用各种方法实现所述的功能,但这种实现不应被理解为超出本发明实施例保护的范围。
此外,尽管在上文详细描述中提及了装置的若干单元,但是这种划分仅仅并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。同样,上文描述的一个单元的特征和功能也可以进一步划分为由多个单元来具体化。
实施例
为了能够更加直观的描述本发明的特点和工作原理,下文将结合一个实际运用场景来描述。
如图6所示,为本实施例提供的设备识别码计算系统架构图。本实施例设计了一种高吞吐量、低延迟的实时设备识别码计算系统,该系统主要分为设备信息采集模块、设备指纹计算模块和存储模块。设备信息采集模块负责采集设备信息并将设备信息发送到分布式消息通信系统Kafka中;设备指纹计算模块是系统的核心,负责对设备信息进行实时计算并生成设备指纹;存储模块负责将计算结果和相关信息保存落地,最终生成的设备指纹作为设备识别码在存储模块中被保持。
设备指纹计算模块基于分布式消息通信系统Kafka和流式大数据处理框架Storm设计。分布式消息通信系统Kafka接受来自设备信息采集模块采集到的设备信息,流式大数据处理框架Storm对其进行实时的设备指纹计算和识别,然后将计算结果存储在高速缓存Redis中,并将计算结果和日志信息反馈到分布式消息通信系统Kafka中,接着将分布式消息通信系统Kafka中的相关信息落地到关系数据库中保存。通过将设备指纹信息存储到高性能的高速缓存Redis中,服务使用者可以快速实时的获取到相应的设备指纹计算结果;在实时计算中不直接与数据库交互而是将需要存储的信息先暂存到分布式消息通信系统Kafka,然后再由专门的服务异步地从分布式消息通信系统Kafka读取消息落地到数据库中,避免了因数据库操作的延迟而对计算流程的实时性造成影响。
在存储模块中,本案使用了高速缓存Redis作为实时存储和查询介质,对于需要持久化到磁盘或数据库存储的信息,通过分布式消息通信系统Kafka中转而不是直接与磁盘或者关系数据库打交道,最大化满足流式大数据处理框架Storm设备指纹计算匹配模块对实时性的要求。在实际应用中,可根据业务需求和数据量采用Hbase代替传统的关系数据库,对存储模块进行进一步扩展。
如图7所示,为本实施例的获得设备识别码的程序流程图。整体计算流程详细介绍如下:
(1)、设备信息采集模块采集设备信息,发送到分布式消息通信系统Kafka中。
(2)、设备指纹计算模块从分布式消息通信系统Kafka中获取设备信息,对信息进行有效性校验和设备类型识别,然后根据设备类型将属性信息划分为主属性信息和附加属性信息。主属性和附加属性的划分原则为:对于某种设备的某一属性A1,其第M次采集和第N次采集得到的属性A1信息基本不会变化,则A1应被划分为主属性,否则应被划分为附加属性。接下来,程序对主属性信息进行Hash运算得到静态设备指纹。
(3)、在高速缓存Redis中检索当前静态指纹是否存在。如果未检索到记录,将当前设备信息识别为新的设备,进入第五步;如果检索到记录,则获取检索到的静态指纹所对应的历史设备信息集合。
(4)、根据相似度匹配模型,首先依次对获取的历史设备信息附加属性和当前设备信息的附加属性进行特征匹配和相似度计算,并与设定的相似度阈值进行对比:
如果相似度未满足匹配要求,则进入第五步;
如果相似度满足匹配要求,则将当前设备信息与匹配到的历史设备信息识别为同一设备,获取该历史设备信息所对应的合成设备指纹,进入第六步。
(5)、对当前设备信息的附加属性进行Hash运算得到动态设备指纹,并将动态设备指纹和之前计算得到的静态指纹合成为最终设备指纹;其中,所述最终设备指纹为设备识别码。
(6)、将最终设备指纹和当前设备信息发送到高速缓存Redis缓存和分布式消息通信系统Kafka日志。
(7)、将分布式消息通信系统Kafka中的指纹信息、设备信息和相关日志信息同步到Database存储,流程结束。
本实施例设计的设备指纹计算系统是一种高性能的技术实现方案,该方案具有高吞吐量、低延迟、易扩展、高可用的特点。流式大数据处理框架Storm是一款优秀的流式大数据实时处理解决方案,TPS可轻松达百万。在实时计算中将流式大数据处理框架Storm与高性能的分布式消息通信系统Kafka和高速缓存Redis相结合,而不是传统的锁式消息队列和高延迟的数据库系统,使得该技术方案具有优秀的实时处理能力,设备指纹计算和识别平均延迟在20ms左右。
以上具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。