设备指纹的技术分析

简介: 设备指纹技术

技术分析
 
采集设备信息需要关注的问题:用户设备是真实设备?哪个设备信息是稳定?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

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

相关文章
|
Java API Android开发
[NDK/JNI系列01] NDK与JNI的基本概念与使用场景
[NDK/JNI系列01] NDK与JNI的基本概念与使用场景
644 0
|
9月前
|
JSON API 数据安全/隐私保护
深度分析唯品会API接口,用Python脚本实现
本文深度解析唯品会API的核心功能、认证机制与接口规范,并基于行业常规推测签名逻辑,结合Python实现商品与订单接口调用示例,适用于电商系统对接与自动化开发场景。
|
监控 安全 网络安全
中间人攻击之SSL剥离
【8月更文挑战第12天】
855 1
|
Web App开发 移动开发 前端开发
如何解决不同浏览器的样式兼容性问题?
如何解决不同浏览器的样式兼容性问题?
943 0
|
前端开发 搜索推荐 C++
Marp 教程:如何在 VSCode 中引入自定义样式和主题
本文介绍了如何在 Marp 中引入自定义样式和主题,使你的幻灯片更加个性化和独特。首先,你需要安装 VSCode 和 Marp 插件,了解 Marp 的基本结构。接着,通过创建自定义 CSS 文件并在 Markdown 文件中引入,实现样式定制。此外,还可以创建和使用自定义主题,以及进行高级自定义,如调整布局、引入自定义字体和定义复杂动画。最后,使用 Marp 的预览功能实时查看效果。
|
Python
PyCharm 设置作者信息
PyCharm 设置作者信息
2734 0
PyCharm 设置作者信息
|
数据采集 移动开发 算法
论设备指纹的唯一性:始于硬件ID,终于云端交互
互联网时代,用户拉新几乎是所有公司必须面对的话题,从投入运营的初期阶段到快速成长期,再到稳定的成熟阶段,拉新贯穿了产品的整个生命周期,毕竟有了新用户才能创造出价值。
1630 0
论设备指纹的唯一性:始于硬件ID,终于云端交互
App逆向百例|18|某A系防护SO跳转修复
App逆向百例|18|某A系防护SO跳转修复
1630 0
|
算法 Java 数据安全/隐私保护
App逆向百例|06|某App mfsig分析
App逆向百例|06|某App mfsig分析
1794 0
|
XML Java Android开发
Android App开发动画特效之利用滚动器实现平滑翻页(附源码和演示 简单易懂)
Android App开发动画特效之利用滚动器实现平滑翻页(附源码和演示 简单易懂)
538 0
Android App开发动画特效之利用滚动器实现平滑翻页(附源码和演示 简单易懂)