设备指纹的技术分析

简介: 设备指纹技术

技术分析
 
采集设备信息需要关注的问题:用户设备是真实设备?哪个设备信息是稳定?Android系统大版本升级是否导致权限变动?采集的数据是否符合隐私合规政策?采用什么算法来计算出唯一ID?新APP上线所有设备ID是全新?
技术实现流程:通过采集客户端的特征属性信息并将其加密上传到云端,然后通过特定的算法分析并为每台设备生成唯一的ID来标识这台设备。
设备指纹必须具备:稳定性、唯一性、安全性、易用性、高性能。
设备环境风险特征:识别模拟器环境、多开、ROOT、篡改设备参数、脚本,等异常环境特征。具有稳定性高,性能高。
image.png

通常情况下,设备指纹采集到用户的设备数据后,数据会通过异步方式先上传到业务的服务器上,然后再通过代理服务端进行转发到对应设备指纹的服务端。这样也是为了保证数据的安全性,客户端采集数据功能防止被剥离,从而采集不到设备数据。采集的数据一般通过json格式加密数据进行上传。

image.png

设备指纹上传一般采用URL的POST请求,并集成json格式,并且所采集的字段信息中会有一些字段是无用的,有一些字段适用于对json信息采用强校验的混淆信息。
设备指纹中设备风险识别的微行为常用的属性:电池状态、重力传感器、加速度传感器状态、联网状态、USB状态、触摸轨迹、压感、按压时长、剪切板。
设备指纹的SDK主要以java代码和C、C++代码为主,java代码部分是以aar包或jar包方式存在,C\C++代码主要以SO方式存储的。例如某易的设备指纹就是以aar包(NEDevice-SdkRelease_v1.7.0_2022xxxxxx.aar)单独方式存在,某盾的设备指纹以aar文件(fraudmetrix-xxx.aar)和so文件(libtongdun.so)两者相结合存在,某美的设备指纹以aar包(smsdk-x.x.x-release.aar)和so文件(libsmsdk.so)相结合存在。
设备指纹主要是通过集成到APP中的SDK,还有小程序的SDK,通常情况下是采用aar包方式进行提供的SDK,还有就是强度较高的是通过aar包和SO文件进行结合集成的设备指纹SDK。将关键的采集信息集成到SO中代码中实现,并且SO文件采用虚拟机保护。
下面是某设备指纹以aar形式的,它关键代码都是java实现的。并且java代码利用proguard 混淆规则进行对aar的class类进行混淆类名而已,并没有混淆到函数名称和变量名称,字符串信息。

image.png

下面是某设备指纹的java代码和C++代码部分,java代码和C++代码都采用了虚拟化保护技术进行保护。
image.png

image.png

设备指纹读取用户信息,通常需要涉及到向用户申请权限的情况,所以在android的AndroidManifest.xml配置文件中通常有一系列的权限申请。
image.png

(上图只是申请权限的一小部分)

相关文章
|
2月前
|
生物认证 数据安全/隐私保护
|
数据采集 存储 缓存
详解设备指纹核心算法
大部分风险都来自于身份的不确定性。 比如我们熟知的网络钓鱼、薅羊毛、账号窃取、注册登录等带来的盗用和欺诈都是其身份不确定性造成的直接后果。
972 0
详解设备指纹核心算法
|
传感器 安全 生物认证
苹果新专利曝光,或将在设备上加入气体检测功能
该专利描述到,传感器可以检测有毒气体,如一氧化碳(CO),二氧化氮(NO2),二氧化硫(SO2)以及甲烷和一氧化氮(NO)等其他气体。
426 0
|
传感器 安全 物联网
新型智能手机威胁:攻击者可以使用声波来破解你的设备
本文讲的是新型智能手机威胁:攻击者可以使用声波来破解你的设备,在电影世界中,我们总能看到黑客无声无息地侵入了受害者的手机、电脑,传统黑客入侵智能手机无非是通过WIFI网络或者是邮件,你有想过手机、无人机、自行车以及其他物联网设备中内置的加速器元件有一天会沦为黑客的
1703 0
|
传感器 安全 机器学习/深度学习
利用传感器检测手机恶意软件的新型检测技术
本文讲的是利用传感器检测手机恶意软件的新型检测技术,移动端的恶意软件问题正愈演愈烈,伯明翰阿拉巴马大学的研究者们开发了一种新的技术,以检测可疑手机软件进行的恶意行为,比如偷偷拨打用户并不知道的公共电话号码。
1087 0