CN110427785B - 设备指纹的获取方法和装置、存储介质及电子装置 - Google Patents
设备指纹的获取方法和装置、存储介质及电子装置 Download PDFInfo
- Publication number
- CN110427785B CN110427785B CN201910667673.5A CN201910667673A CN110427785B CN 110427785 B CN110427785 B CN 110427785B CN 201910667673 A CN201910667673 A CN 201910667673A CN 110427785 B CN110427785 B CN 110427785B
- Authority
- CN
- China
- Prior art keywords
- hardware information
- information
- target
- fingerprint
- terminal device
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/70—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
- G06F21/71—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
- G06F21/73—Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information by creating or determining hardware identification, e.g. serial numbers
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Theoretical Computer Science (AREA)
- Mathematical Physics (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Collating Specific Patterns (AREA)
- Arrangements For Transmission Of Measured Signals (AREA)
Abstract
本发明公开了一种设备指纹的获取方法和装置、存储介质及电子装置。其中,该方法包括:获取第一终端设备多个维度的硬件信息,其中,多个维度的硬件信息通过第一方式访问第一终端设备的内核层获得,第一方式与调用第一应用程序编程接口的方式不同,第一应用程序编程接口为第一终端设备的操作***为应用程序所提供的应用程序编程接口;对每一个维度的硬件信息分别转换为用于标识对应维度的硬件信息的中间数据;根据每一个维度的硬件信息转换得到的中间数据,生成用于标识第一终端设备的第一设备指纹。本发明解决了设备指纹容易被伪造的技术问题。
Description
技术领域
本发明涉及计算机领域,具体而言,涉及一种设备指纹的获取方法和装置、存储介质及电子装置。
背景技术
当前对于设备指纹,也就是设备的唯一ID的计算方法,主要依靠设备的IMEI(International Mobile Equipment Identity,国际移动设备识别码)进行计算获得。
但是网络黑产为了对抗现有的设备指纹算法,往往会通过刷机、升级ROM(Read-Only Memory,只读内存)、格式化手机、安装刷机软件等方式改变手机***信息,从而伪造设备指纹,使得通过现有的方法计算设备指纹无法有效的对设备进行唯一性标识。
针对上述的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种设备指纹的获取方法和装置、存储介质及电子装置,以至少解决设备指纹容易被伪造的技术问题。
根据本发明实施例的一个方面,提供了一种设备指纹的获取方法,包括:获取第一终端设备多个维度的硬件信息,其中,多个维度的硬件信息通过第一方式访问第一终端设备的内核层获得,第一方式与调用第一应用程序编程接口的方式不同,第一应用程序编程接口为第一终端设备的操作***为应用程序所提供的应用程序编程接口;对每一个维度的硬件信息分别转换为用于标识对应维度的硬件信息的中间数据;根据每一个维度的硬件信息转换得到的中间数据,生成用于标识第一终端设备的第一设备指纹。
根据本发明实施例的另一方面,还提供了一种设备指纹的获取装置,包括:第一获取模块,用于获取第一终端设备多个维度的硬件信息,其中,多个维度的硬件信息通过第一方式访问第一终端设备的内核层获得,第一方式与调用第一应用程序编程接口的方式不同,第一应用程序编程接口为第一终端设备的操作***为应用程序所提供的应用程序编程接口;第一转换模块,用于对每一个维度的硬件信息分别转换为用于标识对应维度的硬件信息的中间数据;生成模块,用于根据每一个维度的硬件信息转换得到的中间数据,生成用于标识第一终端设备的第一设备指纹。
根据本发明实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述设备指纹的获取方法。
根据本发明实施例的又一方面,还提供了一种电子装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其中,上述处理器通过计算机程序执行上述的设备指纹的获取方法。
在本发明实施例中,采用通过第一方式访问内核层获取多个维度的硬件信息,从而获得第一终端设备多个维度真实的硬件信息,根据多个维度的硬件信息转换获得的中间数据生成第一设备指纹,使得第一设备指纹可以指示多个维度的硬件信息,由于第一终端设备的硬件信息不易被篡改,从而使得第一设备指纹可以对第一终端设备进行唯一性的标识。达到了所获得的设备指纹不易被伪造的目的,从而实现了生成不易被伪造的设备指纹的技术效果,进而解决了设备指纹容易被伪造的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种可选的设备指纹的获取方法的应用环境的示意图;
图2是根据本发明实施例的一种可选的设备指纹的获取方法的流程示意图;
图3是根据本发明实施例的终端设备与服务器的交互示意图;
图4是根据本发明实施例的另一种可选的设备指纹的获取方法的流程示意图;
图5是根据本发明实施例的设备指纹的结构示意图;
图6是根据本发明实施例的生成设备指纹的流程示意图;
图7是根据本发明实施例的又一种可选的设备指纹的获取方法的流程示意图;
图8是根据本发明实施例的一种可选的设备指纹的获取装置的结构示意图;
图9是根据本发明实施例的一种可选的电子装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
根据本发明实施例的一个方面,提供了一种设备指纹的获取方法,可选地,作为一种可选的实施方式,上述设备指纹的获取方法可以但不限于应用于如图1所示的环境中。
在本发明实施例中,服务器110可以为了获取用户设备102的设备指纹,可以通过处理引擎114执行步骤S116-118,向用户设备102发送获取指令,用户设备102在接收到服务器110发送的用户获取用户设备的设备指令的获取指令的情况下,可以通过处理器106执行步骤S120,获取第一终端设备多个维度的硬件信息,其中,多个维度的硬件信息通过第一方式访问第一终端设备的内核层获得,第一方式与调用第一应用程序编程接口的方式不同,第一应用程序编程接口为第一终端设备的操作***为应用程序所提供的应用程序编程接口;步骤S122,对每一个维度的硬件信息分别转换为用于标识对应维度的硬件信息的中间数据;以及步骤S124,根据每一个维度的硬件信息转换得到的中间数据,生成用于标识第一终端设备的第一设备指纹。通过第一方式访问内核层获取多个维度的硬件信息,从而获得第一终端设备真实的硬件信息,根据多个维度的硬件信息转换获得的中间数据生成第一设备指纹,使得第一设备指纹可以指示多个维度的硬件信息,由于第一终端设备的硬件信息不易被篡改,从而对第一设备指纹可以对第一终端设备进行唯一性的标识。用户设备102还可以执行步骤S126-S128,向服务器110发送设备指纹。这里,用户设备102可以通过存储器104存储设备指纹,可以通过显示器108显示设备指纹。服务器110可以通过数据库112存储用户设备102发送的设备指纹。
可选地,在本实施例中,上述设备指纹的获取方法可以但不限于应用于用户设备102中,还可以用于服务器110。其中,上述用户设备102中可以安装有应用客户端,用于通过该应用客户端与服务器110进行信息交互,该用户设备102可以但不限于为手机、平板电脑、笔记本电脑、PC机等支持运行应用客户端的终端设备。上述服务器110和用户设备102可以但不限于通过网络130实现数据交互,上述网络130可以包括但不限于无线网络或有线网络。其中,该无线网络包括:蓝牙、WIFI及其他实现无线通信的网络。上述有线网络可以包括但不限于:广域网、城域网、局域网。上述仅是一种示例,本实施例中对此不作任何限定。
可选地,作为一种可选的实施方式,如图2所示,上述设备指纹的获取方法包括:
步骤S202,获取第一终端设备多个维度的硬件信息,其中,多个维度的硬件信息通过第一方式访问第一终端设备的内核层获得,第一方式与调用第一应用程序编程接口的方式不同,第一应用程序编程接口为第一终端设备的操作***为应用程序所提供的应用程序编程接口;
步骤S204,对每一个维度的硬件信息分别转换为用于标识对应维度的硬件信息的中间数据;
步骤S206,根据每一个维度的硬件信息转换得到的中间数据,生成用于标识第一终端设备的第一设备指纹。
本发明实施例通过第一方式访问内核层获取多个维度的硬件信息,从而获得第一终端设备多个维度真实的硬件信息,根据多个维度的硬件信息转换获得的中间数据生成第一设备指纹,使得第一设备指纹可以指示多个维度的硬件信息,由于第一终端设备的硬件信息不易被篡改,从而使得第一设备指纹可以对第一终端设备进行唯一性的标识。
这里,第一终端设备中包括内核层,内核层为第一终端设备提供进程管理、文件网络管理、***安全权限管理、***与硬件设备通信基础等。内核层可以为第一终端设备的各种硬件提供底层的驱动,例如显示、音频、蓝牙、电源管理等。第一终端设备为了便于应用程序访问内核层,而又避免应用程序直接访问内核层造成危害,第一终端设备的操作***为应用程序提供了第一应用程序编程接口。在本发明实施例中,发明人发现黑产会通过改机软件等对***函数进行HOOK,从而使得在通过操作***为应用程序提供的第一应用程序编程接口获取硬件信息时所获取到的硬件信息并不是内核层反馈的真实的硬件信息,而是经过钩子HOOK处理后的数据。故而在本发明实施例中,通过与调用第一应用程序编程接口的方式不同的第一方式访问内核层,以获取第一终端设备的硬件信息,从而获取到第一终端设备真实的硬件信息。由于第一终端设备的硬件信息与第一终端设备的硬件相关联,进行刷机等操作不会改变终端设备的硬件,从而可以根据第一设备指纹中用于表示硬件信息的第一目标字段确定终端设备。本发明实施例中,根据访问内核层获得的硬件信息和获取的***信息生成的设备指纹,使得设备指纹不易被伪造。
在本发明可选实施例中,根据中间数据生成的第一设备指纹中可以携带有第一目标字段,用于指示第一设备的硬件信息。可选的,还可以获取第一终端设备多个维度的***信息,从而将***信息转换为转换数据,根据中间数据和转换数据,生成第一设备的设备指纹。此时,设备指纹中携带有第一目标字段,还可以携带有用于表示***信息的第二目标字段,从而使得根据第一设备指纹还可以观察第一终端设备的***环境变动,比如是否有刷机行为等。
在本发明实施例中,对于硬件信息可以包括:中央处理器(Central ProcessingUnit,简称CPU)、内存、实时时钟RCT、无线网卡MAC地址Wlan0mac、网卡地址P2p0mac、手机本机IP(Internet Protocol Address,互联网协议地址)、网关mac(Media Access Control,介质访问控制)地址。对于***信息可以包括:应用列表信息、终端属性信息、终端环境信息、终端文件信息、传感器信息等。这里,应用列表信息可以包括:终端设备上所安装的应用程序包名、版本、安装时间等。终端环境信息可以包括:终端显示屏的分辨率、ROM大小、CPU频率、ROOT等。终端文件信息可以包括:CPU文件、内存文件、字体文件个数、APP文件等。传感器信息可以包括:传感器名称、版本、供应商、误差等。
可选的,获取第一终端设备多个维度的硬件信息,包括:调用第一终端设备的目标层中的***应用程序编程接口来访问第一终端设备的内核层,以获取多个维度的硬件信息,其中,目标层中的***应用程序编程接口用于访问内核层中的硬件信息,第一方式包括调用目标层中的***应用程序编程接口的方式。这里,可以通过调用第一终端设备的操作***的目标层中的***应用程序编程接口来访问内核层,从而获取硬件信息。可以理解的是,这里目标层中的***应用程序编程接口可以访问内核层,以获得硬件信息,且该***应用程序编程接口与第一应用程序编程接口不同。从而可以避免黑产等对向第一应用程序编程接口发送的请求进行HOOK。
可选的,调用第一终端设备的目标层中的***应用程序编程接口来访问第一终端设备的内核层,以获取多个维度的硬件信息,包括:反射调用第一终端设备的目标虚拟机层的第一***应用程序编程接口来访问第一终端设备的内核层,以获取多个维度的硬件信息;或调用第一终端设备的本地框架层的第二***应用程序编程接口来访问第一终端设备的内核层,以获取多个维度的硬件信息。在本发明实施例中,可以通过反射调用的方式调用目标虚拟机dalvik层的第一***应用程序编程接口,从而获取硬件信息。或者,通过本地框架native层的第二***应用程序编程接口直接获取硬件信息。在本发明实施例中,通过更底层的技术手段,来获取第一终端设备的硬件,可以避免常规刷机、修改手机***API的技术手段,从而获取到正确的硬件信息。
可选的,获取第一终端设备多个维度的硬件信息包括:读取第一终端设备的内核层中记录有多个维度的硬件信息的目标文件,获得第一终端设备多个维度的硬件信息,第一方式包括读取目标文件的方式。在本发明实施例中,由于终端设备中往往存在记录有硬件信息的文件,故而,可以通过读取内核层中记录有硬件信息的目标文件获取硬件信息,从而可以避免黑产通过HOOK手段上报虚假的硬件信息。这里,可以理解的是,多个维度的硬件信息可能记录在一个目标文件中,也可能分别记录在多个目标文件中,故而可以通过对每一个目标文件进行读取,获得多个维度的硬件信息。
可选的,读取第一终端设备的内核层中记录有多个维度的硬件信息的目标文件,获得第一终端设备多个维度的硬件信息包括:获取第一终端设备的机型信息,通过机型信息-硬件信息存储位置映射关系,确定记录有多个维度的硬件信息的第一目标文件的存储位置;读取存储位置处的第一目标文件,获得多个维度的硬件信息;或在第一终端设备上所存储的文件中确定记录有多个维度的硬件信息的第二目标文件;读取第二目标文件,获得多个维度的硬件信息。对于不同型号的终端设备,存储有硬件的信息的文件的位置可能互不相同,在本发明实施例中,可以根据第一终端设备的机型信息,以及机型信息-硬件信息存储位置映射关系,确定存储有硬件信息的第一目标文件,从而获取到第一目标文件中记载的硬件信息。可以理解的是,对于机型信息-硬件信息存储位置映射关系可以是存储在第一终端设备中的,也可以是获取到机型信息后,向服务器发送携带有机型信息的请求,服务器根据机型信息-硬件信息存储位置映射关系,以及第一终端设备所发送的请求中携带的机型信息,确定存储有硬件信息的文件的存储位置,服务器将该存储位置发送至第一终端设备,从而使得第一终端设备可以根据存储位置获取到第一目标文件。可以理解的是,在本发明实施例中,根据机型信息-硬件信息存储位置映射关系确定的存储有硬件信息的第一目标文件的存储位置可以有多个,在存在多个存储位置的情况下,可以对每一个存储位置处的文件进行读取,从而获取到硬件信息。可以理解的是,由于第一终端设备中存储有记载硬件信息的文件,故而在本发明可选实施例中,也可以通过遍历第一终端设备上所存储的文件的方式,获取到第二目标文件中记载的硬件信息。
可选的,获取第一终端设备多个维度的硬件信息包括:运行用于获取第一终端设备的硬件状态的状态查看命令访问第一终端设备的内核层,其中,硬件状态包括多个维度的硬件信息,第一方式包括运行状态查看命令的方式;从第一终端设备响应状态查看命令所反馈的状态信息,获得多个维度的硬件信息,其中,状态信息中携带有多个维度的硬件信息。这里,还可以运行与第一终端设备的操作指令相匹配的状态查看命令,从而根据操作***响应该状态查看命令所反馈的状态信息中获取硬件信息。以安卓***为例,可以通过调用linux命令行来直接获取硬件信息。可以理解的是,本发明实施例的通过调用linux命令获取多个维度的硬件信息可以应用于基于linux的***。
可选的,获取第一终端设备多个维度的硬件信息包括:检测第一终端设备的漏洞信息;在漏洞信息指示第一终端设备存在为第一终端设备上的应用程序提供***权限的目标漏洞情况下,通过目标漏洞获取***权限;通过***权限所配置的访问第一终端设备的***的权限,访问第一终端设备的内核层,以获取多个维度的硬件信息,其中,第一方式包括通过目标漏洞获取***权限的方式。这里,在第一终端设备的操作***存在***漏洞的情况下,可以通过该***漏洞获取到访问内核层的权限,从而直接获取到硬件信息。
可以理解的是,上述所提供的获取硬件信息的可选实施例可以相互配合使用,从而在一种可选实施例的方式无法获取到硬件信息的情况下,可以采用其他实施例所公开的方法获取硬件信息。也就是,在本发明可选实施例中,第一方式包括:调用目标层中的***应用程序编程接口的方式、读取目标文件的方式、运行状态查看命令的方式、通过目标漏洞获取***权限的方式,在获取多个维度的硬件信息时,可以采用上述方式中的一种或多种方式。可以理解的是,上述可选的第一方式仅为本发明的可选方式,对此本发明并不作出限定。
可选的,对每一个维度的硬件信息分别转换为用于标识对应维度的硬件信息的中间数据,包括:对每一个维度的硬件信息分别通过循环冗余校验CRC算法编码获得对应的中间数据。在本发明实施例中,可以通过循环冗余校验CRC(Cyclic Redundancy Check)算法对硬件信息进行编码,从而获得中间数据。可以理解的是,通过循环冗余校验CRC算法编码获得的中间数据无法逆向解码获得编码之前的数据,从而可以实现数据脱敏,既保护了用户的数据,又可以根据真实的硬件信息转换获得用于生成设备指纹的中间数据。在本发明可选实施例中,还可以通过MD5消息摘要算法(MD5Message-Digest Algorithm)对硬件信息进行编码,从而获得中间数据。
可选的,根据每一个维度的硬件信息转换得到的中间数据,生成用于标识第一终端设备的第一设备指纹,包括:将中间数据按目标次序组合获得第一设备指纹,其中,第一设备指纹的中携带有与中间数据的数量相同的用于标识每一个维度的硬件信息的第一目标字段,目标次序用于指示每一个第一目标字段所对应的硬件信息的维度。在本发明实施例中,将中间数据按目标次序组合获得第一设备指纹,使得所获得的第一设备指纹中的每个维度的硬件信息对应的中间数据在设备指纹中的次序是相同的,从而可以对不同的设备的指纹中的第一目标字段进行对比,从而判断相对应维度的硬件信息是否相同。可以理解的是,由于硬件信息不易被篡改,故而在每个维度的硬件信息对应的第一目标字段均相同的情况下,可以确定两个设备指纹所表示的设备为相同的设备。对于组合的方式,可以是将目标数据按照目标次序添加至目标数据结构中。
可选的,在本发明实施例中,还可以将识别字段和中间数据按目标次序组合获得第一设备指纹。这里,识别字段可以位于第一设备指纹中的第一位,从而便于根据该识别字段确定数据类型,也就是确定该数据为设备指纹。例如,本发明实施例还可以包括:将第一设备指纹发送至服务器。服务器在接收到第一设备指纹的情况下,可以根据第一设备指纹中的识别字段确定接收到的数据为设备指纹。可选的,服务器在需要进行设备验证时,也可以主动向终端设备发送设备指纹获取指令,从而向终端设备请求设备指纹。
可选的,上述方法还包括:获取第一终端设备多个维度的***信息;对每一个维度的***信息分别转换为用于标识对应维度的***信息的转换数据;
根据每一个维度的硬件信息转换得到的中间数据,生成用于标识第一终端设备的第一设备指纹包括:根据每一个维度的硬件信息转换得到的中间数据以及每一个维度的***信息转换得到的转换数据,生成用于标识第一终端设备的第一设备指纹,其中,第一设备指纹的中携带有与中间数据的数量相同的用于标识每一个维度的硬件信息的第一目标字段,以及与转换数据的数量相同的用于表示每一个维度的***信息的第二目标字段。
在本发明实施例中,还可以获取第一终端设备多个维度的***信息,从而根据中间数据和***信息转换获得的转换数据,生成设备指纹,使得设备指纹还可以用于指示终端设备的***信息,从而可以根据不同时间获取的设备指纹判断终端设备的***信息所指示的***环境的变化。
可选的,获取第一终端设备多个维度的***信息包括:调用第一应用程序编程接口,以获取多个维度的***信息。对于多个维度的***信息的获取可以通过调用第一应用程序编程接口的方式获取。当然可以理解的是,对于***信息,也可以通过上述获取多个维度的硬件信息的第一方式获取。也就是,在本发明可选实施例中,可以通过第一方式获取***信息。
,在本发明可选实施例中,第一设备指纹的中携带有与中间数据的数量相同的用于标识每一个维度的硬件信息的第一目标字段,以及与转换数据的数量相同的用于表示每一个维度的***信息的第二目标字段,从而可以根据不同时间获取的设备指纹进行对比,根据第一目标字段确定两个设备所对应的终端设备的硬件信息是否相同,从而判断是否是相同的终端设备。在根据第一目标字段确定两个设备指纹为同一个终端设备的设备指纹的情况下,还可以根据第二目标字段确定***信息所指示的***环境的变化。例如,对于第一终端设备,第一次获取到的第一设备指纹为A1A2A3B1B2B3,其中,A1、A2、A3分别为一个第一目标字段,表示一个维度的硬件信息所转换获得的中间数据,B1、B2、B3分别为一个第二目标字段,分别表示一个维度的***信息所转换获得的转换数据,之后又获取到一个设备指纹为A1A2A3B6B2B3,可以理解的是,由于本发明实施例的设备指纹按照目标次序进行组成,故而A1A2A3B6B2B3中的A1A2A3分别为一个第一目标字段,根据第一目标字段A1、A2、A3与第一设备指纹A1A2A3B1B2B3中的第一目标字段均相同,则可以表示两者的硬件信息完全相同,表示两者为相同的终端设备。这里,一个第二目标字段发生了变化,B1变为了B6,这可以根据该字段所表示的一个维度的***信息确定当前该终端设备的***环境所发送的变化。这里,可以理解的是,对于相同的型号的硬件,其唯一编码、状态等也会有所不同,相应的该硬件的硬件信息也不同。故而,在表示硬件信息的第一目标字段完全相同的情况下,可以确定两者为相同的硬件设备。
可选的,在根据中间数据,生成用于标识第一终端设备的第一设备指纹之后,方法还包括:获取第二终端设备上报的第二设备指纹;在第一设备指纹中的第一目标字段与第二设备指纹中的第一目标字段均相同的情况下,确定第二终端设备为第一终端设备。
在本发明实施例中,在获取到第二设备指纹的情况下,可以通过对比第二设备指纹中的第一目标字段和第一设备指纹中的第一目标字段,在两个设备指纹的第一目标字段均相同的情况下,可以确定第二终端设备与第一终端设备为相同的终端设备,从而根据设备指纹中的第一目标字段所标识的硬件信息区分终端设备。可以理解的是,该步骤可以由第一终端设备执行,也可以由服务器执行。
可选的,在获取第二终端设备上报的第二设备指纹之后,方法还包括:对比第二设备指纹中的第二目标字段和第一设备指纹中的第二目标字段;在第一设备指纹中的第一目标字段与第二设备指纹中的第一目标字段均相同的情况下,根据第二设备指纹与第一设备指纹之间不同的第二目标字段,确定第一终端设备的对应维度的***信息所指示的***环境变化。
在本发明实施例中,在第一目标字段均相同的情况下,可以确定第二终端设备为第一终端设备,进一步的,还可以根据第二设备指纹中的第二目标字段与第一设备指纹中的第二目标字段的区别,确定第一终端设备的***是否发生变化,从而可以判断当前的***环境是否存在刷机等行为。可以理解的是,该步骤可以由第一终端设备执行,也可以由服务器执行。可以理解的是,在在第一设备指纹中的第一目标字段与第二设备指纹中的第一目标字段均相同,且第二设备指纹的第二目标字段与第一设备指纹的第二目标字段均相同的情况下,可以确定第一终端设备的***信息所指示的***环境未发生变化。可以理解的是,第二目标字段只能指示第二目标字段对应的***信息是否变化。
下面结合图3对本发明实施例的方法进行举例说明。
S302,服务器31向终端设备32发送设备指纹获取指令,其中,该设备指纹获取指令用于指示终端设备32生成设备指纹;
S304,终端设备32通过第一方式获取多个维度的硬件信息,以及获取多个维度的***信息,根据多个维度的硬件信息和多个维度的***信息生成设备指纹。
S306,终端设备32将设备指纹发送至服务器31。这里,服务器31可以获取到设备指纹,从而根据设备指纹对当前的设备进行校验。例如在终端设备进行支付操作时,将获取到的设备指纹与预先存储的进过验证的用于校验的第三设备指纹进行对比,从而判断当前的终端设备是否为与第三设备指纹相匹配的终端设备,从而可以对支付环境进行校验。
对于上述S304只的生成设备指纹,具体的,如图4所示的,在本发明实施例中,终端设备32可以执行以下步骤生成设备指纹:
S402,获取多个维度的硬件信息和***信息;
S404,每个维度的硬件信息和***信息分别计算CRC;
S406,将多个维度的CRC整合;
S408,生成设备指纹,这里的设备指纹为多个维度的CRC整合所获得的数据;
如上表所示的,在本发明可选实施例中,可以从11个维度获取终端设备的硬件信息和***信息。维度1-7为硬件信息,维度8-11为***信息。在每个维度中,获取到任何一项数据内容,都会累加进行CRC校验计算。从而生成当前维度的一个CRC值。11个维度共计生成11个CRC值,其中某些维度为关键信息,这些信息是设备指纹的唯一信息,其他信息是在指纹不变的请款下,观察终端设备的环境变动点,比如是否有刷机行为,是否有刷ROM行为,是否有安装软件行为等。这里,通过数据头,对11个CRC进行组织和拼装,生成最终上报服务器的设备指纹。从而通过计算CRC的方式,实现上报服务器的数据完全脱敏。设备指纹上报服务器后,服务器可以根据数据头进行解析,由于采用计算CRC的方式获取设备指纹,服务器不能根据上报的CRC值进行反向推导原始数据,可以保证终端设备的数据安全。
如图5所示的,可以将所获得的设备指纹与用于对比的设备指纹进行对比,从而根据硬件信息51中的数据判断是否为相同的设备,根据***信息52中的终端设备IP和路由MAC判断网络环境是否发生变化,还可以根据***信息中的传感器、硬件环境等判断终端设备的***是否被修改。
下面结合图6对通过计算CRC的方式获得设备指纹进行举例说明。
在一个维度的硬件信息或一个维度的***信息中包括多个信息项的情况下,以一个维度的硬件信息包括CPU和内存信息的情况下,在获取到该维度的硬件信息时,执行S602,获取到当前信息项,如CPU信息,此时判断CPU信息是否被执行过CRC计算,若未执行过CRC计算则执行S604,将根据一个维度的硬件信息中的一个信息项生成的CRC和当前信息项,编码成新的CRC。可以理解的是,在当前信息项为该维度的硬件信息中的第一个信息项的情况下,也就是不存在历史项CRC的情况下,则根据当前项编码成CRC。执行S606,判断是否满足结束条件,也就是,在该维度的硬件信息中是否存在未进行CRC编码的信息项。例如,还有内存信息,则重复执行S602-S604,从而获得该维度的硬件信息所对应的CRC。对多个维度的硬件信息中的每一个维度的硬件信息进行上述编码后,得到对应维度的硬件信息编码后的中间数据,执行S608,对多个维度对应的每个中间数据进行合并,将合并后的CRC确定为当前终端设备的设备指纹。如图6所示的,设备指纹A1A2A3A4……F1F2F3F4包括每一个维度的硬件信息和每一个维度的***信息CRC编码后的编码数据,以CPU和内存信息编码获得的编码数据0×A1A2A3A4为例,在进行设备指纹对比时,可以根据该编码数据是否相同,判断两个设备的CPU和内存是否相同。
在本发明实施例中,由于通过第一方式获取硬件信息,从而使得能够获得终端设备真实的硬件信息,使得设备指纹可以抵抗刷机,恢复出厂设置等行为。例如有SIM卡和无SIM卡时,设备指纹中用于表示硬件信息的数据可以保持不变;有WLAN网络和无WLAN网络时,设备指纹中用于表示硬件信息的数据可以保持不变;有GPRS网络和无GPRS网络时,设备指纹中用于表示硬件信息的数据可以保持不变;ROOT终端设备前和ROOT终端设备后,设备指纹中用于表示硬件信息的数据可以保持不变;终端设备恢复出厂设置前,终端设备恢复出厂设之后,设备指纹中用于表示硬件信息的数据可以保持不变;格式化终端设备的SD卡前,格式化终端设备的SD卡后,设备指纹中用于表示硬件信息的数据可以保持不变;终端设备刷ROM前,终端设备刷ROM(不同版本ROM)后,设备指纹中用于表示硬件信息的数据可以保持不变;终端设备通过一键换机软件改变终端设备前和改变后,设备指纹中用于表示硬件信息的数据可以保持不变;重启终端设备前和重启后,设备指纹中用于表示硬件信息的数据可以保持不变;***地址随机化也可以保持设备指纹中用于表示硬件信息的数据可以不变,例如Android 9 mac地址随机化、Android Q mac地址随机化,此时硬件信息并不会发生变化,从而使得设备指纹中用于表示硬件信息的数据可以保持不变。可以理解的是,在本发明实施例中,通过设备指纹中的用于表示硬件信息的数据判断终端设备是否为相同的设备,故而上述改变***或软件的方式并不会使得生成的设备指纹指示终端设备的唯一性发生变化。
下面结合图7,通过举例对本发明实施例进行进一步的说明。
S702,获取第一终端设备多个维度的硬件信息和多个维度的***信息;这里,对于多个维度的硬件信息通过第一方式获取,从而通过访问***的内核层的第一方式获取到真实的硬件信息,对于***信息可以通过第一方式获取,也可以通过***为应用程序提供的API接口获取。可以理解的是,在本发明实施例中,需要通过生成的设备指纹中指示硬件信息的字段确定设备的唯一性,故而对于硬件信息需要通过第一方式获取。对于***信息是用于判断终端设备的***环境是否发生变化,故而即使被黑产攻击获得虚假的***信息也不会影响根据生成的设备指纹判断对终端设备进行唯一性的识别。
S704,对每一个维度的硬件信息分别通过循环冗余校验CRC算法编码获得对应的中间数据;
S706,对每一个维度的***信息分别通过循环冗余校验CRC算法编码获得对应的转换数据;
S708,将中间数据和转换数据按目标次序组合获得第一设备指纹;这里,可以根据预先配置的次序对中间数据和转换数据进行排序组合,从而获得第一设备指纹。这里预先配置的次序用于指示每一个维度的硬件信息所对应的中间数据和每一个维度的***信息所对应的转换数据在设备指纹中的次序。
S710,获取第二终端设备上报的第二设备指纹;在本发明实施例中,可以获取到第二设备指纹,从而通过第一设备指纹和第二设备指纹判断两个指纹所指示的终端设备是否为相同的终端设备。
S712,在第一设备指纹中的第一目标字段与第二设备指纹中的第一目标字段均相同的情况下,确定第二终端设备为第一终端设备;这里,由于硬件信息难以被篡改,故而在设备指纹中的第一目标字段指示硬件信息相同的情况下,可以确定两个设备指纹所指示的终端设备为相同的终端设备。
S714,在第一设备指纹中的第一目标字段与第二设备指纹中的第一目标字段均相同的情况下,根据第二设备指纹与第一设备指纹之间不同的第二目标字段,确定第一终端设备的对应维度的***信息所指示的***环境变化。在本发明实施例的,设备指纹包括第一目标字段和第二目标字段,第一目标字段用于指示硬件信息,第二目标字段用于指示***信息,从而可以根据第一目标字段判断两个设备指纹指示的终端是否为相同的设备,根据第二目标字段确定所对应的***信息所指示的***环境的变化,从而可以对终端设备是否刷机等进行推断。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
根据本发明实施例的另一个方面,还提供了一种用于实施上述设备指纹的获取方法的设备指纹的获取装置。如图8所示,该装置包括:第一获取模块802,获取第一终端设备多个维度的硬件信息,其中,多个维度的硬件信息通过第一方式访问第一终端设备的内核层获得,第一方式与调用第一应用程序编程接口的方式不同,第一应用程序编程接口为第一终端设备的操作***为应用程序所提供的应用程序编程接口;第一转换模块804,用于对每一个维度的硬件信息分别转换为用于标识对应维度的硬件信息的中间数据;生成模块806,用于根据每一个维度的硬件信息转换得到的中间数据,生成用于标识第一终端设备的第一设备指纹。
本发明实施例通过第一方式访问内核层获取多个维度的硬件信息,从而获得第一终端设备多个维度真实的硬件信息,根据多个维度的硬件信息转换获得的中间数据生成第一设备指纹,使得第一设备指纹可以指示多个维度的硬件信息,由于第一终端设备的硬件信息不易被篡改,从而使得第一设备指纹可以对第一终端设备进行唯一性的标识。
这里,第一终端设备中包括内核层,内核层为第一终端设备提供进程管理、文件网络管理、***安全权限管理、***与硬件设备通信基础等。内核层可以为第一终端设备的各种硬件提供底层的驱动,例如显示、音频、蓝牙、电源管理等。第一终端设备为了便于应用程序访问内核层,而又避免应用程序直接访问内核层造成危害,第一终端设备的操作***为应用程序提供了第一应用程序编程接口。在本发明实施例中,发明人发现黑产会通过改机软件等对***函数进行HOOK,从而使得在通过操作***为应用程序提供的第一应用程序编程接口获取硬件信息时所获取到的硬件信息并不是内核层反馈的真实的硬件信息,而是经过钩子HOOK处理后的数据。故而在本发明实施例中,通过与调用第一应用程序编程接口的方式不同的第一方式访问内核层,以获取第一终端设备的硬件信息,从而获取到第一终端设备真实的硬件信息。由于第一终端设备的硬件信息与第一终端设备的硬件相关联,进行刷机等操作不会改变终端设备的硬件,从而可以根据第一设备指纹中用于表示硬件信息的第一目标字段确定终端设备。本发明实施例中,根据访问内核层获得的硬件信息和获取的***信息生成的设备指纹,使得设备指纹不易被伪造。
在本发明可选实施例中,根据中间数据生成的第一设备指纹中可以携带有第一目标字段,用于指示第一设备的硬件信息。可选的,还可以获取第一终端设备多个维度的***信息,从而将***信息转换为转换数据,根据中间数据和转换数据,生成第一设备的设备指纹。此时,设备指纹中携带有第一目标字段,还可以携带有用于表示***信息的第二目标字段,从而使得根据第一设备指纹还可以观察第一终端设备的***环境变动,比如是否有刷机行为等。
在本发明实施例中,对于硬件信息可以包括:中央处理器(Central ProcessingUnit,简称CPU)、内存、实时时钟RCT、无线网卡MAC地址Wlan0mac、网卡地址P2p0mac、手机本机IP(Internet Protocol Address,互联网协议地址)、网关mac(Media Access Control,介质访问控制)地址。对于***信息可以包括:应用列表信息、终端属性信息、终端环境信息、终端文件信息、传感器信息等。这里,应用列表信息可以包括:终端设备上所安装的应用程序包名、版本、安装时间等。终端环境信息可以包括:终端显示屏的分辨率、ROM大小、CPU频率、ROOT等。终端文件信息可以包括:CPU文件、内存文件、字体文件个数、APP文件等。传感器信息可以包括:传感器名称、版本、供应商、误差等。
可选的,第一获取模块包括:调用单元,用于调用第一终端设备的目标层中的***应用程序编程接口来访问第一终端设备的内核层,以获取多个维度的硬件信息,其中,目标层中的***应用程序编程接口用于访问内核层中的硬件信息,第一方式包括调用目标层中的***应用程序编程接口的方式。这里,可以通过调用第一终端设备的操作***的目标层中的***应用程序编程接口来访问内核层,从而获取硬件信息。可以理解的是,这里目标层中的***应用程序编程接口可以访问内核层,以获得硬件信息,且该***应用程序编程接口与第一应用程序编程接口不同。从而可以避免黑产等对向第一应用程序编程接口发送的请求进行HOOK。
可选的,调用单元具体用于:反射调用第一终端设备的目标虚拟机层的第一***应用程序编程接口来访问第一终端设备的内核层,以获取多个维度的硬件信息;或调用第一终端设备的本地框架层的第二***应用程序编程接口来访问第一终端设备的内核层,以获取多个维度的硬件信息。在本发明实施例中,可以通过反射调用的方式调用目标虚拟机dalvik层的第一***应用程序编程接口,从而获取硬件信息。或者,通过本地框架native层的第二***应用程序编程接口直接获取硬件信息。在本发明实施例中,通过更底层的技术手段,来获取第一终端设备的硬件,可以避免常规刷机、修改手机***API的技术手段,从而获取到正确的硬件信息。
可选的,第一获取模块包括:读取单元,用于读取第一终端设备的内核层中记录有多个维度的硬件信息的目标文件,获得第一终端设备多个维度的硬件信息,第一方式包括读取目标文件的方式。在本发明实施例中,由于终端设备中往往存在记录有硬件信息的文件,故而,可以通过读取内核层中记录有硬件信息的目标文件获取硬件信息,从而可以避免黑产通过HOOK手段上报虚假的硬件信息。这里,可以理解的是,多个维度的硬件信息可能记录在一个目标文件中,也可能分别记录在多个目标文件中,故而可以通过对每一个目标文件进行读取,获得多个维度的硬件信息。
可选的,读取单元具体用于:获取第一终端设备的机型信息,通过机型信息-硬件信息存储位置映射关系,确定记录有多个维度的硬件信息的第一目标文件的存储位置;读取存储位置处的第一目标文件,获得多个维度的硬件信息;或在第一终端设备上所存储的文件中确定记录有多个维度的硬件信息的第二目标文件;读取第二目标文件,获得多个维度的硬件信息。对于不同型号的终端设备,存储有硬件的信息的文件的位置可能互不相同,在本发明实施例中,可以根据第一终端设备的机型信息,以及机型信息-硬件信息存储位置映射关系,确定存储有硬件信息的第一目标文件,从而获取到第一目标文件中记载的硬件信息。可以理解的是,对于机型信息-硬件信息存储位置映射关系可以是存储在第一终端设备中的,也可以是获取到机型信息后,向服务器发送携带有机型信息的请求,服务器根据机型信息-硬件信息存储位置映射关系,以及第一终端设备所发送的请求中携带的机型信息,确定存储有硬件信息的文件的存储位置,服务器将该存储位置发送至第一终端设备,从而使得第一终端设备可以根据存储位置获取到第一目标文件。可以理解的是,在本发明实施例中,根据机型信息-硬件信息存储位置映射关系确定的存储有硬件信息的第一目标文件的存储位置可以有多个,在存在多个存储位置的情况下,可以对每一个存储位置处的文件进行读取,从而获取到硬件信息。可以理解的是,由于第一终端设备中存储有记载硬件信息的文件,故而在本发明可选实施例中,也可以通过遍历第一终端设备上所存储的文件的方式,获取到第二目标文件中记载的硬件信息。
可选的,第一获取模块包括:运行单元,用于运行用于获取第一终端设备的硬件状态的状态查看命令访问第一终端设备的内核层,其中,硬件状态包括多个维度的硬件信息,第一方式包括运行状态查看命令的方式;第一获取单元,用于从第一终端设备响应状态查看命令所反馈的状态信息,获得多个维度的硬件信息,其中,状态信息中携带有多个维度的硬件信息。这里,还可以运行与第一终端设备的操作指令相匹配的状态查看命令,从而根据操作***响应该状态查看命令所反馈的状态信息中获取硬件信息。以安卓***为例,可以通过调用linux命令行来直接获取硬件信息。
可选的,第一获取模块包括:检测单元,用于检测第一终端设备的漏洞信息;第二获取单元,用于在漏洞信息指示第一终端设备存在为第一终端设备上的应用程序提供***权限的目标漏洞情况下,通过目标漏洞获取***权限;第三获取单元,用于通过***权限所配置的访问第一终端设备的***的权限,访问第一终端设备的内核层,以获取多个维度的硬件信息,其中,第一方式包括通过目标漏洞获取***权限的方式。这里,在第一终端设备的操作***存在***漏洞的情况下,可以通过该***漏洞获取到访问内核层的权限,从而直接获取到硬件信息。
可选的,第一转换模块包括:转换单元,用于对每一个维度的硬件信息分别通过循环冗余校验CRC算法编码获得对应的中间数据。在本发明实施例中,可以通过循环冗余校验CRC(Cyclic Redundancy Check)算法对硬件信息进行编码,从而获得中间数据。可以理解的是,通过循环冗余校验CRC算法编码获得的中间数据无法逆向解码获得编码之前的数据,从而可以实现数据脱敏,既保护了用户的数据,又可以根据真实的硬件信息转换获得用于生成设备指纹的中间数据。在本发明可选实施例中,还可以通过MD5消息摘要算法(MD5Message-Digest Algorithm)对硬件信息进行编码,从而获得中间数据。
可选的,生成模块包括:第四获取单元,用于将中间数据按目标次序组合获得第一设备指纹,其中,第一设备指纹的中携带有与中间数据的数量相同的用于标识每一个维度的硬件信息的第一目标字段,目标次序用于指示每一个第一目标字段所对应的硬件信息的维度。在本发明实施例中,将中间数据按目标次序组合获得第一设备指纹,使得所获得的第一设备指纹中的每个维度的硬件信息对应的中间数据在设备指纹中的次序是相同的,从而可以对不同的设备的指纹中的第一目标字段进行对比,从而判断相对应维度的硬件信息是否相同。可以理解的是,由于硬件信息不易被篡改,故而在每个维度的硬件信息对应的第一目标字段均相同的情况下,可以确定两个设备指纹所表示的设备为相同的设备。对于组合的方式,可以是将目标数据按照目标次序添加至目标数据结构中。
可选的,上述装置还包括:第二获取模块,用于获取第一终端设备多个维度的***信息;对第二转换模块,用于每一个维度的***信息分别转换为用于标识对应维度的***信息的转换数据;
上述生成模块包括:生成单元,用于根据每一个维度的硬件信息转换得到的中间数据以及每一个维度的***信息转换得到的转换数据,生成用于标识第一终端设备的第一设备指纹,其中,第一设备指纹的中携带有与中间数据的数量相同的用于标识每一个维度的硬件信息的第一目标字段,以及与转换数据的数量相同的用于表示每一个维度的***信息的第二目标字段。
在本发明实施例中,还可以获取第一终端设备多个维度的***信息,从而根据中间数据和***信息转换获得的转换数据,生成设备指纹,使得设备指纹还可以用于指示终端设备的***信息,从而可以根据不同时间获取的设备指纹判断终端设备的***信息所指示的***环境的变化。
可选的,上述装置还包括:第三获取模块,用于获取第二终端设备上报的第二设备指纹;第一确定模块,用于在第一设备指纹中的第一目标字段与第二设备指纹中的第一目标字段均相同的情况下,确定第二终端设备为第一终端设备。在本发明实施例中,在获取到第二设备指纹的情况下,可以通过对比第二设备指纹中的第一目标字段和第一设备指纹中的第一目标字段,在两个设备指纹的第一目标字段均相同的情况下,可以确定第二终端设备与第一终端设备为相同的终端设备,从而根据设备指纹中的第一目标字段所标识的硬件信息区分终端设备。
可选的,上述装置还包括:对比模块,用于对比第二设备指纹中的第二目标字段和第一设备指纹中的第二目标字段;第二确定模块,用于在第一设备指纹中的第一目标字段与第二设备指纹中的第一目标字段均相同的情况下,根据第二设备指纹与第一设备指纹之间不同的第二目标字段,确定第一终端设备的对应维度的***信息所指示的***环境变化。在本发明实施例中,在第一目标字段均相同的情况下,可以确定第二终端设备为第一终端设备,进一步的,还可以根据第二设备指纹中的第二目标字段与第一设备指纹中的第二目标字段的区别,确定第一终端设备的***是否发生变化,从而可以判断当前的***环境是否存在刷机等行为。可以理解的是,该步骤可以由第一终端设备执行,也可以由服务器执行。可以理解的是,在在第一设备指纹中的第一目标字段与第二设备指纹中的第一目标字段均相同,且第二设备指纹的第二目标字段与第一设备指纹的第二目标字段均相同的情况下,可以确定第一终端设备的***信息所指示的***环境未发生变化。可以理解的是,第二目标字段只能指示第二目标字段对应的***信息是否变化。
根据本发明实施例的又一个方面,还提供了一种用于实施上述设备指纹的获取方法的电子装置,如图9所示,该电子装置包括存储器902和处理器904,该存储器902中存储有计算机程序,该处理器904被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
可选地,在本实施例中,上述处理器可以被设置为通过计算机程序执行以下步骤:
S1,获取第一终端设备多个维度的硬件信息,其中,多个维度的硬件信息通过第一方式访问第一终端设备的内核层获得,第一方式与调用第一应用程序编程接口的方式不同,第一应用程序编程接口为第一终端设备的操作***为应用程序所提供的应用程序编程接口;
S2,对每一个维度的硬件信息分别转换为用于标识对应维度的硬件信息的中间数据;
S3,根据每一个维度的硬件信息转换得到的中间数据,生成用于标识第一终端设备的第一设备指纹。
可选地,本领域普通技术人员可以理解,图9所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图9其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图9中所示更多或者更少的组件(如网络接口等),或者具有与图9所示不同的配置。
其中,存储器902可用于存储软件程序以及模块,如本发明实施例中的设备指纹的获取方法和装置对应的程序指令/模块,处理器904通过运行存储在存储器902内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的设备指纹的获取方法。存储器902可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器902可进一步包括相对于处理器904远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器902具体可以但不限于用于存储第一设备指纹等信息。作为一种示例,如图9所示,上述存储器902中可以但不限于包括上述设备指纹的获取装置中的第一获取模块802、第一转换模块804及生成模块806。此外,还可以包括但不限于上述设备指纹的获取装置中的其他模块单元,本示例中不再赘述。
可选地,上述的传输装置906用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置906包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置906为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
此外,上述电子装置还包括:显示器908,用于显示上述第一设备指纹;和连接总线910,用于连接上述电子装置中的各个模块部件。
根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
S1,获取第一终端设备多个维度的硬件信息,其中,多个维度的硬件信息通过第一方式访问第一终端设备的内核层获得,第一方式与调用第一应用程序编程接口的方式不同,第一应用程序编程接口为第一终端设备的操作***为应用程序所提供的应用程序编程接口;
S2,对每一个维度的硬件信息分别转换为用于标识对应维度的硬件信息的中间数据;
S3,根据每一个维度的硬件信息转换得到的中间数据,生成用于标识第一终端设备的第一设备指纹。
可选地,在本实施例中,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(Read-Only Memory,ROM)、随机存取器(Random Access Memory,RAM)、磁盘或光盘等。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (26)
1.一种设备指纹的获取方法,其特征在于,包括:
获取第一终端设备多个维度的硬件信息,其中,所述多个维度的硬件信息通过第一方式访问所述第一终端设备的内核层获得,所述第一方式包括:调用目标层中的***应用程序编程接口来访问所述内核层、读取所述内核层中记录有硬件信息的目标文件、运行与所述第一终端设备的操作指令相匹配的状态查看命令,以获取携带有所述硬件信息的状态信息、通过所述第一终端设备上的目标漏洞访问所述内核层,所述第一方式与调用第一应用程序编程接口的方式不同,所述第一应用程序编程接口为所述第一终端设备的操作***为应用程序所提供的应用程序编程接口;
对每一个维度的所述硬件信息分别转换为用于标识对应维度的所述硬件信息的中间数据;
根据每一个维度的所述硬件信息转换得到的所述中间数据,生成用于标识所述第一终端设备的第一设备指纹。
2.根据权利要求1所述的方法,其特征在于,所述获取第一终端设备多个维度的硬件信息,包括:
调用所述第一终端设备的所述目标层中的所述***应用程序编程接口来访问所述第一终端设备的内核层,以获取所述多个维度的硬件信息,其中,所述目标层中的所述***应用程序编程接口用于访问所述内核层中的所述硬件信息,所述第一方式包括调用所述目标层中的***应用程序编程接口的方式。
3.根据权利要求2所述的方法,其特征在于,所述调用所述第一终端设备的所述目标层中的所述***应用程序编程接口来访问所述第一终端设备的内核层,以获取所述多个维度的硬件信息,包括:
反射调用所述第一终端设备的目标虚拟机层的第一***应用程序编程接口来访问所述第一终端设备的内核层,以获取所述多个维度的硬件信息;或
调用所述第一终端设备的本地框架层的第二***应用程序编程接口来访问所述第一终端设备的内核层,以获取所述多个维度的硬件信息。
4.根据权利要求1所述的方法,其特征在于,所述获取第一终端设备多个维度的硬件信息,包括:
读取所述第一终端设备的内核层中记录有多个维度的所述硬件信息的所述目标文件,获得所述第一终端设备多个维度的所述硬件信息,所述第一方式包括读取所述目标文件的方式。
5.根据权利要求4所述的方法,其特征在于,所述读取所述第一终端设备的内核层中记录有多个维度的所述硬件信息的所述目标文件,获得所述第一终端设备多个维度的所述硬件信息,包括:
获取所述第一终端设备的机型信息,通过机型信息-硬件信息存储位置映射关系,确定记录有所述多个维度的硬件信息的第一目标文件的存储位置;读取所述存储位置处的所述第一目标文件,获得所述多个维度的硬件信息;或
在所述第一终端设备上所存储的文件中确定记录有所述多个维度的硬件信息的第二目标文件;读取所述第二目标文件,获得所述多个维度的硬件信息。
6.根据权利要求1所述的方法,其特征在于,所述获取第一终端设备多个维度的硬件信息,包括:
运行用于获取所述第一终端设备的硬件状态的所述状态查看命令访问所述第一终端设备的内核层,其中,所述硬件状态包括所述多个维度的硬件信息,所述第一方式包括运行所述状态查看命令的方式;
从所述第一终端设备响应所述状态查看命令所反馈的状态信息,获得所述多个维度的硬件信息,其中,所述状态信息中携带有所述多个维度的硬件信息。
7.根据权利要求1所述的方法,其特征在于,所述获取第一终端设备多个维度的硬件信息,包括:
检测所述第一终端设备的漏洞信息;
在所述漏洞信息指示所述第一终端设备存在为所述第一终端设备上的应用程序提供***权限的所述目标漏洞情况下,通过所述目标漏洞获取所述***权限;
通过所述***权限所配置的访问所述第一终端设备的***的权限,访问所述第一终端设备的内核层,以获取多个维度的所述硬件信息,其中,所述第一方式包括通过所述目标漏洞获取所述***权限的方式。
8.根据权利要求1至7任一项所述的方法,其特征在于,所述对每一个维度的所述硬件信息分别转换为用于标识对应维度的所述硬件信息的中间数据,包括:
对每一个维度的所述硬件信息分别通过循环冗余校验CRC算法编码获得对应的所述中间数据。
9.根据权利要求8所述的方法,其特征在于,所述根据每一个维度的所述硬件信息转换得到的所述中间数据,生成用于标识所述第一终端设备的第一设备指纹,包括:
将所述中间数据按目标次序组合获得所述第一设备指纹,其中,所述第一设备指纹的中携带有与所述中间数据的数量相同的用于标识每一个维度的所述硬件信息的第一目标字段,所述目标次序用于指示每一个所述第一目标字段所对应的所述硬件信息的维度。
10.根据权利要求1至7任一项所述的方法,其特征在于,所述方法还包括:
获取所述第一终端设备多个维度的***信息;对每一个维度的所述***信息分别转换为用于标识对应维度的所述***信息的转换数据;
根据每一个维度的所述硬件信息转换得到的所述中间数据,生成用于标识所述第一终端设备的第一设备指纹包括:根据每一个维度的所述硬件信息转换得到的所述中间数据以及每一个维度的所述***信息转换得到的所述转换数据,生成用于标识所述第一终端设备的第一设备指纹,其中,所述第一设备指纹的中携带有与所述中间数据的数量相同的用于标识每一个维度的所述硬件信息的第一目标字段,以及与所述转换数据的数量相同的用于表示每一个维度的所述***信息的第二目标字段。
11.根据权利要求10所述的方法,其特征在于,在根据所述中间数据,生成用于标识所述第一终端设备的第一设备指纹之后,所述方法还包括:
获取第二终端设备上报的第二设备指纹;
在所述第一设备指纹中的第一目标字段与所述第二设备指纹中的第一目标字段均相同的情况下,确定所述第二终端设备为所述第一终端设备。
12.根据权利要求11所述的方法,其特征在于,在获取第二终端设备上报的第二设备指纹之后,所述方法还包括:
对比所述第二设备指纹中的第二目标字段和所述第一设备指纹中的第二目标字段;
在所述第一设备指纹中的第一目标字段与所述第二设备指纹中的第一目标字段均相同的情况下,根据所述第二设备指纹与所述第一设备指纹之间不同的第二目标字段,确定所述第一终端设备的对应维度的***信息所指示的***环境变化。
13.一种设备指纹的获取装置,其特征在于,包括:
第一获取模块,用于获取第一终端设备多个维度的硬件信息,其中,
所述多个维度的硬件信息通过第一方式访问所述第一终端设备的内核层获得,所述第一方式包括:调用目标层中的***应用程序编程接口来访问所述内核层、读取所述内核层中记录有硬件信息的目标文件、运行与所述第一终端设备的操作指令相匹配的状态查看命令,一获取携带有所述硬件信息的状态信息、通过所述第一终端设备上的目标漏洞访问所述内核层,所述第一方式与调用第一应用程序编程接口的方式不同,所述第一应用程序编程接口为所述第一终端设备的操作***为应用程序所提供的应用程序编程接口;
第一转换模块,用于对每一个维度的所述硬件信息分别转换为用于标识对应维度的所述硬件信息的中间数据;
生成模块,用于根据每一个维度的所述硬件信息转换得到的所述中间数据,生成用于标识所述第一终端设备的第一设备指纹。
14.根据权利要求13所述的装置,其特征在于,所述第一获取模块包括:
调用单元,用于调用所述第一终端设备的所述目标层中的所述***应用程序编程接口来访问所述第一终端设备的内核层,以获取所述多个维度的硬件信息,其中,所述目标层中的所述***应用程序编程接口用于访问所述内核层中的所述硬件信息,所述第一方式包括调用所述目标层中的***应用程序编程接口的方式。
15.根据权利要求14所述的装置,其特征在于,所述调用单元用于:
反射调用所述第一终端设备的目标虚拟机层的第一***应用程序编程接口来访问所述第一终端设备的内核层,以获取所述多个维度的硬件信息;或
调用所述第一终端设备的本地框架层的第二***应用程序编程接口来访问所述第一终端设备的内核层,以获取所述多个维度的硬件信息。
16.根据权利要求13所述的装置,其特征在于,所述第一获取模块包括:
读取单元,用于读取所述第一终端设备的内核层中记录有多个维度的所述硬件信息的所述目标文件,获得所述第一终端设备多个维度的所述硬件信息,所述第一方式包括读取所述目标文件的方式。
17.根据权利要求16所述的装置,其特征在于,所述读取单元用于:
获取所述第一终端设备的机型信息,通过机型信息-硬件信息存储位置映射关系,确定记录有所述多个维度的硬件信息的第一目标文件的存储位置;读取所述存储位置处的所述第一目标文件,获得所述多个维度的硬件信息;或
在所述第一终端设备上所存储的文件中确定记录有所述多个维度的硬件信息的第二目标文件;读取所述第二目标文件,获得所述多个维度的硬件信息。
18.根据权利要求13所述的装置,其特征在于,所述第一获取模块包括:
运行单元,运行用于获取所述第一终端设备的硬件状态的所述状态查看命令访问所述第一终端设备的内核层,其中,所述硬件状态包括所述多个维度的硬件信息,所述第一方式包括运行所述状态查看命令的方式;
第一获取单元,用于从所述第一终端设备响应所述状态查看命令所反馈的状态信息,获得所述多个维度的硬件信息,其中,所述状态信息中携带有所述多个维度的硬件信息。
19.根据权利要求13所述的装置,其特征在于,所述第一获取模块包括:
检测单元,用于检测所述第一终端设备的漏洞信息;
第二获取单元,用于在所述漏洞信息指示所述第一终端设备存在为所述第一终端设备上的应用程序提供***权限的所述目标漏洞情况下,通过所述目标漏洞获取所述***权限;
第三获取单元,用于通过所述***权限所配置的访问所述第一终端设备的***的权限,访问所述第一终端设备的内核层,以获取多个维度的所述硬件信息,其中,所述第一方式包括通过所述目标漏洞获取所述***权限的方式。
20.根据权利要求13至19任一项所述的装置,其特征在于,所述第一转换模块包括:
转换单元,用于对每一个维度的所述硬件信息分别通过循环冗余校验CRC算法编码获得对应的所述中间数据。
21.根据权利要求20所述的装置,其特征在于,所述生成模块包括:
第四获取单元,用于将所述中间数据按目标次序组合获得所述第一设备指纹,其中,所述第一设备指纹的中携带有与所述中间数据的数量相同的用于标识每一个维度的所述硬件信息的第一目标字段,所述目标次序用于指示每一个所述第一目标字段所对应的所述硬件信息的维度。
22.根据权利要求13至19任一项所述的装置,其特征在于,所述装置还包括:
第二获取模块,用于获取所述第一终端设备多个维度的***信息;对每一个维度的所述***信息分别转换为用于标识对应维度的所述***信息的转换数据;
所述生成模块还包括:生成单元,用于根据每一个维度的所述硬件信息转换得到的所述中间数据,生成用于标识所述第一终端设备的第一设备指纹包括:根据每一个维度的所述硬件信息转换得到的所述中间数据以及每一个维度的所述***信息转换得到的所述转换数据,生成用于标识所述第一终端设备的第一设备指纹,其中,所述第一设备指纹的中携带有与所述中间数据的数量相同的用于标识每一个维度的所述硬件信息的第一目标字段,以及与所述转换数据的数量相同的用于表示每一个维度的所述***信息的第二目标字段。
23.根据权利要求22所述的装置,其特征在于,所述装置还包括:
第三获取模块,用于获取第二终端设备上报的第二设备指纹;
第一确定模块,用于在所述第一设备指纹中的第一目标字段与所述第二设备指纹中的第一目标字段均相同的情况下,确定所述第二终端设备为所述第一终端设备。
24.根据权利要求23所述的装置,其特征在于,所述装置还包括:
对比模块,用于对比所述第二设备指纹中的第二目标字段和所述第一设备指纹中的第二目标字段;
第二确定模块,用于在所述第一设备指纹中的第一目标字段与所述第二设备指纹中的第一目标字段均相同的情况下,根据所述第二设备指纹与所述第一设备指纹之间不同的第二目标字段,确定所述第一终端设备的对应维度的***信息所指示的***环境变化。
25.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,所述程序运行时执行上述权利要求1至12任一项中所述的方法。
26.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至12任一项中所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910667673.5A CN110427785B (zh) | 2019-07-23 | 2019-07-23 | 设备指纹的获取方法和装置、存储介质及电子装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910667673.5A CN110427785B (zh) | 2019-07-23 | 2019-07-23 | 设备指纹的获取方法和装置、存储介质及电子装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110427785A CN110427785A (zh) | 2019-11-08 |
CN110427785B true CN110427785B (zh) | 2023-07-14 |
Family
ID=68411965
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910667673.5A Active CN110427785B (zh) | 2019-07-23 | 2019-07-23 | 设备指纹的获取方法和装置、存储介质及电子装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110427785B (zh) |
Families Citing this family (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111400775A (zh) * | 2020-02-12 | 2020-07-10 | 口碑(上海)信息技术有限公司 | 设备的识别方法、装置及设备 |
CN111291356B (zh) * | 2020-03-03 | 2023-01-24 | Oppo广东移动通信有限公司 | 安全风险控制方法及相关产品 |
CN111416800A (zh) * | 2020-03-09 | 2020-07-14 | 西安万像电子科技有限公司 | 数据传输方法及*** |
CN111246382B (zh) * | 2020-03-26 | 2021-02-09 | 嘉兴嘉赛信息技术有限公司 | 一种通过硬件指纹检测智能手机是否为受控设备的方法 |
CN111400695B (zh) * | 2020-04-09 | 2024-05-10 | 中国建设银行股份有限公司 | 一种设备指纹生成方法、装置、设备和介质 |
CN111601304A (zh) * | 2020-04-29 | 2020-08-28 | 上海伊邦医药信息科技有限公司 | 一种用于控制安全风险移动端设备唯一识别码的生成方法 |
CN111461091B (zh) * | 2020-06-19 | 2020-09-29 | 腾讯科技(深圳)有限公司 | 万能指纹生成方法和装置、存储介质及电子装置 |
CN111666596B (zh) * | 2020-07-10 | 2023-05-05 | 腾讯科技(深圳)有限公司 | 一种数据处理方法、设备及介质 |
CN111966491B (zh) * | 2020-08-04 | 2023-07-21 | Oppo广东移动通信有限公司 | 统计占用内存的方法及终端设备 |
CN112118256B (zh) * | 2020-09-17 | 2023-03-24 | 浙江齐安信息科技有限公司 | 工控设备指纹归一化方法、装置、计算机设备及存储介质 |
CN113746915A (zh) * | 2021-08-31 | 2021-12-03 | 深信服科技股份有限公司 | 一种边缘节点接入方法、装置、设备及计算机存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999035568A2 (en) * | 1998-01-09 | 1999-07-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Isolation of resources from application in a process control system |
CN106817755A (zh) * | 2017-03-20 | 2017-06-09 | 北京白鹭时代信息技术有限公司 | 一种降低移动终端耗电的方法及装置 |
CN107066373A (zh) * | 2017-03-14 | 2017-08-18 | 北京潘达互娱科技有限公司 | 控制处理方法及装置 |
CN107516038A (zh) * | 2017-08-08 | 2017-12-26 | 北京梆梆安全科技有限公司 | 一种确定设备指纹的方法及装置 |
CN107566401A (zh) * | 2017-09-30 | 2018-01-09 | 北京奇虎科技有限公司 | 虚拟化环境的防护方法及装置 |
CN108156268A (zh) * | 2016-12-05 | 2018-06-12 | 腾讯科技(深圳)有限公司 | 设备标识的获取方法及服务器、终端设备 |
WO2018121387A1 (zh) * | 2016-12-30 | 2018-07-05 | ***股份有限公司 | 安全验证方法、平台、装置和*** |
CN108804908A (zh) * | 2017-05-04 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 一种设备指纹生成方法、装置及计算设备 |
-
2019
- 2019-07-23 CN CN201910667673.5A patent/CN110427785B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1999035568A2 (en) * | 1998-01-09 | 1999-07-15 | Telefonaktiebolaget Lm Ericsson (Publ) | Isolation of resources from application in a process control system |
CN108156268A (zh) * | 2016-12-05 | 2018-06-12 | 腾讯科技(深圳)有限公司 | 设备标识的获取方法及服务器、终端设备 |
WO2018121387A1 (zh) * | 2016-12-30 | 2018-07-05 | ***股份有限公司 | 安全验证方法、平台、装置和*** |
CN107066373A (zh) * | 2017-03-14 | 2017-08-18 | 北京潘达互娱科技有限公司 | 控制处理方法及装置 |
CN106817755A (zh) * | 2017-03-20 | 2017-06-09 | 北京白鹭时代信息技术有限公司 | 一种降低移动终端耗电的方法及装置 |
CN108804908A (zh) * | 2017-05-04 | 2018-11-13 | 腾讯科技(深圳)有限公司 | 一种设备指纹生成方法、装置及计算设备 |
CN107516038A (zh) * | 2017-08-08 | 2017-12-26 | 北京梆梆安全科技有限公司 | 一种确定设备指纹的方法及装置 |
CN107566401A (zh) * | 2017-09-30 | 2018-01-09 | 北京奇虎科技有限公司 | 虚拟化环境的防护方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110427785A (zh) | 2019-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110427785B (zh) | 设备指纹的获取方法和装置、存储介质及电子装置 | |
CN109492378B (zh) | 一种基于设备识别码的身份验证方法、服务器及介质 | |
US10073916B2 (en) | Method and system for facilitating terminal identifiers | |
US10397212B2 (en) | Information device, data processing system, data processing method, and non-transitory storage medium for executing content upon authentication | |
KR101948721B1 (ko) | 파일 해시 값을 이용한 파일 위변조 검사 방법 및 단말 장치 | |
CN111182525B (zh) | 一种存储数据的方法和装置 | |
CN110690974B (zh) | 基于区块链的数据验证方法、装置、设备及可读存储介质 | |
CN107078806B (zh) | 光收发机的编程方法和操作方法以及电气接口设备 | |
US20220147774A1 (en) | Validation of Measurement Data Sets Using Oracle Consensus | |
CN113448817A (zh) | 一种页面录屏方法、装置以及存储介质 | |
CN107682376B (zh) | 风控数据交互方法及装置 | |
CN110825776B (zh) | 空气质量检测报告处理方法、装置及计算设备、存储介质 | |
CN111586022A (zh) | 防火墙开墙验证方法、电子装置、计算机设备及存储介质 | |
CN111935104A (zh) | 物联网设备非法接入检测方法、装置和计算机设备 | |
CN111835504B (zh) | 识别码生成方法及服务器 | |
CN115952515A (zh) | 一种基于大数据的数据安全处理方法及装置 | |
CN115086172A (zh) | 一种数据网关插件更新方法、装置、电子设备及存储介质 | |
CN108200060B (zh) | 基于web子***的单点登录验证方法、服务器及存储介质 | |
CN111949980A (zh) | 目标客户端监控方法和装置、存储介质及电子装置 | |
CN109960924A (zh) | 一种子***登录方法、装置、***及电子设备 | |
CN114362960B (zh) | 资源账户的数据监管方法、装置、计算机设备及介质 | |
CN109960922B (zh) | 一种识别新激活设备的方法及装置 | |
CN113572716B (zh) | 设备检测方法及*** | |
CN108134656A (zh) | 投保数据回传方法、装置、服务器和存储介质 | |
CN116866005A (zh) | 销售终端主机更新方法、子机更新方法及相关装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |