网关短信源识别

SMS source identification in gateway

我已经构建了一个应用程序来处理来自特定发件人的短信,短信是通过短信网关接收到我的机器中的,但我想知道如何验证收到的短信是否真的来自受信任的网络源,因为我看到了一些应用程序在线发送带有字母数字发件人的短信,如果不小心的话,这可能会使系统感到困惑。

可以部署哪些方法来保持安全,以便验证所有目标 SMS 是否来自受信任的来源。

可信来源:可信来源应该是phone号码持有者的网络或任何相关

SMS 系统使用 GSM 网络,这是您无法控制的。我有多年使用 SMS 的经验,还编写了一个旧的 SMS 平台。据我所知,SMS 发件人 ID 很容易伪造,事实上,如果您可以访问低级 GSM 网络,您可以发送任何您想要的发件人 ID(数字、字母数字等...)

如果您想确保短信是由真实的 phone 号码发送的,我认为唯一且 100% 安全的方法是向该发件人号码重新发送确认短信并等待确认码。这很粗鲁,但值得信赖。这并不意味着发件人是真实的 phone,它可能是一个虚拟号码,但您无能为力。

我记得每个特定的网络和提供商都有特殊的服务。例如在西班牙,我记得我们消费了一项服务,它通知我们任何 phone 号码,它正在向我们发送公司(提供商)和该号码的最后一次连接时间,但这是一项付费服务​​(非常昂贵,每张支票或多或少 0.10 欧元)。

无论如何,任何信息都取决于您的 API 提供商的实现和接口。

这里有 GSM 3.4 规范的详细信息。

https://en.wikipedia.org/wiki/GSM_03.40