设备指纹————对抗黑产的利器
借款中心发来一份借款记录。这明明是有人冒充了我啊!谁冒充我,借钱不还?
在借款中心,只要按照流程申请,即可领到贷款。
- 首先在0楼大厅,可随意自由参观(为啥不是1楼?可以找个程序员问问)
- 接着到1楼,填写证件号与姓名
- 然后到2楼,上传证件照片
- 随后到3楼,人脸识别
- 最后坐电梯直达楼顶停机坪,支用取出钱,直接坐直升飞机回家。
其中1,2,3楼的审核,是为了识别身份的唯一性。
但是借款中心调用了监控录像,发现有个小黑1号,拿着我的身份复制件,戴了个和我脸型一样的头套,竟然通过了1、2、3楼的审核。原来证件照与人脸,并不是唯一的身份标识。我自以为的唯一标识,竟然是可以伪造的。
幕后监控系统上线
随后借款中心开发了校验功能,对每一个客户进行幕后监控,毕竟为了用户良好的体验,不能让用户的体验受到影响。
幕后监控v1.0版本校验内容:身高体重。用户的身份必须与身高体重符合,如果一个客户身高体重不符合,那说明是冒充的。
果然小黑1号下次再来冒充我贷款,被拒绝了。
但是不久后,小黑1号组织了团队,找来了小黑2号,小黑2号和我身高体重竟然一样。这一次又冒充我贷款成功了。
随后,幕后监控v2.0版上线:校验走路姿势。
果然小黑2号再来冒充我贷款,被拒绝了。
但是不久后,小黑2号的团队找来了演员小黑3号,竟然模仿我走路的姿势,这一次,又冒充了我贷款成功了。
接着,幕后监控v3.0版上线:校验说话的语气。
果然小黑3号再来冒充我贷款,被拒绝了。
类似的规则在一直不断的迭代,很明显,规则参数越多,对方冒充我的成本就越高,但是相应的校验时间也越久。目前每一次校验,需要5分钟才能出结果。
3分钟极速审核的承诺
借款中心有一个承诺,3分钟极速审核,即在1,2,3楼每一层给予回复的时候不越过3分钟。
所以在用户开始1,2,3楼的审核时,再开始耗时5分钟校验太慢了。
那怎么解决呢?
轮询:一直对新来的客户进行监测,无论客户是在大厅闲逛,还是在1,2,3楼审核回复,每间隔5分钟监测一次,上一次刚出结果,下一次的监测就开始。这样在每一次审核回复的时候,可以用5分钟之前的结果。这样既保证了结果的即时,又保证了是最近的结果。
但是呢,这个用户在大厅里乱逛,可能1个小时之后再上2楼。并且在2楼审核通过后,不一定直接去3楼。
所以轮询的话,就要耗费大量的人力进行分析。
所以为了保证性价比,就得减少频率,要不然在关键节点吧,在进大门的时候,检测一次,在到1楼,2楼,3楼的时候,各检测一次。
但有时候他办理的速度太快了,5分钟内,直接从1楼到了3楼,那没有及时的数据咋办呢?那就用上一次的呗,毕竟新旧数据只是相对的,上一次的数据,虽然比较旧了,但也比没有好。
以上纯属虚构,如有雷同,纯属巧合。
这个故事,只是对我们近期做的一个设备指纹项目的一个比喻。
需求背景
在借款、转账、支付等重要金融产品,会有黑产使用大量的伪造设备进行欺诈。设备指纹,就是为了识别真实用户与伪造设备,来对抗黑产。
因此项目的需求,需要在客户端采集设备指纹,在一些重要的金融场景(借款、转账、支付等),上传设备指纹信息,以便风控决策系统来做决策。
简单来说分为两步:采集指纹,上传指纹信息。
技术方案的迭代
最理想的方案
设备指纹的采集最慢需要5秒钟时间,所以最理想的方案,就是在需要使用之前的5秒钟进行采集。但是无法预判何时使用,那就使用轮询的方案。
但是轮询采集不仅耗电,而且性价比也不高。所以就要退化频率。
- 思路1,减少轮询的频率,
- 思路2,只在关键的页面进行采集。所谓关键,即指即将可能发起交易的阶段。可以理解成预判用户交易的时机。
比如对于打车支付的节点,那就在调起收银台的时候,即支付的前期进行采集;
对于贷款授信决策,在其刚进入填写资料的页面时,进行采集,这样其提交授信的请求时,即可拿到较新的设备指纹。
更现实的方案
这两种思路都打破了采集与上传一一对应的原则,导致采集与上传不再有强关联,那么就可以认为这是两个模块:采集模块和上传模块。
上传模块,即在关键的请求时加上相应的设备指纹参数。
对于上传来说,采集是一个黑盒,何时采集我不管,你只要给我一个最新的值即可。
何时采集、如何缓存,都放置在采集模块。
技术方案的整个流程
各个比喻
借款中心,指的是APP。
大厅指的是APP的各个功能。
1,2,3楼,指的是贷款资料的审核,比如1楼的审核指的是身份信息校验网络请求。
对客户的身高、体重、走路姿势、说话的语气综合进行分析,这些信息的综合值,即为设备指纹。指纹的意思是有唯一性,但并不是狭义的手指的指纹。
设备指纹这个综合值,包括的信息有机型,设备id(类比于身份证号,这个非常容易伪造),网卡地址,蓝牙地址等。更高级的反欺诈策略甚至会有生物探针,包括用户按压屏幕的力度,手指滑动的习惯,使用手机时的仰角。
3分钟极速审核的承诺,指的是接口请求的入参,不能因为获取设备指纹而导致接口请求太慢。
后记
这个需求涉及到多个团队之间的合作,根据不同团队,拆成了多个需求。评审、联调、测试多次,涉及到不同的同学,这个方案讲了不止5遍,因为是纯粹逻辑,所以讲起来很困难,测试时也不方便。为方便理解,想到了以上这个比喻的故事,写了本文《谁冒充了我,借钱不还? 设备指纹,金融行业对抗黑产的利器》。