一种判断设备唯一性的方法及系统与流程

专利2022-06-30  57


本发明涉及移动应用安全技术领域,具体涉及一种判断设备唯一性的方法及系统。



背景技术:

随着移动互联网的蓬勃发展,移动安全面临着软件破解、代码注入、“薅羊毛”等诸多安全问题。其中基于软件破解和代码注入导致的无法判读安卓设备唯一性的问题,引发了以“薅羊毛”、刷单为代表的一系列不法现象,造成严重的经济损失和信用丧失。

现阶段如何识别安卓设备的唯一性的方法主要集中在如何获取更多的、更准确的硬件设备id或者安卓操作系统中的逻辑设备id,存在两方面的问题:1.由于安卓设备和定制化安卓操作系统种类多,对一种设备id而言,无法保证在所有设备中都能获取。2存在对软件进行破解和代码注入的问题,在不影响安卓应用正常运行的情况下替换原有代码逻辑,导致无法获取或者获取到错误的设备id。因此亟需在此基础上进行改善,提高判断安卓设备唯一标识的准确性,提高违法成本,减少经济损失。



技术实现要素:

针对现阶段识别安卓设备的唯一性的方法存在的由于安卓设备和定制化安卓操作系统种类多,对一种设备id而言,无法保证在所有设备中都能获取以及存在对软件进行破解和代码注入的问题,在不影响安卓应用正常运行的情况下替换原有代码逻辑,导致无法获取或者获取到错误的设备id的问题,本发明提供一种判断设备唯一性的方法及系统。

本发明的技术方案是:

一方面,本发明技术方案提供一种判断设备唯一性的方法,包括如下步骤:

检测系统环境的安全性;

当系统环境安全时,对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;

将设备id数据与预存的设备id数据进行相似度计算并根据相似度判断设备唯一性。

进一步的,所述的检测系统环境的安全性的步骤包括:对系统进行了防破解、防代码注入的检测,其中具体步骤包括:

s11:检测系统是否安装了影响程序运行的框架服务;若是,执行步骤s12,若否,判定系统环境安全,执行步骤:对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;

s12:查询是否存在影响程序运行的框架服务jar文件;若是,执行步骤s13,若否,判定系统环境安全,执行步骤:对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;

s13:检测用户应用中是否存在代码被替换或者代码注入,若是,执行步骤s14;若否,判定系统环境安全,执行步骤:对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;

s14:进行提示或终止服务。

通过对系统环境进行安全检测解决由于存在对软件进行破解和代码注入导致无法获取或者获取到错误的设备id的问题。

进一步的,所述的步骤s11中检测系统是否安装了影响程序运行的框架服务的步骤包括:

s111:查询系统中所有包列表;

s112:将包列表中的包名与影响程序运行的框架服务相应包名进行对比判定影响程序运行的框架服务是否存在。

进一步的,所述的步骤s12中查询是否存在影响程序运行的框架服务jar文件的步骤包括:

s121:获取当前进程使用的jar文件列表;

s122将jar文件列表中的jar文件名与影响程序运行的框架服务相应jar文件名进行对比判定是否存在影响程序运行的框架服务jar文件。

进一步的,所述的对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id的步骤具体包括:

s21:对系统默认浏览器的信息进行采集;

s22:对采集数据进行处理依次计算所有浏览器信息的设备id;

s23:采集现有的设备id或者系统中的逻辑设备id;

s24:将采集的各种设备id数据加密后上传到后台服务器。

通过对默认浏览器中设备信息的采集,提高设备信息的多样性,提高伪造成本。

进一步的,所述的将设备id数据与预存的设备id数据进行相似度计算,并根据相似度判断设备唯一性的步骤通过后台服务器执行,具体步骤包括:

s41:对接收到的加密后的各类设备id数据进行解密;

s42:计算传入设备id和预存储的设备id的相似度,判定是否为同一设备,若相似度达到设定阈值,则认为是同一设备;否则认为非同一设备;

s43:若在设定时间内被认为非同一设备的次数超过设定的次数阈值,则发出返回设备id对应的设备进行提示或终止服务。提高判断设备唯一标识的准确性,提高违法成本,减少经济损失。

根据计算的相似度判定设备唯一标识的合法性并跟踪并分析潜在风险。相似度计算包括如下方面:不同设备信息采用不同的对比策略和权重设置;识别设备信息正常的变化,避免造成误判。

进一步的,所述的步骤s42中,若预存储设备id为空,则默认为同一设备;

当相似度不是100%但超过设定阈值时,更新预存储的设备id的数据。使存储的数据根据分析过程进行更新提高判断的准确性。

另一方面,本发明技术方案提供一种判断设备唯一性的系统,包括安全检测模块、浏览器采集模块和处理单元;

