设备指纹系列--基础篇

news/2024/12/28 16:17:33/

基础概念

618还没开始,但是又好像已经结束了…在这种电商大促的大节日前,电商行业客户一般会提前找到合适的设备指纹产品,去防止被“薅秃”。因为,黑灰产拥有专业的设备牧场,通过使用模拟器、刷机改机等手段,批量、反复地利用终端设备作案。对互联网场景下的金融、电商等行业,进行恶意爬取、虚假注册、账号盗用、薅羊毛、推广作弊等其他恶意行为。

image.png

而设备指纹,通过用户上网设备的硬件、网络、环境等设备特征信息, 生成可抗黑产破解的设备唯一标识。作为纵深防御风控体系下的重要工具,可实现对终端设备上的风险环境识别、风险检测及行为风险分析。

名称释义
AppId公钥,长度为32位字符串,接入渠道唯一标识。开通服务后可在设备指纹的二级菜单“应用管理”中获取,AppId在客户端接入时使用。
AppSecret私钥,长度为32位字符串,与公钥对应,开通服务后可在设备指纹的二级菜单“应用管理”中获取,请妥善保管,勿泄漏给他人 。AppSecret在后台查询设备详情时使用。
token设备指纹SDK采集上报后返回的标识,token不是设备指纹,通过token可以查询设备指纹
hardId设备指纹
用户前端Web端或集成SDK的Android端、iOS端
用户后端指企业的后台服务器

交互流程

image.png

  • 客户端接入,业务客户端需要集成指纹客户端SDK,包括安卓,iOS,H5,小程序等;通过客户端SDK可以获取到设备指纹token(注:token不是设备指纹)。

  • 业务接口扩展,业务客户端在需要设备指纹token的时候,可以通过相应的api获取到。业务接口需要把前端拿到的指纹token一并传入后台。

  • 后台接入,根据提供的后端SDK来查询设备详细信息,SDK涵盖Java,PHP等。

PS:因终端用户的设备网络环境和设备版本等因素,设备指纹采集率并不能一定达到100%,可能会存在极少部分未能正常采集到的情况。所以在集成指纹服务的时候,请尽量避免对指纹信息强依赖。

设备指纹的获取

常见的设备指纹获取方式:

  1. User-Agent 字符串:在 Web 浏览器环境中,可以通过读取用户代理(User-Agent)字符串来获取设备信息,包括操作系统、浏览器版本等。例如,在 JavaScript 中,可以使用 navigator.userAgent 来获取 User-Agent 字符串。
  2. IP 地址:通过获取设备的 IP 地址,可以对设备进行初步的区分。然而,IP 地址并非唯一标识设备的可靠方式,因为多个设备可能共享相同的 IP 地址(例如,通过 NAT 网络)。
  3. 操作系统信息:设备的操作系统信息也可以用于构建设备指纹。在不同的操作系统中,可能有各种系统调用、API 或命令可以获取该信息。
  4. 浏览器或应用程序特征:可以通过检查浏览器或应用程序的特定特征来获取设备指纹。例如,在 Web 浏览器中,可以使用 JavaScript 检测浏览器的插件、字体、屏幕分辨率等信息。
  5. 硬件信息:获取硬件信息也可以用于设备指纹的生成。例如,使用 JavaScript 可以读取设备的 CPU 信息、GPU 信息、设备的唯一标识符(如 Android 的 IMEI 或 iOS 的广告标识符)等。

基础代码:

