1. 移动端风控的“眼睛”:Akamai Sensor数据采集到底在做什么?
如果你做过移动端自动化或者爬虫,肯定遇到过这种情况:明明代码跑得好好的,账号和设备信息也都对,但请求就是被拦截了,返回一堆你看不懂的错误码。很多时候,这背后站着的就是像Akamai这样的风控服务商。它不像传统的验证码那样直接让你“点选”,而是悄无声息地在你的App或浏览器里,装上了一双“眼睛”和一对“耳朵”,时刻感知着你设备的每一个细微动作。这双“眼睛”,就是我们要聊的Sensor数据采集。
简单来说,Akamai在移动端(Android/iOS的WebView或App内)会启动一个后台的数据收集器。这个收集器干的事情,远比我们想象的要细致。它不仅仅收集你点击了哪里、滑动了多远(这些是基础的Touch/Move事件),更关键的是,它会调用设备上的一系列硬件传感器。首当其冲的就是陀螺仪和方向传感器。你可能觉得奇怪,访问一个电商网站或者抢个票,跟手机怎么转、怎么倾斜有什么关系?关系大了去了。真人手持手机时,几乎不可能保持绝对的静止,手指的每一次点击都会带来极其微小的设备角度变化和震动,这些变化会被陀螺仪和加速度计精准地记录下来,形成一连串带有时间戳的、连续的浮点数数据流。
我刚开始研究的时候,也以为这只是收集几个简单的数值。后来把数据日志打出来一看,才发现里面的门道太深了。它收集的不是某个瞬间的“状态值”,而是一段时间内的“运动轨迹”。比如,一个简单的“点击”动作,在Sensor数据里会呈现为:点击前几百毫秒,设备可能有一个微小的、无意识的晃动(陀螺仪数据变化);手指按下瞬间,屏幕受到一个轻微的压力反馈(这部分可能结合其他传感器);点击后,设备因为反作用力有一个轻微的复位。这一整套数据,形成了一个符合物理规律的、连续且带有“人性噪声”的曲线。而机器脚本生成的点击,其Sensor数据曲线往往是生硬的、瞬间跳变的,或者干脆就是一条完美的直线(模拟器常见问题),这在风控系统眼里,就像黑夜里的探照灯一样显眼。
除了运动传感器,这个收集器还会同步采集一堆设备性能与环境参数。比如CPU的核心数、内存大小、屏幕分辨率与真实渲染像素的比值(这能检测一些缩放模拟)、电池状态、甚至是一些系统时间函数的执行精度。这些数据会和Sensor数据搅拌在一起,为后续生成一个唯一的、难以复制的“设备指纹”做准备。你可以把它理解为,Akamai不仅在看你的“行为举止”(Sensor),还在记录你的“体貌特征和装备”(设备信息),两者结合,才能更准确地判断屏幕后面的是真人还是一个冷冰冰的程序。
2. 数据如何变成“密文”:从采集到加密的完整流水线
采集到一大堆原始数据后,Akamai并不会傻乎乎地直接把这些明文发回服务器,那样太容易被拦截和分析了。它有一套相当成熟的加工和加密流水线。这个过程,我们可以把它想象成一个食品加工厂:采集原料(Sensor数据)→ 预处理和混合(计算校验位)→ 装入保密包装(AES加密)→ 贴上防伪标签(RSA加密或签名)→ 出厂运输(HTTP Header上传)。
首先,预处理和混合这一步非常关键。原始Sensor数据是海量的浮点数,直接处理效率低且特征过于明显。Akamai的客户端代码(通常是混淆过的JavaScript)会执行一系列复杂的浮点运算。这些


1203

被折叠的 条评论
为什么被折叠?