安全检测模块,用于检测系统环境的安全性;

浏览器采集模块,用于当系统环境安全时,对客户端系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;

处理单元,用于将设备id数据与预存的设备id数据进行相似度计算,并根据相似度判断设备唯一性。

进一步的,该系统还包括常规设备id采集模块、加密模块和数据传输模块;

常规设备id采集模块,用于采集现有的设备id或者客户端操作系统中的逻辑设备id;加密模块,用于对提取到的各类设备id进行加密;

数据传输模块,用于将各类设备id加密数据传输给处理单元。

进一步的,该系统包括客户端,所述的安全检测模块、浏览器采集模块、常规设备id采集模块、加密模块和数据传输模块设置在客户端;

所述的处理单元为后台服务器;所述的后台服务器包括数据解密模块、验证分析模块、数据存储模块;

数据解密模块,用于对接收到的加密数据进行解密;

数据存储模块,用于存储设备id并且当相似度不是100%但超过设定阈值时,数据存储模块更新数据;

验证分析模块,用于计算传入设备id和存储设备id的相似度,判定是否为同一设备并且在一定时间内被认为非同一设备的次数超过设定的次数阈值,则返回客户端,由客户端系统进行提示或终止服务。

进一步的,所述的客户端包括安装有安卓系统的安卓设备。

从以上技术方案可以看出,本发明具有以下优点:现有设备id采集基础上进行了如下方面的创新:1.对系统进行了全方位的防破解、防代码注入检测;2.实现了对系统默认浏览器中设备信息的采集,提高设备信息的多样性,提高伪造成本;3.对采集的设备id进行安全分析;综合上述本发明提高判断设备唯一标识的准确性,提高违法成本,减少经济损失。

此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。

由此可见,本发明与现有技术相比,具有突出的实质性特点和显著地进步,其实施的有益效果也是显而易见的。

附图说明

为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是本发明提供的判断设备唯一性的方法的示意性流程图。

图2是本发明提供的判断安卓设备唯一性的方法的示意性流程图。

图3是本发明提供的判断安卓设备唯一性的系统的示意性框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

实施例一

如图1所示,本发明技术方案提供一种判断安卓设备唯一性的方法,包括如下步骤:

s1-1:检测系统环境的安全性;

s2-1:当系统环境安全时,对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;

s3-1:将设备id数据与预存的设备id数据进行相似度计算,并根据相似度判断设备唯一性。

实施例二

如图2所示,本发明技术方案提供一种判断安卓设备唯一性的方法,所述的设备为安装有安卓系统的安卓设备,该方法包括如下步骤:

s1-2:检测安卓系统环境的安全性;本实施例中,对安卓系统环境进行安全性检测主要是检测是否存在影响程序运行的框架服务,本领域常见的为xposed框架,xposed框架是一款可以在不修改apk的情况下影响程序运行(修改系统)的框架服务,基于它可以制作出许多功能强大的模块,且在功能不冲突的情况下同时运作,检测安卓系统是否安装了xposed框架包括查询xposed框架包名(其本身也是一个应用)是否存在、查询是否存在xposed框架jar文件。检测用户应用中是否存在代码被hook的方法,可以有效判定应用中的功能代码(采集、处理、上报设备id的代码)是否被hook(替换或者代码注入),从而有效采取相应的安全措施,提高应用的安全性。本方法的设备唯一性的判断必须是在安卓设备环境安全的情况下进行,若设备环境不安全也就是系统已经被代码注入或篡改时没有必要进行设备唯一性判断。本步骤中,所述的检测安卓系统环境的安全性的步骤包括:对安卓系统进行了防破解、防代码注入的检测,其中具体步骤包括:

s11:检测安卓系统是否安装了影响程序运行的框架服务xposed框架,若是,执行步骤s12,若否,判定安卓系统环境安全,执行步骤:对安卓系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;其中,检测安卓系统是否安装了xposed框架的步骤包括:s111:查询安卓系统中所有包列表;s112:将包列表中的包名与xposed框架相应包名进行对比判定xposed框架是否存在。

s12:查询是否存在xposed框架jar文件;若是,执行步骤s13,若否,判定安卓系统环境安全,执行步骤:对安卓系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;其中,查询是否存在xposed框架jar文件的步骤包括:s121:获取当前进程使用的jar文件列表;s122:将jar文件列表中的jar文件名与xposed框架相应jar文件名进行对比判定是否存在xposed框架jar文件。