import android.os.Build;
import android.provider.Settings;
import android.content.Context;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;public class DeviceFingerprint {// 获取设备指纹信息public static String getDeviceFingerprint(Context context) {StringBuilder fingerprint = new StringBuilder();// 获取设备的 Android IDString androidId = Settings.Secure.getString(context.getContentResolver(), Settings.Secure.ANDROID_ID);fingerprint.append(androidId);// 获取设备的序列号String serial = Build.SERIAL;fingerprint.append(serial);// 获取设备的硬件信息String hardware = Build.HARDWARE;fingerprint.append(hardware);// 获取设备的制造商和型号String manufacturer = Build.MANUFACTURER;String model = Build.MODEL;fingerprint.append(manufacturer).append(model);// 获取设备的唯一标识符String uniqueId = getUniqueId();fingerprint.append(uniqueId);// 对设备指纹信息进行哈希处理String hashedFingerprint = hashString(fingerprint.toString());return hashedFingerprint;}// 生成设备的唯一标识符private static String getUniqueId() {String uniqueId = "";try {// 获取设备的唯一标识符(可根据需求自定义)// 例如,可以使用 IMEI(需要权限)或其他标识符uniqueId = "YOUR_UNIQUE_ID";} catch (Exception e) {e.printStackTrace();}return uniqueId;}// 对字符串进行哈希处理private static String hashString(String input) {try {MessageDigest digest = MessageDigest.getInstance("SHA-256");byte[] hashBytes = digest.digest(input.getBytes());StringBuilder stringBuilder = new StringBuilder();for (byte b : hashBytes) {stringBuilder.append(Integer.toString((b & 0xff) + 0x100, 16).substring(1));}return stringBuilder.toString();} catch (NoSuchAlgorithmException e) {e.printStackTrace();return "";}}
}

以上。

如需要免费体验设备指纹:顶象设备指纹


http://www.ppmy.cn/news/224116.html

相关文章

使用Maven搭建Struts2+Spring3+Hibernate4的整合开发环境

使用Maven搭建Struts2Spring3Hibernate4的整合开发环境 一.新建Maven项目 1.新建一个Web Project 创建好的项目如下图所示: 2.修改默认的JDK 右键点击,选择Properties 3.创建Maven标准目录 src/main/java src/main/resources src/test/java src/test/r…

Photoshop学习

01 Photoshop简介 1、以处理位图为主 2、矢量图不是它的专场 3、应用领域 (1)平面设计 (2)广告摄影(用的也比较多) ①7有了无损压缩 (3)影视动画 (4)网页 (5)界面设计 4、3d设计也能用的到photoshop (1)素材需要它处理 5、做设计是一个基础软件 6、动画、影视中的素材都是需要…

ElasticSearch学习

ElasticSearch介绍 引言 在海量数据中执行搜索功能, Mysql对于大数据的搜索,效率太低如果关键字不准确, 一样可以搜索到想要的数据 es介绍 es是使用java语言并且基于Lucene编写的搜索引擎框架, 提供了分布式的全文检索功能, 可以近乎实时的存储, 检索数据, 提供了统一的基于RE…

方太能否在高端厨电变革中突围?

本文概要: 1、作为厨电行业的巨头,方太厨具因何而崛起,何以能在激烈的厮杀中稳居龙头地位? 2、未来又能否在第三次厨房变革中突围? 古训有言:“民以食为天”,饮食文化始终贯穿着中华历史。而…

2022年京东新百货七夕礼遇季活动有什么亮点?

2022年京东新百货七夕礼遇季活动有什么亮点? 8月2日,京东新百货七夕礼遇季正式开启,针对消费者的众多诉求,京东全新上线的奢品PLUS黑金卡权益升级,开卡立享200大牌折上再享95折、997元高端奢品护理福利。折上折品牌覆盖RIMOWA等顶…

bzoj3388 [ Usaco2004 Dec ]

题目大意: 约翰的表哥罗恩生活在科罗拉多州。他近来打算教他的奶牛们滑雪,但是奶牛们非常害羞,不敢在游人如织的度假胜地滑雪。没办法,他只好自己建滑雪场了.罗恩的雪场可以划分为W列L行(1≤W≤500;1≤L≤500)&#xf…

台式电脑配置,贵否?

台式电脑配置CPU: AMD 9650 四核主板: AMD Epox790 GTR显卡:篮宝石 4850 512M DDRIII内存:金邦 2G DDRII800 X 2硬盘:WD 640G 西部数据机箱: ATX航嘉 多核350W显示器:22液晶LG2253TQ键盘/鼠标: 微软键盘/鼠标 时间&#xf…

奔跑吧,少年!——记曲周县实验小学体育文化节暨益中.志德杯校园足球联赛开幕式

2023年5月31日上午,曲周县实验小学以“奔跑吧,少年”为主题的体育文化节隆重开幕。 我们很荣幸地邀请到了县政协主席曹素芝,政协副主席刘孝慈,教体局副局长陈新同,财政局副局长白新霞,恒升银行副行长陈希忠…