确定设备指纹同源性的方法及装置与流程

文档序号:16931747发布日期:2019-02-22 20:20阅读:213来源:国知局
确定设备指纹同源性的方法及装置与流程

本发明涉及互联网技术领域,尤其涉及一种确定设备指纹同源性的方法及装置。



背景技术:

随着互联网技术的不断发展,越来越多的交易从线下转移到了线上。由于互联网交易双方的身份具有隐蔽性,欺诈团伙看到了其中的“商机”,他们通过分析各大互联网公司的业务和技术漏洞来实施各种欺诈或者攻击行为。例如,同一用户或者大量用户使用同一个设备向服务端发送大量请求,称为“设备聚集性”。

批量注册,撞库登录,批量下单等行为都会有出现这种集中使用同一个设备的情况。理论上如果能够给每个设备分配一个唯一的设备id,那么可以通过设备id发现这种聚集性异常,但是js设备指纹的特点决定了给每个设备分配唯一的id是不可能的,所以需要通过相似性来发现设备的这种聚集性。

各个互联网公司针对这些网络欺诈行为都会建立相应的风控手段来防范黑产用户,保障正常用户的资金财产安全。风控核心的目标是防范账号背后的人,但是互联网的特点又注定了只通过用户线上的行为无法唯一确定用户的身份。

js设备指纹技术(设备指纹是指可以用于唯一标识出该设备的设备特征或者独特的设备标识)是通过在前端页面埋入javascript代码,当用户用浏览器访问该页面时,javascript代码会采集用户设备的各种信息,信息采集完成后这些信息上报到服务器,服务器会根据采集的信息给当前设备分配一个唯一的id,当用户下次访问相同的页面的时候,服务器会根据采集的信息返回相同的id。这种方法可以保证生成的设备id的唯一性,但是往往稳定性无法保证。

因为javascript是前端技术,部署在前端的代码采集的各种数据很容易被篡改,篡改后的设备指标上报到服务器之后,服务器可能就查询不到当前设备信息对应的设备id了。虽然这种问题可以通过在客户端增加缓存,以及服务端用某些唯一性强的指标来标识该设备,但是只要用户清除缓存,修改强依赖的指标,设备的id就无法追踪。

随着黑产技术的不断提升,不良用户可以通过各种工具轻易的修改诸如ip,useragent(用户代理)等指标,从而达到隐藏自己设备的目的,设备指纹就无法实现设备识别的目的。

风控中通常会通过设备聚集性来判断一个设备上的用户是否有风险,因为风险用户会在相同的设备上进行大量相似的操作。如果设备的id发生了变化,那么聚集性分析就无法实现。



技术实现要素:

有鉴于此,本发明实施例提供一种确定设备指纹同源性的方法和装置,以及一种异常设备发现方法及装置,能够有效的从所采集的海量的设备指纹数据中搜索发现设备聚集性所在,以发现异常设备或者异常用户操作行为,为风控的实施决策提供依据。

为实现上述目的,根据本发明实施例的一个方面,提供了一种确定设备指纹同源性的方法,包括:获取第一设备指纹和第二设备指纹;根据所述第一设备指纹确定第一相似性哈希值;根据所述第二设备指纹确定第二相似性哈希值;确定所述第一相似性哈希值和所述第二相似性哈希值之间的相似度;当所述相似度小于预设阈值时确定所述第一设备指纹和所述第二设备指纹同源。

可选的,所述根据所述第一设备指纹确定所述第一相似性哈希值包括:

对所述第一设备指纹进行分词处理以得到多个关键词;对所述多个关键词进行哈希计算以得到多个关键词哈希值;根据所述多个关键词哈希值确定所述第一相似性哈希值。

可选的,所述根据所述多个关键词哈希值确定所述第一相似性哈希值包括:对所述多个关键词哈希值进行加权求和以确定所述第一相似性哈希值;其中,每个所述关键词哈希值的权重根据关键词的逆文本频率指数确定。

可选的,所述第一设备指纹和所述第二设备指纹分别包括以下至少之一:相应设备的操作系统名称、操作系统版本、字体列表、插件列表。

