簡體   English   中英

如何為Android App使用的Web API服務實現身份驗證?

[英]How to implement authentication for Web API services that are used by an Android App?

我們將構建一個將由Android應用程序使用的Web API應用程序。 我想保護這個面向公眾的API,以便只有Android應用才能使用API​​。

我們不想使用HTTPS,因為傳輸的數據確實不敏感。 也沒有涉及登錄,所以只要我們確保合法的應用程序正在進行通話,我們就可以了。

我想在應用程序和api之間共享一種秘密數據,但是我們的Android開發人員說,我們在應用程序中放置的任何數據都可以被惡意攻擊者檢索到。 另外,通過HTTP傳輸該數據並不安全。

我想知道是否有人可以幫助我找到一個我們最好不必使用HTTPS的解決方案?

你是對的,有可能有人可以從設備上的應用程序源恢復共享密鑰。 如果不使用傳輸層安全性(TLS / SSL),也無法做任何事情。 一旦你透露任何秘密,它就不再是秘密了。

關於如何正確地執行此操作有一些很好的建議: http//android-developers.blogspot.in/2013/01/verifying-back-end-calls-from-android.html

“你絕對必須使用HTTPS連接 ,以防止任何中間人偷看你的令牌。” 頁面本身的重點。

一個想法是讓應用程序根據發送消息的時間計算密鑰,然后服務器端將能夠驗證該密鑰。 服務器必須允許一些時間窗口。

如果你使用Proguard來混淆你的應用程序代碼,你可能會很難閱讀你的代碼(不是不可能,但很難)。 在混淆的代碼中更容易找到常量而不是查看調用的方法,因此我建議計算密鑰。

使用這種方法,攔截消息的人可以重用密鑰(至少不會超過很短的時間)。 因此,如果您真的想要避免使用https而您的數據不是那么敏感,那么這是一個可能的解決方案。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM