MAC地址搜集

为什么要收集手机的MAC地址,而不去收集一些更加有用的信息,比如号码、应用、位置呢?不是因为MAC地址比这些信息更加有用,而是因为,那些更加有用的信息,我们无法做到大范围地、实时性地收集。 举个简单的例子,我开发了一个手机的APP,自然可以将相关的信息都收集过来,这时候我干嘛需要关注这个手机MAC地址。 但是,你无法保证大部分人都装了APP, 也无法保证这个APP时刻都在运行,在你需要的时候给你相关信息。 再举一个例子,如果我们提供了一项服务,如果手机访问了,那么我们可以知道这个手机更多的信息(比mac地址要有用的多的)比如手机的型号、浏览器、mac、ip地址之类。同样我们也无法保证大部分人都用这个服务。相对而言,收集手机的MAC地址,就是因为收集mac地址可以做到:简单、粗暴、实时、直接这是802.11协议规定的,所有的数据包传输,都集中在2.4Ghz的频段上的13个信道上,每个数据包头都有mac地址,只要拿到这些数据包头,而且数据包头是不加密的,就拿到了这些手机的mac地址。 这样就有一个很大的优点: 我们不需要事先对手机做任何假设或前提,有没有安装相关的APP、访问相关的服务,都没有任何要求,只要打开了它的wifi接口就可以,我们就可以不停地收集手机的 mac 地址。当然有一个前提,手机需要发送数据包,但这不是问题,因为哪怕是空的数据包,也可以得到手机的mac地址。 举个例子,我在商场里收集所有进入商场人的手机的MAC地址,现在人们在商场里逛,应该都会带手机吧,只要求他们打开wifi,其他的要求不需要,我就可以收集到商场里面的人的活动情况,如果我再把定位问题已解决,我甚至可以知道,在某某时刻,在商场的这个物平台有多少人,流通量是多少,从而推算出我这个物平台的具体商业情况(因为我们没有在手机上做任何操作,所有定位是困难)。而这些都是那些服务提供、APP无法做到的。究其原因就是一个,mac地址太好收集了,而其他信息收集起来约束很多,做到每个人都有、时时刻刻都提供,是不可能的,但mac地址可以,这是 802.11 协议说具备的的。怎样实现的:1. public AP直接作为“移动设备 MAC 地址的装置”的设备,可以将关联到的每个手机的mac地址都记录下来,为之后的分析做铺垫。优点:不会存在隐私问题,因为大多都是人们主动去连接的。缺点:花费大,一个AP的范围有限,需要很多数目;而且又要为每个AP提供上网功能,代价太大。因为是在用户首肯下,手机才去连接,基本上无法做到获取这个地区内大部分mac地址的,有数据稀疏问题,得不偿失。2.冒充一些常用的AP,而且不提供上网功能,比如你在星巴克的wifi,移动的AP,我在另一些地方提供同样的SSID的AP就可以,手机会自动关联之前的记录,只要注意ssid重复的情况。优点:因为不需要提供上网功能,成本很低;缺点:这种情况肯定是违法的(虽然我不清楚相关的法律)。3. wifi sniffer。 简单来说现在的数据包头是不加密的,我们利用sniffer检测到数据包之后,直接从包头拿到发送这个数据包的手的相关信息,包括:mac地址,目的地址AP的ssid,信号强度之类信息。 监听的手段很简单,所有的wifi数据包传输,都集中在13个信道之中,(主要是1,6,13),任何一个具备了wifi的设备,都可以监听这些数据包,诸如手机、笔记本、便携式的无线网卡,都可以。优点:成本低;十分方便,可以做大规模侦听的可能,因为不需要做关联操作。缺点:也有隐私问题。存在什么样的技术问题:(无论是哪种方法,都存在,我这里主要讲一下第三种方法存在的技术问题)首先,定位困难。sniffer即使监听到了你的手机的数据包,也很难精确的定位到你手机的位置,原因很简单,一个数据包只有AP的ssid和信号强度,这样推测你手机的位置是不准确的。无论是室内定位还是室外,都需要预先设置好的wifi profile和当前手机对多个AP及其相应的信号强度,否则定位不精确,做出来没有多大意义。一般wifi定位:需要手机发送probe request到AP,发现当前手机周围网络的AP以及相应的信号强度,然后根据离线或在线的wifi profile,推出当前的位置信息;这里需要客户端也就是手机的协作,没有手机的协作,仅仅靠外在的设备,推出手机的位置,是一个很难的问题。其次你的手机不会时时刻刻都在发数据包。如果我用简单的长尾分布来假设为一个手机发数据包的时间,那么即使是在一个地方有wifi sniffer的设备,也检测到的手机用户活动的情况也是很稀疏的。当然如果一个用户会频繁来的,出入的地方,得到的手机用户获得数据还是很有价值的。但是在大街上,没有意义,商场里倒是很有价值。最后,就是数据很大。真的是很大。因为我们监听的范围内的大部分手机,这个量级是很大的。做个简单的比较,在一个商场内,一个是监听所有手机的mac,一个是用APP监听手机的信息,计算一下这个商场内的人数中,安装了这个APP的数据和总数的比较,安装了这个APP而且运行和总数比较,这不是一个量级上的比较。随着监听范围的扩大,数据量自然是很大的。其次,大量的冗余数据,因为我们只需要手机的mac地址,以及信号强度随时间的变化,不需要数据包的内容(当然你也不能知道,因为加密了),往往会导致很多数据包,没有价值,而有价值的数据包有常常不发送。分析起来还是很吃力的。关于它的隐私和商业前途问题:这一块别人已经讲了很多了,讲一下自己的看法。隐私:肯定有问题,基本上可以通过mac地址,来推算出手机持有者的大致的活动范围(精确做不到),家的范围,工作的范围等等。具体在法律上、还是道德上怎么处理是个问题,我并不清楚。个人如果不想自己手机的mac被监测到的话,除了关闭wifi接口之外,是没有其他办法的。商业:商业行为,一般是自己搭建一些服务(或APP)提供给手机,那么访问这个服务的手机,我们可以获得这个手机大部分有用的信息。在一个部分,这个问题的很多答案都是从这个角度来说明的。但我要说的是,如果你们只是提供服务了,其实是没必要在意手机的mac地址的,因为相对于其他信息,mac地址的价值要低一些。我的建议:采用关联的方式,自己搭建服务,有一批用户数据(增加访问过自己的服务),但在一批用户,相对于整体人数,只算微量的人数。无论是public AP,还是冒充AP和wifi sniffer,可以关联到已有的用户,在自己监测的区域,推广相应的商业行为。

猜你喜欢

转载自weitao1026.iteye.com/blog/2370405