我偶然发现了一个独特的漏洞(或者从运营商的角度来看),它与短信中似乎被列入黑名单的关键字有关:根据我有限的测试,来自T-Mobile网络上一些设备的出站短信如果在内容中的任何地方包含验证码,都会被静默屏蔽,但只有当它们被发送到运营商和设备的特定组合时才会被屏蔽。我在这里发帖,是想看看对移动网络和平台有更多了解的用户是否能提供一些洞察力,或者插话说这是否是已知/预期的行为。我为后面的长篇大论道歉(你可以看看表格和tl;dr以了解问题的主旨),但我的目标是尽可能地描述性地帮助其他人重现这个问题。
简要背景:我是朋友和家人的常驻技术人员,我经常帮助解决各种在线服务的问题。这样做时,我偶尔需要直接从我的电脑登录到他们的帐户,对于那些拥有通过SMS发送的基于OTP的2FA的帐户,我只需要让他们将他们收到的包含验证码的短信转发到我的手机上,这样我就可以完成身份验证过程。在过去的一周里,我遇到了两个不同的例子,我在帮助某人使用SMS 2FA保护帐户时,在沟通必要的代码时遇到了很大的困难,以至于它激起了我的兴趣,并开始了我的故障排除之路。
在第一个例子中,一位朋友说他们已经将服务上的代码信息转发给了我,但我这一端什么也没有出现。我让服务商给他们发送了一个新的动态口令代码,他们再次说他们已经把它转发给我了,但是我仍然没有看到我那端的任何东西。我们尝试了系统重新发送和转发的相同循环,结果相同。在这一点上,我把它归结为一些一般性的短信问题,让他们直接打电话给我,让他们给我代码,这样我就可以完成登录过程,然后继续前进。唯一让我感到奇怪的是,他们关于给我发送密码的短信发送得很好,尽管带有密码的短信显然没有到达。他们给我发了一张他们那一边的对话截图,确实显示了他们那一端成功地发出了信息,但我仍然将其归因于某种暂时的故障,当时没有进一步考虑这一点。
然而,昨天我发生了同样的事情:当我给一位家庭成员发了一条短信,让他们把验证码交给我时,他们根本没有回复,当我问他们这件事时,他们说他们从来没有收到过我的短信。回忆起本周早些时候发生的事情,我回顾了短信的截图,并思考了两次对话之间有哪些共同之处。这位朋友试图转发的消息和我发送的请求代码的消息都相对较短,而且据我所知没有任何独特的字符,所以我无法想象这是短信长度上限触发彩信转换的问题,或者是我历史上见过的任何驱动器传输问题。我能在这些消息中识别出的唯一一致因素是,它们都包含确切的短语验证码。
我认为特定的词语不太可能对文本传递产生影响,但由于我没有其他假设,我认为至少值得进行一次快速测试。我给同一个家庭成员发了一条信息,简单地说这是验证码测试。让他们告诉我它是否到了。他们收到了我的短信,要求他们回复,但包含验证码的原始消息从未到达。在等待了几分钟以确保不只是延迟之后,我试着发送了一条带有短语Test message.的普通短信,它立即就到了。我又试了两次原来的短语,两次都没能到达相反的地方。然后我让对方试着把原始短语发回给我,消息马上就到了,所以这个问题看起来不是双向的。回顾本周早些时候的对话截图,我看到我给朋友的包含验证码的消息成功到达,所以在那个例子中,问题同样是单向的,尽管是在对话的另一端。
在建立了基本行为之后,我的下一个本能是测试排列,看看是否可以确定阻塞的范围/形状。我发了一系列类似的信息,结果如下:
成功和失败的模式让我相信,无论是什么导致了这个问题,都是在执行
因为我的手机是T-Mobile网络上的Pixel3aXL,而我在这些测试中与之沟通的家庭成员使用的是Verizon上的iPhone,所以我下一步要尝试确定这个问题是否与特定的设备、平台/操作系统、运营商或上述因素的组合有关。我联系了几个我认识的人,他们不介意在周五晚上抽出时间来解决一个奇怪的移动网络故障,并要求他们执行一项基本测试,试图发送短语这是一个验证码测试。这是双向的。我很快排除了具体的设备型号是一个因素,这就根据运营商/操作系统的组合留下了以下几点:
";S";表示短语";已成功传输。这是通过文本消息进行的验证码测试。";S";表示短语";这是通过文本消息进行的验证码测试。
";x&34;表示无法到达收件人端的邮件,即使它在发件人端显示成功。
表的大部分显然是不完整的,但当我收集进一步的结果或从这里的其他用户接收数据时,我将尝试回填它。基于我能在短时间内汇编的有限数据集,我的第一个解释是它是T-Mobile和Verizon网络之间的障碍,因为故障似乎只发生在T-Mobile到Verizon的方向,与设备平台/操作系统无关。然而,当我发现T-Mobile iPhone无法发送到T-Mobile Android系统时,我的网络假说就大打折扣。在配对中只有一个样本(尽管是可重复的)就能做出最终判断,这让我感到不舒服,所以我希望至少再有一个人拥有T-Mobile iPhone,可以验证T-Mobile Android的单向传输失败。编辑:另一个用户已经成功地从T-Mobile iPhone到T-Mobile Android进行了同样的测试,所以我倾向于认为配对失败是偶然的,这将把焦点重新放回从T-Mobile到Verizon的定向通信上。
我对此行为唯一能冒险的猜测是,这是欺诈保护机制(试图保护用户免受短信诈骗)的结果,该机制正受到过于狂热的规则集的影响,但我很难理解为什么它只会影响某些设备和网络的组合(如果是这样的话)。
如果有人的朋友/家人/同事使用的设备组合我无法获取数据(或者我缺少多个样本),而您不介意在一天中抽出几分钟来运行一些快速测试,请在评论中发布您的结果,我会尽量保持表格的更新。
TL;DR:似乎包含短语验证码的SMS消息(以及任何带有非字母数字分隔符的排列)在从T-Mobile传输到某些网络和设备组合时被静默阻止(所有Verizon无法接收是最明显的例子)。我希望从任何可以提供数据的人那里收集更多的数据,或者从专家那里获得关于这是否是已知的、预期的行为的反馈。
编辑:根据进一步的测试(来自u/DJB719的报告),从T-Mobile iPhone到T-Mobile Android的故障样本似乎只是一个侥幸,这意味着唯一可以重现的错误是从T-Mobile到Verizon。这表明这个问题可能是Verizon终端从T-Mobile网络执行入站消息过滤时出现的错误。如果进一步的结果指向这个方向,可能也值得让Verizon的一名订户打电话给他们的技术支持人员。