关于隔离手环

Posted by Xiphoray on Jun 19, 2020

本文仅作技术讨论。

有幸经历了一次 14 天居家隔离,接触到一些远程限制监控的技术,这里对它们的实现作出一些猜想。

主要的东西有两样,一是一个手机 App,二是一条手环。

App 是在过关的时候,由工作人员协助安装的。我注意到这个 App 是通过一个不连接外网的服务器上下载的,这样可以保障一定的安全性。当然,获得 App 后反编译获得源码再上传网上也不是做不到。我用的是安卓机,对于安装 App 来说是没有什么障碍的。对于苹果机,我猜想应该是通过开发者或者企业的方法去安装的。

App 要求获取 GPS 权限,并且要求时刻保持蓝牙开启和 App 后台常驻作为一个后台洁癖,我只能时刻注意它不会被我一不小心顺手给 kill 了。我不知道会不会有反 Root 的举措,因为怕出事我在面具里把这个 App 隐藏了。

App 在初始化的时候,首先要求绑定手环,即扫描手环上的二维码获取手环编号。然后是获取所在地的 GPS 位置。最后有一个有意思的操作,是拿着手机在屋子里走 30 秒。我觉得这是在探测 GPS 的误差范围,毕竟大家肯定都是在屋内,GPS 信号难免会飘,通过这样来嗅探出信号会飘出的范围,以确保之后使用时不会误报。这同样也说明了,其实限制区域是会大于实际物理平面位置的。为了弥补这个缺点,App 还会检测如手机移动网络或者 Wi-Fi 这类信号的变化。

另外,App 还会不定时要求扫手环上的二维码。但这个不定时实在过于随机,我觉得在日常签到之外,上诉各种信号的过大幅度变化也会激发这个扫码请求。个人感觉,这个扫码可能不只是单纯的扫码,因为有时候看到扫码确认的响应时间会特别的长,猜想会不会顺便通过图片去识别手环是否戴在手上,或者识别二维码是否在手环上。

顺便吐槽一下这个 App 的耗电是真的大。可能是后台常驻加蓝牙不断收发数据的原因,耗电量是我平时使用手机的三四倍之多,但是感觉并不至于啊。最严重的是晚上睡觉,平时手机熄屏之后后台 App 基本上都是不耗电的,一晚上下来最多掉个百分之一二。但是现在一晚上能掉一半的的电,每天早上醒来手机基本上都是强行进省电模式的。可能是赶工出来的东西,没有经过优化吧。

手环正面

手环反面

手环正面印着手环编号和对应的二维码,背面是 FCC 认证和 CE 认证。这么短时间居然还能申请到认证。根据 FCCID,我找到了这个产品的认证公司,是一家叫 WiSilica 的科技公司,主营 IoT 方向的产品。

FCC 认证

根据我朋友的一些反馈,这个手环已经更新过好几代了。最开始的那款看上去是很笨重的,而我这一代就相当的轻便,几乎不影响日常生活。除了洗澡时容易被手环的带子刮到。

手环内部 1

手环内部 2

拆开后,除了板子本体,还有延展至整条手环带的柔性电路,里面只有一条电路,与电源线串联。也就是说,一旦将手环剪断,整个手环设备就会断电。当然,还是可以直接用电线焊接回去的。

主板上的 MCU 字太小看不清型号。背面是一颗 3V 的纽扣电池。其他东西也看不出什么了。这个手环的原理应该就是跟手机通过类似蓝牙一样的近场通讯协议来保持连接,以确保手环在手机附近。不过我尝试过离手机大概 10 米远,也没有触发什么东西。所以这部分的功能还是不太明晰。

总结一下大概的思路。通过一条大概率不能正常拆卸的手环绑定隔离者,然后用手机来保证手环在手机附近,再通过手机以 GPS 为首的无线信号,来监控手机的地理位置,以监控隔离者在指定范围内活动。




Share