我们需要能够访问移动设备上的资源。移动设备必须充当服务器。无论手机如何连接(wifi、3g、防火墙后等),它都必须可用。我知道这可以通过启动从手机到云可访问服务器的 ssh 反向端口来实现。希望访问手机资源的客户现在可以通过某个随机端口连接到云服务器,并通过隧道连接到移动设备。美好的。
我的问题涉及这个想法作为可扩展、强大、安全的解决方案的可行性。使用此方案部署到数万台设备的移动应用程序,以使设备本地资源可访问。设备本地资源不是超高安全性。建议使用 ssh 主要是因为它使设置隧道更容易。
以下是我的一些担忧,
端口分配。每个隧道都需要云服务器上的唯一端口。我相信这将需要设备和云服务器在启动隧道之前协商 IP。这当然是可能的,但这意味着某处有一个有点复杂的服务,它不断地探测端口以确定它们的可用性。
港口资源。服务器上有有限数量的端口。当事情跨多个服务器扩展时,这可能不是问题。
隧道管理。隧道可能并不总是很好地下降,因此存在“清理”意外下降的隧道的问题(参见#1)。
安全。每个设备都需要公钥来匹配云服务器上的秘密。如果它在设备上,则可以从中取出。现在,只要帐户被锁定,就不会发生太多事情,但它确实打开了另一个攻击媒介。
此外,简单地打开服务器的所有唯一端口是另一种攻击媒介。
可扩展性。打开数千个 SSH 隧道的成本(资源方面)有多贵?现实吗?
防火墙。云服务器端口不会是“80”或“8080”,而是一些随机数。对于某些可能限制出站连接到标准端口的防火墙来说,这是一个问题吗?
正如你所看到的,安全不是我的强项,所以请带着孩子手套对待我。如果您没有猜到,我对这种方法持极端保留意见,因此我正在寻找证据来寻找其他解决方案来解决一般问题。