注:如有侵权,请联系作者进行删除
akamai web 指纹注册分析
- 1.初始化 aj_type,aj_index = 0,0
- 2.进行指纹注册
- 3.注册后达到随机指纹的目的
codes
func TestWebApi_Abck(t *testing.T) {
var webApi = NewProxyWebApi(MarketCN, &px[0])
webApi.ViewSensor(AkamaiPcHashId)
var cf, _ = tools.LoopAkaConf(conser.ProdAkamaiQueueKey, bot.Rds)
logger.Info(cf.FpRSign)
var aka = web.NewWebAkaMai()
aka.Config.Url = URLWebHost
aka.GenCanvasFp()
webApi.TryCrackSensor(aka, 3)
logger.Info(webApi.IsCrackAkamai(), "_abck:", aka.Config.FpRSign)
}
output
2020-01-29 10:09:51.111 [INFO] [web_api_test.go:187]
2020-01-29 10:09:52.474 [INFO] [web_api_test.go:193] true _abck: -14401568??
akamai bmp 移动端 在干些什么事情
- 1.收集sensor数据,其中包含陀螺仪,方向传感器之类的,最后通过一系列浮点算法算出数据。(也包括touch,move之类的数据)
- 2.收集设备信息,cpu性能数据之类的,然后生产一些校验位数据
- 3.生产aeskey和rsakey,放入到pack数据中进行加密后,通过key来加密sensor数据后暂放缓冲区
- 4.收集后通过x-acf-sensor-data header 头上传sensor数据,上传后清空,打开sensor收集继续收集,每200多次收集后关闭
那些情况会被android akamai BAN
- 1.校验位不对
- 2.时间差不对
- 3.数据不对
codes deviceInfo
const len = Tool.charPlus(str); //对的
deviceInfo += ',';
deviceInfo += len; //j.l(r0) OK
deviceInfo += ',';
deviceInfo += lodash.random(1280303722, 1295607044); //确实是随机数
deviceInfo += ',';
deviceInfo += Math.ceil(timeNow / 2); //时间错/2
str += deviceInfo;
//第一个值是定位传感器,(do_en,do_unr,do_dis) 开启,不可靠,关闭
//第二个是传感器是否开启(do_en,do_dis) 这里面表示是否有xx之类的传感器
str += '-1,2,-94,-101,'; //TAG
codes sensor
//有数据 一般是一个空置 OK
str += '-1,2,-94,-117,'; //TAG
str += motions.str; //
//r3 方向传感器 AccObs
let sensorR3 = accR3;
//sensorR3 = AkamaiMock.DefaultAcc;//使用默认的ACC
//r0 陀螺仪 TYPE_GYROSCOPE
let sensorR0 = gyR0;
//r4.f396a =A r4.f396a,里面包含了许多传感器的数据,模拟器里面是没有这个传感器的数据的
str += '-1,2,-94,-111,'; //TAG
str += sensorR3.a.a;
//TODO 主要重要的数据 A
//r7.f396a=a
str += '-1,2,-94,-109,'; //tag
str += sensorR0.a.a; //
str += '-1,2,-94,-144,'; //tag
str += sensorR3.a.c;
str += '-1,2,-94,-142,'; //tag
str += sensorR3.a.b;
str += '-1,2,-94,-145,';
str += sensorR0.a.c;
str += '-1,2,-94,-143,'; //tag
str += sensorR0.a.b;
codes 产生校验位数据
let total_b = o.d + motions.b + sensorR3.b + sensorR0.b;
let total_c = sensorR0.c + sensorR3.c + motions.j + o.ch;
QA:为什么firefox 的finger def 插件无效会被ban
- 1.可能是因为一些常规设备参数问题
- 2.事件收集不够,达不到通过
- 3.设备信息会跟finger canvas一起注册,可能会产生关联
- 4.开始是以为canvas base64->integer 算法是可被逆向的,仔细看过后是不可逆向,说明指纹是注册而已非验证图片校验信息
- 5.猜测:nike风控大概akamai只是一个gateway的作用,ban普通的bot request
QA:如何做自己的风控系统
自己的电商抢购或者秒杀之类的可以做自己的风控系统,其实市面上的风控系统大部分都只是简单的处理采集过来的数据是否逻辑真实有效,据我所知没有通过大数据模型校验优化
- 1.收集可靠的事件数据(虽然可被mock)
- 2.基础校验1:校验时间差,校验数据是否human 来进行一个等级划分(类似人脸评分)
- 3.利用真实数据来训练模型,通过模型来校验数据真实性
- 4.无论如何加密,反之有解密手段。
- 5.同时加入2套风控model,也就是2套风控手段(当然2套都是接入自己的)2套接入后,可同步上传数据,上传数据后可校验2次数据结果,对ip 之类的账号信息进行评分
- 6.每次账号风控gateway评分后记录到系统,记录每次账号风控违规次数,构建自己的账号信用系统。
下面我将用一系列的方式去code一套自己的风控系统:
1.如何设计自己的bot风控系统(设备信息基础)
2.如何设计自己的bot风控系统(分析那些数据可收集)
3.如何设计自己的bot风控系统(清理和分析数据)
4.如何设计自己的bot风控系统(对请求进行评分和绑定)
5.如何设计自己的bot风控系统(对请求链路细节分析,底层指纹识别)
注:只允许研究、学习目的的分享、使用、修改,不允许任何商业用途。转载请注明出处,感谢。