为实现上述目的,根据本发明实施例的另一方面,提供了一种异常设备发现方法,包括:确定当前用户的设备指纹,计算当前用户的设备指纹的相似性哈希值,将所述当前用户的设备指纹的相似性哈希值当前相似性哈希值作为当前相似性哈希值数据;计算设备指纹库中的多个设备指纹的多个相似性哈希值;查询并确定所述相似性哈希值库中与所述当前相似性哈希值数据之间的相似度小于预设阈值的相似性哈希值数据的个数;当所述个数大于设定值时,确定当前用户的设备为异常设备。

可选的,所述方法还包括:将相似性哈希值划分为多个子部;将所述多个子部中的每一个部分作为索引分别与所属的相似性哈希值关联存储。

可选的,所述当前相似性哈希值数据包括所述当前相似性哈希值和所述当前相似性哈希值所对应的多个子部;

所述查询并确定所述相似性哈希值库中与所述当前相似性哈希值数据之间的相似度值小于预设阈值的相似性哈希值数据的个数包括:以所述当前相似性哈希值的多个子部中的任意一个作为索引,在相似性哈希值库中查询与所述索引相同的子部,将与所述索引相同的子部对应的相似性哈希值作为候选哈希值;分别计算所述候选哈希值中的每一个相似性哈希值与所述当前相似性哈希值之间的相似度,以得到多个相似度;从所述多个相似度中,确定小于预设阈值的相似度的个数。

为实现上述目的,根据本发明实施例的又一方面,提供了一种确定设备指纹同源性的装置,包括:信息获取模块,用于获取第一设备指纹和第二设备指纹;第一哈希值确定模块,用于根据所述第一设备指纹确定第一相似性哈希值;第二哈希值确定模块,用于根据所述第二设备指纹确定第二相似性哈希值;相似度计算模块,用于确定所述第一相似性哈希值和所述第二相似性哈希值之间的相似度;同源确定模块,用于当所述相似度小于预设阈值时确定所述第一设备指纹和所述第二设备指纹同源。

可选的,所述第一哈希值确定模块包括:分词处理单元,用于对所述第一设备指纹进行分词处理以得到多个关键词;词哈希值确定单元,用于对所述多个关键词进行哈希计算以得到多个关键词哈希值;第一哈希值确定单元,用于根据所述多个关键词哈希值确定所述第一相似性哈希值。

可选的,所述根据所述多个关键词哈希值确定所述第一相似性哈希值包括:对所述多个关键词哈希值进行加权求和以确定所述第一相似性哈希值;其中,每个所述关键词哈希值的权重根据关键词的逆文本频率指数确定。

可选的,所述第一设备指纹和所述第二设备指纹分别包括以下至少之一:相应设备的操作系统名称、操作系统版本、字体列表、插件列表。

为实现上述目的,根据本发明实施例的一个方面,提供了一种异常设备发现装置,包括:当前哈希值确定模块,用于获取当前用户的设备指纹,计算当前用户的设备指纹的相似性哈希值,将所述当前用户的设备指纹的相似性哈希值当前相似性哈希值作为当前相似性哈希值数据;计算模块,用于计算所述设备指纹库中的多个设备指纹的多个相似性哈希值;查询确定模块,用于查询并确定所述相似性哈希值库中与所述当前相似性哈希值数据之间的相似度小于预设阈值的相似性哈希值数据的个数;异常设备确定模块,用于当所述个数大于设定值时,确定当前用户的设备为异常设备。

可选的,所述计算模块包括:将相似性哈希值划分为多个子部;将所述多个子部中的每一个部分作为索引分别与所属的相似性哈希值关联存储。

可选的,所述当前相似性哈希值数据包括所述当前相似性哈希值和所述当前相似性哈希值所对应的多个子部;

所述查询确定模块还用于:以所述当前相似性哈希值的多个子部中的任意一个作为索引,在相似性哈希值库中查询与所述索引相同的子部,将与所述索引相同的子部对应的相似性哈希值作为候选哈希值;分别计算所述候选哈希值中的每一个相似性哈希值与所述当前相似性哈希值之间的相似度,以得到多个相似度;从所述多个相似度中,确定小于预设阈值的相似度的个数。

根据本发明实施例的又一方面,提供了一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明上述任一实施例的方法。

根据本发明实施例的再一方面,提供了一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明上述任一实施例的方法。

上述实施例至少具有如下优点或有益效果:通过采用相似性哈希算法计算设备指纹的得到相应的相似性哈希值,并根据不同的设备指纹所对应的相似性哈希值之间的相似度(例如,汉明距离)来确定这些不同的设备指纹是否同源(即,是否源自于同一设备上的操作),从而能够有效的从所采集的海量的设备指纹数据中搜索发现设备聚集性所在,以发现异常设备或者异常用户操作行为,为风控的实施决策提供依据。