s13:检测用户应用中是否存在代码被替换或者代码注入,若是,执行步骤s14;若否,判定安卓系统环境安全,执行步骤:对安卓系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;被xposed替换或者注入的方法(函数)时会把方法转位native方法,通过检测不应该为native的方法被native了来判断此方法是否被xposed替换或者注入。xposed框架介入安卓应用程序和操作系统之间,正常情况下应用程序直接与操作系统交互,在存在xposed框架情况下可以认为xposed框架伪装成操作系统与应用程序交互。如果应用程序中的一个函数是应用程序实现的,那么它就不是native的,如果被xposed框架替换或者注入这个函数,函数的属性就会变为native,就不在执行应用程序实现的函数,而去执行操作系统的(xposed伪装的)函数。具有native属性的函数可以理解操作系统实现的原生函数。

s14:进行提示或终止服务。

基于此方法可以有效判定应用中的功能代码(采集、处理、上报设备id的代码)是否被hook(替换或者代码注入),从而有效采取相应的安全措施,提高应用的安全性。

s2-2:当安卓系统环境安全时,对安卓系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;具体包括:s2-21:对安卓系统默认浏览器的信息进行采集;s2-22:对采集数据进行处理依次计算所有浏览器信息的设备id;s2-23:采集现有的设备id或者安卓系统中的逻辑设备id;s2-24:将采集的各种设备id数据加密后上传到后台服务器。通过安卓应用程序调用内置的包含在html5页面中javascript采集程序实现对系统默认浏览器信息的采集,支持常用的chrome、opera、firefox、360安全浏览器和腾讯浏览器等浏览器,采集信息包括useragent、屏幕信息、语言设置、系统安装字体列表、mimetype列表、移动设备加速器和陀螺仪的噪音信号、canvas、webfont、webgl等,对上述种类的数据进行处理生成相应设备信息的唯一id。通过对安卓默认浏览器中设备信息的采集,提高设备信息的多样性,提高伪造成本。

s3-2:后台服务器将接收到的设备id数据与预存的设备id数据进行相似度计算,并根据相似度判断设备唯一性并返回判断结果到安卓设备。本步骤中,后台服务器的处理过程包括:

s41:对接收到的加密后的各类设备id数据进行解密;

s42:计算传入设备id和数据存储模块中存储设备id的相似度,判定是否为同一设备,若相似度达到设定阈值,则认为是同一设备;否则认为非同一设备;若预存储设备id为空,则默认为同一设备;

当相似度不是100%但超过设定阈值时,更新预存储的设备id的数据。使存储的数据根据分析过程进行更新提高判断的准确性。

s43:若在设定时间内被认为非同一设备的次数超过设定的次数阈值,则发出返回安卓设备由安卓系统进行提示、终止服务或其他安全措施。提高判断安卓设备唯一标识的准确性,提高违法成本,减少经济损失。

根据计算的相似度判定设备唯一标识的合法性并跟踪并分析潜在风险。相似度计算包括如下方面:不同设备信息采用不同的对比策略和权重设置;识别设备信息正常的变化,避免造成误判。

实施例三

如图3所示,本发明技术方案提供一种判断安卓设备唯一性的系统,包括客户端和后台服务器;所述的客户端包括安装由安卓系统的安卓设备;

所述的安卓设备包括安全检测模块、浏览器采集模块、数据传输模块;

安全检测模块,用于检测安卓系统环境的安全性;浏览器采集模块,用于当安卓系统环境安全时,对安卓系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;数据传输模块,将采集的数据上传到后台服务器;所述的安卓设备还包括常规设备id采集模块、加密模块;常规设备id采集模块,用于采集现有的设备id或者安卓操作系统中的逻辑设备id;加密模块,用于对提取到的各类设备id进行加密;数据传输模块,用于将各类设备id加密数据上报给后台服务器。

所述的后台服务器,用于将接收到的设备id数据与预存的设备id数据进行相似度计算,并根据相似度判断设备唯一性并返回判断结果到安卓设备。所述的后台服务器包括数据解密模块、验证分析模块、数据存储模块;数据解密模块,用于对接收到的加密数据进行解密;数据存储模块,用于存储设备id并且当相似度不是100%但超过设定阈值时,数据存储模块更新数据;验证分析模块,用于计算传入设备id和存储设备id的相似度,判定是否为同一设备并且在一定时间内被认为非同一设备的次数超过设定的次数阈值,则返回安卓设备,由安卓设备进行提示、终止服务或其他安全措施。

尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。


技术特征:

1.一种判断设备唯一性的方法,其特征在于,包括如下步骤:

检测系统环境的安全性;

当系统环境安全时,对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;

将设备id数据与预存的设备id数据进行相似度计算并根据相似度判断设备唯一性。

2.根据权利要求1所述的一种判断设备唯一性的方法,其特征在于,所述的检测系统环境的安全性的步骤包括:对系统进行了防破解、防代码注入的检测,其中具体步骤包括:

s11:检测系统是否安装了影响程序运行的框架服务;若是,执行步骤s12,若否,判定系统环境安全,执行步骤:对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;

s12:查询是否存在影响程序运行的框架服务jar文件;若是,执行步骤s13,若否,判定系统环境安全,执行步骤:对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;

s13:检测用户应用中是否存在代码被替换或者代码注入,若是,执行步骤s14;若否,判定系统环境安全,执行步骤:对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;

s14:进行提示或终止服务。

3.根据权利要求2所述的一种判断设备唯一性的方法,其特征在于,所述的步骤s11中检测系统是否安装了影响程序运行的框架服务的步骤包括:

s111:查询系统中所有包列表;

s112:将包列表中的包名与影响程序运行的框架服务相应包名进行对比判定影响程序运行的框架服务是否存在。

4.根据权利要求2所述的一种判断设备唯一性的方法,其特征在于,所述的步骤s12中查询是否存在影响程序运行的框架服务jar文件的步骤包括:

s121:获取当前进程使用的jar文件列表;

s122将jar文件列表中的jar文件名与影响程序运行的框架服务相应jar文件名进行对比判定是否存在影响程序运行的框架服务jar文件。

5.根据权利要求1所述的一种判断设备唯一性的方法,其特征在于,所述的对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id的步骤具体包括:

s21:对系统默认浏览器的信息进行采集;

s22:对采集数据进行处理依次计算所有浏览器信息的设备id;

s23:采集现有的设备id或者系统中的逻辑设备id;

s24:将采集的各种设备id数据加密后上传到后台服务器。

6.根据权利要求5所述的一种判断设备唯一性的方法,其特征在于,所述的将设备id数据与预存的设备id数据进行相似度计算,并根据相似度判断设备唯一性的步骤通过后台服务器执行,具体步骤包括:

s41:对接收到的加密后的各类设备id数据进行解密;

s42:计算传入设备id和预存储的设备id的相似度,判定是否为同一设备,若相似度达到设定阈值,则认为是同一设备;否则认为非同一设备;

s43:若在设定时间内被认为非同一设备的次数超过设定的次数阈值,则发出返回设备id对应的设备进行提示或终止服务。

7.根据权利要求6所述的一种判断设备唯一性的方法,其特征在于,所述的步骤s42中,若预存储的设备id为空,则默认为同一设备;

当相似度不是100%但超过设定阈值时,更新预存储的设备id的数据。

8.一种判断设备唯一性的系统,其特征在于,包括安全检测模块、浏览器采集模块和处理单元;

安全检测模块,用于检测系统环境的安全性;

浏览器采集模块,用于当系统环境安全时,对客户端系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备id;

处理单元,用于将设备id数据与预存的设备id数据进行相似度计算,并根据相似度判断设备唯一性。

9.根据权利要求8所述的一种判断设备唯一性的系统,其特征在于,该系统还包括常规设备id采集模块、加密模块和数据传输模块;

常规设备id采集模块,用于采集现有的设备id或者客户端操作系统中的逻辑设备id;

加密模块,用于对提取到的各类设备id进行加密;

数据传输模块,用于将各类设备id加密数据传输给处理单元。

10.根据权利要求9所述的一种判断设备唯一性的系统,其特征在于,该系统包括客户端,所述的安全检测模块、浏览器采集模块、常规设备id采集模块、加密模块和数据传输模块设置在客户端;

所述的处理单元为后台服务器;所述的后台服务器包括数据解密模块、验证分析模块、数据存储模块;

数据解密模块,用于对接收到的加密数据进行解密;

数据存储模块,用于存储设备id并且当相似度不是100%但超过设定阈值时,数据存储模块更新数据;

验证分析模块,用于计算传入设备id和存储设备id的相似度,判定是否为同一设备并且在一定时间内被认为非同一设备的次数超过设定的次数阈值,则返回客户端,由客户端系统进行提示或终止服务。

技术总结
本发明提供一种判断设备唯一性的方法及系统,所述方法包括如下步骤:检测系统环境的安全性;当系统环境安全时,对系统默认浏览器的信息进行采集并对采集数据进行处理生成相应信息的唯一设备ID;将设备ID数据与预存的设备ID数据进行相似度计算,并根据相似度判断设备唯一性。若相似度达到设定阈值,则认为是同一设备;否则认为非同一设备;若在设定时间内被认为非同一设备的次数超过设定的次数阈值,则发出返回安卓设备由安卓系统进行提示或终止服务。

技术研发人员:张连法
受保护的技术使用者:苏州浪潮智能科技有限公司
技术研发日:2020.01.18
技术公布日:2020.06.05

转载请注明原文地址: https://bbs.8miu.com/read-56228.html

最新回复(0)