我是一名电子工程师,没有网络方面的经验和知识。我正在从事一些家庭自动化项目,并将选择最佳方式通过互联网将我的手机连接到 HUB(控制家庭设备)。HUB 使用动态 IP 连接到 ADSL 互联网,还包含一个 GSM 模块,用于通过 SMS 获取控制命令。
我认为(以我非常少的知识)最好的实用方法是将 HUB 连接到静态 IP,然后使用该特定 IP 将手机应用程序连接到 HUB。问题是:
假设我无法将动态 IP ADSL 服务更改为静态服务,是否有其他方法可以以安全的方式通过互联网将多个设备(或至少一个设备)连接到单个集线器?
正如我所说,HUB 包含一个 GSM 模块,并且可以通知客户端 IP 是否随时间发生变化(如果有帮助的话)
HUB 运行 Android,可以更改为 Ubuntu 或 Windows 10 IoT(如有必要)
答案1
如果我理解正确的话,您家里安装了一个叫做 HUB 的设备,它既通过 ADSL 直接连接到互联网(换句话说,它没有连接到您的家用路由器),又有一个 GSM 模块,所以它也通过移动网络连接到互联网。
您希望从任何地方使用手机访问此 HUB,并且希望通过互联网而不是通过 GSM 访问它。
因此,问题是手机如何获取 HUB 的当前公共互联网地址。选项包括:
- 为 HUB 提供静态 IPv4 地址(排除,因为您的 ISP 不允许)。
- 为 HUB 指定静态 IPv6 地址
- 用一个动态域名解析服务:指定一个名称,类似于
hub.milad.dyndns.org
集线器的当前 IPv4 地址,该名称会在您的公共 IPv4 地址更改时更新。有很多这样的服务,谷歌。 - 每当公共 IPv4 发生变化时,向所有手机发送一条短信。这可能意味着每天发送 x 条短信,其中 x 是您的手机数量。
- 让您的手机在想要联系 HUB 时通过短信查询 HUB。这意味着每次尝试联系时都会发送 2 条短信。
您可以通过添加基于 HUB 和应用程序之间共享秘密的加密哈希来确保 SMS 的安全。DynDNS 需要密码才能保证安全。
它们都无法阻止攻击者猜测或扫描你的 HUB 的 IPv4,所以你还应该至少通过要求类似的加密哈希来确保与 HUB 的通信安全。
谷歌有针对此的加密库。