上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。

附图说明

附图用于更好地理解本发明,不构成对本发明的不当限定。其中:

图1为本发明的确定设备指纹同源性的方法的一实施例的流程图;

图2为本发明中的计算相似性哈希值的一实施例的示意图;

图3为本发明中的一种异常设备发现方法的一实施例的流程图;

图4为本发明中的划分并存储相似性哈希值的示意图;

图5为本发明的确定设备指纹同源性的装置的一实施例的示意图;

图6为本发明中的第一哈希值确定模块的一实施例的示意图;

图7为本发明的异常设备发现装置的一实施例的示意图;

图8是本发明实施例可以应用于其中的示例性系统架构图;

图9是适于用来实现本发明实施例的终端设备或服务器的计算机系统的结构示意图。

具体实施方式

以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

本发明实施例的目的在于通过分析采集到的js设备指纹指标来进行设备相似性分析,如果用户在相似的设备上进行大量相似的操作,那么也是可以反映设备聚集性的。本发明实施例就是针对js设备指纹稳定性差的问题,提出了一种利用采集到的设备指标的相似性来识别风险设备的方法。

如图1所示,为本发明的确定设备指纹同源性的方法的一实施例的流程图,该方法能够应用于从海量的设备指纹数据中进行搜索发现设备聚集性,进一步识别风险设备。

如图1所示,该方法包括:

步骤s101:获取第一设备指纹和第二设备指纹;

示例性的,可以采用js设备指纹技术获取设备指纹(设备指纹是指可以用于唯一标识出该设备的设备特征或者独特的设备标识),通过在前端页面埋入javascript代码,当用户用浏览器访问该页面时,javascript代码会采集用户设备的各种信息,信息采集完成后这些信息上报到服务器。

其中,第一设备指纹和第二设备指纹分别包括以下至少之一:相应设备的操作系统名称、操作系统版本、字体列表、插件列表。

在可选的实施例中,第一设备指纹和所述第二设备指纹都包括相应设备的包括操作系统名称、操作系统版本、字体列表、插件列表等在内的上百个设备指标。

步骤s102:根据所述第一设备指纹确定第一相似性哈希值;

示例性的,根据所述第一设备指纹确定所述第一相似性哈希值包括:

对所述第一设备指纹进行分词处理以得到多个关键词;

对所述多个关键词进行哈希计算以得到多个关键词哈希值;

根据所述多个关键词哈希值确定所述第一相似性哈希值。

步骤s103:根据所述第二设备指纹确定第二相似性哈希值;

示例性的,根据所述第二设备指纹确定所述第二相似性哈希值包括:对所述第二设备指纹进行分词处理以得到多个关键词;

对所述多个关键词进行哈希计算以得到多个关键词哈希值;

根据所述多个关键词哈希值确定所述第二相似性哈希值。

步骤s104:确定所述第一相似性哈希值和所述第二相似性哈希值之间的相似度。

示例性的,可以通过第一相似性哈希值和所述第二相似性哈希值之间的相似度可以用第一相似性哈希值和所述第二相似性哈希值之间的汉明距离表示。在信息论中,两个等长字符串之间的汉明距离是两个字符串对应位置的不同字符的个数。换句话说,它就是将一个字符串变换成另外一个字符串所需要替换的字符个数。

步骤s105:当所述相似度小于预设阈值时确定所述第一设备指纹和所述第二设备指纹同源。其中,所述预设阈值可以根据应用场景灵活设置,本发明在此不做限制。

本发明实施例的方法通过相似性哈希算法计算设备指纹得到相应的相似性哈希值,并根据不同的设备指纹所对应的相似性哈希值之间的相似度来确定这些不同的设备指纹是否同源,从而能够用于从所采集的海量的设备指纹数据中搜索发现设备聚集性所在,以发现异常设备或者异常用户操作行为。

在可选的实施例中,所述根据所述多个关键词哈希值确定所述第一相似性哈希值包括:对所述多个关键词哈希值进行加权求和以确定所述第一相似性哈希值;其中,每个所述关键词哈希值的权重根据关键词的逆文本频率指数确定。

