发明内容
本申请的目的在于提供一种获取设备指纹的方法及装置。
为实现上述申请目的之一,本申请一实施方式提供了一种获取设备指纹的方法,所述方法包括:
采集待查询设备的浏览器插件和/或字体列表;
分别计算所述待查询设备的浏览器插件和/或字体列表与设备库中存储的每一条浏览器插件和/或字体列表的对应值;
若计算得到的最大对应值大于或大于等于预设阈值,则将与所述最大对应值对应的设备库中存储的浏览器插件和/或字体列表的设备标识所对应的设备指纹为所述待查询设备的设备指纹。
作为本申请一实施方式的进一步改进,『分别计算所述待查询设备的浏览器插件和/或字体列表与设备库中存储的每一条浏览器插件和/或字体列表的对应值』具体包括:
将待查询设备的浏览器插件和/或字体列表中的每一位,分别与设备库中存储的每一条浏览器插件和/或字体列表中的对应位相匹配,并根据匹配结果计算所述待查询设备的浏览器插件和/或字体列表的对应值。
作为本申请一实施方式的进一步改进,所述方法包括:
形成一预定浏览器插件和/或字体列表;
在所述预定浏览器插件和/或字体列表范围内,基于多个状态转移向量比较多个设备在预定周期中的插件和/或字体列表变化;
计算所述预定浏览器插件和/或字体列表中每一位对应每一个状态转移向量的状态转移概率。
作为本申请一实施方式的进一步改进,所述方法包括:
将待查询设备的浏览器插件和/或字体列表中的每一位,分别与设备库中存储的每一条插件和/或字体列表中的对应位相匹配,并根据每一位的状态变化结果,确定其对应的状态转移向量及相应的状态转移概率;
对所述待查询设备的浏览器插件和/或字体列表中每一位的状态转移概率求和,以作为对应值。
作为本申请一实施方式的进一步改进,多个状态转移向量分别为:安装、卸载、仍未安装、安装后未变化、升级、降级。
作为本申请一实施方式的进一步改进,若计算得到的最大对应值小于预设阈值,则将与所述待查询设备的插件和/或字体列表存储至所述设备库,并分配对应所述待查询设备的设备标识。
为实现上述申请目的之一,本申请一实施方式提供了一种获取设备指纹的装置,所述装置包括:
采集模块,用于采集待查询设备的浏览器插件和/或字体列表;
匹配模块,用于分别计算所述待查询设备的浏览器插件和/或字体列表与设备库中存储的每一条浏览器插件和/或字体列表的对应值;
处理模块,用于若计算得到的最大对应值大于或大于等于预设阈值,则将与所述最大对应值对应的设备库中存储的每一条浏览器插件和/或字体列表的设备标识所对应的设备指纹为所述待查询设备的设备指纹。
作为本申请一实施方式的进一步改进,所述匹配模块用于:
将待查询设备的浏览器插件和/或字体列表中的每一位,分别与设备库中存储的每一条浏览器插件和/或字体列表中的对应位相匹配,并根据匹配结果计算所述待查询设备的浏览器插件和/或字体列表的对应值。
作为本申请一实施方式的进一步改进,所述装置还包括采样模块,所述采样模块用于:
形成一预定浏览器插件和/或字体列表;
在所述预定浏览器插件和/或字体列表范围内,基于多个状态转移向量比较多个设备在预定周期中的插件和/或字体列表变化;
计算所述预定浏览器插件和/或字体列表中每一位对应每一个状态转移向量的状态转移概率。
作为本申请一实施方式的进一步改进,所述匹配模块用于:
将待查询设备的浏览器插件和/或字体列表中的每一位,分别与设备库中存储的每一条插件和/或字体列表中的对应位相匹配,并根据每一位的状态变化结果,确定其对应的状态转移向量及相应的状态转移概率;
对所述待查询设备的浏览器插件和/或字体列表中每一位的状态转移概率求和,以作为对应值。
作为本申请一实施方式的进一步改进,多个状态转移向量分别为:安装、卸载、仍未安装、安装后未变化、升级、降级。
作为本申请一实施方式的进一步改进,所述处理模块用于:
若计算得到的最大对应值小于预设阈值,则将与所述待查询设备的插件和/或字体列表存储至所述设备库,并分配对应所述待查询设备的设备标识。
相对于现有技术,本申请的技术效果在于:本申请通过浏览器插件和/或字体获取设备的设备指纹,以区分不同设备,以增加安全防护工作的效率和打击的准确性。
具体实施方式
以下将结合附图所示的具体实施方式对本申请进行详细描述。但这些实施方式并不限制本申请,本领域的普通技术人员根据这些实施方式所做出的结构、方法、或功能上的变换均包含在本申请的保护范围内。
如图1所示,在本申请一实施方式中,所述获取设备指纹的方法,包括:
S1、采集待查询设备的浏览器插件和/或字体列表;
S2、分别计算所述待查询设备的浏览器插件和/或字体列表与设备库中存储的每一条浏览器插件和/或字体列表的对应值,其中,所述待查询设备的浏览器插件和/或字体列表与设备库中存储的每一条浏览器插件和/或设备列表中的插件或字体顺序和属性相同;
S3、若计算得到的最大对应值大于或大于等于预设阈值,则将与所述最大对应值对应的设备库中存储的浏览器插件和/或字体列表的设备标识所对应的设备指纹为所述待查询设备的设备指纹。
例如,待查询设备为一台PC,其上可能装有多个浏览器,我们以其中一个浏览器,例如Chrome浏览器来进行说明。该PC上的Chrome浏览器上装有至少一个插件,其浏览器上也存在有至少一个字体,首先,可采集该Chrome浏览器上的插件和/或字体信息,并生成浏览器插件和/或字体列表。
一般地,服务器内均存有设备库,以用于设备查询获得设备指纹,该设备库里存储有至少一条浏览器插件和/或字体列表,上述获得的待查询设备的浏览器插件和/或字体列表可与设备库中的浏览器插件和字体列表一条一条比较,比计算待查询设备的浏览器插件和/或字体列表与设备库中每一条浏览器插件和/或字体列表的对应值,如此,可得到至少一个对应值。具体如何计算对应值,将在下文中详细描述。
在得到至少一个对应值之后,所述方法还包括:
S4、若计算得到的最大对应值小于预设阈值,则将与所述待查询设备的插件和/或字体列表存储至所述设备库,并分配对应所述待查询设备的设备标识,例如设备ID。这里可将所有对应值与预设阈值比较,若所有对应值都小于预设阈值,也可先比较所有对应值,找出最大对应值再与预设阈值比较;若对应值中的最大对应值是大于或大于等于预设阈值的,则将该最大对应值所对应的那条设备库中浏览器插件和字体列表作为匹配对象,以该匹配对象的设备标识所对应的设备指纹作为该待查询设备的设备指纹。
进一步地,在本实施方式中,对对应值的计算,可包括:
将待查询设备的浏览器插件和/或字体列表中的每一位,分别与设备库中存储的每一条浏览器插件和/或字体列表中的对应位相匹配,并根据匹配结果计算所述待查询设备的浏览器插件和/或字体列表的对应值。
例如,待查询设备的浏览器插件和/或字体列表I=[I1,I2,……,IM],设备库中存储的每一条浏览器插件和/或字体列表I’=[I1’,I2’,……,IM’],其中,待查询设备的浏览器插件和/或字体列表I与设备库中存储的每一条浏览器插件和/或字体列表中的插件或字体的顺序和属性相同,只是属性值可能不同,一种可能是待查询设备的浏览器插件和/或字体并非安装了列表中每一位的插件或字体,例如,I2为空,但其位置仍保留,以和I2’相对应。
I1与其对应位的I1’为相对应的插件或字体,即是I1和I1’的插件或字体的属性相同,通过I1与其对应位的I1’的比对,判断该属性是否相同,例如均为有该插件和/或字体,若有,则分配给该位一个值,若无,则分配给该位另一个值,以此类推,直至将IM和IM’比对完成,再将每一位的值加总,得到该待查询设备的浏览器插件和/或字体列表的对应值。
如图2所示,在本申请另一实施方式中,考虑到设备浏览器的插件和/或字体的属性值是可能变化的,需要通过计算列表中的每一位的变化概率来确定该浏览器插件和/或字体列表的对应值。除计算对应值外,其他技术方案与上述实施方式相同,在此不在赘述。
在本实施方式中,所述方法包括:
S21、形成一预定浏览器插件和/或字体列表;
S22、在所述预定浏览器插件和/或字体列表范围内,基于多个状态转移向量比较多个设备在预定周期中的插件和/或字体列表变化;
S23、计算所述预定浏览器插件和/或字体列表中每一位对应每一个状态转移向量的状态转移概率。
上述步骤可在『采集待查询设备的浏览器插件和/或字体列表』前执行。
例如,先形成一个预定浏览器插件和/或字体列表I=[I1,I2,……,IM],这个列表中有M个可用的插件和/或字体,一般地,这些插件和/或字体可包含常用的插件和/或字体;然后,选取一个时间窗,即是规定一个预定周期,例如1天,在多个采样设备中观察插件和/或字体列表的变化,例如1000台采样设备。该变化可通过多个状态转移向量来进行比较,在本实施方式中,多个状态转移向量分别为:安装、卸载、仍未安装、安装后未变化、升级、降级。这些包括了所有插件和/或字体可能的变化。即代表在第一台采样设备中,经过了一个预定周期,在时间窗起始点与结束点时,判断该1000台采样设备中,I1……IM状态d变化为”安装”的状态转移概率分别为何,I1……IM状态的变化为”卸载”的状态转移概率分别为何,I1……IM状态的变化为”仍未安装”的状态转移概率分别为何,I1……IM状态的变化为”安装后未变化”的状态转移概率分别为何,I1……IM状态的变化为”升级”的状态转移概率分别为何,I1……IM状态的变化为”降级”的状态转移概率分别为何,例如,对于I1,其中1000台设备有900台设备为新安装了该插件或字体,则在预定周期结束时,I1状态变化为安装的状态转移概率为90%,以此类推。
进一步地,所述方法包括:
S24、将待查询设备的浏览器插件和/或字体列表中的每一位,分别与设备库中存储的每一条插件和/或字体列表中的对应位相匹配,并根据每一位的状态变化结果,确定其对应的状态转移向量及相应的状态转移概率;
S25、对所述待查询设备的浏览器插件和/或字体列表中每一位的状态转移概率求和,以作为对应值。
例如,待查询设备的浏览器插件和/或字体列表I=[I1,I2,……,IM],设备库中存储的一条浏览器插件和/或字体列表I’=[I1’,I2’,……,IM’],其中,待查询设备和设备库的浏览器插件和/或字体列表每位的插件或字体与预定浏览器插件和/或字体列表的顺序和属性一致。
如果I1与其对应位的I1’比对,I1有该插件或字体,而I1’无该插件或字体,此时,认为I1到I1’的状态的变化为『卸载』,那么,就带入上述计算I1状态的变化为『卸载』时的状态转移概率,以此类推,计算出整个待查询设备的浏览器插件和/或字体列表的状态转移概率之和。该和可通过下述公式获得:
其中,M代表上述预定浏览器插件和/或字体列表的数量,K代表状态转移向量的个数。如果所有的Pmatch小于预设阈值,则将与所述待查询设备的插件和/或字体列表存储至所述设备库,并分配对应所述待查询设备的设备ID,如果Pmatch大于或大于等于预设阈值,则将与Pmatch对应的设备库中存储的浏览器插件和/或字体列表的设备ID为所述待查询设备的设备指纹。
如此,可考虑到设备上浏览器的插件和/或字体列表的变化概率,以更可执行地实现通过浏览器插件和/或字体获取设备的设备指纹。
如图3所示,在本申请一实施方式中,所述获取设备指纹的装置,包括:
采集模块100,用于采集待查询设备的浏览器插件和/或字体列表;
匹配模块200,用于分别计算所述待查询设备的浏览器插件和/或字体列表与设备库中存储的每一条浏览器插件和/或字体列表的对应值,其中,所述待查询设备的浏览器插件和/或字体列表与设备库中存储的每一条浏览器插件和/或设备列表中的插件或字体顺序和属性相同;
处理模块300,用于若计算得到的最大对应值大于或大于等于预设阈值,则将与所述最大对应值对应的设备库中存储的浏览器插件和/或字体列表的设备标识所对应的设备指纹为所述待查询设备的设备指纹。
例如,待查询设备为一台PC,其上可能装有多个浏览器,我们以其中一个浏览器,例如Chrome浏览器来进行说明。该PC上的Chrome浏览器上装有至少一个插件,其浏览器上也存在有至少一个字体,首先,可采集该Chrome浏览器上的插件和/或字体信息,并生成浏览器插件和/或字体列表。
一般地,服务器内均存有设备库,以用于设备查询获得设备指纹,该设备库里存储有至少一条浏览器插件和/或字体列表,上述获得的待查询设备的浏览器插件和/或字体列表可与设备库中的浏览器插件和字体列表一条一条比较,比计算待查询设备的浏览器插件和/或字体列表与设备库中每一条浏览器插件和/或字体列表的对应值,如此,可得到至少一个对应值。具体如何计算对应值,将在下文中详细描述。
在得到至少一个对应值之后,所述处理模块300用于:若计算得到的最大对应值小于预设阈值,则将与所述待查询设备的插件和/或字体列表存储至所述设备库,并分配对应所述待查询设备的设备标识,例如设备ID。这里可将所有对应值与预设阈值比较,若所有对应值都小于预设阈值,也可先比较所有对应值,找出最大对应值再与预设阈值比较;若对应值中的最大对应值是大于或大于等于预设阈值的,则将该最大对应值所对应的那条设备库中浏览器插件和字体列表作为匹配对象,以该匹配对象的设备标识所对应的设备指纹作为该待查询设备的设备指纹。
进一步地,在本实施方式中,所述匹配模块200用于:
将待查询设备的浏览器插件和/或字体列表中的每一位,分别与设备库中存储的每一条浏览器插件和/或字体列表中的对应位相匹配,并根据匹配结果计算所述待查询设备的浏览器插件和/或字体列表的对应值。
例如,待查询设备的浏览器插件和/或字体列表I=[I1,I2,……,IM],设备库中存储的每一条浏览器插件和/或字体列表I’=[I1’,I2’,……,IM’],其中,待查询设备的浏览器插件和/或字体列表I与设备库中存储的每一条浏览器插件和/或字体列表中的插件或字体的顺序和属性相同,只是属性值可能不同,一种可能是待查询设备的浏览器插件和/或字体并非安装了列表中每一位的插件或字体,例如,I2为空,但其位置仍保留,以和I2’相对应。
I1与其对应位的I1’为相对应的插件或字体,即是I1和I1’的插件或字体的相同或属性相同,通过I1与其对应位的I1’的比对,判断该属性是否相同,例如均为有该插件和/或字体,若有,则分配给该位一个值,若无,则分配给该位另一个值,以此类推,直至将IM和IM’比对完成,再将每一位的值加总,得到该待查询设备的浏览器插件和/或字体列表的对应值。
在本申请另一实施方式中,考虑到设备浏览器的插件和/或字体的属性值是可能变化的,需要通过计算列表中的每一位的变化概率来确定该浏览器插件和/或字体列表的对应值。
在本实施方式中,所述采样模块400用于:
形成一预定浏览器插件和/或字体列表;
在所述预定浏览器插件和/或字体列表范围内,基于多个状态转移向量比较多个设备在预定周期中的插件和/或字体列表变化;
计算所述预定浏览器插件和/或字体列表中每一位对应每一个状态转移向量的状态转移概率。
上述步骤可在『采集待查询设备的浏览器插件和/或字体列表』前执行。
例如,先形成一个预定浏览器插件和/或字体列表I=[I1,I2,……,IM],这个列表中有M个可用的插件和/或字体,一般地,这些插件和/或字体可包含常用的插件和字体;然后,选取一个时间窗,即是规定一个预定周期,例如1天,在多个采样设备中观察插件和/或字体列表的变化,例如1000台采样设备。该变化可通过多个状态转移向量来进行比较,在本实施方式中,多个状态转移向量分别为:安装、卸载、仍未安装、安装后未变化、升级、降级。这些包括了所有插件和/或字体可能的变化。即代表在第一台采样设备中,经过了一个预定周期,在时间窗起始点与结束点时,判断该1000台采样设备中,I1……IM状态d变化为”安装”的状态转移概率分别为何,I1……IM状态的变化为”卸载”的状态转移概率分别为何,I1……IM状态的变化为”仍未安装”的状态转移概率分别为何,I1……IM状态的变化为”安装后未变化”的状态转移概率分别为何,I1……IM状态的变化为”升级”的状态转移概率分别为何,I1……IM状态的变化为”降级”的状态转移概率分别为何,例如,对于I1,其中1000台设备有900台设备为新安装了该插件或字体,则在预定周期结束时,I1状态变化为安装的状态转移概率为90%,以此类推。
进一步地,所述匹配模块200还用于:
将待查询设备的浏览器插件和/或字体列表中的每一位,分别与设备库中存储的每一条插件和/或字体列表中的对应位相匹配,并根据每一位的状态变化结果,确定其对应的状态转移向量及相应的状态转移概率;
对所述待查询设备的浏览器插件和/或字体列表中每一位的状态转移概率求和,以作为对应值。
例如,待查询设备的浏览器插件和/或字体列表I=[I1,I2,……,IM],设备库中存储的一条浏览器插件和/或字体列表I’=[I1’,I2’,……,IM’],其中,待查询设备和设备库的浏览器插件和/或字体列表每位的插件或字体与预定浏览器插件和/或字体列表的顺序和属性一致。
如果I1与其对应位的I1’比对,I1有该插件和/或字体,而I1’无该插件和/或字体,此时,认为I1到I1’的状态的变化为『卸载』,那么,就带入上述计算I1状态的变化为『卸载』时的状态转移概率,以此类推,计算出整个待查询设备的浏览器插件和/或字体列表的状态转移概率之和。该和可通过下述公式获得:
其中,M代表上述预定浏览器插件和/或字体列表的数量,K代表状态转移向量的个数。所述处理模块300用于:如果所有的Pmatch小于预设阈值,则将与所述待查询设备的插件和/或字体列表存储至所述设备库,并分配对应所述待查询设备的设备ID,如果Pmatch大于或大于等于预设阈值,则将与Pmatch对应的设备库中存储的浏览器插件和/或字体列表的设备ID所对应的设备指纹为所述待查询设备的设备指纹。
如此,可考虑到设备上浏览器的插件和/或字体列表的变化概率,以更可执行地实现通过浏览器插件和/或字体获取设备的设备指纹。
综上所述,本申请通过浏览器插件和/或字体获取设备的设备指纹,以区分不同设备,以增加安全防护工作的效率和打击的准确性。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置,装置和模块的具体工作过程,可以参考前述方法实施方式中的对应过程,在此不再赘述。
在本申请所提供的几个实施方式中,应该理解到,所揭露的装置,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施方式仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络模块上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施方式方案的目的。
另外,在本申请各个实施方式中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以2个或2个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用硬件加软件功能模块的形式实现。
上述以软件功能模块的形式实现的集成的模块,可以存储在一个计算机可读取存储介质中。上述软件功能模块存储在一个存储介质中,包括若干指令用以使得一台计算机装置(可以是个人计算机,服务器,或者网络装置等)或处理器(processor)执行本申请各个实施方式所述方法的部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-OnlyMemory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上实施方式仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施方式对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施方式技术方案的精神和范围。