奥利奥依旧默许网卡地址被获取,是基于什么考量?

2017-08-27 04:06:43 +08:00
 EmmaSwan
这几天刷了奥利奥,主要就为了看两点,一个是用电管理对 WIFI 的处理,这点很满意,最长纪录 17 小时 WIFI 没间断。另一点就是定位的管理。在不插 SIM 卡,不开启 GPS 的情况下,各种全家桶依旧轻易地获取了准确定位。更改路由器网卡地址后,定位就失败了。

前几代安卓就开始提供了权限管理,包括定位权限。可是却始终不管控网卡地址的权限,这样一来,只要你的局域网里有人被获取定位,你的位置也就暴露了。而大多数场景里,你都不是局域网的唯一用户。谷歌应该是很清楚这一点啊,更清楚 IOS 对网卡地址的管控。为什么直到现在,还是默许应用获得网卡地址呢?那这样,定位管理还有什么意义?

PLAY 对应用流氓行径的管理也是很废柴。那么多全家桶,公然挑战用户底线,不给通话权限不给定位权限就不给启动。比如某信。而你在 IOS 上用这些应用,即使不给权限,依旧可以启动,且正常使用。谷歌你连 PLAY 里的东西都管不好,其他应用能指望啥。

随便哪个应用,获取了通话权限和定位权限,就等于知道了某一个特定人的实时位置,这些信息只要用户数到一定程度,都可以拿去卖钱。私家侦探 /讨债公司那么容易找到人,这些应用贡献不小啊。即使找不到人,也能根据网卡地址找到你的家人你的同事,进而达到目的。

到底谷歌是为啥不在网卡地址上做出限制?应用获取不到网卡地址,能影响他什么正常功能?
9818 次点击
所在节点    Android
63 条回复
skylancer
2017-08-27 04:29:09 +08:00
在这个 case 里,获取的是路由器的 mac 地址,iOS 同样也能获取
另外,同样也能遍历网络
EmmaSwan
2017-08-27 04:37:00 +08:00
@skylancer 这我就不能理解了,既然 IOS 应用也能获取网卡地址,为什么无法实现定位? 难道是迫于苹果压力,假装无法定位?
greenskinmonster
2017-08-27 07:00:22 +08:00
网卡地址是指什么? MAC 地址?还是 IP 地址?
EmmaSwan
2017-08-27 07:44:42 +08:00
@greenskinmonster 额,正文第一段结尾“更改路由器网卡地址后,定位就失败了。 ” 所以我说的,肯定是路由器的网卡地址。它不可能利用手机网卡地址来定位的啊,因为你走到哪里,手机网卡都是一个地址啦。但是你不同地方,就有不同路由,所以根据你的路由网卡就知道你在哪里嘛。我以为大家都知道,所以标题就简单写了
szlytlyt
2017-08-27 08:27:22 +08:00
@EmmaSwan 现在不是根据出口 IP 就能知道大概位置了么
EmmaSwan
2017-08-27 08:35:16 +08:00
@szlytlyt “各种全家桶依旧轻易地获取了准确定位”。。。准确定位。。。你说的 IP 定位,我个人理解,很大程度上也要依赖于其他方式的定位,然后与 IP 关联起来。但这 IP 如果重拨号后被你隔壁小区人用了,自然也就不准确了。网卡定位,据我的多次实验,是精确到了 10 米内,也就是你在楼下进屋前最后的精准 GPS,会与你的网卡关联起来
EmmaSwan
2017-08-27 08:36:29 +08:00
@szlytlyt 所以,我的理解,网卡定位,你局域网里的人越多,定位越准。而 IP 定位,用过这个 IP 的人越多,就越分散
EmmaSwan
2017-08-27 08:39:50 +08:00
@szlytlyt 哦,对了,忘了说。如果你的路由器“爱国”了,且没有被你用于国内的服务,那这个爱国 IP 是不会有国内位置记录的。但这种情况下,依然可以用你的网卡地址来定位,而不管你的 IP 在什么国家
panda1001
2017-08-27 08:43:56 +08:00
安卓应用只要有权限获取周围 AP 的 SSID 和 MAC,再怎么防止定位也是徒劳
EmmaSwan
2017-08-27 09:07:55 +08:00
@panda1001 这就是我发这个帖子的原因,“基于什么考量”要允许应用获取网卡地址,这在我看来,应用的正常运行根本不需要知道我是什么网卡嘛
panda1001
2017-08-27 09:41:50 +08:00
@EmmaSwan
一般路由器在是区分 LAN 口的 MAC 和无线 AP 的 MAC
应用有网络权限就能用 ARP 拿到路由器 LAN 口的 MAC,这个避免不了的,手机的定位权限就在 AP 的 MAC 获取上,也就是 wifi 列表
可惜一般路由器默认这两个 MAC 是一样的,即使有不一样差别也在最后一位不同,这么说来,像 PC 机这种完全有线接入的通过大数据也能被精确定位,ios 应用也是假装不知道
EmmaSwan
2017-08-27 09:55:14 +08:00
@panda1001 对对,这个思路下次试试,家里有个吃灰的路由刷过 Tomato,记得是可以更改全部三个网卡地址,看看还能不能定位到。如果真是你说的这样,买 IOS 的理由又少了一个
fcka
2017-08-27 10:08:35 +08:00
wifi 的 MAC 地址能被获取到是 wifi 协议支持的,一个手机操作系统无法改变。不知道密码,通过扫描就能轻易获取到所有可用 wifi 的 MAC 地址。各大厂都有 公网 ip MAC wifi 名 三者结合的定位数据库,需要定位时尽力匹配。

楼主现在明白了吧。
zhaoxiting1997
2017-08-27 10:09:35 +08:00
这个问题不是在于获取网卡地址,而是 Android 允许获得周边 WIFI 的 SSID 和 MAC。定位是通过一些高精度定位的手段比如 GPS,配合标记周边 WIFI 的 SSID 和 MAC 实现的,所以你改变了 MAC 后,定位会无法成功。所以这一点跟网卡地址无关,跟局域网内的用户也无关,而是周围所有能搜索到你 WIFI 并使用了那些地图 SDK 的人都在进行标记。这个功能挺多时候确实挺有用的特别是在室内收不到 GPS 的时候,Android 已经把获取周边 WIFI 列表的权限加在了定位权限里面。
fengleidongxi
2017-08-27 10:21:13 +08:00
@EmmaSwan
READ_PHONE_STATE,奥利奥有没有限制这个权限?有没有对这个权限进行拆分?
难道这个权限不比定位和 mac 严重吗?
zjl5918
2017-08-27 11:09:39 +08:00
咋刷
honeycomb
2017-08-27 11:46:29 +08:00
@EmmaSwan
无论是 iOS 还是 Android 都允许获取当前已经连接的 wifi 热点的 SSID 与 BSSID
无论是 iOS 还是 Android 都不允许获取本机的 WLAN/蓝牙的 MAC

在没有获取定位权限时,Android 不允许获取周边其它 wifi 热点的信息

问题是在于,Google 对不给权限不启动的态度是“ You can always give 1 star in the store ”,所以这个事情无解,除非你接管了 AOSP
honeycomb
2017-08-27 11:47:34 +08:00
@EmmaSwan
我提交过这个 issue (允许获取当前已经连接的 wifi 热点的 SSID 与 BSSID ),回答是 fixed,但不清楚它改了什么地方
fengleidongxi
2017-08-27 12:41:28 +08:00
@honeycomb
iOS 允许 READ_PHONE_STATE 吗?
jerry12547
2017-08-27 12:58:20 +08:00
不是说 o 更改额策略了吗 你获得的 mac 地址是随机出来的而不是真实的地址

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/386058

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX