2012-04-03 56 views
2

我的要求如下:只有什麼是確保服務器端和移動客戶端通信安全的解決方案?

  1. 限制的請求來自移動設備(iPhone或Android),也就是說,從程序或瀏覽器中是被禁止的請求。
  2. 基於會話的會話。
  3. 服務器端可以對發佈數據進行重新規範化,而不會被其他代理或其他方式修改。
  4. 應該考慮移動設備可能被黑客入侵的情況。

我的一些想法,我的要求:

  • 相當於1:我想用RSA,我生成一個密鑰和密碼,客戶端使用該密鑰對數據進行加密,服務器使用它的祕密解密,並檢查密鑰。但是當手機被黑客入侵時,其他人知道密鑰的情況如何。
  • 對應於3:我想使用hmac算法和密鑰來爲每個請求生成簽名。

我的解決方案是否存在安全問題?你的是什麼?

更新:對不起,我忘記提及所有要求都是基於用戶登錄提到的。

回答

0

1)我不確定使用RSA會解決這個問題,除非你所有的移動應用程序都有相同的公鑰/私鑰組合。瀏覽器可以輕鬆使用RSA並加密數據。

執行此操作的一種方法可能是檢查HTTP標頭是否插入由移動運營商插入的標頭,以及這些標頭是否可以僞造。

這是一個難題。我會一直想着它,並讓你知道是否有什麼想法。

2)對於基於會話的加密,您可以使用Diffie-Hellman密鑰交換算法來協商會話密鑰,然後使用它來鎖定請求到會話。

3)聽起來不錯。

4)我認爲圍繞手機被黑客攻擊的唯一方法是要求用戶登錄,因爲您需要驗證用戶,而不僅僅是設備。另一件事是人們共享手機,所以它可能甚至沒有被黑客攻擊。它可能只是出租。

+0

首先感謝您的回答!根據你的觀點4),它實際上需要用戶登錄。忘記提及是我的錯,而且我已經爲我的問題添加了更新。對於1),我不太清楚你對RSA的意思。 – jianpx 2012-04-03 07:55:21

+0

RSA對於驗證設備/計算機/應用程序以及在服務器和客戶端之間發送祕密消息很有用。 如果您試圖通過加密消息並將消息發送到服務器來驗證您的應用程序發出了請求,什麼會阻止其他人複製加密消息併發送該消息?他們甚至不需要破解手機。他們只需要使用數據包嗅探器並竊取加密的消息。或者我誤解了你? – 2012-04-03 08:21:26

0

考慮使用ASIHTTPRequest api,並使用SSL來獲得更多保護。對於被黑客竊取的手機,用戶登錄是實現它的一種便捷方式,每次用戶發送POST請求時,您都可以要求通過。

+0

感謝您的回答。但事實上,我想要解決服務器端問題,所以ASIHTTPRequest API是客戶端的工作。我有SSL解決方案的令牌考慮,但不是所有的移動或ISP支持SSL,所以它不是一個通用的解決方案。 – jianpx 2012-04-03 08:28:22

+0

然後,你應該嘗試在serverfault.com上提出這個問題,有時你可能會得到一些合理的答案 – 2012-04-03 08:32:37

4
  1. 你通常不能。您需要讓您的移動應用程序以某種方式向服務器進行身份驗證(私人帳戶,Google帳戶,SSL客戶端證書等)
  2. 使用常規的基於Cookie的會話。使用提供真正隨機會話ID和SSL安全的解決方案來防止會話劫持等。
  3. 使用SSL(HTTPS)
  4. 不確定這意味着什麼。如果您正在進行設備特定的身份驗證,則需要一種撤銷帳戶的方式,以便無法使用被盜等手機。

最後但並非最不重要:不要嘗試創造一個安全協議。使用HTTPS並不認爲你可以創建一個安全的解決方案,只是因爲你讀了一本關於它的書/博客/文章/教科書。

再次:請使用HTTPS

+0

,並非所有的移動設備都支持https。 – jianpx 2012-04-04 02:35:28

+1

Android和iPhone肯定會這樣做。近年來建成的其他東西幾乎都是。如果確實沒有,請在您的應用中捆綁OpenSSL或類似軟件。沒有理由不使用HTTPS :) – 2012-04-04 02:37:52