不管編程語言客戶端 - 服務器的安全性和認證
我有一個客戶端服務器應用程序。
移動客戶端 - HTTP服務器
該應用程序將可在一些手機不僅機器人。
我想確保請求來自客戶端的移動設備。
我該如何解決這個安全問題?
我建議:
有一個祕密的關鍵硬編碼在移動應用:
每個請求都使用該密鑰加密和解密在服務器端。
如果這種方式有意義的話,硬編碼密鑰安全嗎? (反編譯器可以拿到鑰匙的應用將不僅可用於Android的?!)
額外的信息:
每個用戶都有一個用戶名/用戶名...
不管編程語言客戶端 - 服務器的安全性和認證
我有一個客戶端服務器應用程序。
移動客戶端 - HTTP服務器
該應用程序將可在一些手機不僅機器人。
我想確保請求來自客戶端的移動設備。
我該如何解決這個安全問題?
我建議:
有一個祕密的關鍵硬編碼在移動應用:
每個請求都使用該密鑰加密和解密在服務器端。
如果這種方式有意義的話,硬編碼密鑰安全嗎? (反編譯器可以拿到鑰匙的應用將不僅可用於Android的?!)
額外的信息:
每個用戶都有一個用戶名/用戶名...
不要將加密密鑰(或其他任何需要保密的密鑰)放入移動應用程序中,然後依靠它們。這是一個嚴重的缺陷。
關鍵是可以逆向工程,事實上,一些大牌公司犯了這個錯誤。谷歌「twitter oauth密鑰泄露」。
是的,我認爲是這樣......解決方案是什麼? –
@Sherif - 沒有萬無一失的方法來確定請求來自特定*設備*,您只需通過某種身份驗證(例如用戶名和密碼)來識別*用戶*即可。 – Qwerky
我使用OAuth處理類似的問題。它完全適合這種需求,並且幾乎所有的編程語言都有庫。在我的情況下,OAuth服務器與android手機/平板電腦和蘋果手機/平板電腦進行通信。 – Marco
你的意思是「客戶只有手機」嗎? (1)只有經過身份驗證的用戶才能從移動設備訪問您的服務器;或(2)用戶只能從他們自己的手機訪問您的服務器或(3)用戶只能通過手機訪問您的服務器,而不能通過PC訪問您的服務器。 (1)很容易,(2)和(3)不是。另見:http://en.wikipedia.org/wiki/Two-factor_authentication – Ando