Tinder如何(略)隐藏您的位置

今年,您和您的朋友Steve Stevington创办了一个用户跟踪启动公司。 该业务基于您发现WhatsApp元数据泄漏 。 你们俩都应该学习管理知识,但是公司仍然成长为一家实力雄厚,虽然不稳定的公司,但有65名实习生,学生,自由职业者和无薪工人在试用期内。 您最近搬到了旧金山公共图书馆19世纪文学系的新办公室,并且在互联网营销领域享有令人羡慕的声誉。

但是在这种光滑可疑的外观下隐藏着腐烂。 您怀疑您的好朋友,联合创始人兼联合执行董事史蒂夫·史蒂文顿(Steve Stevington)密谋反对您。 他总是在陌生时间用完图书馆,然后某个地方消失了好几个小时。 当您问他要去哪里时,他会产生一个奇怪的鬼脸,他可能认为这是一个恶毒的笑容-并告诉您不要担心。 您已指示图书馆员多次跟进他,但是他们在野外工作中都很糟糕。

您已经在硅谷生活了很长一段时间-您知道当大量金钱和用户数据受到威胁时,会发生无情的暴行。 史蒂夫·史蒂文顿(Steve Stevington)可能试图说服投资者使您破产。 您认为彼得·泰尔(Peter Thiel)将为您提供支持,但是很难说玛莎A妈。 因此,您需要找出史蒂夫的去向。

幸运的是,他是Tinder的狂热用户。 Tinder应用程式会追踪使用者的位置,让潜在的情侣知道彼此之间的距离。 这使用户可以做出明智的决定:在洗澡,在冰箱里放冰淇淋和早上工作时,真的值得开车13公里才能在6点或6.5点与一对夫妇见面。 换句话说,Tinder确切地知道Steve的去向。 而且,如果您选择正确的漏洞利用,那么您很快也会发现。

为了确定搜索方向,您检查了Tinder用户过去位置数据泄漏的报告。 有几个。 在2013年,人们发现了火种服务器发送潜在匹配的精确坐标在移动应用程序 。 基于它们,该应用程序计算了用户之间的距离,但未在界面中显示坐标。 但是,攻击者可以轻松拦截Tinder自己的网络流量,检查原始数据并确定目标的确切位置。


Tinder API响应,包括确切位置

Tinder试图通过将距离计算转移到服务器而不是应用程序来静默地修复漏洞。 之后,从服务器发送到应用程序的网络消息仅包含这些预先计算的距离,而没有实际位置。 但是,Tinder随便发送了未舍入的数字形式的距离(小数点后15位)。


Tinder API响应,包括准确的距离

这种疏忽使狡猾的研究人员可以利用三边测量漏洞再次确定目标的确切位置 。 研究人员向具有不同用户位置的Tinder发送了三个假坐标。 在每个新地点,他们问Tinder目标有多远。 然后,在地图上绘制了三个圆,其中心为假坐标,半径等于所获得的距离。 相交点-目标的坐标,精度为30米。


火种三边测量示例

Tinder安全团队看着这些不断使他们工作的人,叹了口气,悄悄地修复了漏洞。 现在,Tinder将四舍五入的距离发送给应用程序。 您仍然可以使用指示的三边测量程序确定一公里左右范围内目标的坐标。 但是在人口稠密的旧金山市,这不会给出答案,偷偷摸摸的史蒂夫·史蒂文顿去哪里了。

星期五下午,史蒂夫·史蒂文顿的脸上再次出现了一个偷窃的鬼脸,表明愿意在未知的地方采取各种行动。 您必须找出他要去的地方,否则为时已​​晚。 您已将自己的帐户锁定-位于4楼图书馆的阅览室。 经过15分钟的深呼吸和甚至更深的反射之后,您有一个计划来恢复Tinder三边测量漏洞利用,并确定Stevenator的前进方向。

假设Tinder现在计算出服务器上的确切距离,将它们四舍五入为最接近的整数,然后将四舍五入的数字发送到您的手机。 您可以采用与三边测量相同的方式发起新的攻击。 我们发送虚假的火种地点,并询问目标有多远。 火种可以回答“ 8公里”,这本身用处不大。 但是随后您可以向北移动一个像素,并询问每一步的距离。 服务器将回答“ 8公里,8公里,8公里,8公里,7公里”。 如果您对四舍五入过程的假设是正确的,那么答案改变的点对应于到目标7.5公里的确切距离。 如果您重复此过程3次并绘制三个圆圈,那么我们将再次使用trilateration漏洞。

