2011-02-15 92 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執行這些功能。