现在手机设备是不是还是可以轻松的获取到类似 imei 这样的唯一识别号?

2021-10-16 10:20:28 +08:00
 MengiNo

我的 iPhone 昨天返厂了,今天要转钱于是就用 iPad 下载了一个 中国建设银行 app 。结果转账时发现被限额 5000,原因是还有一台设备 《曾经登录》 过 app 。要我必须去之前的设备解绑也好授权也好,能把 iPad 的权限提升成 “强绑定设备” 操作才能不受限。

我的情况是这样的,像这类银行 app 从来都是,用时即下用完即删的状态,所以其实我的 iPhone 里其实也没有 中国建设银行 app,加上昨天返厂时已经抹掉过 iPhone 。如果建行没有本事识别出抹掉过的 iPhone,那这个功能不就纯粹恶心用户?他既然敢做成这样,是不是说明其实 app 已经掌握了一套哪怕 iOS 提供假的 mac 地址、哪怕 iOS 不提供 imei 、哪怕抹掉后重置用户标识的情况下,还是有办法获取到你的手段?

5050 次点击
所在节点    问与答
42 条回复
Aceycli
2021-10-16 10:26:44 +08:00
这个,只需要判断你两台设备不是同一台就行了吧。
MengiNo
2021-10-16 10:29:27 +08:00
@Aceycli 我的意思就是主要他怎么判断是一台呢,单纯看型号? 以前可以看 iemi 现在不让看了,后来可以看 mac 地址,现在 iOS 可以针对不同 ssid 给一个虚拟 mac 地址,用户唯一标识也可以重置,拿他总得有个东西可以确认这样是独一无二的吧。
DSKcpp
2021-10-16 10:33:44 +08:00
APP 生成一个超长“绝对”不会重复的 ID 存起来不就行了。
ahhui
2021-10-16 10:34:27 +08:00
理论上是拿不到 imei 的,但是实现相应的功能有其它办法。比如,记录下你的手机型号等在抹掉之前都不会变的信息,然后由服务器发一段特殊的编码(如 cookie,签名的 authentication code 等),然后存到 keychain 里,这样即使你删掉 app,重装后,在同一台设备下的 keychain 是可以重复读取并验证机器唯一性的。抹掉后肯定就做不到了。除非楼主可以重现抹掉后,重装 app 还能识别为同一台,那才可以说,app 绕过了限制拿到了某种硬件唯一标识符了。
Aceycli
2021-10-16 10:37:04 +08:00
@MengiNo 读缓存就能确定你是否登录过了吧。可能 IDFA 重置后也会识别为新设备
nsynet57
2021-10-16 10:38:46 +08:00
安卓上是"读取本机识别码"权限可以关闭,但是有些 APP 可能无法使用。

建行 APP 是这样子的
MengiNo
2021-10-16 10:59:30 +08:00
@DSKcpp @Aceycli 他存在哪里呢,总不至于我删掉 app 再装他就认不到了吧。iOS app 不是只能在他的沙盒里存东西么。

如果删了再装或者重置用户识别号他就不认,那就大概率出现死循环。你想用必须退出之前的登录状态,而所谓的登录状态只是之前的服务端数据罢了,客户端早就直接卸载(或者丢失关联),永远无法同步给服务端了。并且这种情况只能去线下门店解决,这么恶心的东西他竟然没有明显提示。
just1
2021-10-16 11:00:48 +08:00
作为一个银行应用,如果认为抹掉的手机是安全的,这才是问题吧
MengiNo
2021-10-16 11:02:34 +08:00
@ahhui 这种通过 keychain 恶心人的手法我是知道的(所以我直接关了 keychain iCloud 同步),而且绝大多数普通用户可能只有 iOS,可能一辈子都不会开 甚至都不知道 这个 keychain 功能,这种手法感觉不太稳定。
MengiNo
2021-10-16 11:07:32 +08:00
@just1 问题是这个逻辑不需要抹掉,只需要重置用户标识。难道重置用户标识就是不安全的?那也起码标注一下你重置了这个我们就跟踪不到你了,为了保证安全你不要随便重置。 这种 既隐私换便利 之后的 隐私换安全 论调我其实有点接受不了,何况其他银行或者银保监会都没有类似的手段、标准或者要求。
ahhui
2021-10-16 11:24:29 +08:00
@MengiNo 同步只是同步,keychain 在本机是一直可以用的,里面可以存储登录 token,方便卸载 app 后,重装不需要再次登录(实际上逻辑和验证手机唯一性差不多,很多 app 都在用这个验证手机唯一性)。即使你不同步,这个 keychain 还是可以被 app 使用。
cpstar
2021-10-16 11:28:46 +08:00
即便是 Android 给了识别本机的权限,重刷安装系统之后(等同于 iOS 抹掉)获取的识别码也是不一样的。iOS 更应该是这样了。机器 SN 这种东西,除了系统,一般 APP 通过系统调用,是无法获取的吧。
这个唯一码是混合了用户标识和机器表示的。

显然同一个 APP,在重刷前后,会识别为两个设备。如果不重刷系统,那 APP 再次安装之后获取的机器码肯定还是卸载之前那个——系统没有变化。换句话讲,如果在一台新设备上,能够模拟原设备的机器码,APP 是无法知道设备发生了变化的。
至于安全问题,主要是给用户提供一个安全保护,让用户知道有哪些设备使用过相应服务,并且让用户对该设备更加信任,而且也让用户能够删除某个信任设备。
Rocketer
2021-10-16 11:29:20 +08:00
实测旧手机迁移到新手机会把建行 app 的绑定带过去,直接就是完整权限。所以它肯定没读到什么唯一码。
ckaock
2021-10-16 11:35:44 +08:00
我也有类似问题,忘记怎么弄好了,问问客服
Xushet
2021-10-16 11:40:59 +08:00
设备序列号?
vocaloidchina
2021-10-16 12:32:43 +08:00
我隐约记得 ios 追踪里面的条款是有说会对银行 app 稍微放宽限制的
MengiNo
2021-10-16 12:45:38 +08:00
@ckaock 客服说只能去门店,而且省会级别的城市,我在的区只有一个建行周六有上班。他说如果你实在急就绑定第三方,绑支付宝可以转 5k,微信可以转 5k,云闪付可以转 1w,量不大的话什么 jd,美团啥的都可以绑都可以转。我真是人傻了……
ryh
2021-10-16 13:02:03 +08:00
iOS 从一开始就不能获取 IMEI,
@Xushet UDID (而且不是序列号)从 iOS5 (?)开始就不能行了,想太多
dingwen07
2021-10-16 13:45:20 +08:00
Keychain 可能是祖传问题了,苹果之前有一次尝试过在应用卸载同时删除对应 Keychain,但最后没有上线这个功能。
EIJAM
2021-10-16 13:50:28 +08:00
建行是这样,其他银行没有限制这么多。

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

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

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

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

© 2021 V2EX