2011-02-15 58 views
1

我们需要能够访问移动设备上的资源。移动设备必须充当服务器。无论手机如何连接(无线,3G,防火墙等),它都必须可用。我知道这可以通过启动一个ssh反向端口从电话到云访问服务器来完成。希望访问手机资源的客户端现在可以在某个随机端口连接到云服务器,并将连接隧道连接到移动设备。精细。ssh反向端口转发到移动设备

我的问题涉及这个想法作为一个可扩展的,强大的,安全的解决方案的可行性。使用此方案部署到数以万计设备的移动应用程序,以使设备本地资源可访问。设备本地资源不是极高的安全性。建议ssh主要是因为它使建立隧道更容易。

这里是我的一些顾虑,

  1. 端口分配。每个隧道都需要云服务器上的唯一端口。我相信这将要求设备和云服务器在启动隧道之前协商IP。这当然是可能的,但这意味着有些复杂的服务在不断地探测端口以确定它们的可用性。

  2. 港口资源。服务器上有数量有限的端口。当事物在多个服务器上缩放时,可能不是问题。

  3. 隧道管理。隧道可能并不总是很好,所以存在“清理”隧道意外下降的问题(参见#1)。

  4. 安全。每个设备都需要公钥来匹配云服务器上的秘密。如果它在设备上,它可以从中取出。现在,只要账户被锁定,就没有多少可能发生,但它确实打开了另一个攻击向量。

此外,只是让服务器的所有唯一端口打开是另一个攻击媒介。

  1. 可扩展性。它有多少昂贵(资源方面)可能有数以千计的SSH隧道?这是现实吗?

  2. 防火墙。云服务器端口将不会是“80”或“8080”,而是一些随机数。对于某些可能会限制到标准端口的出站连接的防火墙,这是一个问题吗?

因为你可以看到安全不是我的专长,所以对待我与孩子的手套。如果你没有猜到,我对这种方法有极大的保留,所以我正在寻找证据来看待其他解决方案来解决一般问题。

谢谢。

回答

1

某些自定义代码将在此处出现,或通过专用于该概念的协议进行隧道会话。 IPSEC over UDP可能是一个很好的提名。如果可能的话,让移动设备像普通服务器一样听,并且每当改变地址时发送ping就可以免除你很多的挑战。这将取决于电话的行为以及运营商是否会干扰过滤进入的TCP连接等烦人的事情。无论如何,要解决具体问题:

1)不,每个连接都需要一个唯一的套接字。这是端口号和IP地址的组合。即使在同一NAT后面有两部电话,NAT设备也会为连接分配不同的端口。您可以在服务器机器的一个端口上运行一项服务。

2)见上文

3)会发生作为规则而不是例外。他们暂停并关闭。这实际上可能不如您预期的那么严峻。

4)你如何解决这个问题将基于你的安全需求。您可以尝试在手机上识别潜在的ID,以使事情更具挑战性,需要输入用户密码才能使其成为两个因素,等等。这当然会与易用性竞争,因此您需要权衡考虑因素。


1a)没有线索......但它不应该是不可能的。 2a)你会在某些地方遇到这种情况,哪里难以预测。也就是说,您也可以通过HTTPS执行这些功能。