本发明的一些实施例中,采用一种相似性哈希(simhash)算法来计算设备指纹之间的相似度,从而计算设备的聚集性,提高设备指纹的稳定性。simhash是一种相似性哈希算法,该算法可以将设备指纹转换成为一个64bit(64位)的哈希值,而且转换后的哈希值可以反映设备指纹的相似性,通过计算两个哈希值之间的汉明距离就可以判断两个设备指纹的相似程度。

如图2所示,为本发明中计算相似性哈希值的一实施例的示意图,分为5个步骤,分别是分词、哈希、加权、合并、降维。下面详细介绍在设备指纹相似度算法中的实施方案。

分词,是将采集到的设备指纹的指标拆分一个个的关键词,每个词就是一个设备指纹指标项对应的值。由于设备指纹的指标各有差异,所以针对不同的指标会有不同的关键词拆分方案。对于普通指标,例如操作系统名称,操作系统版本这种简单指标,直接取该字段的值作为关键字即可。有些指标则是以列表的形式上报的,例如,字体列表、插件列表等,这些指标需要将列表中的每个单一的值都拆分出来作为一个关键词。还有一些指标本身很长,指标中还包含了丰富的信息,例如从useragent(用户代理)中就可以解析浏览器名称和浏览器版本等信息,这种复杂指标在采集的所有js设备指标中占比较少,需要做定制化拆分处理。

所有的指标放在一起就构成了一个设备指纹指标关键词的集合。设拆分出来的所有的关键词为:

f1,f2……fn

其中n为关键词的个数,那么就将原始信息表示成了一个关键词的向量。

哈希:得到关键词的向量后需要对每个关键词进行哈希,也就是计算相似性哈希值的第二步。本申请中可以采用任何哈希算法,例如,sha(securehashalgorithm,安全散列算法)家族的五个算法,分别是sha-1、sha-224、sha-256、sha-384,和sha-512;或者murmur哈希,本申请在实施的过程中使用的是murmur哈希。选择一种哈希算法将关键词向量中的每个关键词都转换为一个64bit的哈希值(或者32位,或128位等2n位),转换公式如下:

hash(fi)=bi1bi2……bi64,i=1,2,…,n

其中,bim为0或1,m取值1至64,这样我们就将原来长度为n的关键词向量转换为了长度为n的64bit(64位)哈希值向量。

加权:采集到的设备指纹信息中不同的关键词对于设备的区分度是不同的,因此应该给每个关键词分配不同的权重。因为设备指纹指标采集到的指标一般不会有重复的,因此使用逆文本频率指数(inversedocumentfrequency,idf)作为关键词的权重。idf的计算公式如下:

其中,d是一段时间内访问服务器的新设备的总数,ki是在这d个设备中采集到的指标有关键词fi的设备的数量,对数函数使用的是以10为底,或者任何大于1的整数。对每个关键词计算权重,得到权重向量为:

ω1,ω2……ωn

那么对于第i个关键词fi来说,加权就是将64bit的哈希值转换为如下的64维向量:

hi=(ωig(bi1,ωig(bi2)……ωig(bi64)),i=1,2,…,n

合并,对n个关键词都进行加权运算就得到了这些关键词的加权向量。最后,将所有词的带权哈希向量进行合并相加,得到该设备的带权哈希向量和:

降维,是指将n个关键词的哈希值加权合并后得到的加权哈希向量变为一个64bit的哈希向量。将合并后的哈希向量的每一位应用如下公式就可以得到降维后的设备指纹的相似性哈希值,举例来说,加权后的哈希向量可能为:(10,-20,100,50,...,-1,34,23),那么降维后就会变为:(1,0,1,1,...,0,1,1)(大于0的对应1,小于等于0的对应0)。

最终相似性哈希值的表达式为:

如图3所示,为本发明的一种异常设备发现方法的一实施例的流程图,该方法包括:

步骤s201:获取当前用户的设备指纹,计算当前用户的设备指纹的相似性哈希值,将所述当前用户的设备指纹的相似性哈希值当前相似性哈希值作为当前相似性哈希值数据。其中,可以根据图1所示的方法计算当前用户的设备指纹的相似性哈希值。

步骤s202:在设定时间内采集多个设备的设备指纹并存储为设备指纹库。

通过设定时间的限制,能够发现在短时间内如果存在来自同一设备的过于频繁的访问、注册、下单等异常行为,则可以确定在该设备为异常设备,相应的在该设备上的当前操作行为为异常行为。

设定时间可以是以几秒钟,或者几分钟,或者几小时,本发明对此不作限定。

步骤s203:计算所述设备指纹库中的多个设备指纹的多个相似性哈希值,并按照预定格式存储为相似性哈希值库。

具体地,对所述多个相似性哈希值分别做如下处理:

将相似性哈希值划分为多个子部;

将所述多个子部中的每一个部分作为索引分别与所属的相似性哈希值关联存储。

在相似性哈希值库中,以上得到的数据可以是以表的形式进行存储的,示例性地,如图4所示。

步骤s204:查询并确定所述相似性哈希值库中与所述当前相似性哈希值数据之间的相似度小于预设阈值的相似性哈希值数据的个数;

具体地,所述当前相似性哈希值数据包括所述当前相似性哈希值和所述当前相似性哈希值所对应的多个子部;

此时,查询并确定所述相似性哈希值库中与所述当前相似性哈希值数据之间的相似度值小于预设阈值的相似性哈希值数据的个数包括:

以所述当前相似性哈希值的多个子部中的任意一个作为索引,在相似性哈希值库中查询与所述索引相同的子部,将与所述索引相同的子部对应的相似性哈希值作为候选哈希值;

分别计算所述候选哈希值中的每一个相似性哈希值与所述当前相似性哈希值之间的相似度,以得到多个相似度(例如可以计算候选哈希值中的每一个相似性哈希值与当前相似性哈希值之间的汉明距离);

从所述多个相似度中,确定小于预设阈值的相似度的个数。

在本实施例中,将相似性哈希值划分为多个子部,在查询与当前相似性哈希值数据之间的相似度小于预设阈值的相似性哈希值数据时,利用任意一个子部作为索引,在在相似性哈希值库中查询与所述索引相同的子部,将与所述索引相同的子部对应的相似性哈希值作为候选哈希值,是一种快速搜索方式,能过在数据量过大的情况下做到实时计算与查询。

步骤s205:当所述个数大于设定值时,确定当前用户的设备为异常设备。其中,设定值可以根据应用场景灵活设置,本发明在此不做限制。

本发明通过采用相似性哈希算法计算设备指纹的得到相应的相似性哈希值,并根据不同的设备指纹所对应的相似性哈希值之间的相似度来确定这些不同的设备指纹是否同源,从而能够用于从所采集的海量的设备指纹数据中搜索发现设备聚集性所在,以发现异常设备或者异常用户操作行为。

通过计算设备指纹的相似性哈希可以用来解决设备相似性的问题,通过本发明实施的方法解决了如何在海量数据的情况下做相似性搜索的问题。因为搜索一个与当前相似性哈希值相似的设备的时间复杂度是o(n)(“o”后面的括号中有一个函数,指明某个算法的耗时/耗空间与数据增长量之间的关系。其中的n代表输入数据的量。时间复杂度为o(n)代表数据量增大几倍,耗时也增大几倍),在数据量过大例如过亿的情况下无法做到实时计算与查询。

因此,本发明实施例中相似性哈希的快速搜索思路来源于抽屉原理,将n+1个元素放到n个集合中去,其中必定有一个集合里至少有两个元素。因为我们的目标是找到与当前设备的相似性哈希值的汉明距离为3以内的设备。所以我们可以将64bit的哈希值分成4段,每段16bit。根据抽屉原理,两个距离在3以内的设备的相似性哈希值必然有一段是完全相同的。

基于这个理论,对于每一个设备,我们采集到该设备的设备指纹,计算得到相似性哈希值之后,将相似性哈希值分成4段,每段作为一个索引存储该段对应的完整的相似性哈希值,如图4所示,这样会将同一个设备的相似性哈希值存储4份。查询时,将待查询的相似性哈希值(即当前用户的设备指纹的相似性哈希值)同样分成4段,用每段的16bit作为key,从数据库查询该段对应的所有的相似性哈希值,得到后候选的相似性哈希值。

然后遍历候选值,分别计算候选值与待查询相似性哈希值的距离,找到真正距离在3以内的相似性哈希值。如果哈希值足够均匀,那么寻找相似设备会从原来的全局搜索变为只需要从原数据的4/2^16≈1/16000范围内搜索,大大减少了数据搜索的范围,如果数据搜索范围缩小16000倍之后仍然很大,那么可以在分成4段之后,对剩下的48bit递归使用该方法,继续分段存储、搜索。这是一种用空间换时间的加速搜索方法,所以能够在数据量过大如过亿的情况下做到实时计算与查询。

示例性地,假设有3个哈希值:a1=(a11,a12,a13,a14);

a2=(a21,a22,a23,a24);a3=(a31,a32,a33,a34);

哈希值不切分之前,假如确定与a1相似的设备,分别计算a1与a2和a3的汉明距离。

切分之后,分别判断a21、a31是否与a11相同,如果a21和a31都与a11相同,就将a2和a3均作为候选值,计算a1与a2的汉明距离、a1与a3的汉明距离。

在本发明的实施例中,实际情况是一个查找问题,不是对比问题。

按照不切分的方式,如果数据库里有1亿条数据,从这一亿条数据里搜到和a1相似的数据,需要把一亿条数据都取出来,一个一个和a1计算汉明距离,直到找到和a1相似的数据a2和a3。这样的代价是把数据库里所有的数据都搜索出来了,而且计算了一亿次汉明距离。

按照切分的方式,查询的方法是,查询与a1前16位数据相同的数据,也就是按a11查询,能够查到包括a2,a3在内的约10^8/2^16≈1500条数据。然后按照a12查询,会得到另外约1500条数据。以此类推,得到四段的查询结果,将这四段查询结果取并集,得到的就是候选的相似数据,约6000条。然后用a1和这六千条数据分别计算汉明距离,最终得到的结果也会是a2和a3。而这个过程相对原来的一亿次计算汉明距离,减少了万倍以上。

理想情况下,所有的64bit哈希的每一位0和1出现的概率相同,这样搜索相似设备的方法的性能能够达到理论上的最大值。最差的情况是,所有设备生成的哈希值的前48bit都相同,那么上面说到的切分方法就无法加速计算,因为用任意一段查出来的都是全部数据,候选的相似数据会是数据库的全部数据。正常情况下,哈希算法都会使每一位出现的概率基本相同。

在实际应用中,我们采用的是分4段的方式加速搜索,可以做到实时返回与当前相似性哈希的相似度在3以内的所有设备,这样就可以有效的查询到一段时间内有多少设备与当前访问的设备有很高的相似性,从而给风控的实施决策提供依据。

图5是根据本发明实施例的确定设备指纹同源性的装置500的主要模块的示意图,该装置500包括:

信息获取模块510,用于获取第一设备指纹和第二设备指纹;

第一哈希值确定模块520,用于根据所述第一设备指纹确定第一相似性哈希值;

第二哈希值确定模块530,用于根据所述第二设备指纹确定第二相似性哈希值;

相似度计算模块540,用于确定所述第一相似性哈希值和所述第二相似性哈希值之间的相似度;

同源确定模块550,用于当所述相似度小于预设阈值时确定所述第一设备指纹和所述第二设备指纹同源。

如图6所示,在可选的实施例中,所述第一哈希值确定模块520包括:

分词处理单元521,用于对所述第一设备指纹进行分词处理以得到多个关键词;

词哈希值确定单元522,用于对所述多个关键词进行哈希计算以得到多个关键词哈希值;

第一哈希值确定单元523,用于根据所述多个关键词哈希值确定所述第一相似性哈希值。

在可选的实施例中,第一哈希值确定单元还用于:对所述多个关键词哈希值进行加权求和以确定所述第一相似性哈希值;其中,每个所述关键词哈希值的权重根据关键词逆文本频率指数确定。

在可选的实施例中,所述第一设备指纹和所述第二设备指纹分别包括以下至少之一:相应设备的操作系统名称、操作系统版本、字体列表、插件列表。

图7是根据本发明实施例的异常设备发现装置700的主要模块的示意图,该装置700包括:

当前哈希值确定模块710,用于获取当前用户的设备指纹,计算当前用户的设备指纹的相似性哈希值,将所述当前用户的设备指纹的相似性哈希值当前相似性哈希值作为当前相似性哈希值数据;

计算模块720,用于计算所述设备指纹库中的多个设备指纹的多个相似性哈希值;

查询确定模块730,用于查询并确定所述相似性哈希值库中与所述当前相似性哈希值数据之间的相似度小于预设阈值的相似性哈希值数据的个数;

异常设备确定模块740,用于当所述个数大于设定值时,确定当前用户的设备为异常设备。

在可选的实施例中,所述计算模块710还用于:将相似性哈希值划分为多个子部;将所述多个子部中的每一个部分作为索引分别与所属的相似性哈希值关联存储。

在可选的实施例中,所述当前相似性哈希值数据包括所述当前相似性哈希值和所述当前相似性哈希值所对应的多个子部;此时所述查询确定模块720还用于:

以所述当前相似性哈希值的多个子部中的任意一个作为索引,在相似性哈希值库中查询与所述索引相同的子部,将与所述索引相同的子部对应的相似性哈希值作为候选哈希值;

分别计算所述候选哈希值中的每一个相似性哈希值与所述当前相似性哈希值之间的相似度,以得到多个相似度;

从所述多个相似度中,确定小于预设阈值的相似度的个数。当前相似性哈希值

上述装置可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。

图8示出了可以应用本发明实施例的确定设备指纹同源性的方法或确定设备指纹同源性的装置的示例性系统架构800。

如图8所示,系统架构800可以包括终端设备801、802、803,网络804和服务器805。网络804用以在终端设备801、802、803和服务器805之间提供通信链路的介质。网络804可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备801、802、803通过网络804与服务器805交互,以接收或发送消息等。终端设备801、802、803上可以安装有各种通讯客户端应用。

终端设备801、802、803可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。

服务器805可以是提供各种服务的服务器,例如对用户利用终端设备801、802、803所浏览的购物类网站提供支持的后台管理服务器。后台管理服务器可以对接收到的产品信息查询请求等数据进行分析等处理,并将处理结果(例如目标推送信息、产品信息)反馈给终端设备。

需要说明的是,本发明实施例所提供的扣减库存的方法一般由服务器805执行,相应地,确定设备指纹同源性的装置一般设置于服务器805中。

应该理解,图8中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

下面参考图9,其示出了适于用来实现本发明实施例的终端设备的计算机系统900的结构示意图。图9示出的终端设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。

如图9所示,计算机系统900包括中央处理单元(cpu)901,其可以根据存储在只读存储器(rom)902中的程序或者从存储部分908加载到随机访问存储器(ram)903中的程序而执行各种适当的动作和处理。在ram903中,还存储有系统900操作所需的各种程序和数据。cpu901、rom902以及ram903通过总线904彼此相连。输入/输出(i/o)接口905也连接至总线904。

以下部件连接至i/o接口905:包括键盘、鼠标等的输入部分906;包括诸如阴极射线管(crt)、液晶显示器(lcd)等以及扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括诸如lan卡、调制解调器等的网络接口卡的通信部分909。通信部分909经由诸如因特网的网络执行通信处理。驱动器910也根据需要连接至i/o接口905。可拆卸介质911,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。

特别地,根据本发明公开的实施例,上文参考流程图描述的过程可以被实现为计算机软件程序。例如,本发明公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行流程图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分909从网络上被下载和安装,和/或从可拆卸介质911被安装。在该计算机程序被中央处理单元(cpu)901执行时,执行本发明的系统中限定的上述功能。

需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(ram)、只读存储器(rom)、可擦式可编程只读存储器(eprom或闪存)、光纤、便携式紧凑磁盘只读存储器(cd-rom)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、rf等等,或者上述的任意合适的组合。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括发送模块、获取模块、确定模块和第一处理模块。其中,这些模块的名称在某种情况下并不构成对该单元本身的限定,例如,发送模块还可以被描述为“向所连接的服务端发送图片获取请求的模块”。

作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:

获取第一设备指纹和第二设备指纹;

根据所述第一设备指纹确定第一相似性哈希值;

根据所述第二设备指纹确定第二相似性哈希值;

确定所述第一相似性哈希值和所述第二相似性哈希值之间的相似度;

当所述相似度小于预设阈值时确定所述第一设备指纹和所述第二设备指纹同源。

本发明实施例的技术方案,通过采用相似性哈希算法计算设备指纹的得到相应的相似性哈希值,并根据不同的设备指纹所对应的相似性哈希值之间的相似度(例如,汉明距离)来确定这些不同的设备指纹是否同源(即,是否源自于同一设备上的操作),从而能够有效的从所采集的海量的设备指纹数据中搜索发现设备聚集性所在,以发现异常设备或者异常用户操作行为,为风控的实施决策提供依据能够用于从所采集的海量的设备指纹数据中搜索发现设备聚集性所在,以发现异常设备或者异常用户操作行为。

上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1