2014-10-26 24 views
1

我將構建一個跨平臺的應用程序(WP8,IOS,Android),這些應用程序將使用我的服務器發出API請求。如何在中間攻擊中處理來自人的API

我的服務器還會調用不同類型的API(谷歌,臉譜等)並返回一些結果。 應用程序所有者不必登錄即可進行這些調用。

如果中間有人,他可以跟蹤api調用並將其用於他自己的用法,從而減少我對我使用的api服務的配額。

我只希望擁有應用程序的手機能夠打這些電話。 檢測到我的服務器的API調用的最佳方式應該來自我的應用程序?

回答

2

您可以使用SSL,以防止中間人攻擊,但實在是沒有辦法,你可以100%肯定的是,你與你的應用程序進行通信。你可以把它做起來難,要求某種的訪問令牌或使用自定義加密,但如果有人可以反編譯你的應用程序,他們可以做任何他們想要的。

+0

嗯,你的意思是即使IOS應用程序可以逆向工程和我爲我的加密私鑰可以從我的源代碼被竊取? – 2014-10-27 13:07:33

+0

是的。這些應用程序在上傳到應用程序商店時未經過加密,也不會在下載到最終設備時進行加密。如果Apple將私鑰存儲在某種內部智能卡(如SIM卡)或某些其他內部安全設備上,則iOS在技術上可以使用類似RSA的非對稱加密方法這樣做,但如PS3的關鍵漏洞,極度的知識和對細節的關注是必需的,沒有任何事情像你想象的那樣安全。 – 2014-10-27 19:21:04

+0

越獄iPhone可以繞過智能卡加密,通過使用它來解密應用程序,而無需知道密鑰。這可能是應用程序不是首先被解密的原因。 – 2014-10-27 19:28:41

1

在特定情況下,你應該使用HTTPS,並在客戶端,不僅檢查你使用的是HTTPS連接,而是通過服務器及其證書鏈提供的證書是你期望的人。 如果你不這樣做,你仍然可以執行MITM攻擊。例如:

  • MITM代理可以作爲服務器的客戶端,並使用HTTP連接將內容提供給實際客戶端。
  • MITM代理可以充當服務器的客戶端,並使用自簽名SSL證書向真實客戶端呈現HTTPS連接。
相關問題