2011-07-19 103 views
5

不管編程語言客戶端 - 服務器的安全性和認證

我有一個客戶端服務器應用程序。

移動客戶端 - HTTP服務器

該應用程序將可在一些手機不僅機器人。

我想確保請求來自客戶端的移動設備。

我該如何解決這個安全問題?

我建議:

有一個祕密的關鍵硬編碼在移動應用:

每個請求都使用該密鑰加密和解密在服務器端。

如果這種方式有意義的話,硬編碼密鑰安全嗎? (反編譯器可以拿到鑰匙的應用將不僅可用於Android的?!)

額外的信息:

每個用戶都有一個用戶名/用戶名...

+2

我使用OAuth處理類似的問題。它完全適合這種需求,並且幾乎所有的編程語言都有庫。在我的情況下,OAuth服務器與android手機/平板電腦和蘋果手機/平板電腦進行通信。 – Marco

+0

你的意思是「客戶只有手機」嗎? (1)只有經過身份驗證的用戶才能從移動設備訪問您的服務器;或(2)用戶只能從他們自己的手機訪問您的服務器或(3)用戶只能通過手機訪問您的服務器,而不能通過PC訪問您的服務器。 (1)很容易,(2)和(3)不是。另見:http://en.wikipedia.org/wiki/Two-factor_authentication – Ando

回答

3

不要將加密密鑰(或其他任何需要保密的密鑰)放入移動應用程序中,然後依靠它們。這是一個嚴重的缺陷。

關鍵是可以逆向工程,事實上,一些大牌公司犯了這個錯誤。谷歌「twitter oauth密鑰泄露」。

+0

是的,我認爲是這樣......解決方案是什麼? –

+0

@Sherif - 沒有萬無一失的方法來確定請求來自特定*設備*,您只需通過某種身份驗證(例如用戶名和密碼)來識別*用戶*即可。 – Qwerky

相關問題