2013-02-13 97 views
3

假設我有一個需要進行某些API調用的Android應用程序。我想對已部署的應用程序進行身份驗證,以確保我的API不能被未經授權的客戶端使用。移動原生應用程序的身份驗證

我可以在應用程序內部放置任何東西 - 簽名請求的HTTP頭文件,包含隨機數。但是,如果某人反編譯應用程序,他將能夠複製身份驗證方法,如生成簽名和共享密鑰的算法。使用Java和Android這不是不可行的。

可以避免嗎?可能不會,但我想確保密碼學對我沒有任何解決方案。

回答

3

這個問題沒有解決辦法。您的服務器不可能知道它正在與「您的」客戶交談。唯一可以合理驗證的是用戶,而不是應用程序。對某些安全硬件設備進行合理驗證也是可能的,但這非常昂貴,並且不能確保您的客戶端正在使用;它僅表明用戶可以訪問您的某個安全硬件設備。

這已經在SO上多次討論過了。這些帖子討論這個問題,並鏈接到更多的這些討論:

雖然上面是iOS中的框架方面的職位,這個問題是普遍的。

相關問題