我们采取积极行动。 威尔逊上厕所时,借用他的手机进行测试-您知道他使用了Tinder,并且解锁密码在屏幕上的指纹中可见。 在试用期内与您的无薪实习生交谈,以免他们打通电话或对威尔逊不说话-赶快到小说系高处的僻静角落吧。 在那里,您可以在两个手机上打开Tinder。 继续滑动直到找到匹配项,然后使用pynder编写简短的Python脚本来欺骗Tinder API调用。 将Wilson放置在旧金山湾的中间,然后尝试确定其坐标,逐个像素地更改其位置,以在您之间的距离从一个四舍五入的数字更改为另一个数字时找到该点。

但是出了点问题。 晚上到了,晚饭过去了,您还没有找到威尔逊。 您有点接近,但还不够。 圆圈有时非常靠近交点,但通常无法给出威尔逊所在的有意义的答案。 你开始感到绝望。 此刻,史蒂夫·史蒂文顿(Steve Stevington)可以与彼得·泰尔(Peter Thiel)和玛塔姨妈(Aunt Marta)签订新合同。 他可能已经更新了您公司的LinkedIn页面,将您重命名为“顾问”,“助理”或“前首席执行官”。 图书馆关闭-您将移至食品储藏室。 威尔逊继续打电话,但试用实习生不会放弃你。 甚至一个稍纵即逝的想法也没有给他们工作。



沮丧时,您后退一步,将头撞到较低的架子上。 当您从一堆清洁产品中脱颖而出时,您正在考虑的假设可能是错误的。 也许Tinder并不能四舍五入。 您从图书馆员工的冰箱里拿些零食来帮助思考。 停止绘制圆圈,开始沿着Wilson真实位置周围的线行走,标记距离的每次变化。

在夜晚的第二个小时,一切变得清晰。


根据火种距离在地图上放置标记

现在,Tinder非常热衷于用户的隐私,以至于打破了传统几何形状的枯燥剪辑。 他抛弃了欧几里得。 他不需要Haversinus公式 。 相反,Tinder在计算比赛之间的距离时使用了两项创新。

首先,也是最重要的是,它将城市划分为大约1×1英里的正方形。 在计算距离时,目标位置会捕捉到当前网格正方形的中心。 然后,它计算并返回您与该附加位置之间的近似距离。


Tinder将用户位置捕捉到网格

其次,它就像通过其唯一公式来计算距离。 为此,需要绘制一张预定义的粗略距离图,并将其叠加在目标正方形的中心上。 Tinder在此叠加图中寻找攻击者的位置,并返回相应的距离。 在欧几里得距离的正常计算中,这将是一组同心圆。



但是,当Tinder远离目标时,似乎使用了同心叠加层,在拐角处有怪异的曲线。



除其他外,这意味着Tinder通常返回稍微不正确的距离。 您怀疑必须对圆角进行修圆以校正彼此之间东北方向的错误距离。

网格捕捉是Tinder方法中的一项关键创新。 这意味着如果目标在给定网格正方形内的任何位置,Tinder将始终返回相同的距离。 您的三边漏洞无法使用。 而且,如果Tinder正确实现了网格绑定,那么任何纯远程利用都将无法进行。 没有一种方法能够找到比一个网格方格(大约)1×1英里(大约一个)的边界更精确的目标位置。 即使这样的粗略监视也可以使Tinder用户感到疑惑。 但是实际上,这对于应用程序而言是相当合理的行为,其主要功能是告诉陌生人您的身份。

您真的不知道为什么Tinder使用如此奇怪的带有圆角的正方形图层。 只要用户位置绑定到网格,Tinder就可以使用正常的欧几里得距离,而不会冒隐私风险。 也许仅仅是新指标的计算速度更快,尽管有戈登·摩尔的戒律,但计算机仍然有限。 但是,所有这些都得出一个结论,即Tinder安全-在这个非常狭窄的方面-并且您搞砸了。

图书馆完全处于黑暗中,还没有计算施乐的绿色光芒。 您很伤心,但勤奋地扫地。 把它放在壁橱里,把威尔逊的电话扔进图书馆的工业碎纸机中。 从正门出来,偷走一辆紧固不好的自行车,然后悲伤地回家。

第二天早上,史蒂夫·史蒂文顿(Steve Stevington)给您介绍了他在秘密的下午陶瓷课上工作的两位副导演之一。 这是完全恶心的。 如果他给您一张十美元的钞票中的一张并留在办公室,那会更好。 他工作得很少,也很差劲,而你不得不举行许多会议并撒谎-通常这是他的工作。 但是至少他没有偷贵公司。 您将威尔逊的咖啡倒入可笑的杯子中,并希望您的好朋友身体健康。

当您晚上入睡时,脑海中浮现出关于北极Tinder网格正在发生的事情的念头...

您来自本文的代码已发布在Github上 如有任何疑问或发现错误,请告知自己

Source: https://habr.com/ru/post/zh-CN417877/


All Articles