基于局部敏感哈希的设备指纹分析方法及系统
文献发布时间:2023-06-19 18:25:54
技术领域
本发明涉及通信技术领域,具体地,涉及一种基于局部敏感哈希的设备指纹分析方法及系统。
背景技术
标识通常需要具有唯一性,例如人的指纹可以作为人的身份标识。同时人的姓名、身份证号、相貌特征也可以作为身份的标识。对于设备而言,其也有可以用于识别的特征。比如设备的唯一序列号、设备的生产ID等。简单来讲,设备指纹是指可以用于唯一标识出该设备的设备特征或者独特的设备标识。
局部敏感哈希,英文locality-sensetive hashing,常简称为LSH。局部敏感哈希算法,具备能够体现哈希值之间的相似度的能力。顾明思义,LSH算法产生的散列是局部敏感的,对原始内容做微小的修改后,经过LSH算法生成的散列值的变化也是微小的,因此LSH生成的散列值是局部敏感的。而且散列值变化大小可以采用某种方式度量。如本文以simhash为例,采用汉明码距离来度量相似度。另有,minhash,采用Jaccard距离来度量相似度等。本文的simhash具有局部敏感性,本质上是一种LSH,simhash是LSH的一种实现。其它的LSH算法还有minhash、p-stable LSH等。
专利文献CN110189150A公开了一种设备指纹识别有效性判别方法和系统,包括:创建样本数据库;选取一设定时间范围的若干个样本数据,估算对应时间范围内的模拟收益值,计算估算出的模拟收益值与真实收益值之间的差值的绝对值;将差值的绝对值与设定差值阈值做比对,如果差值的绝对值小于设定差值阈值,判断该设定时间范围内设备指纹识别有效率大于等于最低有效率阈值。
但是,金融类APP如手机银行APP,在国内、境外的监管要求各不一样,国内立法逐渐明确手机设备的某些信息纳入个人隐私数据,需经用户同意才可收集或不允许应用采集,而境外或国外某些国家地区未针对这些数据的采集作明确要求。
另外,随着安卓版本的升级,操作系统对上层应用的权限收紧,imei、androidID等部分数据在一台正常未ROOT的手机上,无法获取得到。安卓由于开源,运行环境和系统安全问题更复杂,导致固定常规的设备指纹算法结果不稳定唯一。
发明内容
针对现有技术中的缺陷,本发明的目的是提供一种基于局部敏感哈希的设备指纹分析方法及系统。
根据本发明提供的一种基于局部敏感哈希的设备指纹分析方法,包括:
步骤S1:获取用于计算设备指纹的设备特征;
步骤S2:对所述设备特征对应的特征值一一进行映射,得到对应的二进制串;
步骤S3:根据所述二进制串,计算对应的权重向量;
步骤S4:将所述权重向量相累加,得到对应设备指纹simhash值。
优选地,所述设备指纹simhash值包括bit串;
所述bit串根据相累加后的权重向量值确定,当相累加后的权重向量值大于0的位置为1,小于等于0的位置为0,进而得到最终的设备指纹simhash值。
优选地,用户首次登录设备得到的设备指纹simhash值,与帐号的对应关系保存在服务端。
优选地,用户下一次使用所述账号登录时,将重新计算设备指纹simhash值与服务端已保存的simhash计算汉明码距离,并判断所述汉明码距离值是否在阈值范围内,若是,则是同一用户设备;若否,则是用户使用了新设备并记录新的simhash值。
优选地,得到设备指纹simhash值后,通过加密或者转码后隐写到终端本地存储中。
根据本发明提供的一种基于局部敏感哈希的设备指纹分析系统,包括:
模块M1:获取用于计算设备指纹的设备特征;
模块M2:对所述设备特征对应的特征值一一进行映射,得到对应的二进制串;
模块M3:根据所述二进制串,计算对应的权重向量;
模块M4:将所述权重向量相累加,得到对应设备指纹simhash值。
优选地,所述设备指纹simhash值包括bit串;
所述bit串根据相累加后的权重向量值确定,当相累加后的权重向量值大于0的位置为1,小于等于0的位置为0,进而得到最终的设备指纹simhash值。
优选地,用户首次登录设备得到的设备指纹simhash值,与帐号的对应关系保存在服务端。
优选地,用户下一次使用所述账号登录时,将重新计算设备指纹simhash值与服务端已保存的simhash计算汉明码距离,并判断所述汉明码距离值是否在阈值范围内,若是,则是同一用户设备;若否,则是用户使用了新设备并记录新的simhash值。
优选地,得到设备指纹simhash值后,通过加密或者转码后隐写到终端本地存储中。
与现有技术相比,本发明具有如下的有益效果:
1、本发明基于局部敏感哈希算法simhash算法原理,可动态调整的设备特征作输入、汉明码距离作相似度阈值判断,能够适应外部环境约束和需求变化。
2、本发明以simhash的汉明码距离计算用户设备和业务系统帐号的相似度进而判断用户新设备,可适用于其它局部敏感哈希算法或ios设备。
3、本发明能够适应终端设备在弱网环境优化匹配速度,提高了其稳定性。
附图说明
通过阅读参照以下附图对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:
图1为本发明的工作流程示意图。
图2为本发明设备特征映射流程示意图。
具体实施方式
下面结合具体实施例对本发明进行详细说明。以下实施例将有助于本领域的技术人员进一步理解本发明,但不以任何形式限制本发明。应当指出的是,对本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变化和改进。这些都属于本发明的保护范围。
本发明采用具有相似度特点的局部敏感哈希算法作基础,建立一种以可动态调整的设备特征作输入、相似度阈值作判断的设备唯一码,即设备指纹的分析方法。即可以适合外部环境约束和需求变化的设备指纹算法。其中,外部环境约束和需求变化包括终端APP在不同国家地区政策的合规性要求差异,以及安卓操作系统变迁导致的应用层获取特征信息权限收紧问题。本发明可迁移到其它局部敏感哈希算法或ios设备,主要以simhash和安卓设备作描述说明。
实施例一
根据本发明提供的一种基于局部敏感哈希的设备指纹分析方法,如图1所示,包括:
步骤S1:获取用于计算设备指纹的设备特征。具体地,列举确认用于计算设备指纹的设备特征,增加业务系统相关的标记特征。比如手机银行系统的用户帐号。根据具体环境下,确认是否采用并将不采用的标记0,采用的标记1。然后评估确定所采用的特征权重,差异性较明显的特征feature赋予较高的权重weight。
步骤S2:对所述设备特征对应的特征值一一进行映射,得到对应的二进制串。其中,二进制串是一个n位二进制串,一般常用的位数为32、64和128。
步骤S3:根据所述二进制串,计算对应的权重向量。
步骤S4:将所述权重向量相累加,得到对应设备指纹simhash值。所述设备指纹simhash值包括bit串。所述bit串根据相累加后的权重向量值确定,当相累加后的权重向量值大于0的位置为1,小于等于0的位置为0,进而得到最终的设备指纹simhash值。
具体地,在系统运用时,用户首次登录设备得到的设备指纹simhash值,与帐号的对应关系保存在服务端。用户下一次使用所述账号登录时,将重新计算设备指纹simhash值与服务端已保存的simhash计算汉明码距离,并判断所述汉明码距离值是否在阈值范围内,若是,则是同一用户设备;若否,则是用户使用了新设备并记录新的simhash值。其中,阈值大小由开发者按实际实验数据评估拟定。安卓终端APP计算得到设备指纹simhash值后,通过加密或者转码后隐写到终端本地存储中。即使在弱网情况下,快速从本地计算汉明码距离,或在合规性要求不允许收集用户设备信息的情况下满足需求。
进一步地,以增加手机银行系统的用户帐号标记特征举例对本发明具体描述如下:
首先,获取计算设备指纹的设备特征并增加手机银行系统的用户帐号标记特征,确认设备特征及标记特征是否采用及被采用的特征权重,如表1所示:
表1
然后,通过hash函数对每一个特征值进行映射,如图2所示,将表1中的feature,weight映射到hash,weight。其中,w表示权重,n表示特征数量,hash表示使用hash算法为每个特征值生成对应的固定长度的二进制数值,add表示将每个特征向量加权累加计算,sign表示降维处理后输出,fingerprint表示最终的设备指纹哈希签名值,即simhash结果值。
接着,通过得到的每个特征向量的Hash串和该词向量对应的权重,计算对应的权重向量,计算公式为W=hash*weight。
最后,把所有特征向量的权重向量相累加,得到一个新的权重向量。使得值大于0的位置1,值小于等于0的位置0,得到该设备指纹的simhash值。如图2所示,假设最终合并相累加的结果为[13,108,-22,-5,-32,55],得到一个bit串为[1,1,0,0,0,1],也就是说,最终的设备指纹simhash结果值为[1,1,0,0,0,1]。
进而,本发明运用到APP业务系统上,能够克服外部环境变化。
实施例二
本发明还提供了一种基于局部敏感哈希的设备指纹分析系统,本领域技术人员可以通过执行所述基于局部敏感哈希的设备指纹分析方法的步骤流程实现所述基于局部敏感哈希的设备指纹分析系统,即可以将所述基于局部敏感哈希的设备指纹分析方法理解为所述基于局部敏感哈希的设备指纹分析系统的优选实施方式。
根据本发明提供的一种基于局部敏感哈希的设备指纹分析系统,包括:
模块M1:获取用于计算设备指纹的设备特征。
模块M2:对所述设备特征对应的特征值一一进行映射,得到对应的二进制串。
模块M3:根据所述二进制串,计算对应的权重向量。
模块M4:将所述权重向量相累加,得到对应设备指纹simhash值。所述设备指纹simhash值包括bit串。所述bit串根据相累加后的权重向量值确定,当相累加后的权重向量值大于0的位置为1,小于等于0的位置为0,进而得到最终的设备指纹simhash值。
本发明在系统运用时用户首次登录设备得到的设备指纹simhash值,与帐号的对应关系保存在服务端。用户下一次使用所述账号登录时,将重新计算设备指纹simhash值与服务端已保存的simhash计算汉明码距离,并判断所述汉明码距离值是否在阈值范围内,若是,则是同一用户设备;若否,则是用户使用了新设备并记录新的simhash值。得到设备指纹simhash值后,通过加密或者转码后隐写到终端本地存储中。
本领域技术人员知道,除了以纯计算机可读程序代码方式实现本发明提供的系统、装置及其各个模块以外,完全可以通过将方法步骤进行逻辑编程来使得本发明提供的系统、装置及其各个模块以逻辑门、开关、专用集成电路、可编程逻辑控制器以及嵌入式微控制器等的形式来实现相同程序。所以,本发明提供的系统、装置及其各个模块可以被认为是一种硬件部件,而对其内包括的用于实现各种程序的模块也可以视为硬件部件内的结构;也可以将用于实现各种功能的模块视为既可以是实现方法的软件程序又可以是硬件部件内的结构。
以上对本发明的具体实施例进行了描述。需要理解的是,本发明并不局限于上述特定实施方式,本领域技术人员可以在权利要求的范围内做出各种变化或修改,这并不影响本发明的实质内容。在不冲突的情况下,本申请的实施例和实施例中的特征可以任意相互组合。
- 基于时间序列的物联网设备监测数据分析方法和系统
- 一种基于局部敏感哈希的HTM序列数据分析系统及方法
- 基于局部敏感哈希的智能合约分类方法、系统及电子设备